var SORT_COLUMN_INDEX;function sortables_init(){if(!document.getElementsByTagName)return;tbls=document.getElementsByTagName("table");for(ti=0;ti<tbls.length;ti++){thisTbl=tbls[ti];if(((' '+thisTbl.className+' ').indexOf("sortable")!=-1)&&(thisTbl.id)){ts_makeSortable(thisTbl);}}}function ts_makeSortable(table){if(table.rows&&table.rows.length>0){var aiy=table.rows[0]}if(!aiy)return;for(var i=0;i<aiy.cells.length;i++){var ed=aiy.cells[i];if(ed.style.display=="none"||ed.style.visibility=="hidden")continue;var j=0;var txt=ts_getInnerText(ed);var pz=ed.getElementsByTagName("a");var bbv=new Array();var aiz=0;for(j=0;j<pz.length;j++){var bsa=(pz[j].getAttribute("class")?pz[j].getAttribute("class"):pz[j].getAttribute("className"));if(bsa!="sortheader"){bbv[aiz]=pz[j].cloneNode(true);aiz++}}var bbw=ed.getElementsByTagName("input");var bbx=new Array();var aja=0;for(j=0;j<bbw.length;j++){bbx[aja]=bbw[j].cloneNode(true);aja++}var bby=ed.getElementsByTagName("select");var bbz=new Array();var ajb=0;for(j=0;j<bby.length;j++){bbz[ajb]=bby[j].cloneNode(true);ajb++}ed.innerHTML='<span style="font-weight: bold;" onclick="ts_resortTable(this.nextSibling);return false;">'+txt+'</span><a href="#" class="sortheader" onclick="ts_resortTable(this);return false;"><span class="sortarrow">&nbsp;&uarr;&darr;</span></a>';for(j=0;j<aja;j++){ed.appendChild(bbx[j]);}for(j=0;j<aiz;j++){ed.appendChild(bbv[j]);}for(j=0;j<ajb;j++){ed.appendChild(bbz[j]);}}}function ts_persistCheckbox(event){var bca=event.currentTarget?event.currentTarget:event.srcElement;bca.defaultChecked=bca.checked;return true}function ts_getNodeByAttribute(el,sAttributeName,sAttributeValue){if(typeof el=="string")return el;if(typeof el=="undefined"){return el};var wo=null;var qa=el.childNodes;var bcb=sAttributeName.toLowerCase();var bcc=sAttributeValue.toLowerCase();for(var i=0;i<qa.length;i++){if(qa[i].nodeType==1){var sValue=qa[i].getAttribute(bcb);if(sValue&&sValue.toLowerCase()==bcc){wo=qa[i];break}wo=ts_getNodeByAttribute(qa[i],bcb,bcc);if(wo)break}}return wo}function ts_getInnerText(el){if(typeof el=="string")return el;if(typeof el=="undefined"){return el};var str="";var is=el.childNodes;var l=is.length;var ajc="";for(var i=0;i<l;i++){var wp=is[i].nodeName.toLowerCase();if((wp=="input")&&(is[i].type=="checkbox")){if(is[i].checked)ajc="1";else ajc="0"}else if((wp=="a")||(wp=="input")||(wp=="select"))continue;switch(is[i].nodeType){case 1:str+=ts_getInnerText(is[i]);break;case 3:str+=is[i].nodeValue;break}}if(str=="")str=ajc;return str}function ts_resortTable(node,bSortDown){var isIE=(navigator.appName.indexOf("Microsoft")>=0?true:false);var kz=null;var bn=null;var bu=null;switch(node.tagName.toLowerCase()){case"a":bn=node;bu=bn.parentNode;break;case"span":bu=node.parentNode;for(var index=0;index<bu.childNodes.length;index++){if(bu.childNodes[index]&&bu.childNodes[index].tagName&&(bu.childNodes[index].tagName.toLowerCase()=="a")&&((bu.childNodes[index].getAttribute("className")=="sortheader")||(bu.childNodes[index].getAttribute("class")=="sortheader"))){bn=node.childNodes[index]}}break;case"td":bu=node;if(bu.firstChild&&node.firstChild.tagName){bn=bu.firstChild;while((bn!=null&&bn.tagName.toLowerCase()!="a"&&bn.getAttribute("className")!="sortheader")){bn=bn.nextSibling}}break;default:break}if(!bn||!bu)return;for(var dh=0;dh<bn.childNodes.length;dh++){if(bn.childNodes[dh].tagName&&bn.childNodes[dh].tagName.toLowerCase()=='span')kz=bn.childNodes[dh]}var buz=ts_getInnerText(kz);var table=getParent(bu,'TABLE');if(isIE){var qb=table.getElementsByTagName("input");for(var i=0;i<qb.length;i++){if(qb[i].type.toLowerCase()=='checkbox'){qb[i].defaultChecked=qb[i].checked;addEvent(qb[i],"change",ts_persistCheckbox);}}}if(table.rows.length<=1)return;var it=1;for(i=1;i<table.rows.length;i++){if((table.rows[i].getAttribute("className")=="nosort")||(table.rows[i].getAttribute("class")=="nosort"))it++;else break}if(table.rows.length<=it)return;var ajd=bu.cellIndex;if(isIE){for(var i=0;i<table.rows[it].cells.length;i++){if(table.rows[it].cells[i].style.display=="none")ajd++;else break}}var qc=ts_getInnerText(table.rows[it].cells[ajd]);if(qc==null)return;sortfn=ts_sort_caseinsensitive;if(qc.match(/^\d\d[\/-]\d\d[\/-]\d\d\d\d$/))sortfn=ts_sort_date;if(qc.match(/^\d\d[\/-]\d\d[\/-]\d\d$/))sortfn=ts_sort_date;if(qc.match(/^[£$]/))sortfn=ts_sort_currency;if(qc.match(/^[\d\.]+$/))sortfn=ts_sort_numeric;SORT_COLUMN_INDEX=ajd;var qd=new Array();var qe=it;var bcd=0;for(i=table.rows.length-1;i>=it;i--){if((table.rows[i].getAttribute("className")=="nosort")||(table.rows[i].getAttribute("class")=="nosort"))bcd++;else break}for(j=qe;j<(table.rows.length-bcd);j++){qd[j-qe]=table.rows[j]}qd.sort(sortfn);if((kz.getAttribute("sortdir")=='down')&&!(arguments.length<2?false:bSortDown)){ARROW='&nbsp;&nbsp;&uarr;';qd.reverse();kz.setAttribute('sortdir','up');}else{ARROW='&nbsp;&nbsp;&darr;';kz.setAttribute('sortdir','down');}var di=new Array();for(j=0;j<table.rows.length-1;j++){if((j<(qe-1))||(j>=(qd.length+qe-1)))di[j]=table.rows[j+1];else di[j]=qd[j-qe+1]}for(i=0;i<di.length;i++){if(!di[i].className||(di[i].className&&(di[i].className.indexOf('sortbottom')==-1)))table.tBodies[0].appendChild(di[i]);}for(i=0;i<di.length;i++){if(di[i].className&&(di[i].className.indexOf('sortbottom')!=-1))table.tBodies[0].appendChild(di[i]);}var wq=document.getElementsByTagName("span");for(var dh=0;dh<wq.length;dh++){if(wq[dh].className=='sortarrow'){if(getParent(wq[dh],"table")==getParent(bn,"table")){wq[dh].innerHTML='&nbsp;&nbsp;&nbsp;'}}}kz.innerHTML=ARROW}function getParent(el,pTagName){if(el==null)return null;else if(el.nodeType==1&&el.tagName.toLowerCase()==pTagName.toLowerCase())return el;else return getParent(el.parentNode,pTagName);}function ts_sort_date(a,b){aa=ts_getInnerText(a.cells[SORT_COLUMN_INDEX]);bb=ts_getInnerText(b.cells[SORT_COLUMN_INDEX]);if(aa.length==10){dt1=aa.substr(6,4)+aa.substr(3,2)+aa.substr(0,2);}else{yr=aa.substr(6,2);if(parseInt(yr)<50){yr='20'+yr}else{yr='19'+yr}dt1=yr+aa.substr(3,2)+aa.substr(0,2);}if(bb.length==10){dt2=bb.substr(6,4)+bb.substr(3,2)+bb.substr(0,2);}else{yr=bb.substr(6,2);if(parseInt(yr)<50){yr='20'+yr}else{yr='19'+yr}dt2=yr+bb.substr(3,2)+bb.substr(0,2);}if(dt1==dt2)return 0;if(dt1<dt2)return-1;return 1}function ts_sort_currency(a,b){aa=ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'');bb=ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'');return parseFloat(aa)-parseFloat(bb);}function ts_sort_numeric(a,b){aa=parseFloat(ts_getInnerText(a.cells[SORT_COLUMN_INDEX]));if(isNaN(aa))aa=0;bb=parseFloat(ts_getInnerText(b.cells[SORT_COLUMN_INDEX]));if(isNaN(bb))bb=0;return aa-bb}function ts_sort_caseinsensitive(a,b){aa=ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).toLowerCase();bb=ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).toLowerCase();if(aa==bb)return 0;if(aa<bb)return-1;return 1}function ts_sort_default(a,b){aa=ts_getInnerText(a.cells[SORT_COLUMN_INDEX]);bb=ts_getInnerText(b.cells[SORT_COLUMN_INDEX]);if(aa==bb)return 0;if(aa<bb)return-1;return 1}function addEvent(elm,evType,fn,useCapture){if(elm.addEventListener){elm.addEventListener(evType,fn,useCapture);return true}else if(elm.attachEvent){var r=elm.attachEvent("on"+evType,fn);return r}else{alert("Handler could not be removed");}}