// меню
dom = (document.getElementById)? true : false;
nn4 = (document.layers)? true : false;
ie4 = (!dom && document.all)? true : false;

var occupied_header = new Array();
var occupied_menu = new Array();
var opid;
var per=0;
//per=0;

occupied_header[1] = 0;
occupied_menu[1] = 0;

occupied_header[2] = 0;
occupied_menu[2] = 0;

occupied_header[3] = 0;
occupied_menu[3] = 0;

occupied_header[4] = 0;
occupied_menu[4] = 0;

occupied_header[50] = 0;
occupied_menu[50] = 0;



function n_GetX(El, id, dx)
{
	var X = 0;
	do { X += El.offsetLeft } while ((El = El.offsetParent) != null);
	switch(dx)
	{
		case 1: dw = - document.getElementById("sub"+id).offsetWidth; break;
		default: dw = dx;
	}
	return (X + dw);
}

function n_GetY(El, id, dy)
{
	var Y = 0;
	var sh = 16;
	do { Y += El.offsetTop } while ((El = El.offsetParent) != null);
	switch(dy)
	{
		case 1: dh = - document.getElementById("sub"+id).offsetHeight - sh; break;
		case 0: dh = - document.getElementById("sub"+id).offsetHeight/2; break;
		case -1: dh = sh; break;
		default: dh = dy;
	}
	return (Y + dh);
}

// idn - кол-во пунктов меню
// dy - смещение подменю по Y
//m - добавка к z-индексу
function CreateLayer(text, id, pos_id, m, idn, dx, dy)
{
  if (dom && !document.all)
  {
    var strng="<div id=sub"+id+" class='transp' style=\"position: absolute; top: 0; left: 0; visibility: hidden; z-index: 100" + m +
              ";\" onmouseover=\"occupied_menu[" + id + "]=1;\" onmouseout=\"Turn('" + id + "','" + pos_id + "', 0,'" + idn + "','" + dx + "','" + dy +
              "'); occupied_menu[" + id + "]=0;\" onclick=\"Turn('" + id + "','" + pos_id + "', 0,'" + idn + "','" + dx + "','" + dy +
              "'); occupied_menu[" + id + "]=0;\" >" + text + "</div>";
    document.write(strng);
  }
  else
  {
    if(document.layers)
    {
      mm=m+1;
      var strng="<LAYER ID=sub" + id + " class='transp' TOP=0 LEFT=0" +
                " onmouseover=\"occupied_menu[" + id + "]=1;\" onmouseout=\"Turn('" + id + "','" + pos_id +
                "', 0,'" + idn + "','" + dx + "','" + dy + "');occupied_menu[" + id + "]=0;\" onclick=\"Turn('" + id + "','" + pos_id +
                "', 0,'" + idn + "','" + dx + "','" + dy + "');occupied_menu[" + id + "]=0;\"  VISIBILITY=hide Z-INDEX=100" + mm +
                " bgcolor=\"#FFFFFF\">" + text + "</LAYER>";
      document.write(strng);
    }
    else
    if (document.all)
    {
      var strng="<div id=sub"+id+" class='transp' style=\"position: absolute; top: 0; left: 0; visibility: hidden; z-index: 100"+m+"; bgcolor: #ffff00;\" onmouseover=\"occupied_menu["+id+"]=1;\" onmouseout=\"Turn('"+id+"', '"+pos_id+"', 0, '"+idn+"','"+dx+"', '"+dy+"'); occupied_menu["+id+"]=0;\" onclick=\"Turn('"+id+"', '"+pos_id+"', 0, '"+idn+"','"+dx+"', '"+dy+"'); occupied_menu["+id+"]=0;\">"+text+"</div>";
      document.write(strng);
    }
  }
}

// pos_id - id привязки
// mode - состояние отображения
// idn - кол-во пунктов меню
// dy - смещение подменю по Y
function Turn(id, pos_id, mode, idn, dx, dy)
{
  if(document.layers || document.all || dom)
  {
    if (mode)
 	  {
   	  eval("setTimeout(\"On(" + id + "," + pos_id + "," + dx + "," + dy + ");\",200)");
  	}
    else
  	{
      eval("setTimeout(\"Off(" + id + "," + idn + ");\",200)");
	  }
  }
}

