/*/////////////////////////////////////////////////////////////////////

Created by Yury Timoschuk ( yury@i.com.ua )
1999,2001 

*//////////////////////////////////////////////////////////////////////

      var TextColor = "#ffffff";
      var ieTextColorOver = "#E5E5E5";
      var TextSize = "8pt";
      var textFontFamily = /*"Verdana, Geneva,*/ "Tahoma,Arial, Helvetica, sans-serif";
      var TextWeight = "bold";
      var textMarging = 2;
      var textPaddingLeft = 4;
      var menuBorderWidth = 1;
      var menuBorder2Width = 1;
      var menuBorderColor = "#E61E24";
      var menuBorder2Color = "#E61E24";
      var menuBgColor = "#E61E24";
      var menuBgColorOver = "#E61E24";
      var menuBackground = "";
      var menuWidth = 140;
      var topCorrection = 1;
      var corrFirst = -20;
      var corrLast = 1;
      var lastButtonToRight = true;	  

/////////////////////////////////////////////////////////////////////////	  
	  
      var nn4 = (document.layers)? true:false;
      var ie4 = (document.all)? true:false;
      var ie4v4 = (navigator.userAgent.indexOf("MSIE 4")>=0)? true:false;
      var currentLevel = 0;
      var levels = new Array();
      var showed = new Array();
      var countBottons;
      var curPath = "";
      var active = false;

	  
function doMenu(parent,child,obj)
{
 if(nn4||ie4)
  {
   if((parent!=levels[currentLevel-1]&&parent!=levels[currentLevel]&&parent!=levels[currentLevel-2])||(parent==levels[currentLevel-1]&&child!=levels[currentLevel]))
    {
	 hide('menu' + levels[currentLevel]);
	 if(ie4&&document.all(levels[currentLevel]))
	  bgColorRoll(document.all(levels[currentLevel]).parentElement,2)
	 showed[levels[currentLevel]] = false;
	 levels[currentLevel] = "";
	 if(--currentLevel < 0) currentLevel = 0;
	}
   if(!showed[child]&&menuItems[parent])
    {
	 if(!levels[currentLevel])
	  levels[currentLevel] = parent;
	 if(ie4&&document.all(levels[currentLevel]))
	  bgColorRoll(document.all(levels[currentLevel]).parentElement,1)
	 if(showMenu(child,obj))
	  {
	   levels[++currentLevel] = child;
	  }
	}
  }
}  
	  
function showMenu(idButton,obj)
{       
        var idMenu = 'menu'+ idButton;
        var j ="im" + idButton;
        if(nn4&&document.layers[idMenu]!=null)
		 {
		  if(document.images[j])
		   {
            if(menuItems[0][1][2]==idButton)
			 document.layers[idMenu].left = document.images[j].x - corrFirst; else
            if(lastButtonToRight&&menuItems[0][menuItems[0].length - 1][2]==idButton)
             document.layers[idMenu].left = document.images[j].x + document.images[j].width - document.layers[idMenu].clip.width + corrLast;
            else
             document.layers[idMenu].left = document.images[j].x + document.images[j].width/2 - document.layers[idMenu].clip.width/2;
            document.layers[idMenu].top = document.images[j].y + document.images[j].height + topCorrection;
            document.layers[idMenu].visibility = "show";
			showed[idButton] = true;
		   }
		  else
		   {
		    objOffsetLeft = document.layers["menu" + levels[currentLevel]].left;
		    objOffsetTop = document.layers["menu" + levels[currentLevel]].top + obj.y - textMarging - menuBorderWidth - menuBorder2Width;
			objOffsetWidth = document.layers["menu" + levels[currentLevel]].clip.width;
			if(objOffsetLeft + objOffsetWidth + document.layers[idMenu].clip.width < document.width)
			 leftOffset = objOffsetLeft + objOffsetWidth - menuBorderWidth;
			else
			 leftOffset = objOffsetLeft - (document.layers[idMenu].clip.width - menuBorderWidth);
			document.layers[idMenu].left = leftOffset;
			document.layers[idMenu].top = objOffsetTop;
            document.layers[idMenu].visibility = "show";
			showed[idButton] = true;
		   }
		 }
        if(ie4&&document.all(idMenu)!=null)
		 {
		  if(document.images[j])
		   {
            while(currentLevel) hideMenu();
		    objOffsetLeft = calculateSumOffset(obj,"offsetLeft");
		    objOffsetTop = calculateSumOffset(obj,"offsetTop");
            if(menuItems[0][1][2]==idButton)
             document.all(idMenu).style.left = objOffsetLeft - corrFirst;
			else if(lastButtonToRight&&menuItems[0][menuItems[0].length - 1][2]==idButton)
             document.all(idMenu).style.left = objOffsetLeft + obj.offsetWidth - menuWidth + corrLast;
            else
             document.all(idMenu).style.left = objOffsetLeft + obj.offsetWidth/2 - menuWidth/2;
            if(ie4v4)
			 document.all(idMenu).style.width = menuWidth;
            document.all(idMenu).style.top = objOffsetTop + obj.offsetHeight + topCorrection;
            document.all(idMenu).style.visibility = "Visible";
			showed[idButton] = true;
		   }
		  else
		   {

//		    if(navigator.userAgent.indexOf('MSIE 4')>=0)
			  objOffsetLeft = document.all("menu" + levels[currentLevel]).offsetLeft;
//			else
//		      objOffsetLeft = calculateSumOffset(obj,"offsetLeft");
		    objOffsetTop = calculateSumOffset(obj,"offsetTop");
			if(objOffsetLeft + obj.offsetWidth + menuWidth < document.body.clientWidth)
			 leftOffset = objOffsetLeft + obj.offsetWidth + menuBorderWidth + 2*menuBorder2Width;
			else
			 leftOffset = objOffsetLeft - (menuWidth + menuBorderWidth);
            if(ie4v4)
			 document.all(idMenu).style.width = menuWidth;
            document.all(idMenu).style.left = leftOffset;
            document.all(idMenu).style.top = objOffsetTop - menuBorderWidth - menuBorder2Width;
            document.all(idMenu).style.visibility = "Visible";
			showed[idButton] = true;
		   }
		 }
 if(showed[idButton]) return true;
 else return false;
}

