var fdTableSort={regExp_Currency:/^[???$?????????]/,regExp_Number:/^(\-)?[0-9]+(\.[0-9]*)?$/,pos:-1,uniqueHash:1,thNode:null,tableId:null,tableCache:{},tmpCache:{},colspan:"colspan",rowspan:"rowspan",addEvent:function(_1,_2,fn){if(_1.attachEvent){_1["e"+_2+fn]=fn;_1[_2+fn]=function(){_1["e"+_2+fn](window.event);};_1.attachEvent("on"+_2,_1[_2+fn]);}else{_1.addEventListener(_2,fn,false);}},stopEvent:function(e){e=e||window.event;if(e.stopPropagation){e.stopPropagation();e.preventDefault();}return false;},init:function(){if(!document.getElementsByTagName){return;}var _5=document.getElementsByTagName("table");var _6,sortable,headers,thtext,aclone,a,span,columnNum,noArrow,colCnt,cel,allRowArr,rowArr,sortableTable,celCount,colspan,rowspan,rowLength;a=document.createElement("a");a.href="#";a.onkeypress=fdTableSort.keyWrapper;span=document.createElement("span");for(var k=0,tbl;tbl=_5[k];k++){if(tbl.id&&tbl.id in fdTableSort.tableCache){delete fdTableSort.tableCache[tbl.id];}allRowArr=tbl.getElementsByTagName("thead").length?tbl.getElementsByTagName("thead")[0].getElementsByTagName("tr"):tbl.getElementsByTagName("tr");rowArr=[];sortableTable=false;for(var i=0,tr;tr=allRowArr[i];i++){if(tr.getElementsByTagName("td").length||!tr.getElementsByTagName("th").length){continue;}rowArr[rowArr.length]=tr.getElementsByTagName("th");for(var j=0,th;th=rowArr[rowArr.length-1][j];j++){if(th.className.search(/sortable/)!=-1){sortableTable=true;}}}if(!sortableTable){continue;}if(!tbl.id){tbl.id="fd-table-"+fdTableSort.uniqueHash++;}sortable=false;columnNum=tbl.className.search(/sortable-onload-([0-9]+)/)!=-1?parseInt(tbl.className.match(/sortable-onload-([0-9]+)/)[1])-1:-1;showArrow=tbl.className.search(/no-arrow/)==-1;reverse=tbl.className.search(/sortable-onload-([0-9]+)-reverse/)!=-1;rowLength=rowArr[0].length;for(var c=0;c<rowArr[0].length;c++){if(rowArr[0][c].getAttribute(fdTableSort.colspan)&&rowArr[0][c].getAttribute(fdTableSort.colspan)>1){rowLength=rowLength+(rowArr[0][c].getAttribute(fdTableSort.colspan)-1);}}_6=new Array(rowArr.length);for(var c=rowArr.length;c--;){_6[c]=new Array(rowLength);}for(var c=0;c<_6.length;c++){celCount=0;for(var i=0;i<rowLength;i++){if(!_6[c][i]){cel=rowArr[c][celCount];colspan=(cel.getAttribute(fdTableSort.colspan)>1)?cel.getAttribute(fdTableSort.colspan):1;rowspan=(cel.getAttribute(fdTableSort.rowspan)>1)?cel.getAttribute(fdTableSort.rowspan):1;for(var t=0;((t<colspan)&&((i+t)<rowLength));t++){for(var n=0;((n<rowspan)&&((c+n)<_6.length));n++){_6[(c+n)][(i+t)]=cel;}}if(++celCount==rowArr[c].length){break;}}}}for(var c=0;c<_6.length;c++){for(var i=0;i<_6[c].length;i++){if(_6[c][i].className.search("fd-column-")==-1){_6[c][i].className=_6[c][i].className+" fd-column-"+i;}if(_6[c][i].className.match("sortable")){_6[c][i].className=_6[c][i].className.replace(/forwardSort|reverseSort/,"");if(i==columnNum){sortable=_6[c][i];}thtext=fdTableSort.getInnerText(_6[c][i]);while(_6[c][i].firstChild){_6[c][i].removeChild(_6[c][i].firstChild);}aclone=a.cloneNode(true);aclone.appendChild(document.createTextNode(thtext));aclone.title="Ordina per "+thtext;a.onclick=_6[c][i].onclick=fdTableSort.clickWrapper;_6[c][i].appendChild(aclone);if(showArrow){_6[c][i].appendChild(span.cloneNode(false));}_6[c][i].className=_6[c][i].className.replace(/fd-identical|fd-not-identical/,"");fdTableSort.disableSelection(_6[c][i]);}}}fdTableSort.tmpCache[tbl.id]={cols:rowLength,headers:_6};if(sortable){fdTableSort.thNode=sortable;fdTableSort.initSort();if(reverse){fdTableSort.thNode=sortable;fdTableSort.initSort();}}}},disableSelection:function(_12){_12.onselectstart=function(){return false;};_12.unselectable="on";_12.style.MozUserSelect="none";},clickWrapper:function(e){e=e||window.event;if(fdTableSort.thNode==null){fdTableSort.thNode=this;fdTableSort.addSortActiveClass();setTimeout("fdTableSort.initSort()",5);}return fdTableSort.stopEvent(e);},keyWrapper:function(e){e=e||window.event;var kc=e.keyCode!=null?e.keyCode:e.charCode;if(kc==13){var _16=this;while(_16.tagName.toLowerCase()!="th"){_16=_16.parentNode;}fdTableSort.thNode=_16;fdTableSort.addSortActiveClass();setTimeout("fdTableSort.initSort()",5);return fdTableSort.stopEvent(e);}return true;},jsWrapper:function(_17,_18){if(!fdTableSort.tmpCache[_17]||fdTableSort.tmpCache[_17].headers[0].length<=_18||fdTableSort.tmpCache[_17].headers[0][_18].className.search(/fd-column/)==-1){return false;}fdTableSort.thNode=fdTableSort.tmpCache[_17].headers[0][_18];fdTableSort.addSortActiveClass();fdTableSort.initSort();},addSortActiveClass:function(){if(fdTableSort.thNode==null){return;}fdTableSort.addClass(fdTableSort.thNode,"sort-active");fdTableSort.addClass(document.getElementsByTagName("body")[0],"sort-active");if("sortInitiatedCallback" in window){var _19=fdTableSort.thNode;while(_19.tagName.toLowerCase()!="table"&&_19.parentNode){_19=_19.parentNode;}sortInitiatedCallback(_19.id);}},removeSortActiveClass:function(){fdTableSort.removeClass(fdTableSort.thNode,"sort-active");fdTableSort.removeClass(document.getElementsByTagName("body")[0],"sort-active");if("sortCompleteCallback" in window){var _1a=fdTableSort.thNode;while(_1a.tagName.toLowerCase()!="table"&&_1a.parentNode){_1a=_1a.parentNode;}sortCompleteCallback(_1a.id);}},addClass:function(e,c){if(new RegExp("(^|\\s)"+c+"(\\s|$)").test(e.className)){return;}e.className+=(e.className?" ":"")+c;},removeClass:function(e,c){e.className=!c?"":e.className.replace(new RegExp("(^|\\s*\\b[^-])"+c+"($|\\b(?=[^-]))","g"),"");},prepareTableData:function(_1f){var _20=[];var _21=_1f.getElementsByTagName("tbody");_21=_21.length?_21[0]:_1f;var trs=_21.getElementsByTagName("tr");var ths=_1f.getElementsByTagName("th");var _24=trs.length;var _25=fdTableSort.tmpCache[_1f.id].cols;var _26=[];var _27=new Array(_25);var _28=new Array(_25);var tr,td,th,txt,tds,col,row;var re=new RegExp(/fd-column-([0-9]+)/);var _2b=0;var _2c=[];for(var tmp=0,th;th=ths[tmp];tmp++){if(th.className.search(re)==-1){continue;}_2c[_2c.length]=th;}for(row=0;row<_24;row++){tr=trs[row];if(tr.getElementsByTagName("th").length>0||(tr.parentNode&&tr.parentNode.tagName.toLowerCase()=="tfoot")){continue;}_26[_2b]=[];tds=tr.getElementsByTagName("td");for(var tmp=0,th;th=_2c[tmp];tmp++){col=th.className.match(re)[1];td=tds[col];txt=fdTableSort.getInnerText(td)+" ";txt=txt.replace(/^\s+/,"").replace(/\s+$/,"");if(th.className.search(/sortable-date/)!=-1){txt=fdTableSort.dateFormat(txt,th.className.search(/sortable-date-dmy/)!=-1);}else{if(th.className.search(/sortable-numeric|sortable-currency/)!=-1){txt=parseFloat(txt.replace(/[^0-9\.\-]/g,""));if(isNaN(txt)){txt="";}}else{if(th.className.search(/sortable-text/)!=-1){txt=txt.toLowerCase();}else{if(th.className.search(/sortable-([a-zA-Z\_]+)/)!=-1){if((th.className.match(/sortable-([a-zA-Z\_]+)/)[1]+"PrepareData") in window){txt=window[th.className.match(/sortable-([a-zA-Z\_]+)/)[1]+"PrepareData"](td,txt);}}else{if(th.className.search(/sortable-keep/)!=-1){txt=_2b;}else{if(txt!=""){fdTableSort.removeClass(th,"sortable");if(fdTableSort.dateFormat(txt)!=0){fdTableSort.addClass(th,"sortable-date");txt=fdTableSort.dateFormat(txt);}else{if(txt.search(fdTableSort.regExp_Number)!=-1||txt.search(fdTableSort.regExp_Currency)!=-1){fdTableSort.addClass(th,"sortable-numeric");txt=parseFloat(txt.replace(/[^0-9\.\-]/g,""));if(isNaN(txt)){txt="";}}else{fdTableSort.addClass(th,"sortable-text");txt=txt.toLowerCase();}}}}}}}}if(_2b>0&&_28[col]!=txt){_27[col]=false;}_28[col]=txt;_26[_2b][col]=txt;}_26[_2b][_25]=tr;_2b++;}var _2f=_1f.className.search(/colstyle-([\S]+)/)!=-1?_1f.className.match(/colstyle-([\S]+)/)[1]:false;var _30=_1f.className.search(/rowstyle-([\S]+)/)!=-1?_1f.className.match(/rowstyle-([\S]+)/)[1]:false;fdTableSort.tableCache[_1f.id]={data:_26,identical:_27,colStyle:_2f,rowStyle:_30,noArrow:_1f.className.search(/no-arrow/)!=-1};},initSort:function(){var _31;var _32=fdTableSort.thNode;var _33=fdTableSort.thNode;while(_33.tagName.toLowerCase()!="table"&&_33.parentNode){_33=_33.parentNode;}if(!_33.id||!(_33.id in fdTableSort.tableCache)){fdTableSort.prepareTableData(_33);}fdTableSort.tableId=_33.id;fdTableSort.pos=_32.className.match(/fd-column-([0-9]+)/)[1];var _34=fdTableSort.tableCache[_33.id];var _35=_34.pos?_34.pos.className.match(/fd-column-([0-9]+)/)[1]:-1;var _36=_34.data;var _37=_34.colStyle;var _38=_34.rowStyle;var _39=_36.length;var _3a=_36[0].length-1;var _3b=_34.identical[fdTableSort.pos]==false?false:true;var _3c=_34.noArrow;if(_35!=fdTableSort.pos&&_35!=-1){var th=_34.pos;fdTableSort.removeClass(th,"forwardSort");fdTableSort.removeClass(th,"reverseSort");if(!_3c){_31=th.getElementsByTagName("span")[0];while(_31.firstChild){_31.removeChild(_31.firstChild);}}}var _3e="forwardSort";if((_35==fdTableSort.pos&&!_3b)||_32.className.match(/sortable-keep/)){_36.reverse();_3e=_32.className.search(/reverseSort/)!=-1?"forwardSort":"reverseSort";if(_32.className.match(/sortable-keep/)){fdTableSort.tableCache[_33.id].pos=_32;}}else{fdTableSort.tableCache[_33.id].pos=_32;if(!_3b){if(_32.className.match(/sortable-numeric|sortable-currency|sortable-date|sortable-keep/)){_36.sort(fdTableSort.sortNumeric);}else{if(_32.className.match("sortable-text")){_36.sort(fdTableSort.sortText);}else{if(_32.className.search(/sortable-([a-zA-Z\_]+)/)!=-1&&_32.className.match(/sortable-([a-zA-Z\_]+)/)[1] in window){_36.sort(window[_32.className.match(/sortable-([a-zA-Z\_]+)/)[1]]);}}}}}fdTableSort.removeClass(_32,"forwardSort");fdTableSort.removeClass(_32,"reverseSort");fdTableSort.addClass(_32,_3e);if(!_3c){var _3f=_32.className.search(/forwardSort/)!=-1?" \u2193":" \u2191";_31=_32.getElementsByTagName("span")[0];while(_31.firstChild){_31.removeChild(_31.firstChild);}_31.appendChild(document.createTextNode(_3f));}if(!_38&&!_37&&_3b){fdTableSort.removeSortActiveClass();fdTableSort.thNode=null;return;}var _40=_33.getElementsByTagName("tbody");_40=_40.length?_40[0]:_33;var tr;for(var i=0;i<_39;i++){tr=_36[i][_3a];if(_37){if(_35!=-1){fdTableSort.removeClass(tr.getElementsByTagName("td")[_35],_37);}fdTableSort.addClass(tr.getElementsByTagName("td")[fdTableSort.pos],_37);}if(!_3b){if(_38){if(i%2){fdTableSort.addClass(tr,_38);}else{fdTableSort.removeClass(tr,_38);}}_40.removeChild(tr);_40.appendChild(tr);}}fdTableSort.removeSortActiveClass();fdTableSort.thNode=null;},getInnerText:function(el){if(typeof el=="string"||typeof el=="undefined"){return el;}if(el.innerText){return el.innerText;}var txt="",i;for(i=el.firstChild;i;i=i.nextSibling){if(i.nodeType==3){txt+=i.nodeValue;}else{if(i.nodeType==1){txt+=fdTableSort.getInnerText(i);}}}return txt;},dateFormat:function(_45,_46){var _47=[{regExp:/^(0[1-9]|1[012])([- \/.])(0[1-9]|[12][0-9]|3[01])([- \/.])(\d\d?\d\d)$/,d:3,m:1,y:5},{regExp:/^(0[1-9]|[12][0-9]|3[01])([- \/.])(0[1-9]|1[012])([- \/.])(\d\d?\d\d)$/,d:1,m:3,y:5},{regExp:/^(\d\d?\d\d)([- \/.])(0[1-9]|1[012])([- \/.])(0[1-9]|[12][0-9]|3[01])$/,d:5,m:3,y:1}];var _48;var cnt=0;var _4a=_47.length;while(cnt<_4a){_48=(cnt+(_46?_4a+1:_4a))%_4a;if(_45.match(_47[_48].regExp)){res=_45.match(_47[_48].regExp);y=res[_47[_48].y];m=res[_47[_48].m];d=res[_47[_48].d];if(m.length==1){m="0"+String(m);}if(d.length==1){d="0"+String(d);}if(y.length!=4){y=(parseInt(y)<50)?"20"+String(y):"19"+String(y);}return y+String(m)+d;}cnt++;}return 0;},sortDate:function(a,b){var aa=a[fdTableSort.pos];var bb=b[fdTableSort.pos];return aa-bb;},sortNumeric:function(a,b){var aa=a[fdTableSort.pos];var bb=b[fdTableSort.pos];if(aa===""&&!isNaN(bb)){return -1;}else{if(bb===""&&!isNaN(aa)){return 1;}else{if(aa==bb){return 0;}}}return aa-bb;},sortText:function(a,b){var aa=a[fdTableSort.pos];var bb=b[fdTableSort.pos];if(aa==bb){return 0;}if(aa<bb){return -1;}return 1;}};fdTableSort.addEvent(window,"load",fdTableSort.init);
