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(_1){
if(_1.rows&&_1.rows.length>0){
var _2=_1.rows[0];
}
if(!_2){
return;
}
for(var i=0;i<_2.cells.length;i++){
var _4=_2.cells[i];
var _5=ts_getInnerText(_4);
_4.innerHTML="<a href=\"#\" class=\"sortheader\" onclick=\"ts_resortTable(this);return false;\">"+_5+"<span class=\"sortarrow\">&nbsp;&nbsp;&nbsp;</span></a>";
}
}
function ts_getInnerText(el){
if(typeof el=="string"){
return el;
}
if(typeof el=="undefined"){
return el;
}
if(el.innerText){
return el.innerText;
}
var _7="";
var cs=el.childNodes;
var l=cs.length;
for(var i=0;i<l;i++){
switch(cs[i].nodeType){
case 1:
_7+=ts_getInnerText(cs[i]);
break;
case 3:
_7+=cs[i].nodeValue;
break;
}
}
return _7;
}
function ts_resortTable(_b){
var _c;
for(var ci=0;ci<_b.childNodes.length;ci++){
if(_b.childNodes[ci].tagName&&_b.childNodes[ci].tagName.toLowerCase()=="span"){
_c=_b.childNodes[ci];
}
}
var _e=ts_getInnerText(_c);
var td=_b.parentNode;
var _10=td.cellIndex;
var _11=getParent(td,"TABLE");
if(_11.rows.length<=1){
return;
}
var itm=ts_getInnerText(_11.rows[1].cells[_10]);
sortfn=ts_sort_caseinsensitive;
if(itm.match(/^\d\d[\/-]\d\d[\/-]\d\d\d\d$/)){
sortfn=ts_sort_date;
}
if(itm.match(/^\d\d[\/-]\d\d[\/-]\d\d$/)){
sortfn=ts_sort_date;
}
if(itm.match(/^[£$]/)){
sortfn=ts_sort_currency;
}
if(itm.match(/^[\d\.]+$/)){
sortfn=ts_sort_numeric;
}
SORT_COLUMN_INDEX=_10;
var _13=new Array();
var _14=new Array();
for(i=0;i<_11.rows[0].length;i++){
_13[i]=_11.rows[0][i];
}
for(j=1;j<_11.rows.length;j++){
_14[j-1]=_11.rows[j];
}
_14.sort(sortfn);
if(_c.getAttribute("sortdir")=="down"){
ARROW="&nbsp;&nbsp;&uarr;";
_14.reverse();
_c.setAttribute("sortdir","up");
}else{
ARROW="&nbsp;&nbsp;&darr;";
_c.setAttribute("sortdir","down");
}
for(i=0;i<_14.length;i++){
if(!_14[i].className||(_14[i].className&&(_14[i].className.indexOf("sortbottom")==-1))){
_11.tBodies[0].appendChild(_14[i]);
}
}
for(i=0;i<_14.length;i++){
if(_14[i].className&&(_14[i].className.indexOf("sortbottom")!=-1)){
_11.tBodies[0].appendChild(_14[i]);
}
}
var _15=document.getElementsByTagName("span");
for(var ci=0;ci<_15.length;ci++){
if(_15[ci].className=="sortarrow"){
if(getParent(_15[ci],"table")==getParent(_b,"table")){
_15[ci].innerHTML="&nbsp;&nbsp;&nbsp;";
}
}
}
_c.innerHTML=ARROW;
}
function getParent(el,_17){
if(el==null){
return null;
}else{
if(el.nodeType==1&&el.tagName.toLowerCase()==_17.toLowerCase()){
return el;
}else{
return getParent(el.parentNode,_17);
}
}
}
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,_23,fn,_25){
if(elm.addEventListener){
elm.addEventListener(_23,fn,_25);
return true;
}else{
if(elm.attachEvent){
var r=elm.attachEvent("on"+_23,fn);
return r;
}else{
alert("Handler could not be removed");
}
}
}


