jQuery.fn.tableFilter=function(b,a){return this.each(function(){var c=new jQuery.tblFilter(this,b,a);if($daemach.debug){window.tableFilter=c}})};jQuery.tblFilter=function(b,f,d){if($("#tableFilter_header",b).size()){return}var a=this;this.version="1.0 b2";this.userSettings=(jQuery.cookie)?(JSON.parse($.cookie("daemach.tf.userSettings"))||{}):{};this.userSettings="";this.settings=jQuery.extend({},jQuery.tblFilter.defaults,f,this.userSettings);this.settings=jQuery.extend(this.settings,this.userSettings);this.getText=this.getBrowserTextField();this.browserSucks=jQuery.browser.msie;this.table=b;this.allRows=[];this.cols=[];this.headerRows=[];this.footerRows=[];this.lastCell=null;this.currentPage=1;this.maxPage=1;this.colSettings=d;this.totalElements=0;this.lastFilterElement=null;this.lastFilterCtrl=false;this.buildComplete=false;this.filterList=[];this.sortList=[];this.uniqueLength=1;this.plugins={};this.pluginList=[];$d.debug=this.settings.showDebug;$d.time("Total Build Time");var c;this.parseTable();if(this.browserSucks){$d.cm.setRule("td","display:none")}this.parseColumns();this.buildColumns();if(this.browserSucks){$d.cm.setRule("td","display:''")}this.lockColumns();$d.timeEnd("Total Build Time");$d.log(" ");if(this.cols.length&&!(typeof this.settings.sortOnLoad=="boolean")){this.cols[this.settings.sortOnLoad].sortColumn(null)}jQuery(window).bind("resize",function(g){a.lockColumns(true);$("#"+a.menu.className+"_trigger")[0].offsetLeft+"px"});jQuery(window).bind("onLoad",function(g){$("#"+a.menu.className).css("left",function(){return $("#"+a.menu.className+"_trigger")[0].offsetLeft+"px"})});this.buildComplete=true};jQuery.extend(jQuery.tblFilter,{defaults:{stripeClass:"offColor",pageLength:"25",paging:true,sort:true,sortOnLoad:0,decimalPlaces:2,loadPlugins:false,showDebug:false,imagePath:"images/icons"},prototype:{filterTable:function(f){var u=(f==="sort")?true:false;var c=(f==="page")?true:false;var h=(f==="filter")?true:false;var n=this;var g=this.filterList;var t=this.pluginList;var l=this.allRows;var v=false;var q=0;var p=0;var m=0;var a=this.settings.stripeClass;var b=(((this.currentPage-1)*this.settings.pageLength)+1);var o=(this.currentPage*this.settings.pageLength);var k=false;var d,j,s;$d.time("Filtering "+g.length+" column"+((g.length==1)?"":"s"));if(this.settings.loadPlugins){for(s=0;s<t.length;s++){t[s].startPlugins(h,c,u)}}for(var j=0;j<l.length;j++){d=l[j][1];if(u){this.tbody.appendChild(d)}k=(g.length)?false:true;for(s=0;s<g.length;s++){k=g[s].cFilter(l[j][0][g[s].index]);if(!k){break}}if(k){q++;v=(q>=b&&q<=o)}else{v=false}l[j][2]=v;if(this.settings.loadPlugins){for(s=0;s<t.length;s++){t[s].processPlugins(k,v,l[j][0][t[s].index],j)}}if(v&&!this.browserSucks){d.style.display="";if(!(m++%2)){$(d).addClass(a)}else{$(d).removeClass(a)}}else{d.style.display="none"}}m=0;if(this.browserSucks){for(var s=0;s<l.length;s++){e=l[s][1];if(l[s][2]){e.style.display="";if(!(m++%2)){$(e).addClass(a)}else{$(e).removeClass(a)}}else{e.style.display="none"}}}if(this.settings.loadPlugins){for(s=0;s<t.length;s++){t[s].finishPlugins()}}$d.timeEnd("Filtering "+g.length+" column"+((g.length==1)?"":"s"));this.maxPage=Math.floor(q/this.settings.pageLength)+((q%this.settings.pageLength)?1:0);this.updatePageNav(q,l.length,this.settings.pageLength)},sortTable:function(){var sl=this.sortList;var tb=this.tbody;var a="var sortProxy = function (a,b){ return alphaSort(";var b="";var c=",";var d="";var e=")}";$d.time("Sorting "+sl.length+" column"+((sl.length==1)?"":"s"));for(var i=0;i<sl.length;i++){b+=((i)?"+":"")+((sl[i].sortAsc)?"a":"b")+"[0]["+sl[i].index+"][0]";c+=((i)?"+":"")+((sl[i].sortAsc)?"b":"a")+"[0]["+sl[i].index+"][0]"}eval(a+b+c+d+e);var alphaSort=function(a,b){if(a==b){return 0}if(a<b){return -1}return 1};this.allRows.sort(sortProxy);$d.timeEnd("Sorting "+sl.length+" column"+((sl.length==1)?"":"s"));this.filterTable("sort")},pageNav:function(d){var c=d.target.id.substr(4,d.target.id.length-4);var b=this.currentPage;var a=this.maxPage;var f;switch(c){case"First":if(b!==1){this.currentPage=1}break;case"Prev":if(b>1){this.currentPage=this.currentPage-1}break;case"Current":f=parseInt($("#pageCurrent").val());if(f!=this.currentPage){this.currentPage=(f>a)?a:f}break;case"Next":if(b<a){this.currentPage=this.currentPage+1}break;case"Last":if(b!==a){this.currentPage=a}break;case"Records":f=parseInt($("#pageRecords").val());if(f!=this.settings.pageLength){this.currentPage=1;this.settings.pageLength=f;this.saveUserSettings("pageLength",this.settings.pageLength)}break}this.filterTable("filter")},updatePageNav:function(c,g,b){var a=this;var h=/(\-disabled\.gif)/;var f=function(k){var j;if(h.test(k)){return k}else{j=k.split(".");j.pop();return j.join(".")+"-disabled.gif"}};var d=function(k){var j;if(h.test(k)){return k.replace(h,".gif")}else{return k}};$("#pageFirst").add("#pagePrev").attr("src",function(){return(a.maxPage===1||a.currentPage==1)?f(this.src):d(this.src)});$("#pageCurrent").val(this.currentPage.toString());$("#pageLast").add("#pageNext").attr("src",function(){return(a.maxPage===1||a.currentPage==a.maxPage)?f(this.src):d(this.src)});$("#pageCount").text(this.maxPage.toString());$("#pageVisible").text(c.toString());$("#pageTotal").text(g.toString())},menu:{count:0,isAnimating:false,enablePlugins:function(a){if(confirm("Are you sure you want to "+((a.settings.loadPlugins)?"disable":"enable")+" plugins?")){a.saveUserSettings("loadPlugins",((a.settings.loadPlugins)?false:true));window.location.reload()}},showDebug:function(a){$d.debug=(a.settings.showDebug)?false:true;a.saveUserSettings("showDebug",((a.settings.showDebug)?false:true));if(confirm("Debug "+((a.settings.showDebug)?"disabled.":"enabled.")+" Reload? "+((a.settings.showDebug)?"":"(You're going to need firebug to see this...)"))){window.location.reload()}}},saveUserSettings:function(a,c){var b={};if(jQuery.cookie){b[a]=c;this.userSettings=JSON.toJSONString(jQuery.extend({},this.userSettings,b));jQuery.cookie("daemach.tf.userSettings",this.userSettings,{expires:10,path:"/"})}},parseTable:function(){$d.time("Parse Table");var g=[];var d=[];var m=[];var k=this.table.rows;var f=false;var l=false;var p;var o=this;var h=this.settings.imagePath;var t=k.length-Math.round((k.length/2),0);for(var a=k.length-1;a>=0;a--){p=k[a];if(a==k.length-1){m.push([k[a].cells.length,a])}f=k[a].cells.length!==m[m.length-1][0];if(g.length||((a<t)&&f)||a==0){g.push(k[a])}if((a>t)&&!l){if(f){l=true}else{d.push(k[a])}}if(f){m.push([k[a].cells.length,a]);f=false}}this.cellsLength=m;var n=jQuery("thead",this.table);var s=jQuery("tfoot",this.table);if(!n.size()){n=jQuery("<thead />").prependTo(this.table);var q=this.cellsLength.reverse();if(q.length==2&&(q[1][1]-q[0][1])>t){if(q[0][0]<q[1][0]){g.reverse().push(k[q[0][1]+1]);g.reverse()}}jQuery(g).each(function(){jQuery(this).prependTo(n)})}if(!s.size()){s=jQuery("<tfoot />").prependTo(this.table);if(d.length<3){}}this.headerRows[0]=jQuery("tr:last-child",n)[0];this.headerRows[1]=jQuery(this.headerRows[0]).clone().attr("id","tableFilter_header").appendTo($("#filterHolder")).children().empty().end()[0];this.tbody=jQuery("tbody",this.table)[0];var c=0;var j=jQuery("tr",this.tbody)[0];j=jQuery(j).children();j.each(function(){var r=jQuery(this).attr("colspan");c+=(r)?r:1});this.actualCellCount=c;this.cellCount=j.size();this.settings.pageLength=(this.settings.pageLength>this.tbody.rows.length)?this.tbody.rows.length:this.settings.pageLength;if(this.settings.paging&&this.tbody.rows.length){this.maxPage=Math.floor(this.tbody.rows.length/this.settings.pageLength)+((this.tbody.rows.length%this.settings.pageLength)?1:0);this.pagingRow=jQuery(this.headerRows[1]).clone().removeAttr("id").empty().appendTo(s);var b='<td colspan="'+this.cellCount+'" align="left" nowrap="nowrap" valign="middle"><div id="p_base"> <img id="pageFirst" src="'+h+'/page-first-disabled.gif" align="absmiddle" alt=""> <img id="pagePrev" src="'+h+'/page-prev-disabled.gif" align="absmiddle" alt="">  <span id="pageControl">Ñòðàíèöà <input id="pageCurrent" size="2" value="1" type="text"> èç <span id="pageCount">'+this.maxPage+'</span></span> <span id="pageHolder"></span><img id="pageNext" src="'+h+'/page-next.gif" align="absmiddle" alt=""> <img id="pageLast" src="'+h+'/page-last.gif" align="absmiddle" alt=""></div></td>';this.pagingRow.append(b).find("img").css("cursor","pointer").bind("click",this,function(r){r.data.pageNav(r)}).end().find("input").addClass("filter").bind("keyup",this,function(r){r.data.pageNav(r)}).bind("blur",this,function(r){r.data.pageNav(r)}).bind("keydown",function(r){if((r.keyCode<48||r.keyCode>57)&&r.keyCode!=47&r.keyCode!=8){return false}});this.createMenuItem("TableFilter "+this.version,this.mainMenu);this.createSeparator(this.mainMenu);this.createMenuItem(((this.settings.loadPlugins)?"Disable":"Enable")+" plugins",this.mainMenu,function(){o.menu.enablePlugins(o)});this.createMenuItem(((this.settings.showDebug)?"Hide":"Show")+" debug info",this.mainMenu,function(){o.menu.showDebug(o)});this.createSeparator(this.mainMenu)}this.colgroup=jQuery("colgroup",this.table);if(!this.colgroup.size()){this.colgroup=jQuery("<colgroup>"+"<col/>".repeat(this.cellCount)+"</colgroup>").prependTo(this.table)}else{this.colgroup=this.colgroup[0]}$d.timeEnd("Parse Table")},createMenu:function(b,c,a,q,g,j,d,o){var f,k,l,h,n=this,p=false;c=$(c).css("position","relative");b=b||"menu_"+this.menu.count++;if(!this.menu.className){this.menu.className=b;p=true}if(o){p=true}else{o=this.menu.className}if(p){k=$d.cw.rgb2hex($d.cm.getRootStyle(c[0],"backgroundColor"));k=k.substring(k.length-6);l=$d.cw.ccLighter(k,0.15);h=$d.cw.ccDarker(k,0.15);$d.cm.setRule("."+o+" li","border: 1px solid; border-color: #"+l+" #"+h+" #"+h+" #"+l+"; background-color: #"+k+";");$d.cm.setRule("."+o+" li:hover","border: 1px solid; border-color: #"+h+" #"+l+" #"+l+" #"+h+";");$d.cm.setRule("."+o+" li.separator","height:3px; border: 1px solid; border-color: #"+h+" #"+l+" #"+l+" #"+h+";")}f=$('<div id="'+b+'" class="menu '+o+'"><ul id="'+b+'_root"></ul></div>').appendTo(c);var s=(a===null)?c:a;var r=parseInt(s.offsetHeight)+parseInt(s.style.padding||0)+parseInt(s.style.borderBottomWidth||0)+parseInt(s.style.borderTopWidth||0);var m=parseInt(c[0].offsetHeight)+parseInt(c[0].style.padding||0)+parseInt(c[0].style.borderBottomWidth||0)+parseInt(c[0].style.borderTopWidth||0);switch(q){case"up":f[0].style.bottom=(m+((r-m)/2)-1)+"px";break;case"down":f[0].style.top=(m+((r-m)/2)-1)+"px";break}if(a.nodeName.toLowerCase()=="td"&&a.cellIndex==this.cellCount-1){f[0].style.right="-2px"}else{f[0].style.left="-2px"}if(g){j=j||"mouseover";d=d||"mouseout";jQuery(g).bind(j,function(){if(!n.menu.isAnimating){$("#"+b).slideToggle("fast",function(){n.menu.isAnimating=false});n.menu.isAnimating=true}return false});jQuery("#"+b).truemouseout(function(){if(!n.menu.isAnimating){$(this).slideUp("fast",function(){n.menu.isAnimating=false});n.menu.isAnimating=true}return false})}return f},createSubMenu:function(b,a){a=jQuery(a).children("ul").eq(0);var c=jQuery('<li class="submenu"></li>').appendTo(a).hover(function(){$(this).addClass("over")},function(){$(this).removeClass("over")}).append('<table cellspacing="0" cellpadding="0" style="background-color: transparent;" width="100%"><tr style="background-color: transparent;"><td>'+b+'</td><td align="right">>>></td></tr></table><ul class="submenu" id="'+b+'_submenu"></ul>');return c},createMenuItem:function(d,c,b,f){c=jQuery(c).children("ul").eq(0);var a=jQuery("<li>"+d+"</li>").appendTo(c);if(b){a.bind("click",b)}if(f){a.attr("id",f)}return a},createSeparator:function(b){b=jQuery(b).children("ul").eq(0);var a=jQuery('<li class="separator">&nbsp;</li>').appendTo(b)},guessDataType:function(m,h){var f,d,j,l,b=0,k=0,g=0;if(m.length>100){j=Math.floor(m.length*0.1)}else{j=Math.floor(m.length*0.2)||1}for(var a=0;a<m.length;a++){l=m[a].cells[h];f=this.getText(l).trim();if(f.length){f=this.getDataType(f);break}}b=a+1;while(b<m.length){d=this.getText(m[b].cells[h]).trim();d=this.getDataType(d);if(!d.length||f==d){k++}b+=j;g++}if((k/g)<0.75){return"string"}else{return f}},makeTempColumn:function(b,d){this.tmpCol={};var a=this.tmpCol;a.dataType=b;a.uniqueCount=0;a.root=this;a.index=d;switch(a.dataType){case"string":a.uniqueText=[];break;case"date":a.uniqueYears=[];a.uniqueMonths=[];break;case"number":a.decimals=false;a.lengthChange=false;a.uniqueText=[];break}a.sortAsc=null;a.defaultSortAsc=true;a.maxLen=null;a.reparse=false},parseColumns:function(){$d.time("Parse Column Data");var s=this.tbody.rows;var m=s.length;var l=this.cellCount;var q,n,b,g,d,o,f,k,p,j={};for(var h=0;h<l;h++){dataType=this.guessDataType(s,h);this.makeTempColumn(dataType,h);p=0;$d.time("Parsing Column "+h);for(var a=0;a<m;a++){this.totalElements++;q=s[a];n=q.cells[h];if(!h){this.allRows[a]=[[],s[a],true]}k="c"+h+" r"+a+" "+n.className;o=(!this.browserSucks)?n.textContent.trim():n.innerText.trim();if(!this.browserSucks||m<500){n.className=k}this.allRows[a][0][h]=this.parseText(o);if(o.length){p+=o.length}}$d.timeEnd("Parsing Column "+h);if(this.tmpCol.reparse){$d.time("Reparsing column "+h);for(a=0;a<m;a++){o=this.allRows[a][0][h][1];if(o.length){this.allRows[a][0][h]=this.parseText(o)}}$d.timeEnd("Reparsing column "+h)}if(p){switch(this.tmpCol.dataType){case"string":this.tmpCol.uniqueText.sort();break;case"date":this.tmpCol.uniqueMonths.sort();this.tmpCol.uniqueYears.sort();break;case"number":this.tmpCol.uniqueText.sort();break}this.cols[h]=new jQuery.colFilter(this.tmpCol);if(this.settings.loadPlugins){this.addPlugins(this.cols[h])}}}$d.timeEnd("Parse Column Data")},addPlugins:function(c){var a=jQuery.tblFilter.tfPlugins,b;if(a[c.dataType].length){for(var d=0;d<a[c.dataType].length;d++){c.pluginList.push(new a[c.dataType][d](c));b=c.pluginList[c.pluginList.length-1].name;if(!this.plugins[b]){this.plugins[b]={}}}this.pluginList.push(c);c.initPlugins()}},parseText:function(c){var b,a=this.tmpCol;if(c.length){b=this.parse[a.dataType](a,c)}else{switch(a.dataType){case"date":b=["00000101","01/01/0000"];break;case"number":b=["0".repeat(a.maxLen),0,0];break;case"string":b=["",""];break}}return b},parse:{string:function(b,c){var a=[];a[0]=c.toLowerCase().replace(/[^\w]*/g,"");a[1]=c;if(b.uniqueCount<=b.root.uniqueLength&&b.uniqueText.indexOf(c)<0){b.uniqueText.push(c);b.uniqueCount++}if(b.maxLen===null){b.maxLen=a[1].length}if(b.maxLen<a[1].length){b.maxLen=a[1].length}return a},date:function(a,n){var f=[],o,d,g,h,j;var c=function(p){o="0"+p;return o.substring(o.length-2)};var m=function(q,p){if(a.uniqueMonths.length<12&&a.uniqueMonths.indexOf(q)<0){a.uniqueMonths.push(q)}if(a.uniqueCount<=a.root.uniqueLength&&a.uniqueYears.indexOf(p)<0){a.uniqueYears.push(p);a.uniqueCount++}};var l=function(p){return p.getFullYear().toString()};var b=function(p){return c(p.getMonth()+1)};var k=function(p){return c(p.getDate())};d=Date.parse(n);if(isNaN(d)){a.dataType="string";a.reparse=true}if(!a.reparse){d=new Date(d);h=l(d);g=b(d);j=k(d);m(g,h);f[0]=h+g+j}else{f[0]="00000000"}f[1]=n;return f},number:function(a,k){var j,f,d,g,c=false,h=[];var b=["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"];d=a.root.settings.decimalPlaces;g=Number(k.replace(/[$£¥€,~+]?/g,""));if(isNaN(g)){a.dataType="string";a.reparse=true}j=g.toFixed(d).split(".");if(!a.reparse){a.decimals=(k.indexOf(".")>=0);if(a.maxLen===null){a.maxLen=8}if(a.maxLen<j[0].length){a.reparse=true;a.maxLen=j[0].length}else{if(!a.reparse){j[0]=b.slice(0,a.maxLen-j[0].length).concat(j[0].split("")).join("")}}if(a.uniqueCount<=a.root.uniqueLength&&a.uniqueText.indexOf(k)<0){a.uniqueText.push(k);a.uniqueCount++}h[0]=j.join(".");h[1]=k;h[2]=g}else{if(a.maxLen<j[0].length){a.maxLen=j[0].length}h[0]=0;h[1]=k;h[2]=0}return h}},lockColumns:function(b){$d.time("Lock Columns");var a=jQuery(this.colgroup).children().get();var c=this.table;c.style.width="";c.style.tableLayout="";for(i=0;i<a.length;i++){a[i].style.width=""}for(i=0;i<a.length;i++){a[i].style.width=a[i].offsetWidth+"px"}c.style.width=c.offsetWidth+"px";if(!this.browserSucks){}$d.timeEnd("Lock Columns")},buildColumns:function(){$d.time("Build Headers");var c=this;var d=jQuery(this.colgroup).children();var b=jQuery(this.headerRows[0]).children();var a=jQuery(this.headerRows[1]).children();jQuery.each(c.cols,function(g,f){jQuery(d[g]).addClass("sortable-col");if(f){f.buildSort(b[g]);if((f.dataType=="date"&&f.uniqueMonths.length>1)||(f.dataType!="date"&&f.uniqueText.length>1)){f.buildFilter(a[g])}}});$d.timeEnd("Build Headers")},getDataType:function(a){if(!isNaN(Date.parse(a))){return"date"}else{if(!isNaN(Number(a.replace(/[$£¥€,~+]?/g,"")))){return"number"}else{return"string"}}},getBrowserTextField:function(){return(document.body.innerText)?function(a){return a.innerText}:function(a){return a.textContent}},clearSortList:function(){var a=this.sortList;for(var b=a.length-1;b>=0;b--){a[b].clearSort();a.pop()}},clearFilterList:function(){var a=this.filterList;for(var b=a.length-1;b>=0;b--){a[b].clearFilter();a.pop()}},filterFocus:function(c,b){var a=this.filterList;if(a.indexOf(c.data)>=0&&c.ctrlKey){a.splice(a.indexOf(c.data),1);c.data.clearFilter()}else{this.lastFilterElement=c.target;this.lastFilterCtrl=c.ctrlKey}}},tfPlugins:{date:[],number:[],string:[]},addPlugin:function(b,a){if(typeof a=="undefined"||a=="all"){jQuery.tblFilter.tfPlugins.date.push(b);jQuery.tblFilter.tfPlugins.string.push(b);jQuery.tblFilter.tfPlugins.number.push(b)}else{jQuery.tblFilter.tfPlugins[a].push(b)}jQuery.extend(b.prototype,{addRow:function(d,g){var c=this.col.root,f;if(typeof d=="undefined"){d="footer"}if(typeof g=="undefined"){g="blank"}if(c.plugins[this.name].row){f=jQuery(c.plugins[this.name].row)}else{switch(g){case"blank":f=c.plugins[this.name].row=jQuery(c.allRows[0][1]).clone().removeClass(c.settings.stripeClass);break;case"sortRow":f=c.plugins[this.name].row=jQuery(c.headerRows[1]).clone();break;case"pageRow":f=c.plugins[this.name].row=jQuery(c.headerRows[1]).clone();break}switch(d){case"header":f.attr("id",this.name+"_row").addClass(this.name+"_row").appendTo("thead").children().empty().end();break;case"footer":f.attr("id",this.name+"_row").addClass(this.name+"_row").prependTo("tfoot").children().empty().end();break}}return f},getHeaderText:function(){var c=jQuery(this.col.root.headerRows[0]).children().eq(this.col.index);return jQuery(c).text()},preInit:function(){this.cmi=0},postInit:function(){this.cmi=0},getMainMenuRoot:function(){var c=this.col.root;if(!c.plugins[this.name].menu){c.plugins[this.name].menu=c.createSubMenu(this.name,c.mainMenu)}return c.plugins[this.name].menu},addMenu:function(d,f,c,l,h,j,g){var k=this.col.root,m=this.col.index;return k.createMenu(d,f,c,l,h,j,g)},addSubMenu:function(f,d){var c=this.col.root;return c.createSubMenu(f,d)},addMenuItem:function(j,h,g){var c=this.col.root,f=this.col.index,d,l,k;k=jQuery(h).children("ul").eq(0).attr("id");l=k+"_mi_"+this.cmi;d=jQuery("#"+l);if(!d.size()){c.createMenuItem(j,h,g,l)}this.cmi++}})}});jQuery.colFilter=function(a){jQuery.extend(this,jQuery.colFilter.defaults,a);this.pluginList=[];this.lastFilterVal=""};jQuery.extend(jQuery.colFilter,{defaults:{dataType:"text",filterType:"search",filter:true,sort:true},prototype:{sortColumn:function(f){var a=this.root.sortList;var d=this.sortParentEle;if((a.indexOf(this)>=0)){if(f.ctrlKey){this.clearSort();a.splice(a.indexOf(this),1)}else{var b=(this.sortAsc)?"asc":"desc";var c=(!this.sortAsc)?"asc":"desc";jQuery(d).removeClass("sorted-"+b).addClass("sorted-"+c);this.sortAsc=!this.sortAsc}}else{if(a.length&&!f.ctrlKey){this.root.clearSortList()}a.push(this);if(this.defaultSortAsc){jQuery(d).addClass("sorted-asc")}else{jQuery(d).addClass("sorted-desc")}jQuery(this.parentCol).addClass("sorted-col");this.sortAsc=this.defaultSortAsc}$d.time("Total sort time");if(a.length){this.root.sortTable(f)}$d.timeEnd("Total sort time");$d.log(" ")},clearSort:function(){var a=(this.sortAsc)?"asc":"desc";jQuery(this.sortParentEle).removeClass("sorted-"+a);jQuery(this.parentCol).removeClass("sorted-col");this.sortAsc=this.defaultSortAsc},buildSort:function(a){this.sortParentEle=a;this.parentCol=jQuery(this.root.colgroup).children()[this.index];jQuery(a).addClass("sortable").css("cursor","pointer").bind("click",this,function(b){b.data.sortColumn(b,this)})},filterColumn:function(g){var d=this.root.filterList;var a=this.filterField;var f=(a.length>1)?a[0].value.length+a[1].value.length:a[0].value.length;var b=this;var c=function(){var h=a[0].value;if(b.dataType=="number"){if(!h.match(/(^[\.><=-])(\d+)/)&&!h.match(/(^[><]=)(\d*\.*\d+)/)&&!h.match(/(\d*\.*\d+)\s*-\s*(\d*\.*\d+)/)&&!h.match(/(^\d*\.*\d+$)/)){return false}}return true};if(g.type!="keyup"||(g.type=="keyup"&&!a[0].value.length)||(g.type=="keyup"&&a[0].value!=this.lastFilterVal&&c())){if(d.indexOf(this)<0&&f){if(d.length&&this.root.lastFilterElement==g.target&&!this.root.lastFilterCtrl&&!(g.type=="keyup"&&(g.ctrlKey||g.shiftKey||g.altKey))){this.root.clearFilterList()}d.push(this);jQuery(this.filterParentEle).addClass("filtered")}else{if((!f&&d.indexOf(this)>=0)){d.splice(d.indexOf(this),1);this.clearFilter()}}this.lastFilterVal=a[0].value;this.root.currentPage=1;this.cFilter=this.getFilter();$d.time("Total filter time");this.root.filterTable("filter");$d.timeEnd("Total filter time");$d.log(" ")}},clearFilter:function(){jQuery(this.filterParentEle).removeClass("filtered");jQuery(this.filterField).val("")},getFilter:function(){switch(this.dataType){case"string":return function(c){return(c[0].length)?(c[0].indexOf(this.filterField[0].value.toLowerCase().replace(/[^\w]*/g,""))>=0):false};break;case"date":return function(f){var h,d,g,c,j;if(f[0]===null||!f[0].length){return false}else{h=this.filterField;d=h[0].value.length;g=h[1].value.length;c=(d&&h[0].value==f[0].substr(4,2));j=(g&&h[1].value==f[0].substr(0,4));return((d&&g&&c&j)||(!g&&d&&c)||(!d&&g&&j))}};break;case"number":var b=this.filterField[0].value;var a;if(b.match(/(^[><])(\d*\.*\d+)/)){a=/(^[><])(\d*\.*\d+)/.exec(b);return function(c){var d=c[2];return(c[0].length)?((a[1]==">")?(d>a[2]):(d<a[2])):false}}else{if(b.match(/(^[><]=)(\d*\.*\d+)/)){a=/(^[><]=)(\d*\.*\d+)/.exec(b);return function(c){var d=c[2];return(c[0].length)?((a[1]==">=")?(d>=a[2]):(d<=a[2])):false}}else{if(b.match(/(\d*\.*\d+)\s*-\s*(\d*\.*\d+)/)){a=/(\d*\.*\d+)\s*-\s*(\d*\.*\d+)/.exec(b);return function(c){var d=c[2];return(c[0].length)?(d>a[1]&&d<a[2]):false}}else{if(b.match(/(^=)(\d*\.*\d+)/)){a=/(^=)(\d*\.*\d+)/.exec(b);return function(c){var d=c[2];return(c[0].length)?(d==a[2]):false}}else{return function(c){return(c[0].length)?(c[0].indexOf(this.filterField[0].value)>=0):false}}}}}break}},buildFilter:function(b){var a;this.filterParentEle=b;this.filterField=[];jQuery(b).addClass("filterRow");switch(this.dataType){case"string":if(this.uniqueText.length<=this.root.uniqueLength){this.addField(b,"select",this.uniqueText)}else{this.addField(b,"text")}break;case"date":this.addField(b,"select",this.uniqueMonths);this.addField(b,"select",this.uniqueYears);break;case"number":this.addField(b,"text",null,true);break}},addField:function(g,h,k,j){k=k||[];h=h||"text";j=j||false;var f,d,a,b={text:'<input type="text" value="" />',select:document.createElement("select"),option:"<option></option>"};switch(h){case"text":f=(this.maxLen>20)?"20":this.maxLen;d=jQuery(b.text);d=d.attr("size",f).appendTo(g).addClass("filter").bind("keyup",this,function(l){l.data.filterColumn(l,this)}).bind("click",this,function(l){l.data.root.filterFocus(l,this)});if(j){d.bind("keypress",this,function(r){var n=this.value;var s=r.charCode||r.keyCode;var o=0;var q=function(t){t=t||s;var u=((t>=48&&t<=57)||t===46)?true:false;return u};var m=function(t){t=t||s;var u=(t===45||t===60||t===61||t===62)?true:false;return u};var p=function(t){t=t||s;var u=(t===8||t===46)?true:false;return u};switch(n.length){case 0:if(!q(s)&&!m(s)){return false}break;case 1:o=n.charCodeAt(0);if((o===60||o===62)&&s!==61&&!q(s)&&!p(s)){return false}else{if((o===45||o===61)&&!q(s)&&!p(s)){return false}else{if(!q(s)&&!p(s)&&s!==61&&s!==45){return false}else{if(s==46&&n.indexOf(".")>=0){return false}}}}break;default:var l=n.match(/([<>=-])/g);if(!q()&&!p(s)&&s!==45||(s===45&&l)){return false}break}})}break;case"select":d=jQuery(b.select).appendTo(g).addClass("filter");a=b.option;for(var c=0;c<k.length;c++){a+='<option value="'+k[c]+'">'+k[c]+"</option>"}jQuery(d).append(a);d.bind("change",this,function(l){l.data.filterColumn(l,this)}).bind("click",this,function(l){l.data.root.filterFocus(l,this)}).val("");$(g).attr("nowrap","nowrap");break}this.filterField.push(d[0])},initPlugins:function(){var a=this.pluginList;for(var b=0;b<a.length;b++){$d.time("Plugin init: "+a[b].name+" column "+a[b].col.index);a[b].preInit();a[b].init();a[b].postInit();$d.timeEnd("Plugin init: "+a[b].name+" column "+a[b].col.index)}},startPlugins:function(d,g,c){var a=this.pluginList;for(var b=0;b<a.length;b++){a[b].start(d,g,c)}},processPlugins:function(g,c,h,b){var d=this.pluginList;for(var f=0;f<d.length;f++){d[f].process(g,c,h,b)}},finishPlugins:function(){var a=this.pluginList;for(var b=0;b<a.length;b++){a[b].finish()}}}});