function On(id, pos_id, dx, dy)
{
  if (occupied_header[id] )
  {
    if (dom && !document.all)
    {
      LeftCoord = n_GetX(document.images["m" + pos_id], id, dx);
	  topCoord = n_GetY(document.images["m" + pos_id], id, dy);

      document.getElementById("sub" + id).style.left = LeftCoord;
	  document.getElementById("sub" + id).style.top = topCoord;
      document.getElementById("sub" + id).style.visibility = 'visible';
	  opid=id;
    }
    else
    {
      if (document.all)
      {
        LeftCoord = n_GetX(document.images["m" + pos_id], id, dx);
	    topCoord = n_GetY(document.images["m" + pos_id], id, dy);

        document.all["sub" + id].style.left = LeftCoord;
	    document.all["sub" + id].style.top = topCoord;
        document.all["sub" + id].style.visibility = 'visible';
	    opid=id;
      }
      else
	    if (document.layers)
      {
        switch(dx)
		{
			case 1: dw = - document.getElementById("sub"+id).offsetWidth; break;
			default: dw = dx;
		}
        var sh = 15;
        switch(dy)
		{
			case 1: dh = - document.getElementById("sub"+id).offsetHeight - sh; break;
			case 0: dh = - document.getElementById("sub"+id).offsetHeight/2; break;
			case -1: dh = sh; break;
			default: dh = dy;
		}
        LeftCoord = document.images["m" + pos_id].x + dw;
		topCoord = document.images["m" + pos_id].y + dh;

		eval('document.layers["sub" + id].top = topCoord');
        eval('document.layers["sub" + id].left = LeftCoord');
        eval("document.layers['sub" + id + "']").visibility = "show";
		opid=id;
      }
    }
  }
}

function Off(id, idn)
{
  if (!occupied_menu[id] && !occupied_header[id])
  {
    if (dom && !document.all)
    {
      if (per == 1 && occupied_menu[id] == 0 && occupied_menu[idn] == 1)
      {
	  	  document.getElementById("sub" + id).style.visibility = 'hidden';
		    per = 0;
		    opid = idn;
		  }
		  if (per == 1 && occupied_menu[id] == 0 && occupied_menu[idn] == 0)
		  {
        document.getElementById("sub" + id).style.visibility = 'hidden';
			  document.getElementById("sub" + idn).style.visibility = 'hidden';
		    per = 0;
		  }
		  if (per == 0)
		  {
		    document.getElementById("sub" + id).style.visibility = 'hidden';
		  }
		  if (per == 1 && !occupied_menu[opid] && !occupied_menu[id])
		  {
        document.getElementById("sub" + opid).style.visibility = 'hidden';
			  document.getElementById("sub" + id).style.visibility = 'hidden';
		    per = 0
		  }
		  if (per == 1 && occupied_menu[idn] && !occupied_menu[id])
		  {
		    document.getElementById("sub" + id).style.visibility = 'hidden';
		    per = 0
		  }
    }
    else
    {
      if (document.all)
      {
		    if (per == 1 && occupied_menu[id] == 0 && occupied_menu[idn] == 1)
		    {
	  	    eval("sub" + id).style.visibility = 'hidden';
		      per = 0;
		      opid = idn;
		    }
		    if (per == 1 && occupied_menu[id] == 0 && occupied_menu[idn] == 0)
		    {
		      eval("sub" + id).style.visibility = 'hidden';
		      eval("sub" + idn).style.visibility = 'hidden';
		      per = 0;
		    }
		    if (per == 0)
		    {
		      eval("sub" + id).style.visibility = 'hidden';
		    }
		    if (per == 1 && !occupied_menu[opid] && !occupied_menu[id])
		    {
		      eval("sub" + opid).style.visibility = 'hidden';
		      eval("sub" + id).style.visibility = 'hidden';
		      per = 0
		    }
		    if (per == 1 && occupied_menu[idn] && !occupied_menu[id])
		    {
		      eval("sub" + id).style.visibility = 'hidden';
		      per = 0
		    }
      }
      else
        if (document.layers)
        {
		      if (per == 1 && occupied_menu[id] == 0 && occupied_menu[idn] == 1)
		      {
	  	      eval("document.layers['sub" + id + "']").visibility = "hide";
		        per = 0;
		        opid = idn;
		      }
		      if (per == 1 && occupied_menu[id] == 0 && occupied_menu[idn] == 0)
		      {
		        eval("document.layers['sub" + id + "']").visibility = "hide";
		        eval("document.layers['sub" + idn + "']").visibility = "hide";
		        per = 0;
		      }
		      if (per == 0)
		      {
		        eval("document.layers['sub" + id + "']").visibility = "hide";
		      }
		      if (per == 1 && !occupied_menu[opid] && !occupied_menu[id])
		      {
		        eval("document.layers['sub" + opid + "']").visibility = "hide";
		        eval("document.layers['sub" + id + "']").visibility = "hide";
		        per = 0
		      }
		      if (per == 1 && occupied_menu[idn] && !occupied_menu[id])
		      {
		        eval("document.layers['sub" + id + "']").visibility = "hide";
		        per = 0
		      }
        }
    }
  }
}