/* ---------------------------------------------------------------------- */
var sVersion     = "2012-01-02";
var nGUI         = 1.5;
var nMUI         = 1049;

var OUT_OF_INDEX = 990;
var cSiteURL     = "http://www.wysotsky.com";
var cFemPath     = "http://www.wysotsky.com/0005/";
var cRAPath      = "http://www.kulichki.com/vv/audio/ra/";
var cSources     = "/1049.ru/";
var cLocSign     = "wysotsky/";
var cSignCHM     = ".chm::";

var cCharAccent  = "–";
var cCharAtonic  = String.fromCharCode(9697);
var cMetreSep    = ",";
var cVowels      = "àå¸èîóûýþÿÀÅ¨ÈÎÓÛÝÞß";
var cVysockij    = "Âûñîöêèé"; //** for 0005/*.htm

var cFoot_Mono     = 1;
var cFoot_Prose    = 10;
var cFoot_Spondee  = 11;
var cFoot_Trochee  = 21;
var cFoot_Iambus   = 22;
var cFoot_Mix23    = 23; //Logaoedics
var cFoot_Dactyl   = 31;
var cFoot_Amphibr  = 32;
var cFoot_Anapaest = 33;
var cFoot_Mix34    = 34;
var cFoot_Unknown  = 40;
var cFoot_Paeon    = 44;
var cFoot_Pentasyl = 50; //Pentasyllabic

var cFootConst = {};
cFootConst[cFoot_Mono    ] = ["Mono"     , "Îäíîñëîæí." ];
cFootConst[cFoot_Prose   ] = ["Prose"    , "Ïðîçàè÷."   ];
cFootConst[cFoot_Spondee ] = ["Spondee"  , "Ñïîíäåé"    ];
cFootConst[cFoot_Trochee ] = ["Trochee"  , "Õîðåé"      ];
cFootConst[cFoot_Iambus  ] = ["Iambus"   , "ßìá"        ];
cFootConst[cFoot_Mix23   ] = ["Logaoed." , "Ëîãàýäû"    ];
cFootConst[cFoot_Dactyl  ] = ["Dactyl"   , "Äàêòèëü"    ];
cFootConst[cFoot_Amphibr ] = ["Amphibr." , "Àìôèáðàõèé" ];
cFootConst[cFoot_Anapaest] = ["Anapaest" , "Àíàïåñò"    ];
cFootConst[cFoot_Mix34   ] = ["Mix34"    , "Ðàçí. 3/4"  ]; //Ðàçíîñòîïíîñòü
cFootConst[cFoot_Unknown ] = ["Unknown"  , "Ðàçí. 2/3/4"];
cFootConst[cFoot_Paeon   ] = ["Paeon-4"  , "Ïåîí-4"     ];
cFootConst[cFoot_Pentasyl] = ["Pentasyl.", "Ïåíòîí"     ];

