var _sIndex = -1;
var _sDir = 0;

function Sort(num)
{
    count = 0;

    for(tN=1; tN<100; tN++)
    {
        tab = $('sortable'+tN);
//        alert("Direction: " + _sDir);
//        alert(count);

        if(tab == null) break;
//        alert("Table " + tN);

        if(_sIndex != -1)
        {
            str = 'TDS'+tN+_sIndex;
            $(str).removeClassName("az");
            $(str).removeClassName("za");
        }


         tBody = tab.getElementsByTagName("tbody")[0];
         tr = tBody.childNodes;


        for(i=tr.length-1; i>=0; i--)
        {
            for(j=0; j<i; j++)
            {
                td = tr[j].childNodes;
                td1 = td[num-1].getElementsByTagName("span")[0];
                value = td1.firstChild.nodeValue;

                if(num == 2)
                {
                    if(td1.getAttribute("value") > 0) value = parseInt(td1.getAttribute("value"));
                    else value = parseInt(value);
                }

                td2 = tr[j+1].childNodes;
                td2 = td2[num-1].getElementsByTagName("span")[0];
                value2 = td2.firstChild.nodeValue;

                if(num == 2)
                {
                    if(td2.getAttribute("value") > 0) value2 = parseInt(td2.getAttribute("value"));
                    else value2 = parseInt(value2);
                }

//                alert(value +"="+value2);
                count++;


                if(_sDir == 0 && value < value2)
                {
//                    alert(value + " > " +value2);
                    switchNodes(tr[j], tr[j+1]);
                }
                else if(_sDir == 1 && value > value2)
                {
//                    alert(value + " < " +value2);
                    switchNodes(tr[j], tr[j+1]);
                }
            }
        }

        // recolor TR's
        kk = 0;
        for(k=0; k<tr.length; k++)
        {
            if((kk%2)==0) $(tr[k]).addClassName("odd");
            else $(tr[k]).removeClassName("odd");
            kk++;
        }

        $('TDS'+tN+num).removeClassName("za");
        $('TDS'+tN+num).removeClassName("az");
        if(_sDir == 0) $('TDS'+tN+num).addClassName("za");
        else $('TDS'+tN+num).addClassName("az");
    }

    if(_sDir == 0) _sDir = 1;
    else if(_sDir == 1) _sDir = 0;

    _sIndex = num;
}

function switchNodes(firstNode, secondNode) 
{
    // запоминаем, где был второй нод
      var secondsNext, secondsParent;
      if (secondNode.nextSibling) secondsNext = secondNode.nextSibling;
      else secondsParent = secondNode.parentNode;

    // ставим второй перед первым
      firstNode.parentNode.insertBefore(secondNode, firstNode);

    // ставим первый на месте второго
    if (secondsNext) secondsNext.parentNode.insertBefore(firstNode, secondsNext);
    else secondsParent.appendChild(firstNode);

}

