(function($){$.tools=$.tools||{version:'@VERSION'};$.tools.tooltip={conf:{effect:'toggle',fadeOutSpeed:"fast",predelay:0,delay:30,opacity:1,tip:0,position:['top','center'],offset:[0,0],relative:false,cancelDefault:true,events:{def:"mouseenter,mouseleave",input:"focus,blur",widget:"focus mouseenter,blur mouseleave",tooltip:"mouseenter,mouseleave"},layout:'<div/>',tipClass:'tooltip'},addEffect:function(name,loadFn,hideFn){effects[name]=[loadFn,hideFn]}};var effects={toggle:[function(done){var conf=this.getConf(),tip=this.getTip(),o=conf.opacity;if(o<1)tip.css({opacity:o});tip.show();done.call()},function(done){this.getTip().hide();done.call()}],fade:[function(done){var conf=this.getConf();this.getTip().fadeTo(conf.fadeInSpeed,conf.opacity,done)},function(done){this.getTip().fadeOut(this.getConf().fadeOutSpeed,done)}]}
function getPosition(trigger,tip,conf){var top=conf.relative?trigger.position().top:trigger.offset().top,left=conf.relative?trigger.position().left:trigger.offset().left,pos=conf.position[0];top-=tip.outerHeight()-conf.offset[0];left+=trigger.outerWidth()+conf.offset[1];if(/iPad/i.test(navigator.userAgent))top-=$(window).scrollTop();var height=tip.outerHeight()+trigger.outerHeight();if(pos=='center')top+=height/2;if(pos=='bottom')top+=height;pos=conf.position[1];var width=tip.outerWidth()+trigger.outerWidth();if(pos=='center')left-=width/2;if(pos=='left')left-=width;return{top:top,left:left}}
function Tooltip(trigger,conf){var self=this,fire=trigger.add(self),tip,timer=0,pretimer=0,title=trigger.attr("title"),tipAttr=trigger.attr("data-tooltip"),effect=effects[conf.effect],shown,isInput=trigger.is(":input"),isWidget=isInput&&trigger.is(":checkbox, :radio, select, :button, :submit"),type=trigger.attr("type"),evt=conf.events[type]||conf.events[isInput?(isWidget?'widget':'input'):'def'];if(!effect)throw "Nonexistent effect \""+conf.effect+"\"";evt=evt.split(/,\s*/);if(evt.length!=2)throw "Tooltip: bad events configuration for "+type;trigger.bind(evt[0],function(e){clearTimeout(timer);if(conf.predelay){pretimer=setTimeout(function(){self.show(e)},conf.predelay)}else self.show(e)}).bind(evt[1],function(e){clearTimeout(pretimer);if(conf.delay){timer=setTimeout(function(){self.hide(e)},conf.delay)}else self.hide(e)});if(title&&conf.cancelDefault){trigger.removeAttr("title");trigger.data("title",title)};$.extend(self,{show:function(e){if(!tip){if(tipAttr){tip=$(tipAttr)}else if(conf.tip){tip=$(conf.tip).eq(0)}else if(title){tip=$(conf.layout).addClass(conf.tipClass).appendTo(document.body).hide().append(title)}else{tip=trigger.next();if(!tip.length)tip=trigger.parent().next()};if(!tip.length)throw "Cannot find tooltip for "+trigger};if(self.isShown())return self;tip.stop(true,true);var pos=getPosition(trigger,tip,conf);if(conf.tip)tip.html(trigger.data("title"));e=e||$.Event();e.type="onBeforeShow";fire.trigger(e,[pos]);if(e.isDefaultPrevented())return self;pos=getPosition(trigger,tip,conf);tip.css({position:'absolute',top:pos.top,left:pos.left});shown=true;effect[0].call(self,function(){e.type="onShow";shown='full';fire.trigger(e)});var event=conf.events.tooltip.split(/,\s*/);if(!tip.data("__set")){tip.bind(event[0],function(){clearTimeout(timer);clearTimeout(pretimer)});if(event[1]&&!trigger.is("input:not(:checkbox, :radio), textarea"))tip.bind(event[1],function(e){if(e.relatedTarget!=trigger[0])trigger.trigger(evt[1].split(" ")[0])});tip.data("__set",true)};return self},hide:function(e){if(!tip||!self.isShown())return self;e=e||$.Event();e.type="onBeforeHide";fire.trigger(e);if(e.isDefaultPrevented())return;shown=false;effects[conf.effect][1].call(self,function(){e.type="onHide";fire.trigger(e)});return self},isShown:function(fully){return fully?shown=='full':shown},getConf:function(){return conf},getTip:function(){return tip},getTrigger:function(){return trigger}});$.each("onHide,onBeforeShow,onShow,onBeforeHide".split(","),function(i,name){if($.isFunction(conf[name]))$(self).bind(name,conf[name]);self[name]=function(fn){if(fn)$(self).bind(name,fn);return self}})};$.fn.tooltip=function(conf){var api=this.data("tooltip");if(api)return api;conf=$.extend(true,{},$.tools.tooltip.conf,conf);if(typeof conf.position=='string')conf.position=conf.position.split(/,?\s/);this.each(function(){api=new Tooltip($(this),conf);$(this).data("tooltip",api)});return conf.api?api:this}})(jQuery);
(function($){var t=$.tools.tooltip;t.dynamic={conf:{classNames:"top right bottom left"}}
function getCropping(el){var w=$(window),right=w.width()+w.scrollLeft(),bottom=w.height()+w.scrollTop();return[el.offset().top<=w.scrollTop(),right<=el.offset().left+el.width(),bottom<=el.offset().top+el.height(),w.scrollLeft()>=el.offset().left]}
function isVisible(crop){var i=crop.length;while(i--)if(crop[i])return false;return true};$.fn.dynamic=function(conf){if(typeof conf=='number')conf={speed:conf};conf=$.extend({},t.dynamic.conf,conf);var cls=conf.classNames.split(/\s/),orig;this.each(function(){var api=$(this).tooltip().onBeforeShow(function(e,pos){var tip=this.getTip(),tipConf=this.getConf();if(!orig)orig=[tipConf.position[0],tipConf.position[1],tipConf.offset[0],tipConf.offset[1],$.extend({},tipConf)];$.extend(tipConf,orig[4]);tipConf.position=[orig[0],orig[1]];tipConf.offset=[orig[2],orig[3]];tip.css({visibility:'hidden',position:'absolute',top:pos.top,left:pos.left}).show();var crop=getCropping(tip);if(!isVisible(crop)){if(crop[2]){$.extend(tipConf,conf.top);tipConf.position[0]='top';tip.addClass(cls[0])};if(crop[3]){$.extend(tipConf,conf.right);tipConf.position[1]='right';tip.addClass(cls[1])};if(crop[0]){$.extend(tipConf,conf.bottom);tipConf.position[0]='bottom';tip.addClass(cls[2])};if(crop[1]){$.extend(tipConf,conf.left);tipConf.position[1]='left';tip.addClass(cls[3])};if(crop[0]||crop[2])tipConf.offset[0]*=-1;if(crop[1]||crop[3])tipConf.offset[1]*=-1};tip.css({visibility:'visible'}).hide()});api.onBeforeShow(function(){var c=this.getConf(),tip=this.getTip();setTimeout(function(){c.position=[orig[0],orig[1]];c.offset=[orig[2],orig[3]]},0)});api.onHide(function(){var tip=this.getTip();tip.removeClass(conf.classNames)});ret=api});return conf.api?ret:this}})(jQuery);
(function($){var t=$.tools.tooltip;$.extend(t.conf,{direction:'up',bounce:false,slideOffset:10,slideInSpeed:200,slideOutSpeed:200,slideFade:!$.browser.msie});var dirs={up:['-','top'],down:['+','top'],left:['-','left'],right:['+','left']};t.addEffect("slide",function(done){var conf=this.getConf(),tip=this.getTip(),params=conf.slideFade?{opacity:conf.opacity}:{},dir=dirs[conf.direction]||dirs.up;params[dir[1]]=dir[0]+'='+conf.slideOffset;if(conf.slideFade)tip.css({opacity:0});tip.show().animate(params,conf.slideInSpeed,done)},function(done){var conf=this.getConf(),offset=conf.slideOffset,params=conf.slideFade?{opacity:0}:{},dir=dirs[conf.direction]||dirs.up,sign=""+dir[0];if(conf.bounce)sign=sign=='+'?'-':'+';params[dir[1]]=sign+'='+offset;this.getTip().animate(params,conf.slideOutSpeed,function(){$(this).hide();done.call()})})})(jQuery);
(function($){$.tools=$.tools||{version:'@VERSION'};var typeRe=/\[type=([a-z]+)\]/,numRe=/^-?[0-9]*(\.[0-9]+)?$/,dateInput=$.tools.dateinput,emailRe=/^([a-z0-9_\.\-\+]+)@([\da-z\.\-]+)\.([a-z\.]{2,6})$/i,urlRe=/^(https?:\/\/)?[\da-z\.\-]+\.[a-z\.]{2,6}[#&+_\?\/\w \.\-=]*$/i,v;v=$.tools.validator={conf:{grouped:false,effect:'default',errorClass:'invalid',inputEvent:null,errorInputEvent:'keyup',formEvent:'submit',lang:'en',message:'<div/>',messageAttr:'data-message',messageClass:'error',offset:[0,0],position:'center right',singleError:false,speed:'normal'},messages:{"*":{en:"Please correct this value"}},localize:function(lang,messages){$.each(messages,function(key,msg){v.messages[key]=v.messages[key]||{};v.messages[key][lang]=msg})},localizeFn:function(key,messages){v.messages[key]=v.messages[key]||{};$.extend(v.messages[key],messages)},fn:function(matcher,msg,fn){if($.isFunction(msg)){fn=msg}else{if(typeof msg=='string')msg={en:msg};this.messages[matcher.key||matcher]=msg};var test=typeRe.exec(matcher);if(test)matcher=isType(test[1]);fns.push([matcher,fn])},addEffect:function(name,showFn,closeFn){effects[name]=[showFn,closeFn]}}
function getPosition(trigger,el,conf){var top=trigger.offset().top,left=trigger.offset().left,pos=conf.position.split(/,?\s+/),y=pos[0],x=pos[1];top-=el.outerHeight()-conf.offset[0];left+=trigger.outerWidth()+conf.offset[1];if(/iPad/i.test(navigator.userAgent))top-=$(window).scrollTop();var height=el.outerHeight()+trigger.outerHeight();if(y=='center')top+=height/2;if(y=='bottom')top+=height;var width=trigger.outerWidth();if(x=='center')left-=(width+el.outerWidth())/2;if(x=='left')left-=width;return{top:top,left:left}}
function isType(type){function fn(){return this.getAttribute("type")==type};fn.key="[type="+type+"]";return fn};var fns=[],effects={'default':[function(errs){var conf=this.getConf();$.each(errs,function(i,err){var input=err.input;input.addClass(conf.errorClass);var msg=input.data("msg.el");if(!msg){msg=$(conf.message).addClass(conf.messageClass).appendTo(document.body);input.data("msg.el",msg)};msg.css({visibility:'hidden'}).find("p").remove();$.each(err.messages,function(i,m){$("<p/>").html(m).appendTo(msg)});if(msg.outerWidth()==msg.parent().width())msg.add(msg.find("p")).css({display:'inline'});var pos=getPosition(input,msg,conf);msg.css({visibility:'visible',position:'absolute',top:pos.top,left:pos.left}).fadeIn(conf.speed)})},function(inputs){var conf=this.getConf();inputs.removeClass(conf.errorClass).each(function(){var msg=$(this).data("msg.el");if(msg)msg.css({visibility:'hidden'})})}]};$.each("email,url,number".split(","),function(i,key){$.expr[':'][key]=function(el){return el.getAttribute("type")===key}});$.fn.oninvalid=function(fn){return this[fn?"bind":"trigger"]("OI",fn)};v.fn(":email","Please enter a valid email address",function(el,v){return !v||emailRe.test(v)});v.fn(":url","Please enter a valid URL",function(el,v){return !v||urlRe.test(v)});v.fn(":number","Please enter a numeric value.",function(el,v){return numRe.test(v)});v.fn("[max]","Please enter a value smaller than $1",function(el,v){if(v===''||dateInput&&el.is(":date"))return true;var max=el.attr("max");return parseFloat(v)<=parseFloat(max)?true:[max]});v.fn("[min]","Please enter a value larger than $1",function(el,v){if(v===''||dateInput&&el.is(":date"))return true;var min=el.attr("min");return parseFloat(v)>=parseFloat(min)?true:[min]});v.fn("[required]","Please complete this mandatory field.",function(el,v){if(el.is(":checkbox"))return el.is(":checked");return !!v});v.fn("[pattern]",function(el){var p=new RegExp("^"+el.attr("pattern")+"$");return p.test(el.val())})
function Validator(inputs,form,conf){var self=this,fire=form.add(self);inputs=inputs.not(":button, :image, :reset, :submit")
function pushMessage(to,matcher,returnValue){if(!conf.grouped&&to.length)return;var msg;if(returnValue===false||$.isArray(returnValue)){msg=v.messages[matcher.key||matcher]||v.messages["*"];msg=msg[conf.lang]||v.messages["*"].en;var matches=msg.match(/\$\d/g);if(matches&&$.isArray(returnValue))$.each(matches,function(i){msg=msg.replace(this,returnValue[i])})}else msg=returnValue[conf.lang]||returnValue;to.push(msg)};$.extend(self,{getConf:function(){return conf},getForm:function(){return form},getInputs:function(){return inputs},reflow:function(){inputs.each(function(){var input=$(this),msg=input.data("msg.el");if(msg){var pos=getPosition(input,msg,conf);msg.css({top:pos.top,left:pos.left})}});return self},invalidate:function(errs,e){if(!e){var errors=[];$.each(errs,function(key,val){var input=inputs.filter("[name='"+key+"']");if(input.length){input.trigger("OI",[val]);errors.push({input:input,messages:[val]})}});errs=errors;e=$.Event()};e.type="onFail";fire.trigger(e,[errs]);if(!e.isDefaultPrevented())effects[conf.effect][0].call(self,errs,e);return self},reset:function(els){els=els||inputs;els.removeClass(conf.errorClass).each(function(){var msg=$(this).data("msg.el");if(msg){msg.remove();$(this).data("msg.el",null)}}).unbind(conf.errorInputEvent||'');return self},destroy:function(){form.unbind(conf.formEvent+".V").unbind("reset.V");inputs.unbind(conf.inputEvent+".V").unbind("change.V");return self.reset()},checkValidity:function(els,e){els=els||inputs;els=els.not(":disabled");if(!els.length)return true;e=e||$.Event();e.type="onBeforeValidate";fire.trigger(e,[els]);if(e.isDefaultPrevented())return e.result;var errs=[];els.not(":radio:not(:checked)").each(function(){var msgs=[],el=$(this).data("messages",msgs),event=dateInput&&el.is(":date")?"onHide.v":conf.errorInputEvent+".v";el.unbind(event);$.each(fns,function(){var fn=this,match=fn[0];if(el.filter(match).length){var returnValue=fn[1].call(self,el,el.val());if(returnValue!==true){e.type="onBeforeFail";fire.trigger(e,[el,match]);if(e.isDefaultPrevented())return false;var msg=el.attr(conf.messageAttr);if(msg){msgs=[msg];return false}else pushMessage(msgs,match,returnValue)}}});if(msgs.length){errs.push({input:el,messages:msgs});el.trigger("OI",[msgs]);if(conf.errorInputEvent)el.bind(event,function(e){self.checkValidity(el,e)})};if(conf.singleError&&errs.length)return false});var eff=effects[conf.effect];if(!eff)throw "Validator: cannot find effect \""+conf.effect+"\"";if(errs.length){self.invalidate(errs,e);return false}else{eff[1].call(self,els,e);e.type="onSuccess";fire.trigger(e,[els]);els.unbind(conf.errorInputEvent+".v")};return true}});$.each("onBeforeValidate,onBeforeFail,onFail,onSuccess".split(","),function(i,name){if($.isFunction(conf[name]))$(self).bind(name,conf[name]);self[name]=function(fn){if(fn)$(self).bind(name,fn);return self}});if(conf.formEvent)form.bind(conf.formEvent+".V",function(e){if(!self.checkValidity(null,e))return e.preventDefault()});form.bind("reset.V",function(){self.reset()});if(inputs[0]&&inputs[0].validity)inputs.each(function(){this.oninvalid=function(){return false}});if(form[0])form[0].checkValidity=self.checkValidity;if(conf.inputEvent)inputs.bind(conf.inputEvent+".V",function(e){self.checkValidity($(this),e)});inputs.filter(":checkbox, select").filter("[required]").bind("change.V",function(e){var el=$(this);if(this.checked||(el.is("select")&&$(this).val()))effects[conf.effect][1].call(self,el,e)});var radios=inputs.filter(":radio").change(function(e){self.checkValidity(radios,e)});$(window).resize(function(){self.reflow()})};$.fn.validator=function(conf){var instance=this.data("validator");if(instance){instance.destroy();this.removeData("validator")};conf=$.extend(true,{},v.conf,conf);if(this.is("form")){return this.each(function(){var form=$(this);instance=new Validator(form.find(":input"),form,conf);form.data("validator",instance)})}else{instance=new Validator(this,this.eq(0).closest("form"),conf);return this.data("validator",instance)}}})(jQuery);
function dataTable(){if(dataTable.instance!==undefined)return dataTable.instance;var that=function(){};that.init=function(){this.tableRowClassName=null;this.tableNode=null;this.tableOrder='';this.tableOrderDir=null;this.tableOffset=-1;this.tableParams={};this.tableLetter='';this.serviceURL='';this.filterFormId='';this.lastOrderElement=null;this.customParams='';this.defaultSubmit=false;this.defaultName='';this.onLoad=null;this.busy=false;this.lastUpdateCount=-1;this.lastOrderButton=null;this.timeOutCounter=0;dataTable.instance=this};that.checkDefaultName=function(name){return((name===undefined)||(name===null))?this.defaultName:name};that.checkUpdateTimeout=function(name,counter){name=this.checkDefaultName(name);if(counter==this.timeOutCounter)this.update(name,this.updateCount)};that.updateWithTimeout=function(name,count){name=this.checkDefaultName(name);this.timeOutCounter++;var counter=this.timeOutCounter;this.updateName=name;this.updateCount=count;setTimeout('dataTable().checkUpdateTimeout("'+name+'",'+counter+')',500)};that.tdClass=function(tr,oldClassname,newClassname){var element,i,l=tr.childNodes.length;for(i=0;i<l;i++)if(tr.childNodes[i].nodeName.toLowerCase()=='td'){element=tr.childNodes[i];element.className=element.className.replace(element.className.match(' '+oldClassname)?' '+oldClassname:oldClassname,'');element.className+=' '+newClassname}};that.hrefText=function(node){var childNode,nodeName,html='',i,l=node.childNodes.length;for(i=0;i<l;i++){childNode=node.childNodes[i];nodeName=childNode.nodeName.toLowerCase();switch(nodeName){case'a':html+=(childNode.innerHTML!==undefined)?childNode.innerHTML:childNode.text;break;case'#text':html+=childNode.data;break}};return html};that.clearTable=function(name){var element=document.getElementById(name+'_table'),childNodes=element.childNodes,done,i,j,k;name=this.checkDefaultName(name);this.tableRowClassName=null;for(i=0;i<childNodes.length;i++)if(childNodes[i].nodeName=='TBODY'){this.tableNode=childNodes[i];childNodes=this.tableNode.childNodes;done=false;j=0;while(j<childNodes.length)if(childNodes[j].nodeName=='TR'){if(done){if(this.tableRowClassName===null)for(k=0;k<childNodes[j].childNodes.length;k++){childNode=childNodes[j].childNodes[k];if(childNode.nodeName=='TD')this.tableRowClassName=childNode.className};this.tableNode.removeChild(childNodes[j])}else{done=true;j++}}else j++;break}};that.getCSVURL=function(name,all){all=(all===undefined)?0:all;return'/data/xml/datatable/csvExport'+this.makeParamString(name)+'&all='+all};that.showDataTable=function(name){name=this.checkDefaultName(name);$("[id='"+name+"_noresult']").hide();$("[id='"+name+"_table']").fadeTo('normal',1.0)};that.hideDataTable=function(name){name=this.checkDefaultName(name);$("[id='"+name+"_table']").hide();$("[id='"+name+"_noresult']").show()};that.handleLocation=function(name,location){document.location.href=location};that.handleCall=function(name,callData){var i=callData.indexOf(','),method=callData.substr(0,i),params=callData.substr(i+1,callData.length-i-1);this[method](name,params)};that.showContent=function(xmlHttp){var xmlNode,dataTableName=null,newUpdate,colspanInfo,colspans,rows,row,key,colCount,item,classes,clazz,order,loadingImage,loadingFunction,cellMouseDown,classInfo,element,tr,td,i,j,k;this.busy=false;list=arrayFromXML(xmlHttp.responseXML,'list','item');xmlNode=findPath(xmlHttp.responseXML.childNodes[0],'list.name');if((xmlNode!==null)&&(xmlNode.childNodes.length>0))dataTableName=xmlNode.childNodes[0].nodeValue;xmlNode=findPath(xmlHttp.responseXML.childNodes[0],'list.update');if((xmlNode!==null)&&(xmlNode.childNodes.length>0))newUpdate=parseInt(xmlNode.childNodes[0].nodeValue,10);if(newUpdate<this.lastUpdateCount){this.showDataTable(dataTableName);return};this.lastUpdateCount=newUpdate;if(list.length===0){this.hideDataTable(dataTableName)}else if(list.length>0){this.clearTable(dataTableName);colspanInfo={};xmlNode=findPath(xmlHttp.responseXML.childNodes[0],'list.colspan');if((xmlNode!==null)&&(xmlNode.childNodes.length>0)){colspans=xmlNode.childNodes[0].nodeValue.split(',');for(i=0;i<colspans.length;i++){item=colspans[i].split('=');colspanInfo[item[0]]=item[1]}};classInfo={};xmlNode=findPath(xmlHttp.responseXML.childNodes[0],'list.classes');if((xmlNode!==null)&&(xmlNode.childNodes.length>0)){classes=xmlNode.childNodes[0].nodeValue.split(',');for(clazz in classes)if(classes[clazz].split!==undefined){item=classes[clazz].split('=');classInfo[item[0]]=item[1]}};var itemClick=function(){this.dataTable.handleCall(dataTableName,this.callData)},itemRollOut=function(){dataTable().tdClass(this,this.rollout,this.rollover)},itemRollOver=function(){dataTable().tdClass(this,this.rollover,this.rollout)};for(i=0;i<list.length;i++){rows=list[i];active=false;callData='';rollover='';rollout='';firstTR=null;for(j in rows)if(rows.hasOwnProperty(j)){switch(j){case'active':active=(rows[j]=='true');break;case'mousedown':callData=rows[j];break;case'rollover':rollover=rows[j];break;case'rollout':rollout=rows[j];break;default:if(j.substr(0,3)=='row'){tr=document.createElement('tr');if(firstTR===null)firstTR=tr;if(active){if(classInfo.activerow!==undefined)tr.className+=' '+classInfo.activerow}else if(classInfo.inactiverow!==undefined)tr.className+=' '+classInfo.inactiverow;if(this.tableNode!==undefined)this.tableNode.appendChild(tr);row=rows[j];cellCallData='';var colspan;for(k in row)if(k.substring(0,4)==='clmd'){cellCallData=row[k]}else if(k.substring(0,5)==='clmcs'){colspan=row[k]}else if(colspan===undefined||colspan>0){key=j+'.'+k;colCount=(colspanInfo[key]!==undefined)?colspanInfo[key]:0;if(colspan>1)colCount=colspan;td=document.createElement('td');if(colCount>0)td.colSpan=colCount;tr.appendChild(td);td.innerHTML=row[k];if(classInfo[key]!==undefined){td.className=classInfo[key]}else if((this.cellClassName!==undefined)&&(this.cellClassName!==''))td.className=this.cellClassName;if(active){if(classInfo.activecell!==undefined)td.className+=' '+classInfo.activecell}else if(classInfo.inactivecell!==undefined)td.className+=' '+classInfo.inactivecell;if(cellCallData!==''){td.callData=cellCallData;td.onclick=itemClick;td.dataTable=this};cellCallData=''}}};if((firstTR!==null)&&(rollover!=='')&&(rollout!=='')){if(!active){firstTR.rollover=rollover;firstTR.rollout=rollout;firstTR.onmouseover=itemRollOver;firstTR.onmouseout=itemRollOut};if(callData!==''){firstTR.callData=callData;firstTR.onclick=itemClick;firstTR.dataTable=this};rollout='';rollover='';callData=''}}};this.showDataTable(dataTableName)};xmlNode=findPath(xmlHttp.responseXML.childNodes[0],'list.paging');if(xmlNode!==null){element=document.getElementById(dataTableName+'_pages');if(element!==null)element.innerHTML=xmlNode.childNodes[0].nodeValue};xmlNode=findPath(xmlHttp.responseXML.childNodes[0],'list.range');if(xmlNode!==null){element=document.getElementById(dataTableName+'_range');if(element!==null)element.innerHTML=xmlNode.childNodes[0].nodeValue};xmlNode=findPath(xmlHttp.responseXML.childNodes[0],'list.letters');if(xmlNode!==null){element=document.getElementById(dataTableName+'_letters');if(element!==null)element.innerHTML=xmlNode.childNodes[0].nodeValue};xmlNode=findPath(xmlHttp.responseXML.childNodes[0],'list.order');if(xmlNode!==null){var hasIcon,icon,colName,inputEl,arrowUp='\u25BC',arrowDown='\u25B2',iconLength=String(' '+arrowUp).length;order=xmlNode.childNodes[0].nodeValue;order=order.split(',');element=document.getElementById(dataTableName+'_'+order[0]);if(this.lastOrderElement!==null){el=$(this.lastOrderElement);el.removeClass('SortUp').removeClass('SortDown')};if(element!==null){var removeArrowIcons=function(element,dataTableId){el=$(element);el.removeClass('Sort'+((order[1]=='ASC')?'Up':'Down')).addClass('Sort'+((order[1]=='ASC')?'Down':'Up'));$('.SortInput','#'+dataTableId).each(function(index,inputEl){hasIcon=(inputEl.value.indexOf(arrowDown)>-1||inputEl.value.indexOf(arrowUp)>-1)?true:false;colName=hasIcon?inputEl.value.substring(0,inputEl.value.length-iconLength):inputEl.value;inputEl.value=colName})};removeArrowIcons(element,dataTableName+'_table');hasIcon=(element.value.indexOf(arrowDown)>-1||element.value.indexOf(arrowUp)>-1)?true:false;colName=hasIcon?element.value.substring(0,element.value.length-iconLength):element.value;icon=' '+((order[1]=='ASC')?arrowDown:arrowUp);element.value=colName+''+icon};this.lastOrderElement=element};loadingImage=document.getElementById(dataTableName+'_loading');if(loadingImage!==null)loadingImage.style.visibility='hidden';loadingFunction=document.getElementById(dataTableName+'_onload');if((loadingFunction!==null)&&(loadingFunction.value!==''))eval(loadingFunction.value)};that.getFilterParams=function(name,count){var filterParams={},orderDir,elements,element,i;if(count===undefined)count='';if(this.filterFormId!==''){var form=document.getElementById(this.filterFormId);if(form!==null){elements=form.elements;for(i=0;i<elements.length;i++){element=elements[i];if((element.name!=='')&&(element.name.substr(0,3)!='___'))if(element.type==='radio'){if(element.checked)filterParams[element.name]=element.value}else if(element.type==='checkbox'){if(element.checked)filterParams[element.name]='on'}else if(element.value!==undefined)filterParams[element.name]=element.value}}};$.each(this.tableParams,function(index,value){filterParams[index]=value});if(this.tableOrderDir!==null)filterParams.dir=this.tableOrderDir;filterParams.ajax_post='true';filterParams.name=this.checkDefaultName(name);filterParams.order=this.tableOrder;filterParams.offset=this.tableOffset;filterParams.letter=this.tableLetter;filterParams.count=count;return filterParams};that.makeParamString=function(name,count){var filterParams=this.getFilterParams(name,count),paramString='';$.each(filterParams,function(index,value){if(paramString===''){paramString+='?'}else paramString+='&';paramString+=index+"="+escape(value)});return paramString};that.update=function(name,count){if(this.defaultSubmit){this.defaultSubmit=false;return};if(this.serviceURL==='')return true;if($('#'+name+'_table').css('display')!=='none')$('#'+name+'_table').fadeTo('normal',0.5);this.busy=true;this.lastGetString=this.makeParamString(name,count);requestXMLDoc(this.serviceURL+this.lastGetString,this.showContent,this,'POST');this.tableOffset=-1;this.tableOrder='';this.tableOrderDir=null;return false};that.refresh=function(name,params){var previousScrollTop=$('html').scrollTop(),i;name=this.checkDefaultName(name);this.tableParams={};if(params!==undefined)for(i in params)if(params.hasOwnProperty(i))this.tableParams[i]=params[i];this.update(name);this.tableParams={};$('html').scrollTop(previousScrollTop)};that.submit=function(name,inputName){var urlParams,form,element,elements,param,i,params={};name=this.checkDefaultName(name);form=document.getElementById(name);if(form!==null){elements=form.elements;for(i=0;i<elements.length;i++){element=elements[i];if((element.name!==undefined)&&(element.name!=='')&&(element.name.substr(0,3)!=='___')&&(element.type!=='button'))if((element.type!=='radio'&&element.type!=='checkbox')||(element.checked===true))params[element.name]=element.value}};this.busy=true;params.ajax_post='true';params.name=name;params[inputName]='true';var filterParams=this.getFilterParams(name);$.each(filterParams,function(index,value){params[index]=value});$.each(this.customParams,function(index,value){params[index]=value});$.post(this.serviceURL,params,function(data,textStatus,XMLHttpRequest){that.showContent(XMLHttpRequest)})};that.changeOffset=function(name,offset){name=this.checkDefaultName(name);if(document.getElementById(name+'_offset')!==null)document.getElementById(name+'_offset').value=offset;this.tableOffset=offset;return false};that.changeLetter=function(element,letter){this.tableLetter=letter};that.toggleOrder=function(name,column,button){var dataTableOrder=document.getElementById('dataTableOrder');name=this.checkDefaultName(name);if((dataTableOrder!==null)&&(dataTableOrder.value!=='')){this.lastOrderButton=document.getElementById(dataTableOrder.value);dataTableOrder.value=''};this.tableOrder=column;this.tableOrderDir=null;if(button!==undefined)this.lastOrderButton=button;return false};that.changeOrder=function(orderInfo,name){if(typeof orderInfo==='string'){if(orderInfo==='-')return;orderInfo=eval('('+orderInfo+')')};this.tableOrder=orderInfo.order;this.tableOrderDir=orderInfo.dir;this.update(name);return false};that.allowDefaultSubmit=function(name){var html,filterElement,form,element,elements,i;name=this.checkDefaultName(name);if((name!==undefined)&&(this.filterFormId!==undefined)&&(this.filterFormId!=='')){filterElement=document.getElementById(name+'_filters');if(filterElement!==null){form=document.getElementById(this.filterFormId);elements=form.elements;html='';i=elements.length;while(i>0){i--;element=elements[i];if((element.name!=='')&&(element.name.substr(0,3)!=='___'))if((element.type==='radio')||(element.type==='checkbox')){if(element.checked)html+='<input name="'+element.name+'" type="hidden" value="on"/>'}else if(element.value!==undefined)html+='<input name="'+element.name+'" type="hidden" value="'+element.value+'"/>'};filterElement.innerHTML=html}};this.defaultSubmit=true};that.setServiceURL=function(serviceURL){this.serviceURL=serviceURL};that.setFilterFormId=function(filterFormId){this.filterFormId=filterFormId};that.setCellClassName=function(cellClassName){this.cellClassName=cellClassName};that.toString=function(){return'DataTable[]'};that.init();return that};