function calculateSumOffset(item, offsetName)
{
 var totalOffset = 0;
 do
  {
   totalOffset += eval('item.'+offsetName);
   item = item.offsetParent;
  }
 while (item != null);
 return totalOffset;
}


function hideMenu(e)
{
 var parentID;
 var childID;
 var evntX;
 var evntY;
 
    if(showed[levels[currentLevel]]&&((!ie4v4&&!active)||ie4v4))
	 {
	  parentID = 'im' + levels[currentLevel];
	  if(!document.images[parentID])
	    parentID = 'menu' + levels[currentLevel-1];
	  if(nn4)
	   {
		evntX = e.pageX;
		evntY = e.pageY;
	   }
	  if(ie4)
	   {
		evntX = event.clientX;
		evntY = event.clientY;
	   }
	   childID = 'menu' + levels[currentLevel];
	  
	  if(check(evntX,evntY,parentID)&&check(evntX,evntY,childID))
	   {
		hide(childID);
		if(ie4&&document.all(levels[currentLevel]))
		 bgColorRoll(document.all(levels[currentLevel]).parentElement,2)
		showed[levels[currentLevel]] = false;
		levels[currentLevel] = "";
		if(--currentLevel < 0) currentLevel = 0;
	   }
     }
}

function check(evntX,evntY,idMenu)
{     
 var objOffsetLeft;
 var objOffsetTop;
 var obj;
    if(document.images[idMenu]) 
     {
	  if(nn4&&(evntY > document.images[idMenu].y + document.images[idMenu].height + topCorrection
        ||evntY < document.images[idMenu].y
        ||evntX > document.images[idMenu].x + document.images[idMenu].width
        ||evntX < document.images[idMenu].x))
       return true;
	 }
	else
	 {
      if(nn4&&document.layers[idMenu]!=null
	   &&(evntY > document.layers[idMenu].top + document.layers[idMenu].clip.height
        ||evntY < document.layers[idMenu].top
        ||evntX > document.layers[idMenu].left + document.layers[idMenu].clip.width
        ||evntX < document.layers[idMenu].left))
       return true;
	 }
      if(ie4&&document.all(idMenu)!=null)
	   {
	    obj = document.all(idMenu);
        if(document.images[idMenu])
		 {
	      objOffsetLeft = calculateSumOffset(obj,"offsetLeft");
		  objOffsetTop = calculateSumOffset(obj,"offsetTop") + topCorrection;
		 }
	    else
	     {
	      objOffsetLeft = obj.offsetLeft;
		  objOffsetTop = obj.offsetTop + topCorrection;
		 }
	    if(( evntY + document.body.scrollTop > obj.offsetHeight + objOffsetTop
          || evntY + document.body.scrollTop < objOffsetTop
          || evntX + document.body.scrollLeft > obj.offsetWidth + objOffsetLeft
          || evntX + document.body.scrollLeft < objOffsetLeft))
         return true;
	   }
	 
}


function hide(id)
{
 if(nn4&&document.layers[id]!=null)document.layers[id].visibility = "hidden";
 if(ie4&&document.all(id)!=null)document.all(id).style.visibility = "hidden";
}

function overText(obj)
{
 if(ie4)
  obj.style.color = ieTextColorOver;
 //     if(nn4)color = ieTextColorOver;
 //     return false;

}

function outText(obj)
{
 if(ie4)
  obj.style.color = TextColor;
}

function bgColorRoll(obj,action)
{
  color = (action == 1) ? menuBgColorOver : "";
  if(obj!=null)
   obj.bgColor = color;
}


if(nn4||ie4)
 {
  document.onmousemove = hideMenu;
  if(nn4) {document.captureEvents(Event.MOUSEMOVE);}

  var menuItems;
  menuItems=new Array();
 }

function addMenuItem(parentNum,itemNum,id,itemContent,itemRef)
{

 if(!menuItems[parentNum])
  menuItems[parentNum]=new Array();
 menuItems[parentNum][itemNum]=new Array(itemContent,itemRef,id);
}
countBottons = menuItems.length;

