var sortType=""
var isNumDate=false

function sortTable(sortCol, fromRow, sortNum, isImg, isDate){
   var sortArray=new Array();
   var objDiv=document.getElementById("sortTable");
   var objTable=objDiv.getElementsByTagName("table")[0];
   var objSortType=document.getElementById("sortType");
       sortType=objSortType.value;
   var objLastSortCol=document.getElementById("lastSortCol");
   var lastSortCol=objLastSortCol.value;

   isNumDate=isDate;

   setSortImg(sortCol);
   
   if (lastSortCol != sortCol){
      objLastSortCol.value=sortCol;
      objSortType.value="desc";
      sortType="asc";
   }else{
      if (sortType == "asc") objSortType.value="desc";
      else objSortType.value="asc";
   }

   result="<table "+ getTagAttr(objTable) +">";
   for (i=0; i<fromRow; i++){
      result+="<tr "+ getTagAttr(objTable.rows[i]) +">"+objTable.rows[i].innerHTML+"</tr>\n";
   }
   
   if (!isImg) for (i=fromRow; i<objTable.rows.length; i++) sortArray[i-fromRow]={colData: objTable.rows[i].cells[sortCol].innerHTML.replace('&nbsp;',''), rowId: i};
   else for (i=fromRow; i<objTable.rows.length; i++){
            if (isImg == 1 ){
               sortImg=objTable.rows[i].cells[sortCol].firstChild.src.split("/");
               sortImg=sortImg[sortImg.length-1];
            } else if (isImg == 2){
               if (tempD=objTable.rows[i].cells[sortCol].childNodes[1]){
                  sortImg=tempD.data.replace('&nbsp;','');
               }else sortImg=objTable.rows[i].cells[sortCol].innerHTML.replace('&nbsp;','');
            }
            sortArray[i-fromRow]={colData: sortImg, rowId: i};            
         }
         
   if(!sortNum) sortArray=sortArray.sort(sortString);
   else sortArray=sortArray.sort(sortNumbers);
   
   for (i=0; i<sortArray.length; i++) result+="<tr "+ getTagAttr(objTable.rows[sortArray[i].rowId]) +">"+objTable.rows[sortArray[i].rowId].innerHTML+"</tr>\n";
   result+="</table>";
   objDiv.innerHTML='';
   objDiv.innerHTML=result+"</table>";
}

function sortString(a, b){
   x=a.colData;
   y=b.colData;
   if(sortType == "asc") return ((x < y) ? -1 : ((x > y) ? 1 : 0));
   else return ((x > y) ? -1 : ((x < y) ? 1 : 0));
}

function sortNumbers(a, b){
   x=a.colData;
   y=b.colData;
   x=x.replace('?','0');
   y=y.replace('?','0');
   tmpX=x.split(".");
   tmpY=y.split(".");
   if (tmpX.length == 4){
      x="";
      y="";
      for (var i=0; i<4; i++){
         if (tmpX[i].length==1)tmpX[i]="00"+tmpX[i]; else if (tmpX[i].length==2)tmpX[i]="0"+tmpX[i];
         if (tmpY[i].length==1)tmpY[i]="00"+tmpY[i]; else if (tmpY[i].length==2)tmpY[i]="0"+tmpY[i];
         x+=tmpX[i];
         y+=tmpY[i];
      }
   }

   if (isNumDate){
      x=new Date(x.substr(6,4),x.substr(3,2)-1,x.substr(0,2),x.substr(11,2),x.substr(14,2),00).getTime().toString().substring(0,10);
      y=new Date(y.substr(6,4),y.substr(3,2)-1,y.substr(0,2),y.substr(11,2),y.substr(14,2),00).getTime().toString().substring(0,10);
   }
   
   if(sortType == "asc") return  x - y;
   else return  y - x;
}

function getTagAttr(objTag){
   rowAttr="";
   for (var i=0; i<objTag.attributes.length; i++){
      if(objTag.attributes[i].specified) rowAttr+=tagName=objTag.attributes[i].name+"=\""+objTag.attributes[i].value+"\" ";
   }
   return rowAttr;
}

function setSortImg(imgIndex){
   var n=0

   while(oSortImg=document.getElementById('sortImg'+n)){
      if(n != imgIndex){
         oSortImg.style.visibility="hidden";
         oSortImg.src="/images/astrapaging/asc.gif";
      } else {
         imgName=oSortImg.src.split('/');
         imgName=imgName[imgName.length-1];
         if (imgName == "asc.gif") oSortImg.src="/images/astrapaging/desc.gif";
         else oSortImg.src="/images/astrapaging/asc.gif";
         oSortImg.style.visibility='visible';

      }
      n++;
   }
}

