var PulseEnergy=PulseEnergy||{};var PE=PulseEnergy;window.PE=PulseEnergy;PulseEnergy.RssFeedModel=(function(){function RssFeedModel(url){this.url=url;this.items=ko.observableArray();}RssFeedModel.prototype.init=function(){var yqlUrl="https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20rss%20where%20url%3D'"+encodeURIComponent(this.url)+"'&format=json&callback=?";var that=this;$.getJSON(yqlUrl,function(data){if(!data||!data.query||!data.query.results){return;}_.each(data.query.results,function(result){that.items(result);});});};return RssFeedModel;}());PulseEnergy.Timer=(function(){function Timer(){var id;this.cancel=function(){if(id){window.clearTimeout(id);id=null;}};this.defer=function(callable,delay){id=window.setTimeout(function(){callable();id=null;},delay);};}Timer.cancellable=function($container,trigger,cancel,delay,callable){var timer=new Timer();$container.bind(trigger,function(){timer.defer(callable,delay);});$container.bind(cancel,function(){timer.cancel();});return timer;};return Timer;}());var PulseEnergy=PulseEnergy||{};PulseEnergy.ajas=PulseEnergy.ajas||{};PulseEnergy.ajas.ABORT_STATUS=0;PulseEnergy.ajas.get=function(url,data,successCallback,failureCallback){PulseEnergy.ajas.request(url,"GET",data,successCallback,failureCallback);};PulseEnergy.ajas.getAsPost=function(url,data,successCallback,failureCallback){PulseEnergy.ajas.request(url,"POST",PulseEnergy.ajas.addMethodToData(data,"GET"),successCallback,failureCallback);};PulseEnergy.ajas.post=function(url,data,successCallback,failureCallback){PulseEnergy.ajas.request(url,"POST",data,successCallback,failureCallback);};PulseEnergy.ajas.put=function(url,data,successCallback,failureCallback){PulseEnergy.ajas.request(url,"POST",PulseEnergy.ajas.addMethodToData(data,"PUT"),successCallback,failureCallback);};PulseEnergy.ajas.delete_=function(url,successCallback,failureCallback){PulseEnergy.ajas.deleteWithData(url,{},successCallback,failureCallback);};PulseEnergy.ajas.deleteWithData=function(url,data,successCallback,failureCallback){PulseEnergy.ajas.request(url,"POST",PulseEnergy.ajas.addMethodToData(data,"DELETE"),successCallback,failureCallback);};PulseEnergy.ajas.addMethodToData=function(data,method){var dataWithMethod;if(typeof(data)==="string"){dataWithMethod=data+"&_method="+method;}else{dataWithMethod=data;dataWithMethod._method=method;}return dataWithMethod;};PulseEnergy.ajas.request=function(url,type,data,successCallback,failureCallback){if(url===""&&type==="POST"){url="?_=junkParamSoPostToEmptySucceeds";}if(typeof(failureCallback)==="undefined"){failureCallback=PulseEnergy.ajas.notifyError;}if(typeof(successCallback)==="undefined"){successCallback=$.noop;}$.ajax({type:type,url:url,data:data,success:PulseEnergy.ajas.successCallback(successCallback,failureCallback),error:PulseEnergy.ajas.errorCallback(successCallback,failureCallback),dataType:"json",cache:false});};PulseEnergy.ajas.successCallback=function(successCallback,failureCallback){var wrapped=function(data,status,xhr){if(data.error){failureCallback(data.error);}else{successCallback(data.data);}};return wrapped;};PulseEnergy.ajas.errorCallback=function(successCallback,failureCallback){var wrapped=function(xhr,status,ex){if(status!=="parsererror"){try{var data=$.parseJSON(xhr.responseText);if(data.error){failureCallback(data.error);}else{successCallback(data.data);}return;}catch(ex2){}}failureCallback({message:"Sorry, an unspecified error has occurred.",data:{ex:ex,status:xhr.status,statusText:xhr.statusText}});};return wrapped;};PulseEnergy.ajas.notifyError=function(error){if(error.data&&error.data.status===PulseEnergy.ajas.ABORT_STATUS){return;}if(!PulseEnergy.ajas.$popup){PulseEnergy.ajas.$popup=$("<div/>").dialog({title:"Error",autoOpen:false,modal:true,buttons:{Ok:function(){$(this).dialog("close");}}});}if(!PulseEnergy.isBlank(error.message)){PulseEnergy.ajas.$popup.text(error.message);}PulseEnergy.ajas.$popup.dialog("open");};var PulseEnergy=PulseEnergy||{};PulseEnergy.splat=function(obj){if(!obj||obj.constructor!=Array){obj=[obj];}return obj;};PulseEnergy.getRandomElement=function(array){return array[Math.floor(Math.random()*array.length)];};var PulseEnergy=PulseEnergy||{};PulseEnergy.collections={};PulseEnergy.collections.mapValues=function(map){return _.values(map);};PulseEnergy.collections.intersect=function(arrays,equalityFn){if(typeof(equalityFn)==="undefined"){equalityFn=PulseEnergy.collections.defaultEquality;}var commonArray=[];if(arrays.length===0){return commonArray;}commonArray=arrays[0];for(var i=1;i<arrays.length;i++){var newCommonArray=[];for(var j=0;j<commonArray.length;j++){var value=commonArray[j];if(PulseEnergy.collections.inArray(value,arrays[i],equalityFn)!==-1){newCommonArray.push(value);}}commonArray=newCommonArray;}return commonArray;};PulseEnergy.collections.inArray=function(target,array,equalityFn){if(typeof(equalityFn)==="undefined"){equalityFn=PulseEnergy.collections.defaultEquality;}var index=-1;$.each(array,function(i,value){if(equalityFn(target,value)){index=i;}});return index;};PulseEnergy.collections.commonProperties=function(objects,equalityFn){if(typeof(equalityFn)==="undefined"){equalityFn=PulseEnergy.collections.defaultEquality;}var commonObject={};if(objects.length===0){return commonObject;}$.each(objects[0],function(property,value){var allSame=true;for(var i=1;i<objects.length&&allSame;i++){var otherValue=objects[i][property];if(!equalityFn(value,otherValue)){allSame=false;}}if(allSame){commonObject[property]=value;}});return commonObject;};PulseEnergy.collections.arrayGroup=function(array,maxSize){var multiArray=[];for(var i=0;i<array.length;i++){var arrayGrouping=Math.floor(i/maxSize);if(typeof(multiArray[arrayGrouping])==="undefined"){multiArray[arrayGrouping]=[];}multiArray[arrayGrouping].push(array[i]);}return multiArray;};PulseEnergy.collections.defaultEquality=function(a,b){return a===b;};PulseEnergy.collections.idEquality=function(a,b){if(a!==null&&b!==null&&typeof(a)==="object"&&typeof(b)==="object"&&typeof(a.id)!=="undefined"&&typeof(b.id)!=="undefined"){return PulseEnergy.collections.defaultEquality(a.id,b.id);}return PulseEnergy.collections.defaultEquality(a,b);};PulseEnergy.collections.sortAscending=function(a,b){if(typeof(a)==="number"&&isNaN(a)){return 1;}if(typeof(b)==="number"&&isNaN(b)){return -1;}return(a>b)?1:-1;};PulseEnergy.collections.sortDescending=function(a,b){if(typeof(a)==="number"&&isNaN(a)){return 1;}if(typeof(b)==="number"&&isNaN(b)){return -1;}return(a<b)?1:-1;};PulseEnergy.collections.average=function(obj,iterator,context){var result=0;_.each(obj,function(value,index,list){result+=iterator?iterator.call(context,value,index,list):value;});return result/obj.length;};var PulseEnergy=PulseEnergy||{};PulseEnergy.basePath=PulseEnergy.basePath||"";PulseEnergy.getBasePath=function(orgId){if(orgId===undefined||orgId===null){return(PulseEnergy.basePath!==undefined)?PulseEnergy.basePath:"";}else{return"/o/"+orgId;}};PulseEnergy.getRoute=function(type){return PulseEnergy.basePath+PulseEnergy.routes[type];};PulseEnergy.getRouteToNewForm=function(type){return PulseEnergy.getRoute(type)+"?_action=new";};PulseEnergy.getRouteToEditForm=function(type){return PulseEnergy.getRoute(type)+"?_action=edit";};PulseEnergy.getRouteTo=function(type,id){var route=PulseEnergy.getRoute(type);if(!id){return route;}if(route.indexOf("{")!=-1){return route.replace(/\{.+\}/,id);}return route+"/"+id;};PulseEnergy.getRouteToInOrg=function(type,orgId,id){return PulseEnergy.getBasePath(orgId)+PulseEnergy.routes[type]+"/"+id;};PulseEnergy.getRouteToAction=function(type,id,args){var url=PulseEnergy.getRouteTo(type,id)+"/";if(typeof args==="string"||typeof args==="number"){url+=args;}else{if(typeof args==="object"){for(var i=0;i<args.length/2;i=i+2){url+=args[i]+"/"+args[i+1];}}}return url;};PulseEnergy.getRouteWithDeepLinking=function(type,pathNames){var url=PulseEnergy.getRoute(type)+"/";if(!_.isEmpty(pathNames)){url+="#!";}_.each(pathNames,function(pathName){url+="/"+pathName;});return url;};PulseEnergy.getNonRestRouteToInOrg=function(type,orgId,id,action){return PulseEnergy.getBasePath(orgId)+PulseEnergy.routes[type]+"/"+action+"?id="+id;};var PulseEnergy=PulseEnergy||{};PulseEnergy.date={};PulseEnergy.MILLIS_PER_DAY=60*60*24*1000;PulseEnergy.MILLIS_PER_WEEK=PulseEnergy.MILLIS_PER_DAY*7;(function(){function zp2(value){return value>=10?value:"0"+value;}function zp3(value){return value>=100?value:"0"+(value>=10?value:"0"+value);}PulseEnergy.date.printLocalDate=function(date,granularity){if(typeof date==="object"){date=PulseEnergy.date.toIsoLocalDate(date);}if(granularity==="millis"){return date.replace(/T(\d+:\d+:\d+)(\.\d+)?.*$/," $1$2");}else{if(granularity==="seconds"){return date.replace(/T(\d+:\d+:\d+).*$/," $1");}else{return date.replace(/T(\d+:\d+).*$/," $1");}}};PulseEnergy.date.toIsoLocalDate=function(date){var datePart=date.getFullYear()+"-"+zp2(date.getMonth()+1)+"-"+zp2(date.getDate());var timePart=zp2(date.getHours())+":"+zp2(date.getMinutes())+":"+zp2(date.getSeconds())+"."+zp3(date.getMilliseconds());return datePart+"T"+timePart;};PulseEnergy.date.formatDateYMD=function(time){var d=new Date(time);return d.getFullYear()+"-"+zp2(d.getMonth()+1)+"-"+zp2(d.getDate());};PulseEnergy.date.formatDateYMDforUTC=function(time){var d=new Date(time);return d.getUTCFullYear()+"-"+zp2(d.getUTCMonth()+1)+"-"+zp2(d.getUTCDate());};PulseEnergy.date.formatDateTimeago=function(time,i18n_lang){var d=new Date(time);i18n_lang=i18n_lang||"en";var monthStrings={en:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],fr:["jav","fevr","mars","avril","mai","juin","juil","aout","sept","oct","nov","dec"]};var pad=function(val,len){val=String(val);len=len||2;while(val.length<len){val="0"+val;}return val;};var DAY=86400000;var mon=monthStrings[i18n_lang][d.getMonth()];var day=d.getDate();var hr=(d.getHours()>12)?d.getHours()-12:d.getHours();var min=d.getMinutes();var ampm=(d.getHours()>=12)?"pm":"am";var msGap=+new Date()-d;var fmtDate=msGap<DAY?hr+":"+pad(min)+ampm:mon+" "+day;var timeAgo=PulseEnergy.timeago(d,i18n_lang);return fmtDate+" ("+timeAgo+")";};}());$(function(){$.datepicker.setDefaults({dateFormat:"yy-mm-dd",showOn:"focus",buttonImage:"/images/1024/calendar.png",buttonImageOnly:false,changeMonth:true,changeYear:true,minDate:new Date(1990,1-1,1),maxDate:"+1m",yearRange:"1990:"+new Date().getFullYear()});});var PulseEnergy=PulseEnergy||{};PulseEnergy.CONFIRM_MESSAGE="Are you sure?";PulseEnergy.getConfirmationMessage=function(element){var customMessage=$(element).data("confirmationMessage");if(typeof customMessage!=="undefined"){return customMessage.replace(/\\n/g,"\n");}return PulseEnergy.CONFIRM_MESSAGE;};PulseEnergy.confirmClickMessage=function(e){if(confirm(PulseEnergy.getConfirmationMessage(e.target))){return true;}e.stopImmediatePropagation();return false;};$(function(){$("a.confirmClick").live("click",PulseEnergy.confirmClickMessage);$("input.confirmClick").live("click",PulseEnergy.confirmClickMessage);});function showFlash(){$(".flash, .announcementFlash").each(function(){var flash=$(this);if(!flash.hasClass("errorFlash")&&!flash.hasClass("noX")){flash.prepend("<div class='close_flash_message'>x</div>");$(".close_flash_message").click(function(){$(this).parent().remove();$(window).resize();});}flash.delay(500).fadeIn("slow",function(){$(window).resize();});});}function flashSuccess(message){$(".flash").val(message).removeClass("errorFlash noticeFlash").addClass("successFlash");showFlash();}$(function(){showFlash();});var PulseEnergy=PulseEnergy||{};PulseEnergy.form=PulseEnergy.form||{};PulseEnergy.form.buttons=function(form){var updateFormAction=function(action){var _methodInput=form.find("input[name='_method']");if(_methodInput.length===0){form.append("<input type='hidden' name='_method' value='"+action+"'/>");}else{_methodInput.attr("value",action);}form.attr("method","POST");form.submit();};form.find("input[name='save']").each(function(){var saveButton=$(this);saveButton.unbind("click").bind("click",function(){updateFormAction("POST");});});form.find("input[name='delete']").each(function(){var deleteButton=$(this);deleteButton.unbind("click").bind("click",function(){updateFormAction("DELETE");});});};PulseEnergy.form.ajaxOnClick=function(e){var elt=$(e.currentTarget);var data=e.data!==null?e.data:{};var url="";if(typeof data.url==="string"){url=data.url;}else{if(typeof data.url==="function"){url=data.url();}}var eltName=elt.attr("name");var form=elt.closest("form");var flash=form.find("span[name='flash']");var successCallback=(typeof data.successCallback==="function")?data.successCallback:$.noop;var failureCallback=(typeof data.failureCallback==="function")?data.failureCallback:$.noop;var ajaxFunction=$.noop;var endingFlash=function(response,defaultMessage){if(response.flash){flash.text(response.flash.message).show();}else{flash.text(defaultMessage).show();}setTimeout(function(){flash.fadeOut("slow",function(){flash.text("");});},2000);};var startingFlash=function(){var startingFlashMessage="Processing...";if(eltName=="save"){ajaxFunction=PulseEnergy.ajas.post;startingFlashMessage="Saving...";}else{if(eltName=="delete"){ajaxFunction=PulseEnergy.ajas.deleteWithData;startingFlashMessage="Deleting...";}}flash.text(startingFlashMessage).show();};startingFlash();ajaxFunction(url,form.serialize(),function(data){form.find(".error").text("");endingFlash(data,"Completed.");successCallback(data);},function(error){form.find(".formError").text(error.message);endingFlash(error,"Unable to complete requested operation.");form.find(".error").text("");if(typeof(error.errors)!=="undefined"){for(var i=0;i<error.errors.length;i++){form.find("#error_"+PulseEnergy.onlyAlphanumeric(error.errors[i].location)).text(error.errors[i].message);}}failureCallback(error);});};PulseEnergy.getAutoFocus=function(){var firstFormInput=$("form :text[class!=date]:visible:first");if(firstFormInput.length){return firstFormInput;}var filterInput=$(".dataTables_filter :text:first");if(filterInput.length){return filterInput;}return false;};PulseEnergy.helpTooltipOptions={style:{border:{width:1,color:"#3b5998"},background:"#eee",width:300,color:"#333"},show:{when:{event:"click"}},hide:{when:{event:"unfocus"}},position:{corner:{target:"rightMiddle",tooltip:"leftMiddle"},adjust:{x:5,screen:true}}};PulseEnergy.indicateRequiredFields=function(){$("[required]").each(function(){$(this).prev("label").addClass("required");});$(".required").each(function(){PulseEnergy.indicateRequiredField($(this));});};PulseEnergy.indicateRequiredField=function(field){var temp=field.html();field.empty().append('<span title="This field is required." style="cursor:help;">'+temp+'<em class="requiredField">*</em></span>');};PulseEnergy.prepareInlineHelpTooltips=function(){if(!$(".inlineHelp").length){return;}$(".inlineHelp").each(function(){PulseEnergy.prepareInlineHelpTooltip($(this));});};PulseEnergy.prepareInlineHelpTooltip=function($element){var options=$.extend(true,{},PulseEnergy.helpTooltipOptions,PulseEnergy.customHelpTooltipOptions);var tagContent=$element.html();if(tagContent&&tagContent!=="?"){options.content={text:tagContent};}$element.html("?").qtip(options).show();};PulseEnergy.refreshTemplateOnDropdownChange=function(selectElt,backingVarName,propertyName){var tmplItem=$.tmplItem(selectElt);tmplItem.data[backingVarName][propertyName]=selectElt.options[selectElt.selectedIndex].value;tmplItem.update();};function postBackForm(form){if("create"==form.attr("action")||"new"==form.attr("action")){form.attr("action","new");}else{form.attr("action","edit");}form.submit();}function resetFiltersToDefault(){var filtersReset=[];$(".filter select").each(function(){var firstOption=$(this).children(":first");if($(this).is(":enabled")&&!firstOption.attr("selected")){firstOption.attr("selected","selected");filtersReset.push($(this));}});return filtersReset;}function fixInputNameAndIds(parentElement,pathToChange,newIndex){var nameRegex=new RegExp(pathToChange+"\\[\\d+\\]","gi");var nameReplaceText=pathToChange+"["+newIndex+"]";var idRegex=new RegExp(pathToChange+"\\d+","gi");var idReplaceText=pathToChange+newIndex;parentElement.find(":input").each(function(){if(this.name){this.name=this.name.replace(nameRegex,nameReplaceText);}if(this.id){this.id=this.id.replace(idRegex,idReplaceText);}});}function isNumeric(val){return val&&/^-?\d+(\.\d+)?$/.test(val+"");}$(function(){var focusTarget=PulseEnergy.getAutoFocus();if(focusTarget!==false){focusTarget.focus();}PulseEnergy.indicateRequiredFields();PulseEnergy.prepareInlineHelpTooltips();$("form").each(function(){});});var PulseEnergy=PulseEnergy||{};PulseEnergy.ManagementChart=function($chart,apiKey,options){this.$chart=$chart;this.apiKey=apiKey;this.itemsInChart=ko.observableArray([]);this.options=$.extend(true,{},this.defaultOptions,options);this.createChart();this.start=ko.observable(new Date());this.start.subscribe(_.bind(this.reloadData,this));this.end=ko.observable(null);this.end.subscribe(_.bind(this.reloadData,this));this.interval=ko.observable(PulseEnergy.TimeInterval.Week);this.interval.subscribe(_.bind(this.reloadData,this));this.isLoading=ko.dependentObservable(function(){return _.any(this.itemsInChart(),function(item){return item.isLoading();});},this);ko.dependentObservable(function(){if(!this.itemsInChart()||this.itemsInChart().length===0){this.chart.plot.showLoading("No Series Selected");}else{if(this.isLoading()){this.chart.plot.showLoading();}else{if(!this.hasData()){this.chart.plot.showLoading("No Data Available");}else{this.chart.plot.hideLoading();}}}},this);};PulseEnergy.ManagementChart.prototype.recenter=function(interval){if(this.interval()===interval){return;}var start=this.start().getTime();start+=this.interval().millis/2;start-=interval.millis/2;this.start(new Date(start));this.interval(interval);};PulseEnergy.ManagementChart.prototype.zoomIn=function(){if(this.interval().smaller){this.recenter(this.interval().smaller);}};PulseEnergy.ManagementChart.prototype.zoomOut=function(){if(this.interval().larger){this.recenter(this.interval().larger);}};PulseEnergy.ManagementChart.prototype.nudgeLeft=function(){var start=this.start().getTime()-this.interval().millis*0.35;if(this.interval().smaller){start=this.interval().smaller.truncate(new Date(start));}this.start(start);};PulseEnergy.ManagementChart.prototype.nudgeRight=function(){var start=this.start().getTime()+this.interval().millis*0.35;if(this.interval().smaller){start=this.interval().smaller.truncate(new Date(start));}this.start(start);};PulseEnergy.ManagementChart.prototype.reloadData=_.debounce(function(){if(this.chart!==null){for(var i=0;i<this.itemsInChart().length;i++){this.itemsInChart()[i].reloadData(this.getCommonAPIParams());}}},200);PulseEnergy.ManagementChart.prototype.getCommonAPIParams=function(){var opts={key:this.apiKey,utcShiftedData:true,aggregateOnly:false,forInternalConsumption:true};if(this.end()){opts.start=Math.floor(this.start().getTime()/1000);opts.end=Math.floor(this.end().getTime()/1000);}else{opts.start=Math.floor(this.start().getTime()/1000);opts.interval=this.interval().name;}return opts;};PulseEnergy.ManagementChart.prototype.createChart=function(initialSeries){if(this.chart){this.chart.plot.destroy();}this.chart=new PulseEnergy.HighChart(this.$chart.get(0),initialSeries,this.options);return this;};PulseEnergy.ManagementChart.prototype.hasData=function(){return _.any(this.itemsInChart(),function(item){return item.options.data&&_.any(item.options.data,function(datum){return datum[1]!==null;});});};PulseEnergy.ManagementChart.prototype.defaultOptions={chart:{zoomType:"x"},loading:{labelStyle:{color:"black"},style:{backgroundColor:"white",backgroundImage:"url(/images/3047/ajax-loader.gif)",backgroundRepeat:"no-repeat",backgroundPosition:"center center"}},tooltip:{crosshairs:[true,true],formatter:function(){return false;}},lang:{loading:""},yAxis:[]};PulseEnergy.ManagementChart.prototype.addItemToChart=function(item){this.itemsInChart.push(item);};PulseEnergy.ManagementChart.prototype.addSpaceToChart=function(space,resource,quantity,qualifier,options){var uid=this.buildItemUID("space",space.id,[resource,quantity,qualifier]);var url="/a/spaces/"+space.id+"/data";var queryParameters={resource:resource,quantity:quantity,qualifier:qualifier};var item=new PulseEnergy.ManagementChart.ChartItem(uid,this,url,queryParameters,$.extend({name:space.label,quantity:quantity},options));this.addItemToChart(item);};PulseEnergy.ManagementChart.prototype.addPointToChart=function(point,options){var uid=this.buildItemUID("point",point.id);var url="/a/points/"+point.id+"/data";var item=new PulseEnergy.ManagementChart.ChartItem(uid,this,url,{},$.extend({name:point.label},options));this.addItemToChart(item);};PulseEnergy.ManagementChart.prototype.addSeriesToChart=function(series,options){var dashing={solid:"Solid",dotted:"Dot",dashed:"Dash",dotdash:"DashDot"};var uid=this.buildItemUID("series",series.id);var url="/a/points/"+series.point.id+"/data";var item=new PulseEnergy.ManagementChart.ChartItem(uid,this,url,{},$.extend({name:series.label,color:series.lineCSS.replace(/color: *0x/,"#"),dashStyle:dashing[series.linePattern],visible:series.visibleByDefault},options));this.addItemToChart(item);};PulseEnergy.ManagementChart.prototype.buildItemUID=function(type,id,fieldsArray){fieldsArray=fieldsArray||[];return type+id+"-"+fieldsArray.join("-");};PulseEnergy.ManagementChart.prototype.removeItemFromChart=function(uid){var removedItems=this.itemsInChart.remove(function(item){return uid===item.uid;});_.each(removedItems,function(removedItem){var series=this.chart.plot.get(removedItem.getSeriesId());if(series){series.remove();}},this);};PulseEnergy.ManagementChart.prototype.removeAllItems=function(){_.each(this.itemsInChart(),function(item){var series=this.chart.plot.get(item.getSeriesId());if(series){series.remove();}},this);this.itemsInChart([]);};PulseEnergy.ManagementChart.prototype.removePointFromChart=function(point){this.removeItemFromChart(this.buildItemUID("point",point.id));};PulseEnergy.ManagementChart.prototype.removeSpaceFromChart=function(space,resource,quantity,qualifier){var uid=this.buildItemUID("space",space.id,[resource,quantity,qualifier]);this.removeItemFromChart(uid);};PulseEnergy.ManagementChart.prototype.replaceOrAppendSeriesOption=function(series){if(!this.options.series){this.options.series=[];}for(var i=0;i<this.options.series.length;i++){if(this.options.series[i].id===series.id){this.options.series[i]=series;return;}}this.options.series.push(series);};PulseEnergy.ManagementChart.prototype.formatEnumLabel=function(formatMap,key){return(formatMap&&formatMap[key])?formatMap[key].label:key;};PulseEnergy.ManagementChart.prototype.ensureAllAxisExist=function(){var managementChart=this;var axisAdded=false,axisRemoved=false;var usedAxes={};_.each(this.itemsInChart(),function(chartItem){for(var i=0;i<this.options.yAxis.length;i++){if(this.options.yAxis[i].quantity===chartItem.options.quantity&&this.options.yAxis[i].unit==chartItem.options.unit){chartItem.options.yAxis=i;usedAxes[i]=true;return;}}var newAxis={quantity:chartItem.options.quantity,unit:chartItem.options.unit,title:{text:this.formatEnumLabel(PulseEnergy.quantity,chartItem.options.quantity)+" ("+this.formatEnumLabel(PulseEnergy.baseUnit,chartItem.options.unit)+")"},labels:{formatter:function(){return this.value+" "+managementChart.formatEnumLabel(PulseEnergy.baseUnit,chartItem.options.unit);}},showEmpty:false};if(this.options.yAxis.length>0){newAxis.opposite=true;}usedAxes[this.options.yAxis.length]=true;chartItem.options.yAxis=this.options.yAxis.length;this.options.yAxis.push(newAxis);axisAdded=true;},this);for(var i=this.options.yAxis.length-1;i>=0;i--){if(!usedAxes[i]){axisRemoved=true;this.options.yAxis.splice(i,1);}}if(axisRemoved){if(this.options.yAxis.length>0){this.options.yAxis[0].opposite=false;this.ensureAllAxisExist();}}return axisAdded||axisRemoved;};PulseEnergy.ManagementChart.prototype.dataRefreshed=_.debounce(function(){var needToRecreateChart=this.ensureAllAxisExist();if(needToRecreateChart){this.createChart();}_.each(this.itemsInChart(),function(chartItem){var chartSeries=this.chart.plot.get(chartItem.getSeriesId());if(chartSeries){chartSeries.name=chartItem.options.name;chartSeries.setData(chartItem.options.data);}else{chartSeries=this.chart.plot.addSeries(chartItem.options);}},this);},50);PulseEnergy.ManagementChart.ChartItem=function(uid,managementChart,url,params,options){this.uid=uid;this.url=url;this.params=params;this.options=$.extend(true,{},this.defaultOptions,options);this.managementChart=managementChart;this.isLoading=ko.observable(false);};PulseEnergy.ManagementChart.ChartItem.prototype.defaultOptions={name:"",data:[],unit:"",quantity:""};PulseEnergy.ManagementChart.ChartItem.prototype.getSeriesId=function(){return"series-"+this.uid;};PulseEnergy.ManagementChart.ChartItem.prototype.updateData=function(data){if(!data){this.isLoading(false);return;}var series={data:data?data.data:this.options.data,name:this.options.name===""?(data?data.label:"no data"):this.options.name,id:this.getSeriesId(),quantity:data.quantity,unit:data.unit};PulseEnergy.HighChart.shiftSeriesDatesToMillis([series]);$.extend(this.options,series);this.managementChart.dataRefreshed();this.isLoading(false);};PulseEnergy.ManagementChart.ChartItem.prototype.reloadData=function(apiParams){this.isLoading(true);$.getJSON(this.url,_.extend({},apiParams,this.params),_.bind(this.updateData,this));};PulseEnergy.LocationPointTree=function(organizationId){this.organizationId=organizationId;this.locations=ko.observableArray([]);this.points=ko.observableArray([]);this.loaded=ko.observable(false);this.locationSelected=ko.observable(false);this.onSelectPoint=function(point){};this.onDeselectPoint=function(point){};_.each(_.tail(arguments),function(domNode){if(typeof domNode==="string"){domNode=document.getElementById(domNode);}ko.applyBindings(this,domNode);},this);};PulseEnergy.LocationPointTree.prototype.load=function(){var tree=this;PulseEnergy.ajas.get("/o/"+this.organizationId+"/rest/locations",{},function(data){_.each(data.items,function(location){location.selected=ko.observable(false);location.select=_.bind(this.selectLocation,this,location);_.each(location.points,function(point){point.selected=ko.observable(false);point.select=_.bind(this.selectPoint,this,point);},this);this.locations.push(location);},tree);tree.loaded(true);});};PulseEnergy.LocationPointTree.prototype.selectPoint=function(point){var selected=point.selected();if(selected){this.onDeselectPoint(point);}else{this.onSelectPoint(point);}point.selected(!selected);};PulseEnergy.LocationPointTree.prototype.selectLocation=function(location){this.points.remove(function(point){return true;});var selected=location.selected();_.each(this.locations(),function(location){location.selected(false);});if(!selected){_.each(location.points,function(point){this.points.push(point);},this);location.selected(true);}this.locationSelected(!selected);};PulseEnergy.ManagementChartLegend=function(chart,$legend){this.chart=chart;this.$legend=$legend;this.items=ko.observableArray([]);chart.itemsInChart.subscribe(function(itemsInChart){var newItems=[];_.each(itemsInChart,function(itemInChart){var selected=ko.observable(itemInChart.options.visible!==false);selected.subscribe(function(selected){this.toggleSeries(itemInChart,selected);},this);newItems.push({selected:selected,toggleSelected:function(){selected(!selected());},name:itemInChart.options.name,quantity:itemInChart.options.quantity,unit:itemInChart.options.unit});},this);this.items(newItems);},this);var model=this;this.$legend.each(function(){ko.applyBindings(model,this);});};PulseEnergy.ManagementChartLegend.prototype.toggleSeries=function(itemInChart,selected){var series=this.chart.chart.plot.get(itemInChart.getSeriesId());if(series){if(selected){series.show();}else{series.hide();}}};PulseEnergy.ChartSelector=function(charts){var selector=this;this.selected=ko.observable();this.charts=charts;_.each(charts,function(chart){chart.selected=ko.observable(false);chart.select=function(){var prev=selector.selected();if(prev===this){return;}if(prev){prev.selected(false);}this.selected(true);selector.selected(this);};});};var PulseEnergy=PulseEnergy||{};PulseEnergy.openHelpWindow=function(url){window.open(url,"_blank","width=1000,height=600,resizable=yes,scrollbars=yes,location=yes,toolbar=yes",false);};PulseEnergy.initializeHelpLinks=function(){$("body").delegate(".helpLink","click",function(){PulseEnergy.openHelpWindow($(this).attr("href"));return false;});};PulseEnergy.insertHelpTopLinks=function(){$("#help_content h1, #help_content h2, #help_content .toplink").each(function(i){if(i===0){return true;}$(this).append('<a href="#top" class="helpTopLink">^ '+PulseEnergy.helpTopLabel+"</a>");});};PulseEnergy.initializeTogglableSections=function(){$("#help_content .apiExample dt").click(function(){$(this).next().slideToggle("fast");}).attr("title","Click to expand");};$(function(){PulseEnergy.initializeHelpLinks();PulseEnergy.insertHelpTopLinks();PulseEnergy.initializeTogglableSections();});var PulseEnergy=PulseEnergy||{};PulseEnergy.hideInlineEdit=function($container,val){$container.find(".inlineEditContainer").remove();$container.find(".inlineEdit").text(val).show();};PulseEnergy.saveInlineEditChanges=function($container,saveFunction){var value=$container.find(".inlineEditTextArea").val();if(saveFunction($container,value)){PulseEnergy.hideInlineEdit($container,value);}};PulseEnergy.inlineEditClick=function($elem,saveFunction){var value=$elem.html();var parent=$elem.parent();if(parent.find(".inlineEditTextArea").length===0){$elem.after($("#inline_edit_template").tmpl(value));parent.find(".inlineEditTextArea").val(value).focus();parent.find(".saveButton").click(function(){PulseEnergy.saveInlineEditChanges(parent,saveFunction);});parent.find(".cancelButton").click(function(){PulseEnergy.hideInlineEdit(parent,value);});$elem.hide();}};PulseEnergy.displayInlineEditErrorMessage=function($container,msg){$container.find(".error").html(msg).show();};$.fn.log=function(msg){console.log("%s: %o",msg,this);return this;};$.fn.stripWhitespace=function(){if(this.val()!==null){this.val($.trim(this.val()));}else{this.text($.trim(this.text()));}return this;};if(typeof KeyEvent==="undefined"){var KeyEvent={DOM_VK_CANCEL:3,DOM_VK_HELP:6,DOM_VK_BACK_SPACE:8,DOM_VK_TAB:9,DOM_VK_CLEAR:12,DOM_VK_RETURN:13,DOM_VK_ENTER:14,DOM_VK_SHIFT:16,DOM_VK_CONTROL:17,DOM_VK_ALT:18,DOM_VK_PAUSE:19,DOM_VK_CAPS_LOCK:20,DOM_VK_ESCAPE:27,DOM_VK_SPACE:32,DOM_VK_PAGE_UP:33,DOM_VK_PAGE_DOWN:34,DOM_VK_END:35,DOM_VK_HOME:36,DOM_VK_LEFT:37,DOM_VK_UP:38,DOM_VK_RIGHT:39,DOM_VK_DOWN:40,DOM_VK_PRINTSCREEN:44,DOM_VK_INSERT:45,DOM_VK_DELETE:46,DOM_VK_0:48,DOM_VK_1:49,DOM_VK_2:50,DOM_VK_3:51,DOM_VK_4:52,DOM_VK_5:53,DOM_VK_6:54,DOM_VK_7:55,DOM_VK_8:56,DOM_VK_9:57,DOM_VK_SEMICOLON:59,DOM_VK_EQUALS:61,DOM_VK_A:65,DOM_VK_B:66,DOM_VK_C:67,DOM_VK_D:68,DOM_VK_E:69,DOM_VK_F:70,DOM_VK_G:71,DOM_VK_H:72,DOM_VK_I:73,DOM_VK_J:74,DOM_VK_K:75,DOM_VK_L:76,DOM_VK_M:77,DOM_VK_N:78,DOM_VK_O:79,DOM_VK_P:80,DOM_VK_Q:81,DOM_VK_R:82,DOM_VK_S:83,DOM_VK_T:84,DOM_VK_U:85,DOM_VK_V:86,DOM_VK_W:87,DOM_VK_X:88,DOM_VK_Y:89,DOM_VK_Z:90,DOM_VK_CONTEXT_MENU:93,DOM_VK_NUMPAD0:96,DOM_VK_NUMPAD1:97,DOM_VK_NUMPAD2:98,DOM_VK_NUMPAD3:99,DOM_VK_NUMPAD4:100,DOM_VK_NUMPAD5:101,DOM_VK_NUMPAD6:102,DOM_VK_NUMPAD7:103,DOM_VK_NUMPAD8:104,DOM_VK_NUMPAD9:105,DOM_VK_MULTIPLY:106,DOM_VK_ADD:107,DOM_VK_SEPARATOR:108,DOM_VK_SUBTRACT:109,DOM_VK_DECIMAL:110,DOM_VK_DIVIDE:111,DOM_VK_F1:112,DOM_VK_F2:113,DOM_VK_F3:114,DOM_VK_F4:115,DOM_VK_F5:116,DOM_VK_F6:117,DOM_VK_F7:118,DOM_VK_F8:119,DOM_VK_F9:120,DOM_VK_F10:121,DOM_VK_F11:122,DOM_VK_F12:123,DOM_VK_F13:124,DOM_VK_F14:125,DOM_VK_F15:126,DOM_VK_F16:127,DOM_VK_F17:128,DOM_VK_F18:129,DOM_VK_F19:130,DOM_VK_F20:131,DOM_VK_F21:132,DOM_VK_F22:133,DOM_VK_F23:134,DOM_VK_F24:135,DOM_VK_NUM_LOCK:144,DOM_VK_SCROLL_LOCK:145,DOM_VK_COMMA:188,DOM_VK_PERIOD:190,DOM_VK_SLASH:191,DOM_VK_BACK_QUOTE:192,DOM_VK_OPEN_BRACKET:219,DOM_VK_BACK_SLASH:220,DOM_VK_CLOSE_BRACKET:221,DOM_VK_QUOTE:222,DOM_VK_META:224};}var PulseEnergy=PulseEnergy||{};PulseEnergy.language="en";PulseEnergy.locale="en_CA";PulseEnergy.setLocale=function(locale){if(locale===undefined||locale===""){return;}PulseEnergy.locale=locale;PulseEnergy.language=locale.substr(0,2);};var PulseEnergy=PulseEnergy||{};PulseEnergy.numbers={};PulseEnergy.numbers.getNoDataPlaceholder=function(placeholder){return typeof placeholder!=="undefined"?placeholder:"\u2013";};PulseEnergy.numbers.formatNumberWithUnit=function(value,unit,placeholder,kind){var numValue=parseFloat(value);if(isNaN(numValue)||!isFinite(numValue)){return PulseEnergy.numbers.getNoDataPlaceholder(placeholder);}if(unit&&unit.displayLabel){unit=unit.displayLabel;}unit=typeof unit==="string"?unit.trim():"";if(unit.length>0){if(typeof PulseEnergy.baseUnit[unit]!=="undefined"){unit=PulseEnergy.baseUnit[unit].label;}var baseValue=value;var matches=unit.match(/^([kMGT])?((Wh|J)(\/.+)?)$/);if(matches!==null){var prefixMap={"":1,k:1000,M:1000000,G:1000000000};var minScale={Wh:1000,J:1000000};var unitPrefix=matches[1];var unitTop=matches[3];var unitWhole=matches[2];if(unitPrefix){baseValue=prefixMap[unitPrefix]*value;}var newPrefix="";_.find(prefixMap,function(scale,prefix){var scaled=Math.abs(parseFloat(baseValue.toPrecision(4)))/scale;if(scale>=minScale[unitTop]){newPrefix=prefix;if(scaled<1000000){return true;}}});value=baseValue/prefixMap[newPrefix];unit=newPrefix+unitWhole;}unit="\u00A0"+unit;}var sign=value<0?"-":"";value=parseFloat(value.toPrecision(4));var num=Math.abs(value).numberFormat(kind=="Money"?"[>=1000]#,#;[<0.0001]#.##;[<0.01]#.####;#.##":"[>=1000]#,#;#.#");return sign+num+unit;};PulseEnergy.numbers.formatMeasurement=function(measurement,placeholder){if(_.isEmpty(measurement)){return PulseEnergy.numbers.getNoDataPlaceholder(placeholder);}if(measurement.areaUnit){return PulseEnergy.numbers.formatIntensity(measurement.value,measurement.consumptionUnit,1,measurement.areaUnit,placeholder);}return PulseEnergy.numbers.formatNumberWithUnit(measurement.number,measurement.unit,placeholder);};PulseEnergy.numbers.formatMeasurementAsAbsolute=function(measurement,placeholder){if(measurement&&measurement.number<0){measurement=_.clone(measurement);measurement.number=Math.abs(measurement.number);}return PulseEnergy.numbers.formatMeasurement(measurement,placeholder);};PulseEnergy.numbers.formatPercent=function(value,placeholder){if(!value){return"-";}if(!isFinite(value)){return PulseEnergy.numbers.getNoDataPlaceholder(placeholder);}value=String(value).indexOf(".")>0?parseFloat(value).toFixed(1):value;return value+"%";};PulseEnergy.numbers.formatMoney=function(value,placeholder){if(!isFinite(value)){return PulseEnergy.numbers.getNoDataPlaceholder(placeholder);}return"$"+Math.round(parseFloat(value));};PulseEnergy.numbers.formatNumberSignedPercent=function(value,placeholder){return PulseEnergy.numbers.formatPercent(value,placeholder);};PulseEnergy.numbers.formatDeviation=function(deviation,unit,placeholder){if(typeof deviation!=="number"||isNaN(deviation)){return PulseEnergy.numbers.getNoDataPlaceholder(placeholder);}var value=deviation;return(value>0?"+":"")+PulseEnergy.numbers.formatNumberWithUnit(value,unit,placeholder);};PulseEnergy.numbers.formatIntensity=function(value,unit,area,areaUnit,placeholder){if(typeof value!=="number"||isNaN(value)||typeof area!=="number"||isNaN(area)){return PulseEnergy.numbers.getNoDataPlaceholder(placeholder);}value=value/area;unit=PulseEnergy.baseUnit[unit]?PulseEnergy.baseUnit[unit].label:unit;areaUnit=PulseEnergy.baseUnit[areaUnit]?PulseEnergy.baseUnit[areaUnit].label:areaUnit;return PulseEnergy.numbers.formatNumberWithUnit(value,unit+"/"+areaUnit,placeholder);};var PulseEnergy=PulseEnergy||{};PulseEnergy.ObservableMap=function(){var values=ko.observable({});this.put=function(key,value){values()[key]=value;values.valueHasMutated();};this.get=function(key){return values()[key];};};PulseEnergy.ObservableObservableMap=function(){var values=ko.observable({});function putInternal(key,value){values()[key]=values()[key]||ko.observable();values()[key](value);}this.put=function(key,value){putInternal(key,value);values()[key].valueHasMutated();};this.putAll=function(toPut){_.each(toPut,function(value,key){putInternal(key,value);});values.valueHasMutated();};this.replaceAll=function(toPut){values({});this.putAll(toPut);};this.remove=function(key){var result={};_.each(values(),function(element){if(key!==element().id){result[element().id]=element;}});values(result);};this.size=function(){return _.keys(values()).length;};this.get=function(key){var value=values()[key];return value?value():null;};this.getAll=function(){return values();};this.hasMutated=function(){values.valueHasMutated();};this.subscribe=function(callBack){values.subscribe(callBack);};};var PulseEnergy=PulseEnergy||{};PulseEnergy.PARTIAL_DATA_MESSAGE='<p class="center"><strong class="note">Note</strong>: Partial data intervals (underlined values) are included in the total but not the average.</p>';PulseEnergy.PARTIAL_DATA_HOVER="Partial data interval";PulseEnergy.addPartialPeriodHover=function(){$(".partialPeriod").each(function(){$(this).attr("title",PulseEnergy.PARTIAL_DATA_HOVER);});};PulseEnergy.addPartialDataMessageIfApplicable=function(){if($(".partialPeriod").length>0){$("#rpt_body").after(PulseEnergy.PARTIAL_DATA_MESSAGE);}};$(function(){PulseEnergy.addPartialPeriodHover();PulseEnergy.addPartialDataMessageIfApplicable();});$(function(){$("a.referenceLink").each(function(){var pointId=$(this).siblings(".referencePoint").children("option:selected").attr("value");if(pointId===""){pointId=$(this).siblings(".referencePoint").children(":first").attr("value");}if(pointId===""||pointId===undefined||pointId==-1){$(this).addClass("hidden");}else{var link="/configuration/datasources/points/edit?id="+pointId;$(this).removeClass("hidden");$(this).attr({href:link});}});$("input.referencePoint").change(function(){var pointId=$(this).children("option:selected").attr("value");if(pointId===""||pointId==-1){$(this).siblings("a.referenceLink").addClass("hidden");}else{$(this).siblings("a.hidden.referenceLink").removeClass("hidden");var link="/configuration/datasources/points/edit?id="+pointId;$(this).siblings("a.referenceLink").attr({href:link});}});});function postBack(){var pointForm=$("#point");$("#referencePoint").val("");postBackForm(pointForm);}function postBackNoClearReference(){var pointForm=$("#point");postBackForm(pointForm);}var PulseEnergy=PulseEnergy||{};var PE=PulseEnergy||{};$.extend(PulseEnergy,{comingsoon:{anchorSelector:".add-coming-soon",baseDiv:"div#container div#content",applyHovers:function(){PE.comingsoon.setup();$(PE.comingsoon.baseDiv).delegate(PE.comingsoon.anchorSelector,"mouseenter",PE.comingsoon.onHover).delegate(PE.comingsoon.anchorSelector,"mouseout",PE.comingsoon.onMouseout);},setup:function(){var cs=PulseEnergy.comingsoon;cs.notice=cs.notice||cs.createNotice();cs.overlays=cs.overlays||$("div.noticeOverlays");if(cs.overlays.length===0){cs.overlays=$("<div>").addClass("noticeOverlays");cs.overlays.append(cs.notice);$(cs.baseDiv).append(cs.overlays);}},onHover:function(event){var e=$(this);var notice=PE.comingsoon.notice;notice.show();var shiftBy={top:Math.floor(e.offset().top-notice.outerHeight()),left:Math.floor(e.offset().left-notice.width()/2+e.width()/2+12)};notice.offset(shiftBy);},onMouseout:function(event){PE.comingsoon.notice.hide();},createNotice:function(){var outer=$("<div>");outer.addClass("notice").hide();outer.append($("<span>").addClass("comingSoon").html("Coming soon!"));outer.append($("<span>").addClass("arrow"));return outer;}}});PulseEnergy.containsCohort=function(cohort){var matches=window.location.href.match(/cohort=([^&#]*)/);return matches&&matches.length>1&&matches[1].indexOf(cohort)>-1;};var PulseEnergy=PulseEnergy||{};PulseEnergy.timezones=PulseEnergy.timezones||{};PulseEnergy.timezones.refreshTimeZones=function(region,$timeZoneSelect){var timeZones=PulseEnergy.timeZones[region];$timeZoneSelect.empty();$timeZoneSelect.append('<option value="-1">-- Select Time Zone --</option>');$.each(timeZones,function(index,timeZone){$timeZoneSelect.append('<option value="'+timeZone.id+'">'+timeZone.label+"</option>");});};var PulseEnergy=PulseEnergy||{};var oTable;function loadDataTable(userOptions){if(typeof $.fn.dataTable=="function"&&typeof $.fn.dataTableExt.sVersion!=="undefined"){TableTools.DEFAULTS.sSwfPath="/swfs/copy_cvs_xls.swf";TableTools.DEFAULTS.aButtons=["copy","csv","xls","print"];TableTools.BUTTONS.xls.sToolTip="Save for Excel";TableTools.BUTTONS.csv.sToolTip="Save as CSV";TableTools.BUTTONS.copy.sToolTip="Copy to clipboard";TableTools.BUTTONS.print.sToolTip="Print table";$.fn.dataTableExt.aoFeatures.push({fnInit:function(oSettings){return new TableTools({oDTSettings:oSettings});},cFeature:"T",sFeature:"TableTools"});}$.fn.dataTableExt.oSort["valueSort-asc"]=function(a,b){return PulseEnergy.numericCompareHiddenValue(a,b);};$.fn.dataTableExt.oSort["valueSort-desc"]=function(a,b){return PulseEnergy.numericCompareHiddenValue(b,a);};$.fn.dataTableExt.oSort["numeric-NaN-safe-asc"]=function(a,b){return PulseEnergy.numericCompare(a,b);};$.fn.dataTableExt.oSort["numeric-NaN-safe-desc"]=function(a,b){return PulseEnergy.numericCompare(b,a);};$.fn.dataTableExt.oStdClasses.sPageButtonStaticDisabled="paginate_disabled";$(".dataTables").each(function(){var dataTable=$(this);var dataTableOptions=PulseEnergy.getDataTableOptions(userOptions,dataTable);oTable=dataTable.dataTable(dataTableOptions);var dataTablesFilter=dataTable.parent().find(".dataTables_filter");var searchResetButton=$('<input type="button" class="dataTableSearchReset" value="Reset"/>');dataTablesFilter.append(searchResetButton);$(searchResetButton).click(function(){if(dataTablesFilter.find(":text").val()){PulseEnergy.filterTable("");}});if(dataTableOptions.bBulkActions){if(dataTableOptions.bInRecyclingBin){dataTablesFilter.after('<form id="bulkActionForm" action="" method="POST"></form><div id="multiAction"><input id="multiDelete" name="undelete" type="button" value="Restore" /></div>');}else{dataTablesFilter.after('<form id="bulkActionForm" action="" method="POST"><input type="hidden" name="_method" value="DELETE"/></form><div id="multiAction"><input id="multiDelete" name="delete" type="button" value="Delete" data-confirmation-message="Are you sure you want to delete the selected items?" /></div>');}dataTable.parent().find("#multiDelete").click(function(e){var selectedItems=$(oTable.fnGetNodes()).find(".rowSelector:checked");var numSelected=selectedItems.length;if(numSelected===0){return;}var action=$(this).attr("name");if(action==="undelete"||confirm(PulseEnergy.getConfirmationMessage(this))){var url="";var i=0;var tokens=[];if(dataTableOptions.bUseRestUrls){for(i=0;i<numSelected-1;i++){tokens=selectedItems[i].id.split("_");url+=tokens[tokens.length-1]+",";}tokens=selectedItems[numSelected-1].id.split("_");url=(tokens.length>2?tokens[1]+"/":"")+url+tokens[tokens.length-1];var bulkDeleteForm=$("#bulkActionForm");bulkDeleteForm.attr("action",url);bulkDeleteForm.submit();}else{for(i=0;i<numSelected-1;i++){url+="id="+selectedItems[i].id.split("_")[1]+"&";}url+="id="+selectedItems[numSelected-1].id.split("_")[1];url=action.toLowerCase()+"?"+url;window.location=url;}}});}});}PulseEnergy.numericCompareHiddenValue=function(a,b){return PulseEnergy.numericCompare(PulseEnergy.parseSortValueAttr(a),PulseEnergy.parseSortValueAttr(b));};PulseEnergy.parseSortValueAttr=function(x){var xMatch=x.match(/value=(['"])((-)?[0-9E\.]*)\1/);if(xMatch===null||xMatch.length<=2){return null;}return xMatch[2];};PulseEnergy.isNumericComparable=function(value){return value&&!isNaN(value);};PulseEnergy.numericCompare=function(a,b){if(!PulseEnergy.isNumericComparable(a)&&!PulseEnergy.isNumericComparable(b)){return 0;}if(!PulseEnergy.isNumericComparable(a)){return 1;}if(!PulseEnergy.isNumericComparable(b)){return -1;}var x=a=="-"?0:a;var y=b=="-"?0:b;return x-y;};PulseEnergy.getDataTableOptions=function(options,dataTable){var dataTableOptions={bPaginate:false,bAutoWidth:false,bFilter:true,iDisplayLength:20,sPaginationType:"full_numbers",bSortClasses:false,bProcessing:true,sDom:"Tfrtip",bBulkActions:false,bInRecyclingBin:false,bUseRestUrls:false,fnDrawCallback:function(settings){if(Math.ceil((settings.fnRecordsDisplay())/settings._iDisplayLength)>1){dataTable.find(".dataTables_paginate").show();}else{dataTable.find(".dataTables_paginate").hide();}}};var aoColumns=[];dataTable.find("thead th").each(function(){aoColumns.push({});});if(options){if(options.paginate){dataTableOptions.bPaginate=true;}if(options.filter!==undefined&&!options.filter){dataTableOptions.bFilter=false;dataTableOptions.sDom=dataTableOptions.sDom.replace("i","");}if(options.tableTools!==undefined&&!options.tableTools){dataTableOptions.sDom=dataTableOptions.sDom.replace("T","");}if(options.pageSize>0){dataTableOptions.iDisplayLength=options.pageSize;}if(options.initialSearch){dataTableOptions.oSearch={sSearch:options.initialSearch};}if(options.initialSort){dataTableOptions.aaSorting=options.initialSort;}if(options.bulkActions){dataTableOptions.bBulkActions=options.bulkActions;}if(options.inRecyclingBin){dataTableOptions.bInRecyclingBin=options.inRecyclingBin;}if(options.useRestUrls){dataTableOptions.bUseRestUrls=options.useRestUrls;}}var htmlColumns=(options&&options.htmlColumns)?options.htmlColumns:PulseEnergy.findHtmlColumns(dataTable);var actionsColumn=(options&&options.actionsColumn!==undefined)?options.actionsColumn:PulseEnergy.findActionsColumn(dataTable);var valueColumns=(options&&options.valueColumns)?options.valueColumns:PulseEnergy.findValueColumns(dataTable);for(var i=0;i<htmlColumns.length;i++){aoColumns[htmlColumns[i]]={sType:"html"};}if(actionsColumn!==-1){aoColumns[actionsColumn].bSortable=false;}for(var j=0;j<valueColumns.length;j++){aoColumns[valueColumns[j]]={sType:"valueSort"};}if(options&&options.hideColumns){for(var k=0;k<options.hideColumns.length;k++){aoColumns[options.hideColumns[k]].bVisible=false;}}if(options&&options.cssClass){for(var l=0;l<options.cssClass.length;l++){if(options.cssClass[l]){aoColumns[l].sClass=options.cssClass[l];}}}dataTableOptions.aoColumns=aoColumns;return dataTableOptions;};PulseEnergy.findHtmlColumns=function(dataTable){var columns=[];dataTable.find("tbody tr:first td").each(function(i){if($(this).html()!=$(this).text()){columns.push(i);}});return columns;};PulseEnergy.findActionsColumn=function(dataTable){var lastCellLinks=dataTable.find("tbody tr:first td:last a");if(lastCellLinks.length){return dataTable.find("tbody tr:first td").length-1;}return -1;};PulseEnergy.findValueColumns=function(dataTable){var columns=[];dataTable.find("thead th").each(function(i){if($(this).hasClass("sortValue")){columns.push(i);}});return columns;};PulseEnergy.filterTable=function(text){$(".dataTables_filter :text").val(text).keyup();};PulseEnergy.registerFilterReset=function(){$("#filterReset").click(function(){var filtersReset=resetFiltersToDefault();if(filtersReset.length>0){filtersReset[0].parent().submit();}});};var PulseEnergy=PulseEnergy||{};PulseEnergy.timeagoStrings={en:{prefixAgo:null,prefixFromNow:null,suffixAgo:"ago",suffixFromNow:"from now",seconds:"less than a minute",minute:"about a minute",minutes:"%d minutes",hour:"about an hour",hours:"about %d hours",day:"a day",days:"%d days",month:"about a month",months:"%d months",year:"about a year",years:"%d years",numbers:[]},fr:{prefixAgo:"il y a",prefixFromNow:"d'ici",seconds:"moins d'une minute",minute:"environ une minute",minutes:"%d minutes",hour:"environ une heure",hours:"environ %d heures",day:"environ un jour",days:"%d jours",month:"environ un mois",months:"%d mois",year:"un an",years:"%d ans"}};PulseEnergy.timeago=function(date,language,timeOnly,allowFuture){language=language||"en";$.timeago.settings.allowFuture=(allowFuture===undefined?false:allowFuture);$.timeago.settings.timeOnly=(timeOnly===undefined?false:timeOnly);if(PulseEnergy.timeagoStrings[language]!==null){$.timeago.settings.strings=PulseEnergy.timeagoStrings[language];}return $.timeago(date);};PulseEnergy.FixedPosition={};PulseEnergy.FixedPosition.apply=function($element,fixedOffset){var fp=$element.data("fixedPosition"),alreadyBound=!!fp;fp=fp||{};if(!alreadyBound){$element.data("originalCss",{position:$element.css("position"),top:$element.css("top"),left:$element.css("left")});fp.tombstone=$("<div/>",{css:{width:0,height:0}});fp.tombstone.insertBefore($element);}fp.originalOffset=fp.tombstone.offset();var fo=fixedOffset||{};fp.fixed={top:(fo.top||fp.originalOffset.top),left:(fo.left||fp.originalOffset.left)};$element.data("fixedPosition",fp);if(!alreadyBound){$(window).scroll(function(){var $wind=$(window),scrollTop=$wind.scrollTop(),scrollLeft=$wind.scrollLeft();var data=$element.data("fixedPosition");if(scrollTop<=data.originalOffset.top-data.fixed.top){var originalCss=$element.data("originalCss");$element.css("position",originalCss.position);$element.css("top",originalCss.top);$element.css("left",originalCss.left);}else{$element.css("position","fixed");$element.css("top",data.fixed.top);$element.css("left",data.fixed.left-scrollLeft);}});}};var PulseEnergy=PulseEnergy||{};PulseEnergy.addZebraStripes=function(){$("#sideNav li:odd").each(function(i){$(this).addClass("odd");});};var PulseEnergy=PulseEnergy||{};PulseEnergy.SortedList=function($list,valueCompareFunction,userOptions){this.options=$.extend({},this.defaultOptions,userOptions);this.$list=$list;this.$listItems=[];this.filter=null;this.valueCompareFunction=valueCompareFunction;};PulseEnergy.SortedList.prototype.defaultOptions={dataKey:"sortValue",addRank:false};PulseEnergy.SortedList.prototype.addListItem=function($listItem,sortValue){$listItem.data(this.options.dataKey,sortValue);if(this.options.addRank){$listItem.prepend('<span class="rank"></span>');}this.$listItems.push($listItem);this.refresh();};PulseEnergy.SortedList.prototype.refresh=function(){this.$listItems.sort($.proxy(this.compareListItems,this));this.$list.find("li").detach();$.each(this.$listItems,$.proxy(function(i,$listItem){if(this.filter===null||this.filter.matches(i,$listItem,$listItem.data(this.options.dataKey),this.$listItems.length)){if(this.options.addRank){$listItem.find(".rank").html((i+1)+".");}this.$list.append($listItem);}},this));};PulseEnergy.SortedList.prototype.reset=function(){this.$list.find("li").remove();this.$listItems=[];};PulseEnergy.SortedList.prototype.compareListItems=function(a,b){return this.valueCompareFunction(a.data(this.options.dataKey),b.data(this.options.dataKey));};PulseEnergy.SortedList.prototype.setFilter=function(filter){this.filter=filter;this.refresh();};PulseEnergy.SortedList.ShowAll=function(){};PulseEnergy.SortedList.ShowAll.prototype.matches=function(i,$listItem,sortValue,listLength){return true;};PulseEnergy.SortedList.ShowNone=function(){};PulseEnergy.SortedList.ShowNone.prototype.matches=function(i,$listItem,sortValue,listLength){return false;};PulseEnergy.SortedList.ShowTopAndBottom=function(topN,bottomN){this.showTopN=topN;this.showBottomN=bottomN;};PulseEnergy.SortedList.ShowTopAndBottom.prototype.matches=function(i,$listItem,sortValue,listLength){return i<this.showTopN||(listLength-i)<=this.showBottomN;};var PulseEnergy=PulseEnergy||{};String.prototype.format=function(){var txt=this;var i=arguments.length;while(i--){txt=txt.replace(new RegExp("\\{"+i+"\\}","gm"),arguments[i]);}return txt;};PulseEnergy.isBlank=function(text){if(typeof text!=="string"){return undefined;}if(text===null){return true;}if(text.length===0){return true;}if(text.match(/^\s+$/)){return true;}return false;};PulseEnergy.onlyAlphanumeric=function(name){return name.replace(/\W/g,"");};PulseEnergy.ellipses=function(text,max,tooltip,escape){if(!max){max=35;}if(text.length<=max){return escape?PulseEnergy.escapeHtml(text):text;}else{var chomp=text.substring(0,max)+"...";if(escape){chomp=PulseEnergy.escapeHtml(chomp);}if(tooltip){return'<span title="'+(escape?PulseEnergy.escapeHtml(text):text).replace(/"/g,"&quot;")+'" class="more">'+chomp+"</span>";}else{return chomp;}}};PulseEnergy.escapeHtml=function(text){return text.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");};PulseEnergy.nullSafeLabel=function(object,length){if(!object){return"";}if(length){return PulseEnergy.ellipses(object.label,length);}return object.label;};var PulseEnergy=PulseEnergy||{};PulseEnergy.addSuperUserOnlyTags=function(){var span='<span class="super" title="This functionality is only available to superusers.">superuser</span>';$(".superUserOnly").each(function(){if(this.tagName=="LABEL"){$(this).prepend(span);}else{$(this).append(span);}});};$(function(){PulseEnergy.addSuperUserOnlyTags();});PulseEnergy.tables=PulseEnergy.tables||{};(function(PET){function Column(){this.width=null;this.cells=[];}Column.prototype.updateCells=function(){var width=this.width!==null?this.width+"px":"auto";_.each(this.cells,function(cell){cell.style.width=width;cell.className="pe-t-aligned";});};function pxToNumber(val){if(typeof val==="string"){return val.slice(0,-2);}return val;}PET.alignColumns=function(table){var columns=[],$table=$(table);$table.find("> thead > tr > th").each(function(i,th){columns[i]=$(th).hasClass("pe-t-alignme")?new Column():null;});$table.find("> tbody > tr").each(function(r,tr){$(tr).children("td").each(function(c,td){if(columns[c]){if(td.innerHTML==="n/a"){return;}var width,inner;if(td.children.length===1&&td.children[0].className==="pe-t-aligned"){inner=td.children[0];width=pxToNumber(inner.style.width);}else{$(td).wrapInner("<span/>");inner=td.children[0];width=pxToNumber($(inner).width())+1;}columns[c].cells.push(inner);columns[c].width=Math.max(width,columns[c].width);}});});_.each(columns,function(column){if(column){column.updateCells();}});};PET.alignColumnsEventually=function(nodes){_.defer(function(){var tbody=nodes[0].parentNode;if(tbody){var deferred=$.data(tbody,"pe-t-deferred_alignment");if(!deferred){deferred=_.debounce(function(){PET.alignColumns(tbody.parentNode);},5);$.data(tbody,"pe-t-deferred_alignment",deferred);}deferred();}});};}(PulseEnergy.tables));(function($){$.fn.superfish=function(op){var sf=$.fn.superfish,c=sf.c,$arrow=$(['<span class="',c.arrowClass,'">&#9660;</span>'].join("")),over=function(){var $$=$(this),menu=getMenu($$);clearTimeout(menu.sfTimer);$$.showSuperfishUl().siblings().hideSuperfishUl();},out=function(){var $$=$(this),menu=getMenu($$),o=sf.op;clearTimeout(menu.sfTimer);menu.sfTimer=setTimeout(function(){o.retainPath=($.inArray($$[0],o.$path)>-1);$$.hideSuperfishUl();if(o.$path.length&&$$.parents(["li.",o.hoverClass].join("")).length<1){over.call(o.$path);}},o.delay);},getMenu=function($menu){var menu=$menu.parents(["ul.",c.menuClass,":first"].join(""))[0];sf.op=sf.o[menu.serial];return menu;},addArrow=function($a){$a.addClass(c.anchorClass).append($arrow.clone());};return this.each(function(){var s=this.serial=sf.o.length;var o=$.extend({},sf.defaults,op);o.$path=$("li."+o.pathClass,this).slice(0,o.pathLevels).each(function(){$(this).addClass([o.hoverClass,c.bcClass].join(" ")).filter("li:has(ul)").removeClass(o.pathClass);});sf.o[s]=sf.op=o;$("li:has(ul)",this)[($.fn.hoverIntent&&!o.disableHI)?"hoverIntent":"hover"](over,out).each(function(){if(o.autoArrows){addArrow($(">a:first-child",this));}}).not("."+c.bcClass).hideSuperfishUl();var $a=$("a",this);$a.each(function(i){var $li=$a.eq(i).parents("li");$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});});o.onInit.call(this);}).each(function(){var menuClasses=[c.menuClass];if(sf.op.dropShadows&&!($.browser.msie&&$.browser.version<7)){menuClasses.push(c.shadowClass);}$(this).addClass(menuClasses.join(" "));});};var sf=$.fn.superfish;sf.o=[];sf.op={};sf.IE7fix=function(){var o=sf.op;if($.browser.msie&&$.browser.version>6&&o.dropShadows&&o.animation.opacity!=undefined){this.toggleClass(sf.c.shadowClass+"-off");}};sf.c={bcClass:"sf-breadcrumb",menuClass:"sf-js-enabled",anchorClass:"sf-with-ul",arrowClass:"sf-sub-indicator",shadowClass:"sf-shadow"};sf.defaults={hoverClass:"sfHover",pathClass:"overideThisToUse",pathLevels:1,delay:800,animation:{opacity:"show"},speed:"normal",autoArrows:true,dropShadows:true,disableHI:false,onInit:function(){},onBeforeShow:function(){},onShow:function(){},onHide:function(){}};$.fn.extend({hideSuperfishUl:function(){var o=sf.op,not=(o.retainPath===true)?o.$path:"";o.retainPath=false;var $ul=$(["li.",o.hoverClass].join(""),this).add(this).not(not).removeClass(o.hoverClass).find(">ul").hide().css("visibility","hidden");o.onHide.call($ul);return this;},showSuperfishUl:function(){var o=sf.op,sh=sf.c.shadowClass+"-off",$ul=this.addClass(o.hoverClass).find(">ul:hidden").css("visibility","visible");sf.IE7fix.call($ul);o.onBeforeShow.call($ul);$ul.animate(o.animation,o.speed,function(){sf.IE7fix.call($ul);o.onShow.call($ul);});return this;}});})(jQuery);(function($){$.fn.supersubs=function(options){var opts=$.extend({},$.fn.supersubs.defaults,options);return this.each(function(){var $$=$(this);var o=$.meta?$.extend({},opts,$$.data()):opts;var fontsize=$('<li id="menu-fontsize">&#8212;</li>').css({padding:0,position:"absolute",top:"-999em",width:"auto"}).appendTo($$).width();$("#menu-fontsize").remove();$ULs=$$.find("ul");$ULs.each(function(i){var $ul=$ULs.eq(i);var $LIs=$ul.children();var $As=$LIs.children("a");var liFloat=$LIs.css("white-space","nowrap").css("float");var emWidth=$ul.add($LIs).add($As).css({"float":"none",width:"auto"}).end().end()[0].clientWidth/fontsize;emWidth+=o.extraWidth;if(emWidth>o.maxWidth){emWidth=o.maxWidth;}else{if(emWidth<o.minWidth){emWidth=o.minWidth;}}emWidth+="em";$ul.css("width",emWidth);$LIs.css({"float":liFloat,width:"100%","white-space":"normal"}).each(function(){var $childUl=$(">ul",this);var offsetDirection=$childUl.css("left")!==undefined?"left":"right";$childUl.css(offsetDirection,emWidth);});});});};$.fn.supersubs.defaults={minWidth:9,maxWidth:25,extraWidth:0};})(jQuery);jQuery.cookie=function(key,value,options){if(arguments.length>1&&String(value)!=="[object Object]"){options=jQuery.extend({},options);if(value===null||value===undefined){options.expires=-1;}if(typeof options.expires==="number"){var days=options.expires,t=options.expires=new Date();t.setDate(t.getDate()+days);}value=String(value);return(document.cookie=[encodeURIComponent(key),"=",options.raw?value:encodeURIComponent(value),options.expires?"; expires="+options.expires.toUTCString():"",options.path?"; path="+options.path:"",options.domain?"; domain="+options.domain:"",options.secure?"; secure":""].join(""));}options=value||{};var result,decode=options.raw?function(s){return s;}:decodeURIComponent;return(result=new RegExp("(?:^|; )"+encodeURIComponent(key)+"=([^;]*)").exec(document.cookie))?decode(result[1]):null;};(function($,window,document){$.fn.dataTableSettings=[];var _aoSettings=$.fn.dataTableSettings;$.fn.dataTableExt={};var _oExt=$.fn.dataTableExt;_oExt.sVersion="1.7.6";_oExt.sErrMode="alert";_oExt.iApiIndex=0;_oExt.oApi={};_oExt.afnFiltering=[];_oExt.aoFeatures=[];_oExt.ofnSearch={};_oExt.afnSortData=[];_oExt.oStdClasses={sPagePrevEnabled:"paginate_enabled_previous",sPagePrevDisabled:"paginate_disabled_previous",sPageNextEnabled:"paginate_enabled_next",sPageNextDisabled:"paginate_disabled_next",sPageJUINext:"",sPageJUIPrev:"",sPageButton:"paginate_button",sPageButtonActive:"paginate_active",sPageButtonStaticDisabled:"paginate_button",sPageFirst:"first",sPagePrevious:"previous",sPageNext:"next",sPageLast:"last",sStripOdd:"odd",sStripEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sFooterTH:""};_oExt.oJUIClasses={sPagePrevEnabled:"fg-button ui-button ui-state-default ui-corner-left",sPagePrevDisabled:"fg-button ui-button ui-state-default ui-corner-left ui-state-disabled",sPageNextEnabled:"fg-button ui-button ui-state-default ui-corner-right",sPageNextDisabled:"fg-button ui-button ui-state-default ui-corner-right ui-state-disabled",sPageJUINext:"ui-icon ui-icon-circle-arrow-e",sPageJUIPrev:"ui-icon ui-icon-circle-arrow-w",sPageButton:"fg-button ui-button ui-state-default",sPageButtonActive:"fg-button ui-button ui-state-default ui-state-disabled",sPageButtonStaticDisabled:"fg-button ui-button ui-state-default ui-state-disabled",sPageFirst:"first ui-corner-tl ui-corner-bl",sPagePrevious:"previous",sPageNext:"next",sPageLast:"last ui-corner-tr ui-corner-br",sStripOdd:"odd",sStripEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"ui-state-default",sSortDesc:"ui-state-default",sSortable:"ui-state-default",sSortableAsc:"ui-state-default",sSortableDesc:"ui-state-default",sSortableNone:"ui-state-default",sSortColumn:"sorting_",sSortJUIAsc:"css_right ui-icon ui-icon-triangle-1-n",sSortJUIDesc:"css_right ui-icon ui-icon-triangle-1-s",sSortJUI:"css_right ui-icon ui-icon-carat-2-n-s",sSortJUIAscAllowed:"css_right ui-icon ui-icon-carat-1-n",sSortJUIDescAllowed:"css_right ui-icon ui-icon-carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead ui-state-default",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot ui-state-default",sScrollFootInner:"dataTables_scrollFootInner",sFooterTH:"ui-state-default"};_oExt.oPagination={two_button:{fnInit:function(oSettings,nPaging,fnCallbackDraw){var nPrevious,nNext,nPreviousInner,nNextInner;if(!oSettings.bJUI){nPrevious=document.createElement("div");nNext=document.createElement("div");}else{nPrevious=document.createElement("a");nNext=document.createElement("a");nNextInner=document.createElement("span");nNextInner.className=oSettings.oClasses.sPageJUINext;nNext.appendChild(nNextInner);nPreviousInner=document.createElement("span");nPreviousInner.className=oSettings.oClasses.sPageJUIPrev;nPrevious.appendChild(nPreviousInner);}nPrevious.className=oSettings.oClasses.sPagePrevDisabled;nNext.className=oSettings.oClasses.sPageNextDisabled;nPrevious.title=oSettings.oLanguage.oPaginate.sPrevious;nNext.title=oSettings.oLanguage.oPaginate.sNext;nPaging.appendChild(nPrevious);nPaging.appendChild(nNext);$(nPrevious).bind("click.DT",function(){if(oSettings.oApi._fnPageChange(oSettings,"previous")){fnCallbackDraw(oSettings);}});$(nNext).bind("click.DT",function(){if(oSettings.oApi._fnPageChange(oSettings,"next")){fnCallbackDraw(oSettings);}});$(nPrevious).bind("selectstart.DT",function(){return false;});$(nNext).bind("selectstart.DT",function(){return false;});if(oSettings.sTableId!==""&&typeof oSettings.aanFeatures.p=="undefined"){nPaging.setAttribute("id",oSettings.sTableId+"_paginate");nPrevious.setAttribute("id",oSettings.sTableId+"_previous");nNext.setAttribute("id",oSettings.sTableId+"_next");}},fnUpdate:function(oSettings,fnCallbackDraw){if(!oSettings.aanFeatures.p){return;}var an=oSettings.aanFeatures.p;for(var i=0,iLen=an.length;i<iLen;i++){if(an[i].childNodes.length!==0){an[i].childNodes[0].className=(oSettings._iDisplayStart===0)?oSettings.oClasses.sPagePrevDisabled:oSettings.oClasses.sPagePrevEnabled;an[i].childNodes[1].className=(oSettings.fnDisplayEnd()==oSettings.fnRecordsDisplay())?oSettings.oClasses.sPageNextDisabled:oSettings.oClasses.sPageNextEnabled;}}}},iFullNumbersShowPages:5,full_numbers:{fnInit:function(oSettings,nPaging,fnCallbackDraw){var nFirst=document.createElement("span");var nPrevious=document.createElement("span");var nList=document.createElement("span");var nNext=document.createElement("span");var nLast=document.createElement("span");nFirst.innerHTML=oSettings.oLanguage.oPaginate.sFirst;nPrevious.innerHTML=oSettings.oLanguage.oPaginate.sPrevious;nNext.innerHTML=oSettings.oLanguage.oPaginate.sNext;nLast.innerHTML=oSettings.oLanguage.oPaginate.sLast;var oClasses=oSettings.oClasses;nFirst.className=oClasses.sPageButton+" "+oClasses.sPageFirst;nPrevious.className=oClasses.sPageButton+" "+oClasses.sPagePrevious;nNext.className=oClasses.sPageButton+" "+oClasses.sPageNext;nLast.className=oClasses.sPageButton+" "+oClasses.sPageLast;nPaging.appendChild(nFirst);nPaging.appendChild(nPrevious);nPaging.appendChild(nList);nPaging.appendChild(nNext);nPaging.appendChild(nLast);$(nFirst).bind("click.DT",function(){if(oSettings.oApi._fnPageChange(oSettings,"first")){fnCallbackDraw(oSettings);}});$(nPrevious).bind("click.DT",function(){if(oSettings.oApi._fnPageChange(oSettings,"previous")){fnCallbackDraw(oSettings);}});$(nNext).bind("click.DT",function(){if(oSettings.oApi._fnPageChange(oSettings,"next")){fnCallbackDraw(oSettings);}});$(nLast).bind("click.DT",function(){if(oSettings.oApi._fnPageChange(oSettings,"last")){fnCallbackDraw(oSettings);}});$("span",nPaging).bind("mousedown.DT",function(){return false;}).bind("selectstart.DT",function(){return false;});if(oSettings.sTableId!==""&&typeof oSettings.aanFeatures.p=="undefined"){nPaging.setAttribute("id",oSettings.sTableId+"_paginate");nFirst.setAttribute("id",oSettings.sTableId+"_first");nPrevious.setAttribute("id",oSettings.sTableId+"_previous");nNext.setAttribute("id",oSettings.sTableId+"_next");nLast.setAttribute("id",oSettings.sTableId+"_last");}},fnUpdate:function(oSettings,fnCallbackDraw){if(!oSettings.aanFeatures.p){return;}var iPageCount=_oExt.oPagination.iFullNumbersShowPages;var iPageCountHalf=Math.floor(iPageCount/2);var iPages=Math.ceil((oSettings.fnRecordsDisplay())/oSettings._iDisplayLength);var iCurrentPage=Math.ceil(oSettings._iDisplayStart/oSettings._iDisplayLength)+1;var sList="";var iStartButton,iEndButton,i,iLen;var oClasses=oSettings.oClasses;if(iPages<iPageCount){iStartButton=1;iEndButton=iPages;}else{if(iCurrentPage<=iPageCountHalf){iStartButton=1;iEndButton=iPageCount;}else{if(iCurrentPage>=(iPages-iPageCountHalf)){iStartButton=iPages-iPageCount+1;iEndButton=iPages;}else{iStartButton=iCurrentPage-Math.ceil(iPageCount/2)+1;iEndButton=iStartButton+iPageCount-1;}}}for(i=iStartButton;i<=iEndButton;i++){if(iCurrentPage!=i){sList+='<span class="'+oClasses.sPageButton+'">'+i+"</span>";}else{sList+='<span class="'+oClasses.sPageButtonActive+'">'+i+"</span>";}}var an=oSettings.aanFeatures.p;var anButtons,anStatic,nPaginateList;var fnClick=function(){var iTarget=(this.innerHTML*1)-1;oSettings._iDisplayStart=iTarget*oSettings._iDisplayLength;fnCallbackDraw(oSettings);return false;};var fnFalse=function(){return false;};for(i=0,iLen=an.length;i<iLen;i++){if(an[i].childNodes.length===0){continue;}var qjPaginateList=$("span:eq(2)",an[i]);qjPaginateList.html(sList);$("span",qjPaginateList).bind("click.DT",fnClick).bind("mousedown.DT",fnFalse).bind("selectstart.DT",fnFalse);anButtons=an[i].getElementsByTagName("span");anStatic=[anButtons[0],anButtons[1],anButtons[anButtons.length-2],anButtons[anButtons.length-1]];$(anStatic).removeClass(oClasses.sPageButton+" "+oClasses.sPageButtonActive+" "+oClasses.sPageButtonStaticDisabled);if(iCurrentPage==1){anStatic[0].className+=" "+oClasses.sPageButtonStaticDisabled;anStatic[1].className+=" "+oClasses.sPageButtonStaticDisabled;}else{anStatic[0].className+=" "+oClasses.sPageButton;anStatic[1].className+=" "+oClasses.sPageButton;}if(iPages===0||iCurrentPage==iPages||oSettings._iDisplayLength==-1){anStatic[2].className+=" "+oClasses.sPageButtonStaticDisabled;anStatic[3].className+=" "+oClasses.sPageButtonStaticDisabled;}else{anStatic[2].className+=" "+oClasses.sPageButton;anStatic[3].className+=" "+oClasses.sPageButton;}}}}};_oExt.oSort={"string-asc":function(a,b){var x=a.toLowerCase();var y=b.toLowerCase();return((x<y)?-1:((x>y)?1:0));},"string-desc":function(a,b){var x=a.toLowerCase();var y=b.toLowerCase();return((x<y)?1:((x>y)?-1:0));},"html-asc":function(a,b){var x=a.replace(/<.*?>/g,"").toLowerCase();var y=b.replace(/<.*?>/g,"").toLowerCase();return((x<y)?-1:((x>y)?1:0));},"html-desc":function(a,b){var x=a.replace(/<.*?>/g,"").toLowerCase();var y=b.replace(/<.*?>/g,"").toLowerCase();return((x<y)?1:((x>y)?-1:0));},"date-asc":function(a,b){var x=Date.parse(a);var y=Date.parse(b);if(isNaN(x)||x===""){x=Date.parse("01/01/1970 00:00:00");}if(isNaN(y)||y===""){y=Date.parse("01/01/1970 00:00:00");}return x-y;},"date-desc":function(a,b){var x=Date.parse(a);var y=Date.parse(b);if(isNaN(x)||x===""){x=Date.parse("01/01/1970 00:00:00");}if(isNaN(y)||y===""){y=Date.parse("01/01/1970 00:00:00");}return y-x;},"numeric-asc":function(a,b){var x=(a=="-"||a==="")?0:a*1;var y=(b=="-"||b==="")?0:b*1;return x-y;},"numeric-desc":function(a,b){var x=(a=="-"||a==="")?0:a*1;var y=(b=="-"||b==="")?0:b*1;return y-x;}};_oExt.aTypes=[function(sData){if(sData.length===0){return"numeric";}var sValidFirstChars="0123456789-";var sValidChars="0123456789.";var Char;var bDecimal=false;Char=sData.charAt(0);if(sValidFirstChars.indexOf(Char)==-1){return null;}for(var i=1;i<sData.length;i++){Char=sData.charAt(i);if(sValidChars.indexOf(Char)==-1){return null;}if(Char=="."){if(bDecimal){return null;}bDecimal=true;}}return"numeric";},function(sData){var iParse=Date.parse(sData);if((iParse!==null&&!isNaN(iParse))||sData.length===0){return"date";}return null;},function(sData){if(sData.indexOf("<")!=-1&&sData.indexOf(">")!=-1){return"html";}return null;}];_oExt.fnVersionCheck=function(sVersion){var fnZPad=function(Zpad,count){while(Zpad.length<count){Zpad+="0";}return Zpad;};var aThis=_oExt.sVersion.split(".");var aThat=sVersion.split(".");var sThis="",sThat="";for(var i=0,iLen=aThat.length;i<iLen;i++){sThis+=fnZPad(aThis[i],3);sThat+=fnZPad(aThat[i],3);}return parseInt(sThis,10)>=parseInt(sThat,10);};_oExt._oExternConfig={iNextUnique:0};$.fn.dataTable=function(oInit){function classSettings(){this.fnRecordsTotal=function(){if(this.oFeatures.bServerSide){return parseInt(this._iRecordsTotal,10);}else{return this.aiDisplayMaster.length;}};this.fnRecordsDisplay=function(){if(this.oFeatures.bServerSide){return parseInt(this._iRecordsDisplay,10);}else{return this.aiDisplay.length;}};this.fnDisplayEnd=function(){if(this.oFeatures.bServerSide){if(this.oFeatures.bPaginate===false||this._iDisplayLength==-1){return this._iDisplayStart+this.aiDisplay.length;}else{return Math.min(this._iDisplayStart+this._iDisplayLength,this._iRecordsDisplay);}}else{return this._iDisplayEnd;}};this.oInstance=null;this.sInstance=null;this.oFeatures={bPaginate:true,bLengthChange:true,bFilter:true,bSort:true,bInfo:true,bAutoWidth:true,bProcessing:false,bSortClasses:true,bStateSave:false,bServerSide:false};this.oScroll={sX:"",sXInner:"",sY:"",bCollapse:false,bInfinite:false,iLoadGap:100,iBarWidth:0,bAutoCss:true};this.aanFeatures=[];this.oLanguage={sProcessing:"Processing...",sLengthMenu:"Show _MENU_ entries",sZeroRecords:"No matching records found",sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sSearch:"Search:",sUrl:"",oPaginate:{sFirst:"First",sPrevious:"Previous",sNext:"Next",sLast:"Last"},fnInfoCallback:null};this.aoData=[];this.aiDisplay=[];this.aiDisplayMaster=[];this.aoColumns=[];this.iNextId=0;this.asDataSearch=[];this.oPreviousSearch={sSearch:"",bRegex:false,bSmart:true};this.aoPreSearchCols=[];this.aaSorting=[[0,"asc",0]];this.aaSortingFixed=null;this.asStripClasses=[];this.asDestoryStrips=[];this.sDestroyWidth=0;this.fnRowCallback=null;this.fnHeaderCallback=null;this.fnFooterCallback=null;this.aoDrawCallback=[];this.fnInitComplete=null;this.sTableId="";this.nTable=null;this.nTHead=null;this.nTFoot=null;this.nTBody=null;this.nTableWrapper=null;this.bInitialised=false;this.aoOpenRows=[];this.sDom="lfrtip";this.sPaginationType="two_button";this.iCookieDuration=60*60*2;this.sCookiePrefix="SpryMedia_DataTables_";this.fnCookieCallback=null;this.aoStateSave=[];this.aoStateLoad=[];this.oLoadedState=null;this.sAjaxSource=null;this.bAjaxDataGet=true;this.fnServerData=function(url,data,callback){$.ajax({url:url,data:data,success:callback,dataType:"json",cache:false,error:function(xhr,error,thrown){if(error=="parsererror"){alert("DataTables warning: JSON data from server could not be parsed. This is caused by a JSON formatting error.");}}});};this.fnFormatNumber=function(iIn){if(iIn<1000){return iIn;}else{var s=(iIn+""),a=s.split(""),out="",iLen=s.length;for(var i=0;i<iLen;i++){if(i%3===0&&i!==0){out=","+out;}out=a[iLen-i-1]+out;}}return out;};this.aLengthMenu=[10,25,50,100];this.iDraw=0;this.bDrawing=0;this.iDrawError=-1;this._iDisplayLength=10;this._iDisplayStart=0;this._iDisplayEnd=10;this._iRecordsTotal=0;this._iRecordsDisplay=0;this.bJUI=false;this.oClasses=_oExt.oStdClasses;this.bFiltered=false;this.bSorted=false;this.oInit=null;}this.oApi={};this.fnDraw=function(bComplete){var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]);if(typeof bComplete!="undefined"&&bComplete===false){_fnCalculateEnd(oSettings);_fnDraw(oSettings);}else{_fnReDraw(oSettings);}};this.fnFilter=function(sInput,iColumn,bRegex,bSmart,bShowGlobal){var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]);if(!oSettings.oFeatures.bFilter){return;}if(typeof bRegex=="undefined"){bRegex=false;}if(typeof bSmart=="undefined"){bSmart=true;}if(typeof bShowGlobal=="undefined"){bShowGlobal=true;}if(typeof iColumn=="undefined"||iColumn===null){_fnFilterComplete(oSettings,{sSearch:sInput,bRegex:bRegex,bSmart:bSmart},1);if(bShowGlobal&&typeof oSettings.aanFeatures.f!="undefined"){var n=oSettings.aanFeatures.f;for(var i=0,iLen=n.length;i<iLen;i++){$("input",n[i]).val(sInput);}}}else{oSettings.aoPreSearchCols[iColumn].sSearch=sInput;oSettings.aoPreSearchCols[iColumn].bRegex=bRegex;oSettings.aoPreSearchCols[iColumn].bSmart=bSmart;_fnFilterComplete(oSettings,oSettings.oPreviousSearch,1);}};this.fnSettings=function(nNode){return _fnSettingsFromNode(this[_oExt.iApiIndex]);};this.fnVersionCheck=_oExt.fnVersionCheck;this.fnSort=function(aaSort){var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]);oSettings.aaSorting=aaSort;_fnSort(oSettings);};this.fnSortListener=function(nNode,iColumn,fnCallback){_fnSortAttachListener(_fnSettingsFromNode(this[_oExt.iApiIndex]),nNode,iColumn,fnCallback);};this.fnAddData=function(mData,bRedraw){if(mData.length===0){return[];}var aiReturn=[];var iTest;var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]);if(typeof mData[0]=="object"){for(var i=0;i<mData.length;i++){iTest=_fnAddData(oSettings,mData[i]);if(iTest==-1){return aiReturn;}aiReturn.push(iTest);}}else{iTest=_fnAddData(oSettings,mData);if(iTest==-1){return aiReturn;}aiReturn.push(iTest);}oSettings.aiDisplay=oSettings.aiDisplayMaster.slice();if(typeof bRedraw=="undefined"||bRedraw){_fnReDraw(oSettings);}return aiReturn;};this.fnDeleteRow=function(mTarget,fnCallBack,bRedraw){var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]);var i,iAODataIndex;iAODataIndex=(typeof mTarget=="object")?_fnNodeToDataIndex(oSettings,mTarget):mTarget;var oData=oSettings.aoData.splice(iAODataIndex,1);var iDisplayIndex=$.inArray(iAODataIndex,oSettings.aiDisplay);oSettings.asDataSearch.splice(iDisplayIndex,1);_fnDeleteIndex(oSettings.aiDisplayMaster,iAODataIndex);_fnDeleteIndex(oSettings.aiDisplay,iAODataIndex);if(typeof fnCallBack=="function"){fnCallBack.call(this,oSettings,oData);}if(oSettings._iDisplayStart>=oSettings.aiDisplay.length){oSettings._iDisplayStart-=oSettings._iDisplayLength;if(oSettings._iDisplayStart<0){oSettings._iDisplayStart=0;}}if(typeof bRedraw=="undefined"||bRedraw){_fnCalculateEnd(oSettings);_fnDraw(oSettings);}return oData;};this.fnClearTable=function(bRedraw){var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]);_fnClearTable(oSettings);if(typeof bRedraw=="undefined"||bRedraw){_fnDraw(oSettings);}};this.fnOpen=function(nTr,sHtml,sClass){var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]);this.fnClose(nTr);var nNewRow=document.createElement("tr");var nNewCell=document.createElement("td");nNewRow.appendChild(nNewCell);nNewCell.className=sClass;nNewCell.colSpan=_fnVisbleColumns(oSettings);nNewCell.innerHTML=sHtml;var nTrs=$("tr",oSettings.nTBody);if($.inArray(nTr,nTrs)!=-1){$(nNewRow).insertAfter(nTr);}oSettings.aoOpenRows.push({nTr:nNewRow,nParent:nTr});return nNewRow;};this.fnClose=function(nTr){var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]);for(var i=0;i<oSettings.aoOpenRows.length;i++){if(oSettings.aoOpenRows[i].nParent==nTr){var nTrParent=oSettings.aoOpenRows[i].nTr.parentNode;if(nTrParent){nTrParent.removeChild(oSettings.aoOpenRows[i].nTr);}oSettings.aoOpenRows.splice(i,1);return 0;}}return 1;};this.fnGetData=function(mRow){var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]);if(typeof mRow!="undefined"){var iRow=(typeof mRow=="object")?_fnNodeToDataIndex(oSettings,mRow):mRow;return((aRowData=oSettings.aoData[iRow])?aRowData._aData:null);}return _fnGetDataMaster(oSettings);};this.fnGetNodes=function(iRow){var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]);if(typeof iRow!="undefined"){return((aRowData=oSettings.aoData[iRow])?aRowData.nTr:null);}return _fnGetTrNodes(oSettings);};this.fnGetPosition=function(nNode){var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]);var i;if(nNode.nodeName.toUpperCase()=="TR"){return _fnNodeToDataIndex(oSettings,nNode);}else{if(nNode.nodeName.toUpperCase()=="TD"){var iDataIndex=_fnNodeToDataIndex(oSettings,nNode.parentNode);var iCorrector=0;for(var j=0;j<oSettings.aoColumns.length;j++){if(oSettings.aoColumns[j].bVisible){if(oSettings.aoData[iDataIndex].nTr.getElementsByTagName("td")[j-iCorrector]==nNode){return[iDataIndex,j-iCorrector,j];}}else{iCorrector++;}}}}return null;};this.fnUpdate=function(mData,mRow,iColumn,bRedraw,bAction){var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]);var iVisibleColumn;var sDisplay;var iRow=(typeof mRow=="object")?_fnNodeToDataIndex(oSettings,mRow):mRow;if(typeof mData!="object"){sDisplay=mData;oSettings.aoData[iRow]._aData[iColumn]=sDisplay;if(oSettings.aoColumns[iColumn].fnRender!==null){sDisplay=oSettings.aoColumns[iColumn].fnRender({iDataRow:iRow,iDataColumn:iColumn,aData:oSettings.aoData[iRow]._aData,oSettings:oSettings});if(oSettings.aoColumns[iColumn].bUseRendered){oSettings.aoData[iRow]._aData[iColumn]=sDisplay;}}iVisibleColumn=_fnColumnIndexToVisible(oSettings,iColumn);if(iVisibleColumn!==null){oSettings.aoData[iRow].nTr.getElementsByTagName("td")[iVisibleColumn].innerHTML=sDisplay;}else{oSettings.aoData[iRow]._anHidden[iColumn].innerHTML=sDisplay;}}else{if(mData.length!=oSettings.aoColumns.length){_fnLog(oSettings,0,"An array passed to fnUpdate must have the same number of columns as the table in question - in this case "+oSettings.aoColumns.length);return 1;}for(var i=0;i<mData.length;i++){sDisplay=mData[i];oSettings.aoData[iRow]._aData[i]=sDisplay;if(oSettings.aoColumns[i].fnRender!==null){sDisplay=oSettings.aoColumns[i].fnRender({iDataRow:iRow,iDataColumn:i,aData:oSettings.aoData[iRow]._aData,oSettings:oSettings});if(oSettings.aoColumns[i].bUseRendered){oSettings.aoData[iRow]._aData[i]=sDisplay;}}iVisibleColumn=_fnColumnIndexToVisible(oSettings,i);if(iVisibleColumn!==null){oSettings.aoData[iRow].nTr.getElementsByTagName("td")[iVisibleColumn].innerHTML=sDisplay;}else{oSettings.aoData[iRow]._anHidden[i].innerHTML=sDisplay;}}}var iDisplayIndex=$.inArray(iRow,oSettings.aiDisplay);oSettings.asDataSearch[iDisplayIndex]=_fnBuildSearchRow(oSettings,oSettings.aoData[iRow]._aData);if(typeof bAction=="undefined"||bAction){_fnAjustColumnSizing(oSettings);}if(typeof bRedraw=="undefined"||bRedraw){_fnReDraw(oSettings);}return 0;};this.fnSetColumnVis=function(iCol,bShow,bRedraw){var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]);var i,iLen;var iColumns=oSettings.aoColumns.length;var nTd,anTds,nCell,anTrs,jqChildren;if(oSettings.aoColumns[iCol].bVisible==bShow){return;}var nTrHead=$(">tr",oSettings.nTHead)[0];var nTrFoot=$(">tr",oSettings.nTFoot)[0];var anTheadTh=[];var anTfootTh=[];for(i=0;i<iColumns;i++){anTheadTh.push(oSettings.aoColumns[i].nTh);anTfootTh.push(oSettings.aoColumns[i].nTf);}if(bShow){var iInsert=0;for(i=0;i<iCol;i++){if(oSettings.aoColumns[i].bVisible){iInsert++;}}if(iInsert>=_fnVisbleColumns(oSettings)){nTrHead.appendChild(anTheadTh[iCol]);anTrs=$(">tr",oSettings.nTHead);for(i=1,iLen=anTrs.length;i<iLen;i++){anTrs[i].appendChild(oSettings.aoColumns[iCol].anThExtra[i-1]);}if(nTrFoot){nTrFoot.appendChild(anTfootTh[iCol]);anTrs=$(">tr",oSettings.nTFoot);for(i=1,iLen=anTrs.length;i<iLen;i++){anTrs[i].appendChild(oSettings.aoColumns[iCol].anTfExtra[i-1]);}}for(i=0,iLen=oSettings.aoData.length;i<iLen;i++){nTd=oSettings.aoData[i]._anHidden[iCol];oSettings.aoData[i].nTr.appendChild(nTd);}}else{var iBefore;for(i=iCol;i<iColumns;i++){iBefore=_fnColumnIndexToVisible(oSettings,i);if(iBefore!==null){break;}}nTrHead.insertBefore(anTheadTh[iCol],nTrHead.getElementsByTagName("th")[iBefore]);anTrs=$(">tr",oSettings.nTHead);for(i=1,iLen=anTrs.length;i<iLen;i++){jqChildren=$(anTrs[i]).children();anTrs[i].insertBefore(oSettings.aoColumns[iCol].anThExtra[i-1],jqChildren[iBefore]);}if(nTrFoot){nTrFoot.insertBefore(anTfootTh[iCol],nTrFoot.getElementsByTagName("th")[iBefore]);anTrs=$(">tr",oSettings.nTFoot);for(i=1,iLen=anTrs.length;i<iLen;i++){jqChildren=$(anTrs[i]).children();anTrs[i].insertBefore(oSettings.aoColumns[iCol].anTfExtra[i-1],jqChildren[iBefore]);}}anTds=_fnGetTdNodes(oSettings);for(i=0,iLen=oSettings.aoData.length;i<iLen;i++){nTd=oSettings.aoData[i]._anHidden[iCol];oSettings.aoData[i].nTr.insertBefore(nTd,$(">td:eq("+iBefore+")",oSettings.aoData[i].nTr)[0]);}}oSettings.aoColumns[iCol].bVisible=true;}else{nTrHead.removeChild(anTheadTh[iCol]);for(i=0,iLen=oSettings.aoColumns[iCol].anThExtra.length;i<iLen;i++){nCell=oSettings.aoColumns[iCol].anThExtra[i];nCell.parentNode.removeChild(nCell);}if(nTrFoot){nTrFoot.removeChild(anTfootTh[iCol]);for(i=0,iLen=oSettings.aoColumns[iCol].anTfExtra.length;i<iLen;i++){nCell=oSettings.aoColumns[iCol].anTfExtra[i];nCell.parentNode.removeChild(nCell);}}anTds=_fnGetTdNodes(oSettings);for(i=0,iLen=oSettings.aoData.length;i<iLen;i++){nTd=anTds[(i*oSettings.aoColumns.length)+(iCol*1)];oSettings.aoData[i]._anHidden[iCol]=nTd;nTd.parentNode.removeChild(nTd);}oSettings.aoColumns[iCol].bVisible=false;}for(i=0,iLen=oSettings.aoOpenRows.length;i<iLen;i++){oSettings.aoOpenRows[i].nTr.colSpan=_fnVisbleColumns(oSettings);}if(typeof bRedraw=="undefined"||bRedraw){_fnAjustColumnSizing(oSettings);_fnDraw(oSettings);}_fnSaveState(oSettings);};this.fnPageChange=function(sAction,bRedraw){var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]);_fnPageChange(oSettings,sAction);_fnCalculateEnd(oSettings);if(typeof bRedraw=="undefined"||bRedraw){_fnDraw(oSettings);}};this.fnDestroy=function(){var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]);var nOrig=oSettings.nTableWrapper.parentNode;var nBody=oSettings.nTBody;var i,iLen;oSettings.bDestroying=true;$(oSettings.nTableWrapper).find("*").andSelf().unbind(".DT");for(i=0,iLen=oSettings.aoColumns.length;i<iLen;i++){if(oSettings.aoColumns[i].bVisible===false){this.fnSetColumnVis(i,true);}}$("tbody>tr>td."+oSettings.oClasses.sRowEmpty,oSettings.nTable).parent().remove();if(oSettings.nTable!=oSettings.nTHead.parentNode){$(">thead",oSettings.nTable).remove();oSettings.nTable.appendChild(oSettings.nTHead);}if(oSettings.nTFoot&&oSettings.nTable!=oSettings.nTFoot.parentNode){$(">tfoot",oSettings.nTable).remove();oSettings.nTable.appendChild(oSettings.nTFoot);}oSettings.nTable.parentNode.removeChild(oSettings.nTable);$(oSettings.nTableWrapper).remove();oSettings.aaSorting=[];oSettings.aaSortingFixed=[];_fnSortingClasses(oSettings);$(_fnGetTrNodes(oSettings)).removeClass(oSettings.asStripClasses.join(" "));if(!oSettings.bJUI){$("th",oSettings.nTHead).removeClass([_oExt.oStdClasses.sSortable,_oExt.oStdClasses.sSortableAsc,_oExt.oStdClasses.sSortableDesc,_oExt.oStdClasses.sSortableNone].join(" "));}else{$("th",oSettings.nTHead).removeClass([_oExt.oStdClasses.sSortable,_oExt.oJUIClasses.sSortableAsc,_oExt.oJUIClasses.sSortableDesc,_oExt.oJUIClasses.sSortableNone].join(" "));$("th span",oSettings.nTHead).remove();}nOrig.appendChild(oSettings.nTable);for(i=0,iLen=oSettings.aoData.length;i<iLen;i++){nBody.appendChild(oSettings.aoData[i].nTr);}oSettings.nTable.style.width=_fnStringToCss(oSettings.sDestroyWidth);$(">tr:even",nBody).addClass(oSettings.asDestoryStrips[0]);$(">tr:odd",nBody).addClass(oSettings.asDestoryStrips[1]);for(i=0,iLen=_aoSettings.length;i<iLen;i++){if(_aoSettings[i]==oSettings){_aoSettings.splice(i,1);}}oSettings=null;};this.fnAdjustColumnSizing=function(bRedraw){var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]);_fnAjustColumnSizing(oSettings);if(typeof bRedraw=="undefined"||bRedraw){this.fnDraw(false);}else{if(oSettings.oScroll.sX!==""||oSettings.oScroll.sY!==""){this.oApi._fnScrollDraw(oSettings);}}};function _fnExternApiFunc(sFunc){return function(){var aArgs=[_fnSettingsFromNode(this[_oExt.iApiIndex])].concat(Array.prototype.slice.call(arguments));return _oExt.oApi[sFunc].apply(this,aArgs);};}for(var sFunc in _oExt.oApi){if(sFunc){this[sFunc]=_fnExternApiFunc(sFunc);}}function _fnInitalise(oSettings){var i,iLen;if(oSettings.bInitialised===false){setTimeout(function(){_fnInitalise(oSettings);},200);return;}_fnAddOptionsHtml(oSettings);_fnDrawHead(oSettings);_fnProcessingDisplay(oSettings,true);if(oSettings.oFeatures.bAutoWidth){_fnCalculateColumnWidths(oSettings);}for(i=0,iLen=oSettings.aoColumns.length;i<iLen;i++){if(oSettings.aoColumns[i].sWidth!==null){oSettings.aoColumns[i].nTh.style.width=_fnStringToCss(oSettings.aoColumns[i].sWidth);}}if(oSettings.oFeatures.bSort){_fnSort(oSettings);}else{oSettings.aiDisplay=oSettings.aiDisplayMaster.slice();_fnCalculateEnd(oSettings);_fnDraw(oSettings);}if(oSettings.sAjaxSource!==null&&!oSettings.oFeatures.bServerSide){oSettings.fnServerData.call(oSettings.oInstance,oSettings.sAjaxSource,[],function(json){for(i=0;i<json.aaData.length;i++){_fnAddData(oSettings,json.aaData[i]);}oSettings.iInitDisplayStart=oSettings._iDisplayStart;if(oSettings.oFeatures.bSort){_fnSort(oSettings);}else{oSettings.aiDisplay=oSettings.aiDisplayMaster.slice();_fnCalculateEnd(oSettings);_fnDraw(oSettings);}_fnProcessingDisplay(oSettings,false);_fnInitComplete(oSettings,json);});return;}if(!oSettings.oFeatures.bServerSide){_fnProcessingDisplay(oSettings,false);_fnInitComplete(oSettings);}}function _fnInitComplete(oSettings,json){oSettings._bInitComplete=true;if(typeof oSettings.fnInitComplete=="function"){if(typeof json!="undefined"){oSettings.fnInitComplete.call(oSettings.oInstance,oSettings,json);}else{oSettings.fnInitComplete.call(oSettings.oInstance,oSettings);}}}function _fnLanguageProcess(oSettings,oLanguage,bInit){_fnMap(oSettings.oLanguage,oLanguage,"sProcessing");_fnMap(oSettings.oLanguage,oLanguage,"sLengthMenu");_fnMap(oSettings.oLanguage,oLanguage,"sEmptyTable");_fnMap(oSettings.oLanguage,oLanguage,"sZeroRecords");_fnMap(oSettings.oLanguage,oLanguage,"sInfo");_fnMap(oSettings.oLanguage,oLanguage,"sInfoEmpty");_fnMap(oSettings.oLanguage,oLanguage,"sInfoFiltered");_fnMap(oSettings.oLanguage,oLanguage,"sInfoPostFix");_fnMap(oSettings.oLanguage,oLanguage,"sSearch");if(typeof oLanguage.oPaginate!="undefined"){_fnMap(oSettings.oLanguage.oPaginate,oLanguage.oPaginate,"sFirst");_fnMap(oSettings.oLanguage.oPaginate,oLanguage.oPaginate,"sPrevious");_fnMap(oSettings.oLanguage.oPaginate,oLanguage.oPaginate,"sNext");_fnMap(oSettings.oLanguage.oPaginate,oLanguage.oPaginate,"sLast");}if(typeof oLanguage.sEmptyTable=="undefined"&&typeof oLanguage.sZeroRecords!="undefined"){_fnMap(oSettings.oLanguage,oLanguage,"sZeroRecords","sEmptyTable");}if(bInit){_fnInitalise(oSettings);}}function _fnAddColumn(oSettings,nTh){oSettings.aoColumns[oSettings.aoColumns.length++]={sType:null,_bAutoType:true,bVisible:true,bSearchable:true,bSortable:true,asSorting:["asc","desc"],sSortingClass:oSettings.oClasses.sSortable,sSortingClassJUI:oSettings.oClasses.sSortJUI,sTitle:nTh?nTh.innerHTML:"",sName:"",sWidth:null,sWidthOrig:null,sClass:null,fnRender:null,bUseRendered:true,iDataSort:oSettings.aoColumns.length-1,sSortDataType:"std",nTh:nTh?nTh:document.createElement("th"),nTf:null,anThExtra:[],anTfExtra:[]};var iCol=oSettings.aoColumns.length-1;var oCol=oSettings.aoColumns[iCol];if(typeof oSettings.aoPreSearchCols[iCol]=="undefined"||oSettings.aoPreSearchCols[iCol]===null){oSettings.aoPreSearchCols[iCol]={sSearch:"",bRegex:false,bSmart:true};}else{if(typeof oSettings.aoPreSearchCols[iCol].bRegex=="undefined"){oSettings.aoPreSearchCols[iCol].bRegex=true;}if(typeof oSettings.aoPreSearchCols[iCol].bSmart=="undefined"){oSettings.aoPreSearchCols[iCol].bSmart=true;}}_fnColumnOptions(oSettings,iCol,null);}function _fnColumnOptions(oSettings,iCol,oOptions){var oCol=oSettings.aoColumns[iCol];if(typeof oOptions!="undefined"&&oOptions!==null){if(typeof oOptions.sType!="undefined"){oCol.sType=oOptions.sType;oCol._bAutoType=false;}_fnMap(oCol,oOptions,"bVisible");_fnMap(oCol,oOptions,"bSearchable");_fnMap(oCol,oOptions,"bSortable");_fnMap(oCol,oOptions,"sTitle");_fnMap(oCol,oOptions,"sName");_fnMap(oCol,oOptions,"sWidth");_fnMap(oCol,oOptions,"sWidth","sWidthOrig");_fnMap(oCol,oOptions,"sClass");_fnMap(oCol,oOptions,"fnRender");_fnMap(oCol,oOptions,"bUseRendered");_fnMap(oCol,oOptions,"iDataSort");_fnMap(oCol,oOptions,"asSorting");_fnMap(oCol,oOptions,"sSortDataType");}if(!oSettings.oFeatures.bSort){oCol.bSortable=false;}if(!oCol.bSortable||($.inArray("asc",oCol.asSorting)==-1&&$.inArray("desc",oCol.asSorting)==-1)){oCol.sSortingClass=oSettings.oClasses.sSortableNone;oCol.sSortingClassJUI="";}else{if($.inArray("asc",oCol.asSorting)!=-1&&$.inArray("desc",oCol.asSorting)==-1){oCol.sSortingClass=oSettings.oClasses.sSortableAsc;oCol.sSortingClassJUI=oSettings.oClasses.sSortJUIAscAllowed;}else{if($.inArray("asc",oCol.asSorting)==-1&&$.inArray("desc",oCol.asSorting)!=-1){oCol.sSortingClass=oSettings.oClasses.sSortableDesc;oCol.sSortingClassJUI=oSettings.oClasses.sSortJUIDescAllowed;}}}}function _fnAddData(oSettings,aDataSupplied){if(aDataSupplied.length!=oSettings.aoColumns.length&&oSettings.iDrawError!=oSettings.iDraw){_fnLog(oSettings,0,"Added data (size "+aDataSupplied.length+") does not match known number of columns ("+oSettings.aoColumns.length+")");oSettings.iDrawError=oSettings.iDraw;return -1;}var aData=aDataSupplied.slice();var iThisIndex=oSettings.aoData.length;oSettings.aoData.push({nTr:document.createElement("tr"),_iId:oSettings.iNextId++,_aData:aData,_anHidden:[],_sRowStripe:""});var nTd,sThisType;for(var i=0;i<aData.length;i++){nTd=document.createElement("td");if(aData[i]===null){aData[i]="";}if(typeof oSettings.aoColumns[i].fnRender=="function"){var sRendered=oSettings.aoColumns[i].fnRender({iDataRow:iThisIndex,iDataColumn:i,aData:aData,oSettings:oSettings});nTd.innerHTML=sRendered;if(oSettings.aoColumns[i].bUseRendered){oSettings.aoData[iThisIndex]._aData[i]=sRendered;}}else{nTd.innerHTML=aData[i];}if(typeof aData[i]!="string"){aData[i]+="";}aData[i]=$.trim(aData[i]);if(oSettings.aoColumns[i].sClass!==null){nTd.className=oSettings.aoColumns[i].sClass;}if(oSettings.aoColumns[i]._bAutoType&&oSettings.aoColumns[i].sType!="string"){sThisType=_fnDetectType(oSettings.aoData[iThisIndex]._aData[i]);if(oSettings.aoColumns[i].sType===null){oSettings.aoColumns[i].sType=sThisType;}else{if(oSettings.aoColumns[i].sType!=sThisType){oSettings.aoColumns[i].sType="string";}}}if(oSettings.aoColumns[i].bVisible){oSettings.aoData[iThisIndex].nTr.appendChild(nTd);oSettings.aoData[iThisIndex]._anHidden[i]=null;}else{oSettings.aoData[iThisIndex]._anHidden[i]=nTd;}}oSettings.aiDisplayMaster.push(iThisIndex);return iThisIndex;}function _fnGatherData(oSettings){var iLoop,i,iLen,j,jLen,jInner,nTds,nTrs,nTd,aLocalData,iThisIndex,iRow,iRows,iColumn,iColumns;if(oSettings.sAjaxSource===null){nTrs=oSettings.nTBody.childNodes;for(i=0,iLen=nTrs.length;i<iLen;i++){if(nTrs[i].nodeName.toUpperCase()=="TR"){iThisIndex=oSettings.aoData.length;oSettings.aoData.push({nTr:nTrs[i],_iId:oSettings.iNextId++,_aData:[],_anHidden:[],_sRowStripe:""});oSettings.aiDisplayMaster.push(iThisIndex);aLocalData=oSettings.aoData[iThisIndex]._aData;nTds=nTrs[i].childNodes;jInner=0;for(j=0,jLen=nTds.length;j<jLen;j++){if(nTds[j].nodeName.toUpperCase()=="TD"){aLocalData[jInner]=$.trim(nTds[j].innerHTML);jInner++;}}}}}nTrs=_fnGetTrNodes(oSettings);nTds=[];for(i=0,iLen=nTrs.length;i<iLen;i++){for(j=0,jLen=nTrs[i].childNodes.length;j<jLen;j++){nTd=nTrs[i].childNodes[j];if(nTd.nodeName.toUpperCase()=="TD"){nTds.push(nTd);}}}if(nTds.length!=nTrs.length*oSettings.aoColumns.length){_fnLog(oSettings,1,"Unexpected number of TD elements. Expected "+(nTrs.length*oSettings.aoColumns.length)+" and got "+nTds.length+". DataTables does not support rowspan / colspan in the table body, and there must be one cell for each row/column combination.");}for(iColumn=0,iColumns=oSettings.aoColumns.length;iColumn<iColumns;iColumn++){if(oSettings.aoColumns[iColumn].sTitle===null){oSettings.aoColumns[iColumn].sTitle=oSettings.aoColumns[iColumn].nTh.innerHTML;}var bAutoType=oSettings.aoColumns[iColumn]._bAutoType,bRender=typeof oSettings.aoColumns[iColumn].fnRender=="function",bClass=oSettings.aoColumns[iColumn].sClass!==null,bVisible=oSettings.aoColumns[iColumn].bVisible,nCell,sThisType,sRendered;if(bAutoType||bRender||bClass||!bVisible){for(iRow=0,iRows=oSettings.aoData.length;iRow<iRows;iRow++){nCell=nTds[(iRow*iColumns)+iColumn];if(bAutoType){if(oSettings.aoColumns[iColumn].sType!="string"){sThisType=_fnDetectType(oSettings.aoData[iRow]._aData[iColumn]);if(oSettings.aoColumns[iColumn].sType===null){oSettings.aoColumns[iColumn].sType=sThisType;}else{if(oSettings.aoColumns[iColumn].sType!=sThisType){oSettings.aoColumns[iColumn].sType="string";}}}}if(bRender){sRendered=oSettings.aoColumns[iColumn].fnRender({iDataRow:iRow,iDataColumn:iColumn,aData:oSettings.aoData[iRow]._aData,oSettings:oSettings});nCell.innerHTML=sRendered;if(oSettings.aoColumns[iColumn].bUseRendered){oSettings.aoData[iRow]._aData[iColumn]=sRendered;}}if(bClass){nCell.className+=" "+oSettings.aoColumns[iColumn].sClass;}if(!bVisible){oSettings.aoData[iRow]._anHidden[iColumn]=nCell;nCell.parentNode.removeChild(nCell);}else{oSettings.aoData[iRow]._anHidden[iColumn]=null;}}}}}function _fnDrawHead(oSettings){var i,nTh,iLen,j,jLen;var anTr=oSettings.nTHead.getElementsByTagName("tr");var iThs=oSettings.nTHead.getElementsByTagName("th").length;var iCorrector=0;var jqChildren;if(iThs!==0){for(i=0,iLen=oSettings.aoColumns.length;i<iLen;i++){nTh=oSettings.aoColumns[i].nTh;if(oSettings.aoColumns[i].sClass!==null){$(nTh).addClass(oSettings.aoColumns[i].sClass);}for(j=1,jLen=anTr.length;j<jLen;j++){jqChildren=$(anTr[j]).children();oSettings.aoColumns[i].anThExtra.push(jqChildren[i-iCorrector]);if(!oSettings.aoColumns[i].bVisible){anTr[j].removeChild(jqChildren[i-iCorrector]);}}if(oSettings.aoColumns[i].bVisible){if(oSettings.aoColumns[i].sTitle!=nTh.innerHTML){nTh.innerHTML=oSettings.aoColumns[i].sTitle;}}else{nTh.parentNode.removeChild(nTh);iCorrector++;}}}else{var nTr=document.createElement("tr");for(i=0,iLen=oSettings.aoColumns.length;i<iLen;i++){nTh=oSettings.aoColumns[i].nTh;nTh.innerHTML=oSettings.aoColumns[i].sTitle;if(oSettings.aoColumns[i].sClass!==null){$(nTh).addClass(oSettings.aoColumns[i].sClass);}if(oSettings.aoColumns[i].bVisible){nTr.appendChild(nTh);}}$(oSettings.nTHead).html("")[0].appendChild(nTr);}if(oSettings.bJUI){for(i=0,iLen=oSettings.aoColumns.length;i<iLen;i++){nTh=oSettings.aoColumns[i].nTh;var nDiv=document.createElement("div");nDiv.className=oSettings.oClasses.sSortJUIWrapper;$(nTh).contents().appendTo(nDiv);nDiv.appendChild(document.createElement("span"));nTh.appendChild(nDiv);}}var fnNoSelect=function(e){this.onselectstart=function(){return false;};return false;};if(oSettings.oFeatures.bSort){for(i=0;i<oSettings.aoColumns.length;i++){if(oSettings.aoColumns[i].bSortable!==false){_fnSortAttachListener(oSettings,oSettings.aoColumns[i].nTh,i);$(oSettings.aoColumns[i].nTh).bind("mousedown.DT",fnNoSelect);}else{$(oSettings.aoColumns[i].nTh).addClass(oSettings.oClasses.sSortableNone);}}}if(oSettings.nTFoot!==null){iCorrector=0;anTr=oSettings.nTFoot.getElementsByTagName("tr");var nTfs=anTr[0].getElementsByTagName("th");for(i=0,iLen=nTfs.length;i<iLen;i++){if(typeof oSettings.aoColumns[i]!="undefined"){oSettings.aoColumns[i].nTf=nTfs[i-iCorrector];if(oSettings.oClasses.sFooterTH!==""){oSettings.aoColumns[i].nTf.className+=" "+oSettings.oClasses.sFooterTH;}for(j=1,jLen=anTr.length;j<jLen;j++){jqChildren=$(anTr[j]).children();oSettings.aoColumns[i].anTfExtra.push(jqChildren[i-iCorrector]);if(!oSettings.aoColumns[i].bVisible){anTr[j].removeChild(jqChildren[i-iCorrector]);}}if(!oSettings.aoColumns[i].bVisible){nTfs[i-iCorrector].parentNode.removeChild(nTfs[i-iCorrector]);iCorrector++;}}}}}function _fnDraw(oSettings){var i,iLen;var anRows=[];var iRowCount=0;var bRowError=false;var iStrips=oSettings.asStripClasses.length;var iOpenRows=oSettings.aoOpenRows.length;oSettings.bDrawing=true;if(typeof oSettings.iInitDisplayStart!="undefined"&&oSettings.iInitDisplayStart!=-1){if(oSettings.oFeatures.bServerSide){oSettings._iDisplayStart=oSettings.iInitDisplayStart;}else{oSettings._iDisplayStart=(oSettings.iInitDisplayStart>=oSettings.fnRecordsDisplay())?0:oSettings.iInitDisplayStart;}oSettings.iInitDisplayStart=-1;_fnCalculateEnd(oSettings);}if(!oSettings.bDestroying&&oSettings.oFeatures.bServerSide&&!_fnAjaxUpdate(oSettings)){return;}else{if(!oSettings.oFeatures.bServerSide){oSettings.iDraw++;}}if(oSettings.aiDisplay.length!==0){var iStart=oSettings._iDisplayStart;var iEnd=oSettings._iDisplayEnd;if(oSettings.oFeatures.bServerSide){iStart=0;iEnd=oSettings.aoData.length;}for(var j=iStart;j<iEnd;j++){var aoData=oSettings.aoData[oSettings.aiDisplay[j]];var nRow=aoData.nTr;if(iStrips!==0){var sStrip=oSettings.asStripClasses[iRowCount%iStrips];if(aoData._sRowStripe!=sStrip){$(nRow).removeClass(aoData._sRowStripe).addClass(sStrip);aoData._sRowStripe=sStrip;}}if(typeof oSettings.fnRowCallback=="function"){nRow=oSettings.fnRowCallback.call(oSettings.oInstance,nRow,oSettings.aoData[oSettings.aiDisplay[j]]._aData,iRowCount,j);if(!nRow&&!bRowError){_fnLog(oSettings,0,"A node was not returned by fnRowCallback");bRowError=true;}}anRows.push(nRow);iRowCount++;if(iOpenRows!==0){for(var k=0;k<iOpenRows;k++){if(nRow==oSettings.aoOpenRows[k].nParent){anRows.push(oSettings.aoOpenRows[k].nTr);}}}}}else{anRows[0]=document.createElement("tr");if(typeof oSettings.asStripClasses[0]!="undefined"){anRows[0].className=oSettings.asStripClasses[0];}var nTd=document.createElement("td");nTd.setAttribute("valign","top");nTd.colSpan=_fnVisbleColumns(oSettings);nTd.className=oSettings.oClasses.sRowEmpty;if(typeof oSettings.oLanguage.sEmptyTable!="undefined"&&oSettings.fnRecordsTotal()===0){nTd.innerHTML=oSettings.oLanguage.sEmptyTable;}else{nTd.innerHTML=oSettings.oLanguage.sZeroRecords.replace("_MAX_",oSettings.fnFormatNumber(oSettings.fnRecordsTotal()));}anRows[iRowCount].appendChild(nTd);}if(typeof oSettings.fnHeaderCallback=="function"){oSettings.fnHeaderCallback.call(oSettings.oInstance,$(">tr",oSettings.nTHead)[0],_fnGetDataMaster(oSettings),oSettings._iDisplayStart,oSettings.fnDisplayEnd(),oSettings.aiDisplay);}if(typeof oSettings.fnFooterCallback=="function"){oSettings.fnFooterCallback.call(oSettings.oInstance,$(">tr",oSettings.nTFoot)[0],_fnGetDataMaster(oSettings),oSettings._iDisplayStart,oSettings.fnDisplayEnd(),oSettings.aiDisplay);}var nAddFrag=document.createDocumentFragment(),nRemoveFrag=document.createDocumentFragment(),nBodyPar,nTrs;if(oSettings.nTBody){nBodyPar=oSettings.nTBody.parentNode;nRemoveFrag.appendChild(oSettings.nTBody);if(!oSettings.oScroll.bInfinite||!oSettings._bInitComplete||oSettings.bSorted||oSettings.bFiltered){nTrs=oSettings.nTBody.childNodes;for(i=nTrs.length-1;i>=0;i--){nTrs[i].parentNode.removeChild(nTrs[i]);}}for(i=0,iLen=anRows.length;i<iLen;i++){nAddFrag.appendChild(anRows[i]);}oSettings.nTBody.appendChild(nAddFrag);if(nBodyPar!==null){nBodyPar.appendChild(oSettings.nTBody);}}for(i=oSettings.aoDrawCallback.length-1;i>=0;i--){oSettings.aoDrawCallback[i].fn.call(oSettings.oInstance,oSettings);}oSettings.bSorted=false;oSettings.bFiltered=false;oSettings.bDrawing=false;if(oSettings.oFeatures.bServerSide){_fnProcessingDisplay(oSettings,false);if(typeof oSettings._bInitComplete=="undefined"){_fnInitComplete(oSettings);}}}function _fnReDraw(oSettings){if(oSettings.oFeatures.bSort){_fnSort(oSettings,oSettings.oPreviousSearch);}else{if(oSettings.oFeatures.bFilter){_fnFilterComplete(oSettings,oSettings.oPreviousSearch);}else{_fnCalculateEnd(oSettings);_fnDraw(oSettings);}}}function _fnAjaxUpdate(oSettings){if(oSettings.bAjaxDataGet){_fnProcessingDisplay(oSettings,true);var iColumns=oSettings.aoColumns.length;var aoData=[];var i;oSettings.iDraw++;aoData.push({name:"sEcho",value:oSettings.iDraw});aoData.push({name:"iColumns",value:iColumns});aoData.push({name:"sColumns",value:_fnColumnOrdering(oSettings)});aoData.push({name:"iDisplayStart",value:oSettings._iDisplayStart});aoData.push({name:"iDisplayLength",value:oSettings.oFeatures.bPaginate!==false?oSettings._iDisplayLength:-1});if(oSettings.oFeatures.bFilter!==false){aoData.push({name:"sSearch",value:oSettings.oPreviousSearch.sSearch});aoData.push({name:"bRegex",value:oSettings.oPreviousSearch.bRegex});for(i=0;i<iColumns;i++){aoData.push({name:"sSearch_"+i,value:oSettings.aoPreSearchCols[i].sSearch});aoData.push({name:"bRegex_"+i,value:oSettings.aoPreSearchCols[i].bRegex});aoData.push({name:"bSearchable_"+i,value:oSettings.aoColumns[i].bSearchable});}}if(oSettings.oFeatures.bSort!==false){var iFixed=oSettings.aaSortingFixed!==null?oSettings.aaSortingFixed.length:0;var iUser=oSettings.aaSorting.length;aoData.push({name:"iSortingCols",value:iFixed+iUser});for(i=0;i<iFixed;i++){aoData.push({name:"iSortCol_"+i,value:oSettings.aaSortingFixed[i][0]});aoData.push({name:"sSortDir_"+i,value:oSettings.aaSortingFixed[i][1]});}for(i=0;i<iUser;i++){aoData.push({name:"iSortCol_"+(i+iFixed),value:oSettings.aaSorting[i][0]});aoData.push({name:"sSortDir_"+(i+iFixed),value:oSettings.aaSorting[i][1]});}for(i=0;i<iColumns;i++){aoData.push({name:"bSortable_"+i,value:oSettings.aoColumns[i].bSortable});}}oSettings.fnServerData.call(oSettings.oInstance,oSettings.sAjaxSource,aoData,function(json){_fnAjaxUpdateDraw(oSettings,json);});return false;}else{return true;}}function _fnAjaxUpdateDraw(oSettings,json){if(typeof json.sEcho!="undefined"){if(json.sEcho*1<oSettings.iDraw){return;}else{oSettings.iDraw=json.sEcho*1;}}if(!oSettings.oScroll.bInfinite||(oSettings.oScroll.bInfinite&&(oSettings.bSorted||oSettings.bFiltered))){_fnClearTable(oSettings);}oSettings._iRecordsTotal=json.iTotalRecords;oSettings._iRecordsDisplay=json.iTotalDisplayRecords;var sOrdering=_fnColumnOrdering(oSettings);var bReOrder=(typeof json.sColumns!="undefined"&&sOrdering!==""&&json.sColumns!=sOrdering);if(bReOrder){var aiIndex=_fnReOrderIndex(oSettings,json.sColumns);}for(var i=0,iLen=json.aaData.length;i<iLen;i++){if(bReOrder){var aData=[];for(var j=0,jLen=oSettings.aoColumns.length;j<jLen;j++){aData.push(json.aaData[i][aiIndex[j]]);}_fnAddData(oSettings,aData);}else{_fnAddData(oSettings,json.aaData[i]);}}oSettings.aiDisplay=oSettings.aiDisplayMaster.slice();oSettings.bAjaxDataGet=false;_fnDraw(oSettings);oSettings.bAjaxDataGet=true;_fnProcessingDisplay(oSettings,false);}function _fnAddOptionsHtml(oSettings){var nHolding=document.createElement("div");oSettings.nTable.parentNode.insertBefore(nHolding,oSettings.nTable);oSettings.nTableWrapper=document.createElement("div");oSettings.nTableWrapper.className=oSettings.oClasses.sWrapper;if(oSettings.sTableId!==""){oSettings.nTableWrapper.setAttribute("id",oSettings.sTableId+"_wrapper");}var nInsertNode=oSettings.nTableWrapper;var aDom=oSettings.sDom.split("");var nTmp,iPushFeature,cOption,nNewNode,cNext,sAttr,j;for(var i=0;i<aDom.length;i++){iPushFeature=0;cOption=aDom[i];if(cOption=="<"){nNewNode=document.createElement("div");cNext=aDom[i+1];if(cNext=="'"||cNext=='"'){sAttr="";j=2;while(aDom[i+j]!=cNext){sAttr+=aDom[i+j];j++;}if(sAttr=="H"){sAttr="fg-toolbar ui-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix";}else{if(sAttr=="F"){sAttr="fg-toolbar ui-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix";}}if(sAttr.indexOf(".")!=-1){var aSplit=sAttr.split(".");nNewNode.setAttribute("id",aSplit[0].substr(1,aSplit[0].length-1));nNewNode.className=aSplit[1];}else{if(sAttr.charAt(0)=="#"){nNewNode.setAttribute("id",sAttr.substr(1,sAttr.length-1));}else{nNewNode.className=sAttr;}}i+=j;}nInsertNode.appendChild(nNewNode);nInsertNode=nNewNode;}else{if(cOption==">"){nInsertNode=nInsertNode.parentNode;}else{if(cOption=="l"&&oSettings.oFeatures.bPaginate&&oSettings.oFeatures.bLengthChange){nTmp=_fnFeatureHtmlLength(oSettings);iPushFeature=1;}else{if(cOption=="f"&&oSettings.oFeatures.bFilter){nTmp=_fnFeatureHtmlFilter(oSettings);iPushFeature=1;}else{if(cOption=="r"&&oSettings.oFeatures.bProcessing){nTmp=_fnFeatureHtmlProcessing(oSettings);iPushFeature=1;}else{if(cOption=="t"){nTmp=_fnFeatureHtmlTable(oSettings);iPushFeature=1;}else{if(cOption=="i"&&oSettings.oFeatures.bInfo){nTmp=_fnFeatureHtmlInfo(oSettings);iPushFeature=1;}else{if(cOption=="p"&&oSettings.oFeatures.bPaginate){nTmp=_fnFeatureHtmlPaginate(oSettings);iPushFeature=1;}else{if(_oExt.aoFeatures.length!==0){var aoFeatures=_oExt.aoFeatures;for(var k=0,kLen=aoFeatures.length;k<kLen;k++){if(cOption==aoFeatures[k].cFeature){nTmp=aoFeatures[k].fnInit(oSettings);if(nTmp){iPushFeature=1;}break;}}}}}}}}}}}if(iPushFeature==1&&nTmp!==null){if(typeof oSettings.aanFeatures[cOption]!="object"){oSettings.aanFeatures[cOption]=[];}oSettings.aanFeatures[cOption].push(nTmp);nInsertNode.appendChild(nTmp);}}nHolding.parentNode.replaceChild(oSettings.nTableWrapper,nHolding);}function _fnFeatureHtmlTable(oSettings){if(oSettings.oScroll.sX===""&&oSettings.oScroll.sY===""){return oSettings.nTable;}var nScroller=document.createElement("div"),nScrollHead=document.createElement("div"),nScrollHeadInner=document.createElement("div"),nScrollBody=document.createElement("div"),nScrollFoot=document.createElement("div"),nScrollFootInner=document.createElement("div"),nScrollHeadTable=oSettings.nTable.cloneNode(false),nScrollFootTable=oSettings.nTable.cloneNode(false),nThead=oSettings.nTable.getElementsByTagName("thead")[0],nTfoot=oSettings.nTable.getElementsByTagName("tfoot").length===0?null:oSettings.nTable.getElementsByTagName("tfoot")[0],oClasses=(typeof oInit.bJQueryUI!="undefined"&&oInit.bJQueryUI)?_oExt.oJUIClasses:_oExt.oStdClasses;nScrollHead.appendChild(nScrollHeadInner);nScrollFoot.appendChild(nScrollFootInner);nScrollBody.appendChild(oSettings.nTable);nScroller.appendChild(nScrollHead);nScroller.appendChild(nScrollBody);nScrollHeadInner.appendChild(nScrollHeadTable);nScrollHeadTable.appendChild(nThead);if(nTfoot!==null){nScroller.appendChild(nScrollFoot);nScrollFootInner.appendChild(nScrollFootTable);nScrollFootTable.appendChild(nTfoot);}nScroller.className=oClasses.sScrollWrapper;nScrollHead.className=oClasses.sScrollHead;nScrollHeadInner.className=oClasses.sScrollHeadInner;nScrollBody.className=oClasses.sScrollBody;nScrollFoot.className=oClasses.sScrollFoot;nScrollFootInner.className=oClasses.sScrollFootInner;if(oSettings.oScroll.bAutoCss){nScrollHead.style.overflow="hidden";nScrollHead.style.position="relative";nScrollFoot.style.overflow="hidden";nScrollBody.style.overflow="auto";}nScrollHead.style.border="0";nScrollHead.style.width="100%";nScrollFoot.style.border="0";nScrollHeadInner.style.width="150%";nScrollHeadTable.removeAttribute("id");nScrollHeadTable.style.marginLeft="0";oSettings.nTable.style.marginLeft="0";if(nTfoot!==null){nScrollFootTable.removeAttribute("id");nScrollFootTable.style.marginLeft="0";}var nCaptions=$(">caption",oSettings.nTable);for(var i=0,iLen=nCaptions.length;i<iLen;i++){nScrollHeadTable.appendChild(nCaptions[i]);}if(oSettings.oScroll.sX!==""){nScrollHead.style.width=_fnStringToCss(oSettings.oScroll.sX);nScrollBody.style.width=_fnStringToCss(oSettings.oScroll.sX);if(nTfoot!==null){nScrollFoot.style.width=_fnStringToCss(oSettings.oScroll.sX);}$(nScrollBody).scroll(function(e){nScrollHead.scrollLeft=this.scrollLeft;if(nTfoot!==null){nScrollFoot.scrollLeft=this.scrollLeft;}});}if(oSettings.oScroll.sY!==""){nScrollBody.style.height=_fnStringToCss(oSettings.oScroll.sY);}oSettings.aoDrawCallback.push({fn:_fnScrollDraw,sName:"scrolling"});if(oSettings.oScroll.bInfinite){$(nScrollBody).scroll(function(){if(!oSettings.bDrawing){if($(this).scrollTop()+$(this).height()>$(oSettings.nTable).height()-oSettings.oScroll.iLoadGap){if(oSettings.fnDisplayEnd()<oSettings.fnRecordsDisplay()){_fnPageChange(oSettings,"next");_fnCalculateEnd(oSettings);_fnDraw(oSettings);}}}});}oSettings.nScrollHead=nScrollHead;oSettings.nScrollFoot=nScrollFoot;return nScroller;}function _fnScrollDraw(o){var nScrollHeadInner=o.nScrollHead.getElementsByTagName("div")[0],nScrollHeadTable=nScrollHeadInner.getElementsByTagName("table")[0],nScrollBody=o.nTable.parentNode,i,iLen,j,jLen,anHeadToSize,anHeadSizers,anFootSizers,anFootToSize,oStyle,iVis,iWidth,aApplied=[],iSanityWidth;var nTheadSize=o.nTable.getElementsByTagName("thead");if(nTheadSize.length>0){o.nTable.removeChild(nTheadSize[0]);}if(o.nTFoot!==null){var nTfootSize=o.nTable.getElementsByTagName("tfoot");if(nTfootSize.length>0){o.nTable.removeChild(nTfootSize[0]);}}nTheadSize=o.nTHead.cloneNode(true);o.nTable.insertBefore(nTheadSize,o.nTable.childNodes[0]);if(o.nTFoot!==null){nTfootSize=o.nTFoot.cloneNode(true);o.nTable.insertBefore(nTfootSize,o.nTable.childNodes[1]);}var nThs=_fnGetUniqueThs(nTheadSize);for(i=0,iLen=nThs.length;i<iLen;i++){iVis=_fnVisibleToColumnIndex(o,i);nThs[i].style.width=o.aoColumns[iVis].sWidth;}if(o.nTFoot!==null){_fnApplyToChildren(function(n){n.style.width="";},nTfootSize.getElementsByTagName("tr"));}iSanityWidth=$(o.nTable).outerWidth();if(o.oScroll.sX===""){o.nTable.style.width="100%";if($.browser.msie&&$.browser.version<=7){o.nTable.style.width=_fnStringToCss($(o.nTable).outerWidth()-o.oScroll.iBarWidth);}}else{if(o.oScroll.sXInner!==""){o.nTable.style.width=_fnStringToCss(o.oScroll.sXInner);}else{if(iSanityWidth==$(nScrollBody).width()&&$(nScrollBody).height()<$(o.nTable).height()){o.nTable.style.width=_fnStringToCss(iSanityWidth-o.oScroll.iBarWidth);if($(o.nTable).outerWidth()>iSanityWidth-o.oScroll.iBarWidth){o.nTable.style.width=_fnStringToCss(iSanityWidth);}}else{o.nTable.style.width=_fnStringToCss(iSanityWidth);}}}iSanityWidth=$(o.nTable).outerWidth();anHeadToSize=o.nTHead.getElementsByTagName("tr");anHeadSizers=nTheadSize.getElementsByTagName("tr");_fnApplyToChildren(function(nSizer,nToSize){oStyle=nSizer.style;oStyle.paddingTop="0";oStyle.paddingBottom="0";oStyle.borderTopWidth="0";oStyle.borderBottomWidth="0";oStyle.height=0;iWidth=$(nSizer).width();nToSize.style.width=_fnStringToCss(iWidth);aApplied.push(iWidth);},anHeadSizers,anHeadToSize);$(anHeadSizers).height(0);if(o.nTFoot!==null){anFootSizers=nTfootSize.getElementsByTagName("tr");anFootToSize=o.nTFoot.getElementsByTagName("tr");_fnApplyToChildren(function(nSizer,nToSize){oStyle=nSizer.style;oStyle.paddingTop="0";oStyle.paddingBottom="0";oStyle.borderTopWidth="0";oStyle.borderBottomWidth="0";oStyle.height=0;iWidth=$(nSizer).width();nToSize.style.width=_fnStringToCss(iWidth);aApplied.push(iWidth);},anFootSizers,anFootToSize);$(anFootSizers).height(0);}_fnApplyToChildren(function(nSizer){nSizer.innerHTML="";nSizer.style.width=_fnStringToCss(aApplied.shift());},anHeadSizers);if(o.nTFoot!==null){_fnApplyToChildren(function(nSizer){nSizer.innerHTML="";nSizer.style.width=_fnStringToCss(aApplied.shift());},anFootSizers);}if($(o.nTable).outerWidth()<iSanityWidth){if(o.oScroll.sX===""){_fnLog(o,1,"The table cannot fit into the current element which will cause column misalignment. It is suggested that you enable x-scrolling or increase the width the table has in which to be drawn");}else{if(o.oScroll.sXInner!==""){_fnLog(o,1,"The table cannot fit into the current element which will cause column misalignment. It is suggested that you increase the sScrollXInner property to allow it to draw in a larger area, or simply remove that parameter to allow automatic calculation");}}}if(o.oScroll.sY===""){if($.browser.msie&&$.browser.version<=7){nScrollBody.style.height=_fnStringToCss(o.nTable.offsetHeight+o.oScroll.iBarWidth);}}if(o.oScroll.sY!==""&&o.oScroll.bCollapse){nScrollBody.style.height=_fnStringToCss(o.oScroll.sY);var iExtra=(o.oScroll.sX!==""&&o.nTable.offsetWidth>nScrollBody.offsetWidth)?o.oScroll.iBarWidth:0;if(o.nTable.offsetHeight<nScrollBody.offsetHeight){nScrollBody.style.height=_fnStringToCss($(o.nTable).height()+iExtra);}}var iOuterWidth=$(o.nTable).outerWidth();nScrollHeadTable.style.width=_fnStringToCss(iOuterWidth);nScrollHeadInner.style.width=_fnStringToCss(iOuterWidth+o.oScroll.iBarWidth);if(o.nTFoot!==null){var nScrollFootInner=o.nScrollFoot.getElementsByTagName("div")[0],nScrollFootTable=nScrollFootInner.getElementsByTagName("table")[0];nScrollFootInner.style.width=_fnStringToCss(o.nTable.offsetWidth+o.oScroll.iBarWidth);nScrollFootTable.style.width=_fnStringToCss(o.nTable.offsetWidth);}if(o.bSorted||o.bFiltered){nScrollBody.scrollTop=0;}}function _fnAjustColumnSizing(oSettings){if(oSettings.oFeatures.bAutoWidth===false){return false;}_fnCalculateColumnWidths(oSettings);for(var i=0,iLen=oSettings.aoColumns.length;i<iLen;i++){oSettings.aoColumns[i].nTh.style.width=oSettings.aoColumns[i].sWidth;}}function _fnFeatureHtmlFilter(oSettings){var nFilter=document.createElement("div");if(oSettings.sTableId!==""&&typeof oSettings.aanFeatures.f=="undefined"){nFilter.setAttribute("id",oSettings.sTableId+"_filter");}nFilter.className=oSettings.oClasses.sFilter;var sSpace=oSettings.oLanguage.sSearch===""?"":" ";nFilter.innerHTML=oSettings.oLanguage.sSearch+sSpace+'<input type="text" />';var jqFilter=$("input",nFilter);jqFilter.val(oSettings.oPreviousSearch.sSearch.replace('"',"&quot;"));jqFilter.bind("keyup.DT",function(e){var n=oSettings.aanFeatures.f;for(var i=0,iLen=n.length;i<iLen;i++){if(n[i]!=this.parentNode){$("input",n[i]).val(this.value);}}if(this.value!=oSettings.oPreviousSearch.sSearch){_fnFilterComplete(oSettings,{sSearch:this.value,bRegex:oSettings.oPreviousSearch.bRegex,bSmart:oSettings.oPreviousSearch.bSmart});}});jqFilter.bind("keypress.DT",function(e){if(e.keyCode==13){return false;}});return nFilter;}function _fnFilterComplete(oSettings,oInput,iForce){_fnFilter(oSettings,oInput.sSearch,iForce,oInput.bRegex,oInput.bSmart);for(var i=0;i<oSettings.aoPreSearchCols.length;i++){_fnFilterColumn(oSettings,oSettings.aoPreSearchCols[i].sSearch,i,oSettings.aoPreSearchCols[i].bRegex,oSettings.aoPreSearchCols[i].bSmart);}if(_oExt.afnFiltering.length!==0){_fnFilterCustom(oSettings);}oSettings.bFiltered=true;oSettings._iDisplayStart=0;_fnCalculateEnd(oSettings);_fnDraw(oSettings);_fnBuildSearchArray(oSettings,0);}function _fnFilterCustom(oSettings){var afnFilters=_oExt.afnFiltering;for(var i=0,iLen=afnFilters.length;i<iLen;i++){var iCorrector=0;for(var j=0,jLen=oSettings.aiDisplay.length;j<jLen;j++){var iDisIndex=oSettings.aiDisplay[j-iCorrector];if(!afnFilters[i](oSettings,oSettings.aoData[iDisIndex]._aData,iDisIndex)){oSettings.aiDisplay.splice(j-iCorrector,1);iCorrector++;}}}}function _fnFilterColumn(oSettings,sInput,iColumn,bRegex,bSmart){if(sInput===""){return;}var iIndexCorrector=0;var rpSearch=_fnFilterCreateSearch(sInput,bRegex,bSmart);for(var i=oSettings.aiDisplay.length-1;i>=0;i--){var sData=_fnDataToSearch(oSettings.aoData[oSettings.aiDisplay[i]]._aData[iColumn],oSettings.aoColumns[iColumn].sType);if(!rpSearch.test(sData)){oSettings.aiDisplay.splice(i,1);iIndexCorrector++;}}}function _fnFilter(oSettings,sInput,iForce,bRegex,bSmart){var i;var rpSearch=_fnFilterCreateSearch(sInput,bRegex,bSmart);if(typeof iForce=="undefined"||iForce===null){iForce=0;}if(_oExt.afnFiltering.length!==0){iForce=1;}if(sInput.length<=0){oSettings.aiDisplay.splice(0,oSettings.aiDisplay.length);oSettings.aiDisplay=oSettings.aiDisplayMaster.slice();}else{if(oSettings.aiDisplay.length==oSettings.aiDisplayMaster.length||oSettings.oPreviousSearch.sSearch.length>sInput.length||iForce==1||sInput.indexOf(oSettings.oPreviousSearch.sSearch)!==0){oSettings.aiDisplay.splice(0,oSettings.aiDisplay.length);_fnBuildSearchArray(oSettings,1);for(i=0;i<oSettings.aiDisplayMaster.length;i++){if(rpSearch.test(oSettings.asDataSearch[i])){oSettings.aiDisplay.push(oSettings.aiDisplayMaster[i]);}}}else{var iIndexCorrector=0;for(i=0;i<oSettings.asDataSearch.length;i++){if(!rpSearch.test(oSettings.asDataSearch[i])){oSettings.aiDisplay.splice(i-iIndexCorrector,1);iIndexCorrector++;}}}}oSettings.oPreviousSearch.sSearch=sInput;oSettings.oPreviousSearch.bRegex=bRegex;oSettings.oPreviousSearch.bSmart=bSmart;}function _fnBuildSearchArray(oSettings,iMaster){oSettings.asDataSearch.splice(0,oSettings.asDataSearch.length);var aArray=(typeof iMaster!="undefined"&&iMaster==1)?oSettings.aiDisplayMaster:oSettings.aiDisplay;for(var i=0,iLen=aArray.length;i<iLen;i++){oSettings.asDataSearch[i]=_fnBuildSearchRow(oSettings,oSettings.aoData[aArray[i]]._aData);}}function _fnBuildSearchRow(oSettings,aData){var sSearch="";var nTmp=document.createElement("div");for(var j=0,jLen=oSettings.aoColumns.length;j<jLen;j++){if(oSettings.aoColumns[j].bSearchable){var sData=aData[j];sSearch+=_fnDataToSearch(sData,oSettings.aoColumns[j].sType)+"  ";}}if(sSearch.indexOf("&")!==-1){nTmp.innerHTML=sSearch;sSearch=nTmp.textContent?nTmp.textContent:nTmp.innerText;sSearch=sSearch.replace(/\n/g," ").replace(/\r/g,"");}return sSearch;}function _fnFilterCreateSearch(sSearch,bRegex,bSmart){var asSearch,sRegExpString;if(bSmart){asSearch=bRegex?sSearch.split(" "):_fnEscapeRegex(sSearch).split(" ");sRegExpString="^(?=.*?"+asSearch.join(")(?=.*?")+").*$";return new RegExp(sRegExpString,"i");}else{sSearch=bRegex?sSearch:_fnEscapeRegex(sSearch);return new RegExp(sSearch,"i");}}function _fnDataToSearch(sData,sType){if(typeof _oExt.ofnSearch[sType]=="function"){return _oExt.ofnSearch[sType](sData);}else{if(sType=="html"){return sData.replace(/\n/g," ").replace(/<.*?>/g,"");}else{if(typeof sData=="string"){return sData.replace(/\n/g," ");}}}return sData;}function _fnSort(oSettings,bApplyClasses){var iDataSort,iDataType,i,iLen,j,jLen,aaSort=[],aiOrig=[],oSort=_oExt.oSort,aoData=oSettings.aoData,aoColumns=oSettings.aoColumns;if(!oSettings.oFeatures.bServerSide&&(oSettings.aaSorting.length!==0||oSettings.aaSortingFixed!==null)){if(oSettings.aaSortingFixed!==null){aaSort=oSettings.aaSortingFixed.concat(oSettings.aaSorting);}else{aaSort=oSettings.aaSorting.slice();}for(i=0;i<aaSort.length;i++){var iColumn=aaSort[i][0];var iVisColumn=_fnColumnIndexToVisible(oSettings,iColumn);var sDataType=oSettings.aoColumns[iColumn].sSortDataType;if(typeof _oExt.afnSortData[sDataType]!="undefined"){var aData=_oExt.afnSortData[sDataType](oSettings,iColumn,iVisColumn);for(j=0,jLen=aoData.length;j<jLen;j++){aoData[j]._aData[iColumn]=aData[j];}}}for(i=0,iLen=oSettings.aiDisplayMaster.length;i<iLen;i++){aiOrig[oSettings.aiDisplayMaster[i]]=i;}var iSortLen=aaSort.length;oSettings.aiDisplayMaster.sort(function(a,b){var iTest;for(i=0;i<iSortLen;i++){iDataSort=aoColumns[aaSort[i][0]].iDataSort;iDataType=aoColumns[iDataSort].sType;iTest=oSort[iDataType+"-"+aaSort[i][1]](aoData[a]._aData[iDataSort],aoData[b]._aData[iDataSort]);if(iTest!==0){return iTest;}}return oSort["numeric-asc"](aiOrig[a],aiOrig[b]);});}if(typeof bApplyClasses=="undefined"||bApplyClasses){_fnSortingClasses(oSettings);}oSettings.bSorted=true;if(oSettings.oFeatures.bFilter){_fnFilterComplete(oSettings,oSettings.oPreviousSearch,1);}else{oSettings.aiDisplay=oSettings.aiDisplayMaster.slice();oSettings._iDisplayStart=0;_fnCalculateEnd(oSettings);_fnDraw(oSettings);}}function _fnSortAttachListener(oSettings,nNode,iDataIndex,fnCallback){$(nNode).bind("click.DT",function(e){if(oSettings.aoColumns[iDataIndex].bSortable===false){return;}var fnInnerSorting=function(){var iColumn,iNextSort;if(e.shiftKey){var bFound=false;for(var i=0;i<oSettings.aaSorting.length;i++){if(oSettings.aaSorting[i][0]==iDataIndex){bFound=true;iColumn=oSettings.aaSorting[i][0];iNextSort=oSettings.aaSorting[i][2]+1;if(typeof oSettings.aoColumns[iColumn].asSorting[iNextSort]=="undefined"){oSettings.aaSorting.splice(i,1);}else{oSettings.aaSorting[i][1]=oSettings.aoColumns[iColumn].asSorting[iNextSort];oSettings.aaSorting[i][2]=iNextSort;}break;}}if(bFound===false){oSettings.aaSorting.push([iDataIndex,oSettings.aoColumns[iDataIndex].asSorting[0],0]);}}else{if(oSettings.aaSorting.length==1&&oSettings.aaSorting[0][0]==iDataIndex){iColumn=oSettings.aaSorting[0][0];iNextSort=oSettings.aaSorting[0][2]+1;if(typeof oSettings.aoColumns[iColumn].asSorting[iNextSort]=="undefined"){iNextSort=0;}oSettings.aaSorting[0][1]=oSettings.aoColumns[iColumn].asSorting[iNextSort];oSettings.aaSorting[0][2]=iNextSort;}else{oSettings.aaSorting.splice(0,oSettings.aaSorting.length);oSettings.aaSorting.push([iDataIndex,oSettings.aoColumns[iDataIndex].asSorting[0],0]);}}_fnSort(oSettings);};if(!oSettings.oFeatures.bProcessing){fnInnerSorting();}else{_fnProcessingDisplay(oSettings,true);setTimeout(function(){fnInnerSorting();if(!oSettings.oFeatures.bServerSide){_fnProcessingDisplay(oSettings,false);}},0);}if(typeof fnCallback=="function"){fnCallback(oSettings);}});}function _fnSortingClasses(oSettings){var i,iLen,j,jLen,iFound;var aaSort,sClass;var iColumns=oSettings.aoColumns.length;var oClasses=oSettings.oClasses;for(i=0;i<iColumns;i++){if(oSettings.aoColumns[i].bSortable){$(oSettings.aoColumns[i].nTh).removeClass(oClasses.sSortAsc+" "+oClasses.sSortDesc+" "+oSettings.aoColumns[i].sSortingClass);}}if(oSettings.aaSortingFixed!==null){aaSort=oSettings.aaSortingFixed.concat(oSettings.aaSorting);}else{aaSort=oSettings.aaSorting.slice();}for(i=0;i<oSettings.aoColumns.length;i++){if(oSettings.aoColumns[i].bSortable){sClass=oSettings.aoColumns[i].sSortingClass;iFound=-1;for(j=0;j<aaSort.length;j++){if(aaSort[j][0]==i){sClass=(aaSort[j][1]=="asc")?oClasses.sSortAsc:oClasses.sSortDesc;iFound=j;break;}}$(oSettings.aoColumns[i].nTh).addClass(sClass);if(oSettings.bJUI){var jqSpan=$("span",oSettings.aoColumns[i].nTh);jqSpan.removeClass(oClasses.sSortJUIAsc+" "+oClasses.sSortJUIDesc+" "+oClasses.sSortJUI+" "+oClasses.sSortJUIAscAllowed+" "+oClasses.sSortJUIDescAllowed);var sSpanClass;if(iFound==-1){sSpanClass=oSettings.aoColumns[i].sSortingClassJUI;}else{if(aaSort[iFound][1]=="asc"){sSpanClass=oClasses.sSortJUIAsc;}else{sSpanClass=oClasses.sSortJUIDesc;}}jqSpan.addClass(sSpanClass);}}else{$(oSettings.aoColumns[i].nTh).addClass(oSettings.aoColumns[i].sSortingClass);}}sClass=oClasses.sSortColumn;if(oSettings.oFeatures.bSort&&oSettings.oFeatures.bSortClasses){var nTds=_fnGetTdNodes(oSettings);if(nTds.length>=iColumns){for(i=0;i<iColumns;i++){if(nTds[i].className.indexOf(sClass+"1")!=-1){for(j=0,jLen=(nTds.length/iColumns);j<jLen;j++){nTds[(iColumns*j)+i].className=$.trim(nTds[(iColumns*j)+i].className.replace(sClass+"1",""));}}else{if(nTds[i].className.indexOf(sClass+"2")!=-1){for(j=0,jLen=(nTds.length/iColumns);j<jLen;j++){nTds[(iColumns*j)+i].className=$.trim(nTds[(iColumns*j)+i].className.replace(sClass+"2",""));}}else{if(nTds[i].className.indexOf(sClass+"3")!=-1){for(j=0,jLen=(nTds.length/iColumns);j<jLen;j++){nTds[(iColumns*j)+i].className=$.trim(nTds[(iColumns*j)+i].className.replace(" "+sClass+"3",""));}}}}}}var iClass=1,iTargetCol;for(i=0;i<aaSort.length;i++){iTargetCol=parseInt(aaSort[i][0],10);for(j=0,jLen=(nTds.length/iColumns);j<jLen;j++){nTds[(iColumns*j)+iTargetCol].className+=" "+sClass+iClass;}if(iClass<3){iClass++;}}}}function _fnFeatureHtmlPaginate(oSettings){if(oSettings.oScroll.bInfinite){return null;}var nPaginate=document.createElement("div");nPaginate.className=oSettings.oClasses.sPaging+oSettings.sPaginationType;_oExt.oPagination[oSettings.sPaginationType].fnInit(oSettings,nPaginate,function(oSettings){_fnCalculateEnd(oSettings);_fnDraw(oSettings);});if(typeof oSettings.aanFeatures.p=="undefined"){oSettings.aoDrawCallback.push({fn:function(oSettings){_oExt.oPagination[oSettings.sPaginationType].fnUpdate(oSettings,function(oSettings){_fnCalculateEnd(oSettings);_fnDraw(oSettings);});},sName:"pagination"});}return nPaginate;}function _fnPageChange(oSettings,sAction){var iOldStart=oSettings._iDisplayStart;if(sAction=="first"){oSettings._iDisplayStart=0;}else{if(sAction=="previous"){oSettings._iDisplayStart=oSettings._iDisplayLength>=0?oSettings._iDisplayStart-oSettings._iDisplayLength:0;if(oSettings._iDisplayStart<0){oSettings._iDisplayStart=0;}}else{if(sAction=="next"){if(oSettings._iDisplayLength>=0){if(oSettings._iDisplayStart+oSettings._iDisplayLength<oSettings.fnRecordsDisplay()){oSettings._iDisplayStart+=oSettings._iDisplayLength;}}else{oSettings._iDisplayStart=0;}}else{if(sAction=="last"){if(oSettings._iDisplayLength>=0){var iPages=parseInt((oSettings.fnRecordsDisplay()-1)/oSettings._iDisplayLength,10)+1;oSettings._iDisplayStart=(iPages-1)*oSettings._iDisplayLength;}else{oSettings._iDisplayStart=0;}}else{_fnLog(oSettings,0,"Unknown paging action: "+sAction);}}}}return iOldStart!=oSettings._iDisplayStart;}function _fnFeatureHtmlInfo(oSettings){var nInfo=document.createElement("div");nInfo.className=oSettings.oClasses.sInfo;if(typeof oSettings.aanFeatures.i=="undefined"){oSettings.aoDrawCallback.push({fn:_fnUpdateInfo,sName:"information"});if(oSettings.sTableId!==""){nInfo.setAttribute("id",oSettings.sTableId+"_info");}}return nInfo;}function _fnUpdateInfo(oSettings){if(!oSettings.oFeatures.bInfo||oSettings.aanFeatures.i.length===0){return;}var iStart=oSettings._iDisplayStart+1,iEnd=oSettings.fnDisplayEnd(),iMax=oSettings.fnRecordsTotal(),iTotal=oSettings.fnRecordsDisplay(),sStart=oSettings.fnFormatNumber(iStart),sEnd=oSettings.fnFormatNumber(iEnd),sMax=oSettings.fnFormatNumber(iMax),sTotal=oSettings.fnFormatNumber(iTotal),sOut;if(oSettings.oScroll.bInfinite){sStart=oSettings.fnFormatNumber(1);}if(oSettings.fnRecordsDisplay()===0&&oSettings.fnRecordsDisplay()==oSettings.fnRecordsTotal()){sOut=oSettings.oLanguage.sInfoEmpty+oSettings.oLanguage.sInfoPostFix;}else{if(oSettings.fnRecordsDisplay()===0){sOut=oSettings.oLanguage.sInfoEmpty+" "+oSettings.oLanguage.sInfoFiltered.replace("_MAX_",sMax)+oSettings.oLanguage.sInfoPostFix;}else{if(oSettings.fnRecordsDisplay()==oSettings.fnRecordsTotal()){sOut=oSettings.oLanguage.sInfo.replace("_START_",sStart).replace("_END_",sEnd).replace("_TOTAL_",sTotal)+oSettings.oLanguage.sInfoPostFix;}else{sOut=oSettings.oLanguage.sInfo.replace("_START_",sStart).replace("_END_",sEnd).replace("_TOTAL_",sTotal)+" "+oSettings.oLanguage.sInfoFiltered.replace("_MAX_",oSettings.fnFormatNumber(oSettings.fnRecordsTotal()))+oSettings.oLanguage.sInfoPostFix;}}}if(oSettings.oLanguage.fnInfoCallback!==null){sOut=oSettings.oLanguage.fnInfoCallback(oSettings,iStart,iEnd,iMax,iTotal,sOut);}var n=oSettings.aanFeatures.i;for(var i=0,iLen=n.length;i<iLen;i++){$(n[i]).html(sOut);}}function _fnFeatureHtmlLength(oSettings){if(oSettings.oScroll.bInfinite){return null;}var sName=(oSettings.sTableId==="")?"":'name="'+oSettings.sTableId+'_length"';var sStdMenu='<select size="1" '+sName+">";var i,iLen;if(oSettings.aLengthMenu.length==2&&typeof oSettings.aLengthMenu[0]=="object"&&typeof oSettings.aLengthMenu[1]=="object"){for(i=0,iLen=oSettings.aLengthMenu[0].length;i<iLen;i++){sStdMenu+='<option value="'+oSettings.aLengthMenu[0][i]+'">'+oSettings.aLengthMenu[1][i]+"</option>";}}else{for(i=0,iLen=oSettings.aLengthMenu.length;i<iLen;i++){sStdMenu+='<option value="'+oSettings.aLengthMenu[i]+'">'+oSettings.aLengthMenu[i]+"</option>";}}sStdMenu+="</select>";var nLength=document.createElement("div");if(oSettings.sTableId!==""&&typeof oSettings.aanFeatures.l=="undefined"){nLength.setAttribute("id",oSettings.sTableId+"_length");}nLength.className=oSettings.oClasses.sLength;nLength.innerHTML=oSettings.oLanguage.sLengthMenu.replace("_MENU_",sStdMenu);$('select option[value="'+oSettings._iDisplayLength+'"]',nLength).attr("selected",true);$("select",nLength).bind("change.DT",function(e){var iVal=$(this).val();var n=oSettings.aanFeatures.l;for(i=0,iLen=n.length;i<iLen;i++){if(n[i]!=this.parentNode){$("select",n[i]).val(iVal);}}oSettings._iDisplayLength=parseInt(iVal,10);_fnCalculateEnd(oSettings);if(oSettings.fnDisplayEnd()==oSettings.fnRecordsDisplay()){oSettings._iDisplayStart=oSettings.fnDisplayEnd()-oSettings._iDisplayLength;if(oSettings._iDisplayStart<0){oSettings._iDisplayStart=0;}}if(oSettings._iDisplayLength==-1){oSettings._iDisplayStart=0;}_fnDraw(oSettings);});return nLength;}function _fnFeatureHtmlProcessing(oSettings){var nProcessing=document.createElement("div");if(oSettings.sTableId!==""&&typeof oSettings.aanFeatures.r=="undefined"){nProcessing.setAttribute("id",oSettings.sTableId+"_processing");}nProcessing.innerHTML=oSettings.oLanguage.sProcessing;nProcessing.className=oSettings.oClasses.sProcessing;oSettings.nTable.parentNode.insertBefore(nProcessing,oSettings.nTable);return nProcessing;}function _fnProcessingDisplay(oSettings,bShow){if(oSettings.oFeatures.bProcessing){var an=oSettings.aanFeatures.r;for(var i=0,iLen=an.length;i<iLen;i++){an[i].style.visibility=bShow?"visible":"hidden";}}}function _fnVisibleToColumnIndex(oSettings,iMatch){var iColumn=-1;for(var i=0;i<oSettings.aoColumns.length;i++){if(oSettings.aoColumns[i].bVisible===true){iColumn++;}if(iColumn==iMatch){return i;}}return null;}function _fnColumnIndexToVisible(oSettings,iMatch){var iVisible=-1;for(var i=0;i<oSettings.aoColumns.length;i++){if(oSettings.aoColumns[i].bVisible===true){iVisible++;}if(i==iMatch){return oSettings.aoColumns[i].bVisible===true?iVisible:null;}}return null;}function _fnNodeToDataIndex(s,n){var i,iLen;for(i=s._iDisplayStart,iLen=s._iDisplayEnd;i<iLen;i++){if(s.aoData[s.aiDisplay[i]].nTr==n){return s.aiDisplay[i];}}for(i=0,iLen=s.aoData.length;i<iLen;i++){if(s.aoData[i].nTr==n){return i;}}return null;}function _fnVisbleColumns(oS){var iVis=0;for(var i=0;i<oS.aoColumns.length;i++){if(oS.aoColumns[i].bVisible===true){iVis++;}}return iVis;}function _fnCalculateEnd(oSettings){if(oSettings.oFeatures.bPaginate===false){oSettings._iDisplayEnd=oSettings.aiDisplay.length;}else{if(oSettings._iDisplayStart+oSettings._iDisplayLength>oSettings.aiDisplay.length||oSettings._iDisplayLength==-1){oSettings._iDisplayEnd=oSettings.aiDisplay.length;}else{oSettings._iDisplayEnd=oSettings._iDisplayStart+oSettings._iDisplayLength;}}}function _fnConvertToWidth(sWidth,nParent){if(!sWidth||sWidth===null||sWidth===""){return 0;}if(typeof nParent=="undefined"){nParent=document.getElementsByTagName("body")[0];}var iWidth;var nTmp=document.createElement("div");nTmp.style.width=sWidth;nParent.appendChild(nTmp);iWidth=nTmp.offsetWidth;nParent.removeChild(nTmp);return(iWidth);}function _fnCalculateColumnWidths(oSettings){var iTableWidth=oSettings.nTable.offsetWidth;var iUserInputs=0;var iTmpWidth;var iVisibleColumns=0;var iColums=oSettings.aoColumns.length;var i;var oHeaders=$("th",oSettings.nTHead);for(i=0;i<iColums;i++){if(oSettings.aoColumns[i].bVisible){iVisibleColumns++;if(oSettings.aoColumns[i].sWidth!==null){iTmpWidth=_fnConvertToWidth(oSettings.aoColumns[i].sWidthOrig,oSettings.nTable.parentNode);if(iTmpWidth!==null){oSettings.aoColumns[i].sWidth=_fnStringToCss(iTmpWidth);}iUserInputs++;}}}if(iColums==oHeaders.length&&iUserInputs===0&&iVisibleColumns==iColums&&oSettings.oScroll.sX===""&&oSettings.oScroll.sY===""){for(i=0;i<oSettings.aoColumns.length;i++){iTmpWidth=$(oHeaders[i]).width();if(iTmpWidth!==null){oSettings.aoColumns[i].sWidth=_fnStringToCss(iTmpWidth);}}}else{var nCalcTmp=oSettings.nTable.cloneNode(false),nBody=document.createElement("tbody"),nTr=document.createElement("tr"),nDivSizing;nCalcTmp.removeAttribute("id");nCalcTmp.appendChild(oSettings.nTHead.cloneNode(true));if(oSettings.nTFoot!==null){nCalcTmp.appendChild(oSettings.nTFoot.cloneNode(true));_fnApplyToChildren(function(n){n.style.width="";},nCalcTmp.getElementsByTagName("tr"));}nCalcTmp.appendChild(nBody);nBody.appendChild(nTr);var jqColSizing=$("thead th",nCalcTmp);if(jqColSizing.length===0){jqColSizing=$("tbody tr:eq(0)>td",nCalcTmp);}jqColSizing.each(function(i){this.style.width="";var iIndex=_fnVisibleToColumnIndex(oSettings,i);if(iIndex!==null&&oSettings.aoColumns[iIndex].sWidthOrig!==""){this.style.width=oSettings.aoColumns[iIndex].sWidthOrig;}});for(i=0;i<iColums;i++){if(oSettings.aoColumns[i].bVisible){var nTd=_fnGetWidestNode(oSettings,i);if(nTd!==null){nTd=nTd.cloneNode(true);nTr.appendChild(nTd);}}}var nWrapper=oSettings.nTable.parentNode;nWrapper.appendChild(nCalcTmp);if(oSettings.oScroll.sX!==""&&oSettings.oScroll.sXInner!==""){nCalcTmp.style.width=_fnStringToCss(oSettings.oScroll.sXInner);}else{if(oSettings.oScroll.sX!==""){nCalcTmp.style.width="";if($(nCalcTmp).width()<nWrapper.offsetWidth){nCalcTmp.style.width=_fnStringToCss(nWrapper.offsetWidth);}}else{if(oSettings.oScroll.sY!==""){nCalcTmp.style.width=_fnStringToCss(nWrapper.offsetWidth);}}}nCalcTmp.style.visibility="hidden";_fnScrollingWidthAdjust(oSettings,nCalcTmp);var oNodes=$("tbody tr:eq(0)>td",nCalcTmp);if(oNodes.length===0){oNodes=$("thead tr:eq(0)>th",nCalcTmp);}var iIndex,iCorrector=0,iWidth;for(i=0;i<oSettings.aoColumns.length;i++){if(oSettings.aoColumns[i].bVisible){iWidth=$(oNodes[iCorrector]).outerWidth();if(iWidth!==null&&iWidth>0){oSettings.aoColumns[i].sWidth=_fnStringToCss(iWidth);}iCorrector++;}}oSettings.nTable.style.width=_fnStringToCss($(nCalcTmp).outerWidth());nCalcTmp.parentNode.removeChild(nCalcTmp);}}function _fnScrollingWidthAdjust(oSettings,n){if(oSettings.oScroll.sX===""&&oSettings.oScroll.sY!==""){var iOrigWidth=$(n).width();n.style.width=_fnStringToCss($(n).outerWidth()-oSettings.oScroll.iBarWidth);}else{if(oSettings.oScroll.sX!==""){n.style.width=_fnStringToCss($(n).outerWidth());}}}function _fnGetWidestNode(oSettings,iCol,bFast){if(typeof bFast=="undefined"||bFast){var iMaxLen=_fnGetMaxLenString(oSettings,iCol);var iFastVis=_fnColumnIndexToVisible(oSettings,iCol);if(iMaxLen<0){return null;}return oSettings.aoData[iMaxLen].nTr.getElementsByTagName("td")[iFastVis];}var iMax=-1,i,iLen,iMaxIndex=-1,n=document.createElement("div");n.style.visibility="hidden";n.style.position="absolute";document.body.appendChild(n);for(i=0,iLen=oSettings.aoData.length;i<iLen;i++){n.innerHTML=oSettings.aoData[i]._aData[iCol];if(n.offsetWidth>iMax){iMax=n.offsetWidth;iMaxIndex=i;}}document.body.removeChild(n);if(iMaxIndex>=0){var iVis=_fnColumnIndexToVisible(oSettings,iCol);var nRet=oSettings.aoData[iMaxIndex].nTr.getElementsByTagName("td")[iVis];if(nRet){return nRet;}}return null;}function _fnGetMaxLenString(oSettings,iCol){var iMax=-1;var iMaxIndex=-1;for(var i=0;i<oSettings.aoData.length;i++){var s=oSettings.aoData[i]._aData[iCol];if(s.length>iMax){iMax=s.length;iMaxIndex=i;}}return iMaxIndex;}function _fnStringToCss(s){if(s===null){return"0px";}if(typeof s=="number"){if(s<0){return"0px";}return s+"px";}var c=s.charCodeAt(s.length-1);if(c<48||c>57){return s;}return s+"px";}function _fnArrayCmp(aArray1,aArray2){if(aArray1.length!=aArray2.length){return 1;}for(var i=0;i<aArray1.length;i++){if(aArray1[i]!=aArray2[i]){return 2;}}return 0;}function _fnDetectType(sData){var aTypes=_oExt.aTypes;var iLen=aTypes.length;for(var i=0;i<iLen;i++){var sType=aTypes[i](sData);if(sType!==null){return sType;}}return"string";}function _fnSettingsFromNode(nTable){for(var i=0;i<_aoSettings.length;i++){if(_aoSettings[i].nTable==nTable){return _aoSettings[i];}}return null;}function _fnGetDataMaster(oSettings){var aData=[];var iLen=oSettings.aoData.length;for(var i=0;i<iLen;i++){aData.push(oSettings.aoData[i]._aData);}return aData;}function _fnGetTrNodes(oSettings){var aNodes=[];var iLen=oSettings.aoData.length;for(var i=0;i<iLen;i++){aNodes.push(oSettings.aoData[i].nTr);}return aNodes;}function _fnGetTdNodes(oSettings){var nTrs=_fnGetTrNodes(oSettings);var nTds=[],nTd;var anReturn=[];var iCorrector;var iRow,iRows,iColumn,iColumns;for(iRow=0,iRows=nTrs.length;iRow<iRows;iRow++){nTds=[];for(iColumn=0,iColumns=nTrs[iRow].childNodes.length;iColumn<iColumns;iColumn++){nTd=nTrs[iRow].childNodes[iColumn];if(nTd.nodeName.toUpperCase()=="TD"){nTds.push(nTd);}}iCorrector=0;for(iColumn=0,iColumns=oSettings.aoColumns.length;iColumn<iColumns;iColumn++){if(oSettings.aoColumns[iColumn].bVisible){anReturn.push(nTds[iColumn-iCorrector]);}else{anReturn.push(oSettings.aoData[iRow]._anHidden[iColumn]);iCorrector++;}}}return anReturn;}function _fnEscapeRegex(sVal){var acEscape=["/",".","*","+","?","|","(",")","[","]","{","}","\\","$","^"];var reReplace=new RegExp("(\\"+acEscape.join("|\\")+")","g");return sVal.replace(reReplace,"\\$1");}function _fnDeleteIndex(a,iTarget){var iTargetIndex=-1;for(var i=0,iLen=a.length;i<iLen;i++){if(a[i]==iTarget){iTargetIndex=i;}else{if(a[i]>iTarget){a[i]--;}}}if(iTargetIndex!=-1){a.splice(iTargetIndex,1);}}function _fnReOrderIndex(oSettings,sColumns){var aColumns=sColumns.split(",");var aiReturn=[];for(var i=0,iLen=oSettings.aoColumns.length;i<iLen;i++){for(var j=0;j<iLen;j++){if(oSettings.aoColumns[i].sName==aColumns[j]){aiReturn.push(j);break;}}}return aiReturn;}function _fnColumnOrdering(oSettings){var sNames="";for(var i=0,iLen=oSettings.aoColumns.length;i<iLen;i++){sNames+=oSettings.aoColumns[i].sName+",";}if(sNames.length==iLen){return"";}return sNames.slice(0,-1);}function _fnLog(oSettings,iLevel,sMesg){var sAlert=oSettings.sTableId===""?"DataTables warning: "+sMesg:"DataTables warning (table id = '"+oSettings.sTableId+"'): "+sMesg;if(iLevel===0){if(_oExt.sErrMode=="alert"){alert(sAlert);}else{throw sAlert;}return;}else{if(typeof console!="undefined"&&typeof console.log!="undefined"){console.log(sAlert);}}}function _fnClearTable(oSettings){oSettings.aoData.splice(0,oSettings.aoData.length);oSettings.aiDisplayMaster.splice(0,oSettings.aiDisplayMaster.length);oSettings.aiDisplay.splice(0,oSettings.aiDisplay.length);_fnCalculateEnd(oSettings);}function _fnSaveState(oSettings){if(!oSettings.oFeatures.bStateSave||typeof oSettings.bDestroying!="undefined"){return;}var i,iLen,sTmp;var sValue="{";sValue+='"iCreate":'+new Date().getTime()+",";sValue+='"iStart":'+oSettings._iDisplayStart+",";sValue+='"iEnd":'+oSettings._iDisplayEnd+",";sValue+='"iLength":'+oSettings._iDisplayLength+",";sValue+='"sFilter":"'+encodeURIComponent(oSettings.oPreviousSearch.sSearch)+'",';sValue+='"sFilterEsc":'+!oSettings.oPreviousSearch.bRegex+",";sValue+='"aaSorting":[ ';for(i=0;i<oSettings.aaSorting.length;i++){sValue+="["+oSettings.aaSorting[i][0]+',"'+oSettings.aaSorting[i][1]+'"],';}sValue=sValue.substring(0,sValue.length-1);sValue+="],";sValue+='"aaSearchCols":[ ';for(i=0;i<oSettings.aoPreSearchCols.length;i++){sValue+='["'+encodeURIComponent(oSettings.aoPreSearchCols[i].sSearch)+'",'+!oSettings.aoPreSearchCols[i].bRegex+"],";}sValue=sValue.substring(0,sValue.length-1);sValue+="],";sValue+='"abVisCols":[ ';for(i=0;i<oSettings.aoColumns.length;i++){sValue+=oSettings.aoColumns[i].bVisible+",";}sValue=sValue.substring(0,sValue.length-1);sValue+="]";for(i=0,iLen=oSettings.aoStateSave.length;i<iLen;i++){sTmp=oSettings.aoStateSave[i].fn(oSettings,sValue);if(sTmp!==""){sValue=sTmp;}}sValue+="}";_fnCreateCookie(oSettings.sCookiePrefix+oSettings.sInstance,sValue,oSettings.iCookieDuration,oSettings.sCookiePrefix,oSettings.fnCookieCallback);}function _fnLoadState(oSettings,oInit){if(!oSettings.oFeatures.bStateSave){return;}var oData,i,iLen;var sData=_fnReadCookie(oSettings.sCookiePrefix+oSettings.sInstance);if(sData!==null&&sData!==""){try{oData=(typeof $.parseJSON=="function")?$.parseJSON(sData.replace(/'/g,'"')):eval("("+sData+")");}catch(e){return;}for(i=0,iLen=oSettings.aoStateLoad.length;i<iLen;i++){if(!oSettings.aoStateLoad[i].fn(oSettings,oData)){return;}}oSettings.oLoadedState=$.extend(true,{},oData);oSettings._iDisplayStart=oData.iStart;oSettings.iInitDisplayStart=oData.iStart;oSettings._iDisplayEnd=oData.iEnd;oSettings._iDisplayLength=oData.iLength;oSettings.oPreviousSearch.sSearch=decodeURIComponent(oData.sFilter);oSettings.aaSorting=oData.aaSorting.slice();oSettings.saved_aaSorting=oData.aaSorting.slice();if(typeof oData.sFilterEsc!="undefined"){oSettings.oPreviousSearch.bRegex=!oData.sFilterEsc;}if(typeof oData.aaSearchCols!="undefined"){for(i=0;i<oData.aaSearchCols.length;i++){oSettings.aoPreSearchCols[i]={sSearch:decodeURIComponent(oData.aaSearchCols[i][0]),bRegex:!oData.aaSearchCols[i][1]};}}if(typeof oData.abVisCols!="undefined"){oInit.saved_aoColumns=[];for(i=0;i<oData.abVisCols.length;i++){oInit.saved_aoColumns[i]={};oInit.saved_aoColumns[i].bVisible=oData.abVisCols[i];}}}}function _fnCreateCookie(sName,sValue,iSecs,sBaseName,fnCallback){var date=new Date();date.setTime(date.getTime()+(iSecs*1000));var aParts=window.location.pathname.split("/");var sNameFile=sName+"_"+aParts.pop().replace(/[\/:]/g,"").toLowerCase();var sFullCookie,oData;if(fnCallback!==null){oData=(typeof $.parseJSON=="function")?$.parseJSON(sValue):eval("("+sValue+")");sFullCookie=fnCallback(sNameFile,oData,date.toGMTString(),aParts.join("/")+"/");}else{sFullCookie=sNameFile+"="+encodeURIComponent(sValue)+"; expires="+date.toGMTString()+"; path="+aParts.join("/")+"/";}var sOldName="",iOldTime=9999999999999;var iLength=_fnReadCookie(sNameFile)!==null?document.cookie.length:sFullCookie.length+document.cookie.length;if(iLength+10>4096){var aCookies=document.cookie.split(";");for(var i=0,iLen=aCookies.length;i<iLen;i++){if(aCookies[i].indexOf(sBaseName)!=-1){var aSplitCookie=aCookies[i].split("=");try{oData=eval("("+decodeURIComponent(aSplitCookie[1])+")");}catch(e){continue;}if(typeof oData.iCreate!="undefined"&&oData.iCreate<iOldTime){sOldName=aSplitCookie[0];iOldTime=oData.iCreate;}}}if(sOldName!==""){document.cookie=sOldName+"=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path="+aParts.join("/")+"/";}}document.cookie=sFullCookie;}function _fnReadCookie(sName){var aParts=window.location.pathname.split("/"),sNameEQ=sName+"_"+aParts[aParts.length-1].replace(/[\/:]/g,"").toLowerCase()+"=",sCookieContents=document.cookie.split(";");for(var i=0;i<sCookieContents.length;i++){var c=sCookieContents[i];while(c.charAt(0)==" "){c=c.substring(1,c.length);}if(c.indexOf(sNameEQ)===0){return decodeURIComponent(c.substring(sNameEQ.length,c.length));}}return null;}function _fnGetUniqueThs(nThead){var nTrs=nThead.getElementsByTagName("tr");if(nTrs.length==1){return nTrs[0].getElementsByTagName("th");}var aLayout=[],aReturn=[];var ROWSPAN=2,COLSPAN=3,TDELEM=4;var i,j,k,iLen,jLen,iColumnShifted;var fnShiftCol=function(a,i,j){while(typeof a[i][j]!="undefined"){j++;}return j;};var fnAddRow=function(i){if(typeof aLayout[i]=="undefined"){aLayout[i]=[];}};for(i=0,iLen=nTrs.length;i<iLen;i++){fnAddRow(i);var iColumn=0;var nTds=[];for(j=0,jLen=nTrs[i].childNodes.length;j<jLen;j++){if(nTrs[i].childNodes[j].nodeName.toUpperCase()=="TD"||nTrs[i].childNodes[j].nodeName.toUpperCase()=="TH"){nTds.push(nTrs[i].childNodes[j]);}}for(j=0,jLen=nTds.length;j<jLen;j++){var iColspan=nTds[j].getAttribute("colspan")*1;var iRowspan=nTds[j].getAttribute("rowspan")*1;if(!iColspan||iColspan===0||iColspan===1){iColumnShifted=fnShiftCol(aLayout,i,iColumn);aLayout[i][iColumnShifted]=(nTds[j].nodeName.toUpperCase()=="TD")?TDELEM:nTds[j];if(iRowspan||iRowspan===0||iRowspan===1){for(k=1;k<iRowspan;k++){fnAddRow(i+k);aLayout[i+k][iColumnShifted]=ROWSPAN;}}iColumn++;}else{iColumnShifted=fnShiftCol(aLayout,i,iColumn);for(k=0;k<iColspan;k++){aLayout[i][iColumnShifted+k]=COLSPAN;}iColumn+=iColspan;}}}for(i=0,iLen=aLayout.length;i<iLen;i++){for(j=0,jLen=aLayout[i].length;j<jLen;j++){if(typeof aLayout[i][j]=="object"&&typeof aReturn[j]=="undefined"){aReturn[j]=aLayout[i][j];}}}return aReturn;}function _fnScrollBarWidth(){var inner=document.createElement("p");var style=inner.style;style.width="100%";style.height="200px";var outer=document.createElement("div");style=outer.style;style.position="absolute";style.top="0px";style.left="0px";style.visibility="hidden";style.width="200px";style.height="150px";style.overflow="hidden";outer.appendChild(inner);document.body.appendChild(outer);var w1=inner.offsetWidth;outer.style.overflow="scroll";var w2=inner.offsetWidth;if(w1==w2){w2=outer.clientWidth;}document.body.removeChild(outer);return(w1-w2);}function _fnApplyToChildren(fn,an1,an2){for(var i=0,iLen=an1.length;i<iLen;i++){for(var j=0,jLen=an1[i].childNodes.length;j<jLen;j++){if(an1[i].childNodes[j].nodeType==1){if(typeof an2!="undefined"){fn(an1[i].childNodes[j],an2[i].childNodes[j]);}else{fn(an1[i].childNodes[j]);}}}}}function _fnMap(oRet,oSrc,sName,sMappedName){if(typeof sMappedName=="undefined"){sMappedName=sName;}if(typeof oSrc[sName]!="undefined"){oRet[sMappedName]=oSrc[sName];}}this.oApi._fnExternApiFunc=_fnExternApiFunc;this.oApi._fnInitalise=_fnInitalise;this.oApi._fnLanguageProcess=_fnLanguageProcess;this.oApi._fnAddColumn=_fnAddColumn;this.oApi._fnColumnOptions=_fnColumnOptions;this.oApi._fnAddData=_fnAddData;this.oApi._fnGatherData=_fnGatherData;this.oApi._fnDrawHead=_fnDrawHead;this.oApi._fnDraw=_fnDraw;this.oApi._fnReDraw=_fnReDraw;this.oApi._fnAjaxUpdate=_fnAjaxUpdate;this.oApi._fnAjaxUpdateDraw=_fnAjaxUpdateDraw;this.oApi._fnAddOptionsHtml=_fnAddOptionsHtml;this.oApi._fnFeatureHtmlTable=_fnFeatureHtmlTable;this.oApi._fnScrollDraw=_fnScrollDraw;this.oApi._fnAjustColumnSizing=_fnAjustColumnSizing;this.oApi._fnFeatureHtmlFilter=_fnFeatureHtmlFilter;this.oApi._fnFilterComplete=_fnFilterComplete;this.oApi._fnFilterCustom=_fnFilterCustom;this.oApi._fnFilterColumn=_fnFilterColumn;this.oApi._fnFilter=_fnFilter;this.oApi._fnBuildSearchArray=_fnBuildSearchArray;this.oApi._fnBuildSearchRow=_fnBuildSearchRow;this.oApi._fnFilterCreateSearch=_fnFilterCreateSearch;this.oApi._fnDataToSearch=_fnDataToSearch;this.oApi._fnSort=_fnSort;this.oApi._fnSortAttachListener=_fnSortAttachListener;this.oApi._fnSortingClasses=_fnSortingClasses;this.oApi._fnFeatureHtmlPaginate=_fnFeatureHtmlPaginate;this.oApi._fnPageChange=_fnPageChange;this.oApi._fnFeatureHtmlInfo=_fnFeatureHtmlInfo;this.oApi._fnUpdateInfo=_fnUpdateInfo;this.oApi._fnFeatureHtmlLength=_fnFeatureHtmlLength;this.oApi._fnFeatureHtmlProcessing=_fnFeatureHtmlProcessing;this.oApi._fnProcessingDisplay=_fnProcessingDisplay;this.oApi._fnVisibleToColumnIndex=_fnVisibleToColumnIndex;this.oApi._fnColumnIndexToVisible=_fnColumnIndexToVisible;this.oApi._fnNodeToDataIndex=_fnNodeToDataIndex;this.oApi._fnVisbleColumns=_fnVisbleColumns;this.oApi._fnCalculateEnd=_fnCalculateEnd;this.oApi._fnConvertToWidth=_fnConvertToWidth;this.oApi._fnCalculateColumnWidths=_fnCalculateColumnWidths;this.oApi._fnScrollingWidthAdjust=_fnScrollingWidthAdjust;this.oApi._fnGetWidestNode=_fnGetWidestNode;this.oApi._fnGetMaxLenString=_fnGetMaxLenString;this.oApi._fnStringToCss=_fnStringToCss;this.oApi._fnArrayCmp=_fnArrayCmp;this.oApi._fnDetectType=_fnDetectType;this.oApi._fnSettingsFromNode=_fnSettingsFromNode;this.oApi._fnGetDataMaster=_fnGetDataMaster;this.oApi._fnGetTrNodes=_fnGetTrNodes;this.oApi._fnGetTdNodes=_fnGetTdNodes;this.oApi._fnEscapeRegex=_fnEscapeRegex;this.oApi._fnDeleteIndex=_fnDeleteIndex;this.oApi._fnReOrderIndex=_fnReOrderIndex;this.oApi._fnColumnOrdering=_fnColumnOrdering;this.oApi._fnLog=_fnLog;this.oApi._fnClearTable=_fnClearTable;this.oApi._fnSaveState=_fnSaveState;this.oApi._fnLoadState=_fnLoadState;this.oApi._fnCreateCookie=_fnCreateCookie;this.oApi._fnReadCookie=_fnReadCookie;this.oApi._fnGetUniqueThs=_fnGetUniqueThs;this.oApi._fnScrollBarWidth=_fnScrollBarWidth;this.oApi._fnApplyToChildren=_fnApplyToChildren;this.oApi._fnMap=_fnMap;var _that=this;return this.each(function(){var i=0,iLen,j,jLen,k,kLen;for(i=0,iLen=_aoSettings.length;i<iLen;i++){if(_aoSettings[i].nTable==this){if(typeof oInit=="undefined"||(typeof oInit.bRetrieve!="undefined"&&oInit.bRetrieve===true)){return _aoSettings[i].oInstance;}else{if(typeof oInit.bDestroy!="undefined"&&oInit.bDestroy===true){_aoSettings[i].oInstance.fnDestroy();break;}else{_fnLog(_aoSettings[i],0,"Cannot reinitialise DataTable.\n\nTo retrieve the DataTables object for this table, please pass either no arguments to the dataTable() function, or set bRetrieve to true. Alternatively, to destory the old table and create a new one, set bDestroy to true (note that a lot of changes to the configuration can be made through the API which is usually much faster).");return;}}}if(_aoSettings[i].sTableId!==""&&_aoSettings[i].sTableId==this.getAttribute("id")){_aoSettings.splice(i,1);break;}}var oSettings=new classSettings();_aoSettings.push(oSettings);var bInitHandedOff=false;var bUsePassedData=false;var sId=this.getAttribute("id");if(sId!==null){oSettings.sTableId=sId;oSettings.sInstance=sId;}else{oSettings.sInstance=_oExt._oExternConfig.iNextUnique++;}if(this.nodeName.toLowerCase()!="table"){_fnLog(oSettings,0,"Attempted to initialise DataTables on a node which is not a table: "+this.nodeName);return;}oSettings.nTable=this;oSettings.oInstance=_that.length==1?_that:$(this).dataTable();oSettings.oApi=_that.oApi;oSettings.sDestroyWidth=$(this).width();if(typeof oInit!="undefined"&&oInit!==null){oSettings.oInit=oInit;_fnMap(oSettings.oFeatures,oInit,"bPaginate");_fnMap(oSettings.oFeatures,oInit,"bLengthChange");_fnMap(oSettings.oFeatures,oInit,"bFilter");_fnMap(oSettings.oFeatures,oInit,"bSort");_fnMap(oSettings.oFeatures,oInit,"bInfo");_fnMap(oSettings.oFeatures,oInit,"bProcessing");_fnMap(oSettings.oFeatures,oInit,"bAutoWidth");_fnMap(oSettings.oFeatures,oInit,"bSortClasses");_fnMap(oSettings.oFeatures,oInit,"bServerSide");_fnMap(oSettings.oScroll,oInit,"sScrollX","sX");_fnMap(oSettings.oScroll,oInit,"sScrollXInner","sXInner");_fnMap(oSettings.oScroll,oInit,"sScrollY","sY");_fnMap(oSettings.oScroll,oInit,"bScrollCollapse","bCollapse");_fnMap(oSettings.oScroll,oInit,"bScrollInfinite","bInfinite");_fnMap(oSettings.oScroll,oInit,"iScrollLoadGap","iLoadGap");_fnMap(oSettings.oScroll,oInit,"bScrollAutoCss","bAutoCss");_fnMap(oSettings,oInit,"asStripClasses");_fnMap(oSettings,oInit,"fnRowCallback");_fnMap(oSettings,oInit,"fnHeaderCallback");_fnMap(oSettings,oInit,"fnFooterCallback");_fnMap(oSettings,oInit,"fnCookieCallback");_fnMap(oSettings,oInit,"fnInitComplete");_fnMap(oSettings,oInit,"fnServerData");_fnMap(oSettings,oInit,"fnFormatNumber");_fnMap(oSettings,oInit,"aaSorting");_fnMap(oSettings,oInit,"aaSortingFixed");_fnMap(oSettings,oInit,"aLengthMenu");_fnMap(oSettings,oInit,"sPaginationType");_fnMap(oSettings,oInit,"sAjaxSource");_fnMap(oSettings,oInit,"iCookieDuration");_fnMap(oSettings,oInit,"sCookiePrefix");_fnMap(oSettings,oInit,"sDom");_fnMap(oSettings,oInit,"oSearch","oPreviousSearch");_fnMap(oSettings,oInit,"aoSearchCols","aoPreSearchCols");_fnMap(oSettings,oInit,"iDisplayLength","_iDisplayLength");_fnMap(oSettings,oInit,"bJQueryUI","bJUI");_fnMap(oSettings.oLanguage,oInit,"fnInfoCallback");if(typeof oInit.fnDrawCallback=="function"){oSettings.aoDrawCallback.push({fn:oInit.fnDrawCallback,sName:"user"});}if(typeof oInit.fnStateSaveCallback=="function"){oSettings.aoStateSave.push({fn:oInit.fnStateSaveCallback,sName:"user"});}if(typeof oInit.fnStateLoadCallback=="function"){oSettings.aoStateLoad.push({fn:oInit.fnStateLoadCallback,sName:"user"});}if(oSettings.oFeatures.bServerSide&&oSettings.oFeatures.bSort&&oSettings.oFeatures.bSortClasses){oSettings.aoDrawCallback.push({fn:_fnSortingClasses,sName:"server_side_sort_classes"});}if(typeof oInit.bJQueryUI!="undefined"&&oInit.bJQueryUI){oSettings.oClasses=_oExt.oJUIClasses;if(typeof oInit.sDom=="undefined"){oSettings.sDom='<"H"lfr>t<"F"ip>';}}if(oSettings.oScroll.sX!==""||oSettings.oScroll.sY!==""){oSettings.oScroll.iBarWidth=_fnScrollBarWidth();}if(typeof oInit.iDisplayStart!="undefined"&&typeof oSettings.iInitDisplayStart=="undefined"){oSettings.iInitDisplayStart=oInit.iDisplayStart;oSettings._iDisplayStart=oInit.iDisplayStart;}if(typeof oInit.bStateSave!="undefined"){oSettings.oFeatures.bStateSave=oInit.bStateSave;_fnLoadState(oSettings,oInit);oSettings.aoDrawCallback.push({fn:_fnSaveState,sName:"state_save"});}if(typeof oInit.aaData!="undefined"){bUsePassedData=true;}if(typeof oInit!="undefined"&&typeof oInit.aoData!="undefined"){oInit.aoColumns=oInit.aoData;}if(typeof oInit.oLanguage!="undefined"){if(typeof oInit.oLanguage.sUrl!="undefined"&&oInit.oLanguage.sUrl!==""){oSettings.oLanguage.sUrl=oInit.oLanguage.sUrl;$.getJSON(oSettings.oLanguage.sUrl,null,function(json){_fnLanguageProcess(oSettings,json,true);});bInitHandedOff=true;}else{_fnLanguageProcess(oSettings,oInit.oLanguage,false);}}}else{oInit={};}if(typeof oInit.asStripClasses=="undefined"){oSettings.asStripClasses.push(oSettings.oClasses.sStripOdd);oSettings.asStripClasses.push(oSettings.oClasses.sStripEven);}var bStripeRemove=false;var anRows=$(">tbody>tr",this);for(i=0,iLen=oSettings.asStripClasses.length;i<iLen;i++){if(anRows.filter(":lt(2)").hasClass(oSettings.asStripClasses[i])){bStripeRemove=true;break;}}if(bStripeRemove){oSettings.asDestoryStrips=["",""];if($(anRows[0]).hasClass(oSettings.oClasses.sStripOdd)){oSettings.asDestoryStrips[0]+=oSettings.oClasses.sStripOdd+" ";}if($(anRows[0]).hasClass(oSettings.oClasses.sStripEven)){oSettings.asDestoryStrips[0]+=oSettings.oClasses.sStripEven;}if($(anRows[1]).hasClass(oSettings.oClasses.sStripOdd)){oSettings.asDestoryStrips[1]+=oSettings.oClasses.sStripOdd+" ";}if($(anRows[1]).hasClass(oSettings.oClasses.sStripEven)){oSettings.asDestoryStrips[1]+=oSettings.oClasses.sStripEven;}anRows.removeClass(oSettings.asStripClasses.join(" "));}var nThead=this.getElementsByTagName("thead");var anThs=nThead.length===0?[]:_fnGetUniqueThs(nThead[0]);var aoColumnsInit;if(typeof oInit.aoColumns=="undefined"){aoColumnsInit=[];for(i=0,iLen=anThs.length;i<iLen;i++){aoColumnsInit.push(null);}}else{aoColumnsInit=oInit.aoColumns;}for(i=0,iLen=aoColumnsInit.length;i<iLen;i++){if(typeof oInit.saved_aoColumns!="undefined"&&oInit.saved_aoColumns.length==iLen){if(aoColumnsInit[i]===null){aoColumnsInit[i]={};}aoColumnsInit[i].bVisible=oInit.saved_aoColumns[i].bVisible;}_fnAddColumn(oSettings,anThs?anThs[i]:null);}if(typeof oInit.aoColumnDefs!="undefined"){for(i=oInit.aoColumnDefs.length-1;i>=0;i--){var aTargets=oInit.aoColumnDefs[i].aTargets;if(!$.isArray(aTargets)){_fnLog(oSettings,1,"aTargets must be an array of targets, not a "+(typeof aTargets));}for(j=0,jLen=aTargets.length;j<jLen;j++){if(typeof aTargets[j]=="number"&&aTargets[j]>=0){while(oSettings.aoColumns.length<=aTargets[j]){_fnAddColumn(oSettings);}_fnColumnOptions(oSettings,aTargets[j],oInit.aoColumnDefs[i]);}else{if(typeof aTargets[j]=="number"&&aTargets[j]<0){_fnColumnOptions(oSettings,oSettings.aoColumns.length+aTargets[j],oInit.aoColumnDefs[i]);}else{if(typeof aTargets[j]=="string"){for(k=0,kLen=oSettings.aoColumns.length;k<kLen;k++){if(aTargets[j]=="_all"||oSettings.aoColumns[k].nTh.className.indexOf(aTargets[j])!=-1){_fnColumnOptions(oSettings,k,oInit.aoColumnDefs[i]);}}}}}}}}if(typeof aoColumnsInit!="undefined"){for(i=0,iLen=aoColumnsInit.length;i<iLen;i++){_fnColumnOptions(oSettings,i,aoColumnsInit[i]);}}for(i=0,iLen=oSettings.aaSorting.length;i<iLen;i++){if(oSettings.aaSorting[i][0]>=oSettings.aoColumns.length){oSettings.aaSorting[i][0]=0;}var oColumn=oSettings.aoColumns[oSettings.aaSorting[i][0]];if(typeof oSettings.aaSorting[i][2]=="undefined"){oSettings.aaSorting[i][2]=0;}if(typeof oInit.aaSorting=="undefined"&&typeof oSettings.saved_aaSorting=="undefined"){oSettings.aaSorting[i][1]=oColumn.asSorting[0];}for(j=0,jLen=oColumn.asSorting.length;j<jLen;j++){if(oSettings.aaSorting[i][1]==oColumn.asSorting[j]){oSettings.aaSorting[i][2]=j;break;}}}_fnSortingClasses(oSettings);if(this.getElementsByTagName("thead").length===0){this.appendChild(document.createElement("thead"));}if(this.getElementsByTagName("tbody").length===0){this.appendChild(document.createElement("tbody"));}oSettings.nTHead=this.getElementsByTagName("thead")[0];oSettings.nTBody=this.getElementsByTagName("tbody")[0];if(this.getElementsByTagName("tfoot").length>0){oSettings.nTFoot=this.getElementsByTagName("tfoot")[0];}if(bUsePassedData){for(i=0;i<oInit.aaData.length;i++){_fnAddData(oSettings,oInit.aaData[i]);}}else{_fnGatherData(oSettings);}oSettings.aiDisplay=oSettings.aiDisplayMaster.slice();oSettings.bInitialised=true;if(bInitHandedOff===false){_fnInitalise(oSettings);}});};})(jQuery,window,document);(function($){$.fn.ajaxSubmit=function(options){if(!this.length){log("ajaxSubmit: skipping submit process - no element selected");return this;}if(typeof options=="function"){options={success:options};}var action=this.attr("action");var url=(typeof action==="string")?$.trim(action):"";url=url||window.location.href||"";if(url){url=(url.match(/^([^#]+)/)||[])[1];}options=$.extend(true,{url:url,success:$.ajaxSettings.success,type:this[0].getAttribute("method")||"GET",iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},options);var veto={};this.trigger("form-pre-serialize",[this,options,veto]);if(veto.veto){log("ajaxSubmit: submit vetoed via form-pre-serialize trigger");return this;}if(options.beforeSerialize&&options.beforeSerialize(this,options)===false){log("ajaxSubmit: submit aborted via beforeSerialize callback");return this;}var n,v,a=this.formToArray(options.semantic);if(options.data){options.extraData=options.data;for(n in options.data){if(options.data[n] instanceof Array){for(var k in options.data[n]){a.push({name:n,value:options.data[n][k]});}}else{v=options.data[n];v=$.isFunction(v)?v():v;a.push({name:n,value:v});}}}if(options.beforeSubmit&&options.beforeSubmit(a,this,options)===false){log("ajaxSubmit: submit aborted via beforeSubmit callback");return this;}this.trigger("form-submit-validate",[a,this,options,veto]);if(veto.veto){log("ajaxSubmit: submit vetoed via form-submit-validate trigger");return this;}var q=$.param(a);if(options.type.toUpperCase()=="GET"){options.url+=(options.url.indexOf("?")>=0?"&":"?")+q;options.data=null;}else{options.data=q;}var $form=this,callbacks=[];if(options.resetForm){callbacks.push(function(){$form.resetForm();});}if(options.clearForm){callbacks.push(function(){$form.clearForm();});}if(!options.dataType&&options.target){var oldSuccess=options.success||function(){};callbacks.push(function(data){var fn=options.replaceTarget?"replaceWith":"html";$(options.target)[fn](data).each(oldSuccess,arguments);});}else{if(options.success){callbacks.push(options.success);}}options.success=function(data,status,xhr){var context=options.context||options;for(var i=0,max=callbacks.length;i<max;i++){callbacks[i].apply(context,[data,status,xhr||$form,$form]);}};var fileInputs=$("input:file",this).length>0;var mp="multipart/form-data";var multipart=($form.attr("enctype")==mp||$form.attr("encoding")==mp);if(options.iframe!==false&&(fileInputs||options.iframe||multipart)){if(options.closeKeepAlive){$.get(options.closeKeepAlive,function(){fileUpload(a);});}else{fileUpload(a);}}else{$.ajax(options);}this.trigger("form-submit-notify",[this,options]);return this;function fileUpload(a){var form=$form[0],i,s,g,id,$io,io,xhr,sub,n,timedOut,timeoutHandle;if(a){for(i=0;i<a.length;i++){$(form[a[i].name]).attr("disabled",false);}}if($(":input[name=submit],:input[id=submit]",form).length){alert('Error: Form elements must not have name or id of "submit".');return;}s=$.extend(true,{},$.ajaxSettings,options);s.context=s.context||s;id="jqFormIO"+(new Date().getTime());if(s.iframeTarget){$io=$(s.iframeTarget);n=$io.attr("name");if(n==null){$io.attr("name",id);}else{id=n;}}else{$io=$('<iframe name="'+id+'" src="'+s.iframeSrc+'" />');$io.css({position:"absolute",top:"-1000px",left:"-1000px"});}io=$io[0];xhr={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(status){var e=(status==="timeout"?"timeout":"aborted");log("aborting upload... "+e);this.aborted=1;$io.attr("src",s.iframeSrc);xhr.error=e;s.error&&s.error.call(s.context,xhr,e,status);g&&$.event.trigger("ajaxError",[xhr,s,e]);s.complete&&s.complete.call(s.context,xhr,e);}};g=s.global;if(g&&!$.active++){$.event.trigger("ajaxStart");}if(g){$.event.trigger("ajaxSend",[xhr,s]);}if(s.beforeSend&&s.beforeSend.call(s.context,xhr,s)===false){if(s.global){$.active--;}return;}if(xhr.aborted){return;}sub=form.clk;if(sub){n=sub.name;if(n&&!sub.disabled){s.extraData=s.extraData||{};s.extraData[n]=sub.value;if(sub.type=="image"){s.extraData[n+".x"]=form.clk_x;s.extraData[n+".y"]=form.clk_y;}}}var CLIENT_TIMEOUT_ABORT=1;var SERVER_ABORT=2;function getDoc(frame){var doc=frame.contentWindow?frame.contentWindow.document:frame.contentDocument?frame.contentDocument:frame.document;return doc;}function doSubmit(){var t=$form.attr("target"),a=$form.attr("action");form.setAttribute("target",id);if(form.getAttribute("method")!="POST"){form.setAttribute("method","POST");}if(form.getAttribute("action")!=s.url){form.setAttribute("action",s.url);}if(!s.skipEncodingOverride){$form.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"});}if(s.timeout){timeoutHandle=setTimeout(function(){timedOut=true;cb(CLIENT_TIMEOUT_ABORT);},s.timeout);}function checkState(){try{var state=getDoc(io).readyState;log("state = "+state);if(state.toLowerCase()=="uninitialized"){setTimeout(checkState,50);}}catch(e){log("Server abort: ",e," (",e.name,")");cb(SERVER_ABORT);timeoutHandle&&clearTimeout(timeoutHandle);timeoutHandle=undefined;}}var extraInputs=[];try{if(s.extraData){for(var n in s.extraData){extraInputs.push($('<input type="hidden" name="'+n+'" />').attr("value",s.extraData[n]).appendTo(form)[0]);}}if(!s.iframeTarget){$io.appendTo("body");io.attachEvent?io.attachEvent("onload",cb):io.addEventListener("load",cb,false);}setTimeout(checkState,15);form.submit();}finally{form.setAttribute("action",a);if(t){form.setAttribute("target",t);}else{$form.removeAttr("target");}$(extraInputs).remove();}}if(s.forceSync){doSubmit();}else{setTimeout(doSubmit,10);}var data,doc,domCheckCount=50,callbackProcessed;function cb(e){if(xhr.aborted||callbackProcessed){return;}try{doc=getDoc(io);}catch(ex){log("cannot access response document: ",ex);e=SERVER_ABORT;}if(e===CLIENT_TIMEOUT_ABORT&&xhr){xhr.abort("timeout");return;}else{if(e==SERVER_ABORT&&xhr){xhr.abort("server abort");return;}}if(!doc||doc.location.href==s.iframeSrc){if(!timedOut){return;}}io.detachEvent?io.detachEvent("onload",cb):io.removeEventListener("load",cb,false);var status="success",errMsg;try{if(timedOut){throw"timeout";}var isXml=s.dataType=="xml"||doc.XMLDocument||$.isXMLDoc(doc);log("isXml="+isXml);if(!isXml&&window.opera&&(doc.body==null||doc.body.innerHTML=="")){if(--domCheckCount){log("requeing onLoad callback, DOM not available");setTimeout(cb,250);return;}}var docRoot=doc.body?doc.body:doc.documentElement;xhr.responseText=docRoot?docRoot.innerHTML:null;xhr.responseXML=doc.XMLDocument?doc.XMLDocument:doc;if(isXml){s.dataType="xml";}xhr.getResponseHeader=function(header){var headers={"content-type":s.dataType};return headers[header];};if(docRoot){xhr.status=Number(docRoot.getAttribute("status"))||xhr.status;xhr.statusText=docRoot.getAttribute("statusText")||xhr.statusText;}var dt=s.dataType||"";var scr=/(json|script|text)/.test(dt.toLowerCase());if(scr||s.textarea){var ta=doc.getElementsByTagName("textarea")[0];if(ta){xhr.responseText=ta.value;xhr.status=Number(ta.getAttribute("status"))||xhr.status;xhr.statusText=ta.getAttribute("statusText")||xhr.statusText;}else{if(scr){var pre=doc.getElementsByTagName("pre")[0];var b=doc.getElementsByTagName("body")[0];if(pre){xhr.responseText=pre.textContent?pre.textContent:pre.innerHTML;}else{if(b){xhr.responseText=b.innerHTML;}}}}}else{if(s.dataType=="xml"&&!xhr.responseXML&&xhr.responseText!=null){xhr.responseXML=toXml(xhr.responseText);}}try{data=httpData(xhr,s.dataType,s);}catch(e){status="parsererror";xhr.error=errMsg=(e||status);}}catch(e){log("error caught: ",e);status="error";xhr.error=errMsg=(e||status);}if(xhr.aborted){log("upload aborted");status=null;}if(xhr.status){status=(xhr.status>=200&&xhr.status<300||xhr.status===304)?"success":"error";}if(status==="success"){s.success&&s.success.call(s.context,data,"success",xhr);g&&$.event.trigger("ajaxSuccess",[xhr,s]);}else{if(status){if(errMsg==undefined){errMsg=xhr.statusText;}s.error&&s.error.call(s.context,xhr,status,errMsg);g&&$.event.trigger("ajaxError",[xhr,s,errMsg]);}}g&&$.event.trigger("ajaxComplete",[xhr,s]);if(g&&!--$.active){$.event.trigger("ajaxStop");}s.complete&&s.complete.call(s.context,xhr,status);callbackProcessed=true;if(s.timeout){clearTimeout(timeoutHandle);}setTimeout(function(){if(!s.iframeTarget){$io.remove();}xhr.responseXML=null;},100);}var toXml=$.parseXML||function(s,doc){if(window.ActiveXObject){doc=new ActiveXObject("Microsoft.XMLDOM");doc.async="false";doc.loadXML(s);}else{doc=(new DOMParser()).parseFromString(s,"text/xml");}return(doc&&doc.documentElement&&doc.documentElement.nodeName!="parsererror")?doc:null;};var parseJSON=$.parseJSON||function(s){return window["eval"]("("+s+")");};var httpData=function(xhr,type,s){var ct=xhr.getResponseHeader("content-type")||"",xml=type==="xml"||!type&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.nodeName==="parsererror"){$.error&&$.error("parsererror");}if(s&&s.dataFilter){data=s.dataFilter(data,type);}if(typeof data==="string"){if(type==="json"||!type&&ct.indexOf("json")>=0){data=parseJSON(data);}else{if(type==="script"||!type&&ct.indexOf("javascript")>=0){$.globalEval(data);}}}return data;};}};$.fn.ajaxForm=function(options){if(this.length===0){var o={s:this.selector,c:this.context};if(!$.isReady&&o.s){log("DOM not ready, queuing ajaxForm");$(function(){$(o.s,o.c).ajaxForm(options);});return this;}log("terminating; zero elements found by selector"+($.isReady?"":" (DOM not ready)"));return this;}return this.ajaxFormUnbind().bind("submit.form-plugin",function(e){if(!e.isDefaultPrevented()){e.preventDefault();$(this).ajaxSubmit(options);}}).bind("click.form-plugin",function(e){var target=e.target;var $el=$(target);if(!($el.is(":submit,input:image"))){var t=$el.closest(":submit");if(t.length==0){return;}target=t[0];}var form=this;form.clk=target;if(target.type=="image"){if(e.offsetX!=undefined){form.clk_x=e.offsetX;form.clk_y=e.offsetY;}else{if(typeof $.fn.offset=="function"){var offset=$el.offset();form.clk_x=e.pageX-offset.left;form.clk_y=e.pageY-offset.top;}else{form.clk_x=e.pageX-target.offsetLeft;form.clk_y=e.pageY-target.offsetTop;}}}setTimeout(function(){form.clk=form.clk_x=form.clk_y=null;},100);});};$.fn.ajaxFormUnbind=function(){return this.unbind("submit.form-plugin click.form-plugin");};$.fn.formToArray=function(semantic){var a=[];if(this.length===0){return a;}var form=this[0];var els=semantic?form.getElementsByTagName("*"):form.elements;if(!els){return a;}var i,j,n,v,el,max,jmax;for(i=0,max=els.length;i<max;i++){el=els[i];n=el.name;if(!n){continue;}if(semantic&&form.clk&&el.type=="image"){if(!el.disabled&&form.clk==el){a.push({name:n,value:$(el).val()});a.push({name:n+".x",value:form.clk_x},{name:n+".y",value:form.clk_y});}continue;}v=$.fieldValue(el,true);if(v&&v.constructor==Array){for(j=0,jmax=v.length;j<jmax;j++){a.push({name:n,value:v[j]});}}else{if(v!==null&&typeof v!="undefined"){a.push({name:n,value:v});}}}if(!semantic&&form.clk){var $input=$(form.clk),input=$input[0];n=input.name;if(n&&!input.disabled&&input.type=="image"){a.push({name:n,value:$input.val()});a.push({name:n+".x",value:form.clk_x},{name:n+".y",value:form.clk_y});}}return a;};$.fn.formSerialize=function(semantic){return $.param(this.formToArray(semantic));};$.fn.fieldSerialize=function(successful){var a=[];this.each(function(){var n=this.name;if(!n){return;}var v=$.fieldValue(this,successful);if(v&&v.constructor==Array){for(var i=0,max=v.length;i<max;i++){a.push({name:n,value:v[i]});}}else{if(v!==null&&typeof v!="undefined"){a.push({name:this.name,value:v});}}});return $.param(a);};$.fn.fieldValue=function(successful){for(var val=[],i=0,max=this.length;i<max;i++){var el=this[i];var v=$.fieldValue(el,successful);if(v===null||typeof v=="undefined"||(v.constructor==Array&&!v.length)){continue;}v.constructor==Array?$.merge(val,v):val.push(v);}return val;};$.fieldValue=function(el,successful){var n=el.name,t=el.type,tag=el.tagName.toLowerCase();if(successful===undefined){successful=true;}if(successful&&(!n||el.disabled||t=="reset"||t=="button"||(t=="checkbox"||t=="radio")&&!el.checked||(t=="submit"||t=="image")&&el.form&&el.form.clk!=el||tag=="select"&&el.selectedIndex==-1)){return null;}if(tag=="select"){var index=el.selectedIndex;if(index<0){return null;}var a=[],ops=el.options;var one=(t=="select-one");var max=(one?index+1:ops.length);for(var i=(one?index:0);i<max;i++){var op=ops[i];if(op.selected){var v=op.value;if(!v){v=(op.attributes&&op.attributes.value&&!(op.attributes.value.specified))?op.text:op.value;}if(one){return v;}a.push(v);}}return a;}return $(el).val();};$.fn.clearForm=function(){return this.each(function(){$("input,select,textarea",this).clearFields();});};$.fn.clearFields=$.fn.clearInputs=function(){return this.each(function(){var t=this.type,tag=this.tagName.toLowerCase();if(t=="text"||t=="password"||tag=="textarea"){this.value="";}else{if(t=="checkbox"||t=="radio"){this.checked=false;}else{if(tag=="select"){this.selectedIndex=-1;}}}});};$.fn.resetForm=function(){return this.each(function(){if(typeof this.reset=="function"||(typeof this.reset=="object"&&!this.reset.nodeType)){this.reset();}});};$.fn.enable=function(b){if(b===undefined){b=true;}return this.each(function(){this.disabled=!b;});};$.fn.selected=function(select){if(select===undefined){select=true;}return this.each(function(){var t=this.type;if(t=="checkbox"||t=="radio"){this.checked=select;}else{if(this.tagName.toLowerCase()=="option"){var $sel=$(this).parent("select");if(select&&$sel[0]&&$sel[0].type=="select-one"){$sel.find("option").selected(false);}this.selected=select;}}});};function log(){var msg="[jquery.form] "+Array.prototype.join.call(arguments,"");if(window.console&&window.console.log){window.console.log(msg);}else{if(window.opera&&window.opera.postError){window.opera.postError(msg);}}}})(jQuery);jQuery.fn.highlight=function(pat){function innerHighlight(node,pat){var skip=0;if(node.nodeType==3){var pos=node.data.toUpperCase().indexOf(pat);if(pos>=0){var spannode=document.createElement("span");spannode.className="highlight";var middlebit=node.splitText(pos);var endbit=middlebit.splitText(pat.length);var middleclone=middlebit.cloneNode(true);spannode.appendChild(middleclone);middlebit.parentNode.replaceChild(spannode,middlebit);skip=1;}}else{if(node.nodeType==1&&node.childNodes&&!/(script|style)/i.test(node.tagName)){for(var i=0;i<node.childNodes.length;++i){i+=innerHighlight(node.childNodes[i],pat);}}}return skip;}return this.each(function(){innerHighlight(this,pat.toUpperCase());});};jQuery.fn.removeHighlight=function(){return this.find("span.highlight").each(function(){this.parentNode.firstChild.nodeName;with(this.parentNode){replaceChild(this.firstChild,this);normalize();}}).end();};(function($){$.fn.extend({jtimepicker:function(options){var defaults={clockIcon:"/images/jquery.timepicker/1.4.1/icon_clock_2.gif",orientation:"horizontal",hourCombo:"hourcombo",hourMode:24,hourInterval:1,hourDefaultValue:0,hourSlider:"hourSlider",hourLabel:"hour",minCombo:"mincombo",minLength:60,minInterval:5,minDefaultValue:0,minSlider:"minSlider",minLabel:"min",secView:true,secCombo:"seccombo",secLength:60,secInterval:5,secDefaultValue:0,secSlider:"secSlider",secLabel:"sec",sliderView:true};var options=$.extend(defaults,options);return this.each(function(){var o=options;var $this=$(this);var html="";var orientation=(o.orientation=="horizontal")?"auto":"vertical";var sliderData=[{label:o.hourLabel,slider:o.hourSlider,combo:o.hourCombo},{label:o.minLabel,slider:o.minSlider,combo:o.minCombo}];html+=$this.createCombo(o.hourCombo,o.hourMode,o.hourInterval,o.hourDefaultValue);html+=$this.createCombo(o.minCombo,o.minLength,o.minInterval,o.minDefaultValue);if(o.secView){sliderData.push({label:o.secLabel,slider:o.secSlider,combo:o.secCombo});html+=$this.createCombo(o.secCombo,o.secLength,o.secInterval,o.secDefaultValue);}if(o.sliderView){html+='<img src="'+o.clockIcon+'" class="clock" />';html+=$this.createSliderWrap(sliderData);}$this.html(html);$("#sliderWrap").addClass(orientation);$this.createSlider(o.hourSlider,o.hourMode,o.hourCombo,o.hourInterval,o.hourDefaultValue,o.orientation);$this.createSlider(o.minSlider,o.minLength,o.minCombo,o.minInterval,o.minDefaultValue,o.orientation);if(o.secView){$this.createSlider(o.secSlider,o.secLength,o.secCombo,o.secInterval,o.secDefaultValue,o.orientation);}$.each(sliderData,function(i,item){$("."+item.combo).change(function(){var val=$(this).val();$("."+item.slider).slider("option","value",val);});});$this.find(".clock").click(function(){$this.find("#sliderWrap").toggle(function(){$(document).click(function(event){if(!($(event.target).is("#sliderWrap")||$(event.target).parents("#sliderWrap").length||$(event.target).is(".clock"))){$this.find("#sliderWrap").hide(500);}});});});});}});$.fn.createCombo=function(id,length,interval,defValue){var html='<select class="'+id+' combo" name="'+id+'">';for(i=0;i<length;i+=interval){var selected=i==defValue?' selected="selected"':"";var txt=i<10?"0"+i:i;html+='<option value="'+i+'"'+selected+">"+txt+"</option>";}html+="</select>";return html;};$.fn.createSliderWrap=function(data){var html='<div id="sliderWrap">';$.each(data,function(i,item){html+="   <div><label>"+item.label+':</label> <p class="'+item.slider+'"></p></div>';});html+="</div>";return html;};$.fn.createSlider=function(id,maxValue,combo,stepValue,defValue,orientation){var $this=$(this);$this.find("."+id).slider({orientation:orientation,range:"min",min:0,max:maxValue-stepValue,value:defValue,step:stepValue,animate:true,slide:function(event,ui){$this.find("."+combo).val(ui.value);}});};})(jQuery);(function(h){h.fn.addOption=function(){var j=function(a,f,c,g){var d=document.createElement("option");d.value=f,d.text=c;var b=a.options;var e=b.length;if(!a.cache){a.cache={};for(var i=0;i<e;i++){a.cache[b[i].value]=i;}}if(typeof a.cache[f]=="undefined"){a.cache[f]=e;}a.options[a.cache[f]]=d;if(g){d.selected=true;}};var k=arguments;if(k.length==0){return this;}var l=true;var m=false;var n,o,p;if(typeof(k[0])=="object"){m=true;n=k[0];}if(k.length>=2){if(typeof(k[1])=="boolean"){l=k[1];}else{if(typeof(k[2])=="boolean"){l=k[2];}}if(!m){o=k[0];p=k[1];}}this.each(function(){if(this.nodeName.toLowerCase()!="select"){return;}if(m){for(var a in n){j(this,a,n[a],l);}}else{j(this,o,p,l);}});return this;};h.fn.ajaxAddOption=function(c,g,d,b,e){if(typeof(c)!="string"){return this;}if(typeof(g)!="object"){g={};}if(typeof(d)!="boolean"){d=true;}this.each(function(){var f=this;h.getJSON(c,g,function(a){h(f).addOption(a,d);if(typeof b=="function"){if(typeof e=="object"){b.apply(f,e);}else{b.call(f);}}});});return this;};h.fn.removeOption=function(){var d=arguments;if(d.length==0){return this;}var b=typeof(d[0]);var e,i;if(b=="string"||b=="object"||b=="function"){e=d[0];if(e.constructor==Array){var j=e.length;for(var k=0;k<j;k++){this.removeOption(e[k],d[1]);}return this;}}else{if(b=="number"){i=d[0];}else{return this;}}this.each(function(){if(this.nodeName.toLowerCase()!="select"){return;}if(this.cache){this.cache=null;}var a=false;var f=this.options;if(!!e){var c=f.length;for(var g=c-1;g>=0;g--){if(e.constructor==RegExp){if(f[g].value.match(e)){a=true;}}else{if(f[g].value==e){a=true;}}if(a&&d[1]===true){a=f[g].selected;}if(a){f[g]=null;}a=false;}}else{if(d[1]===true){a=f[i].selected;}else{a=true;}if(a){this.remove(i);}}});return this;};h.fn.sortOptions=function(e){var i=h(this).selectedValues();var j=typeof(e)=="undefined"?true:!!e;this.each(function(){if(this.nodeName.toLowerCase()!="select"){return;}var c=this.options;var g=c.length;var d=[];for(var b=0;b<g;b++){d[b]={v:c[b].value,t:c[b].text};}d.sort(function(a,f){o1t=a.t.toLowerCase(),o2t=f.t.toLowerCase();if(o1t==o2t){return 0;}if(j){return o1t<o2t?-1:1;}else{return o1t>o2t?-1:1;}});for(var b=0;b<g;b++){c[b].text=d[b].t;c[b].value=d[b].v;}}).selectOptions(i,true);return this;};h.fn.selectOptions=function(g,d){var b=g;var e=typeof(g);if(e=="object"&&b.constructor==Array){var i=this;h.each(b,function(){i.selectOptions(this,d);});}var j=d||false;if(e!="string"&&e!="function"&&e!="object"){return this;}this.each(function(){if(this.nodeName.toLowerCase()!="select"){return this;}var a=this.options;var f=a.length;for(var c=0;c<f;c++){if(b.constructor==RegExp){if(a[c].value.match(b)){a[c].selected=true;}else{if(j){a[c].selected=false;}}}else{if(a[c].value==b){a[c].selected=true;}else{if(j){a[c].selected=false;}}}}});return this;};h.fn.copyOptions=function(g,d){var b=d||"selected";if(h(g).size()==0){return this;}this.each(function(){if(this.nodeName.toLowerCase()!="select"){return this;}var a=this.options;var f=a.length;for(var c=0;c<f;c++){if(b=="all"||(b=="selected"&&a[c].selected)){h(g).addOption(a[c].value,a[c].text);}}});return this;};h.fn.containsOption=function(g,d){var b=false;var e=g;var i=typeof(e);var j=typeof(d);if(i!="string"&&i!="function"&&i!="object"){return j=="function"?this:b;}this.each(function(){if(this.nodeName.toLowerCase()!="select"){return this;}if(b&&j!="function"){return false;}var a=this.options;var f=a.length;for(var c=0;c<f;c++){if(e.constructor==RegExp){if(a[c].value.match(e)){b=true;if(j=="function"){d.call(a[c],c);}}}else{if(a[c].value==e){b=true;if(j=="function"){d.call(a[c],c);}}}}});return j=="function"?this:b;};h.fn.selectedValues=function(){var a=[];this.selectedOptions().each(function(){a[a.length]=this.value;});return a;};h.fn.selectedTexts=function(){var a=[];this.selectedOptions().each(function(){a[a.length]=this.text;});return a;};h.fn.selectedOptions=function(){return this.find("option:selected");};})(jQuery);(function($){var defaults={common:{type:"line",lineColor:"#00f",fillColor:"#cdf",defaultPixelsPerValue:3,width:"auto",height:"auto",composite:false,tagValuesAttribute:"values",tagOptionsPrefix:"spark",enableTagOptions:false},line:{spotColor:"#f80",spotRadius:1.5,minSpotColor:"#f80",maxSpotColor:"#f80",lineWidth:1,normalRangeMin:undefined,normalRangeMax:undefined,normalRangeColor:"#ccc",drawNormalOnTop:false,chartRangeMin:undefined,chartRangeMax:undefined,chartRangeMinX:undefined,chartRangeMaxX:undefined},bar:{barColor:"#00f",negBarColor:"#f44",zeroColor:undefined,nullColor:undefined,zeroAxis:undefined,barWidth:4,barSpacing:1,chartRangeMax:undefined,chartRangeMin:undefined,chartRangeClip:false,colorMap:undefined},tristate:{barWidth:4,barSpacing:1,posBarColor:"#6f6",negBarColor:"#f44",zeroBarColor:"#999",colorMap:{}},discrete:{lineHeight:"auto",thresholdColor:undefined,thresholdValue:0,chartRangeMax:undefined,chartRangeMin:undefined,chartRangeClip:false},bullet:{targetColor:"red",targetWidth:3,performanceColor:"blue",rangeColors:["#D3DAFE","#A8B6FF","#7F94FF"],base:undefined},pie:{sliceColors:["#f00","#0f0","#00f"]},box:{raw:false,boxLineColor:"black",boxFillColor:"#cdf",whiskerColor:"black",outlierLineColor:"#333",outlierFillColor:"white",medianColor:"red",showOutliers:true,outlierIQR:1.5,spotRadius:1.5,target:undefined,targetColor:"#4a2",chartRangeMax:undefined,chartRangeMin:undefined}};var VCanvas_base,VCanvas_canvas,VCanvas_vml;$.fn.simpledraw=function(width,height,use_existing){if(use_existing&&this[0].VCanvas){return this[0].VCanvas;}if(width===undefined){width=$(this).innerWidth();}if(height===undefined){height=$(this).innerHeight();}if($.browser.hasCanvas){return new VCanvas_canvas(width,height,this);}else{if($.browser.msie){return new VCanvas_vml(width,height,this);}else{return false;}}};var pending=[];$.fn.sparkline=function(uservalues,userOptions){return this.each(function(){var options=new $.fn.sparkline.options(this,userOptions);var render=function(){var values,width,height;if(uservalues==="html"||uservalues===undefined){var vals=this.getAttribute(options.get("tagValuesAttribute"));if(vals===undefined||vals===null){vals=$(this).html();}values=vals.replace(/(^\s*<!--)|(-->\s*$)|\s+/g,"").split(",");}else{values=uservalues;}width=options.get("width")=="auto"?values.length*options.get("defaultPixelsPerValue"):options.get("width");if(options.get("height")=="auto"){if(!options.get("composite")||!this.VCanvas){var tmp=document.createElement("span");tmp.innerHTML="a";$(this).html(tmp);height=$(tmp).innerHeight();$(tmp).remove();}}else{height=options.get("height");}$.fn.sparkline[options.get("type")].call(this,values,options,width,height);};if(($(this).html()&&$(this).is(":hidden"))||($.fn.jquery<"1.3.0"&&$(this).parents().is(":hidden"))||!$(this).parents("body").length){pending.push([this,render]);}else{render.call(this);}});};$.fn.sparkline.defaults=defaults;$.sparkline_display_visible=function(){for(var i=pending.length-1;i>=0;i--){var el=pending[i][0];if($(el).is(":visible")&&!$(el).parents().is(":hidden")){pending[i][1].call(el);pending.splice(i,1);}}};var UNSET_OPTION={};var normalizeValue=function(val){switch(val){case"undefined":val=undefined;break;case"null":val=null;break;case"true":val=true;break;case"false":val=false;break;default:var nf=parseFloat(val);if(val==nf){val=nf;}}return val;};$.fn.sparkline.options=function(tag,userOptions){var extendedOptions;this.userOptions=userOptions=userOptions||{};this.tag=tag;this.tagValCache={};var defaults=$.fn.sparkline.defaults;var base=defaults.common;this.tagOptionsPrefix=userOptions.enableTagOptions&&(userOptions.tagOptionsPrefix||base.tagOptionsPrefix);var tagOptionType=this.getTagSetting("type");if(tagOptionType===UNSET_OPTION){extendedOptions=defaults[userOptions.type||base.type];}else{extendedOptions=defaults[tagOptionType];}this.mergedOptions=$.extend({},base,extendedOptions,userOptions);};$.fn.sparkline.options.prototype.getTagSetting=function(key){var val,i,prefix=this.tagOptionsPrefix;if(prefix===false||prefix===undefined){return UNSET_OPTION;}if(this.tagValCache.hasOwnProperty(key)){val=this.tagValCache.key;}else{val=this.tag.getAttribute(prefix+key);if(val===undefined||val===null){val=UNSET_OPTION;}else{if(val.substr(0,1)=="["){val=val.substr(1,val.length-2).split(",");for(i=val.length;i--;){val[i]=normalizeValue(val[i].replace(/(^\s*)|(\s*$)/g,""));}}else{if(val.substr(0,1)=="{"){var pairs=val.substr(1,val.length-2).split(",");val={};for(i=pairs.length;i--;){var keyval=pairs[i].split(":",2);val[keyval[0].replace(/(^\s*)|(\s*$)/g,"")]=normalizeValue(keyval[1].replace(/(^\s*)|(\s*$)/g,""));}}else{val=normalizeValue(val);}}}this.tagValCache.key=val;}return val;};$.fn.sparkline.options.prototype.get=function(key){var tagOption=this.getTagSetting(key);if(tagOption!==UNSET_OPTION){return tagOption;}return this.mergedOptions[key];};$.fn.sparkline.line=function(values,options,width,height){var xvalues=[],yvalues=[],yminmax=[];for(var i=0;i<values.length;i++){var val=values[i];var isstr=typeof(values[i])=="string";var isarray=typeof(values[i])=="object"&&values[i] instanceof Array;var sp=isstr&&values[i].split(":");if(isstr&&sp.length==2){xvalues.push(Number(sp[0]));yvalues.push(Number(sp[1]));yminmax.push(Number(sp[1]));}else{if(isarray){xvalues.push(val[0]);yvalues.push(val[1]);yminmax.push(val[1]);}else{xvalues.push(i);if(values[i]===null||values[i]=="null"){yvalues.push(null);}else{yvalues.push(Number(val));yminmax.push(Number(val));}}}}if(options.get("xvalues")){xvalues=options.get("xvalues");}var maxy=Math.max.apply(Math,yminmax);var maxyval=maxy;var miny=Math.min.apply(Math,yminmax);var minyval=miny;var maxx=Math.max.apply(Math,xvalues);var minx=Math.min.apply(Math,xvalues);var normalRangeMin=options.get("normalRangeMin");var normalRangeMax=options.get("normalRangeMax");if(normalRangeMin!==undefined){if(normalRangeMin<miny){miny=normalRangeMin;}if(normalRangeMax>maxy){maxy=normalRangeMax;}}if(options.get("chartRangeMin")!==undefined&&(options.get("chartRangeClip")||options.get("chartRangeMin")<miny)){miny=options.get("chartRangeMin");}if(options.get("chartRangeMax")!==undefined&&(options.get("chartRangeClip")||options.get("chartRangeMax")>maxy)){maxy=options.get("chartRangeMax");}if(options.get("chartRangeMinX")!==undefined&&(options.get("chartRangeClipX")||options.get("chartRangeMinX")<minx)){minx=options.get("chartRangeMinX");}if(options.get("chartRangeMaxX")!==undefined&&(options.get("chartRangeClipX")||options.get("chartRangeMaxX")>maxx)){maxx=options.get("chartRangeMaxX");}var rangex=maxx-minx===0?1:maxx-minx;var rangey=maxy-miny===0?1:maxy-miny;var vl=yvalues.length-1;if(vl<1){this.innerHTML="";return;}var target=$(this).simpledraw(width,height,options.get("composite"));if(target){var canvas_width=target.pixel_width;var canvas_height=target.pixel_height;var canvas_top=0;var canvas_left=0;var spotRadius=options.get("spotRadius");if(spotRadius&&(canvas_width<(spotRadius*4)||canvas_height<(spotRadius*4))){spotRadius=0;}if(spotRadius){if(options.get("minSpotColor")||(options.get("spotColor")&&yvalues[vl]==miny)){canvas_height-=Math.ceil(spotRadius);}if(options.get("maxSpotColor")||(options.get("spotColor")&&yvalues[vl]==maxy)){canvas_height-=Math.ceil(spotRadius);canvas_top+=Math.ceil(spotRadius);}if(options.get("minSpotColor")||options.get("maxSpotColor")&&(yvalues[0]==miny||yvalues[0]==maxy)){canvas_left+=Math.ceil(spotRadius);canvas_width-=Math.ceil(spotRadius);}if(options.get("spotColor")||(options.get("minSpotColor")||options.get("maxSpotColor")&&(yvalues[vl]==miny||yvalues[vl]==maxy))){canvas_width-=Math.ceil(spotRadius);}}canvas_height--;var drawNormalRange=function(){if(normalRangeMin!==undefined){var ytop=canvas_top+Math.round(canvas_height-(canvas_height*((normalRangeMax-miny)/rangey)));var height=Math.round((canvas_height*(normalRangeMax-normalRangeMin))/rangey);target.drawRect(canvas_left,ytop,canvas_width,height,undefined,options.get("normalRangeColor"));}};if(!options.get("drawNormalOnTop")){drawNormalRange();}var path=[];var paths=[path];var x,y,vlen=yvalues.length;for(i=0;i<vlen;i++){x=xvalues[i];y=yvalues[i];if(y===null){if(i){if(yvalues[i-1]!==null){path=[];paths.push(path);}}}else{if(y<miny){y=miny;}if(y>maxy){y=maxy;}if(!path.length){path.push([canvas_left+Math.round((x-minx)*(canvas_width/rangex)),canvas_top+canvas_height]);}path.push([canvas_left+Math.round((x-minx)*(canvas_width/rangex)),canvas_top+Math.round(canvas_height-(canvas_height*((y-miny)/rangey)))]);}}var lineshapes=[];var fillshapes=[];var plen=paths.length;for(i=0;i<plen;i++){path=paths[i];if(!path.length){continue;}if(options.get("fillColor")){path.push([path[path.length-1][0],canvas_top+canvas_height-1]);fillshapes.push(path.slice(0));path.pop();}if(path.length>2){path[0]=[path[0][0],path[1][1]];}lineshapes.push(path);}plen=fillshapes.length;for(i=0;i<plen;i++){target.drawShape(fillshapes[i],undefined,options.get("fillColor"));}if(options.get("drawNormalOnTop")){drawNormalRange();}plen=lineshapes.length;for(i=0;i<plen;i++){target.drawShape(lineshapes[i],options.get("lineColor"),undefined,options.get("lineWidth"));}if(spotRadius&&options.get("spotColor")){target.drawCircle(canvas_left+Math.round(xvalues[xvalues.length-1]*(canvas_width/rangex)),canvas_top+Math.round(canvas_height-(canvas_height*((yvalues[vl]-miny)/rangey))),spotRadius,undefined,options.get("spotColor"));}if(maxy!=minyval){if(spotRadius&&options.get("minSpotColor")){x=xvalues[$.inArray(minyval,yvalues)];target.drawCircle(canvas_left+Math.round((x-minx)*(canvas_width/rangex)),canvas_top+Math.round(canvas_height-(canvas_height*((minyval-miny)/rangey))),spotRadius,undefined,options.get("minSpotColor"));}if(spotRadius&&options.get("maxSpotColor")){x=xvalues[$.inArray(maxyval,yvalues)];target.drawCircle(canvas_left+Math.round((x-minx)*(canvas_width/rangex)),canvas_top+Math.round(canvas_height-(canvas_height*((maxyval-miny)/rangey))),spotRadius,undefined,options.get("maxSpotColor"));}}}else{this.innerHTML="";}};$.fn.sparkline.bar=function(values,options,width,height){width=(values.length*options.get("barWidth"))+((values.length-1)*options.get("barSpacing"));var num_values=[];for(var i=0,vlen=values.length;i<vlen;i++){if(values[i]=="null"||values[i]===null){values[i]=null;}else{values[i]=Number(values[i]);num_values.push(Number(values[i]));}}var max=Math.max.apply(Math,num_values),min=Math.min.apply(Math,num_values);if(options.get("chartRangeMin")!==undefined&&(options.get("chartRangeClip")||options.get("chartRangeMin")<min)){min=options.get("chartRangeMin");}if(options.get("chartRangeMax")!==undefined&&(options.get("chartRangeClip")||options.get("chartRangeMax")>max)){max=options.get("chartRangeMax");}var zeroAxis=options.get("zeroAxis");if(zeroAxis===undefined){zeroAxis=min<0;}var range=max-min===0?1:max-min;var colorMapByIndex,colorMapByValue;if($.isArray(options.get("colorMap"))){colorMapByIndex=options.get("colorMap");colorMapByValue=null;}else{colorMapByIndex=null;colorMapByValue=options.get("colorMap");}var target=$(this).simpledraw(width,height,options.get("composite"));if(target){var color,canvas_height=target.pixel_height,yzero=min<0&&zeroAxis?canvas_height-Math.round(canvas_height*(Math.abs(min)/range))-1:canvas_height-1;for(i=values.length;i--;){var x=i*(options.get("barWidth")+options.get("barSpacing")),y,val=values[i];if(val===null){if(options.get("nullColor")){color=options.get("nullColor");val=(zeroAxis&&min<0)?0:min;height=1;y=(zeroAxis&&min<0)?yzero:canvas_height-height;}else{continue;}}else{if(val<min){val=min;}if(val>max){val=max;}color=(val<0)?options.get("negBarColor"):options.get("barColor");if(zeroAxis&&min<0){height=Math.round(canvas_height*((Math.abs(val)/range)))+1;y=(val<0)?yzero:yzero-height;}else{height=Math.round(canvas_height*((val-min)/range))+1;y=canvas_height-height;}if(val===0&&options.get("zeroColor")!==undefined){color=options.get("zeroColor");}if(colorMapByValue&&colorMapByValue[val]){color=colorMapByValue[val];}else{if(colorMapByIndex&&colorMapByIndex.length>i){color=colorMapByIndex[i];}}if(color===null){continue;}}target.drawRect(x,y,options.get("barWidth")-1,height-1,color,color);}}else{this.innerHTML="";}};$.fn.sparkline.tristate=function(values,options,width,height){values=$.map(values,Number);width=(values.length*options.get("barWidth"))+((values.length-1)*options.get("barSpacing"));var colorMapByIndex,colorMapByValue;if($.isArray(options.get("colorMap"))){colorMapByIndex=options.get("colorMap");colorMapByValue=null;}else{colorMapByIndex=null;colorMapByValue=options.get("colorMap");}var target=$(this).simpledraw(width,height,options.get("composite"));if(target){var canvas_height=target.pixel_height,half_height=Math.round(canvas_height/2);for(var i=values.length;i--;){var x=i*(options.get("barWidth")+options.get("barSpacing")),y,color;if(values[i]<0){y=half_height;height=half_height-1;color=options.get("negBarColor");}else{if(values[i]>0){y=0;height=half_height-1;color=options.get("posBarColor");}else{y=half_height-1;height=2;color=options.get("zeroBarColor");}}if(colorMapByValue&&colorMapByValue[values[i]]){color=colorMapByValue[values[i]];}else{if(colorMapByIndex&&colorMapByIndex.length>i){color=colorMapByIndex[i];}}if(color===null){continue;}target.drawRect(x,y,options.get("barWidth")-1,height-1,color,color);}}else{this.innerHTML="";}};$.fn.sparkline.discrete=function(values,options,width,height){values=$.map(values,Number);width=options.get("width")=="auto"?values.length*2:width;var interval=Math.floor(width/values.length);var target=$(this).simpledraw(width,height,options.get("composite"));if(target){var canvas_height=target.pixel_height,line_height=options.get("lineHeight")=="auto"?Math.round(canvas_height*0.3):options.get("lineHeight"),pheight=canvas_height-line_height,min=Math.min.apply(Math,values),max=Math.max.apply(Math,values);if(options.get("chartRangeMin")!==undefined&&(options.get("chartRangeClip")||options.get("chartRangeMin")<min)){min=options.get("chartRangeMin");}if(options.get("chartRangeMax")!==undefined&&(options.get("chartRangeClip")||options.get("chartRangeMax")>max)){max=options.get("chartRangeMax");}var range=max-min;for(var i=values.length;i--;){var val=values[i];if(val<min){val=min;}if(val>max){val=max;}var x=(i*interval),ytop=Math.round(pheight-pheight*((val-min)/range));target.drawLine(x,ytop,x,ytop+line_height,(options.get("thresholdColor")&&val<options.get("thresholdValue"))?options.get("thresholdColor"):options.get("lineColor"));}}else{this.innerHTML="";}};$.fn.sparkline.bullet=function(values,options,width,height){values=$.map(values,Number);width=options.get("width")=="auto"?"4.0em":width;var target=$(this).simpledraw(width,height,options.get("composite"));if(target&&values.length>1){var canvas_width=target.pixel_width-Math.ceil(options.get("targetWidth")/2),canvas_height=target.pixel_height,min=Math.min.apply(Math,values),max=Math.max.apply(Math,values);if(options.get("base")===undefined){min=min<0?min:0;}else{min=options.get("base");}var range=max-min;for(var i=2,vlen=values.length;i<vlen;i++){var rangeval=values[i],rangewidth=Math.round(canvas_width*((rangeval-min)/range));target.drawRect(0,0,rangewidth-1,canvas_height-1,options.get("rangeColors")[i-2],options.get("rangeColors")[i-2]);}var perfval=values[1],perfwidth=Math.round(canvas_width*((perfval-min)/range));target.drawRect(0,Math.round(canvas_height*0.3),perfwidth-1,Math.round(canvas_height*0.4)-1,options.get("performanceColor"),options.get("performanceColor"));var targetval=values[0],x=Math.round(canvas_width*((targetval-min)/range)-(options.get("targetWidth")/2)),targettop=Math.round(canvas_height*0.1),targetheight=canvas_height-(targettop*2);target.drawRect(x,targettop,options.get("targetWidth")-1,targetheight-1,options.get("targetColor"),options.get("targetColor"));}else{this.innerHTML="";}};$.fn.sparkline.pie=function(values,options,width,height){values=$.map(values,Number);width=options.get("width")=="auto"?height:width;var target=$(this).simpledraw(width,height,options.get("composite"));if(target&&values.length>1){var canvas_width=target.pixel_width,canvas_height=target.pixel_height,radius=Math.floor(Math.min(canvas_width,canvas_height)/2),total=0,next=0,circle=2*Math.PI;for(var i=values.length;i--;){total+=values[i];}if(options.get("offset")){next+=(2*Math.PI)*(options.get("offset")/360);}var vlen=values.length;for(i=0;i<vlen;i++){var start=next;var end=next;if(total>0){end=next+(circle*(values[i]/total));}target.drawPieSlice(radius,radius,radius,start,end,undefined,options.get("sliceColors")[i%options.get("sliceColors").length]);next=end;}}};var quartile=function(values,q){if(q==2){var vl2=Math.floor(values.length/2);return values.length%2?values[vl2]:(values[vl2]+values[vl2+1])/2;}else{var vl4=Math.floor(values.length/4);return values.length%2?(values[vl4*q]+values[vl4*q+1])/2:values[vl4*q];}};$.fn.sparkline.box=function(values,options,width,height){values=$.map(values,Number);width=options.get("width")=="auto"?"4.0em":width;var minvalue=options.get("chartRangeMin")===undefined?Math.min.apply(Math,values):options.get("chartRangeMin"),maxvalue=options.get("chartRangeMax")===undefined?Math.max.apply(Math,values):options.get("chartRangeMax"),target=$(this).simpledraw(width,height,options.get("composite")),vlen=values.length,lwhisker,loutlier,q1,q2,q3,rwhisker,routlier;if(target&&values.length>1){var canvas_width=target.pixel_width,canvas_height=target.pixel_height;if(options.get("raw")){if(options.get("showOutliers")&&values.length>5){loutlier=values[0];lwhisker=values[1];q1=values[2];q2=values[3];q3=values[4];rwhisker=values[5];routlier=values[6];}else{lwhisker=values[0];q1=values[1];q2=values[2];q3=values[3];rwhisker=values[4];}}else{values.sort(function(a,b){return a-b;});q1=quartile(values,1);q2=quartile(values,2);q3=quartile(values,3);var iqr=q3-q1;if(options.get("showOutliers")){lwhisker=undefined;rwhisker=undefined;for(var i=0;i<vlen;i++){if(lwhisker===undefined&&values[i]>q1-(iqr*options.get("outlierIQR"))){lwhisker=values[i];}if(values[i]<q3+(iqr*options.get("outlierIQR"))){rwhisker=values[i];}}loutlier=values[0];routlier=values[vlen-1];}else{lwhisker=values[0];rwhisker=values[vlen-1];}}var unitsize=canvas_width/(maxvalue-minvalue+1),canvas_left=0;if(options.get("showOutliers")){canvas_left=Math.ceil(options.get("spotRadius"));canvas_width-=2*Math.ceil(options.get("spotRadius"));unitsize=canvas_width/(maxvalue-minvalue+1);if(loutlier<lwhisker){target.drawCircle((loutlier-minvalue)*unitsize+canvas_left,canvas_height/2,options.get("spotRadius"),options.get("outlierLineColor"),options.get("outlierFillColor"));}if(routlier>rwhisker){target.drawCircle((routlier-minvalue)*unitsize+canvas_left,canvas_height/2,options.get("spotRadius"),options.get("outlierLineColor"),options.get("outlierFillColor"));}}target.drawRect(Math.round((q1-minvalue)*unitsize+canvas_left),Math.round(canvas_height*0.1),Math.round((q3-q1)*unitsize),Math.round(canvas_height*0.8),options.get("boxLineColor"),options.get("boxFillColor"));target.drawLine(Math.round((lwhisker-minvalue)*unitsize+canvas_left),Math.round(canvas_height/2),Math.round((q1-minvalue)*unitsize+canvas_left),Math.round(canvas_height/2),options.get("lineColor"));target.drawLine(Math.round((lwhisker-minvalue)*unitsize+canvas_left),Math.round(canvas_height/4),Math.round((lwhisker-minvalue)*unitsize+canvas_left),Math.round(canvas_height-canvas_height/4),options.get("whiskerColor"));target.drawLine(Math.round((rwhisker-minvalue)*unitsize+canvas_left),Math.round(canvas_height/2),Math.round((q3-minvalue)*unitsize+canvas_left),Math.round(canvas_height/2),options.get("lineColor"));target.drawLine(Math.round((rwhisker-minvalue)*unitsize+canvas_left),Math.round(canvas_height/4),Math.round((rwhisker-minvalue)*unitsize+canvas_left),Math.round(canvas_height-canvas_height/4),options.get("whiskerColor"));target.drawLine(Math.round((q2-minvalue)*unitsize+canvas_left),Math.round(canvas_height*0.1),Math.round((q2-minvalue)*unitsize+canvas_left),Math.round(canvas_height*0.9),options.get("medianColor"));if(options.get("target")){var size=Math.ceil(options.get("spotRadius"));target.drawLine(Math.round((options.get("target")-minvalue)*unitsize+canvas_left),Math.round((canvas_height/2)-size),Math.round((options.get("target")-minvalue)*unitsize+canvas_left),Math.round((canvas_height/2)+size),options.get("targetColor"));target.drawLine(Math.round((options.get("target")-minvalue)*unitsize+canvas_left-size),Math.round(canvas_height/2),Math.round((options.get("target")-minvalue)*unitsize+canvas_left+size),Math.round(canvas_height/2),options.get("targetColor"));}}else{this.innerHTML="";}};if($.browser.msie&&!document.namespaces.v){document.namespaces.add("v","urn:schemas-microsoft-com:vml","#default#VML");}if($.browser.hasCanvas===undefined){var t=document.createElement("canvas");$.browser.hasCanvas=t.getContext!==undefined;}VCanvas_base=function(width,height,target){};VCanvas_base.prototype={init:function(width,height,target){this.width=width;this.height=height;this.target=target;if(target[0]){target=target[0];}target.VCanvas=this;},drawShape:function(path,lineColor,fillColor,lineWidth){alert("drawShape not implemented");},drawLine:function(x1,y1,x2,y2,lineColor,lineWidth){return this.drawShape([[x1,y1],[x2,y2]],lineColor,lineWidth);},drawCircle:function(x,y,radius,lineColor,fillColor){alert("drawCircle not implemented");},drawPieSlice:function(x,y,radius,startAngle,endAngle,lineColor,fillColor){alert("drawPieSlice not implemented");},drawRect:function(x,y,width,height,lineColor,fillColor){alert("drawRect not implemented");},getElement:function(){return this.canvas;},_insert:function(el,target){$(target).html(el);}};VCanvas_canvas=function(width,height,target){return this.init(width,height,target);};VCanvas_canvas.prototype=$.extend(new VCanvas_base(),{_super:VCanvas_base.prototype,init:function(width,height,target){this._super.init(width,height,target);this.canvas=document.createElement("canvas");if(target[0]){target=target[0];}target.VCanvas=this;$(this.canvas).css({display:"inline-block",width:width,height:height,verticalAlign:"top"});this._insert(this.canvas,target);this.pixel_height=$(this.canvas).height();this.pixel_width=$(this.canvas).width();this.canvas.width=this.pixel_width;this.canvas.height=this.pixel_height;$(this.canvas).css({width:this.pixel_width,height:this.pixel_height});},_getContext:function(lineColor,fillColor,lineWidth){var context=this.canvas.getContext("2d");if(lineColor!==undefined){context.strokeStyle=lineColor;}context.lineWidth=lineWidth===undefined?1:lineWidth;if(fillColor!==undefined){context.fillStyle=fillColor;}return context;},drawShape:function(path,lineColor,fillColor,lineWidth){var context=this._getContext(lineColor,fillColor,lineWidth);context.beginPath();context.moveTo(path[0][0]+0.5,path[0][1]+0.5);for(var i=1,plen=path.length;i<plen;i++){context.lineTo(path[i][0]+0.5,path[i][1]+0.5);}if(lineColor!==undefined){context.stroke();}if(fillColor!==undefined){context.fill();}},drawCircle:function(x,y,radius,lineColor,fillColor){var context=this._getContext(lineColor,fillColor);context.beginPath();context.arc(x,y,radius,0,2*Math.PI,false);if(lineColor!==undefined){context.stroke();}if(fillColor!==undefined){context.fill();}},drawPieSlice:function(x,y,radius,startAngle,endAngle,lineColor,fillColor){var context=this._getContext(lineColor,fillColor);context.beginPath();context.moveTo(x,y);context.arc(x,y,radius,startAngle,endAngle,false);context.lineTo(x,y);context.closePath();if(lineColor!==undefined){context.stroke();}if(fillColor){context.fill();}},drawRect:function(x,y,width,height,lineColor,fillColor){return this.drawShape([[x,y],[x+width,y],[x+width,y+height],[x,y+height],[x,y]],lineColor,fillColor);}});VCanvas_vml=function(width,height,target){return this.init(width,height,target);};VCanvas_vml.prototype=$.extend(new VCanvas_base(),{_super:VCanvas_base.prototype,init:function(width,height,target){this._super.init(width,height,target);if(target[0]){target=target[0];}target.VCanvas=this;this.canvas=document.createElement("span");$(this.canvas).css({display:"inline-block",position:"relative",overflow:"hidden",width:width,height:height,margin:"0px",padding:"0px",verticalAlign:"top"});this._insert(this.canvas,target);this.pixel_height=$(this.canvas).height();this.pixel_width=$(this.canvas).width();this.canvas.width=this.pixel_width;this.canvas.height=this.pixel_height;var groupel='<v:group coordorigin="0 0" coordsize="'+this.pixel_width+" "+this.pixel_height+'" style="position:absolute;top:0;left:0;width:'+this.pixel_width+"px;height="+this.pixel_height+'px;"></v:group>';this.canvas.insertAdjacentHTML("beforeEnd",groupel);this.group=$(this.canvas).children()[0];},drawShape:function(path,lineColor,fillColor,lineWidth){var vpath=[];for(var i=0,plen=path.length;i<plen;i++){vpath[i]=""+(path[i][0])+","+(path[i][1]);}var initial=vpath.splice(0,1);lineWidth=lineWidth===undefined?1:lineWidth;var stroke=lineColor===undefined?' stroked="false" ':' strokeWeight="'+lineWidth+'" strokeColor="'+lineColor+'" ';var fill=fillColor===undefined?' filled="false"':' fillColor="'+fillColor+'" filled="true" ';var closed=vpath[0]==vpath[vpath.length-1]?"x ":"";var vel='<v:shape coordorigin="0 0" coordsize="'+this.pixel_width+" "+this.pixel_height+'" '+stroke+fill+' style="position:absolute;left:0px;top:0px;height:'+this.pixel_height+"px;width:"+this.pixel_width+'px;padding:0px;margin:0px;"  path="m '+initial+" l "+vpath.join(", ")+" "+closed+'e"> </v:shape>';this.group.insertAdjacentHTML("beforeEnd",vel);},drawCircle:function(x,y,radius,lineColor,fillColor){x-=radius+1;y-=radius+1;var stroke=lineColor===undefined?' stroked="false" ':' strokeWeight="1" strokeColor="'+lineColor+'" ';var fill=fillColor===undefined?' filled="false"':' fillColor="'+fillColor+'" filled="true" ';var vel="<v:oval "+stroke+fill+' style="position:absolute;top:'+y+"px; left:"+x+"px; width:"+(radius*2)+"px; height:"+(radius*2)+'px"></v:oval>';this.group.insertAdjacentHTML("beforeEnd",vel);},drawPieSlice:function(x,y,radius,startAngle,endAngle,lineColor,fillColor){if(startAngle==endAngle){return;}if((endAngle-startAngle)==(2*Math.PI)){startAngle=0;endAngle=(2*Math.PI);}var startx=x+Math.round(Math.cos(startAngle)*radius);var starty=y+Math.round(Math.sin(startAngle)*radius);var endx=x+Math.round(Math.cos(endAngle)*radius);var endy=y+Math.round(Math.sin(endAngle)*radius);if(startx==endx&&starty==endy&&(endAngle-startAngle)<Math.PI){return;}var vpath=[x-radius,y-radius,x+radius,y+radius,startx,starty,endx,endy];var stroke=lineColor===undefined?' stroked="false" ':' strokeWeight="1" strokeColor="'+lineColor+'" ';var fill=fillColor===undefined?' filled="false"':' fillColor="'+fillColor+'" filled="true" ';var vel='<v:shape coordorigin="0 0" coordsize="'+this.pixel_width+" "+this.pixel_height+'" '+stroke+fill+' style="position:absolute;left:0px;top:0px;height:'+this.pixel_height+"px;width:"+this.pixel_width+'px;padding:0px;margin:0px;"  path="m '+x+","+y+" wa "+vpath.join(", ")+' x e"> </v:shape>';this.group.insertAdjacentHTML("beforeEnd",vel);},drawRect:function(x,y,width,height,lineColor,fillColor){return this.drawShape([[x,y],[x,y+height],[x+width,y+height],[x+width,y],[x,y]],lineColor,fillColor);}});})(jQuery);(function($){$.timeago=function(timestamp){if(timestamp instanceof Date){return inWords(timestamp);}else{if(typeof timestamp==="string"){return inWords($.timeago.parse(timestamp));}else{return inWords($.timeago.datetime(timestamp));}}};var $t=$.timeago;$.extend($.timeago,{settings:{refreshMillis:60000,allowFuture:false,timeOnly:false,strings:{prefixAgo:null,prefixFromNow:null,suffixAgo:"ago",suffixFromNow:"from now",seconds:"less than a minute",minute:"about a minute",minutes:"%d minutes",hour:"about an hour",hours:"about %d hours",day:"a day",days:"%d days",month:"about a month",months:"%d months",year:"about a year",years:"%d years",numbers:[]}},inWords:function(distanceMillis){var $l=this.settings.strings;var prefix=$l.prefixAgo;var suffix=$l.suffixAgo;if(this.settings.allowFuture){if(distanceMillis<0){prefix=$l.prefixFromNow;suffix=$l.suffixFromNow;}distanceMillis=Math.abs(distanceMillis);}var seconds=distanceMillis/1000;var minutes=seconds/60;var hours=minutes/60;var days=hours/24;var years=days/365;function substitute(stringOrFunction,number){var string=$.isFunction(stringOrFunction)?stringOrFunction(number,distanceMillis):stringOrFunction;var value=($l.numbers&&$l.numbers[number])||number;return string.replace(/%d/i,value);}var words=seconds<45&&substitute($l.seconds,Math.round(seconds))||seconds<90&&substitute($l.minute,1)||minutes<45&&substitute($l.minutes,Math.round(minutes))||minutes<90&&substitute($l.hour,1)||hours<24&&substitute($l.hours,Math.round(hours))||hours<48&&substitute($l.day,1)||days<30&&substitute($l.days,Math.floor(days))||days<60&&substitute($l.month,1)||days<365&&substitute($l.months,Math.floor(days/30))||years<2&&substitute($l.year,1)||substitute($l.years,Math.floor(years));if(this.settings.timeOnly){return $.trim(words);}return $.trim([prefix,words,suffix].join(" "));},parse:function(iso8601){var s=$.trim(iso8601);s=s.replace(/\.\d\d\d+/,"");s=s.replace(/-/,"/").replace(/-/,"/");s=s.replace(/T/," ").replace(/Z/," UTC");s=s.replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2");return new Date(s);},datetime:function(elem){var isTime=$(elem).get(0).tagName.toLowerCase()==="time";var iso8601=isTime?$(elem).attr("datetime"):$(elem).attr("title");return $t.parse(iso8601);}});$.fn.timeago=function(){var self=this;self.each(refresh);var $s=$t.settings;if($s.refreshMillis>0){setInterval(function(){self.each(refresh);},$s.refreshMillis);}return self;};function refresh(){var data=prepareData(this);if(!isNaN(data.datetime)){$(this).text(inWords(data.datetime));}return this;}function prepareData(element){element=$(element);if(!element.data("timeago")){element.data("timeago",{datetime:$t.datetime(element)});var text=$.trim(element.text());if(text.length>0){element.attr("title",text);}}return element.data("timeago");}function inWords(date){return $t.inWords(distance(date));}function distance(date){return(new Date().getTime()-date.getTime());}document.createElement("abbr");document.createElement("time");}(jQuery));(function(jQuery,undefined){var oldManip=jQuery.fn.domManip,tmplItmAtt="_tmplitem",htmlExpr=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,newTmplItems={},wrappedItems={},appendToTmplItems,topTmplItem={key:0,data:{}},itemKey=0,cloneIndex=0,stack=[];function newTmplItem(options,parentItem,fn,data){var newItem={data:data||(data===0||data===false)?data:(parentItem?parentItem.data:{}),_wrap:parentItem?parentItem._wrap:null,tmpl:null,parent:parentItem||null,nodes:[],calls:tiCalls,nest:tiNest,wrap:tiWrap,html:tiHtml,update:tiUpdate};if(options){jQuery.extend(newItem,options,{nodes:[],parent:parentItem});}if(fn){newItem.tmpl=fn;newItem._ctnt=newItem._ctnt||newItem.tmpl(jQuery,newItem);newItem.key=++itemKey;(stack.length?wrappedItems:newTmplItems)[itemKey]=newItem;}return newItem;}jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var ret=[],insert=jQuery(selector),elems,i,l,tmplItems,parent=this.length===1&&this[0].parentNode;appendToTmplItems=newTmplItems||{};if(parent&&parent.nodeType===11&&parent.childNodes.length===1&&insert.length===1){insert[original](this[0]);ret=this;}else{for(i=0,l=insert.length;i<l;i++){cloneIndex=i;elems=(i>0?this.clone(true):this).get();jQuery(insert[i])[original](elems);ret=ret.concat(elems);}cloneIndex=0;ret=this.pushStack(ret,name,insert.selector);}tmplItems=appendToTmplItems;appendToTmplItems=null;jQuery.tmpl.complete(tmplItems);return ret;};});jQuery.fn.extend({tmpl:function(data,options,parentItem){return jQuery.tmpl(this[0],data,options,parentItem);},tmplItem:function(){return jQuery.tmplItem(this[0]);},template:function(name){return jQuery.template(name,this[0]);},domManip:function(args,table,callback,options){if(args[0]&&jQuery.isArray(args[0])){var dmArgs=jQuery.makeArray(arguments),elems=args[0],elemsLength=elems.length,i=0,tmplItem;while(i<elemsLength&&!(tmplItem=jQuery.data(elems[i++],"tmplItem"))){}if(tmplItem&&cloneIndex){dmArgs[2]=function(fragClone){jQuery.tmpl.afterManip(this,fragClone,callback);};}oldManip.apply(this,dmArgs);}else{oldManip.apply(this,arguments);}cloneIndex=0;if(!appendToTmplItems){jQuery.tmpl.complete(newTmplItems);}return this;}});jQuery.extend({tmpl:function(tmpl,data,options,parentItem){var ret,topLevel=!parentItem;if(topLevel){parentItem=topTmplItem;tmpl=jQuery.template[tmpl]||jQuery.template(null,tmpl);wrappedItems={};}else{if(!tmpl){tmpl=parentItem.tmpl;newTmplItems[parentItem.key]=parentItem;parentItem.nodes=[];if(parentItem.wrapped){updateWrapped(parentItem,parentItem.wrapped);}return jQuery(build(parentItem,null,parentItem.tmpl(jQuery,parentItem)));}}if(!tmpl){return[];}if(typeof data==="function"){data=data.call(parentItem||{});}if(options&&options.wrapped){updateWrapped(options,options.wrapped);}ret=jQuery.isArray(data)?jQuery.map(data,function(dataItem){return dataItem?newTmplItem(options,parentItem,tmpl,dataItem):null;}):[newTmplItem(options,parentItem,tmpl,data)];return topLevel?jQuery(build(parentItem,null,ret)):ret;},tmplItem:function(elem){var tmplItem;if(elem instanceof jQuery){elem=elem[0];}while(elem&&elem.nodeType===1&&!(tmplItem=jQuery.data(elem,"tmplItem"))&&(elem=elem.parentNode)){}return tmplItem||topTmplItem;},template:function(name,tmpl){if(tmpl){if(typeof tmpl==="string"){tmpl=buildTmplFn(tmpl);}else{if(tmpl instanceof jQuery){tmpl=tmpl[0]||{};}}if(tmpl.nodeType){tmpl=jQuery.data(tmpl,"tmpl")||jQuery.data(tmpl,"tmpl",buildTmplFn(tmpl.innerHTML));}return typeof name==="string"?(jQuery.template[name]=tmpl):tmpl;}return name?(typeof name!=="string"?jQuery.template(null,name):(jQuery.template[name]||jQuery.template(null,htmlExpr.test(name)?name:jQuery(name)))):null;},encode:function(text){return(""+text).split("<").join("&lt;").split(">").join("&gt;").split('"').join("&#34;").split("'").join("&#39;");}});jQuery.extend(jQuery.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(items){newTmplItems={};},afterManip:function afterManip(elem,fragClone,callback){var content=fragClone.nodeType===11?jQuery.makeArray(fragClone.childNodes):fragClone.nodeType===1?[fragClone]:[];callback.call(elem,fragClone);storeTmplItems(content);cloneIndex++;}});function build(tmplItem,nested,content){var frag,ret=content?jQuery.map(content,function(item){return(typeof item==="string")?(tmplItem.key?item.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+tmplItmAtt+'="'+tmplItem.key+'" $2'):item):build(item,tmplItem,item._ctnt);}):tmplItem;if(nested){return ret;}ret=ret.join("");ret.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(all,before,middle,after){frag=jQuery(middle).get();storeTmplItems(frag);if(before){frag=unencode(before).concat(frag);}if(after){frag=frag.concat(unencode(after));}});return frag?frag:unencode(ret);}function unencode(text){var el=document.createElement("div");el.innerHTML=text;return jQuery.makeArray(el.childNodes);}function buildTmplFn(markup){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+jQuery.trim(markup).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(all,slash,type,fnargs,target,parens,args){var tag=jQuery.tmpl.tag[type],def,expr,exprAutoFnDetect;if(!tag){throw"Unknown template tag: "+type;}def=tag._default||[];if(parens&&!/\w$/.test(target)){target+=parens;parens="";}if(target){target=unescape(target);args=args?(","+unescape(args)+")"):(parens?")":"");expr=parens?(target.indexOf(".")>-1?target+unescape(parens):("("+target+").call($item"+args)):target;exprAutoFnDetect=parens?expr:"(typeof("+target+")==='function'?("+target+").call($item):("+target+"))";}else{exprAutoFnDetect=expr=def.$1||"null";}fnargs=unescape(fnargs);return"');"+tag[slash?"close":"open"].split("$notnull_1").join(target?"typeof("+target+")!=='undefined' && ("+target+")!=null":"true").split("$1a").join(exprAutoFnDetect).split("$1").join(expr).split("$2").join(fnargs||def.$2||"")+"__.push('";})+"');}return __;");}function updateWrapped(options,wrapped){options._wrap=build(options,true,jQuery.isArray(wrapped)?wrapped:[htmlExpr.test(wrapped)?wrapped:jQuery(wrapped).html()]).join("");}function unescape(args){return args?args.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null;}function outerHtml(elem){var div=document.createElement("div");div.appendChild(elem.cloneNode(true));return div.innerHTML;}function storeTmplItems(content){var keySuffix="_"+cloneIndex,elem,elems,newClonedItems={},i,l,m;for(i=0,l=content.length;i<l;i++){if((elem=content[i]).nodeType!==1){continue;}elems=elem.getElementsByTagName("*");for(m=elems.length-1;m>=0;m--){processItemKey(elems[m]);}processItemKey(elem);}function processItemKey(el){var pntKey,pntNode=el,pntItem,tmplItem,key;if((key=el.getAttribute(tmplItmAtt))){while(pntNode.parentNode&&(pntNode=pntNode.parentNode).nodeType===1&&!(pntKey=pntNode.getAttribute(tmplItmAtt))){}if(pntKey!==key){pntNode=pntNode.parentNode?(pntNode.nodeType===11?0:(pntNode.getAttribute(tmplItmAtt)||0)):0;if(!(tmplItem=newTmplItems[key])){tmplItem=wrappedItems[key];tmplItem=newTmplItem(tmplItem,newTmplItems[pntNode]||wrappedItems[pntNode]);tmplItem.key=++itemKey;newTmplItems[itemKey]=tmplItem;}if(cloneIndex){cloneTmplItem(key);}}el.removeAttribute(tmplItmAtt);}else{if(cloneIndex&&(tmplItem=jQuery.data(el,"tmplItem"))){cloneTmplItem(tmplItem.key);newTmplItems[tmplItem.key]=tmplItem;pntNode=jQuery.data(el.parentNode,"tmplItem");pntNode=pntNode?pntNode.key:0;}}if(tmplItem){pntItem=tmplItem;while(pntItem&&pntItem.key!=pntNode){pntItem.nodes.push(el);pntItem=pntItem.parent;}delete tmplItem._ctnt;delete tmplItem._wrap;jQuery.data(el,"tmplItem",tmplItem);}function cloneTmplItem(key){key=key+keySuffix;tmplItem=newClonedItems[key]=(newClonedItems[key]||newTmplItem(tmplItem,newTmplItems[tmplItem.parent.key+keySuffix]||tmplItem.parent));}}}function tiCalls(content,tmpl,data,options){if(!content){return stack.pop();}stack.push({_:content,tmpl:tmpl,item:this,data:data,options:options});}function tiNest(tmpl,data,options){return jQuery.tmpl(jQuery.template(tmpl),data,options,this);}function tiWrap(call,wrapped){var options=call.options||{};options.wrapped=wrapped;return jQuery.tmpl(jQuery.template(call.tmpl),call.data,options,call.item);}function tiHtml(filter,textOnly){var wrapped=this._wrap;return jQuery.map(jQuery(jQuery.isArray(wrapped)?wrapped.join(""):wrapped).filter(filter||"*"),function(e){return textOnly?e.innerText||e.textContent:e.outerHTML||outerHtml(e);});}function tiUpdate(){var coll=this.nodes;jQuery.tmpl(null,null,null,this).insertBefore(coll[0]);jQuery(coll).remove();}})(jQuery);(function($){var onMouseClick=function(event){var o=this.options;var target=$(event.currentTarget);if(target.is("input.rowSelector:checkbox")){return true;}if(this.helper||o.disabled||$(event.target).is(".ui-resizable-handle")){return false;}this.handle=this._getHandle(event);if(!this.handle){return false;}if(target.is("input.rowSelector:checkbox")){target.parents(".ui-draggable").first().toggleClass("ui-multidraggable",target.attr("checked"));}else{if(event.ctrlKey){target.toggleClass("ui-multidraggable");target.find("input.rowSelector:checkbox").attr("checked",target.hasClass("ui-multidraggable"));}}return true;};$.widget("ui.multidraggable",$.extend({},$.ui.draggable.prototype,{_create:function(){if(this.options.helper=="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative";}(this.options.addClasses&&this.element.addClass("ui-draggable"));(this.options.disabled&&this.element.addClass("ui-draggable-disabled"));this.element.find("input.rowSelector:checkbox").bind("click.PulseEnergy-onMouseClick",$.proxy(onMouseClick,this));this._mouseInit();this.options.isMain=false;},destroy:function(){if(!this.element.data("multidraggable")){return;}this.element.removeData("multidraggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();this.element.find("input.rowSelector:checkbox").unbind("click.PulseEnergy-onMouseClick",$.proxy(onMouseClick,this));return this;},_mouseCapture:onMouseClick,mouseStart:function(event,draggedOptions){var target=$(event.currentTarget);var checkbox="input.rowSelector:checkbox";var o=this.options;if(this.element.hasClass("ui-multidraggable")){this.options.draggedOptions=draggedOptions;}this.helper=this._createHelper(event);this._cacheHelperProportions();if($.ui.ddmanager){$.ui.ddmanager.current=this;}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};$.extend(this.offset,{click:{left:event.pageX-this.offset.left,top:event.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(event);this.originalPageX=event.pageX;this.originalPageY=event.pageY;(o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt));if(o.containment){this._setContainment();}if(this._trigger("start",event)===false){this._clear();return false;}this._cacheHelperProportions();if($.ui.ddmanager&&!o.dropBehaviour){$.ui.ddmanager.prepareOffsets(this,event);}this.helper.addClass("ui-draggable-dragging");this.mouseDrag(event,true);return true;},_mouseStart:function(event){var o=this.options;if(this.element.hasClass("ui-multidraggable")){this.options.isMain=true;$(".ui-multidraggable").each(function(){$(this).multidraggable("mouseStart",event,o);});return true;}else{this.mouseStart(event,o);}},mouseDrag:function(event,noPropagation){this.position=this._generatePosition(event);this.positionAbs=this._convertPositionTo("absolute");if(!noPropagation){var ui=this._uiHash();if(this._trigger("drag",event,ui)===false){this._mouseUp({});return false;}this.position=ui.position;}if(this.element.hasClass("ui-multidraggable")){if(!this.options.axis&&!this.options.draggedOptions.axis||this.options.axis!="y"&&this.options.draggedOptions.axis!="y"){this.helper[0].style.left=this.position.left+"px";}if(!this.options.axis&&!this.options.draggedOptions.axis||this.options.axis!="x"&&this.options.draggedOptions.axis!="x"){this.helper[0].style.top=this.position.top+"px";}}else{if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px";}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px";}}if($.ui.ddmanager){$.ui.ddmanager.drag(this,event);}return false;},_mouseDrag:function(event,noPropagation){if(this.element.hasClass("ui-multidraggable")){$(".ui-multidraggable").each(function(){$(this).multidraggable("mouseDrag",event,noPropagation);});return false;}else{this.mouseDrag(event,noPropagation,this.options);return false;}},mouseStop:function(event){var dropped=false;if($.ui.ddmanager&&!this.options.dropBehaviour){dropped=$.ui.ddmanager.drop(this,event);}if(this.dropped){dropped=this.dropped;this.dropped=false;}if(!this.element[0]||!this.element[0].parentNode){return false;}if((this.options.revert=="invalid"&&!dropped)||(this.options.revert=="valid"&&dropped)||this.options.revert===true||($.isFunction(this.options.revert)&&this.options.revert.call(this.element,dropped))){var self=this;$(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){if(self._trigger("stop",event)!==false){self._clear();}});}else{if(this._trigger("stop",event)!==false){this._clear();}}return false;},_mouseStop:function(event){if(this.element.hasClass("ui-multidraggable")){$(".ui-multidraggable").each(function(){$(this).multidraggable("mouseStop",event);});return false;}else{this.mouseStop(event);return false;}},cancel:function(){if(this.helper.is(".ui-draggable-dragging")){this._mouseUp({});}else{this._clear();}return this;},_clear:function(){this.helper.removeClass("ui-draggable-dragging");if(this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval){this.helper.remove();}this.options.isMain=false;this.helper=null;this.cancelHelperRemoval=false;},plugins:{}}));$.extend($.ui.multidraggable,{version:"1.8.8",widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,cancel:":input,option",connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,delay:0,distance:1,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false}});$.ui.plugin.add("multidraggable","connectToSortable",{start:function(event,ui){var inst=$(this).data("multidraggable"),o=inst.options,uiSortable=$.extend({},ui,{item:inst.element});inst.sortables=[];$(o.connectToSortable).each(function(){var sortable=$.data(this,"sortable");if(sortable&&!sortable.options.disabled){inst.sortables.push({instance:sortable,shouldRevert:sortable.options.revert});sortable._refreshItems();sortable._trigger("activate",event,uiSortable);}});},stop:function(event,ui){var inst=$(this).data("multidraggable"),uiSortable=$.extend({},ui,{item:inst.element});$.each(inst.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;inst.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert){this.instance.options.revert=true;}this.instance._mouseStop(event);this.instance.options.helper=this.instance.options._helper;if(inst.options.helper=="original"){this.instance.currentItem.css({top:"auto",left:"auto"});}}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",event,uiSortable);}});},drag:function(event,ui){var inst=$(this).data("multidraggable"),self=this;var checkPos=function(o){var dyClick=this.offset.click.top,dxClick=this.offset.click.left;var helperTop=this.positionAbs.top,helperLeft=this.positionAbs.left;var itemHeight=o.height,itemWidth=o.width;var itemTop=o.top,itemLeft=o.left;return $.ui.isOver(helperTop+dyClick,helperLeft+dxClick,itemTop,itemLeft,itemHeight,itemWidth);};$.each(inst.sortables,function(i){this.instance.positionAbs=inst.positionAbs;this.instance.helperProportions=inst.helperProportions;this.instance.offset.click=inst.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=$(self).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return ui.helper[0];};event.target=this.instance.currentItem[0];this.instance._mouseCapture(event,true);this.instance._mouseStart(event,true,true);this.instance.offset.click.top=inst.offset.click.top;this.instance.offset.click.left=inst.offset.click.left;this.instance.offset.parent.left-=inst.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=inst.offset.parent.top-this.instance.offset.parent.top;inst._trigger("toSortable",event);inst.dropped=this.instance.element;inst.currentItem=inst.element;this.instance.fromOutside=inst;}if(this.instance.currentItem){this.instance._mouseDrag(event);}}else{if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",event,this.instance._uiHash(this.instance));this.instance._mouseStop(event,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();if(this.instance.placeholder){this.instance.placeholder.remove();}inst._trigger("fromSortable",event);inst.dropped=false;}}});}});$.ui.plugin.add("multidraggable","cursor",{start:function(event,ui){if($(this).hasClass("ui-multidraggable")){if($(this).data("multidraggable").options.isMain==false){return;}}var t=$("body"),o=$(this).data("multidraggable").options;if(t.css("cursor")){o._cursor=t.css("cursor");}t.css("cursor",o.cursor);},stop:function(event,ui){if($(this).hasClass("ui-multidraggable")){if($(this).data("multidraggable").options.isMain==false){return;}}var o=$(this).data("multidraggable").options;if(o._cursor){$("body").css("cursor",o._cursor);}}});$.ui.plugin.add("multidraggable","iframeFix",{start:function(event,ui){var o=$(this).data("multidraggable").options;$(o.iframeFix===true?"iframe":o.iframeFix).each(function(){$('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css($(this).offset()).appendTo("body");});},stop:function(event,ui){$("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this);});}});$.ui.plugin.add("multidraggable","opacity",{start:function(event,ui){var t=$(ui.helper),o=$(this).data("multidraggable").options;if(t.css("opacity")){o._opacity=t.css("opacity");}t.css("opacity",o.opacity);},stop:function(event,ui){var o=$(this).data("multidraggable").options;if(o._opacity){$(ui.helper).css("opacity",o._opacity);}}});$.ui.plugin.add("multidraggable","scroll",{start:function(event,ui){var i=$(this).data("multidraggable");if(i.scrollParent[0]!=document&&i.scrollParent[0].tagName!="HTML"){i.overflowOffset=i.scrollParent.offset();}},drag:function(event,ui){var i=$(this).data("multidraggable"),o=i.options,scrolled=false;if(i.scrollParent[0]!=document&&i.scrollParent[0].tagName!="HTML"){if(!o.axis||o.axis!="x"){if((i.overflowOffset.top+i.scrollParent[0].offsetHeight)-event.pageY<o.scrollSensitivity){i.scrollParent[0].scrollTop=scrolled=i.scrollParent[0].scrollTop+o.scrollSpeed;}else{if(event.pageY-i.overflowOffset.top<o.scrollSensitivity){i.scrollParent[0].scrollTop=scrolled=i.scrollParent[0].scrollTop-o.scrollSpeed;}}}if(!o.axis||o.axis!="y"){if((i.overflowOffset.left+i.scrollParent[0].offsetWidth)-event.pageX<o.scrollSensitivity){i.scrollParent[0].scrollLeft=scrolled=i.scrollParent[0].scrollLeft+o.scrollSpeed;}else{if(event.pageX-i.overflowOffset.left<o.scrollSensitivity){i.scrollParent[0].scrollLeft=scrolled=i.scrollParent[0].scrollLeft-o.scrollSpeed;}}}}else{if(!o.axis||o.axis!="x"){if(event.pageY-$(document).scrollTop()<o.scrollSensitivity){scrolled=$(document).scrollTop($(document).scrollTop()-o.scrollSpeed);}else{if($(window).height()-(event.pageY-$(document).scrollTop())<o.scrollSensitivity){scrolled=$(document).scrollTop($(document).scrollTop()+o.scrollSpeed);}}}if(!o.axis||o.axis!="y"){if(event.pageX-$(document).scrollLeft()<o.scrollSensitivity){scrolled=$(document).scrollLeft($(document).scrollLeft()-o.scrollSpeed);}else{if($(window).width()-(event.pageX-$(document).scrollLeft())<o.scrollSensitivity){scrolled=$(document).scrollLeft($(document).scrollLeft()+o.scrollSpeed);}}}}if(scrolled!==false&&$.ui.ddmanager&&!o.dropBehaviour){$.ui.ddmanager.prepareOffsets(i,event);}}});$.ui.plugin.add("multidraggable","snap",{start:function(event,ui){var i=$(this).data("multidraggable"),o=i.options;i.snapElements=[];$(o.snap.constructor!=String?(o.snap.items||":data(draggable)"):o.snap).each(function(){var $t=$(this);var $o=$t.offset();if(this!=i.element[0]){i.snapElements.push({item:this,width:$t.outerWidth(),height:$t.outerHeight(),top:$o.top,left:$o.left});}});},drag:function(event,ui){var inst=$(this).data("multidraggable"),o=inst.options;var d=o.snapTolerance;var x1=ui.offset.left,x2=x1+inst.helperProportions.width,y1=ui.offset.top,y2=y1+inst.helperProportions.height;for(var i=inst.snapElements.length-1;i>=0;i--){var l=inst.snapElements[i].left,r=l+inst.snapElements[i].width,t=inst.snapElements[i].top,b=t+inst.snapElements[i].height;if(!((l-d<x1&&x1<r+d&&t-d<y1&&y1<b+d)||(l-d<x1&&x1<r+d&&t-d<y2&&y2<b+d)||(l-d<x2&&x2<r+d&&t-d<y1&&y1<b+d)||(l-d<x2&&x2<r+d&&t-d<y2&&y2<b+d))){if(inst.snapElements[i].snapping){(inst.options.snap.release&&inst.options.snap.release.call(inst.element,event,$.extend(inst._uiHash(),{snapItem:inst.snapElements[i].item})));}inst.snapElements[i].snapping=false;continue;}if(o.snapMode!="inner"){var ts=Math.abs(t-y2)<=d;var bs=Math.abs(b-y1)<=d;var ls=Math.abs(l-x2)<=d;var rs=Math.abs(r-x1)<=d;if(ts){ui.position.top=inst._convertPositionTo("relative",{top:t-inst.helperProportions.height,left:0}).top-inst.margins.top;}if(bs){ui.position.top=inst._convertPositionTo("relative",{top:b,left:0}).top-inst.margins.top;}if(ls){ui.position.left=inst._convertPositionTo("relative",{top:0,left:l-inst.helperProportions.width}).left-inst.margins.left;}if(rs){ui.position.left=inst._convertPositionTo("relative",{top:0,left:r}).left-inst.margins.left;}}var first=(ts||bs||ls||rs);if(o.snapMode!="outer"){var ts=Math.abs(t-y1)<=d;var bs=Math.abs(b-y2)<=d;var ls=Math.abs(l-x1)<=d;var rs=Math.abs(r-x2)<=d;if(ts){ui.position.top=inst._convertPositionTo("relative",{top:t,left:0}).top-inst.margins.top;}if(bs){ui.position.top=inst._convertPositionTo("relative",{top:b-inst.helperProportions.height,left:0}).top-inst.margins.top;}if(ls){ui.position.left=inst._convertPositionTo("relative",{top:0,left:l}).left-inst.margins.left;}if(rs){ui.position.left=inst._convertPositionTo("relative",{top:0,left:r-inst.helperProportions.width}).left-inst.margins.left;}}if(!inst.snapElements[i].snapping&&(ts||bs||ls||rs||first)){(inst.options.snap.snap&&inst.options.snap.snap.call(inst.element,event,$.extend(inst._uiHash(),{snapItem:inst.snapElements[i].item})));}inst.snapElements[i].snapping=(ts||bs||ls||rs||first);}}});$.ui.plugin.add("multidraggable","stack",{start:function(event,ui){var o=$(this).data("multidraggable").options;var group=$.makeArray($(o.stack)).sort(function(a,b){return(parseInt($(a).css("zIndex"),10)||0)-(parseInt($(b).css("zIndex"),10)||0);});if(!group.length){return;}var min=parseInt(group[0].style.zIndex)||0;$(group).each(function(i){this.style.zIndex=min+i;});if($(this).hasClass("ui-multidraggable")){if($(this).data("multidraggable").options.isMain==true){this[0].style.zIndex=o.stack.min+group.length;}}else{this[0].style.zIndex=o.stack.min+group.length;}}});$.ui.plugin.add("multidraggable","zIndex",{start:function(event,ui){var t=$(ui.helper),o=$(this).data("multidraggable").options;if(t.css("zIndex")){o._zIndex=t.css("zIndex");}t.css("zIndex",o.zIndex);},stop:function(event,ui){var o=$(this).data("multidraggable").options;if(o._zIndex){$(ui.helper).css("zIndex",o._zIndex);}}});})(jQuery);var JSON;if(!JSON){JSON={};}(function(){function f(n){return n<10?"0"+n:n;}if(typeof Date.prototype.toJSON!=="function"){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null;};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf();};}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4);})+'"':'"'+string+'"';}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==="object"&&typeof value.toJSON==="function"){value=value.toJSON(key);}if(typeof rep==="function"){value=rep.call(holder,key,value);}switch(typeof value){case"string":return quote(value);case"number":return isFinite(value)?String(value):"null";case"boolean":case"null":return String(value);case"object":if(!value){return"null";}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==="[object Array]"){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||"null";}v=partial.length===0?"[]":gap?"[\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"]":"["+partial.join(",")+"]";gap=mind;return v;}if(rep&&typeof rep==="object"){length=rep.length;for(i=0;i<length;i+=1){if(typeof rep[i]==="string"){k=rep[i];v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v);}}}}else{for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v);}}}}v=partial.length===0?"{}":gap?"{\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"}":"{"+partial.join(",")+"}";gap=mind;return v;}}if(typeof JSON.stringify!=="function"){JSON.stringify=function(value,replacer,space){var i;gap="";indent="";if(typeof space==="number"){for(i=0;i<space;i+=1){indent+=" ";}}else{if(typeof space==="string"){indent=space;}}rep=replacer;if(replacer&&typeof replacer!=="function"&&(typeof replacer!=="object"||typeof replacer.length!=="number")){throw new Error("JSON.stringify");}return str("",{"":value});};}if(typeof JSON.parse!=="function"){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==="object"){for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v;}else{delete value[k];}}}}return reviver.call(holder,key,value);}text=String(text);cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4);});}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof reviver==="function"?walk({"":j},""):j;}throw new SyntaxError("JSON.parse");};}}());(function(window,undefined){var ko=window.ko={};ko.exportSymbol=function(publicPath,object){var tokens=publicPath.split(".");var target=window;for(var i=0;i<tokens.length-1;i++){target=target[tokens[i]];}target[tokens[tokens.length-1]]=object;};ko.exportProperty=function(owner,publicName,object){owner[publicName]=object;};ko.utils=new (function(){var stringTrimRegex=/^(\s|\u00A0)+|(\s|\u00A0)+$/g;var isIe6=/MSIE 6/i.test(navigator.userAgent);var isIe7=/MSIE 7/i.test(navigator.userAgent);var knownEvents={},knownEventTypesByEventName={};var keyEventTypeName=/Firefox\/2/i.test(navigator.userAgent)?"KeyboardEvent":"UIEvents";knownEvents[keyEventTypeName]=["keyup","keydown","keypress"];knownEvents.MouseEvents=["click","dblclick","mousedown","mouseup","mousemove","mouseover","mouseout","mouseenter","mouseleave"];for(var eventType in knownEvents){var knownEventsForType=knownEvents[eventType];if(knownEventsForType.length){for(var i=0,j=knownEventsForType.length;i<j;i++){knownEventTypesByEventName[knownEventsForType[i]]=eventType;}}}function isClickOnCheckableElement(element,eventType){if((element.tagName!="INPUT")||!element.type){return false;}if(eventType.toLowerCase()!="click"){return false;}var inputType=element.type.toLowerCase();return(inputType=="checkbox")||(inputType=="radio");}return{fieldsIncludedWithJsonPost:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],arrayForEach:function(array,action){for(var i=0,j=array.length;i<j;i++){action(array[i]);}},arrayIndexOf:function(array,item){if(typeof array.indexOf=="function"){return array.indexOf(item);}for(var i=0,j=array.length;i<j;i++){if(array[i]===item){return i;}}return -1;},arrayFirst:function(array,predicate,predicateOwner){for(var i=0,j=array.length;i<j;i++){if(predicate.call(predicateOwner,array[i])){return array[i];}}return null;},arrayRemoveItem:function(array,itemToRemove){var index=ko.utils.arrayIndexOf(array,itemToRemove);if(index>=0){array.splice(index,1);}},arrayGetDistinctValues:function(array){array=array||[];var result=[];for(var i=0,j=array.length;i<j;i++){if(ko.utils.arrayIndexOf(result,array[i])<0){result.push(array[i]);}}return result;},arrayMap:function(array,mapping){array=array||[];var result=[];for(var i=0,j=array.length;i<j;i++){result.push(mapping(array[i]));}return result;},arrayFilter:function(array,predicate){array=array||[];var result=[];for(var i=0,j=array.length;i<j;i++){if(predicate(array[i])){result.push(array[i]);}}return result;},arrayPushAll:function(array,valuesToPush){for(var i=0,j=valuesToPush.length;i<j;i++){array.push(valuesToPush[i]);}},emptyDomNode:function(domNode){while(domNode.firstChild){ko.removeNode(domNode.firstChild);}},setDomNodeChildren:function(domNode,childNodes){ko.utils.emptyDomNode(domNode);if(childNodes){ko.utils.arrayForEach(childNodes,function(childNode){domNode.appendChild(childNode);});}},replaceDomNodes:function(nodeToReplaceOrNodeArray,newNodesArray){var nodesToReplaceArray=nodeToReplaceOrNodeArray.nodeType?[nodeToReplaceOrNodeArray]:nodeToReplaceOrNodeArray;if(nodesToReplaceArray.length>0){var insertionPoint=nodesToReplaceArray[0];var parent=insertionPoint.parentNode;for(var i=0,j=newNodesArray.length;i<j;i++){parent.insertBefore(newNodesArray[i],insertionPoint);}for(var i=0,j=nodesToReplaceArray.length;i<j;i++){ko.removeNode(nodesToReplaceArray[i]);}}},setOptionNodeSelectionState:function(optionNode,isSelected){if(navigator.userAgent.indexOf("MSIE 6")>=0){optionNode.setAttribute("selected",isSelected);}else{optionNode.selected=isSelected;}},getElementsHavingAttribute:function(rootNode,attributeName){if((!rootNode)||(rootNode.nodeType!=1)){return[];}var results=[];if(rootNode.getAttribute(attributeName)!==null){results.push(rootNode);}var descendants=rootNode.getElementsByTagName("*");for(var i=0,j=descendants.length;i<j;i++){if(descendants[i].getAttribute(attributeName)!==null){results.push(descendants[i]);}}return results;},stringTrim:function(string){return(string||"").replace(stringTrimRegex,"");},stringTokenize:function(string,delimiter){var result=[];var tokens=(string||"").split(delimiter);for(var i=0,j=tokens.length;i<j;i++){var trimmed=ko.utils.stringTrim(tokens[i]);if(trimmed!==""){result.push(trimmed);}}return result;},stringStartsWith:function(string,startsWith){string=string||"";if(startsWith.length>string.length){return false;}return string.substring(0,startsWith.length)===startsWith;},evalWithinScope:function(expression,scope){if(scope===undefined){return(new Function("return "+expression))();}return(new Function("sc","with(sc) { return ("+expression+") }"))(scope);},domNodeIsContainedBy:function(node,containedByNode){if(containedByNode.compareDocumentPosition){return(containedByNode.compareDocumentPosition(node)&16)==16;}while(node!=null){if(node==containedByNode){return true;}node=node.parentNode;}return false;},domNodeIsAttachedToDocument:function(node){return ko.utils.domNodeIsContainedBy(node,document);},registerEventHandler:function(element,eventType,handler){if(typeof jQuery!="undefined"){if(isClickOnCheckableElement(element,eventType)){var originalHandler=handler;handler=function(event,eventData){var jQuerySuppliedCheckedState=this.checked;if(eventData){this.checked=eventData.checkedStateBeforeEvent!==true;}originalHandler.call(this,event);this.checked=jQuerySuppliedCheckedState;};}jQuery(element)["bind"](eventType,handler);}else{if(typeof element.addEventListener=="function"){element.addEventListener(eventType,handler,false);}else{if(typeof element.attachEvent!="undefined"){element.attachEvent("on"+eventType,function(event){handler.call(element,event);});}else{throw new Error("Browser doesn't support addEventListener or attachEvent");}}}},triggerEvent:function(element,eventType){if(!(element&&element.nodeType)){throw new Error("element must be a DOM node when calling triggerEvent");}if(typeof jQuery!="undefined"){var eventData=[];if(isClickOnCheckableElement(element,eventType)){eventData.push({checkedStateBeforeEvent:element.checked});}jQuery(element)["trigger"](eventType,eventData);}else{if(typeof document.createEvent=="function"){if(typeof element.dispatchEvent=="function"){var eventCategory=knownEventTypesByEventName[eventType]||"HTMLEvents";var event=document.createEvent(eventCategory);event.initEvent(eventType,true,true,window,0,0,0,0,0,false,false,false,false,0,element);element.dispatchEvent(event);}else{throw new Error("The supplied element doesn't support dispatchEvent");}}else{if(typeof element.fireEvent!="undefined"){if(eventType=="click"){if((element.tagName=="INPUT")&&((element.type.toLowerCase()=="checkbox")||(element.type.toLowerCase()=="radio"))){element.checked=element.checked!==true;}}element.fireEvent("on"+eventType);}else{throw new Error("Browser doesn't support triggering events");}}}},unwrapObservable:function(value){return ko.isObservable(value)?value():value;},domNodeHasCssClass:function(node,className){var currentClassNames=(node.className||"").split(/\s+/);return ko.utils.arrayIndexOf(currentClassNames,className)>=0;},toggleDomNodeCssClass:function(node,className,shouldHaveClass){var hasClass=ko.utils.domNodeHasCssClass(node,className);if(shouldHaveClass&&!hasClass){node.className=(node.className||"")+" "+className;}else{if(hasClass&&!shouldHaveClass){var currentClassNames=(node.className||"").split(/\s+/);var newClassName="";for(var i=0;i<currentClassNames.length;i++){if(currentClassNames[i]!=className){newClassName+=currentClassNames[i]+" ";}}node.className=ko.utils.stringTrim(newClassName);}}},range:function(min,max){min=ko.utils.unwrapObservable(min);max=ko.utils.unwrapObservable(max);var result=[];for(var i=min;i<=max;i++){result.push(i);}return result;},makeArray:function(arrayLikeObject){var result=[];for(var i=0,j=arrayLikeObject.length;i<j;i++){result.push(arrayLikeObject[i]);}return result;},isIe6:isIe6,isIe7:isIe7,getFormFields:function(form,fieldName){var fields=ko.utils.makeArray(form.getElementsByTagName("INPUT")).concat(ko.utils.makeArray(form.getElementsByTagName("TEXTAREA")));var isMatchingField=(typeof fieldName=="string")?function(field){return field.name===fieldName;}:function(field){return fieldName.test(field.name);};var matches=[];for(var i=fields.length-1;i>=0;i--){if(isMatchingField(fields[i])){matches.push(fields[i]);}}return matches;},parseJson:function(jsonString){if(typeof jsonString=="string"){jsonString=ko.utils.stringTrim(jsonString);if(jsonString){if(window.JSON&&window.JSON.parse){return window.JSON.parse(jsonString);}return(new Function("return "+jsonString))();}}return null;},stringifyJson:function(data){if((typeof JSON=="undefined")||(typeof JSON.stringify=="undefined")){throw new Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js");}return JSON.stringify(ko.utils.unwrapObservable(data));},postJson:function(urlOrForm,data,options){options=options||{};var params=options.params||{};var includeFields=options.includeFields||this.fieldsIncludedWithJsonPost;var url=urlOrForm;if((typeof urlOrForm=="object")&&(urlOrForm.tagName=="FORM")){var originalForm=urlOrForm;url=originalForm.action;for(var i=includeFields.length-1;i>=0;i--){var fields=ko.utils.getFormFields(originalForm,includeFields[i]);for(var j=fields.length-1;j>=0;j--){params[fields[j].name]=fields[j].value;}}}data=ko.utils.unwrapObservable(data);var form=document.createElement("FORM");form.style.display="none";form.action=url;form.method="post";for(var key in data){var input=document.createElement("INPUT");input.name=key;input.value=ko.utils.stringifyJson(ko.utils.unwrapObservable(data[key]));form.appendChild(input);}for(var key in params){var input=document.createElement("INPUT");input.name=key;input.value=params[key];form.appendChild(input);}document.body.appendChild(form);options.submitter?options.submitter(form):form.submit();setTimeout(function(){form.parentNode.removeChild(form);},0);}};})();ko.exportSymbol("ko.utils",ko.utils);ko.exportSymbol("ko.utils.arrayForEach",ko.utils.arrayForEach);ko.exportSymbol("ko.utils.arrayFirst",ko.utils.arrayFirst);ko.exportSymbol("ko.utils.arrayFilter",ko.utils.arrayFilter);ko.exportSymbol("ko.utils.arrayGetDistinctValues",ko.utils.arrayGetDistinctValues);ko.exportSymbol("ko.utils.arrayIndexOf",ko.utils.arrayIndexOf);ko.exportSymbol("ko.utils.arrayMap",ko.utils.arrayMap);ko.exportSymbol("ko.utils.arrayPushAll",ko.utils.arrayPushAll);ko.exportSymbol("ko.utils.arrayRemoveItem",ko.utils.arrayRemoveItem);ko.exportSymbol("ko.utils.fieldsIncludedWithJsonPost",ko.utils.fieldsIncludedWithJsonPost);ko.exportSymbol("ko.utils.getElementsHavingAttribute",ko.utils.getElementsHavingAttribute);ko.exportSymbol("ko.utils.getFormFields",ko.utils.getFormFields);ko.exportSymbol("ko.utils.postJson",ko.utils.postJson);ko.exportSymbol("ko.utils.parseJson",ko.utils.parseJson);ko.exportSymbol("ko.utils.registerEventHandler",ko.utils.registerEventHandler);ko.exportSymbol("ko.utils.stringifyJson",ko.utils.stringifyJson);ko.exportSymbol("ko.utils.range",ko.utils.range);ko.exportSymbol("ko.utils.toggleDomNodeCssClass",ko.utils.toggleDomNodeCssClass);ko.exportSymbol("ko.utils.triggerEvent",ko.utils.triggerEvent);ko.exportSymbol("ko.utils.unwrapObservable",ko.utils.unwrapObservable);if(!Function.prototype.bind){Function.prototype.bind=function(object){var originalFunction=this,args=Array.prototype.slice.call(arguments),object=args.shift();return function(){return originalFunction.apply(object,args.concat(Array.prototype.slice.call(arguments)));};};}ko.utils.domData=new (function(){var uniqueId=0;var dataStoreKeyExpandoPropertyName="__ko__"+(new Date).getTime();var dataStore={};return{get:function(node,key){var allDataForNode=ko.utils.domData.getAll(node,false);return allDataForNode===undefined?undefined:allDataForNode[key];},set:function(node,key,value){if(value===undefined){if(ko.utils.domData.getAll(node,false)===undefined){return;}}var allDataForNode=ko.utils.domData.getAll(node,true);allDataForNode[key]=value;},getAll:function(node,createIfNotFound){var dataStoreKey=node[dataStoreKeyExpandoPropertyName];if(!dataStoreKey){if(!createIfNotFound){return undefined;}dataStoreKey=node[dataStoreKeyExpandoPropertyName]="ko"+uniqueId++;dataStore[dataStoreKey]={};}return dataStore[dataStoreKey];},clear:function(node){var dataStoreKey=node[dataStoreKeyExpandoPropertyName];if(dataStoreKey){delete dataStore[dataStoreKey];node[dataStoreKeyExpandoPropertyName]=null;}}};})();ko.utils.domNodeDisposal=new (function(){var domDataKey="__ko_domNodeDisposal__"+(new Date).getTime();function getDisposeCallbacksCollection(node,createIfNotFound){var allDisposeCallbacks=ko.utils.domData.get(node,domDataKey);if((allDisposeCallbacks===undefined)&&createIfNotFound){allDisposeCallbacks=[];ko.utils.domData.set(node,domDataKey,allDisposeCallbacks);}return allDisposeCallbacks;}function destroyCallbacksCollection(node){ko.utils.domData.set(node,domDataKey,undefined);}function cleanSingleNode(node){var callbacks=getDisposeCallbacksCollection(node,false);if(callbacks){callbacks=callbacks.slice(0);for(var i=0;i<callbacks.length;i++){callbacks[i](node);}}ko.utils.domData.clear(node);if((typeof jQuery=="function")&&(typeof jQuery.cleanData=="function")){jQuery.cleanData([node]);}}return{addDisposeCallback:function(node,callback){if(typeof callback!="function"){throw new Error("Callback must be a function");}getDisposeCallbacksCollection(node,true).push(callback);},removeDisposeCallback:function(node,callback){var callbacksCollection=getDisposeCallbacksCollection(node,false);if(callbacksCollection){ko.utils.arrayRemoveItem(callbacksCollection,callback);if(callbacksCollection.length==0){destroyCallbacksCollection(node);}}},cleanNode:function(node){if((node.nodeType!=1)&&(node.nodeType!=9)){return;}cleanSingleNode(node);var descendants=[];ko.utils.arrayPushAll(descendants,node.getElementsByTagName("*"));for(var i=0,j=descendants.length;i<j;i++){cleanSingleNode(descendants[i]);}},removeNode:function(node){ko.cleanNode(node);if(node.parentNode){node.parentNode.removeChild(node);}}};})();ko.cleanNode=ko.utils.domNodeDisposal.cleanNode;ko.removeNode=ko.utils.domNodeDisposal.removeNode;ko.exportSymbol("ko.cleanNode",ko.cleanNode);ko.exportSymbol("ko.removeNode",ko.removeNode);ko.exportSymbol("ko.utils.domNodeDisposal",ko.utils.domNodeDisposal);ko.exportSymbol("ko.utils.domNodeDisposal.addDisposeCallback",ko.utils.domNodeDisposal.addDisposeCallback);ko.exportSymbol("ko.utils.domNodeDisposal.removeDisposeCallback",ko.utils.domNodeDisposal.removeDisposeCallback);(function(){function simpleHtmlParse(html){var tags=ko.utils.stringTrim(html).toLowerCase(),div=document.createElement("div");var wrap=tags.match(/^<(thead|tbody|tfoot)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||[0,"",""];div.innerHTML=wrap[1]+html+wrap[2];while(wrap[0]--){div=div.lastChild;}return ko.utils.makeArray(div.childNodes);}ko.utils.parseHtmlFragment=function(html){return typeof jQuery!="undefined"?jQuery.clean([html]):simpleHtmlParse(html);};ko.utils.setHtml=function(node,html){ko.utils.emptyDomNode(node);if((html!==null)&&(html!==undefined)){if(typeof html!="string"){html=html.toString();}if(typeof jQuery!="undefined"){jQuery(node)["html"](html);}else{var parsedNodes=ko.utils.parseHtmlFragment(html);for(var i=0;i<parsedNodes.length;i++){node.appendChild(parsedNodes[i]);}}}};})();ko.memoization=(function(){var memos={};function randomMax8HexChars(){return(((1+Math.random())*4294967296)|0).toString(16).substring(1);}function generateRandomId(){return randomMax8HexChars()+randomMax8HexChars();}function findMemoNodes(rootNode,appendToArray){if(!rootNode){return;}if(rootNode.nodeType==8){var memoId=ko.memoization.parseMemoText(rootNode.nodeValue);if(memoId!=null){appendToArray.push({domNode:rootNode,memoId:memoId});}}else{if(rootNode.nodeType==1){for(var i=0,childNodes=rootNode.childNodes,j=childNodes.length;i<j;i++){findMemoNodes(childNodes[i],appendToArray);}}}}return{memoize:function(callback){if(typeof callback!="function"){throw new Error("You can only pass a function to ko.memoization.memoize()");}var memoId=generateRandomId();memos[memoId]=callback;return"<!--[ko_memo:"+memoId+"]-->";},unmemoize:function(memoId,callbackParams){var callback=memos[memoId];if(callback===undefined){throw new Error("Couldn't find any memo with ID "+memoId+". Perhaps it's already been unmemoized.");}try{callback.apply(null,callbackParams||[]);return true;}finally{delete memos[memoId];}},unmemoizeDomNodeAndDescendants:function(domNode,extraCallbackParamsArray){var memos=[];findMemoNodes(domNode,memos);for(var i=0,j=memos.length;i<j;i++){var node=memos[i].domNode;var combinedParams=[node];if(extraCallbackParamsArray){ko.utils.arrayPushAll(combinedParams,extraCallbackParamsArray);}ko.memoization.unmemoize(memos[i].memoId,combinedParams);node.nodeValue="";if(node.parentNode){node.parentNode.removeChild(node);}}},parseMemoText:function(memoText){var match=memoText.match(/^\[ko_memo\:(.*?)\]$/);return match?match[1]:null;}};})();ko.exportSymbol("ko.memoization",ko.memoization);ko.exportSymbol("ko.memoization.memoize",ko.memoization.memoize);ko.exportSymbol("ko.memoization.unmemoize",ko.memoization.unmemoize);ko.exportSymbol("ko.memoization.parseMemoText",ko.memoization.parseMemoText);ko.exportSymbol("ko.memoization.unmemoizeDomNodeAndDescendants",ko.memoization.unmemoizeDomNodeAndDescendants);ko.subscription=function(callback,disposeCallback){this.callback=callback;this.dispose=function(){this.isDisposed=true;disposeCallback();}["bind"](this);ko.exportProperty(this,"dispose",this.dispose);};ko.subscribable=function(){var _subscriptions=[];this.subscribe=function(callback,callbackTarget){var boundCallback=callbackTarget?callback.bind(callbackTarget):callback;var subscription=new ko.subscription(boundCallback,function(){ko.utils.arrayRemoveItem(_subscriptions,subscription);});_subscriptions.push(subscription);return subscription;};this.notifySubscribers=function(valueToNotify){ko.utils.arrayForEach(_subscriptions.slice(0),function(subscription){if(subscription&&(subscription.isDisposed!==true)){subscription.callback(valueToNotify);}});};this.getSubscriptionsCount=function(){return _subscriptions.length;};ko.exportProperty(this,"subscribe",this.subscribe);ko.exportProperty(this,"notifySubscribers",this.notifySubscribers);ko.exportProperty(this,"getSubscriptionsCount",this.getSubscriptionsCount);};ko.isSubscribable=function(instance){return typeof instance.subscribe=="function"&&typeof instance.notifySubscribers=="function";};ko.exportSymbol("ko.subscribable",ko.subscribable);ko.exportSymbol("ko.isSubscribable",ko.isSubscribable);ko.dependencyDetection=(function(){var _detectedDependencies=[];return{begin:function(){_detectedDependencies.push([]);},end:function(){return _detectedDependencies.pop();},registerDependency:function(subscribable){if(!ko.isSubscribable(subscribable)){throw"Only subscribable things can act as dependencies";}if(_detectedDependencies.length>0){_detectedDependencies[_detectedDependencies.length-1].push(subscribable);}}};})();var primitiveTypes={"undefined":true,"boolean":true,number:true,string:true};function valuesArePrimitiveAndEqual(a,b){var oldValueIsPrimitive=(a===null)||(typeof(a) in primitiveTypes);return oldValueIsPrimitive?(a===b):false;}ko.observable=function(initialValue){var _latestValue=initialValue;function observable(){if(arguments.length>0){if((!observable.equalityComparer)||!observable.equalityComparer(_latestValue,arguments[0])){_latestValue=arguments[0];observable.notifySubscribers(_latestValue);}return this;}else{ko.dependencyDetection.registerDependency(observable);return _latestValue;}}observable.__ko_proto__=ko.observable;observable.valueHasMutated=function(){observable.notifySubscribers(_latestValue);};observable.equalityComparer=valuesArePrimitiveAndEqual;ko.subscribable.call(observable);ko.exportProperty(observable,"valueHasMutated",observable.valueHasMutated);return observable;};ko.isObservable=function(instance){if((instance===null)||(instance===undefined)||(instance.__ko_proto__===undefined)){return false;}if(instance.__ko_proto__===ko.observable){return true;}return ko.isObservable(instance.__ko_proto__);};ko.isWriteableObservable=function(instance){if((typeof instance=="function")&&instance.__ko_proto__===ko.observable){return true;}if((typeof instance=="function")&&(instance.__ko_proto__===ko.dependentObservable)&&(instance.hasWriteFunction)){return true;}return false;};ko.exportSymbol("ko.observable",ko.observable);ko.exportSymbol("ko.isObservable",ko.isObservable);ko.exportSymbol("ko.isWriteableObservable",ko.isWriteableObservable);ko.observableArray=function(initialValues){if(arguments.length==0){initialValues=[];}if((initialValues!==null)&&(initialValues!==undefined)&&!("length" in initialValues)){throw new Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");}var result=new ko.observable(initialValues);ko.utils.arrayForEach(["pop","push","reverse","shift","sort","splice","unshift"],function(methodName){result[methodName]=function(){var underlyingArray=result();var methodCallResult=underlyingArray[methodName].apply(underlyingArray,arguments);result.valueHasMutated();return methodCallResult;};});ko.utils.arrayForEach(["slice"],function(methodName){result[methodName]=function(){var underlyingArray=result();return underlyingArray[methodName].apply(underlyingArray,arguments);};});result.remove=function(valueOrPredicate){var underlyingArray=result();var remainingValues=[];var removedValues=[];var predicate=typeof valueOrPredicate=="function"?valueOrPredicate:function(value){return value===valueOrPredicate;};for(var i=0,j=underlyingArray.length;i<j;i++){var value=underlyingArray[i];if(!predicate(value)){remainingValues.push(value);}else{removedValues.push(value);}}result(remainingValues);return removedValues;};result.removeAll=function(arrayOfValues){if(arrayOfValues===undefined){var allValues=result();result([]);return allValues;}if(!arrayOfValues){return[];}return result.remove(function(value){return ko.utils.arrayIndexOf(arrayOfValues,value)>=0;});};result.destroy=function(valueOrPredicate){var underlyingArray=result();var predicate=typeof valueOrPredicate=="function"?valueOrPredicate:function(value){return value===valueOrPredicate;};for(var i=underlyingArray.length-1;i>=0;i--){var value=underlyingArray[i];if(predicate(value)){underlyingArray[i]["_destroy"]=true;}}result.valueHasMutated();};result.destroyAll=function(arrayOfValues){if(arrayOfValues===undefined){return result.destroy(function(){return true;});}if(!arrayOfValues){return[];}return result.destroy(function(value){return ko.utils.arrayIndexOf(arrayOfValues,value)>=0;});};result.indexOf=function(item){var underlyingArray=result();return ko.utils.arrayIndexOf(underlyingArray,item);};result.replace=function(oldItem,newItem){var index=result.indexOf(oldItem);if(index>=0){result()[index]=newItem;result.valueHasMutated();}};ko.exportProperty(result,"remove",result.remove);ko.exportProperty(result,"removeAll",result.removeAll);ko.exportProperty(result,"destroy",result.destroy);ko.exportProperty(result,"destroyAll",result.destroyAll);ko.exportProperty(result,"indexOf",result.indexOf);return result;};ko.exportSymbol("ko.observableArray",ko.observableArray);ko.dependentObservable=function(evaluatorFunctionOrOptions,evaluatorFunctionTarget,options){var _latestValue,_hasBeenEvaluated=false;if(evaluatorFunctionOrOptions&&typeof evaluatorFunctionOrOptions=="object"){options=evaluatorFunctionOrOptions;}else{options=options||{};options.read=evaluatorFunctionOrOptions||options.read;options.owner=evaluatorFunctionTarget||options.owner;}if(typeof options.read!="function"){throw"Pass a function that returns the value of the dependentObservable";}var disposeWhenNodeIsRemoved=(typeof options.disposeWhenNodeIsRemoved=="object")?options.disposeWhenNodeIsRemoved:null;var disposeWhenNodeIsRemovedCallback=null;if(disposeWhenNodeIsRemoved){disposeWhenNodeIsRemovedCallback=function(){dependentObservable.dispose();};ko.utils.domNodeDisposal.addDisposeCallback(disposeWhenNodeIsRemoved,disposeWhenNodeIsRemovedCallback);var existingDisposeWhenFunction=options.disposeWhen;options.disposeWhen=function(){return(!ko.utils.domNodeIsAttachedToDocument(disposeWhenNodeIsRemoved))||((typeof existingDisposeWhenFunction=="function")&&existingDisposeWhenFunction());};}var _subscriptionsToDependencies=[];function disposeAllSubscriptionsToDependencies(){ko.utils.arrayForEach(_subscriptionsToDependencies,function(subscription){subscription.dispose();});_subscriptionsToDependencies=[];}function replaceSubscriptionsToDependencies(newDependencies){disposeAllSubscriptionsToDependencies();ko.utils.arrayForEach(newDependencies,function(dependency){_subscriptionsToDependencies.push(dependency.subscribe(evaluate));});}function evaluate(){if((_hasBeenEvaluated)&&typeof options.disposeWhen=="function"){if(options.disposeWhen()){dependentObservable.dispose();return;}}try{ko.dependencyDetection.begin();_latestValue=options.owner?options.read.call(options.owner):options.read();}finally{var distinctDependencies=ko.utils.arrayGetDistinctValues(ko.dependencyDetection.end());replaceSubscriptionsToDependencies(distinctDependencies);}dependentObservable.notifySubscribers(_latestValue);_hasBeenEvaluated=true;}function dependentObservable(){if(arguments.length>0){if(typeof options.write==="function"){var valueToWrite=arguments[0];options.owner?options.write.call(options.owner,valueToWrite):options.write(valueToWrite);}else{throw"Cannot write a value to a dependentObservable unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.";}}else{if(!_hasBeenEvaluated){evaluate();}ko.dependencyDetection.registerDependency(dependentObservable);return _latestValue;}}dependentObservable.__ko_proto__=ko.dependentObservable;dependentObservable.getDependenciesCount=function(){return _subscriptionsToDependencies.length;};dependentObservable.hasWriteFunction=typeof options.write==="function";dependentObservable.dispose=function(){if(disposeWhenNodeIsRemoved){ko.utils.domNodeDisposal.removeDisposeCallback(disposeWhenNodeIsRemoved,disposeWhenNodeIsRemovedCallback);}disposeAllSubscriptionsToDependencies();};ko.subscribable.call(dependentObservable);if(options.deferEvaluation!==true){evaluate();}ko.exportProperty(dependentObservable,"dispose",dependentObservable.dispose);ko.exportProperty(dependentObservable,"getDependenciesCount",dependentObservable.getDependenciesCount);return dependentObservable;};ko.dependentObservable.__ko_proto__=ko.observable;ko.exportSymbol("ko.dependentObservable",ko.dependentObservable);(function(){var maxNestedObservableDepth=10;ko.toJS=function(rootObject){if(arguments.length==0){throw new Error("When calling ko.toJS, pass the object you want to convert.");}return mapJsObjectGraph(rootObject,function(valueToMap){for(var i=0;ko.isObservable(valueToMap)&&(i<maxNestedObservableDepth);i++){valueToMap=valueToMap();}return valueToMap;});};ko.toJSON=function(rootObject){var plainJavaScriptObject=ko.toJS(rootObject);return ko.utils.stringifyJson(plainJavaScriptObject);};function mapJsObjectGraph(rootObject,mapInputCallback,visitedObjects){visitedObjects=visitedObjects||new objectLookup();rootObject=mapInputCallback(rootObject);var canHaveProperties=(typeof rootObject=="object")&&(rootObject!==null)&&(rootObject!==undefined);if(!canHaveProperties){return rootObject;}var outputProperties=rootObject instanceof Array?[]:{};visitedObjects.save(rootObject,outputProperties);visitPropertiesOrArrayEntries(rootObject,function(indexer){var propertyValue=mapInputCallback(rootObject[indexer]);switch(typeof propertyValue){case"boolean":case"number":case"string":case"function":outputProperties[indexer]=propertyValue;break;case"object":case"undefined":var previouslyMappedValue=visitedObjects.get(propertyValue);outputProperties[indexer]=(previouslyMappedValue!==undefined)?previouslyMappedValue:mapJsObjectGraph(propertyValue,mapInputCallback,visitedObjects);break;}});return outputProperties;}function visitPropertiesOrArrayEntries(rootObject,visitorCallback){if(rootObject instanceof Array){for(var i=0;i<rootObject.length;i++){visitorCallback(i);}}else{for(var propertyName in rootObject){visitorCallback(propertyName);}}}function objectLookup(){var keys=[];var values=[];this.save=function(key,value){var existingIndex=ko.utils.arrayIndexOf(keys,key);if(existingIndex>=0){values[existingIndex]=value;}else{keys.push(key);values.push(value);}};this.get=function(key){var existingIndex=ko.utils.arrayIndexOf(keys,key);return(existingIndex>=0)?values[existingIndex]:undefined;};}})();ko.exportSymbol("ko.toJS",ko.toJS);ko.exportSymbol("ko.toJSON",ko.toJSON);(function(){ko.selectExtensions={readValue:function(element){if(element.tagName=="OPTION"){if(element.__ko__hasDomDataOptionValue__===true){return ko.utils.domData.get(element,ko.bindingHandlers.options.optionValueDomDataKey);}return element.getAttribute("value");}else{if(element.tagName=="SELECT"){return element.selectedIndex>=0?ko.selectExtensions.readValue(element.options[element.selectedIndex]):undefined;}else{return element.value;}}},writeValue:function(element,value){if(element.tagName=="OPTION"){switch(typeof value){case"string":case"number":ko.utils.domData.set(element,ko.bindingHandlers.options.optionValueDomDataKey,undefined);if("__ko__hasDomDataOptionValue__" in element){delete element.__ko__hasDomDataOptionValue__;}element.value=value;break;default:ko.utils.domData.set(element,ko.bindingHandlers.options.optionValueDomDataKey,value);element.__ko__hasDomDataOptionValue__=true;element.value="";break;}}else{if(element.tagName=="SELECT"){for(var i=element.options.length-1;i>=0;i--){if(ko.selectExtensions.readValue(element.options[i])==value){element.selectedIndex=i;break;}}}else{if((value===null)||(value===undefined)){value="";}element.value=value;}}}};})();ko.exportSymbol("ko.selectExtensions",ko.selectExtensions);ko.exportSymbol("ko.selectExtensions.readValue",ko.selectExtensions.readValue);ko.exportSymbol("ko.selectExtensions.writeValue",ko.selectExtensions.writeValue);ko.jsonExpressionRewriting=(function(){var restoreCapturedTokensRegex=/\[ko_token_(\d+)\]/g;var javaScriptAssignmentTarget=/^[\_$a-z][\_$a-z0-9]*(\[.*?\])*(\.[\_$a-z][\_$a-z0-9]*(\[.*?\])*)*$/i;var javaScriptReservedWords=["true","false"];function restoreTokens(string,tokens){return string.replace(restoreCapturedTokensRegex,function(match,tokenIndex){return tokens[tokenIndex];});}function isWriteableValue(expression){if(ko.utils.arrayIndexOf(javaScriptReservedWords,ko.utils.stringTrim(expression).toLowerCase())>=0){return false;}return expression.match(javaScriptAssignmentTarget)!==null;}return{parseJson:function(jsonString){jsonString=ko.utils.stringTrim(jsonString);if(jsonString.length<3){return{};}var tokens=[];var tokenStart=null,tokenEndChar;for(var position=jsonString.charAt(0)=="{"?1:0;position<jsonString.length;position++){var c=jsonString.charAt(position);if(tokenStart===null){switch(c){case'"':case"'":case"/":tokenStart=position;tokenEndChar=c;break;case"{":tokenStart=position;tokenEndChar="}";break;case"[":tokenStart=position;tokenEndChar="]";break;}}else{if(c==tokenEndChar){var token=jsonString.substring(tokenStart,position+1);tokens.push(token);var replacement="[ko_token_"+(tokens.length-1)+"]";jsonString=jsonString.substring(0,tokenStart)+replacement+jsonString.substring(position+1);position-=(token.length-replacement.length);tokenStart=null;}}}var result={};var keyValuePairs=jsonString.split(",");for(var i=0,j=keyValuePairs.length;i<j;i++){var pair=keyValuePairs[i];var colonPos=pair.indexOf(":");if((colonPos>0)&&(colonPos<pair.length-1)){var key=ko.utils.stringTrim(pair.substring(0,colonPos));var value=ko.utils.stringTrim(pair.substring(colonPos+1));if(key.charAt(0)=="{"){key=key.substring(1);}if(value.charAt(value.length-1)=="}"){value=value.substring(0,value.length-1);}key=ko.utils.stringTrim(restoreTokens(key,tokens));value=ko.utils.stringTrim(restoreTokens(value,tokens));result[key]=value;}}return result;},insertPropertyAccessorsIntoJson:function(jsonString){var parsed=ko.jsonExpressionRewriting.parseJson(jsonString);var propertyAccessorTokens=[];for(var key in parsed){var value=parsed[key];if(isWriteableValue(value)){if(propertyAccessorTokens.length>0){propertyAccessorTokens.push(", ");}propertyAccessorTokens.push(key+" : function(__ko_value) { "+value+" = __ko_value; }");}}if(propertyAccessorTokens.length>0){var allPropertyAccessors=propertyAccessorTokens.join("");jsonString=jsonString+", '_ko_property_writers' : { "+allPropertyAccessors+" } ";}return jsonString;}};})();ko.exportSymbol("ko.jsonExpressionRewriting",ko.jsonExpressionRewriting);ko.exportSymbol("ko.jsonExpressionRewriting.parseJson",ko.jsonExpressionRewriting.parseJson);ko.exportSymbol("ko.jsonExpressionRewriting.insertPropertyAccessorsIntoJson",ko.jsonExpressionRewriting.insertPropertyAccessorsIntoJson);(function(){var defaultBindingAttributeName="data-bind";ko.bindingHandlers={};function parseBindingAttribute(attributeText,viewModel){try{var json=" { "+ko.jsonExpressionRewriting.insertPropertyAccessorsIntoJson(attributeText)+" } ";return ko.utils.evalWithinScope(json,viewModel===null?window:viewModel);}catch(ex){throw new Error("Unable to parse binding attribute.\nMessage: "+ex+";\nAttribute value: "+attributeText);}}function invokeBindingHandler(handler,element,dataValue,allBindings,viewModel){handler(element,dataValue,allBindings,viewModel);}ko.applyBindingsToNode=function(node,bindings,viewModel,bindingAttributeName){var isFirstEvaluation=true;bindingAttributeName=bindingAttributeName||defaultBindingAttributeName;var parsedBindings;function makeValueAccessor(bindingKey){return function(){return parsedBindings[bindingKey];};}function parsedBindingsAccessor(){return parsedBindings;}new ko.dependentObservable(function(){var evaluatedBindings=(typeof bindings=="function")?bindings():bindings;parsedBindings=evaluatedBindings||parseBindingAttribute(node.getAttribute(bindingAttributeName),viewModel);if(isFirstEvaluation){for(var bindingKey in parsedBindings){if(ko.bindingHandlers[bindingKey]&&typeof ko.bindingHandlers[bindingKey]["init"]=="function"){invokeBindingHandler(ko.bindingHandlers[bindingKey]["init"],node,makeValueAccessor(bindingKey),parsedBindingsAccessor,viewModel);}}}for(var bindingKey in parsedBindings){if(ko.bindingHandlers[bindingKey]&&typeof ko.bindingHandlers[bindingKey]["update"]=="function"){invokeBindingHandler(ko.bindingHandlers[bindingKey]["update"],node,makeValueAccessor(bindingKey),parsedBindingsAccessor,viewModel);}}},null,{disposeWhenNodeIsRemoved:node});isFirstEvaluation=false;};ko.applyBindings=function(viewModel,rootNode){if(rootNode&&(rootNode.nodeType==undefined)){throw new Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node (note: this is a breaking change since KO version 1.05)");}rootNode=rootNode||window.document.body;var elemsWithBindingAttribute=ko.utils.getElementsHavingAttribute(rootNode,defaultBindingAttributeName);ko.utils.arrayForEach(elemsWithBindingAttribute,function(element){ko.applyBindingsToNode(element,null,viewModel);});};ko.exportSymbol("ko.bindingHandlers",ko.bindingHandlers);ko.exportSymbol("ko.applyBindings",ko.applyBindings);ko.exportSymbol("ko.applyBindingsToNode",ko.applyBindingsToNode);})();var eventHandlersWithShortcuts=["click"];ko.utils.arrayForEach(eventHandlersWithShortcuts,function(eventName){ko.bindingHandlers[eventName]={init:function(element,valueAccessor,allBindingsAccessor,viewModel){var newValueAccessor=function(){var result={};result[eventName]=valueAccessor();return result;};return ko.bindingHandlers.event["init"].call(this,element,newValueAccessor,allBindingsAccessor,viewModel);}};});ko.bindingHandlers.event={init:function(element,valueAccessor,allBindingsAccessor,viewModel){var eventsToHandle=valueAccessor()||{};for(var eventNameOutsideClosure in eventsToHandle){(function(){var eventName=eventNameOutsideClosure;if(typeof eventName=="string"){ko.utils.registerEventHandler(element,eventName,function(event){var handlerReturnValue;var handlerFunction=valueAccessor()[eventName];if(!handlerFunction){return;}var allBindings=allBindingsAccessor();try{handlerReturnValue=handlerFunction.apply(viewModel,arguments);}finally{if(handlerReturnValue!==true){if(event.preventDefault){event.preventDefault();}else{event.returnValue=false;}}}var bubble=allBindings[eventName+"Bubble"]!==false;if(!bubble){event.cancelBubble=true;if(event.stopPropagation){event.stopPropagation();}}});}})();}}};ko.bindingHandlers.submit={init:function(element,valueAccessor,allBindingsAccessor,viewModel){if(typeof valueAccessor()!="function"){throw new Error("The value for a submit binding must be a function to invoke on submit");}ko.utils.registerEventHandler(element,"submit",function(event){var handlerReturnValue;var value=valueAccessor();try{handlerReturnValue=value.call(viewModel,element);}finally{if(handlerReturnValue!==true){if(event.preventDefault){event.preventDefault();}else{event.returnValue=false;}}}});}};ko.bindingHandlers.visible={update:function(element,valueAccessor){var value=ko.utils.unwrapObservable(valueAccessor());var isCurrentlyVisible=!(element.style.display=="none");if(value&&!isCurrentlyVisible){element.style.display="";}else{if((!value)&&isCurrentlyVisible){element.style.display="none";}}}};ko.bindingHandlers.enable={update:function(element,valueAccessor){var value=ko.utils.unwrapObservable(valueAccessor());if(value&&element.disabled){element.removeAttribute("disabled");}else{if((!value)&&(!element.disabled)){element.disabled=true;}}}};ko.bindingHandlers.disable={update:function(element,valueAccessor){ko.bindingHandlers.enable["update"](element,function(){return !ko.utils.unwrapObservable(valueAccessor());});}};ko.bindingHandlers.value={init:function(element,valueAccessor,allBindingsAccessor){var eventsToCatch=["change"];var requestedEventsToCatch=allBindingsAccessor()["valueUpdate"];if(requestedEventsToCatch){if(typeof requestedEventsToCatch=="string"){requestedEventsToCatch=[requestedEventsToCatch];}ko.utils.arrayPushAll(eventsToCatch,requestedEventsToCatch);eventsToCatch=ko.utils.arrayGetDistinctValues(eventsToCatch);}ko.utils.arrayForEach(eventsToCatch,function(eventName){var handleEventAsynchronously=false;if(ko.utils.stringStartsWith(eventName,"after")){handleEventAsynchronously=true;eventName=eventName.substring("after".length);}var runEventHandler=handleEventAsynchronously?function(handler){setTimeout(handler,0);}:function(handler){handler();};ko.utils.registerEventHandler(element,eventName,function(){runEventHandler(function(){var modelValue=valueAccessor();var elementValue=ko.selectExtensions.readValue(element);if(ko.isWriteableObservable(modelValue)){modelValue(elementValue);}else{var allBindings=allBindingsAccessor();if(allBindings._ko_property_writers&&allBindings._ko_property_writers["value"]){allBindings._ko_property_writers["value"](elementValue);}}});});});},update:function(element,valueAccessor){var newValue=ko.utils.unwrapObservable(valueAccessor());var elementValue=ko.selectExtensions.readValue(element);var valueHasChanged=(newValue!=elementValue);if((newValue===0)&&(elementValue!==0)&&(elementValue!=="0")){valueHasChanged=true;}if(valueHasChanged){var applyValueAction=function(){ko.selectExtensions.writeValue(element,newValue);};applyValueAction();var alsoApplyAsynchronously=element.tagName=="SELECT";if(alsoApplyAsynchronously){setTimeout(applyValueAction,0);}}if(element.tagName=="SELECT"){elementValue=ko.selectExtensions.readValue(element);if(elementValue!==newValue){ko.utils.triggerEvent(element,"change");}}}};ko.bindingHandlers.options={update:function(element,valueAccessor,allBindingsAccessor){if(element.tagName!="SELECT"){throw new Error("options binding applies only to SELECT elements");}var previousSelectedValues=ko.utils.arrayMap(ko.utils.arrayFilter(element.childNodes,function(node){return node.tagName&&node.tagName=="OPTION"&&node.selected;}),function(node){return ko.selectExtensions.readValue(node)||node.innerText||node.textContent;});var previousScrollTop=element.scrollTop;var value=ko.utils.unwrapObservable(valueAccessor());var selectedValue=element.value;ko.utils.emptyDomNode(element);if(value){var allBindings=allBindingsAccessor();if(typeof value.length!="number"){value=[value];}if(allBindings.optionsCaption){var option=document.createElement("OPTION");option.innerHTML=allBindings.optionsCaption;ko.selectExtensions.writeValue(option,undefined);element.appendChild(option);}for(var i=0,j=value.length;i<j;i++){var option=document.createElement("OPTION");var optionValue=typeof allBindings.optionsValue=="string"?value[i][allBindings.optionsValue]:value[i];optionValue=ko.utils.unwrapObservable(optionValue);ko.selectExtensions.writeValue(option,optionValue);var optionsTextValue=allBindings.optionsText;if(typeof optionsTextValue=="function"){optionText=optionsTextValue(value[i]);}else{if(typeof optionsTextValue=="string"){optionText=value[i][optionsTextValue];}else{optionText=optionValue;}}if((optionText===null)||(optionText===undefined)){optionText="";}optionText=ko.utils.unwrapObservable(optionText).toString();typeof option.innerText=="string"?option.innerText=optionText:option.textContent=optionText;element.appendChild(option);}var newOptions=element.getElementsByTagName("OPTION");var countSelectionsRetained=0;for(var i=0,j=newOptions.length;i<j;i++){if(ko.utils.arrayIndexOf(previousSelectedValues,ko.selectExtensions.readValue(newOptions[i]))>=0){ko.utils.setOptionNodeSelectionState(newOptions[i],true);countSelectionsRetained++;}}if(previousScrollTop){element.scrollTop=previousScrollTop;}}}};ko.bindingHandlers.options.optionValueDomDataKey="__ko.bindingHandlers.options.optionValueDomData__";ko.bindingHandlers.selectedOptions={getSelectedValuesFromSelectNode:function(selectNode){var result=[];var nodes=selectNode.childNodes;for(var i=0,j=nodes.length;i<j;i++){var node=nodes[i];if((node.tagName=="OPTION")&&node.selected){result.push(ko.selectExtensions.readValue(node));}}return result;},init:function(element,valueAccessor,allBindingsAccessor){ko.utils.registerEventHandler(element,"change",function(){var value=valueAccessor();if(ko.isWriteableObservable(value)){value(ko.bindingHandlers.selectedOptions.getSelectedValuesFromSelectNode(this));}else{var allBindings=allBindingsAccessor();if(allBindings._ko_property_writers&&allBindings._ko_property_writers["value"]){allBindings._ko_property_writers["value"](ko.bindingHandlers.selectedOptions.getSelectedValuesFromSelectNode(this));}}});},update:function(element,valueAccessor){if(element.tagName!="SELECT"){throw new Error("values binding applies only to SELECT elements");}var newValue=ko.utils.unwrapObservable(valueAccessor());if(newValue&&typeof newValue.length=="number"){var nodes=element.childNodes;for(var i=0,j=nodes.length;i<j;i++){var node=nodes[i];if(node.tagName=="OPTION"){ko.utils.setOptionNodeSelectionState(node,ko.utils.arrayIndexOf(newValue,ko.selectExtensions.readValue(node))>=0);}}}}};ko.bindingHandlers.text={update:function(element,valueAccessor){var value=ko.utils.unwrapObservable(valueAccessor());if((value===null)||(value===undefined)){value="";}typeof element.innerText=="string"?element.innerText=value:element.textContent=value;}};ko.bindingHandlers.html={update:function(element,valueAccessor){var value=ko.utils.unwrapObservable(valueAccessor());ko.utils.setHtml(element,value);}};ko.bindingHandlers.css={update:function(element,valueAccessor){var value=ko.utils.unwrapObservable(valueAccessor()||{});for(var className in value){if(typeof className=="string"){var shouldHaveClass=ko.utils.unwrapObservable(value[className]);ko.utils.toggleDomNodeCssClass(element,className,shouldHaveClass);}}}};ko.bindingHandlers.style={update:function(element,valueAccessor){var value=ko.utils.unwrapObservable(valueAccessor()||{});for(var styleName in value){if(typeof styleName=="string"){var styleValue=ko.utils.unwrapObservable(value[styleName]);element.style[styleName]=styleValue||"";}}}};ko.bindingHandlers.uniqueName={init:function(element,valueAccessor){if(valueAccessor()){element.name="ko_unique_"+(++ko.bindingHandlers.uniqueName.currentIndex);if(ko.utils.isIe6){element.mergeAttributes(document.createElement("<input name='"+element.name+"'/>"),false);}}}};ko.bindingHandlers.uniqueName.currentIndex=0;ko.bindingHandlers.checked={init:function(element,valueAccessor,allBindingsAccessor){var updateHandler=function(){var valueToWrite;if(element.type=="checkbox"){valueToWrite=element.checked;}else{if((element.type=="radio")&&(element.checked)){valueToWrite=element.value;}else{return;}}var modelValue=valueAccessor();if((element.type=="checkbox")&&(ko.utils.unwrapObservable(modelValue) instanceof Array)){var existingEntryIndex=ko.utils.arrayIndexOf(ko.utils.unwrapObservable(modelValue),element.value);if(element.checked&&(existingEntryIndex<0)){modelValue.push(element.value);}else{if((!element.checked)&&(existingEntryIndex>=0)){modelValue.splice(existingEntryIndex,1);}}}else{if(ko.isWriteableObservable(modelValue)){if(modelValue()!==valueToWrite){modelValue(valueToWrite);}}else{var allBindings=allBindingsAccessor();if(allBindings._ko_property_writers&&allBindings._ko_property_writers["checked"]){allBindings._ko_property_writers["checked"](valueToWrite);}}}};ko.utils.registerEventHandler(element,"click",updateHandler);if((element.type=="radio")&&!element.name){ko.bindingHandlers.uniqueName["init"](element,function(){return true;});}},update:function(element,valueAccessor){var value=ko.utils.unwrapObservable(valueAccessor());if(element.type=="checkbox"){if(value instanceof Array){element.checked=ko.utils.arrayIndexOf(value,element.value)>=0;}else{element.checked=value;}if(value&&ko.utils.isIe6){element.mergeAttributes(document.createElement("<input type='checkbox' checked='checked' />"),false);}}else{if(element.type=="radio"){element.checked=(element.value==value);if((element.value==value)&&(ko.utils.isIe6||ko.utils.isIe7)){element.mergeAttributes(document.createElement("<input type='radio' checked='checked' />"),false);}}}}};ko.bindingHandlers.attr={update:function(element,valueAccessor,allBindingsAccessor){var value=ko.utils.unwrapObservable(valueAccessor())||{};for(var attrName in value){if(typeof attrName=="string"){var attrValue=ko.utils.unwrapObservable(value[attrName]);if((attrValue===false)||(attrValue===null)||(attrValue===undefined)){element.removeAttribute(attrName);}else{element.setAttribute(attrName,attrValue.toString());}}}}};ko.templateEngine=function(){this["renderTemplate"]=function(templateName,data,options){throw"Override renderTemplate in your ko.templateEngine subclass";},this["isTemplateRewritten"]=function(templateName){throw"Override isTemplateRewritten in your ko.templateEngine subclass";},this["rewriteTemplate"]=function(templateName,rewriterCallback){throw"Override rewriteTemplate in your ko.templateEngine subclass";},this["createJavaScriptEvaluatorBlock"]=function(script){throw"Override createJavaScriptEvaluatorBlock in your ko.templateEngine subclass";};};ko.exportSymbol("ko.templateEngine",ko.templateEngine);ko.templateRewriting=(function(){var memoizeBindingAttributeSyntaxRegex=/(<[a-z]+\d*(\s+(?!data-bind=)[a-z0-9\-]+(=(\"[^\"]*\"|\'[^\']*\'))?)*\s+)data-bind=(["'])([\s\S]*?)\5/gi;return{ensureTemplateIsRewritten:function(template,templateEngine){if(!templateEngine.isTemplateRewritten(template)){templateEngine.rewriteTemplate(template,function(htmlString){return ko.templateRewriting.memoizeBindingAttributeSyntax(htmlString,templateEngine);});}},memoizeBindingAttributeSyntax:function(htmlString,templateEngine){return htmlString.replace(memoizeBindingAttributeSyntaxRegex,function(){var tagToRetain=arguments[1];var dataBindAttributeValue=arguments[6];dataBindAttributeValue=ko.jsonExpressionRewriting.insertPropertyAccessorsIntoJson(dataBindAttributeValue);var applyBindingsToNextSiblingScript="ko.templateRewriting.applyMemoizedBindingsToNextSibling(function() {                     return (function() { return { "+dataBindAttributeValue+" } })()                 })";return templateEngine.createJavaScriptEvaluatorBlock(applyBindingsToNextSiblingScript)+tagToRetain;});},applyMemoizedBindingsToNextSibling:function(bindings){return ko.memoization.memoize(function(domNode,viewModel){if(domNode.nextSibling){ko.applyBindingsToNode(domNode.nextSibling,bindings,viewModel);}});}};})();ko.exportSymbol("ko.templateRewriting",ko.templateRewriting);ko.exportSymbol("ko.templateRewriting.applyMemoizedBindingsToNextSibling",ko.templateRewriting.applyMemoizedBindingsToNextSibling);(function(){var _templateEngine;ko.setTemplateEngine=function(templateEngine){if((templateEngine!=undefined)&&!(templateEngine instanceof ko.templateEngine)){throw"templateEngine must inherit from ko.templateEngine";}_templateEngine=templateEngine;};function getFirstNodeFromPossibleArray(nodeOrNodeArray){return nodeOrNodeArray.nodeType?nodeOrNodeArray:nodeOrNodeArray.length>0?nodeOrNodeArray[0]:null;}function executeTemplate(targetNodeOrNodeArray,renderMode,template,data,options){var dataForTemplate=ko.utils.unwrapObservable(data);options=options||{};var templateEngineToUse=(options.templateEngine||_templateEngine);ko.templateRewriting.ensureTemplateIsRewritten(template,templateEngineToUse);var renderedNodesArray=templateEngineToUse.renderTemplate(template,dataForTemplate,options);if((typeof renderedNodesArray.length!="number")||(renderedNodesArray.length>0&&typeof renderedNodesArray[0].nodeType!="number")){throw"Template engine must return an array of DOM nodes";}if(renderedNodesArray){ko.utils.arrayForEach(renderedNodesArray,function(renderedNode){ko.memoization.unmemoizeDomNodeAndDescendants(renderedNode,[data]);});}switch(renderMode){case"replaceChildren":ko.utils.setDomNodeChildren(targetNodeOrNodeArray,renderedNodesArray);break;case"replaceNode":ko.utils.replaceDomNodes(targetNodeOrNodeArray,renderedNodesArray);break;case"ignoreTargetNode":break;default:throw new Error("Unknown renderMode: "+renderMode);}if(options.afterRender){options.afterRender(renderedNodesArray,data);}return renderedNodesArray;}ko.renderTemplate=function(template,data,options,targetNodeOrNodeArray,renderMode){options=options||{};if((options.templateEngine||_templateEngine)==undefined){throw"Set a template engine before calling renderTemplate";}renderMode=renderMode||"replaceChildren";if(targetNodeOrNodeArray){var firstTargetNode=getFirstNodeFromPossibleArray(targetNodeOrNodeArray);var whenToDispose=function(){return(!firstTargetNode)||!ko.utils.domNodeIsAttachedToDocument(firstTargetNode);};var activelyDisposeWhenNodeIsRemoved=(firstTargetNode&&renderMode=="replaceNode")?firstTargetNode.parentNode:firstTargetNode;return new ko.dependentObservable(function(){var templateName=typeof(template)=="function"?template(data):template;var renderedNodesArray=executeTemplate(targetNodeOrNodeArray,renderMode,templateName,data,options);if(renderMode=="replaceNode"){targetNodeOrNodeArray=renderedNodesArray;firstTargetNode=getFirstNodeFromPossibleArray(targetNodeOrNodeArray);}},null,{disposeWhen:whenToDispose,disposeWhenNodeIsRemoved:activelyDisposeWhenNodeIsRemoved});}else{return ko.memoization.memoize(function(domNode){ko.renderTemplate(template,data,options,domNode,"replaceNode");});}};ko.renderTemplateForEach=function(template,arrayOrObservableArray,options,targetNode){return new ko.dependentObservable(function(){var unwrappedArray=ko.utils.unwrapObservable(arrayOrObservableArray)||[];if(typeof unwrappedArray.length=="undefined"){unwrappedArray=[unwrappedArray];}var filteredArray=ko.utils.arrayFilter(unwrappedArray,function(item){return options.includeDestroyed||!item._destroy;});ko.utils.setDomNodeChildrenFromArrayMapping(targetNode,filteredArray,function(arrayValue){var templateName=typeof(template)=="function"?template(arrayValue):template;return executeTemplate(null,"ignoreTargetNode",templateName,arrayValue,options);},options);},null,{disposeWhenNodeIsRemoved:targetNode});};var templateSubscriptionDomDataKey="__ko__templateSubscriptionDomDataKey__";function disposeOldSubscriptionAndStoreNewOne(element,newSubscription){var oldSubscription=ko.utils.domData.get(element,templateSubscriptionDomDataKey);if(oldSubscription&&(typeof(oldSubscription.dispose)=="function")){oldSubscription.dispose();}ko.utils.domData.set(element,templateSubscriptionDomDataKey,newSubscription);}ko.bindingHandlers.template={update:function(element,valueAccessor,allBindingsAccessor,viewModel){var bindingValue=ko.utils.unwrapObservable(valueAccessor());var templateName=typeof bindingValue=="string"?bindingValue:bindingValue.name;var templateSubscription;if(typeof bindingValue.foreach!="undefined"){templateSubscription=ko.renderTemplateForEach(templateName,bindingValue.foreach||[],{templateOptions:bindingValue.templateOptions,afterAdd:bindingValue.afterAdd,beforeRemove:bindingValue.beforeRemove,includeDestroyed:bindingValue.includeDestroyed,afterRender:bindingValue.afterRender},element);}else{var templateData=bindingValue.data;templateSubscription=ko.renderTemplate(templateName,typeof templateData=="undefined"?viewModel:templateData,{templateOptions:bindingValue.templateOptions,afterRender:bindingValue.afterRender},element);}disposeOldSubscriptionAndStoreNewOne(element,templateSubscription);}};})();ko.exportSymbol("ko.setTemplateEngine",ko.setTemplateEngine);ko.exportSymbol("ko.renderTemplate",ko.renderTemplate);(function(){function calculateEditDistanceMatrix(oldArray,newArray,maxAllowedDistance){var distances=[];for(var i=0;i<=newArray.length;i++){distances[i]=[];}for(var i=0,j=Math.min(oldArray.length,maxAllowedDistance);i<=j;i++){distances[0][i]=i;}for(var i=1,j=Math.min(newArray.length,maxAllowedDistance);i<=j;i++){distances[i][0]=i;}var oldIndex,oldIndexMax=oldArray.length,newIndex,newIndexMax=newArray.length;var distanceViaAddition,distanceViaDeletion;for(oldIndex=1;oldIndex<=oldIndexMax;oldIndex++){var newIndexMinForRow=Math.max(1,oldIndex-maxAllowedDistance);var newIndexMaxForRow=Math.min(newIndexMax,oldIndex+maxAllowedDistance);for(newIndex=newIndexMinForRow;newIndex<=newIndexMaxForRow;newIndex++){if(oldArray[oldIndex-1]===newArray[newIndex-1]){distances[newIndex][oldIndex]=distances[newIndex-1][oldIndex-1];}else{var northDistance=distances[newIndex-1][oldIndex]===undefined?Number.MAX_VALUE:distances[newIndex-1][oldIndex]+1;var westDistance=distances[newIndex][oldIndex-1]===undefined?Number.MAX_VALUE:distances[newIndex][oldIndex-1]+1;distances[newIndex][oldIndex]=Math.min(northDistance,westDistance);}}}return distances;}function findEditScriptFromEditDistanceMatrix(editDistanceMatrix,oldArray,newArray){var oldIndex=oldArray.length;var newIndex=newArray.length;var editScript=[];var maxDistance=editDistanceMatrix[newIndex][oldIndex];if(maxDistance===undefined){return null;}while((oldIndex>0)||(newIndex>0)){var me=editDistanceMatrix[newIndex][oldIndex];var distanceViaAdd=(newIndex>0)?editDistanceMatrix[newIndex-1][oldIndex]:maxDistance+1;var distanceViaDelete=(oldIndex>0)?editDistanceMatrix[newIndex][oldIndex-1]:maxDistance+1;var distanceViaRetain=(newIndex>0)&&(oldIndex>0)?editDistanceMatrix[newIndex-1][oldIndex-1]:maxDistance+1;if((distanceViaAdd===undefined)||(distanceViaAdd<me-1)){distanceViaAdd=maxDistance+1;}if((distanceViaDelete===undefined)||(distanceViaDelete<me-1)){distanceViaDelete=maxDistance+1;}if(distanceViaRetain<me-1){distanceViaRetain=maxDistance+1;}if((distanceViaAdd<=distanceViaDelete)&&(distanceViaAdd<distanceViaRetain)){editScript.push({status:"added",value:newArray[newIndex-1]});newIndex--;}else{if((distanceViaDelete<distanceViaAdd)&&(distanceViaDelete<distanceViaRetain)){editScript.push({status:"deleted",value:oldArray[oldIndex-1]});oldIndex--;}else{editScript.push({status:"retained",value:oldArray[oldIndex-1]});newIndex--;oldIndex--;}}}return editScript.reverse();}ko.utils.compareArrays=function(oldArray,newArray,maxEditsToConsider){if(maxEditsToConsider===undefined){return ko.utils.compareArrays(oldArray,newArray,1)||ko.utils.compareArrays(oldArray,newArray,10)||ko.utils.compareArrays(oldArray,newArray,Number.MAX_VALUE);}else{oldArray=oldArray||[];newArray=newArray||[];var editDistanceMatrix=calculateEditDistanceMatrix(oldArray,newArray,maxEditsToConsider);return findEditScriptFromEditDistanceMatrix(editDistanceMatrix,oldArray,newArray);}};})();ko.exportSymbol("ko.utils.compareArrays",ko.utils.compareArrays);(function(){function mapNodeAndRefreshWhenChanged(containerNode,mapping,valueToMap){var mappedNodes=[];var dependentObservable=ko.dependentObservable(function(){var newMappedNodes=mapping(valueToMap)||[];if(mappedNodes.length>0){ko.utils.replaceDomNodes(mappedNodes,newMappedNodes);}mappedNodes.splice(0,mappedNodes.length);ko.utils.arrayPushAll(mappedNodes,newMappedNodes);},null,{disposeWhenNodeIsRemoved:containerNode,disposeWhen:function(){return(mappedNodes.length==0)||!ko.utils.domNodeIsAttachedToDocument(mappedNodes[0]);}});return{mappedNodes:mappedNodes,dependentObservable:dependentObservable};}ko.utils.setDomNodeChildrenFromArrayMapping=function(domNode,array,mapping,options){array=array||[];options=options||{};var isFirstExecution=ko.utils.domData.get(domNode,"setDomNodeChildrenFromArrayMapping_lastMappingResult")===undefined;var lastMappingResult=ko.utils.domData.get(domNode,"setDomNodeChildrenFromArrayMapping_lastMappingResult")||[];var lastArray=ko.utils.arrayMap(lastMappingResult,function(x){return x.arrayEntry;});var editScript=ko.utils.compareArrays(lastArray,array);var newMappingResult=[];var lastMappingResultIndex=0;var nodesToDelete=[];var nodesAdded=[];var insertAfterNode=null;for(var i=0,j=editScript.length;i<j;i++){switch(editScript[i].status){case"retained":var dataToRetain=lastMappingResult[lastMappingResultIndex];newMappingResult.push(dataToRetain);if(dataToRetain.domNodes.length>0){insertAfterNode=dataToRetain.domNodes[dataToRetain.domNodes.length-1];}lastMappingResultIndex++;break;case"deleted":lastMappingResult[lastMappingResultIndex].dependentObservable.dispose();ko.utils.arrayForEach(lastMappingResult[lastMappingResultIndex].domNodes,function(node){nodesToDelete.push({element:node,index:i,value:editScript[i].value});insertAfterNode=node;});lastMappingResultIndex++;break;case"added":var mapData=mapNodeAndRefreshWhenChanged(domNode,mapping,editScript[i].value);var mappedNodes=mapData.mappedNodes;newMappingResult.push({arrayEntry:editScript[i].value,domNodes:mappedNodes,dependentObservable:mapData.dependentObservable});for(var nodeIndex=0,nodeIndexMax=mappedNodes.length;nodeIndex<nodeIndexMax;nodeIndex++){var node=mappedNodes[nodeIndex];nodesAdded.push({element:node,index:i,value:editScript[i].value});if(insertAfterNode==null){if(domNode.firstChild){domNode.insertBefore(node,domNode.firstChild);}else{domNode.appendChild(node);}}else{if(insertAfterNode.nextSibling){domNode.insertBefore(node,insertAfterNode.nextSibling);}else{domNode.appendChild(node);}}insertAfterNode=node;}break;}}ko.utils.arrayForEach(nodesToDelete,function(node){ko.cleanNode(node.element);});var invokedBeforeRemoveCallback=false;if(!isFirstExecution){if(options.afterAdd){for(var i=0;i<nodesAdded.length;i++){options.afterAdd(nodesAdded[i].element,nodesAdded[i].index,nodesAdded[i].value);}}if(options.beforeRemove){for(var i=0;i<nodesToDelete.length;i++){options.beforeRemove(nodesToDelete[i].element,nodesToDelete[i].index,nodesToDelete[i].value);}invokedBeforeRemoveCallback=true;}}if(!invokedBeforeRemoveCallback){ko.utils.arrayForEach(nodesToDelete,function(node){if(node.element.parentNode){node.element.parentNode.removeChild(node.element);}});}ko.utils.domData.set(domNode,"setDomNodeChildrenFromArrayMapping_lastMappingResult",newMappingResult);};})();ko.exportSymbol("ko.utils.setDomNodeChildrenFromArrayMapping",ko.utils.setDomNodeChildrenFromArrayMapping);ko.jqueryTmplTemplateEngine=function(){this.jQueryTmplVersion=(function(){if((typeof(jQuery)=="undefined")||!jQuery.tmpl){return 0;}if(jQuery.tmpl["tag"]){if(jQuery.tmpl["tag"]["tmpl"]&&jQuery.tmpl["tag"]["tmpl"]["open"]){if(jQuery.tmpl["tag"]["tmpl"]["open"].toString().indexOf("__")>=0){return 3;}}return 2;}return 1;})();this["getTemplateNode"]=function(template){var templateNode=document.getElementById(template);if(templateNode==null){throw new Error("Cannot find template with ID="+template);}return templateNode;};var aposMarker="__ko_apos__";var aposRegex=new RegExp(aposMarker,"g");this["renderTemplate"]=function(templateId,data,options){options=options||{};if(this.jQueryTmplVersion==0){throw new Error("jquery.tmpl not detected.\nTo use KO's default template engine, reference jQuery and jquery.tmpl. See Knockout installation documentation for more details.");}if(this.jQueryTmplVersion==1){var templateTextInWrapper='<script type="text/html">'+this["getTemplateNode"](templateId).text+"<\/script>";var renderedMarkupInWrapper=jQuery.tmpl(templateTextInWrapper,data);var renderedMarkup=renderedMarkupInWrapper[0].text.replace(aposRegex,"'");return jQuery.clean([renderedMarkup],document);}if(!(templateId in jQuery.template)){var templateText=this["getTemplateNode"](templateId).text;jQuery.template(templateId,templateText);}data=[data];var resultNodes=jQuery.tmpl(templateId,data,options.templateOptions);resultNodes.appendTo(document.createElement("div"));jQuery.fragments={};return resultNodes;},this["isTemplateRewritten"]=function(templateId){if(templateId in jQuery.template){return true;}return this["getTemplateNode"](templateId).isRewritten===true;},this["rewriteTemplate"]=function(template,rewriterCallback){var templateNode=this["getTemplateNode"](template);var rewritten=rewriterCallback(templateNode.text);if(this.jQueryTmplVersion==1){rewritten=ko.utils.stringTrim(rewritten);rewritten=rewritten.replace(/([\s\S]*?)(\${[\s\S]*?}|{{[\=a-z][\s\S]*?}}|$)/g,function(match){var nonCodeSnippet=arguments[1];var codeSnippet=arguments[2];return nonCodeSnippet.replace(/\'/g,aposMarker)+codeSnippet;});}templateNode.text=rewritten;templateNode.isRewritten=true;},this["createJavaScriptEvaluatorBlock"]=function(script){if(this.jQueryTmplVersion==1){return"{{= "+script+"}}";}return"{{ko_code ((function() { return "+script+" })()) }}";},this.addTemplate=function(templateName,templateMarkup){document.write("<script type='text/html' id='"+templateName+"'>"+templateMarkup+"<\/script>");};ko.exportProperty(this,"addTemplate",this.addTemplate);if(this.jQueryTmplVersion>1){jQuery.tmpl["tag"]["ko_code"]={open:(this.jQueryTmplVersion<3?"_":"__")+".push($1 || '');"};}};ko.jqueryTmplTemplateEngine.prototype=new ko.templateEngine();ko.setTemplateEngine(new ko.jqueryTmplTemplateEngine());ko.exportSymbol("ko.jqueryTmplTemplateEngine",ko.jqueryTmplTemplateEngine);})(window);var TableTools;(function($,window,document){TableTools=function(oDT,oOpts){if(!this.CLASS||this.CLASS!="TableTools"){alert("Warning: TableTools must be initialised with the keyword 'new'");}this.s={that:this,dt:null,print:{saveStart:-1,saveLength:-1,saveScroll:-1,funcEnd:function(){}},buttonCounter:0,select:{type:"",selected:[],preRowSelect:null,postSelected:null,postDeselected:null,all:false,selectedClass:""},custom:{},swfPath:"",buttonSet:[],master:false};this.dom={container:null,table:null,print:{hidden:[],message:null},collection:{collection:null,background:null}};this.fnSettings=function(){return this.s;};if(typeof oOpts=="undefined"){oOpts={};}this.s.dt=oDT.fnSettings();this._fnConstruct(oOpts);return this;};TableTools.prototype={fnGetSelected:function(){var masterS=this._fnGetMasterSettings();return masterS.select.selected;},fnIsSelected:function(n){var selected=this.fnGetSelected();for(var i=0,iLen=selected.length;i<iLen;i++){if(n==selected[i]){return true;}}return false;},fnSelectAll:function(){var masterS=this._fnGetMasterSettings();masterS.that._fnRowSelectAll();},fnSelectNone:function(){var masterS=this._fnGetMasterSettings();masterS.that._fnRowDeselectAll();},fnGetTitle:function(oConfig){var sTitle="";if(typeof oConfig.sTitle!="undefined"&&oConfig.sTitle!==""){sTitle=oConfig.sTitle;}else{var anTitle=document.getElementsByTagName("title");if(anTitle.length>0){sTitle=anTitle[0].innerHTML;}}if("\u00A1".toString().length<4){return sTitle.replace(/[^a-zA-Z0-9_\u00A1-\uFFFF\.,\-_ !\(\)]/g,"");}else{return sTitle.replace(/[^a-zA-Z0-9_\.,\-_ !\(\)]/g,"");}},fnCalcColRatios:function(oConfig){var aoCols=this.s.dt.aoColumns,aColumnsInc=this._fnColumnTargets(oConfig.mColumns),aColWidths=[],iWidth=0,iTotal=0,i,iLen;for(i=0,iLen=aColumnsInc.length;i<iLen;i++){if(aColumnsInc[i]){iWidth=aoCols[i].nTh.offsetWidth;iTotal+=iWidth;aColWidths.push(iWidth);}}for(i=0,iLen=aColWidths.length;i<iLen;i++){aColWidths[i]=aColWidths[i]/iTotal;}return aColWidths.join("\t");},fnGetTableData:function(oConfig){if(this.s.dt){return this._fnGetDataTablesData(oConfig);}},fnSetText:function(clip,text){this._fnFlashSetText(clip,text);},fnResizeButtons:function(){for(var cli in ZeroClipboard.clients){if(cli){var client=ZeroClipboard.clients[cli];if(typeof client.domElement!="undefined"&&client.domElement.parentNode==this.dom.container){client.positionElement();}}}},fnResizeRequired:function(){for(var cli in ZeroClipboard.clients){if(cli){var client=ZeroClipboard.clients[cli];if(typeof client.domElement!="undefined"&&client.domElement.parentNode==this.dom.container&&client.sized===false){return true;}}}return false;},_showFlashMessage:function(info){var nInfo=document.createElement("div");nInfo.className="DTTT_print_info";nInfo.innerHTML=info;document.body.appendChild(nInfo);setTimeout(function(){$(nInfo).fadeOut("normal",function(){document.body.removeChild(nInfo);});},2000);},_fnConstruct:function(oOpts){this._fnCustomiseSettings(oOpts);this.dom.container=document.createElement("div");this.dom.container.style.position="relative";this.dom.container.className=!this.s.dt.bJUI?"DTTT_container":"DTTT_container ui-buttonset ui-buttonset-multi";if(this.s.select.type!="none"){this._fnRowSelectConfig();}this._fnButtonDefinations(this.s.buttonSet,this.dom.container);},_fnCustomiseSettings:function(oOpts){if(typeof this.s.dt._TableToolsInit=="undefined"){this.s.master=true;this.s.dt._TableToolsInit=true;}this.dom.table=this.s.dt.nTable;this.s.custom=$.extend({},TableTools.DEFAULTS,oOpts);this.s.swfPath=this.s.custom.sSwfPath;if(typeof ZeroClipboard!="undefined"){ZeroClipboard.moviePath=this.s.swfPath;}this.s.select.type=this.s.custom.sRowSelect;this.s.select.preRowSelect=this.s.custom.fnPreRowSelect;this.s.select.postSelected=this.s.custom.fnRowSelected;this.s.select.postDeselected=this.s.custom.fnRowDeselected;this.s.select.selectedClass=this.s.custom.sSelectedClass;this.s.buttonSet=this.s.custom.aButtons;},_fnButtonDefinations:function(buttonSet,wrapper){var buttonDef;for(var i=0,iLen=buttonSet.length;i<iLen;i++){if(typeof buttonSet[i]=="string"){if(typeof TableTools.BUTTONS[buttonSet[i]]=="undefined"){alert("TableTools: Warning - unknown button type: "+buttonSet[i]);continue;}buttonDef=$.extend({},TableTools.BUTTONS[buttonSet[i]],true);}else{if(typeof TableTools.BUTTONS[buttonSet[i].sExtends]=="undefined"){alert("TableTools: Warning - unknown button type: "+buttonSet[i].sExtends);continue;}var o=$.extend({},TableTools.BUTTONS[buttonSet[i].sExtends],true);buttonDef=$.extend(o,buttonSet[i],true);}if(this.s.dt.bJUI){buttonDef.sButtonClass+=" ui-button ui-state-default";buttonDef.sButtonClassHover+=" ui-button ui-state-default ui-state-hover";}wrapper.appendChild(this._fnCreateButton(buttonDef));}},_fnCreateButton:function(oConfig){var nButton=this._fnButtonBase(oConfig);if(oConfig.sAction=="print"){this._fnPrintConfig(nButton,oConfig);}else{if(oConfig.sAction.match(/flash/)){this._fnFlashConfig(nButton,oConfig);}else{if(oConfig.sAction=="text"){this._fnTextConfig(nButton,oConfig);}else{if(oConfig.sAction=="collection"){this._fnTextConfig(nButton,oConfig);this._fnCollectionConfig(nButton,oConfig);}}}}return nButton;},_fnButtonBase:function(o){var nButton=document.createElement("button"),nSpan=document.createElement("span"),masterS=this._fnGetMasterSettings();nButton.className="DTTT_button "+o.sButtonClass;nButton.setAttribute("id","ToolTables_"+this.s.dt.sInstance+"_"+masterS.buttonCounter);nButton.appendChild(nSpan);nSpan.innerHTML=o.sButtonText;masterS.buttonCounter++;return nButton;},_fnGetMasterSettings:function(){if(this.s.master){return this.s;}else{var instances=TableTools._aInstances;for(var i=0,iLen=instances.length;i<iLen;i++){if(this.dom.table==instances[i].s.dt.nTable){return instances[i].s;}}}},_fnCollectionConfig:function(nButton,oConfig){var nHidden=document.createElement("div");nHidden.style.display="none";nHidden.className=!this.s.dt.bJUI?"DTTT_collection":"DTTT_collection ui-buttonset ui-buttonset-multi";oConfig._collection=nHidden;this._fnButtonDefinations(oConfig.aButtons,nHidden);},_fnCollectionShow:function(nButton,oConfig){var that=this,oPos=$(nButton).offset(),nHidden=oConfig._collection,iDivX=oPos.left,iDivY=oPos.top+$(nButton).outerHeight(),iWinHeight=$(window).height(),iDocHeight=$(document).height(),iWinWidth=$(window).width(),iDocWidth=$(document).width();nHidden.style.position="absolute";nHidden.style.left=iDivX+"px";nHidden.style.top=iDivY+"px";nHidden.style.display="block";$(nHidden).css("opacity",0);var nBackground=document.createElement("div");nBackground.style.position="absolute";nBackground.style.left="0px";nBackground.style.top="0px";nBackground.style.height=((iWinHeight>iDocHeight)?iWinHeight:iDocHeight)+"px";nBackground.style.width=((iWinWidth>iDocWidth)?iWinWidth:iDocWidth)+"px";nBackground.className="DTTT_collection_background";$(nBackground).css("opacity",0);document.body.appendChild(nBackground);document.body.appendChild(nHidden);var iDivWidth=$(nHidden).outerWidth();var iDivHeight=$(nHidden).outerHeight();if(iDivX+iDivWidth>iDocWidth){nHidden.style.left=(iDocWidth-iDivWidth)+"px";}if(iDivY+iDivHeight>iDocHeight){nHidden.style.top=(iDivY-iDivHeight-$(nButton).outerHeight())+"px";}this.dom.collection.collection=nHidden;this.dom.collection.background=nBackground;setTimeout(function(){$(nHidden).animate({opacity:1},500);$(nBackground).animate({opacity:0.25},500);},10);$(nBackground).click(function(){that._fnCollectionHide.call(that,null,null);});},_fnCollectionHide:function(nButton,oConfig){if(oConfig!==null&&oConfig.sExtends=="collection"){return;}if(this.dom.collection.collection!==null){$(this.dom.collection.collection).animate({opacity:0},500,function(e){this.style.display="none";});$(this.dom.collection.background).animate({opacity:0},500,function(e){this.parentNode.removeChild(this);});this.dom.collection.collection=null;this.dom.collection.background=null;}},_fnRowSelectConfig:function(){if(this.s.master){var that=this,i,iLen,aoOpenRows=this.s.dt.aoOpenRows;$(that.s.dt.nTable).addClass("DTTT_selectable");$("tr",that.s.dt.nTBody).live("click",function(e){if(this.parentNode!=that.s.dt.nTBody){return;}for(i=0,iLen=aoOpenRows.length;i<iLen;i++){if(this==aoOpenRows[i].nTr){return;}}if(that.s.select.preRowSelect!==null&&!that.s.select.preRowSelect.call(that,e)){return;}if(that.s.select.type=="single"){that._fnRowSelectSingle.call(that,this);}else{that._fnRowSelectMulti.call(that,this);}});that.s.dt.aoDrawCallback.push({fn:function(){if(that.s.select.all&&that.s.dt.oFeatures.bServerSide){that.fnSelectAll();}},sName:"TableTools_select"});}},_fnRowSelectSingle:function(nNode){if(this.s.master){if($("td",nNode).hasClass(this.s.dt.oClasses.sRowEmpty)){return;}if($(nNode).hasClass(this.s.select.selectedClass)){this._fnRowDeselect(nNode);}else{if(this.s.select.selected.length!==0){this._fnRowDeselectAll();}this.s.select.selected.push(nNode);$(nNode).addClass(this.s.select.selectedClass);if(this.s.select.postSelected!==null){this.s.select.postSelected.call(this,nNode);}}TableTools._fnEventDispatch(this,"select",nNode);}},_fnRowSelectMulti:function(nNode){if(this.s.master){if($("td",nNode).hasClass(this.s.dt.oClasses.sRowEmpty)){return;}if($(nNode).hasClass(this.s.select.selectedClass)){this._fnRowDeselect(nNode);}else{this.s.select.selected.push(nNode);$(nNode).addClass(this.s.select.selectedClass);if(this.s.select.postSelected!==null){this.s.select.postSelected.call(this,nNode);}}TableTools._fnEventDispatch(this,"select",nNode);}},_fnRowSelectAll:function(){if(this.s.master){var n;for(var i=0,iLen=this.s.dt.aiDisplayMaster.length;i<iLen;i++){n=this.s.dt.aoData[this.s.dt.aiDisplayMaster[i]].nTr;if(!$(n).hasClass(this.s.select.selectedClass)){this.s.select.selected.push(n);$(n).addClass(this.s.select.selectedClass);}}this.s.select.all=true;TableTools._fnEventDispatch(this,"select",null);}},_fnRowDeselectAll:function(){if(this.s.master){for(var i=this.s.select.selected.length-1;i>=0;i--){this._fnRowDeselect(i);}this.s.select.all=false;TableTools._fnEventDispatch(this,"select",null);}},_fnRowDeselect:function(i){if(typeof i.nodeName!="undefined"){i=$.inArray(i,this.s.select.selected);}var nNode=this.s.select.selected[i];$(nNode).removeClass(this.s.select.selectedClass);this.s.select.selected.splice(i,1);if(this.s.select.postDeselected!==null){this.s.select.postDeselected.call(this,nNode);}this.s.select.all=false;},_fnTextConfig:function(nButton,oConfig){var that=this;if(oConfig.fnInit!==null){oConfig.fnInit.call(this,nButton,oConfig);}if(oConfig.sToolTip!==""){nButton.title=oConfig.sToolTip;}$(nButton).hover(function(){$(nButton).removeClass(oConfig.sButtonClass).addClass(oConfig.sButtonClassHover);if(oConfig.fnMouseover!==null){oConfig.fnMouseover.call(this,nButton,oConfig,null);}},function(){$(nButton).removeClass(oConfig.sButtonClassHover).addClass(oConfig.sButtonClass);if(oConfig.fnMouseout!==null){oConfig.fnMouseout.call(this,nButton,oConfig,null);}});if(oConfig.fnSelect!==null){TableTools._fnEventListen(this,"select",function(n){oConfig.fnSelect.call(that,nButton,oConfig,n);});}$(nButton).click(function(e){e.preventDefault();if(oConfig.fnClick!==null){oConfig.fnClick.call(that,nButton,oConfig,null);}if(oConfig.fnComplete!==null){oConfig.fnComplete.call(that,nButton,oConfig,null,null);}that._fnCollectionHide(nButton,oConfig);});},_fnFlashConfig:function(nButton,oConfig){var that=this;var flash=new ZeroClipboard.Client();if(oConfig.fnInit!==null){oConfig.fnInit.call(this,nButton,oConfig);}flash.setHandCursor(true);if(oConfig.sAction=="flash_save"){flash.setAction("save");flash.setCharSet((oConfig.sCharSet=="utf16le")?"UTF16LE":"UTF8");flash.setBomInc(oConfig.bBomInc);flash.setFileName(oConfig.sFileName.replace("*",this.fnGetTitle(oConfig)));}else{if(oConfig.sAction=="flash_pdf"){flash.setAction("pdf");flash.setFileName(oConfig.sFileName.replace("*",this.fnGetTitle(oConfig)));}else{flash.setAction("copy");}}flash.addEventListener("mouseOver",function(client){$(nButton).removeClass(oConfig.sButtonClass).addClass(oConfig.sButtonClassHover);if(oConfig.fnMouseover!==null){oConfig.fnMouseover.call(that,nButton,oConfig,flash);}});flash.addEventListener("mouseOut",function(client){$(nButton).removeClass(oConfig.sButtonClassHover).addClass(oConfig.sButtonClass);if(oConfig.fnMouseout!==null){oConfig.fnMouseout.call(that,nButton,oConfig,flash);}});flash.addEventListener("mouseDown",function(client){if(oConfig.fnClick!==null){oConfig.fnClick.call(that,nButton,oConfig,flash);}});flash.addEventListener("complete",function(client,text){if(oConfig.fnComplete!==null){oConfig.fnComplete.call(that,nButton,oConfig,flash,text);}that._fnCollectionHide(nButton,oConfig);});this._fnFlashGlue(flash,nButton,oConfig.sToolTip);},_fnFlashGlue:function(flash,node,text){var that=this;var id=node.getAttribute("id");if(document.getElementById(id)){flash.glue(node,text);if(flash.domElement.parentNode!=flash.div.parentNode&&typeof that.__bZCWarning=="undefined"){that.s.dt.oApi._fnLog(this.s.dt,0,"It looks like you are using the version of ZeroClipboard which came with TableTools 1. Please update to use the version that came with TableTools 2.");that.__bZCWarning=true;}}else{setTimeout(function(){that._fnFlashGlue(flash,node,text);},100);}},_fnFlashSetText:function(clip,sData){var asData=this._fnChunkData(sData,8192);clip.clearText();for(var i=0,iLen=asData.length;i<iLen;i++){clip.appendText(asData[i]);}},_fnColumnTargets:function(mColumns){var aColumns=[];var dt=this.s.dt;if(typeof mColumns=="object"){for(i=0,iLen=dt.aoColumns.length;i<iLen;i++){aColumns.push(false);}for(i=0,iLen=mColumns.length;i<iLen;i++){aColumns[mColumns[i]]=true;}}else{if(mColumns=="visible"){for(i=0,iLen=dt.aoColumns.length;i<iLen;i++){aColumns.push(dt.aoColumns[i].bVisible?true:false);}}else{if(mColumns=="hidden"){for(i=0,iLen=dt.aoColumns.length;i<iLen;i++){aColumns.push(dt.aoColumns[i].bVisible?false:true);}}else{for(i=0,iLen=dt.aoColumns.length;i<iLen;i++){aColumns.push(true);}}}}return aColumns;},_fnNewline:function(oConfig){if(oConfig.sNewLine=="auto"){return navigator.userAgent.match(/Windows/)?"\r\n":"\n";}else{return oConfig.sNewLine;}},_fnGetDataTablesData:function(oConfig){var i,iLen,j,jLen;var sData="",sLoopData="";var dt=this.s.dt;var regex=new RegExp(oConfig.sFieldBoundary,"g");var aColumnsInc=this._fnColumnTargets(oConfig.mColumns);var sNewline=this._fnNewline(oConfig);if(oConfig.bHeader){for(i=0,iLen=dt.aoColumns.length;i<iLen;i++){if(aColumnsInc[i]){sLoopData=dt.aoColumns[i].sTitle.replace(/\n/g," ").replace(/<.*?>/g,"");sLoopData=this._fnHtmlDecode(sLoopData);sData+=this._fnBoundData(sLoopData,oConfig.sFieldBoundary,regex)+oConfig.sFieldSeperator;}}sData=sData.slice(0,oConfig.sFieldSeperator.length*-1);sData+=sNewline;}for(j=0,jLen=dt.aiDisplay.length;j<jLen;j++){if(typeof oConfig.bSelectedOnly&&oConfig.bSelectedOnly&&!$(dt.aoData[dt.aiDisplay[j]].nTr).hasClass(this.s.select.selectedClass)){continue;}for(i=0,iLen=dt.aoColumns.length;i<iLen;i++){if(aColumnsInc[i]){var mTypeData=dt.aoData[dt.aiDisplay[j]]._aData[i];if(typeof mTypeData=="string"){sLoopData=mTypeData.replace(/\n/g," ");sLoopData=sLoopData.replace(/<img.*?\s+alt\s*=\s*(?:"([^"]+)"|'([^']+)'|([^\s>]+)).*?>/gi,"$1$2$3");sLoopData=sLoopData.replace(/<div class="?tableRowActions"?>.*>/gi,"");sLoopData=sLoopData.replace(/<.*?>/g,"");}else{sLoopData=mTypeData+"";}sLoopData=sLoopData.replace(/^\s+/,"").replace(/\s+$/,"");sLoopData=this._fnHtmlDecode(sLoopData);sData+=this._fnBoundData(sLoopData,oConfig.sFieldBoundary,regex)+oConfig.sFieldSeperator;}}sData=sData.slice(0,oConfig.sFieldSeperator.length*-1);sData+=sNewline;}sData.slice(0,-1);if(oConfig.bFooter){for(i=0,iLen=dt.aoColumns.length;i<iLen;i++){if(aColumnsInc[i]&&dt.aoColumns[i].nTf!==null){sLoopData=dt.aoColumns[i].nTf.innerHTML.replace(/\n/g," ").replace(/<.*?>/g,"");sLoopData=this._fnHtmlDecode(sLoopData);sData+=this._fnBoundData(sLoopData,oConfig.sFieldBoundary,regex)+oConfig.sFieldSeperator;}}sData=sData.slice(0,oConfig.sFieldSeperator.length*-1);}_sLastData=sData;return sData;},_fnBoundData:function(sData,sBoundary,regex){if(sBoundary===""){return sData;}else{return sBoundary+sData.replace(regex,"\\"+sBoundary)+sBoundary;}},_fnChunkData:function(sData,iSize){var asReturn=[];var iStrlen=sData.length;for(var i=0;i<iStrlen;i+=iSize){if(i+iSize<iStrlen){asReturn.push(sData.substring(i,i+iSize));}else{asReturn.push(sData.substring(i,iStrlen));}}return asReturn;},_fnHtmlDecode:function(sData){if(sData.indexOf("&")==-1){return sData;}var aData=this._fnChunkData(sData,2048),n=document.createElement("div"),i,iLen,iIndex,sReturn="",sInner;for(i=0,iLen=aData.length;i<iLen;i++){iIndex=aData[i].lastIndexOf("&");if(iIndex!=-1&&aData[i].length>=8&&iIndex>aData[i].length-8){sInner=aData[i].substr(iIndex);aData[i]=aData[i].substr(0,iIndex);}n.innerHTML=aData[i];sReturn+=n.childNodes[0].nodeValue;}return sReturn;},_fnPrintConfig:function(nButton,oConfig){var that=this;if(oConfig.fnInit!==null){oConfig.fnInit.call(this,nButton,oConfig);}if(oConfig.sToolTip!==""){nButton.title=oConfig.sToolTip;}$(nButton).hover(function(){$(nButton).removeClass(oConfig.sButtonClass).addClass(oConfig.sButtonClassHover);},function(){$(nButton).removeClass(oConfig.sButtonClassHover).addClass(oConfig.sButtonClass);});if(oConfig.fnSelect!==null){TableTools._fnEventListen(this,"select",function(n){oConfig.fnSelect.call(that,nButton,oConfig,n);});}$(nButton).click(function(e){e.preventDefault();that._fnPrintStart.call(that,e,oConfig);if(oConfig.fnClick!==null){oConfig.fnClick.call(that,nButton,oConfig,null);}if(oConfig.fnComplete!==null){oConfig.fnComplete.call(that,nButton,oConfig,null,null);}that._fnCollectionHide(nButton,oConfig);});},_fnPrintStart:function(e,oConfig){var that=this;var oSetDT=this.s.dt;this._fnPrintHideNodes(oSetDT.nTable);this.s.print.saveStart=oSetDT._iDisplayStart;this.s.print.saveLength=oSetDT._iDisplayLength;if(oConfig.bShowAll){oSetDT._iDisplayStart=0;oSetDT._iDisplayLength=-1;oSetDT.oApi._fnCalculateEnd(oSetDT);oSetDT.oApi._fnDraw(oSetDT);}if(oSetDT.oScroll.sX!==""||oSetDT.oScroll.sY!==""){this._fnPrintScrollStart(oSetDT);}var anFeature=oSetDT.aanFeatures;for(var cFeature in anFeature){if(cFeature!="i"&&cFeature!="t"&&cFeature.length==1){for(var i=0,iLen=anFeature[cFeature].length;i<iLen;i++){this.dom.print.hidden.push({node:anFeature[cFeature][i],display:"block"});anFeature[cFeature][i].style.display="none";}}}$(document.body).addClass("DTTT_Print");if(oConfig.sInfo!==""){this._showFlashMessage(oConfig.sInfo);}if(oConfig.sMessage!==""){this.dom.print.message=document.createElement("div");this.dom.print.message.className="DTTT_PrintMessage";this.dom.print.message.innerHTML=oConfig.sMessage;document.body.insertBefore(this.dom.print.message,document.body.childNodes[0]);}this.s.print.saveScroll=$(window).scrollTop();window.scrollTo(0,0);this.s.print.funcEnd=function(e){that._fnPrintEnd.call(that,e);};$(document).bind("keydown",null,this.s.print.funcEnd);},_fnPrintEnd:function(e){if(e.keyCode==27){e.preventDefault();var that=this;var oSetDT=this.s.dt;var oSetPrint=this.s.print;var oDomPrint=this.dom.print;this._fnPrintShowNodes();if(oSetDT.oScroll.sX!==""||oSetDT.oScroll.sY!==""){this._fnPrintScrollEnd();}window.scrollTo(0,oSetPrint.saveScroll);if(oDomPrint.message!==null){document.body.removeChild(oDomPrint.message);oDomPrint.message=null;}$(document.body).removeClass("DTTT_Print");oSetDT._iDisplayStart=oSetPrint.saveStart;oSetDT._iDisplayLength=oSetPrint.saveLength;oSetDT.oApi._fnCalculateEnd(oSetDT);oSetDT.oApi._fnDraw(oSetDT);$(document).unbind("keydown",this.s.print.funcEnd);this.s.print.funcEnd=null;}},_fnPrintScrollStart:function(){var oSetDT=this.s.dt,nScrollHeadInner=oSetDT.nScrollHead.getElementsByTagName("div")[0],nScrollHeadTable=nScrollHeadInner.getElementsByTagName("table")[0],nScrollBody=oSetDT.nTable.parentNode;var nTheadSize=oSetDT.nTable.getElementsByTagName("thead");if(nTheadSize.length>0){oSetDT.nTable.removeChild(nTheadSize[0]);}if(oSetDT.nTFoot!==null){var nTfootSize=oSetDT.nTable.getElementsByTagName("tfoot");if(nTfootSize.length>0){oSetDT.nTable.removeChild(nTfootSize[0]);}}nTheadSize=oSetDT.nTHead.cloneNode(true);oSetDT.nTable.insertBefore(nTheadSize,oSetDT.nTable.childNodes[0]);if(oSetDT.nTFoot!==null){nTfootSize=oSetDT.nTFoot.cloneNode(true);oSetDT.nTable.insertBefore(nTfootSize,oSetDT.nTable.childNodes[1]);}if(oSetDT.oScroll.sX!==""){oSetDT.nTable.style.width=$(oSetDT.nTable).outerWidth()+"px";nScrollBody.style.width=$(oSetDT.nTable).outerWidth()+"px";nScrollBody.style.overflow="visible";}if(oSetDT.oScroll.sY!==""){nScrollBody.style.height=$(oSetDT.nTable).outerHeight()+"px";nScrollBody.style.overflow="visible";}},_fnPrintScrollEnd:function(){var oSetDT=this.s.dt,nScrollBody=oSetDT.nTable.parentNode;if(oSetDT.oScroll.sX!==""){nScrollBody.style.width=oSetDT.oApi._fnStringToCss(oSetDT.oScroll.sX);nScrollBody.style.overflow="auto";}if(oSetDT.oScroll.sY!==""){nScrollBody.style.height=oSetDT.oApi._fnStringToCss(oSetDT.oScroll.sY);nScrollBody.style.overflow="auto";}},_fnPrintShowNodes:function(){var anHidden=this.dom.print.hidden;for(var i=0,iLen=anHidden.length;i<iLen;i++){anHidden[i].node.style.display=anHidden[i].display;}anHidden.splice(0,anHidden.length);},_fnPrintHideNodes:function(nNode){var anHidden=this.dom.print.hidden;var nParent=nNode.parentNode;var nChildren=nParent.childNodes;for(var i=0,iLen=nChildren.length;i<iLen;i++){if(nChildren[i]!=nNode&&nChildren[i].nodeType==1){var sDisplay=$(nChildren[i]).css("display");if(sDisplay!="none"){anHidden.push({node:nChildren[i],display:sDisplay});nChildren[i].style.display="none";}}}if(nParent.nodeName!="BODY"){this._fnPrintHideNodes(nParent);}}};TableTools._aInstances=[];TableTools._aListeners=[];TableTools.fnGetMasters=function(){var a=[];for(var i=0,iLen=TableTools._aInstances.length;i<iLen;i++){if(TableTools._aInstances[i].s.master){a.push(TableTools._aInstances[i].s);}}return a;};TableTools.fnGetInstance=function(node){if(typeof node!="object"){node=document.getElementById(node);}for(var i=0,iLen=TableTools._aInstances.length;i<iLen;i++){if(TableTools._aInstances[i].s.master&&TableTools._aInstances[i].dom.table==node){return TableTools._aInstances[i];}}return null;};TableTools._fnEventListen=function(that,type,fn){TableTools._aListeners.push({that:that,type:type,fn:fn});};TableTools._fnEventDispatch=function(that,type,node){var listeners=TableTools._aListeners;for(var i=0,iLen=listeners.length;i<iLen;i++){if(that.dom.table==listeners[i].that.dom.table&&listeners[i].type==type){listeners[i].fn(node);}}};TableTools.BUTTONS={csv:{sAction:"flash_save",sCharSet:"utf8",bBomInc:false,sFileName:"*.csv",sFieldBoundary:'"',sFieldSeperator:",",sNewLine:"auto",sTitle:"",sToolTip:"",sButtonClass:"DTTT_button_csv",sButtonClassHover:"DTTT_button_csv_hover",sButtonText:"CSV",mColumns:"all",bHeader:true,bFooter:true,bSelectedOnly:false,fnMouseover:null,fnMouseout:null,fnClick:function(nButton,oConfig,flash){this.fnSetText(flash,this.fnGetTableData(oConfig));},fnSelect:null,fnComplete:null,fnInit:null},xls:{sAction:"flash_save",sCharSet:"utf16le",bBomInc:true,sFileName:"*.xls",sFieldBoundary:"",sFieldSeperator:"\t",sNewLine:"auto",sTitle:"",sToolTip:"",sButtonClass:"DTTT_button_xls",sButtonClassHover:"DTTT_button_xls_hover",sButtonText:"Excel",mColumns:"all",bHeader:true,bFooter:true,bSelectedOnly:false,fnMouseover:null,fnMouseout:null,fnClick:function(nButton,oConfig,flash){this.fnSetText(flash,this.fnGetTableData(oConfig));},fnSelect:null,fnComplete:null,fnInit:null},copy:{sAction:"flash_copy",sFieldBoundary:"",sFieldSeperator:"\t",sNewLine:"auto",sToolTip:"",sButtonClass:"DTTT_button_copy",sButtonClassHover:"DTTT_button_copy_hover",sButtonText:"Copy",mColumns:"all",bHeader:true,bFooter:true,bSelectedOnly:false,fnMouseover:null,fnMouseout:null,fnClick:function(nButton,oConfig,flash){this.fnSetText(flash,this.fnGetTableData(oConfig));},fnSelect:null,fnComplete:function(nButton,oConfig,flash,text){var lines=text.split("\n").length,len=this.s.dt.nTFoot===null?lines-1:lines-2,plural=(len==1)?"":"s";this._showFlashMessage("<h6>Table copied</h6><p>Copied "+len+" row"+plural+" to the clipboard.</p>");},fnInit:null},pdf:{sAction:"flash_pdf",sFieldBoundary:"",sFieldSeperator:"\t",sNewLine:"\n",sFileName:"*.pdf",sToolTip:"",sTitle:"",sButtonClass:"DTTT_button_pdf",sButtonClassHover:"DTTT_button_pdf_hover",sButtonText:"PDF",mColumns:"all",bHeader:true,bFooter:false,bSelectedOnly:false,fnMouseover:null,fnMouseout:null,sPdfOrientation:"portrait",sPdfSize:"A4",sPdfMessage:"",fnClick:function(nButton,oConfig,flash){this.fnSetText(flash,"title:"+this.fnGetTitle(oConfig)+"\nmessage:"+oConfig.sPdfMessage+"\ncolWidth:"+this.fnCalcColRatios(oConfig)+"\norientation:"+oConfig.sPdfOrientation+"\nsize:"+oConfig.sPdfSize+"\n--/TableToolsOpts--\n"+this.fnGetTableData(oConfig));},fnSelect:null,fnComplete:null,fnInit:null},print:{sAction:"print",sInfo:"<h6>Print view</h6><p>Please use your browser's print function to print this table. Press escape when finished.",sMessage:"",bShowAll:true,sToolTip:"View print view",sButtonClass:"DTTT_button_print",sButtonClassHover:"DTTT_button_print_hover",sButtonText:"Print",fnMouseover:null,fnMouseout:null,fnClick:null,fnSelect:null,fnComplete:null,fnInit:null},text:{sAction:"text",sToolTip:"",sButtonClass:"DTTT_button_text",sButtonClassHover:"DTTT_button_text_hover",sButtonText:"Text button",mColumns:"all",bHeader:true,bFooter:true,bSelectedOnly:false,fnMouseover:null,fnMouseout:null,fnClick:null,fnSelect:null,fnComplete:null,fnInit:null},select:{sAction:"text",sToolTip:"",sButtonClass:"DTTT_button_text",sButtonClassHover:"DTTT_button_text_hover",sButtonText:"Select button",mColumns:"all",bHeader:true,bFooter:true,fnMouseover:null,fnMouseout:null,fnClick:null,fnSelect:function(nButton,oConfig){if(this.fnGetSelected().length!==0){$(nButton).removeClass("DTTT_disabled");}else{$(nButton).addClass("DTTT_disabled");}},fnComplete:null,fnInit:function(nButton,oConfig){$(nButton).addClass("DTTT_disabled");}},select_single:{sAction:"text",sToolTip:"",sButtonClass:"DTTT_button_text",sButtonClassHover:"DTTT_button_text_hover",sButtonText:"Select button",mColumns:"all",bHeader:true,bFooter:true,fnMouseover:null,fnMouseout:null,fnClick:null,fnSelect:function(nButton,oConfig){var iSelected=this.fnGetSelected().length;if(iSelected==1){$(nButton).removeClass("DTTT_disabled");}else{$(nButton).addClass("DTTT_disabled");}},fnComplete:null,fnInit:function(nButton,oConfig){$(nButton).addClass("DTTT_disabled");}},select_all:{sAction:"text",sToolTip:"",sButtonClass:"DTTT_button_text",sButtonClassHover:"DTTT_button_text_hover",sButtonText:"Select all",mColumns:"all",bHeader:true,bFooter:true,fnMouseover:null,fnMouseout:null,fnClick:function(nButton,oConfig){this.fnSelectAll();},fnSelect:function(nButton,oConfig){if(this.fnGetSelected().length==this.s.dt.fnRecordsDisplay()){$(nButton).addClass("DTTT_disabled");}else{$(nButton).removeClass("DTTT_disabled");}},fnComplete:null,fnInit:null},select_none:{sAction:"text",sToolTip:"",sButtonClass:"DTTT_button_text",sButtonClassHover:"DTTT_button_text_hover",sButtonText:"Deselect all",mColumns:"all",bHeader:true,bFooter:true,fnMouseover:null,fnMouseout:null,fnClick:function(nButton,oConfig){this.fnSelectNone();},fnSelect:function(nButton,oConfig){if(this.fnGetSelected().length!==0){$(nButton).removeClass("DTTT_disabled");}else{$(nButton).addClass("DTTT_disabled");}},fnComplete:null,fnInit:function(nButton,oConfig){$(nButton).addClass("DTTT_disabled");}},ajax:{sAction:"text",sFieldBoundary:"",sFieldSeperator:"\t",sNewLine:"\n",sAjaxUrl:"/xhr.php",sToolTip:"",sButtonClass:"DTTT_button_text",sButtonClassHover:"DTTT_button_text_hover",sButtonText:"Ajax button",mColumns:"all",bHeader:true,bFooter:true,bSelectedOnly:false,fnMouseover:null,fnMouseout:null,fnClick:function(nButton,oConfig){var sData=this.fnGetTableData(oConfig);$.ajax({url:oConfig.sAjaxUrl,data:[{name:"tableData",value:sData}],success:oConfig.fnAjaxComplete,dataType:"json",type:"POST",cache:false,error:function(){alert("Error detected when sending table data to server");}});},fnSelect:null,fnComplete:null,fnInit:null,fnAjaxComplete:function(json){alert("Ajax complete");}},collection:{sAction:"collection",sToolTip:"",sButtonClass:"DTTT_button_collection",sButtonClassHover:"DTTT_button_collection_hover",sButtonText:"Collection",fnMouseover:null,fnMouseout:null,fnClick:function(nButton,oConfig){this._fnCollectionShow(nButton,oConfig);},fnSelect:null,fnComplete:null,fnInit:null}};TableTools.DEFAULTS={sSwfPath:"media/swf/copy_cvs_xls_pdf.swf",sRowSelect:"none",sSelectedClass:"DTTT_selected",fnPreRowSelect:null,fnRowSelected:null,fnRowDeselected:null,aButtons:["copy","csv","xls","pdf","print"]};TableTools.prototype.CLASS="TableTools";TableTools.VERSION="2.0.1";TableTools.prototype.VERSION=TableTools.VERSION;if(typeof $.fn.dataTable=="function"&&typeof $.fn.dataTableExt.fnVersionCheck=="function"&&$.fn.dataTableExt.fnVersionCheck("1.7.0")){$.fn.dataTableExt.aoFeatures.push({fnInit:function(oDTSettings){var oOpts=typeof oDTSettings.oInit.oTableTools!="undefined"?oDTSettings.oInit.oTableTools:{};var oTT=new TableTools(oDTSettings.oInstance,oOpts);TableTools._aInstances.push(oTT);return oTT.dom.container;},cFeature:"T",sFeature:"TableTools"});}else{alert("Warning: TableTools 2 requires DataTables 1.7 or greater - www.datatables.net/download");}})(jQuery,window,document);var ZeroClipboard={version:"1.0.4-TableTools2",clients:{},moviePath:"/swfs/ZeroClipboard-1.0.4.swf",nextId:1,$:function(thingy){if(typeof(thingy)=="string"){thingy=document.getElementById(thingy);}if(!thingy.addClass){thingy.hide=function(){this.style.display="none";};thingy.show=function(){this.style.display="";};thingy.addClass=function(name){this.removeClass(name);this.className+=" "+name;};thingy.removeClass=function(name){this.className=this.className.replace(new RegExp("\\s*"+name+"\\s*")," ").replace(/^\s+/,"").replace(/\s+$/,"");};thingy.hasClass=function(name){return !!this.className.match(new RegExp("\\s*"+name+"\\s*"));};}return thingy;},setMoviePath:function(path){this.moviePath=path;},dispatch:function(id,eventName,args){var client=this.clients[id];if(client){client.receiveEvent(eventName,args);}},register:function(id,client){this.clients[id]=client;},getDOMObjectPosition:function(obj){var info={left:0,top:0,width:obj.width?obj.width:obj.offsetWidth,height:obj.height?obj.height:obj.offsetHeight};if(obj.style.width!=""){info.width=obj.style.width.replace("px","");}if(obj.style.height!=""){info.height=obj.style.height.replace("px","");}while(obj){info.left+=obj.offsetLeft;info.top+=obj.offsetTop;obj=obj.offsetParent;}return info;},Client:function(elem){this.handlers={};this.id=ZeroClipboard.nextId++;this.movieId="ZeroClipboardMovie_"+this.id;ZeroClipboard.register(this.id,this);if(elem){this.glue(elem);}}};ZeroClipboard.Client.prototype={id:0,ready:false,movie:null,clipText:"",fileName:"",action:"copy",handCursorEnabled:true,cssEffects:true,handlers:null,sized:false,glue:function(elem,title){this.domElement=ZeroClipboard.$(elem);var zIndex=99;if(this.domElement.style.zIndex){zIndex=parseInt(this.domElement.style.zIndex)+1;}var box=ZeroClipboard.getDOMObjectPosition(this.domElement);this.div=document.createElement("div");var style=this.div.style;style.position="absolute";style.left=(this.domElement.offsetLeft)+"px";style.top=this.domElement.offsetTop+"px";style.width=(box.width)+"px";style.height=box.height+"px";style.zIndex=zIndex;if(typeof title!="undefined"&&title!=""){this.div.title=title;}if(box.width!=0&&box.height!=0){this.sized=true;}this.domElement.parentNode.appendChild(this.div);this.div.innerHTML=this.getHTML(box.width,box.height);},positionElement:function(){var box=ZeroClipboard.getDOMObjectPosition(this.domElement);var style=this.div.style;style.position="absolute";style.left=(this.domElement.offsetLeft)+"px";style.top=this.domElement.offsetTop+"px";style.width=box.width+"px";style.height=box.height+"px";if(box.width!=0&&box.height!=0){this.sized=true;}var flash=this.div.childNodes[0];flash.width=box.width;flash.height=box.height;},getHTML:function(width,height){var html="";var flashvars="id="+this.id+"&width="+width+"&height="+height;if(navigator.userAgent.match(/MSIE/)){var protocol=location.href.match(/^https/i)?"https://":"http://";html+='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="'+protocol+'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="'+width+'" height="'+height+'" id="'+this.movieId+'" align="middle"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="false" /><param name="movie" value="'+ZeroClipboard.moviePath+'" /><param name="loop" value="false" /><param name="menu" value="false" /><param name="quality" value="best" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="'+flashvars+'"/><param name="wmode" value="transparent"/></object>';}else{html+='<embed id="'+this.movieId+'" src="'+ZeroClipboard.moviePath+'" loop="false" menu="false" quality="best" width="'+width+'" height="'+height+'" name="'+this.movieId+'" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="'+flashvars+'" wmode="transparent" />';}return html;},hide:function(){if(this.div){this.div.style.left="-2000px";}},show:function(){this.reposition();},destroy:function(){if(this.domElement&&this.div){this.hide();this.div.innerHTML="";var body=document.getElementsByTagName("body")[0];try{body.removeChild(this.div);}catch(e){}this.domElement=null;this.div=null;}},reposition:function(elem){if(elem){this.domElement=ZeroClipboard.$(elem);if(!this.domElement){this.hide();}}if(this.domElement&&this.div){var box=ZeroClipboard.getDOMObjectPosition(this.domElement);var style=this.div.style;style.left=""+box.left+"px";style.top=""+box.top+"px";}},clearText:function(){this.clipText="";if(this.ready){this.movie.clearText();}},appendText:function(newText){this.clipText+=newText;if(this.ready){this.movie.appendText(newText);}},setText:function(newText){this.clipText=newText;if(this.ready){this.movie.setText(newText);}},setCharSet:function(charSet){this.charSet=charSet;if(this.ready){this.movie.setCharSet(charSet);}},setBomInc:function(bomInc){this.incBom=bomInc;if(this.ready){this.movie.setBomInc(bomInc);}},setFileName:function(newText){this.fileName=newText;if(this.ready){this.movie.setFileName(newText);}},setAction:function(newText){this.action=newText;if(this.ready){this.movie.setAction(newText);}},addEventListener:function(eventName,func){eventName=eventName.toString().toLowerCase().replace(/^on/,"");if(!this.handlers[eventName]){this.handlers[eventName]=[];}this.handlers[eventName].push(func);},setHandCursor:function(enabled){this.handCursorEnabled=enabled;if(this.ready){this.movie.setHandCursor(enabled);}},setCSSEffects:function(enabled){this.cssEffects=!!enabled;},receiveEvent:function(eventName,args){eventName=eventName.toString().toLowerCase().replace(/^on/,"");switch(eventName){case"load":this.movie=document.getElementById(this.movieId);if(!this.movie){var self=this;setTimeout(function(){self.receiveEvent("load",null);},1);return;}if(!this.ready&&navigator.userAgent.match(/Firefox/)&&navigator.userAgent.match(/Windows/)){var self=this;setTimeout(function(){self.receiveEvent("load",null);},100);this.ready=true;return;}this.ready=true;this.movie.clearText();this.movie.appendText(this.clipText);this.movie.setFileName(this.fileName);this.movie.setAction(this.action);this.movie.setCharSet(this.charSet);this.movie.setBomInc(this.incBom);this.movie.setHandCursor(this.handCursorEnabled);break;case"mouseover":if(this.domElement&&this.cssEffects){if(this.recoverActive){this.domElement.addClass("active");}}break;case"mouseout":if(this.domElement&&this.cssEffects){this.recoverActive=false;if(this.domElement.hasClass("active")){this.domElement.removeClass("active");this.recoverActive=true;}}break;case"mousedown":if(this.domElement&&this.cssEffects){this.domElement.addClass("active");}break;case"mouseup":if(this.domElement&&this.cssEffects){this.domElement.removeClass("active");this.recoverActive=false;}break;}if(this.handlers[eventName]){for(var idx=0,len=this.handlers[eventName].length;idx<len;idx++){var func=this.handlers[eventName][idx];if(typeof(func)=="function"){func(this,args);}else{if((typeof(func)=="object")&&(func.length==2)){func[0][func[1]](this,args);}else{if(typeof(func)=="string"){window[func](this,args);}}}}}}};"use strict";(function($){$(document).ready(function(){$.fn.qtip.cache={screen:{scroll:{left:$(window).scrollLeft(),top:$(window).scrollTop()},width:$(window).width(),height:$(window).height()}};var adjustTimer,i;$(window).bind("resize scroll",function(event){clearTimeout(adjustTimer);adjustTimer=setTimeout(function(){if(event.type==="scroll"){$.fn.qtip.cache.screen.scroll={left:$(window).scrollLeft(),top:$(window).scrollTop()};}else{$.fn.qtip.cache.screen.width=$(window).width();$.fn.qtip.cache.screen.height=$(window).height();}for(i=0;i<$.fn.qtip.interfaces.length;i++){var api=$.fn.qtip.interfaces[i];if(api&&api.status&&api.status.rendered===true&&api.options.position.type!=="static"&&(api.options.position.adjust.scroll&&event.type==="scroll"||api.options.position.adjust.resize&&event.type==="resize")){api.updatePosition(event,true);}}},100);});$(document).bind("mousedown.qtip",function(event){if($(event.target).parents("div.qtip").length===0){$(".qtip[unfocus]").each(function(){var api=$(this).qtip("api");if($(this).is(":visible")&&api&&api.status&&!api.status.disabled&&$(event.target).add(api.elements.target).length>1){api.hide(event);}});}});});function Corner(corner){if(!corner){return false;}this.x=String(corner).replace(/middle/i,"center").match(/left|right|center/i)[0].toLowerCase();this.y=String(corner).replace(/middle/i,"center").match(/top|bottom|center/i)[0].toLowerCase();this.offset={left:0,top:0};this.precedance=(corner.charAt(0).search(/^(t|b)/)>-1)?"y":"x";this.string=function(){return(this.precedance==="y")?this.y+this.x:this.x+this.y;};}function calculateTip(corner,width,height){var tips={bottomright:[[0,0],[width,height],[width,0]],bottomleft:[[0,0],[width,0],[0,height]],topright:[[0,height],[width,0],[width,height]],topleft:[[0,0],[0,height],[width,height]],topcenter:[[0,height],[width/2,0],[width,height]],bottomcenter:[[0,0],[width,0],[width/2,height]],rightcenter:[[0,0],[width,height/2],[0,height]],leftcenter:[[width,0],[width,height],[0,height/2]]};tips.lefttop=tips.bottomright;tips.righttop=tips.bottomleft;tips.leftbottom=tips.topright;tips.rightbottom=tips.topleft;return tips[corner];}function calculateBorders(radius){var borders;if($("<canvas />").get(0).getContext){borders={topLeft:[radius,radius],topRight:[0,radius],bottomLeft:[radius,0],bottomRight:[0,0]};}else{if($.browser.msie){borders={topLeft:[-90,90,0],topRight:[-90,90,-radius],bottomLeft:[90,270,0],bottomRight:[90,270,-radius]};}}return borders;}function jQueryStyle(style,sub){var styleObj,i;styleObj=$.extend(true,{},style);for(i in styleObj){if(sub===true&&(/(tip|classes)/i).test(i)){delete styleObj[i];}else{if(!sub&&(/(width|border|tip|title|classes|user)/i).test(i)){delete styleObj[i];}}}return styleObj;}function sanitizeStyle(style){if(typeof style.tip!=="object"){style.tip={corner:style.tip};}if(typeof style.tip.size!=="object"){style.tip.size={width:style.tip.size,height:style.tip.size};}if(typeof style.border!=="object"){style.border={width:style.border};}if(typeof style.width!=="object"){style.width={value:style.width};}if(typeof style.width.max==="string"){style.width.max=parseInt(style.width.max.replace(/([0-9]+)/i,"$1"),10);}if(typeof style.width.min==="string"){style.width.min=parseInt(style.width.min.replace(/([0-9]+)/i,"$1"),10);}if(typeof style.tip.size.x==="number"){style.tip.size.width=style.tip.size.x;delete style.tip.size.x;}if(typeof style.tip.size.y==="number"){style.tip.size.height=style.tip.size.y;delete style.tip.size.y;}return style;}function buildStyle(){var self,i,styleArray,styleExtend,finalStyle,ieAdjust;self=this;styleArray=[true,{}];for(i=0;i<arguments.length;i++){styleArray.push(arguments[i]);}styleExtend=[$.extend.apply($,styleArray)];while(typeof styleExtend[0].name==="string"){styleExtend.unshift(sanitizeStyle($.fn.qtip.styles[styleExtend[0].name]));}styleExtend.unshift(true,{classes:{tooltip:"qtip-"+(arguments[0].name||"defaults")}},$.fn.qtip.styles.defaults);finalStyle=$.extend.apply($,styleExtend);ieAdjust=($.browser.msie)?1:0;finalStyle.tip.size.width+=ieAdjust;finalStyle.tip.size.height+=ieAdjust;if(finalStyle.tip.size.width%2>0){finalStyle.tip.size.width+=1;}if(finalStyle.tip.size.height%2>0){finalStyle.tip.size.height+=1;}if(finalStyle.tip.corner===true){if(self.options.position.corner.tooltip==="center"&&self.options.position.corner.target==="center"){finalStyle.tip.corner=false;}else{finalStyle.tip.corner=self.options.position.corner.tooltip;}}return finalStyle;}function drawBorder(canvas,coordinates,radius,color){var context=canvas.get(0).getContext("2d");context.fillStyle=color;context.beginPath();context.arc(coordinates[0],coordinates[1],radius,0,Math.PI*2,false);context.fill();}function createBorder(){var self,i,width,radius,color,coordinates,containers,size,betweenWidth,betweenCorners,borderTop,borderBottom,borderCoord,sideWidth,vertWidth;self=this;self.elements.wrapper.find(".qtip-borderBottom, .qtip-borderTop").remove();width=self.options.style.border.width;radius=self.options.style.border.radius;color=self.options.style.border.color||self.options.style.tip.color;coordinates=calculateBorders(radius);containers={};for(i in coordinates){containers[i]='<div rel="'+i+'" style="'+((/Left/).test(i)?"left":"right")+":0; position:absolute; height:"+radius+"px; width:"+radius+'px; overflow:hidden; line-height:0.1px; font-size:1px">';if($("<canvas />").get(0).getContext){containers[i]+='<canvas height="'+radius+'" width="'+radius+'" style="vertical-align: top"></canvas>';}else{if($.browser.msie){size=radius*2+3;containers[i]+='<v:arc stroked="false" fillcolor="'+color+'" startangle="'+coordinates[i][0]+'" endangle="'+coordinates[i][1]+'" style="width:'+size+"px; height:"+size+"px; margin-top:"+((/bottom/).test(i)?-2:-1)+"px; margin-left:"+((/Right/).test(i)?coordinates[i][2]-3.5:-1)+'px; vertical-align:top; display:inline-block; behavior:url(#default#VML)"></v:arc>';}}containers[i]+="</div>";}betweenWidth=self.getDimensions().width-(Math.max(width,radius)*2);betweenCorners='<div class="qtip-betweenCorners" style="height:'+radius+"px; width:"+betweenWidth+"px; overflow:hidden; background-color:"+color+'; line-height:0.1px; font-size:1px;">';borderTop='<div class="qtip-borderTop" dir="ltr" style="height:'+radius+"px; margin-left:"+radius+'px; line-height:0.1px; font-size:1px; padding:0;">'+containers.topLeft+containers.topRight+betweenCorners;self.elements.wrapper.prepend(borderTop);borderBottom='<div class="qtip-borderBottom" dir="ltr" style="height:'+radius+"px; margin-left:"+radius+'px; line-height:0.1px; font-size:1px; padding:0;">'+containers.bottomLeft+containers.bottomRight+betweenCorners;self.elements.wrapper.append(borderBottom);if($("<canvas />").get(0).getContext){self.elements.wrapper.find("canvas").each(function(){borderCoord=coordinates[$(this).parent("[rel]:first").attr("rel")];drawBorder.call(self,$(this),borderCoord,radius,color);});}else{if($.browser.msie){self.elements.tooltip.append('<v:image style="behavior:url(#default#VML);"></v:image>');}}sideWidth=Math.max(radius,(radius+(width-radius)));vertWidth=Math.max(width-radius,0);self.elements.contentWrapper.css({border:"0px solid "+color,borderWidth:vertWidth+"px "+sideWidth+"px"});}function drawTip(canvas,coordinates,color){var context=canvas.get(0).getContext("2d");context.fillStyle=color;context.beginPath();context.moveTo(coordinates[0][0],coordinates[0][1]);context.lineTo(coordinates[1][0],coordinates[1][1]);context.lineTo(coordinates[2][0],coordinates[2][1]);context.fill();}function positionTip(corner){var self,ieAdjust,positionAdjust,paddingCorner,paddingSize,newMargin;self=this;if(self.options.style.tip.corner===false||!self.elements.tip){return;}if(!corner){corner=new Corner(self.elements.tip.attr("rel"));}ieAdjust=positionAdjust=($.browser.msie)?1:0;self.elements.tip.css(corner[corner.precedance],0);if(corner.precedance==="y"){if($.browser.msie){if(parseInt($.browser.version.charAt(0),10)===6){positionAdjust=corner.y==="top"?-3:1;}else{positionAdjust=corner.y==="top"?1:2;}}if(corner.x==="center"){self.elements.tip.css({left:"50%",marginLeft:-(self.options.style.tip.size.width/2)});}else{if(corner.x==="left"){self.elements.tip.css({left:self.options.style.border.radius-ieAdjust});}else{self.elements.tip.css({right:self.options.style.border.radius+ieAdjust});}}if(corner.y==="top"){self.elements.tip.css({top:-positionAdjust});}else{self.elements.tip.css({bottom:positionAdjust});}}else{if($.browser.msie){positionAdjust=(parseInt($.browser.version.charAt(0),10)===6)?1:(corner.x==="left"?1:2);}if(corner.y==="center"){self.elements.tip.css({top:"50%",marginTop:-(self.options.style.tip.size.height/2)});}else{if(corner.y==="top"){self.elements.tip.css({top:self.options.style.border.radius-ieAdjust});}else{self.elements.tip.css({bottom:self.options.style.border.radius+ieAdjust});}}if(corner.x==="left"){self.elements.tip.css({left:-positionAdjust});}else{self.elements.tip.css({right:positionAdjust});}}paddingCorner="padding-"+corner[corner.precedance];paddingSize=self.options.style.tip.size[corner.precedance==="x"?"width":"height"];self.elements.tooltip.css("padding",0).css(paddingCorner,paddingSize);if($.browser.msie&&parseInt($.browser.version.charAt(0),6)===6){newMargin=parseInt(self.elements.tip.css("margin-top"),10)||0;newMargin+=parseInt(self.elements.content.css("margin-top"),10)||0;self.elements.tip.css({marginTop:newMargin});}}function createTip(corner){var self,color,coordinates,coordsize,path,tip;self=this;if(self.elements.tip!==null){self.elements.tip.remove();}color=self.options.style.tip.color||self.options.style.border.color;if(self.options.style.tip.corner===false){return;}else{if(!corner){corner=new Corner(self.options.style.tip.corner);}}coordinates=calculateTip(corner.string(),self.options.style.tip.size.width,self.options.style.tip.size.height);self.elements.tip='<div class="'+self.options.style.classes.tip+'" dir="ltr" rel="'+corner.string()+'" style="position:absolute; height:'+self.options.style.tip.size.height+"px; width:"+self.options.style.tip.size.width+'px; margin:0 auto; line-height:0.1px; font-size:1px;"></div>';self.elements.tooltip.prepend(self.elements.tip);if($("<canvas />").get(0).getContext){tip='<canvas height="'+self.options.style.tip.size.height+'" width="'+self.options.style.tip.size.width+'"></canvas>';}else{if($.browser.msie){coordsize=self.options.style.tip.size.width+","+self.options.style.tip.size.height;path="m"+coordinates[0][0]+","+coordinates[0][1];path+=" l"+coordinates[1][0]+","+coordinates[1][1];path+=" "+coordinates[2][0]+","+coordinates[2][1];path+=" xe";tip='<v:shape fillcolor="'+color+'" stroked="false" filled="true" path="'+path+'" coordsize="'+coordsize+'" style="width:'+self.options.style.tip.size.width+"px; height:"+self.options.style.tip.size.height+"px; line-height:0.1px; display:inline-block; behavior:url(#default#VML); vertical-align:"+(corner.y==="top"?"bottom":"top")+'"></v:shape>';tip+='<v:image style="behavior:url(#default#VML);"></v:image>';self.elements.contentWrapper.css("position","relative");}}self.elements.tip=self.elements.tooltip.find("."+self.options.style.classes.tip).eq(0);self.elements.tip.html(tip);if($("<canvas  />").get(0).getContext){drawTip.call(self,self.elements.tip.find("canvas:first"),coordinates,color);}if(corner.y==="top"&&$.browser.msie&&parseInt($.browser.version.charAt(0),10)===6){self.elements.tip.css({marginTop:-4});}positionTip.call(self,corner);}function createTitle(){var self=this;if(self.elements.title!==null){self.elements.title.remove();}self.elements.tooltip.attr("aria-labelledby","qtip-"+self.id+"-title");self.elements.title=$('<div id="qtip-'+self.id+'-title" class="'+self.options.style.classes.title+'"></div>').css(jQueryStyle(self.options.style.title,true)).css({zoom:($.browser.msie)?1:0}).prependTo(self.elements.contentWrapper);if(self.options.content.title.text){self.updateTitle.call(self,self.options.content.title.text);}if(self.options.content.title.button!==false&&typeof self.options.content.title.button==="string"){self.elements.button=$('<a class="'+self.options.style.classes.button+'" role="button" style="float:right; position: relative"></a>').css(jQueryStyle(self.options.style.button,true)).html(self.options.content.title.button).prependTo(self.elements.title).click(function(event){if(!self.status.disabled){self.hide(event);}});}}function assignEvents(){var self,showTarget,hideTarget,inactiveEvents;self=this;showTarget=self.options.show.when.target;hideTarget=self.options.hide.when.target;if(self.options.hide.fixed){hideTarget=hideTarget.add(self.elements.tooltip);}inactiveEvents=["click","dblclick","mousedown","mouseup","mousemove","mouseout","mouseenter","mouseleave","mouseover"];function inactiveMethod(event){if(self.status.disabled===true){return;}clearTimeout(self.timers.inactive);self.timers.inactive=setTimeout(function(){$(inactiveEvents).each(function(){hideTarget.unbind(this+".qtip-inactive");self.elements.content.unbind(this+".qtip-inactive");});self.hide(event);},self.options.hide.delay);}if(self.options.hide.fixed===true){self.elements.tooltip.bind("mouseover.qtip",function(){if(self.status.disabled===true){return;}clearTimeout(self.timers.hide);});}function showMethod(event){if(self.status.disabled===true){return;}if(self.options.hide.when.event==="inactive"){$(inactiveEvents).each(function(){hideTarget.bind(this+".qtip-inactive",inactiveMethod);self.elements.content.bind(this+".qtip-inactive",inactiveMethod);});inactiveMethod();}clearTimeout(self.timers.show);clearTimeout(self.timers.hide);if(self.options.show.delay>0){self.timers.show=setTimeout(function(){self.show(event);},self.options.show.delay);}else{self.show(event);}}function hideMethod(event){if(self.status.disabled===true){return;}if(self.options.hide.fixed===true&&(/mouse(out|leave)/i).test(self.options.hide.when.event)&&$(event.relatedTarget).parents('div.qtip[id^="qtip"]').length>0){event.stopPropagation();event.preventDefault();clearTimeout(self.timers.hide);return false;}clearTimeout(self.timers.show);clearTimeout(self.timers.hide);self.elements.tooltip.stop(true,true);self.timers.hide=setTimeout(function(){self.hide(event);},self.options.hide.delay);}if((self.options.show.when.target.add(self.options.hide.when.target).length===1&&self.options.show.when.event===self.options.hide.when.event&&self.options.hide.when.event!=="inactive")||self.options.hide.when.event==="unfocus"){self.cache.toggle=0;showTarget.bind(self.options.show.when.event+".qtip",function(event){if(self.cache.toggle===0){showMethod(event);}else{hideMethod(event);}});}else{showTarget.bind(self.options.show.when.event+".qtip",showMethod);if(self.options.hide.when.event!=="inactive"){hideTarget.bind(self.options.hide.when.event+".qtip",hideMethod);}}if((/(fixed|absolute)/).test(self.options.position.type)){self.elements.tooltip.bind("mouseover.qtip",self.focus);}if(self.options.position.target==="mouse"&&self.options.position.type!=="static"){showTarget.bind("mousemove.qtip",function(event){self.cache.mouse={x:event.pageX,y:event.pageY};if(self.status.disabled===false&&self.options.position.adjust.mouse===true&&self.options.position.type!=="static"&&self.elements.tooltip.css("display")!=="none"){self.updatePosition(event);}});}}function bgiframe(){var self,html,dimensions;self=this;dimensions=self.getDimensions();html='<iframe class="qtip-bgiframe" frameborder="0" tabindex="-1" src="javascript:false" style="display:block; position:absolute; z-index:-1; filter:alpha(opacity=\'0\'); border: 1px solid red; height:'+dimensions.height+"px; width:"+dimensions.width+'px" />';self.elements.bgiframe=self.elements.wrapper.prepend(html).children(".qtip-bgiframe:first");}function construct(){var self,content,url,data,method;self=this;self.beforeRender.call(self);self.status.rendered=true;self.elements.tooltip='<div qtip="'+self.id+'" id="qtip-'+self.id+'" role="tooltip" aria-describedby="qtip-'+self.id+'-content" class="qtip '+(self.options.style.classes.tooltip||self.options.style)+'" style="display:none; -moz-border-radius:0; -webkit-border-radius:0; border-radius:0; position:'+self.options.position.type+';">   <div class="qtip-wrapper" style="position:relative; overflow:hidden; text-align:left;">     <div class="qtip-contentWrapper" style="overflow:hidden;">        <div id="qtip-'+self.id+'-content" class="qtip-content '+self.options.style.classes.content+'"></div> </div></div></div>';self.elements.tooltip=$(self.elements.tooltip);self.elements.tooltip.appendTo(self.options.position.container);self.elements.tooltip.data("qtip",{current:0,interfaces:[self]});self.elements.wrapper=self.elements.tooltip.children("div:first");self.elements.contentWrapper=self.elements.wrapper.children("div:first").css({background:self.options.style.background});self.elements.content=self.elements.contentWrapper.children("div:first").css(jQueryStyle(self.options.style));if($.browser.msie){self.elements.wrapper.add(self.elements.content).css({zoom:1});}if(self.options.hide.when.event==="unfocus"){self.elements.tooltip.attr("unfocus",true);}if(typeof self.options.style.width.value==="number"){self.updateWidth();}if($("<canvas />").get(0).getContext||$.browser.msie){if(self.options.style.border.radius>0){createBorder.call(self);}else{self.elements.contentWrapper.css({border:self.options.style.border.width+"px solid "+self.options.style.border.color});}if(self.options.style.tip.corner!==false){createTip.call(self);}}else{self.elements.contentWrapper.css({border:self.options.style.border.width+"px solid "+self.options.style.border.color});self.options.style.border.radius=0;self.options.style.tip.corner=false;}if((typeof self.options.content.text==="string"&&self.options.content.text.length>0)||(self.options.content.text.jquery&&self.options.content.text.length>0)){content=self.options.content.text;}else{if(typeof self.elements.target.attr("title")==="string"&&self.elements.target.attr("title").length>0){content=self.elements.target.attr("title").replace(/\n/gi,"<br />");self.elements.target.attr("title","");}else{if(typeof self.elements.target.attr("alt")==="string"&&self.elements.target.attr("alt").length>0){content=self.elements.target.attr("alt").replace(/\n/gi,"<br />");self.elements.target.attr("alt","");}else{content=" ";}}}if(self.options.content.title.text!==false){createTitle.call(self);}self.updateContent(content);assignEvents.call(self);if(self.options.show.ready===true){self.show();}if(self.options.content.url!==false){url=self.options.content.url;data=self.options.content.data;method=self.options.content.method||"get";self.loadContent(url,data,method);}self.onRender.call(self);}function QTip(target,options,id){var self=this;self.id=id;self.options=options;self.status={animated:false,rendered:false,disabled:false,focused:false};self.elements={target:target.addClass(self.options.style.classes.target),tooltip:null,wrapper:null,content:null,contentWrapper:null,title:null,button:null,tip:null,bgiframe:null};self.cache={mouse:{},position:{},toggle:0,overflow:{left:false,top:false}};self.timers={};$.extend(self,self.options.api,{show:function(event){var returned,solo;if(!self.status.rendered){return false;}if(self.elements.tooltip.css("display")!=="none"){return self;}self.elements.tooltip.stop(true,false);returned=self.beforeShow.call(self,event);if(returned===false){return self;}function afterShow(){self.elements.tooltip.attr("aria-hidden",true);if(self.options.position.type!=="static"){self.focus();}self.onShow.call(self,event);if($.browser.msie){self.elements.tooltip.get(0).style.removeAttribute("filter");}self.elements.tooltip.css({opacity:""});}self.cache.toggle=1;if(self.options.position.type!=="static"){self.updatePosition(event,(self.options.show.effect.length>0));}if(typeof self.options.show.solo==="object"){solo=$(self.options.show.solo);}else{if(self.options.show.solo===true){solo=$("div.qtip").not(self.elements.tooltip);}}if(solo){solo.each(function(){if($(this).qtip("api").status.rendered===true){$(this).qtip("api").hide();}});}if(typeof self.options.show.effect.type==="function"){self.options.show.effect.type.call(self.elements.tooltip,self.options.show.effect.length);self.elements.tooltip.queue(function(){afterShow();$(this).dequeue();});}else{switch(self.options.show.effect.type.toLowerCase()){case"fade":self.elements.tooltip.fadeIn(self.options.show.effect.length,afterShow);break;case"slide":self.elements.tooltip.slideDown(self.options.show.effect.length,function(){afterShow();if(self.options.position.type!=="static"){self.updatePosition(event,true);}});break;case"grow":self.elements.tooltip.show(self.options.show.effect.length,afterShow);break;default:self.elements.tooltip.show(null,afterShow);break;}self.elements.tooltip.addClass(self.options.style.classes.active);}return self;},hide:function(event){var returned;if(!self.status.rendered){return false;}else{if(self.elements.tooltip.css("display")==="none"){return self;}}clearTimeout(self.timers.show);self.elements.tooltip.stop(true,false);returned=self.beforeHide.call(self,event);if(returned===false){return self;}function afterHide(){self.elements.tooltip.attr("aria-hidden",true);self.elements.tooltip.css({opacity:""});self.onHide.call(self,event);}self.cache.toggle=0;if(typeof self.options.hide.effect.type==="function"){self.options.hide.effect.type.call(self.elements.tooltip,self.options.hide.effect.length);self.elements.tooltip.queue(function(){afterHide();$(this).dequeue();});}else{switch(self.options.hide.effect.type.toLowerCase()){case"fade":self.elements.tooltip.fadeOut(self.options.hide.effect.length,afterHide);break;case"slide":self.elements.tooltip.slideUp(self.options.hide.effect.length,afterHide);break;case"grow":self.elements.tooltip.hide(self.options.hide.effect.length,afterHide);break;default:self.elements.tooltip.hide(null,afterHide);break;}self.elements.tooltip.removeClass(self.options.style.classes.active);}return self;},toggle:function(event,state){var condition=/boolean|number/.test(typeof state)?state:!self.elements.tooltip.is(":visible");self[condition?"show":"hide"](event);return self;},updatePosition:function(event,animate){if(!self.status.rendered){return false;}var posOptions=options.position,target=$(posOptions.target),elemWidth=self.elements.tooltip.outerWidth(),elemHeight=self.elements.tooltip.outerHeight(),targetWidth,targetHeight,position,my=posOptions.corner.tooltip,at=posOptions.corner.target,returned,coords,i,mapName,imagePos,adapt={left:function(){var over=position.left+elemWidth-$(window).width()-$(window).scrollLeft(),myOffset=my.x==="left"?-elemWidth:my.x==="right"?elemWidth:0,offset=-2*posOptions.adjust.x;position.left+=position.left<0?myOffset+targetWidth+offset:over>0?myOffset-targetWidth+offset:0;return Math.round(over);},top:function(){var over=position.top+elemHeight-$(window).height()-$(window).scrollTop(),myOffset=my.y==="top"?-elemHeight:my.y==="bottom"?elemHeight:0,atOffset=at.y==="top"?targetHeight:at.y==="bottom"?-targetHeight:0,offset=-2*posOptions.adjust.y;position.top+=position.top<0?myOffset+targetHeight+offset:over>0?myOffset+atOffset+offset:0;return Math.round(over);}};if(event&&(/(move|in|out|enter|leave)$/).test(event.type)&&options.position.target==="mouse"){at={x:"left",y:"top"};targetWidth=targetHeight=0;position={top:event.pageY,left:event.pageX};}else{if(target[0]===document){targetWidth=target.width();targetHeight=target.height();position={top:0,left:0};}else{if(target[0]===window){targetWidth=target.width();targetHeight=target.height();position={top:target.scrollTop(),left:target.scrollLeft()};}else{if(target.is("area")){coords=self.options.position.target.attr("coords").split(",");for(i=0;i<coords.length;i++){coords[i]=parseInt(coords[i],10);}mapName=self.options.position.target.parent("map").attr("name");imagePos=$('img[usemap="#'+mapName+'"]:first').offset();target.position={left:Math.floor(imagePos.left+coords[0]),top:Math.floor(imagePos.top+coords[1])};switch(self.options.position.target.attr("shape").toLowerCase()){case"rect":targetWidth=Math.ceil(Math.abs(coords[2]-coords[0]));targetHeight=Math.ceil(Math.abs(coords[3]-coords[1]));break;case"circle":targetWidth=coords[2]+1;targetHeight=coords[2]+1;break;case"poly":targetWidth=coords[0];targetHeight=coords[1];for(i=0;i<coords.length;i++){if(i%2===0){if(coords[i]>targetWidth){targetWidth=coords[i];}if(coords[i]<coords[0]){position.left=Math.floor(imagePos.left+coords[i]);}}else{if(coords[i]>targetHeight){targetHeight=coords[i];}if(coords[i]<coords[1]){position.top=Math.floor(imagePos.top+coords[i]);}}}targetWidth=targetWidth-(position.left-imagePos.left);targetHeight=targetHeight-(position.top-imagePos.top);break;}targetWidth-=2;targetHeight-=2;}else{targetWidth=target.outerWidth();targetHeight=target.outerHeight();position=target.offset();}}}position.left+=at.x==="right"?targetWidth:at.x==="center"?targetWidth/2:0;position.top+=at.y==="bottom"?targetHeight:at.y==="center"?targetHeight/2:0;}position.left+=posOptions.adjust.x+(my.x==="right"?-elemWidth:my.x==="center"?-elemWidth/2:0);position.top+=posOptions.adjust.y+(my.y==="bottom"?-elemHeight:my.y==="center"?-elemHeight/2:0);if(self.options.style.border.radius>0){if(my.x==="left"){position.left-=self.options.style.border.radius;}else{if(my.x==="right"){position.left+=self.options.style.border.radius;}}if(my.y==="top"){position.top-=self.options.style.border.radius;}else{if(my.y==="bottom"){position.top+=self.options.style.border.radius;}}}if(posOptions.adjust.screen){(function(){var adjusted={x:0,y:0},adapted={x:adapt.left(),y:adapt.top()},tip=new Corner(options.style.tip.corner);if(self.elements.tip&&tip){if(tip.x!=="center"&&adapted.x>-1){tip.x=adjusted.x=tip.x==="left"?"right":"left";}if(tip.y!=="center"&&adapted.y>-1){tip.y=adjusted.y=tip.y==="top"?"bottom":"top";}self.cache.overflow={left:adjusted.x===false,top:adjusted.y===false};if(self.elements.tip.attr("rel")!==tip.string()){createTip.call(self,tip);}}}());}if(!self.elements.bgiframe&&$.browser.msie&&parseInt($.browser.version.charAt(0),10)===6){bgiframe.call(self);}returned=self.beforePositionUpdate.call(self,event);if(returned===false){return self;}self.cache.position=position;if(animate===true){self.status.animated=true;self.elements.tooltip.animate(position,200,"swing",function(){self.status.animated=false;});}else{self.elements.tooltip.css(position);}self.onPositionUpdate.call(self,event);return self;},updateWidth:function(newWidth){if(!self.status.rendered||(newWidth&&typeof newWidth!=="number")){return false;}var hidden=self.elements.contentWrapper.siblings().add(self.elements.tip).add(self.elements.button),zoom=self.elements.wrapper.add(self.elements.contentWrapper.children()),tooltip=self.elements.tooltip,max=self.options.style.width.max,min=self.options.style.width.min;if(!newWidth){if(typeof self.options.style.width.value==="number"){newWidth=self.options.style.width.value;}else{self.elements.tooltip.css({width:"auto"});hidden.hide();tooltip.width(newWidth);if($.browser.msie){zoom.css({zoom:""});}newWidth=self.getDimensions().width;if(!self.options.style.width.value){newWidth=Math.min(Math.max(newWidth,min),max);}}}if(newWidth%2){newWidth+=1;}self.elements.tooltip.width(newWidth);hidden.show();if(self.options.style.border.radius){self.elements.tooltip.find(".qtip-betweenCorners").each(function(i){$(this).width(newWidth-(self.options.style.border.radius*2));});}if($.browser.msie){zoom.css({zoom:1});self.elements.wrapper.width(newWidth);if(self.elements.bgiframe){self.elements.bgiframe.width(newWidth).height(self.getDimensions.height);}}return self;},updateStyle:function(name){var tip,borders,context,corner,coordinates;if(!self.status.rendered||typeof name!=="string"||!$.fn.qtip.styles[name]){return false;}self.options.style=buildStyle.call(self,$.fn.qtip.styles[name],self.options.user.style);self.elements.content.css(jQueryStyle(self.options.style));if(self.options.content.title.text!==false){self.elements.title.css(jQueryStyle(self.options.style.title,true));}self.elements.contentWrapper.css({borderColor:self.options.style.border.color});if(self.options.style.tip.corner!==false){if($("<canvas />").get(0).getContext){tip=self.elements.tooltip.find(".qtip-tip canvas:first");context=tip.get(0).getContext("2d");context.clearRect(0,0,300,300);corner=tip.parent("div[rel]:first").attr("rel");coordinates=calculateTip(corner,self.options.style.tip.size.width,self.options.style.tip.size.height);drawTip.call(self,tip,coordinates,self.options.style.tip.color||self.options.style.border.color);}else{if($.browser.msie){tip=self.elements.tooltip.find('.qtip-tip [nodeName="shape"]');tip.attr("fillcolor",self.options.style.tip.color||self.options.style.border.color);}}}if(self.options.style.border.radius>0){self.elements.tooltip.find(".qtip-betweenCorners").css({backgroundColor:self.options.style.border.color});if($("<canvas />").get(0).getContext){borders=calculateBorders(self.options.style.border.radius);self.elements.tooltip.find(".qtip-wrapper canvas").each(function(){context=$(this).get(0).getContext("2d");context.clearRect(0,0,300,300);corner=$(this).parent("div[rel]:first").attr("rel");drawBorder.call(self,$(this),borders[corner],self.options.style.border.radius,self.options.style.border.color);});}else{if($.browser.msie){self.elements.tooltip.find('.qtip-wrapper [nodeName="arc"]').each(function(){$(this).attr("fillcolor",self.options.style.border.color);});}}}return self;},updateContent:function(content,reposition){var parsedContent,images,loadedImages;function afterLoad(){self.updateWidth();if(reposition!==false){if(self.options.position.type!=="static"){self.updatePosition(self.elements.tooltip.is(":visible"),true);}if(self.options.style.tip.corner!==false){positionTip.call(self);}}}if(!self.status.rendered||!content){return false;}parsedContent=self.beforeContentUpdate.call(self,content);if(typeof parsedContent==="string"){content=parsedContent;}else{if(parsedContent===false){return;}}if($.browser.msie){self.elements.contentWrapper.children().css({zoom:"normal"});}if(content.jquery&&content.length>0){content.clone(true).appendTo(self.elements.content).show();}else{self.elements.content.html(content);}images=self.elements.content.find("img[complete=false]");if(images.length>0){loadedImages=0;images.each(function(i){$('<img src="'+$(this).attr("src")+'" />').load(function(){if(++loadedImages===images.length){afterLoad();}});});}else{afterLoad();}self.onContentUpdate.call(self);return self;},loadContent:function(url,data,method){var returned;function setupContent(content){self.onContentLoad.call(self);self.updateContent(content);}if(!self.status.rendered){return false;}returned=self.beforeContentLoad.call(self);if(returned===false){return self;}if(method==="post"){$.post(url,data,setupContent);}else{$.get(url,data,setupContent);}return self;},updateTitle:function(content){var returned;if(!self.status.rendered||!content){return false;}returned=self.beforeTitleUpdate.call(self);if(returned===false){return self;}if(self.elements.button){self.elements.button=self.elements.button.clone(true);}self.elements.title.html(content);if(self.elements.button){self.elements.title.prepend(self.elements.button);}self.onTitleUpdate.call(self);return self;},focus:function(event){var curIndex,newIndex,elemIndex,returned;if(!self.status.rendered||self.options.position.type==="static"){return false;}curIndex=parseInt(self.elements.tooltip.css("z-index"),10);newIndex=15000+$('div.qtip[id^="qtip"]').length-1;if(!self.status.focused&&curIndex!==newIndex){returned=self.beforeFocus.call(self,event);if(returned===false){return self;}$('div.qtip[id^="qtip"]').not(self.elements.tooltip).each(function(){if($(this).qtip("api").status.rendered===true){elemIndex=parseInt($(this).css("z-index"),10);if(typeof elemIndex==="number"&&elemIndex>-1){$(this).css({zIndex:parseInt($(this).css("z-index"),10)-1});}$(this).qtip("api").status.focused=false;}});self.elements.tooltip.css({zIndex:newIndex});self.status.focused=true;self.onFocus.call(self,event);}return self;},disable:function(state){if(!self.status.rendered){return false;}self.status.disabled=state?true:false;return self;},destroy:function(){var i,returned,interfaces;returned=self.beforeDestroy.call(self);if(returned===false){return self;}if(self.status.rendered){self.options.show.when.target.unbind("mousemove.qtip",self.updatePosition);self.options.show.when.target.unbind("mouseout.qtip",self.hide);self.options.show.when.target.unbind(self.options.show.when.event+".qtip");self.options.hide.when.target.unbind(self.options.hide.when.event+".qtip");self.elements.tooltip.unbind(self.options.hide.when.event+".qtip");self.elements.tooltip.unbind("mouseover.qtip",self.focus);self.elements.tooltip.remove();}else{self.options.show.when.target.unbind(self.options.show.when.event+".qtip-create");}if(typeof self.elements.target.data("qtip")==="object"){interfaces=self.elements.target.data("qtip").interfaces;if(typeof interfaces==="object"&&interfaces.length>0){for(i=0;i<interfaces.length-1;i++){if(interfaces[i].id===self.id){interfaces.splice(i,1);}}}}$.fn.qtip.interfaces.splice(self.id,1);if(typeof interfaces==="object"&&interfaces.length>0){self.elements.target.data("qtip").current=interfaces.length-1;}else{self.elements.target.removeData("qtip");}self.onDestroy.call(self);return self.elements.target;},getPosition:function(){var show,offset;if(!self.status.rendered){return false;}show=(self.elements.tooltip.css("display")!=="none")?false:true;if(show){self.elements.tooltip.css({visiblity:"hidden"}).show();}offset=self.elements.tooltip.offset();if(show){self.elements.tooltip.css({visiblity:"visible"}).hide();}return offset;},getDimensions:function(){var show,dimensions;if(!self.status.rendered){return false;}show=(!self.elements.tooltip.is(":visible"))?true:false;if(show){self.elements.tooltip.css({visiblity:"hidden"}).show();}dimensions={height:self.elements.tooltip.outerHeight(),width:self.elements.tooltip.outerWidth()};if(show){self.elements.tooltip.css({visiblity:"visible"}).hide();}return dimensions;}});}$.fn.qtip=function(options,blanket){var i,id,interfaces,opts,obj,command,config,api;if(typeof options==="string"){if(options==="api"){return $(this).data("qtip").interfaces[$(this).data("qtip").current];}else{if(options==="interfaces"){return $(this).data("qtip").interfaces;}}}else{if(!options){options={};}if(typeof options.content!=="object"||(options.content.jquery&&options.content.length>0)){options.content={text:options.content};}if(typeof options.content.title!=="object"){options.content.title={text:options.content.title};}if(typeof options.position!=="object"){options.position={corner:options.position};}if(typeof options.position.corner!=="object"){options.position.corner={target:options.position.corner,tooltip:options.position.corner};}if(typeof options.show!=="object"){options.show={when:options.show};}if(typeof options.show.when!=="object"){options.show.when={event:options.show.when};}if(typeof options.show.effect!=="object"){options.show.effect={type:options.show.effect};}if(typeof options.hide!=="object"){options.hide={when:options.hide};}if(typeof options.hide.when!=="object"){options.hide.when={event:options.hide.when};}if(typeof options.hide.effect!=="object"){options.hide.effect={type:options.hide.effect};}if(typeof options.style!=="object"){options.style={name:options.style};}options.style=sanitizeStyle(options.style);opts=$.extend(true,{},$.fn.qtip.defaults,options);opts.style=buildStyle.call({options:opts},opts.style);opts.user=$.extend(true,{},options);}return $(this).each(function(){if(typeof options==="string"){command=options.toLowerCase();interfaces=$(this).qtip("interfaces");if(typeof interfaces==="object"){if(blanket===true&&command==="destroy"){while(interfaces.length>0){interfaces[interfaces.length-1].destroy();}}else{if(blanket!==true){interfaces=[$(this).qtip("api")];}for(i=0;i<interfaces.length;i++){if(command==="destroy"){interfaces[i].destroy();}else{if(interfaces[i].status.rendered===true){if(command==="show"){interfaces[i].show();}else{if(command==="hide"){interfaces[i].hide();}else{if(command==="focus"){interfaces[i].focus();}else{if(command==="disable"){interfaces[i].disable(true);}else{if(command==="enable"){interfaces[i].disable(false);}else{if(command==="update"){interfaces[i].updatePosition();}}}}}}}}}}}}else{config=$.extend(true,{},opts);config.hide.effect.length=opts.hide.effect.length;config.show.effect.length=opts.show.effect.length;if(config.position.container===false){config.position.container=$(document.body);}if(config.position.target===false){config.position.target=$(this);}if(config.show.when.target===false){config.show.when.target=$(this);}if(config.hide.when.target===false){config.hide.when.target=$(this);}config.position.corner.tooltip=new Corner(config.position.corner.tooltip);config.position.corner.target=new Corner(config.position.corner.target);id=$.fn.qtip.interfaces.length;for(i=0;i<id;i++){if(typeof $.fn.qtip.interfaces[i]==="undefined"){id=i;break;}}obj=new QTip($(this),config,id);$.fn.qtip.interfaces[id]=obj;if(typeof $(this).data("qtip")==="object"&&$(this).data("qtip")){if(typeof $(this).attr("qtip")==="undefined"){$(this).data("qtip").current=$(this).data("qtip").interfaces.length;}$(this).data("qtip").interfaces.push(obj);}else{$(this).data("qtip",{current:0,interfaces:[obj]});}if(config.content.prerender===false&&config.show.when.event!==false&&config.show.ready!==true){config.show.when.target.bind(config.show.when.event+".qtip-"+id+"-create",{qtip:id},function(event){api=$.fn.qtip.interfaces[event.data.qtip];api.options.show.when.target.unbind(api.options.show.when.event+".qtip-"+event.data.qtip+"-create");api.cache.mouse={x:event.pageX,y:event.pageY};construct.call(api);api.options.show.when.target.trigger(api.options.show.when.event);});}else{obj.cache.mouse={x:config.show.when.target.offset().left,y:config.show.when.target.offset().top};construct.call(obj);}}});};$.fn.qtip.interfaces=[];$.fn.qtip.log={error:function(){return this;}};$.fn.qtip.constants={};$.fn.qtip.defaults={content:{prerender:false,text:false,url:false,data:null,title:{text:false,button:false}},position:{target:false,corner:{target:"bottomRight",tooltip:"topLeft"},adjust:{x:0,y:0,mouse:true,screen:false,scroll:true,resize:true},type:"absolute",container:false},show:{when:{target:false,event:"mouseover"},effect:{type:"fade",length:100},delay:140,solo:false,ready:false},hide:{when:{target:false,event:"mouseout"},effect:{type:"fade",length:100},delay:0,fixed:false},api:{beforeRender:function(){},onRender:function(){},beforePositionUpdate:function(){},onPositionUpdate:function(){},beforeShow:function(){},onShow:function(){},beforeHide:function(){},onHide:function(){},beforeContentUpdate:function(){},onContentUpdate:function(){},beforeContentLoad:function(){},onContentLoad:function(){},beforeTitleUpdate:function(){},onTitleUpdate:function(){},beforeDestroy:function(){},onDestroy:function(){},beforeFocus:function(){},onFocus:function(){}}};$.fn.qtip.styles={defaults:{background:"white",color:"#111",overflow:"hidden",textAlign:"left",width:{min:0,max:250},padding:"5px 9px",border:{width:1,radius:0,color:"#d3d3d3"},tip:{corner:false,color:false,size:{width:13,height:13},opacity:1},title:{background:"#e1e1e1",fontWeight:"bold",padding:"7px 12px"},button:{cursor:"pointer"},classes:{target:"",tip:"qtip-tip",title:"qtip-title",button:"qtip-button",content:"qtip-content",active:"qtip-active"}},cream:{border:{width:3,radius:0,color:"#F9E98E"},title:{background:"#F0DE7D",color:"#A27D35"},background:"#FBF7AA",color:"#A27D35",classes:{tooltip:"qtip-cream"}},light:{border:{width:3,radius:0,color:"#E2E2E2"},title:{background:"#f1f1f1",color:"#454545"},background:"white",color:"#454545",classes:{tooltip:"qtip-light"}},dark:{border:{width:3,radius:0,color:"#303030"},title:{background:"#404040",color:"#f3f3f3"},background:"#505050",color:"#f3f3f3",classes:{tooltip:"qtip-dark"}},red:{border:{width:3,radius:0,color:"#CE6F6F"},title:{background:"#f28279",color:"#9C2F2F"},background:"#F79992",color:"#9C2F2F",classes:{tooltip:"qtip-red"}},green:{border:{width:3,radius:0,color:"#A9DB66"},title:{background:"#b9db8c",color:"#58792E"},background:"#CDE6AC",color:"#58792E",classes:{tooltip:"qtip-green"}},blue:{border:{width:3,radius:0,color:"#ADD9ED"},title:{background:"#D0E9F5",color:"#5E99BD"},background:"#E5F6FE",color:"#4D9FBF",classes:{tooltip:"qtip-blue"}}};}(jQuery));PulseEnergy.TimeInterval={};(function(){var TimeInterval=function(name,millis,truncate){this.name=name;this.millis=millis;this.truncate=truncate;};var values=[new TimeInterval("Hour",60*60*1000,function(date){return new Date(date.getFullYear(),date.getMonth(),date.getDate(),date.getHours(),0);}),new TimeInterval("Day",24*60*60*1000,function(date){return new Date(date.getFullYear(),date.getMonth(),date.getDate());}),new TimeInterval("Week",7*24*60*60*1000,function(date){var adjustedDate=date.getDate()-date.getDay();return new Date(date.getFullYear(),date.getMonth(),adjustedDate);}),new TimeInterval("Month",30*24*60*60*1000,function(date){return new Date(date.getFullYear(),date.getMonth(),1);}),new TimeInterval("Quarter",91*24*60*60*1000,function(date){var adjustedMonth=Math.floor(date.getMonth()/3)*3;return new Date(date.getFullYear(),adjustedMonth,1);}),new TimeInterval("Year",365*24*60*60*1000,function(date){return new Date(date.getFullYear(),0,1);})];for(var i=0;i<values.length;i++){var ti=values[i];ti.smaller=values[i-1];ti.larger=values[i+1];PulseEnergy.TimeInterval[ti.name]=ti;PulseEnergy.TimeInterval[ti.name.toUpperCase()]=ti;PulseEnergy.TimeInterval[ti.name.toLowerCase()]=ti;}PulseEnergy.TimeInterval.values=values;}());var PE=PE||{};PE.track=function(activity,section,properties){_.extend({},properties,{section:section});try{if(typeof _totango!==undefined){_totango.track(activity,section);}if(typeof mpq!==undefined){mpq.track(activity,properties);}_kmq.push(["record",activity,properties]);}catch(e){}};var PulseEnergy=PulseEnergy||{};PulseEnergy.VersionChecker=function(){this.version=null;};PulseEnergy.VersionChecker.prototype.startChecking=function(){var check=function(checker){return function(){checker.checkForNewVersion();};};this.checkForNewVersion();setInterval(check(this),1000*60*60);};PulseEnergy.VersionChecker.prototype.checkForNewVersion=function(){var that=this;$.get("/version.txt",function(data){if(that.version&&that.version!=data){window.location.reload(true);return false;}that.version=data;});};