function initPath(path)
 {
  if(path!="")curPath = path + "/";
 }

function getLayersStyle(currentParentNumber)
 {
  var layerString = "";
  var menuNumber; 
  if(menuItems[currentParentNumber] && menuItems[currentParentNumber].length > 0)
    for(menuNumber=1; menuNumber < menuItems[currentParentNumber].length; menuNumber++)
      if(menuItems[currentParentNumber][menuNumber].length > 0)
	   {
        layerString += "#menu" + currentParentNumber +  "{POSITION: absolute; VISIBILITY: hidden; z-index: 3;}";
	     if(menuItems[menuItems[currentParentNumber][menuNumber][2]])
		  layerString += getLayersStyle(menuItems[currentParentNumber][menuNumber][2]);
	   }
  return layerString;
 }

function getMenuLayers(currentParentNumber)
 {
  var textPadding;
  var itemsString = "";
  var subMenuString = "";
  var itemsNumber;
  if(menuBgColor) bgColor = "bgColor=" + menuBgColor; else bgColor = "";
  if(menuBackground) background = " background='" + menuBackground + "'"; else background = "";
  if(menuBorderColor) borderBgColor = "bgColor=" + menuBorderColor; else borderBgColor = "";
  if(menuBorder2Color) border2BgColor = "bgColor=" + menuBorder2Color; else border2BgColor = "";
//  if(nn4) textPadding = textMarging;
  if(ie4v4) textPadding = textMarging;
  itemsString += "<DIV id = 'menu" + currentParentNumber + "' onmouseover='active=true;' onmouseout='active=false;'><TABLE " + borderBgColor + " border=0 cellPadding=0 cellSpacing=0 width=" + menuWidth + "><TR><TD rowspan=3><IMG border=0 height=2 width=" + menuBorderWidth + " src='" + curPath + "_images/trans_1x1.gif'></TD><TD><IMG border=0 width=2 height=" + menuBorderWidth + " src='" + curPath + "_images/trans_1x1.gif'></TD><TD rowspan=3 width=1><IMG border=0 height=2 width=" + menuBorderWidth + " src='" + curPath + "_images/trans_1x1.gif'></TD></TR><TR><TD width='100%'><table " + border2BgColor + " border=0 width='100%' cellspacing=0 cellpadding=" + menuBorder2Width + "><tr><td><table " + bgColor + background + " border='0' width='100%' cellspacing=0 cellpadding=" + textPadding + ">";
  if(menuItems[currentParentNumber] && menuItems[currentParentNumber].length > 0)
    for(itemsNumber=1; itemsNumber < menuItems[currentParentNumber].length; itemsNumber++)
      if(menuItems[currentParentNumber][itemsNumber].length > 0)
	   {
		if(menuItems[menuItems[currentParentNumber][itemsNumber][2]])
		 {
		  subMenuString += getMenuLayers(menuItems[currentParentNumber][itemsNumber][2]);
		  onMouseOver = "doMenu(\"" + currentParentNumber + "\",\"" + menuItems[currentParentNumber][itemsNumber][2] + "\",this);";
          pointer = "<img align=\"right\" src=images/pointer.gif width=8 height=13 border=0>";
		 }
		else
		 {
		  onMouseOver = "doMenu(\"" + currentParentNumber + "\",\"\",this);";
          pointer = "";
		 }
		itemsString += "<tr onmouseover = 'bgColorRoll(this,1);' onmouseout = 'bgColorRoll(this,2);'><td valign=\"middle\"><a id=" + menuItems[currentParentNumber][itemsNumber][2] + " class='menuItem' href='" + menuItems[currentParentNumber][itemsNumber][1] + "' onmouseover='overText(this);" + onMouseOver + "' onmouseout='outText(this);'>" + pointer + "" + menuItems[currentParentNumber][itemsNumber][0] + "</a></td></tr>";
	   }
  itemsString += "</table></TD></Tr></table></TD></TR><tr><TD><IMG border=0 height=" + menuBorderWidth + " width=2 src='" + curPath + "_images/trans_1x1.gif'></TD></tr></TBODY></TABLE></DIV>";
  itemsString += subMenuString;
  return itemsString;
 }

function menuWrite()
{
 var aFill = "";
 layersString = "<STYLE>";
 if(!ie4v4) aFill = "width:100%; height:100%;";
 layersString += "a.menuItem{font-family: " + textFontFamily + "; COLOR: " + TextColor + "; FONT-WEIGHT: " + TextWeight + "; FONT-SIZE: " + TextSize + ";TEXT-DECORATION: none;" + aFill + " padding:" + textMarging + ";padding-left: " + textPaddingLeft + "}";
 layersString += "a.menuItem:visited{COLOR: " + TextColor + ";}";
 layersString += "a.menuItem:hover{COLOR: " + ieTextColorOver + ";}";
 layersString += getLayersStyle(0);
 layersString += "</STYLE>";
 document.write(layersString);
 document.write(getMenuLayers(0));
}

