function getConcatenedTextContent(node)
   {
   var _result = "";
   if (node == null) return _result;
   var childrens = node.childNodes;
   var i = 0;
   while (i < childrens.length)
      {
      var child = childrens.item(i);
      switch (child.nodeType)
         {
         case 1:
         case 5:
            _result += getConcatenedTextContent(child);
            break;
         case 3:
         case 2:
         case 4:
            _result += child.nodeValue;
            break;
         case 6:
         case 7:
         case 8:
         case 9:
         case 10:
         case 11:
         case 12:

         break;
         }
      i++;
      }
   return _result;
   }

var up = false;

function sort(e)
   {
   var el = window.event ? window.event.srcElement : e.currentTarget;
   if (el.tagName == "IMG") el = el.parentNode;
   var a = new Array();
   var name = el.lastChild.nodeValue;
   var dad = el.parentNode;
   var node, arrow, curcol;
   for (var i = 0; (node = dad.getElementsByTagName("th").item(i)); i++)
      {
      if (node.lastChild.nodeValue == name)
         {
         curcol = i;
         if (node.className == "curcol")
            {
            arrow = node.firstChild;
            up = Number(!up);
            arrow.src = "assets/images/arrow_up.gif";
            arrow.style.margin = "0 7px"
            }
         else
            {
            node.className = "curcol";
            arrow = node.insertBefore(document.createElement("img"),node.firstChild);
            up = false;
            arrow.src = "assets/images/arrow_down.gif";
            arrow.style.margin = "0 7px"
            }
         }
      else
         {
         if (node.className == "curcol")
            {
            node.className = "";
            if (node.firstChild) node.removeChild(node.firstChild);
            }
         }
      }

   var tbody = dad.parentNode.parentNode.getElementsByTagName("tbody").item(0);
   for (var i = 0; (node = tbody.getElementsByTagName("tr").item(i)); i++)
      {
      a[i] = new Array();
      a[i][0] = getConcatenedTextContent(node.getElementsByTagName("td").item(curcol));
      a[i][1] = getConcatenedTextContent(node.getElementsByTagName("td").item(1));
      a[i][2] = getConcatenedTextContent(node.getElementsByTagName("td").item(0));
      a[i][3] = node;
      }

   a.sort();

   if (up) a.reverse();

   for (var i = 0; i < a.length; i++)
      tbody.appendChild(a[i][3]);
   }

function init(e)
   {
   if (!document.getElementsByTagName) return;
   var thead = document.getElementsByTagName("thead").item(0);
   var node;
   for (var i = 0; (node = thead.getElementsByTagName("th").item(i)); i++)
      {
      if (node.addEventListener) node.addEventListener("click", sort, false);
      else if (node.attachEvent) node.attachEvent("onclick", sort);
      node.title = "Нажмите на заголовок, чтобы отсортировать колонку";
      }

   thead.getElementsByTagName("th").item(0).click();
   }


var root = window.addEventListener || window.attachEvent ? window : document.addEventListener ? document : null;
if (root)
   {
   if (root.addEventListener) root.addEventListener("load", init, false);
   else if (root.attachEvent) root.attachEvent("onload", init);
   }