/* ---------------------------------------------------------------------- *
z0002_Load()
zServerMUI(obj)
z100_Light(obj)
z100_PrintCell(nVal, nTotal)
z100_Tab(obj, obj2)
z100_TBody(nTable, nMode)
z1049_PressKey(nKey)
zComposer_Click(nPar)
zFind(obj)
zSearch_Letter(obj)
zSearch_Tab(obj)
zSort_Client(obj)
zSort_Server(obj)
/* ---------------------------------------------------------------------- */
function z0002_Load()
{
  zCopyright();
  
  var nVal = getCookie("MUI");
  if (nVal != null) nVal = strToInt(nVal);
  nMUI = (nVal==1049 ? 1049 : 1033);
} //z0002_Load
/* ---------------------------------------------------------------------- */
function zServerMUI(obj)
{
  if (!obj) return (false);
//  var nVal = obj.firstChild.src;
//  nVal = parseInt(n.slice(n.lastIndexOf("/")+1));
  var nVal = parseInt(obj.id.split("_")[1], 10);
  if (nMUI == nVal) return (false);
  setCookie("MUI", nMUI);

  document.location = document.location.pathname + "?lang=" + nMUI;
  return (false);
} //zServerMUI
/* ---------------------------------------------------------------------- */
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 = ".." + cSources + 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 || getInnerText(obj.innerHTML).charCodeAt(0) < 192) //** cyrillic 'A'
    {
      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 z100_Tab(obj, obj2)
{
  if (obj.className == "tab_0") return;
  obj.className  = "tab_0";
  obj2.className = "tab_1";
  var nMode = strToInt(obj.getAttribute("name").split("_")[1]);
  var oTable = obj.offsetParent;
  var nTable = strToInt(oTable.getAttribute("id").split("_")[1]);
  var oTD = getElementsByAttr0(oTable, "TD", "name", "tbody");
  oTD.innerHTML = z100_TBody(nTable, nMode);
} //z100_Tab
/* ---------------------------------------------------------------------- */
function z100_Light(obj)
{
  var oTable = getParentByTagName(obj, "TABLE");
  var obj1 = getElementsByAttr0(oTable, "TD", "name", "tab_0");
  var obj2 = getElementsByAttr0(oTable, "TD", "name", "tab_1");
  obj2.className = "tab_1";
  z100_Tab(obj2, obj1);
} //z100_Light
/* ---------------------------------------------------------------------- */
function z100_TBody(nTable, nMode)
{ //** aTable, aTotal, aNotes, aMax - declared in 100.asp
  var cStep  = 8;
  var cDelta = 14;
  var cFirst = 128;

  var oTable = document.getElementById("table_"+nTable);
  var oLight = getElementsByAttr0(oTable, "INPUT", "name", "light");
  var bLight = (oLight && oLight.checked);

  var nTotal = (!nMode ? 100 : aTotal[nTable]);
  var aSum = [];
  for (var nFeet=1; nFeet<aTable[nTable][0].length; nFeet++)
    aSum[nFeet] = 0;

  var sText = "<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0>";
  for (var nIndex=0; nIndex<aTable[nTable].length; nIndex++)
  {
    var nFoot = aTable[nTable][nIndex][0];
    var sNote = (aNotes[nTable][nFoot] ? aNotes[nTable][nFoot] : "&nbsp;");
    sText += "\n<TR ALIGN=right><TD CLASS=t>" + cFootConst[nFoot][1] + "<SUP CLASS=refnote>" + sNote + "</SUP></TD>";
    var nSum = 0;
    for (var nFeet=1; nFeet<aTable[nTable][nIndex].length; nFeet++)
    {
      var nVal = aTable[nTable][nIndex][nFeet];
      var sColor = "";
      if (!nMode)
      {
        if (aMax[nTable] < nVal) aMax[nTable] = nVal;
      }
      else if (nVal && bLight)
      {
        var nColor = cFirst + cDelta * (cStep - Math.floor(cStep * nVal / aMax[nTable]));
        sColor = formatByMask(nColor.toString(16), "00");
        sColor = "background-color:#" + strRepeat(sColor, 2) + "FF;";
        if (nColor < 127) sColor += "color:White;";
      }
      sText += "<TD CLASS=n STYLE='" + sColor + "'>" + z100_PrintCell(nVal, nTotal) + "</TD>";
      nSum += nVal;
      aSum[nFeet] += nVal;
    } //nFeet
    sText += "<TD CLASS=m>" + z100_PrintCell(nSum, nTotal) + "</TD></TR>";
  } //nIndex

  sText += "\n<TR ALIGN=right><TD CLASS=t2>Итого</TD>";
  var nSum = 0;
  for (var nFeet=1; nFeet<aTable[nTable][0].length; nFeet++)
  {
    sText += "<TD CLASS=l>" + aSum[nFeet] + "</TD>";
    nSum += aSum[nFeet];
  } //nFeet
  sText += "<TD CLASS=l STYLE='border-color:Black;'>" + z100_PrintCell(nSum, nTotal) + "</TD></TR></TABLE>";

  if (!nMode) aTotal[nTable] = nSum;
  return (sText);
} //z100_TBody
/* ---------------------------------------------------------------------- */
function z100_PrintCell(nVal, nTotal)
{
  if (!nVal) return ("&nbsp;");
  return (Math.round(nVal *1000/nTotal)/10);
} //z100_PrintCell
/* ---------------------------------------------------------------------- */

