      /* ---------------------------------------------------------------------- *
      getTagOuterText(obj)
      z1049_PressKey(nKey)
      zComposer_Click(nPar)
      zFind(obj)
      zSearch_Letter(obj)
      zSearch_Tab(obj)
      zSort_Client(obj)
      zSort_Server(obj)
      /* ---------------------------------------------------------------------- */
      function z1049_PressKey(nKey) // called from ../1049.ru/000.asp
      {
        if (nKey > 1071) nKey -= 32;
        if (nKey >= 1040 && nKey <= 1071 && sPrefix.length > 0)
          document.location.replace("#" + sPrefix + nKey);
      } //z1049_PressKey
      /* ---------------------------------------------------------------------- */
      function zComposer_Click(obj)
      {
        document.getElementById("iframeText").src = "../1049.ru/" + obj.name + ".htm";
        document.getElementById("tableMain").scrollIntoView(true);
        return (false);
      } //zComposer_Click
      /* ---------------------------------------------------------------------- */
      function zSearch_Tab(obj)
      {
        if (strToInt(obj.style.paddingTop) > 0) return (false);
        nCurrent = parseInt(obj.id.substring(obj.id.length - 1, obj.id.length));
        var nSecond = (1 - nCurrent);
        var oSecond = document.getElementById("aTab" + nSecond);

        if (nSecond == 1)
        {
          oSecond.style.borderLeftWidth = 0;
          obj.style.borderRightWidth = 1;
        }
        else
        {
          oSecond.style.borderRightWidth = 0;
          obj.style.borderLeftWidth = 1;
        }

        obj.style.paddingTop = 2;
        obj.style.borderBottomColor = sColor1;
        obj.style.backgroundColor = sColor1;
        obj.style.color = sColor3;

        oSecond.style.paddingTop = 0;
        oSecond.style.borderBottomColor = sColor3;
        oSecond.style.backgroundColor = sColor2;
        oSecond.style.color = sColor1;

        obj.blur();
        zSearch_Letter(document.getElementById("td00"));
        return (false);
      } //zSearch_Tab
      /* ---------------------------------------------------------------------- */
      function zSearch_Letter(obj)
      {
        for (var i=0; i<=28; i++)
        {
          var oTD = document.getElementById("td" + (100 + i).toString().substring(1, 3));
          oTD.style.borderColor = sColor3;
          oTD.style.borderRightColor = sColor1;
          var oA  = oTD.lastChild;
          if (oA != obj && oA.style.color != sColor1)
          {
            oTD.style.borderRightWidth = 1;
            oTD.style.backgroundColor  = sColor2;
            oA.style.color = sColor1;
          }
        }

        var oTD = obj.parentNode; //offsetParent
        oTD.style.borderRightWidth = 0;
        oTD.style.backgroundColor  = sColor1;
        obj.style.color = sColor3;
        obj.hidefocus = true;

        var sField = new Array("selectTitle", "selectFirst");
        var vList  = document.getElementById(sField[nCurrent]).options;

        document.getElementById("selectBlock").innerHTML = "";
        var vBlock = document.getElementById("selectBlock").options;
        //for (var i=vBlock.length-1; i>=0; i--) vBlock.remove(i);

        for (var i=0; i<vList.length; i++)
        {
          var sLetter = vList[i].text.substring(0, 1);
          if (sLetter == obj.innerHTML || obj.innerHTML < "À")
          {
            var oOption = document.createElement("OPTION");
            vBlock.add(oOption);
            oOption.text  = vList[i].text;
            oOption.value = vList[i].value;
            oOption.selected = vList[i].selected;
          }
          else if (sLetter > obj.innerHTML.toString())
            break;
        } //i

        return (false);
      } //zSearch_Letter
      /* ---------------------------------------------------------------------- */
      function zSort_Server(obj)
      {
        if (obj) document.forms["Main"].elements["Action"].value = obj.id;
        document.forms["Main"].submit();
        //history.back();
        return(false);
      } //zSort_Server
      /* ---------------------------------------------------------------------- */
      function zSort_Client(obj, nKeyLen) //nKeyLen must be specified for numeric sort
      {
        bSortDesc = (!bSortDesc);
        var sSep = String.fromCharCode(0);
        var sMask = ""
        for (var nIndex=0; nIndex<nKeyLen; nIndex++) sMask += "0";

        var oCell = obj.parentNode;
        var nKey = 0;
        for (var nIndex=0; nIndex<oCell.parentNode.cells.length; nIndex++)
        {
          if (oCell == oCell.parentNode.cells[nIndex]) break;
          nKey += oCell.parentNode.cells[nIndex].colSpan;
        }

        var aList = new Array();
        var oList = document.getElementById("tableList").getElementsByTagName("TBODY")[0];
        for (var nIndex=0; nIndex<oList.rows.length; nIndex++)
        {
          var nCount = aList.length;
          aList[nCount] = top.getInnerText(oList.rows[nIndex].cells[nKey].innerHTML);
          if (nKeyLen > 0)
          {
            aList[nCount] = strToInt(aList[nCount]);
            if (bSortDesc) aList[nCount] = Math.pow(10, nKeyLen) - 1 - aList[nCount];
            aList[nCount] = sMask + aList[nCount];
            aList[nCount] = aList[nCount].substring(aList[nCount].length - sMask.length, aList[nCount].length);
          }
          aList[nCount] += (sSep + getTagOuterText(oList.rows[nIndex]) + oList.rows[nIndex].innerHTML + "</tr>");
        }

        aList.sort();
        for (var nIndex=0; nIndex<aList.length; nIndex++)
          aList[nIndex] = aList[nIndex].substring(aList[nIndex].indexOf(sSep) + sSep.length, aList[nIndex].length);
        document.getElementById("divTable").innerHTML =
          '<table id="tableList" cellpadding=0 cellspacing=0 border=0 bordercolor="White"><THEAD>' +
          document.getElementById("tableList").getElementsByTagName("THEAD")[0].innerHTML + "</THEAD>" + aList.join("\r\n") + '</table>';
        return (false);
      } //zSort_Client
      /* ---------------------------------------------------------------------- */
      function zFind(obj)
      {
        var oForm = document.forms["formFind"];
        oForm.elements["q"].value = obj.innerHTML;
        oForm.submit();
        return (false);
      } //zFind
      /* ---------------------------------------------------------------------- */
      function getTagOuterText(obj)
      {
        var sAttr = obj.outerHTML;
        if (sAttr) return (sAttr.substring(0, sAttr.indexOf(">")+1));

        sAttr = "<" + obj.tagName;
        for (var nIndex=0; nIndex<obj.attributes.length; nIndex++)
        {
          var sDelim = "'";
          if (obj.attributes[nIndex].value.indexOf(sDelim) >= 0) sDelim = '"';
          sAttr += " " + obj.attributes[nIndex].name + "=" + sDelim + obj.attributes[nIndex].value + sDelim;
        }
        return (sAttr + ">");
      } //getTagOuterText
      /* ---------------------------------------------------------------------- */