var vMove     = {b:false, x:0, y:0, o:null};
var bFrameSet = false;
if (document.location.protocol != "http:")
{
  try     {bFrameSet = (top.document.title == "FRAMESET");}
  catch(e){bFrameSet = false;}
}
/* ---------------------------------------------------------------------- *
fMouseHandler(oThis, oEvent)
formatByMask(sPar, sMask)
getCookie(sName)
getElementsByAttr(oBox, sTag, sAttr, sName)
getElementsByAttr0(oBox, sTag, sAttr, sName)
getInnerText(sPar)
getOffsetPoint(obj)
getParentByTagName(obj, sTag)
getStyle(selector, attribute)
getTagOuterText(obj)
getUrlPars(sLoc)
IntToBin(nVal)
mail2(obj)
mailTo(user, server)
msieVersion()
occurrencesOf(sText, sChar)
scrollIntoViewX(obj)
setCookie(sName, sValue)
strRepeat(s, n)
strReverse(sVal)
strToInt(sVal)
strTrim(sText)
toCyrillic(sPar)

zClientMUI(obj)
zContent(nPar)
zCopyright()
zCorrectFont()
zCurPage(oWin, nPar)
zFaceBook()
zFolder()
zFrameLoad(nFrame)
zFrameLoad999(nFrame)
zHide(obj)
zImage(obj, sImage)
zImg_Error(obj, sImg)
zLangLoad() <- 0000.htm, 0002/009.asp
zLoad1029()
zLoad1058()
zLoad1069()
zLoad1083()
zLoadMUI()
zMainLoad()
zMetre_Foot(sLine) <- 0001/index.js
zMouseMove(e)
zOptional_Action(obj)
zOptional_Control()
zPlusOne()
zPreLoad(nPar)
zRedirect()
zSecondLink(obj, sLoc)
zServerLink(sLoc, sTarget)
zShow(nPar)
zShowMetre(obj, e)
zSound(obj, sFile)
zSound0(sURL)
zStartPage(sPath)
zStatus(vEvent)
zTitle()
zToolTip(doc, obj, e)
zTrVisible(bPar)
zUndressed_Action(obj)
zUndressed_Control()
zWriteFrameset(nFile, sLoc)
-- zGoogle1()
-- zTr1037(sPar)
/* ---------------------------------------------------------------------- */
function zRedirect()
{
  var sPath = document.location.href;
  var nIndex = sPath.lastIndexOf("/");
  sPath = sPath.substring(0, nIndex);
  var nIndex = sPath.lastIndexOf("/");
  sPath = sPath.substring(nIndex+1, sPath.length);
  var nIndex = sPath.indexOf(".");
  if (nIndex > 0) sPath = sPath.substring(0, nIndex);
  sPath = "../" + sPath + ".htm";
  document.location.replace(sPath);
  //return(sPath);
} //zRedirect
/* ---------------------------------------------------------------------- */
function zPreLoad(nPar)
{
  var nVal = strToInt(getCookie("GUI"));
  if (nVal > 0) nGUI = nVal;

  if (bFrameSet || nGUI<2) return;
  if (nPar == 2)
  {
    document.write('</TD></TR></TABLE>');
    return;
  }
  if (nPar != 1) return;

  var sLoc = document.location.href;
  sLoc = sLoc.substring(sLoc.lastIndexOf("/")+1, sLoc.lastIndexOf("."));
  var sToolTip = "..."; //toCyrillic(aSlogan[sLoc]);
  var sSide = (document.body.dir=="rtl" ? "left":"right");

  var sText =
    '<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH="100%"><TR VALIGN="top"><TD CLASS="lang-panel" style="border-' + sSide + '-style:solid;">' +
    '<IMG CLASS="lang-panel" tooltiptext="' + sToolTip + '" SRC="Images/Covers/' + sLoc +
    '.jpg" onError="zImg_Error(this,\'Images/Covers/0000.jpg\')" onClick="zToolTip(null,this,event)">' +
    '<IFRAME ID="iframeLang" CLASS="lang-panel" FRAMEBORDER="no"></IFRAME></TD><TD CLASS="main-panel">';
  document.write(sText);
} //zPreLoad
/* ---------------------------------------------------------------------- */
function zLangLoad()
{
  var bFrameElement = false;
  try
  {
    if (window.frameElement && window.frameElement.tagName) bFrameElement = true;
  }
  catch(e)
  {
    bFrameElement = false;
    document.body.style.backgroundColor = "#FFE0E0";
  }
  if (!bFrameElement) return;
  window.frameElement.height = document.body.scrollHeight;
  document.body.dir = window.frameElement.ownerDocument.body.dir;

  var sLoc = window.frameElement.ownerDocument.location.href;
  sLoc = sLoc.substring(sLoc.lastIndexOf("/")+1, sLoc.lastIndexOf("."));
  var oDiv = zToolTip(window.frameElement.ownerDocument);
  if (aSlogan[sLoc] && aSlogan[sLoc].length) oDiv.innerHTML = aSlogan[sLoc]; //toCyrillic(aSlogan[sLoc]);
} //zLangLoad
/* ---------------------------------------------------------------------- */
function zToolTip(doc, obj, e, bForce)
{
  if (!doc) doc = document;
  var oDiv = doc.getElementById("divToolTip");
  var bNew = (!oDiv);
  if (!oDiv)
  {
    oDiv = doc.createElement('div');
    oDiv.id = "divToolTip";
    oDiv.className = "tool-tip";
    oDiv.onclick = function(){this.style.display='none';};
    //obj.parentNode.insertBefore(oDiv, obj);
    doc.body.appendChild(oDiv);
  }
  if (obj && (bNew || bForce))
  {
    var sText = obj.getAttribute("tooltiptext");
    if (sText) oDiv.innerHTML = sText;
  }

  var vPoint = getOffsetPoint(obj);
  if (e)
  {
    oDiv.style.left = (e.pageX ? e.pageX : vPoint.left+e.offsetX) + "px";
    oDiv.style.top  = (e.pageY ? e.pageY : vPoint.top +e.offsetY) + "px";
  }
  if (obj && e) oDiv.style.display = "block";

  return (oDiv);
} //zToolTip
/* ---------------------------------------------------------------------- */
function zLangTree(obj)
{
  var sControl = (document.body.dir=="rtl" ? "&#9664;":"&#9654;");
  var oBox = obj.parentNode.getElementsByTagName("UL")[0];
  oBox.style.display = (oBox.style.display=="none" ? "":"none");
  obj.innerHTML = (oBox.style.display=="none" ? sControl:"&#9660;");
} //zLangTree
/* ---------------------------------------------------------------------- */
function zMainLoad()
{
  try     {if (top.document.title == "Titles") return;}
  catch(e){return;}

  zCopyright();
  zFolder();

  if (bFrameSet)
  {
    var sSearch = top.nGlobal;
  }
  else
  {
    var sSearch = document.location.search;
    sSearch = sSearch.substring(1, sSearch.length);
  }
  var sHash = document.location.hash;

  nPage = strToInt(sSearch);
  var nCur = zCurPage(window, nPage);
  var oFrames = document.getElementsByTagName("iframe");

  var sRedir = "";
  try     {if (window.S_REDIR && window.S_REDIR.length) sRedir = window.S_REDIR;} //*** i.e. if S_REDIR exists
  catch(e){var sRedir = "";}

  var sLoc = sRedir + window.sFolder[1] + window.aFrame1[nCur] + ".htm" + sHash;
  zFaceBook(sLoc);
  if (oFrames["iframe1"].src != sLoc) oFrames["iframe1"].src = sLoc;
  var sPath2 = window.sFolder[2];
  if (nCur == 0) sPath2 = "0000/";
  sLoc = sRedir + sPath2 + window.aFrame2[nCur] + ".htm";
  if (oFrames["iframe2"].src != sLoc) oFrames["iframe2"].src = sLoc;
  if (document.location.href.toLowerCase().indexOf(cSignCHM) > 0)
  {
    oFrames["iframe1"].contentWindow.document.location.replace(sRedir + window.sFolder[1] + window.aFrame1[nCur] + ".htm");
    oFrames["iframe2"].contentWindow.document.location.replace(sRedir + sPath2 + window.aFrame2[nCur] + ".htm");
  }
  var obj = document.getElementById("tdCur");
  if (obj) obj.innerHTML = nCur;

  var oImage = document.getElementById("divImage");
  if (oImage)
  {
    oImage.style.visibility = "hidden";
    oImage.style.left = 0;
    oImage.style.top  = 0;
  }

  //setTimeout("zGoogle1()", 0);
  var sLoc = document.location.href.toLowerCase();
  if (sLoc.indexOf(cSignCHM) < 0 && sLoc.indexOf("file:") < 0 && document.location.protocol != "file:") gapi.plusone.go();
} //zMainLoad
/* ---------------------------------------------------------------------- */
function zPlusOne()
{
  var sLoc = document.location.href.toLowerCase();
  if (sLoc.indexOf(cSignCHM) > 0 || sLoc.indexOf("file:") == 0 || document.location.protocol == "file:") return; // || sLoc.indexOf("/localhost") > 0
  var sText = "<g:plusone size='small'></g:plusone><SCRIPT TYPE='text/javascript' SRC='https://apis.google.com/js/plusone.js'>{parsetags:'explicit'}</SCRIPT>";
  document.write(sText);
} //zPlusOne
/* ---------------------------------------------------------------------- *
function zGoogle1()
{
  var obj = document.getElementById("tdGoogle1");
  if (!obj) return;
  obj = obj.getElementsByTagName("iframe");
  if (!obj || !obj.length) return;
  if (obj[0].offsetLeft >= 0) return;

  obj[0].style.position = "static";
  obj[0].style.left = 0;
  obj[0].style.top = 0;
  obj[0].style.height = 15;
} //zGoogle1
/* ---------------------------------------------------------------------- */
function zFolder()
{
  if (window.aFrame1.length > 0) return;
  window.aFrame1[0] = "000";
  window.aFrame2[0] = document.location.href;

  try     {var bSubfolder = (window.S_REDIR && window.S_REDIR.length > 0);}
  catch(e){var bSubfolder = false;}

  if (bSubfolder) window.aFrame2[0] = window.aFrame2[0].substring(0, window.aFrame2[0].lastIndexOf("/"));
  window.aFrame2[0] = window.aFrame2[0].substring(window.aFrame2[0].lastIndexOf("/")+1, window.aFrame2[0].length);
  if (window.aFrame2[0].indexOf(".") > 0) window.aFrame2[0] = window.aFrame2[0].substring(0, window.aFrame2[0].lastIndexOf("."));
  window.aFrame2[0] = "000-" + window.aFrame2[0];

  var aLinks = document.getElementById("divLinks").getElementsByTagName("a");
  for (var nIndex=0; nIndex<aLinks.length; nIndex++)
  {
    window.aFrame1[nIndex+1] = aLinks[nIndex].href;
    window.aFrame1[nIndex+1] = window.aFrame1[nIndex+1].substring(window.aFrame1[nIndex+1].lastIndexOf("/") + 1, window.aFrame1[nIndex+1].length);
    window.aFrame1[nIndex+1] = window.aFrame1[nIndex+1].substring(0, window.aFrame1[nIndex+1].lastIndexOf("."));
    window.aFrame2[nIndex+1] = aLinks[nIndex].innerHTML;
  } //nIndex
} //zFolder
/* ---------------------------------------------------------------------- */
function zShow(nPar)
{
  var nCur = 0;
  if (bFrameSet)
    var sSearch = top.nGlobal;
  else
  {
    var sSearch = document.location.search;
    sSearch = sSearch.substring(1, sSearch.length);
  }

  if (nPar != 0)
  {
    nPage = strToInt(sSearch);
    var nCur = zCurPage(window, nPage);
    nCur += nPar;
    if (nCur < 0 || nCur >= window.aFrame1.length) nCur = 0;
  }

  var nNew = strToInt(window.aFrame1[nCur]);
  if (nNew == nPage) return(false);

  var sLoc = document.location.href;
  var nIndex = sLoc.indexOf("?");
  if (nIndex > 0) sLoc = sLoc.substring(0, nIndex);

  if (bFrameSet)
    top.nGlobal = nNew;
  else
  {
    sLoc += ("?" + nNew);
    if (nPar == 0) sLoc += ("&a=" + sSearch);
  }
  document.location.replace(sLoc);
  return(false);
} //zShow
/* ---------------------------------------------------------------------- */
function zCurPage(oWin, nPar)
{
  var sPage = (1000 + nPar).toString();
  sPage = sPage.substring(1, sPage.length);
  var nCur = 0;

  for (var nIndex=0; nIndex<window.aFrame1.length; nIndex++)
    if (oWin.aFrame1[nIndex] == sPage)
    {
      nCur = nIndex;
      break;
    }

  return(nCur);
} //zCurPage
/* ---------------------------------------------------------------------- */
function zContent(nPar)
{
  var obj = null;
  if (nPar && nPar.target)
    obj = nPar.target;
  else if (!nPar)
    obj = event.srcElement;

  if (obj)
  {
    while (obj && obj.tagName != "A")
      obj = obj.parentElement;
    if (!obj) return(false);
    nPar = obj.name;
  }

  var oDoc = document;
  if (window.frameElement) oDoc = window.frameElement.ownerDocument;

  var sLoc = oDoc.location.href;
  var nIndex = sLoc.indexOf("?");
  if (nIndex > 0) sLoc = sLoc.substring(0, nIndex);

  if (bFrameSet)
    top.nGlobal = strToInt(nPar);
  else
    sLoc += ("?" + strToInt(nPar));
  oDoc.location.replace(sLoc);
  return(false);
} //zContent
/* ---------------------------------------------------------------------- */
function zStatus(vEvent)
{
  var obj = null;
  if (vEvent && vEvent.target)
    obj = vEvent.target;
  else if (!vEvent)
    obj = event.srcElement;

  while (obj && obj.tagName != "A")
    obj = obj.parentElement;
  if (!obj) return;

  window.status = obj.name;
} //zStatus
/* ---------------------------------------------------------------------- */
function zTitle()
{
  var vTitle = document.getElementById("spanTitle");
  if (!vTitle) return;

  var bLink = true;
  var sLoc = document.location.href.toLowerCase();
  if (sLoc.indexOf(cSources) > 0)
    bLink = false;
  else if (sLoc.indexOf(cSignCHM) > 0)
    sLoc = cSiteURL + sLoc.substring(sLoc.indexOf(cSignCHM) + cSignCHM.length, sLoc.length);
  else if (sLoc.indexOf("file:") == 0 || document.location.protocol == "file:")
    sLoc = cSiteURL + sLoc.substring(sLoc.indexOf(cLocSign)+cLocSign.length-1, sLoc.length);
  else if (document.location.search == "?search")
    sLoc = sLoc.substring(0, sLoc.indexOf("?"));
  else
    bLink = false;

  var sTitle = document.title;
  if (bLink) sTitle = "<a href='" + sLoc + "' target='_blank' class='title-local' hidefocus onMouseOver='zMouseMove(event)' onMouseOut='zMouseMove(event)'>" + sTitle + "</a>";
  vTitle.innerHTML = sTitle;
} //zTitle
/* ---------------------------------------------------------------------- */
function zMouseMove(e)
{
  if (!bFrameSet) return;
  //var oPanel = window.parent.parent.document.frames["frameStatus"].frameElement.contentWindow.document.getElementById("spanPanel1");
  var oPanel = window.parent.parent.document.body.children["frameStatus"];
  if (!oPanel) return;
  oPanel = oPanel.contentWindow.document.getElementById("spanPanel1");
  if (!oPanel) return;
  if (!e) e = event;
  if (!e || e.type != "mouseover")
  {
    oPanel.innerHTML = "";
    return;
  }

  var obj = e.srcElement;
  if (!obj) obj = e.target;
  while (obj && obj.tagName != "A")
  {
    obj = obj.parentElement;
  }
  if (!obj) return;

  if (obj.href.indexOf("http:") == 0)
  {
    oPanel.innerHTML = obj.href;
    return;
  }

  /*
  var sText = obj.outerHTML;
  sText = sText.substring(1, sText.indexOf(">")).toLowerCase();
  var sChar = "onclick=";
  sText = sText.substring(sText.indexOf(sChar) + sChar.length, sText.length);
  sChar = sText.charAt(0);
  if (sChar == '"' || sChar == "'")
    sText = sText.substring(1, sText.indexOf(sChar, 1));
  else
    sText = sText.substring(0, sText.indexOf(" "));
  */
  var sText = obj.getAttribute("onclick", 0);
  if (!sText)
  {
    oPanel.innerHTML = "";
    return;
  }
  sText = sText.toString().toLowerCase();

  sChar = "return(";
  sText = sText.substring(sText.indexOf(sChar) + sChar.length, sText.length - 1);

  sChar = "zserverlink(";
  if (sText.indexOf(sChar) == 0)
  {
    sText = sText.substring(sText.indexOf(sChar) + sChar.length, sText.length - 1);
    sChar = sText.charAt(0);
    sText = sText.substring(1, sText.length);
    sText = cSiteURL + "/" + sText.substring(0, sText.indexOf(sChar));
    oPanel.innerHTML = sText;
    return;
  }
  sChar = "zsound0(";
  if (sText.indexOf(sChar) == 0)
  {
    sText = sText.substring(sText.indexOf(sChar) + sChar.length, sText.length - 1);
    sText = sText.substring(1, sText.length - 1);
    oPanel.innerHTML = sText;
    return;
  }
  sChar = "zsound(this)";
  if (sText.indexOf(sChar) == 0)
  {
    sText = document.location.href.toLowerCase();
    sText = sText.substring(0, sText.lastIndexOf(".") + 1) + "ra";
    if (sText.indexOf(cSignCHM) > 0) sText = cSiteURL + sText.substring(sText.indexOf(cSignCHM) + cSignCHM.length, sText.length);
    oPanel.innerHTML = sText;
    return;
  }
  if (sText == "zcontent(this.name)")
  {
    sText = formatByMask(obj.name, "000") + ".htm";
    oPanel.innerHTML = sText;
    return;
  }
  sChar = "zcontent(";
  if (sText.indexOf(sChar) == 0)
  {
    sText = parseInt(sText.substring(sChar.length, sText.length), 10);
    sText = formatByMask(sText, "000") + ".htm";
    oPanel.innerHTML = sText;
    return;
  }
  oPanel.innerHTML = "";
} //zMouseMove
/* ---------------------------------------------------------------------- */
function zCorrectFont()
{
  var vObj = document.getElementsByTagName("PRE");
  if (!vObj.length) return;
  vObj = vObj[0].getElementsByTagName("FONT");
  if (!vObj.length) return;
  vObj[0].size = 2;
} //zCorrectFont
/* ---------------------------------------------------------------------- */
function zFrameLoad999(nFrame)
{
  zFrameLoad(nFrame);

  if (!window.frameElement)
    return;
  else if (nFrame == 1)
    window.frameElement.width = "100%";
  else
    window.frameElement.width = 0;

  zTitle();
  zCorrectFont();
  window.frameElement.height = document.getElementsByTagName("table")[0].offsetHeight;
} //zFrameLoad999
/* ---------------------------------------------------------------------- */
function zFrameLoad(nFrame)
{
  //if (document.location.search == "?none") return;
  var nVal = strToInt(getCookie("GUI"));
  if (nVal > 0) nGUI = nVal;

  try
  {
    var bFrameElement = false;
    if (window.frameElement && window.frameElement.tagName) bFrameElement = true; //** also checks if frame is accessible!
    var bTopLocation  = (top.location.href.length > 0);
  }
  catch(e)
  {
    var bFrameElement = false;
    var bTopLocation  = false;
  }

  var nLeftFrame = 1;
  if (bFrameElement && window.frameElement.ownerDocument.body.dir == "rtl") nLeftFrame = 2;

  var sLoc = document.location.href;
  //if (!bFrameSet || sLoc.indexOf(cSources) < 0)
  zTitle();
  zCorrectFont();

  /*
  if (document.charset == "windows-1255" || document.characterSet == "windows-1255" ||
      document.charset == "windows-1256" || document.characterSet == "windows-1256")
    document.dir = "rtl";
  */
  if (msieVersion() == 0 && document.location.search != "?none")
    for (var nIndex=0; nIndex<document.getElementsByTagName("span").length; nIndex++)
    {
      var vObj = document.getElementsByTagName("span")[nIndex];
      if (vObj.className.indexOf("indent") == 0)
      {
        var nIndent = parseInt(vObj.className.substring("indent".length, "indent".length+1), 10);
        vObj.innerHTML = "<img width=" + 30 * nIndent + " height=0>";
      }
    } //nIndex

  if (document.location.search == "?search") return;

  var sLink = "..";
  if (sLoc.indexOf("file:") == 0 || document.location.protocol == "file:") sLink = "http://localhost";
  sLoc = sLoc.substring(sLoc.lastIndexOf("/") + 1, sLoc.lastIndexOf("."));
  var nLoc = strToInt(sLoc);
  if (sLoc.indexOf("000-") == 0 && bFrameElement && nGUI>=2)
  {
    var vObj = window.frameElement.ownerDocument.getElementById("iframeLang");
    if (vObj) vObj.src = "0000.htm";
  }
  else if (document.location.href.indexOf(cSources) < 0 || nLoc == 0 || nLoc >= OUT_OF_INDEX);
  else if (bFrameElement && nGUI>=2)
  {
    var sTop = window.frameElement.ownerDocument.location.href;
    sTop = sTop.slice(sTop.lastIndexOf("/")+1).split("?");
    var vObj = window.frameElement.ownerDocument.getElementById("iframeLang");
    if (vObj) vObj.src = sLink + "/0002/009.asp?n=" + nLoc + "&lang=" + parseInt(sTop[0], 10) + "&cur=" + sTop[1];
  }
  else
  {
    var vLink = document.createElement("A");
    vLink.setAttribute("href", sLink + "/0002/008.asp?n=" + nLoc); //cSiteURL
    vLink.setAttribute("target", "_0002");
    vLink.setAttribute("className", "link");
    vLink.innerHTML = "<P/><font face=Arial size=2>Find all translations of this song</font>";
    var vObj = document.getElementsByTagName("table")[0].rows;
    vObj = vObj[vObj.length - 1].cells[0];
    vObj.appendChild(vLink);
  }

  if (document.location.href.indexOf(cSources) > 0 && !document.getElementById("divImage"))
  {
    var oDiv = document.createElement("DIV");
    oDiv.setAttribute("id", "divImage");
    oDiv.className = "div-image";
    document.body.appendChild(oDiv);
  }

  try
  {
    var vObj = window.frameElement.ownerDocument.parentWindow;
    if (typeof vObj == "undefined") vObj = window.frameElement.ownerDocument.defaultView;
    var bSubfolder = (vObj.S_REDIR && vObj.S_REDIR.length > 0);
  }
  catch(e){var bSubfolder = false;}

  var sText = "&nbsp;";
  for (var nIndex=0; nIndex<document.getElementsByName("artist").length; nIndex++)
  {
    var vObj = document.getElementsByName("artist")[nIndex];
    var sFile = vObj.getAttribute("file");
    var sLink = "<A HREF='' CLASS=link";

    if (sFile.indexOf("vv/") == 0)
      sLink += " onClick='return(zSound0(\"" + cRAPath + sFile.substring("vv/".length, sFile.length) + "\"))'";
    else if (sFile.indexOf("fv/") == 0)
      sLink += " onClick='return(zSound0(\"" + cFemPath + sFile.substring("fv/".length, sFile.length) + "\"))'";
    else if (document.location.href.indexOf(cSources) < 0)
    {
      var sAudio = "";
      var aLang = top.aLang; //window.frameElement.ownerDocument.parentWindow.aLang;
      if (aLang)
      {
        var sLang = top.location.href; // window.frameElement.ownerDocument.location.href;
        if (bSubfolder) sLang = sLang.substring(0, sLang.lastIndexOf("/"));
        sLang = sLang.substring(sLang.lastIndexOf("/")+1, sLang.length);
        if (sLang.indexOf(".") > 0) sLang = sLang.substring(0, sLang.lastIndexOf("."));
        sAudio = aLang[sLang][3] + "/";
      }
      sLink += " onClick='return(zSound(this, \"" + sAudio + sLoc + sFile + ".ra\"))'";
    }
    else if (nLoc > 0 && nLoc < OUT_OF_INDEX)
    {
      var sAudio = "Audio/";
      sLink += " onClick='return(zSound(this, \"" + sAudio + sLoc + sFile + ".ra\"))'";
    }
    sText += " &nbsp;" + sLink + " TITLE='" + vObj.innerHTML + "'>" + vObj.title + "</A>";

    var oNode = vObj.nextSibling;
    if (!oNode || oNode.nodeName != "#text" || !oNode.nodeValue || !oNode.nodeValue.length) continue;
    var sData = oNode.nodeValue.split(",")[0];
    if (!sData.length || sData.substring(0,2) != ". ") continue;
    var oSpan = document.createElement('SPAN');
    oSpan.innerHTML = ". " + sLink+ ">" + sData.slice(2) + "</A>";
    oNode.parentNode.insertBefore(oSpan, oNode);
    oNode.nodeValue = oNode.nodeValue.replace(sData, "");
  } //nIndex

  if (document.location.href.indexOf(cSources) > 0)
    sText += " &nbsp;<A HREF='' CLASS='link4' TITLE='" + top.aLegend[top.cBit_Metre]["1033"] +
             "' onClick='return(zShowMetre(this,event))'>&#" + top.aLegend[top.cBit_Metre].sign + ";</A>";
  else if (zUndressed_Control())
    sText += " &nbsp;<A HREF='' CLASS='link2' TITLE='" + top.aLegend[top.cBit_Undressed]["1033"] +
             "' onClick='return(zUndressed_Action(this))' HIDEFOCUS>&#" + top.aLegend[top.cBit_Undressed].sign + ";</A>";

  var oTitle = document.getElementById("spanTitle");
  if (oTitle)
  {
    var vAudio = document.createElement("SPAN");
    vAudio.innerHTML = sText;
    //oTitle.insertAdjacentElement("afterEnd", vAudio);
    oTitle.parentNode.insertBefore(vAudio, oTitle.nextSibling);
  }

  var vObj = document.getElementById("author");
  if (vObj && nFrame == nLeftFrame)
  {
    var oSpan = vObj.offsetParent.getElementsByTagName("span")[0];
    if (oSpan) vObj.title = oSpan.innerHTML;
  }

  if (bFrameElement)
  {
    var sContentLoad = window.frameElement.getAttribute("onContentLoad", 2);
    if (sContentLoad)
    {
      eval("window.frameElement.contentWindow.parent." + sContentLoad);
      return;
    }
  }

  for (var nIndex=0; nIndex<document.getElementsByTagName("a").length; nIndex++)
  {
    var vObj = document.getElementsByTagName("a")[nIndex];
    if (vObj.className == "link0" || vObj.className == "link3")
    {
      //vObj.href = "";
      vObj.onmousemove = zStatus;
      vObj.onclick     = zContent;
    }
    if (bFrameSet)
    {
      vObj.onmouseover = zMouseMove;
      vObj.onmouseout  = zMouseMove;
    }
    if (!bFrameSet && (sLoc.indexOf("file:") == 0 || document.location.protocol == "file:") && vObj.className == "link3")
      vObj.style.color = "Gray";
  } //nIndex

  try     {var sAnchor = top.location.search;}
  catch(e){var sAnchor = "";}
  if (sAnchor)
  {
    var nIndex = sAnchor.toLowerCase().indexOf("&a=");
    if (nIndex < 0)
      sAnchor = "";
    else
    {
      sAnchor = sAnchor.substring(nIndex + "&a=".length, sAnchor.length);
      sAnchor = parseInt(sAnchor, 10);
      if (isNaN(sAnchor))
        sAnchor = "";
      else
        sAnchor = formatByMask(sAnchor, "000");
    }
  }
  else
    var sAnchor = "";

//  if (nFrame != nLeftFrame)
//  {
//    var sLoc = window.frameElement.ownerDocument.location.href;
//    sLoc = sLoc.substring(sLoc.lastIndexOf("/")+1, sLoc.lastIndexOf("."));
//    document.getElementsByTagName("table")[0].style.lineHeight = top.aLang[sLoc][3];
//  }

  //*** NOTE: iframe padding, if any, must be specified in pixels!
  if (bFrameElement && window.frameElement.tagName.toLowerCase() == "iframe" && document.location.search != "?noresize")
  {
    window.frameElement.width =
      document.getElementsByTagName("table")[0].offsetWidth + window.frameElement.marginWidth * 2 +
      strToInt(window.frameElement.style.paddingLeft) + strToInt(window.frameElement.style.paddingRight);
    if (!top.bNotFull)
      //window.frameElement.height = document.getElementsByTagName("table")[0].offsetHeight + window.frameElement.marginHeight * 2;
      window.frameElement.height = document.body.scrollHeight;
    if (nFrame == nLeftFrame && sAnchor.length > 0) document.location.href += ("#" + sAnchor);
  }
  else if (document.location.href.indexOf("0000") > 0)
  {
    var sLoc = document.location.href;
    sLoc = sLoc.substring(0, sLoc.lastIndexOf("0000")) + sLoc.substring(sLoc.lastIndexOf("-") + 1, sLoc.length);
    if (bFrameSet)
      ; //do nothing
    else if (document.location.href.toLowerCase().indexOf(cSignCHM) < 0)
      document.location.replace(sLoc);
    else
      zWriteFrameset(0, sLoc);
  }
  else if (bTopLocation && top.location.search == "?test")
    ; //do nothing
  else if (document.location.href.indexOf(cSources) < 0)
  {
    var sLoc = document.location.href;
    sLoc = sLoc.substring(0, sLoc.lastIndexOf("."));
    var nIndex = sLoc.lastIndexOf("/");
    var sFile = sLoc.substring(nIndex + 1, sLoc.length);
    sLoc = sLoc.substring(0, nIndex);
    if (sLoc.lastIndexOf(".") > sLoc.lastIndexOf("/")) sLoc = sLoc.substring(0, sLoc.lastIndexOf("."));
    sLoc += ".htm";

    if (bFrameSet)
    {
      top.nGlobal = strToInt(sFile);
      document.location.replace(sLoc);
    }
    else if (document.location.href.toLowerCase().indexOf(cSignCHM) < 0)
    {
      sLoc += ("?" + strToInt(sFile));
      document.location.replace(sLoc);
    }
    else
      zWriteFrameset(strToInt(sFile), sLoc);
  }

  if (nFrame == nLeftFrame) zOptional_Control();
} //zFrameLoad
/* ---------------------------------------------------------------------- */
function zOptional_Control()
{
  if (!window.frameElement) return;
  var vObj = window.frameElement.ownerDocument.getElementById("tdControl");
  if (!vObj) return;
  var bFound = false;

  var aDiv1 = getElementsByAttr(document, "DIV", "className", "optional");
  for (var nIndex=0; nIndex<aDiv1.length; nIndex++)
  {
    var sText = getInnerText(aDiv1[nIndex].innerHTML);
    sText = sText.replace(/&nbsp;/ig, " ").replace(/\n/g, "").replace(/\r/g, "");
    sText = strTrim(sText);
    if (!sText.length)
    {
      bFound = true;
      break;
    }
  } //nIndex

  if (!bFound)
    vObj.innerHTML = '&nbsp;';
  else
    vObj.innerHTML = '<a href="javascript:" onClick="return(zOptional_Action(this))" flag=0 class="navig" style="font-weight:normal;" hidefocus>&plusmn;</a>';
} //zOptional_Control
/* ---------------------------------------------------------------------- */
function zOptional_Action(obj)
{
  var oDoc1 = document.getElementById("iframe1").contentWindow.document;
  var oDoc2 = document.getElementById("iframe2").contentWindow.document;
  if (!oDoc1 || !oDoc2) return (false);

  var aDiv1 = getElementsByAttr(oDoc1, "DIV", "className", "optional");
  var aDiv2 = getElementsByAttr(oDoc2, "DIV", "className", "optional");
  var nFlag = strToInt(obj.getAttribute("flag"));

  for (var nIndex=0; nIndex<aDiv1.length; nIndex++)
  {
    var sText = getInnerText(aDiv1[nIndex].innerHTML);
    sText = sText.replace(/&nbsp;/ig, " ").replace(/\n/g, "").replace(/\r/g, "");
    sText = strTrim(sText);
    if (nFlag == 1)
    {
      aDiv1[nIndex].style.display = "block";
      aDiv2[nIndex].style.display = "block";
      obj.innerHTML = String.fromCharCode(aLegend[cBit_Varied].sign); // "&plusmn;"
    }
    else if (!sText.length)
    {
      aDiv1[nIndex].style.display = "none";
      aDiv2[nIndex].style.display = "none";
      obj.innerHTML = "&#x2213;";
    }
  } //nIndex

  obj.setAttribute("flag", (1-nFlag));
  return (false);
} //zOptional_Action
/* ---------------------------------------------------------------------- */
function zUndressed_Control()
{
  var oPre = document.getElementsByTagName("PRE")[0];
  if (!oPre) return (false);

  var sText = oPre.innerHTML;
  sText = sText.replace(/<\/DIV>/gi, "¤");
  sText = sText.replace(/<DIV CLASS="*optional"*>[^¤]*¤/gi, "");

  sText = sText.replace(/<[^<>]*>/g, "").replace(/\r/g, "");
  while (sText.charAt(sText.length - 1) == "\n")
    sText = sText.substring(0, sText.length - 1);

  sText = sText.replace(/&nbsp;/gi, "¤");
  while (sText.substring(sText.length - 2, sText.length) == "\n¤")
    sText = sText.substring(0, sText.length - 2);

  return (sText.indexOf("\n¤")>0);
} //zUndressed_Control
/* ---------------------------------------------------------------------- */
function zUndressed_Action(obj)
{
  var oPre = document.getElementsByTagName("PRE")[0];
  if (!oPre) return (false);

  var oParent = oPre.parentNode;
  var sPrev = oParent.getAttribute("pre");
  if (sPrev && sPrev.length)
  {
    oParent.setAttribute("pre", "");
    oParent.innerHTML = "<PRE>"+sPrev+"</PRE>";
  }
  else
  {
    var sText = oPre.innerHTML;
    oParent.setAttribute("pre", sText);
    var vReg = new RegExp(String.fromCharCode(top.aLegend[top.cBit_Undressed].sign));
    sText = sText.replace(vReg, "&#x2225;");

    sText = sText.replace(/\n<SPAN CLASS="*indent[0-9]"*><\/SPAN>&nbsp;/ig, ""); //*** MSIE
    sText = sText.replace(/\n<SPAN CLASS="*indent[0-9]"*><IMG [^>]*><\/SPAN>&nbsp;/ig, ""); //*** others
    sText = sText.replace(/\n&nbsp;/gi, "");

    sText = sText.replace(/\r/g, "");
    while (sText.search(/\n\n\n/) >= 0)
      sText = sText.replace(/\n\n\n/g, '\n\n');
    sText = sText.replace(/\n<DIV [^>]*CLASS="*optional"*>\n<\/DIV>/gi, "");

    oParent.innerHTML = "<PRE>"+sText+"</PRE>";
  }
  return (false);
} //zUndressed_Action
/* ---------------------------------------------------------------------- */
function zShowMetre(obj, e)
{
  //**                      1                                  2           3       4
  var vRegPho = new RegExp(/(<SPAN CLASS="*phonetic"* TITLE=)"*([^<>"]*)"*>([^<>]*)(<\/SPAN>)/ig);

  var oDoc = document;
  if (window.frameElement) oDoc = window.frameElement.ownerDocument;
  var oPlan = oDoc.getElementById("divPlan");
  var oPre = document.getElementsByTagName("PRE")[0];
  var sText = oPre.innerHTML;

  var vReg = new RegExp(/<SPAN CLASS="*plan"*>([^<>]+)<\/SPAN>/ig);
  if (sText.search(vReg) > 0)
  {
    obj.style.color = "";
    sText = oPre.innerHTML; //*** needed once more because of obj color!
    sText = sText.replace(vReg, '$1');
    sText = sText.replace(vRegPho, '$1"$3">$2$4');
    oPre.parentNode.innerHTML = "<PRE>"+sText+"</PRE>";
    if (oPlan) oPlan.style.display = "none";
    return (false);
  }

  obj.style.color = "Red";
  sText = oPre.innerHTML; //*** needed once more because of obj color!
  if (window.frameElement)
    var vPoint = getOffsetPoint(window.frameElement);
  else
    var vPoint = getOffsetPoint(oPre);
  vPoint.left += oPre.offsetWidth;
  var oTitle = document.getElementById("spanTitle");
  vPoint.top += oTitle.offsetTop + oTitle.offsetHeight * 2;

  var aMetre = getElementsByAttr0(document, "SPAN", "className", "metre");
  if (!aMetre) return (false);
  aMetre = aMetre.innerHTML.split(cMetreSep);
  for (var nIndex=0; nIndex<aMetre.length; nIndex++)
    aMetre[nIndex] = parseInt(aMetre[nIndex], 10);

  sText = sText.replace(/<SPAN CLASS="*abbrev"*[^<>]*>([^<>]*)<\/SPAN>/ig, "$1");
  sText = sText.replace(vRegPho, '$1"$3">$2$4');

  var aText = sText.replace(/\r/g, "").split("\n");
  var nLine = -1;
  for (var nIndex=0; nIndex<aText.length; nIndex++)
  {
    if (nLine<0 && (aText[nIndex].search(/<font /i)==0 || aText[nIndex].search(/<center>/i)==0 || aText[nIndex].search(/<div /i)==0 || !aText[nIndex].length)) continue;
    nLine++;

    var vReg = new RegExp("(["+cVowels+"])", "g");
    aText[nIndex] = aText[nIndex].replace(vReg, '¤$1');
    var vReg = new RegExp(/(<[^<>]*)¤/g);
    while (aText[nIndex].search(vReg) > 0) aText[nIndex] = aText[nIndex].replace(vReg, '$1');

    var aSyl = aText[nIndex].split("¤");
    for (var nSyl=0; nSyl<aSyl.length; nSyl++)
      if (aMetre[nLine]>1 && (aMetre[nLine] & (1<<(nSyl-1))) > 0)
        aSyl[nSyl] = "¤"+aSyl[nSyl];
    aText[nIndex] = aSyl.join('');
  } //nIndex

  var sText = aText.join('\n');
  sText = sText.replace(/¤(.)/g, '<SPAN CLASS="plan">$1</SPAN>');
  oPre.parentNode.innerHTML = "<PRE>"+sText+"</PRE>";

  if (oPlan)
  {
    oPlan.style.display = "block";
    return (false);
  }

  for (var nIndex=0; nIndex<aMetre.length; nIndex++)
  {
    aMetre[nIndex] = strReverse(IntToBin(aMetre[nIndex]).slice(1));
  } //nIndex
  var sText = aMetre.join("<BR>").replace(/0/g, cCharAtonic).replace(/1/g, cCharAccent); //.replace(/<BR><BR>/ig, "<BR>.<BR>")
  var oPlan = document.createElement("DIV");
  oPlan.id = "divPlan";
  oPlan.className = "plan";
  oPlan.innerHTML = sText;

  oDoc.body.appendChild(oPlan);
  oPlan.style.top  = vPoint.top  + "px";
  oPlan.style.left = vPoint.left + "px";

  return (false);
} //zShowMetre
/* ---------------------------------------------------------------------- */
function zMetre_Foot(sLine)
{
  var nRes;

  if (sLine.length == 0)
    nRes = 0;
  else if (sLine.length == 1)
    nRes = cFoot_Mono;
  if (sLine.indexOf("1") < 0)
    nRes = cFoot_Prose;
  else if (sLine == "0001" || sLine == "00010")
    nRes = cFoot_Paeon;
  else if (sLine.indexOf("1001") >= 0 && sLine.indexOf("101") <  0 && sLine.indexOf("10001") >= 0)
    nRes = cFoot_Mix34;
  else if (sLine.indexOf("1001") >= 0 && sLine.indexOf("101") >= 0 && sLine.indexOf("10001") <  0)
    nRes = cFoot_Mix23;
  else if (sLine.indexOf("11") > 0)
    nRes = cFoot_Spondee;
  else if (sLine.indexOf("100001") > 0)
    nRes = cFoot_Pentasyl;
  else if (sLine.indexOf("000") > 0)
    nRes = cFoot_Unknown;
  else if (sLine.substring(0, 3) == "100" && sLine.indexOf("1001") >= 0 || sLine == "100")
    nRes = cFoot_Dactyl;
  else if (sLine.substring(0, 3) == "010" && sLine.indexOf("1001") >= 0 || sLine == "010" || sLine == "0100")
    nRes = cFoot_Amphibr;
  else if (sLine.substring(0, 3) == "001" && sLine.indexOf("1001") >= 0 || sLine == "001" || sLine == "0010" || sLine == "00100")
    nRes = cFoot_Anapaest;
  else if (sLine.substring(0, 2) == "10"  && sLine.indexOf("101" ) >= 0 || sLine == "10" )
    nRes = cFoot_Trochee;
  else if (sLine.substring(0, 2) == "01"  && sLine.indexOf("101" ) >= 0 || sLine == "01" )
    nRes = cFoot_Iambus;
  else
    nRes = cFoot_Unknown;

  return (nRes);
} //zMetre_Foot
/* ---------------------------------------------------------------------- */
function zWriteFrameset(nFile, sLoc)
{
  document.clear();
  document.writeln(
    '<HEAD><TITLE>FRAMESET</TITLE>\r\n' +
    '<SCRIPT>var nGlobal=' + nFile + ';</SCRIPT></HEAD>\r\n' +
    '<FRAMESET ROWS="*,24" BORDER=0 FRAMESPACING=0 FRAMEBORDER=0>\r\n' +
    '  <FRAME ID="frameIndex"  SRC="' + sLoc + '"  NORESIZE MARGINHEIGHT=0 MARGINWIDTH=0 FRAMEBORDER="no" SCROLLING="auto">\r\n' +
    '  <FRAME ID="frameStatus" SRC="../Status.htm" NORESIZE MARGINHEIGHT=0 MARGINWIDTH=0 FRAMEBORDER="no" SCROLLING="no">\r\n' +
    '</FRAMESET>');
  document.close();
} //zWriteFrameset
/* ---------------------------------------------------------------------- *
function zTr1037(sPar)
{
  var oDoc2 = window.frameElement.ownerDocument.getElementById("iframe2").contentWindow.document;
  oDoc2.location.hash = "#" + sPar;
} //zTr1037
/* ---------------------------------------------------------------------- */
function zServerLink(sLoc, sTarget)
{
  var sLink = document.location.href.toLowerCase();
  if (sLoc.indexOf("http:") == 0)
    window.open(sLoc, sTarget);
  else if (sLink.indexOf(cSignCHM) > 0)
    window.open(cSiteURL + "/" + sLoc);
  else if (sLink.indexOf("file:") == 0 || document.location.protocol == "file:")
    window.open("http://localhost/" + sLoc);
  else if (sTarget)
    window.open(sLoc, sTarget);
  else
    document.location = sLoc;
  return(false);
} //zServerLink
/* ---------------------------------------------------------------------- */
function zSecondLink(obj, sLoc)
{
  var sLink = document.location.href.toLowerCase();
  if (sLink.indexOf(cSignCHM) > 0)
  {
    //if (sLoc.indexOf(":") < 0 && sLoc.charAt(0) != ".") sLoc = sLink.substring(0, sLink.lastIndexOf("/")+1) + sLoc;
    document.location = sLoc;
    return (false);
  }

  var sTarget = obj.target;
  if (!sTarget) sTarget = obj.getAttribute("target");
  if (!sTarget) sTarget = "second";
  window.open(sLoc, sTarget);
  return (false);
} //zSecondLink
/* ---------------------------------------------------------------------- */
function zSound(obj, sFile)
{
  var sURL = obj.ownerDocument.location.href;
  if (!sFile)
    sURL = sURL.substring(0, sURL.lastIndexOf(".") + 1) + "ra";
  else
    sURL = sURL.substring(0, sURL.lastIndexOf("/") + 1) + sFile;
  return(zSound0(sURL));
} //zSound
/* ---------------------------------------------------------------------- */
function zSound0(sURL)
{
  var nOffset = sURL.toLowerCase().indexOf(cSignCHM);
  if (nOffset > 0) sURL = cSiteURL + sURL.substring(nOffset + cSignCHM.length, sURL.length);
/*
  if ((event.ctrlKey || event.shiftKey) && document.location.href.indexOf(cSources) > 0)
  {
    sURL = document.location.href;
    sURL = "Audio" + sURL.substring(sURL.lastIndexOf("/"), sURL.lastIndexOf(".")) + ".ra";
    if (document.location.href.toLowerCase().indexOf(cSignCHM) > 0) sURL = cSiteURL + cSources + sURL;
  }
*/
  var oDoc = document;
  if (window.frameElement) oDoc = window.frameElement.ownerDocument;
  var oImage = oDoc.getElementById("divImage");
  if (!oImage)
  {
    document.location = sURL;
    return(false);
  }

  var sImg = "Images/realAlt.gif";
  oImage.innerHTML =
    '<DIV CLASS="box" STYLE="width:240;height:75;cursor:move;"' +
    ' onMouseDown="fMouseHandler(this.parentNode,event)" onMouseMove="fMouseHandler(this.parentNode,event)" onMouseUp="fMouseHandler(this.parentNode,event)">' +
    '<DIV STYLE="cursor:default;"><EMBED SRC="' + sURL + '" WIDTH=240 HEIGHT=50 TYPE="audio/x-pn-realaudio-plugin"></DIV>' +
    '<A HREF="http://www.free-codecs.com/download/Real_Alternative.htm" HIDEFOCUS TARGET="external" onMouseOver="zMouseMove(event)" onMouseOut="zMouseMove(event)">' +
    '<IMG SRC="' + sImg + '" WIDTH=30 HEIGHT=20 TITLE="realAlt" ALT="realAlt" BORDER=0 ALIGN="right" onError="this.src=' + "'../" + sImg + '\';"></A>' +
    '<A HREF="javascript:" onClick="this.parentNode.parentNode.style.visibility=\'hidden\';return(false);" CLASS="close2" TITLE="Close">&#x24E7;</A></DIV>';

  oImage.style.left = "32px";
  oImage.style.top  = "32px";
  oImage.style.visibility = "visible";
  //oImage.scrollIntoView();

  return (false);
} //zSound0
/* ---------------------------------------------------------------------- */
function zImage(obj, sImage)
{
  if (!window.frameElement) return(false);
  if (!sImage) sImage = obj.id;
  var sExt = sImage.substring(sImage.lastIndexOf(".")+1, sImage.length).toLowerCase();

  var oWin = window.frameElement.contentWindow.parent;
  var oImage = window.frameElement.ownerDocument.getElementById("divImage");
  if ("avi mpg wmv asf flv mov".indexOf(sExt) >= 0)
  {
    oImage.style.backgroundColor = "";
    oImage.innerHTML  =
      '<embed src="' + oWin.sFolder[1] + 'Images/' + sImage + '" align=top><a href="" onClick="return(zHideStop(this))" class="close" title="Close">&#x24E7;</a>';
  }
  else
  {
    oImage.style.backgroundColor = "White";
    oImage.innerHTML  = '<img src="' + oWin.sFolder[1] + 'Images/' + sImage + '" class="box" onClick="zHide(this)">';
  }
  oImage.style.left = Math.max(10, obj.offsetLeft + obj.offsetWidth - oImage.firstChild.width);
  oImage.style.top  = Math.max(10, window.frameElement.offsetParent.offsetTop + obj.offsetTop - oImage.firstChild.height);
  oImage.style.visibility = "visible";
  return(false);
} //zImage
/* ---------------------------------------------------------------------- */
function zHideStop(obj)
{
  obj.offsetParent.style.visibility = "hidden";
  obj.offsetParent.innerHTML = "";
  return (false);
} //zHideStop
/* ---------------------------------------------------------------------- */
function zHide(obj)
{
  obj.offsetParent.style.visibility = "hidden";
  //obj.offsetParent.style.display = "none";
} //zHide
/* ---------------------------------------------------------------------- */
function zLoad1029()
{
  var nVer = msieVersion();
  for (var nIndex=0; nIndex<document.getElementsByTagName("div").length; nIndex++)
  {
    var oDiv = document.getElementsByTagName("div")[nIndex];
    if (oDiv.className != "flag") continue;

//alert(window.navigator.userAgent);
    if (nVer == 6)
    {
      oDiv.style.left = -9;
      oDiv.style.top  = -5;
      oDiv.style.fontSize = "36pt";
    }
    else if (nVer >= 7)
    {
      oDiv.style.left = -2;
      oDiv.style.top = -20;
      oDiv.style.fontSize = "54pt";
    }
    else if (nVer == 0 && window.navigator.userAgent.indexOf("Chrome") > 0)
    {
      oDiv.style.left = -6;
      oDiv.style.top = -21;
      oDiv.style.fontSize = "42pt";
    }
    else if (nVer == 0 && window.navigator.userAgent.indexOf("Safari") > 0)
    {
      oDiv.style.left = -8;
      oDiv.style.top = -6;
      oDiv.style.fontSize = "32pt";
    }
    else if (nVer == 0 && window.navigator.userAgent.indexOf("Firefox") > 0)
    {
      oDiv.style.left = -12;
      oDiv.style.top = -15;
      oDiv.style.fontSize = "36pt";
    }
    else if (nVer == 0 && window.navigator.userAgent.indexOf("SeaMonkey") > 0)
    {
      oDiv.style.left = -6;
      oDiv.style.top = -35;
      oDiv.style.fontSize = "54pt";
    }
    else if (nVer == 0 && window.navigator.appName == "Opera")
    {
      oDiv.style.left = -6;
      oDiv.style.top = -30;
      oDiv.style.fontSize = "54pt";
    }
    else if (nVer == 0 && window.navigator.appName == "Netscape")
    {
      oDiv.style.left = -6;
      oDiv.style.top = -23;
      oDiv.style.fontSize = "42pt";
    }
  } //nIndex
} //zLoad1029
/* ---------------------------------------------------------------------- */
function zLoad1058()
{
  var sPar = document.location.search;
  //var nSrc = document.getElementById("iframe1").contentWindow.document.location.href;
  var nSrc = document.getElementById("iframe1").src;
  nSrc = nSrc.substring(nSrc.lastIndexOf("/") + 1, nSrc.lastIndexOf("."));
  nSrc = strToInt(nSrc);

  var nDiv = 1;
  if (sPar.indexOf("?a") >= 0);
  else if (nSrc == 0 || nSrc > MYKOLA_LAST && nSrc <= OUT_OF_INDEX || sPar.indexOf("?b") >= 0)
  {
    nDiv = 2;
    setStyle("A.navig", "color", "Blue");
  }
  if (nDiv == 1) document.getElementById("aIndex").style.color = "Yellow";

  document.getElementById("divBanner" +      nDiv ).style.display = "block"; // .visibility = "visible";
  document.getElementById("divBanner" + (3 - nDiv)).style.display = "none";  // .visibility = "hidden";
} //zLoad1058
/* ---------------------------------------------------------------------- */
function zLoad1069()
{
  document.getElementById("imgFlag").width = document.getElementById("tableFlag").offsetWidth;
} //zLoad1069
/* ---------------------------------------------------------------------- */
function zLoad1083()
{
  document.getElementById("iframeFlag1").contentWindow.document.write(
    '<table BORDER=0 CELLPADDING=0 CELLSPACING=0 HEIGHT=60><tr><td WIDTH=10 BGCOLOR="Red"></td><td WIDTH=10 BGCOLOR="Green"></td></tr></table>' +
    '<div style="position:absolute;left:0;top:10;font-family:Arial;font-size:30pt;font-weight:bold;color:blue;">&#9711;</div>');
  document.getElementById("iframeFlag2").contentWindow.document.write(
    '<table BORDER=0 CELLPADDING=0 CELLSPACING=0 HEIGHT=60><tr><td WIDTH=10 BGCOLOR="Yellow"></td><td WIDTH=10 BGCOLOR="Blue"></td></tr></table>' +
    '<div style="position:absolute;left:-20;top:10;font-family:Arial;font-size:30pt;font-weight:bold;color:red;">&#9711;</div>');
} //zLoad1083
/* ---------------------------------------------------------------------- */
function zLoadMUI()
{
  nVal = strToInt(getUrlPars(null, "lang"));
  if (nVal == 1033 || nVal == 1049) nMUI = 1033;
  if (nVal == 1049) zClientMUI(document.getElementById("call_1049"));
  if (nVal) return;

  var nVal = strToInt(getCookie("MUI"));
  nMUI = 1033;
  if (nVal == 1049) zClientMUI(document.getElementById("call_1049"));
} //zLoadMUI
/* ---------------------------------------------------------------------- */
function zClientMUI(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);
  nMUI = nVal;
  setCookie("MUI", nMUI);

  var aObj = getElementsByAttr(document, "SPAN", "className", "mui");
  for (var nIndex=0; nIndex<aObj.length; nIndex++)
  {
    var prev = aObj[nIndex].innerHTML;
    var next = aObj[nIndex].getAttribute("t");
    if (next.length)
    {
      aObj[nIndex].innerHTML = next;
      aObj[nIndex].setAttribute("t", prev);
    }
  } //nIndex

  var aObj = getElementsByAttr(document, "INPUT", "className", "mui");
  for (var nIndex=0; nIndex<aObj.length; nIndex++)
  {
    var prev = aObj[nIndex].value;
    var next = aObj[nIndex].getAttribute("t");
    if (next.length)
    {
      aObj[nIndex].value = next;
      aObj[nIndex].setAttribute("t", prev);
    }
  } //nIndex

  var aObj = document.getElementsByTagName("DIV");
  for (var nIndex=0; nIndex<aObj.length; nIndex++)
  {
    var nVal = strToInt(aObj[nIndex].getAttribute("nlang"));
    if (nVal == nMUI)
      aObj[nIndex].style.display = "block";
    else if (nVal == 1033 || nVal == 1049)
      aObj[nIndex].style.display = "none";
  } //nIndex

  return (false);
} //zClientMUI
/* ---------------------------------------------------------------------- */
function zFaceBook(sLoc)
{
  if (msieVersion() == 0 && (sLoc.indexOf("file:") == 0 || document.location.protocol == "file:")) return;
  var vTD = document.getElementById("tdFacebook");
  if (!vTD) return;

  vTD.innerHTML =
    '<iframe frameborder=0 scrolling=no allowTransparency=true class=FaceBook src="' +
    'http://www.facebook.com/plugins/like.php?layout=standard&show_faces=true&width=450&height=30&action=like&colorscheme=light&href=' +
    cSiteURL + '/' + sLoc + '"></iframe>';
    // escape(document.location.href)
} //zFaceBook
/* ---------------------------------------------------------------------- */
function zCopyright()
{
  var vTD = document.getElementById("tdCopyright");
  if (!vTD) return;
  var vAdd = vTD.getAttribute("add");
  var sText = '<a href="http://www.veryltd.com/" class="developer" hidefocus TARGET="external" onMouseOver="zMouseMove(event)" onMouseOut="zMouseMove(event)" ' +
              vAdd + '>Developed by VERY Ltd. in 2006-' + sVersion.substring(0, 4) + '</a>';
  if (!document.getElementById("imgFlagCounter"))
    sText += ' <a href="http://s03.flagcounter.com/more/WOQ" hidefocus target="external" onMouseOver="zMouseMove(event)" onMouseOut="zMouseMove(event)">' +
             '<img width=4 height=4 id="imgFlagCounter" border=0 ' +
             'src="http://s03.flagcounter.com/count/WOQ/bg=808080/txt=FFFFFF/border=C0C0C0/columns=2/maxflags=14/viewers=3/labels=1/pageviews=0/"></a>';
  vTD.innerHTML = sText;
} //zCopyright
/* ---------------------------------------------------------------------- */
function zImg_Error(obj, sImg)
{
  if (obj.src.toLowerCase().indexOf(sImg.toLowerCase()) < 0) obj.src = sImg;
  return(false);
} //zImg_Error
/* ---------------------------------------------------------------------- */
function zTrVisible(bPar)
{
  var vStyle = document.getElementById('divTranslators').style;
  vStyle.visibility = (bPar ? 'visible' : 'hidden');
  vStyle.display    = (bPar ? 'block' : 'none');
  return(false);
} //zTrVisible
/* ---------------------------------------------------------------------- */
function zStartPage(sPath)
{
  if (!sPath) sPath = "";
  document.location.href = sPath + "index.htm";
  return(false);
} //zStartPage
/* ---------------------------------------------------------------------- */
function mail2(obj)
{
  document.location.replace("mailto:" + getInnerText(obj.innerHTML));
  return(false);
} //mail2
/* ---------------------------------------------------------------------- */
function mailTo(user, server)
{
  if (!user || !server)
    ;
  else if (msieVersion() > 0 && event.type == "click" && event.srcElement.tagName == "A")
  {
    var sName = getInnerText(event.srcElement.innerHTML);
    sName = sName.replace(/ /g, "%20");
    document.location.replace("mailto:" + sName + "%20<" + user + "@" + server + ">");
  }
  else
    document.location.replace("mailto:" + user + "@" + server);
  return (false);
} //mailTo
/* ---------------------------------------------------------------------- */
function strTrim(sText)
{
  var sRes = sText;
  while (sRes.charAt(0) == " ")
    sRes = sRes.substring(1, sRes.length);
  while (sRes.charAt(sRes.length - 1) == " ")
    sRes = sRes.substring(0, sRes.length - 1);
  return (sRes);
} //strTrim
/* ---------------------------------------------------------------------- */
function strReverse(sVal)
{
  var sRes = "";
  for (var nIndex=0; nIndex<sVal.length; nIndex++)
    sRes = sVal.charAt(nIndex) + sRes;
  return (sRes);
} //strReverse
/* ---------------------------------------------------------------------- */
function IntToBin(nVal)
{
  var sBin = "";
  var x = nVal;
  while (x > 0)
  {
    sBin = (x % 2) + sBin;
    x = Math.floor(x / 2);
  }
  return (sBin);
} //intToBin
/* ---------------------------------------------------------------------- */
function strToInt(sVal)
{
  if (sVal == null) return (0);
  sVal = sVal.toString();
  if (sVal.charAt(0) == '"' && sVal.charAt(sVal.length - 1) == '"') sVal = sVal.substring(1, sVal.length - 2);
  if (sVal.charAt(0) == "'" && sVal.charAt(sVal.length - 1) == "'") sVal = sVal.substring(1, sVal.length - 2);
  sVal = parseInt(sVal, 10);
  if (isNaN(sVal)) sVal = 0;
  return (sVal);
} //strToInt
/* ---------------------------------------------------------------------- */
function getOffsetPoint(obj)
{
  var vPoint = {left:0, top:0};
  while (obj)
  {
    vPoint.left += obj.offsetLeft;
    vPoint.top  += obj.offsetTop;
    obj = obj.offsetParent;
  }
  return (vPoint);
} //strToInt
/* ---------------------------------------------------------------------- */
function getInnerText(sPar)
{
  return(sPar.replace(/<[^<>]*>/g, ""));
} //getInnerText
/* ---------------------------------------------------------------------- */
function getTagOuterText(obj)
{
  var sAttr = obj.outerHTML;
  if (sAttr) return (sAttr.substring(0, sAttr.indexOf(">")+1));

  //*** Firefox:
  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
/* ---------------------------------------------------------------------- */
function getParentByTagName(obj, sTag)
{
  if (!obj) return (null);
  var oRes = obj.parentNode;
  while (oRes && oRes.tagName.toLowerCase() != sTag.toLowerCase())
    oRes = oRes.parentNode;
  return (oRes);
} //getParentByTagName
/* ---------------------------------------------------------------------- */
function getElementsByAttr0(oBox, sTag, sAttr, sName)
{
  var aObj = getElementsByAttr(oBox, sTag, sAttr, sName);
  return (aObj.length ? aObj[0] : null);
} //getElementsByAttr0
/* ---------------------------------------------------------------------- */
function getElementsByAttr(oBox, sTag, sAttr, sName)
{
  var aRes = [];
  if (!oBox || !sTag.length || !sAttr.length || !sName.length) return(aRes);

  var aObj = oBox.getElementsByTagName(sTag);
  for (var nIndex=0; nIndex<aObj.length; nIndex++)
    if (aObj[nIndex].getAttribute(sAttr) == sName
        || sAttr.toLowerCase() == "name"      && aObj[nIndex].name      == sName
        || sAttr.toLowerCase() == "classname" && aObj[nIndex].className == sName
       )
      aRes[aRes.length] = aObj[nIndex];

  return(aRes);
} //getElementsByAttr
/* ---------------------------------------------------------------------- */
function scrollIntoViewX(obj)
{
  var vPoint = getOffsetPoint(obj);
  if (document.body.scrollTop > vPoint.top) obj.scrollIntoView();
} //scrollIntoViewX
/* ---------------------------------------------------------------------- */
function formatByMask(sPar, sMask)
{
  var sRes = sMask + sPar;
  return(sRes.substring(sRes.length - sMask.length, sRes.length));
} //formatByMask
/* ---------------------------------------------------------------------- */
function toCyrillic(sPar, bEnt)
{
  if (!sPar.length) return ("");

  var vMap = {
    128: 1026,
    129: 1027,
    131: 1107,
    138: 1033,
    140: 1034,
    141: 1036,
    142: 1035,
    143: 1039,
    144: 1106,
    154: 1113,
    156: 1114,
    157: 1116,
    158: 1115,
    159: 1119,
    161: 1038,
    162: 1118,
    163: 1032,
    165: 1168,
    168: 1025,
    170: 1028,
    175: 1031,
    178: 1030,
    179: 1110,
    180: 1169,
    184: 1105,
    186: 1108,
    188: 1112,
    189: 1029,
    190: 1109,
    191: 1111
  };

  var sText = sPar;
  for (var x in vMap)
  {
    var vReg = new RegExp(String.fromCharCode(x), "g");
    if (bEnt)
      var sTo = "&#" + vMap[x] + ";";
    else
      var sTo = String.fromCharCode(vMap[x]);
    sText = sText.replace(vReg, sTo);
  } //x

  var sMap = "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ";
  for (var nIndex=192; nIndex<256; nIndex++)
  {
    var vReg = new RegExp(String.fromCharCode(nIndex), "g");
    //var vReg = new RegExp(sMap.charAt(nIndex-192), "g");
    if (bEnt)
      var sTo = "&#" + (nIndex+848) + ";";
    else
      var sTo = String.fromCharCode(nIndex+848);
    sText = sText.replace(vReg, sTo);
  } //nIndex

  return (sText);
} //toCyrillic
/* ---------------------------------------------------------------------- */
function getUrlPars(sLoc, sPar)
{
  if (!sLoc) sLoc = document.location;
  var dPars = {};

  var aPars = sLoc.search;
  if (aPars.length > 0) aPars = aPars.substring(1, aPars.length); // after '?'
  if (aPars.length > 0)
  {
    aPars = aPars.split('&');
    for (var nIndex=0; nIndex<aPars.length; nIndex++)
    {
      var aPar = aPars[nIndex].split('=');
      dPars[aPar[0]] = aPar[1];
    } //nIndex
  }

  if (!sPar.length || !dPars[sPar]) return (dPars);
  return (dPars[sPar]);
} //getUrlPars
/* ---------------------------------------------------------------------- */
function getCookie(sName)
{
  var sValue = null;
  if (document.cookie.length > 0)
  {
    var aCookie = document.cookie.split("; ");
    for (var nIndex=0; nIndex<aCookie.length; nIndex++)
    {
      var aCrumb = aCookie[nIndex].split("=");
      if (aCrumb[0] == sName)
      {
        sValue = unescape(aCrumb[1]);
        break;
      }
    } //nIndex
  }
  return(sValue);
} //getCookie
/* ---------------------------------------------------------------------- */
function setCookie(sName, sValue)
{
  if (!navigator.cookieEnabled) return;
  var vToday  = new Date();
  var vExpire = new Date(vToday.getFullYear() + 3, vToday.getMonth(), vToday.getDate());
  var sSuffix = "; expires=" + vExpire.toGMTString();
  document.cookie = sName + "="  + escape(sValue) + sSuffix + "; path=/;";
} //setCookie
/* ---------------------------------------------------------------------- */
function getStyle(selector, attribute)
{
  selector = selector.toLowerCase();
  var vRes = '';

  for (var mIndex=0; mIndex<document.styleSheets.length; mIndex++)
  {
    var aStyles = document.styleSheets[mIndex];
    if (aStyles.cssRules)
      aStyles = aStyles.cssRules;
    else if (aStyles.rules)
      aStyles = aStyles.rules;
    else
      continue;

    for (var nIndex=0; nIndex<aStyles.length; nIndex++)
    {
      var vStyle = aStyles[nIndex];
      if (vStyle.selectorText.toLowerCase() == selector)
      {
        //var vAux = vStyle.style.getAttribute(attribute, 2);
        var vAux = vStyle.style[attribute];
        if (vAux) vRes = vAux;
        break;
      }
    } //nIndex
  } //mIndex
  return (vRes);
} //getStyle
/* ---------------------------------------------------------------------- */
function setStyle(selector, attribute, value)
{
  selector = selector.toLowerCase();
  for (var mIndex=0; mIndex<document.styleSheets.length; mIndex++)
  {
    var aStyles = document.styleSheets[mIndex];
    if (aStyles.cssRules)
      aStyles = aStyles.cssRules;
    else
      aStyles = aStyles.rules;

    for (var nIndex=0; nIndex<aStyles.length; nIndex++)
    {
      var vStyle = aStyles[nIndex];
      if (vStyle.selectorText.toLowerCase() == selector)
      {
        var vAux = vStyle.style[attribute];
        if (vAux) vStyle.style[attribute] = value;
        break;
      }
    } //nIndex
  } //mIndex
} //setStyle
/* ---------------------------------------------------------------------- */
function strRepeat(s, n)
{
  var sRes = "";
  for (var nIndex=0; nIndex<n; nIndex++)
    sRes += s;
  return (sRes);
} //strRepeat
/* ---------------------------------------------------------------------- */
function occurrencesOf(sText, sChar)
{
  var nCount = 0;
  var nIndex = sText.indexOf(sChar);
  while (nIndex >= 0)
  {
    nCount++;
    nIndex = sText.indexOf(sChar, nIndex + 1);
  }
  return(nCount);
} //occurrencesOf
/* ---------------------------------------------------------------------- */
function msieVersion()
{
  var ua = window.navigator.userAgent;
  if (ua.indexOf("Opera") > 0 || ua.indexOf("Gecko") > 0) return 0;

  var msie = ua.indexOf("MSIE ");
  if (msie > 0)
    return parseFloat(ua.substring(msie + 5, ua.length));
  else
    return 0;
} //msieVersion
/* ---------------------------------------------------------------------- */
function fMouseHandler(oThis, oEvent)
{
  var nClientX = oEvent.clientX;
  var nClientY = oEvent.clientY;
  if (oEvent.type == 'touchstart' || oEvent.type == 'touchmove')
  {
    nClientX = oEvent.touches[0].clientX;
    nClientY = oEvent.touches[0].clientY;
  }

  switch (oEvent.type)
  {
    case 'touchstart':
    case 'mousedown':
      oThis.style.cursor = 'move';
      vMove.o = oThis;
      vMove.x = nClientX;
      vMove.y = nClientY;
      vMove.b = true;
      break;

    case 'touchmove':
    case 'mousemove':
      if (!vMove.b || vMove.o != oThis) return;
      oThis.style.left = (oThis.offsetLeft + nClientX - vMove.x) + 'px';
      oThis.style.top  = (oThis.offsetTop  + nClientY - vMove.y) + 'px';
      vMove.x = nClientX;
      vMove.y = nClientY;
      break;

    case 'touchend':
    case 'touchcancel':
    case 'mouseup':
      if (!vMove.b || vMove.o != oThis) return;
      vMove.b = false;
      oThis.style.cursor = 'default';
      break;
  } //oEvent.type
} //fMouseHandler
/* ---------------------------------------------------------------------- */

