TF.prototype.SetSortTable=function(){var a=this;var k=a.fObj;var c=false;a.sortImgPath=k!=undefined&&k.sort_images_path!=undefined?k.sort_images_path:"images/tablefilter/";a.sortImgBlank=k!=undefined&&k.sort_image_blank!=undefined?k.sort_image_blank:"blank.png";a.Evt._Paging.nextEvt=function(){if(a.sorted&&a.alternateBgs){a.Filter()}};a.Evt._Paging.prevEvt=a.Evt._Paging.nextEvt;a.Evt._Paging.firstEvt=a.Evt._Paging.nextEvt;a.Evt._Paging.lastEvt=a.Evt._Paging.nextEvt;a.Evt._OnSlcPagesChangeEvt=a.Evt._Paging.nextEvt;a.onBeforeSort=k!=undefined&&tf_isFn(k.on_before_sort)?k.on_before_sort:null;a.onAfterSort=k!=undefined&&tf_isFn(k.on_after_sort)?k.on_after_sort:null;if((typeof SortableTable)=="undefined"){return}SortableTable.prototype.headerOnclick=function(i){if(!a.sort){return}var f=i.target||i.srcElement;while(f.tagName!="TD"&&f.tagName!="TH"){f=f.parentNode}this.sort(SortableTable.msie?SortableTable.getCellIndex(f):f.cellIndex)};SortableTable.prototype.initHeader=function(j){if(!this.tHead){return}this.headersRow=a.headersRow;var n=this.tHead.rows[this.headersRow].cells;var p=this.tHead.ownerDocument||this.tHead.document;this.sortTypes=j||[];var f=n.length;var m,q;for(var o=0;o<f;o++){q=n[o];if(this.sortTypes[o]!=null&&this.sortTypes[o]!="None"){q.style.cursor="pointer";m=p.createElement("IMG");m.src=a.sortImgPath+a.sortImgBlank;q.appendChild(m);if(this.sortTypes[o]!=null){q.setAttribute("_sortType",this.sortTypes[o])}if(typeof q.addEventListener!="undefined"){q.addEventListener("click",this._headerOnclick,false)}else{if(typeof q.attachEvent!="undefined"){q.attachEvent("onclick",this._headerOnclick)}else{q.onclick=this._headerOnclick}}}else{q.setAttribute("_sortType",j[o]);q._sortType="None"}}this.updateHeaderArrows()};SortableTable.prototype.updateHeaderArrows=function(){var o,f,m;if(a.sortConfig.asyncSort&&a.sortConfig.triggerIds!=null){var q=a.sortConfig.triggerIds;o=[],f=q.length;for(var n=0;n<q.length;n++){o.push(tf_Id(q[n]))}}else{if(!this.tHead){return}o=this.tHead.rows[this.headersRow].cells;f=o.length}for(var p=0;p<f;p++){if(o[p].getAttribute("_sortType")!=null&&o[p].getAttribute("_sortType")!="None"){m=o[p].lastChild||o[p];if(m.nodeName.tf_LCase()!="img"){m=tf_CreateElm("img",["src",a.sortImgPath+a.sortImgBlank]);o[p].appendChild(m)}if(p==this.sortColumn){m.className="sort-arrow "+(this.descending?"descending":"ascending")}else{m.className="sort-arrow"}}}};SortableTable.getInnerText=function(f){return tf_GetNodeText(f)};var h=[];for(var g=0;g<a.nbCells;g++){var e;if(this.sortConfig.sortTypes!=null&&this.sortConfig.sortTypes[g]!=null){e=this.sortConfig.sortTypes[g].tf_LCase();if(e=="none"){e="None"}}else{if(a.hasColNbFormat&&a.colNbFormat[g]!=null){e=a.colNbFormat[g].tf_LCase()}else{if(a.hasColDateType&&a.colDateType[g]!=null){e=a.colDateType[g].tf_LCase()+"date"}else{e="String"}}}h.push(e)}SortableTable.prototype.addSortType("number",Number);SortableTable.prototype.addSortType("caseinsensitivestring",SortableTable.toUpperCase);SortableTable.prototype.addSortType("date",SortableTable.toDate);SortableTable.prototype.addSortType("string");SortableTable.prototype.addSortType("us",usNumberConverter);SortableTable.prototype.addSortType("eu",euNumberConverter);SortableTable.prototype.addSortType("dmydate",dmyDateConverter);SortableTable.prototype.addSortType("ymddate",ymdDateConverter);SortableTable.prototype.addSortType("mdydate",mdyDateConverter);SortableTable.prototype.addSortType("ddmmmyyyydate",ddmmmyyyyDateConverter);SortableTable.prototype.addSortType("ipaddress",ipAddress,sortIP);this.st=new SortableTable(this.tbl,h);if(this.sortConfig.asyncSort&&this.sortConfig.triggerIds!=null){var l=this.sortConfig.triggerIds;for(var d=0;d<l.length;d++){if(l[d]==null){continue}var b=tf_Id(l[d]);if(b){b.style.cursor="pointer";b.onclick=function(){if(a.sort){a.st.asyncSort(l.tf_IndexByValue(this.id,true))}};b.setAttribute("_sortType",h[d])}}}if(this.sortConfig.sortCol){this.st.sort(this.sortConfig.sortCol[0],this.sortConfig.sortCol[1])}this.isSortEnabled=true;this.st.onbeforesort=function(){if(a.onBeforeSort){a.onBeforeSort.call(null,a,a.st.sortColumn)}a.Sort();if(a.paging){c=true;a.paging=false;a.RemovePaging()}};this.st.onsort=function(){a.sorted=true;if(a.alternateBgs){var j=a.tbl.rows,o=0;function n(r,p,q){if(q==undefined){q=false}tf_removeClass(r,a.rowBgEvenCssClass);tf_removeClass(r,a.rowBgOddCssClass);if(!q){tf_addClass(r,p%2?a.rowBgEvenCssClass:a.rowBgOddCssClass)}}for(var f=a.refRow;f<a.nbRows;f++){var m=j[f].getAttribute("validRow");if(a.paging&&j[f].style.display==""){n(j[f],o);o++}else{if((m=="true"||m==null)&&j[f].style.display==""){n(j[f],o);o++}else{n(j[f],o,true)}}}}if(c){a.AddPaging(false);a.SetPage(a.currentPageNb);c=false}if(a.onAfterSort){a.onAfterSort.call(null,a,a.st.sortColumn)}}};function usNumberConverter(a){return tf_removeNbFormat(a,"us")}function euNumberConverter(a){return tf_removeNbFormat(a,"eu")}function dateConverter(a,b){return tf_formatDate(a,b)}function dmyDateConverter(a){return dateConverter(a,"DMY")}function mdyDateConverter(a){return dateConverter(a,"MDY")}function ymdDateConverter(a){return dateConverter(a,"YMD")}function ddmmmyyyyDateConverter(a){return dateConverter(a,"DDMMMYYYY")}function ipAddress(b){var a=b.split(".");for(x in a){b=a[x];while(3>b.length){b="0"+b}a[x]=b}b=a.join(".");return b}function sortIP(d,c){var e=ipAddress(d.value.tf_LCase());var f=ipAddress(c.value.tf_LCase());if(e==f){return 0}else{if(e<f){return -1}else{return 1}}};
