﻿// JScript File

// название пунктов подменю
var menu1 = Array("Новости", "Вакансии", "Контакты");
var menu2 = Array("Безопасность бизнеса", "Образование", "Службы сервиса", "Финансы");


var selectedItem, selectedSubItem;

// создает подменю
function createMenu(menuNum){
  var divHtml='<div id="DivMenu' + menuNum + '" style="Z-INDEX: 100; LEFT: -1000px; POSITION: absolute; TOP: -1000px; FILTER: alpha(opacity=85)"';
  divHtml+=' onmouseout="Deselect(event, td_menu'+menuNum+', this)">\n';
  var tableHtml='<table class="menuArea" cellspacing=3 cellpadding=0 id="menuTab'+menuNum+'">\n';
  var tableRowHtml="";
  var irow=0;
  var nrows=eval("menu"+menuNum).length;
  
  for(irow=0;irow<nrows;irow++){
   tableRowHtml+='<tr><td id="menu'+menuNum+'Item'+irow+'"';
   tableRowHtml+=' class="menuLevel2">&nbsp;<a class="menuLevel2" href="'+eval("menuItems"+menuNum)[irow]+'">'+eval("menu"+menuNum)[irow]+'</a>&nbsp;&nbsp;</td></tr>\n';   
   
  }
  return divHtml+tableHtml+tableRowHtml+'</table></div>';
 }
 
 // возвращает смещение по вертикали относительно тега form, для отображения подменю
 function lt_offset()
 {
    var FORM_NAME = "aspnetForm";
    var args=lt_offset.arguments;
    var i,j=args.length,res=0;
    var elem=args[1];
    
    if(args[0]=="left") 
    {
        while (elem.parentNode.id != FORM_NAME)
        {
            if ((elem.tagName !="TBODY") && (elem.tagName !="TR") && (elem.tagName !="A") && (elem.tagName !="NOBR"))
                res+=elem.offsetLeft;
            elem=elem.parentNode;
        }
    }
    else
    {
        if(args[0]=="top")
            while (elem.parentNode.id != FORM_NAME)
            {
                if ((elem.tagName !="TBODY") && (elem.tagName !="TR") && (elem.tagName !="A") && (elem.tagName !="NOBR"))
                    res+=elem.offsetTop;
                elem=elem.parentNode;
            }
        else 
            alert("lt_offset: must be or LEFT or TOP");
    }
    return res;
}

function Select(menu, subMenu)
{
    // убрать выделение с предыдущего пункта
    if (selectedItem || selectedSubItem) 
    {
      //alert(selectedItem.id + " " + selectedSubItem.id);
      //Deselect(selectedItem, selectedSubItem);
      	selectedItem.className = "menuItemNormal";
		if (selectedSubItem) selectedSubItem.style.left=-1000;
     }
    
	menu.className = "menuItemSelected";
	
	if (Select.arguments.length >= 2)
	{
		var res_left=lt_offset("left", menu);   
		var res_top=lt_offset("top", menu);
		
		subMenu.style.left=(Number(res_left) - 1);
	   	subMenu.style.top=(Number(res_top)+Number(menu.offsetHeight + 7));
	}
	selectedItem = menu;
	selectedSubItem = subMenu;
}

function Deselect(event, menu, subMenu)
{
    menu.className = "menuItemNormal";
    
    var elem;
    if (window.event != null) /*IE*/
            elem = window.event.toElement;
     else 
        if (event.relatedTarget != null)
            elem = (event.relatedTarget.tagName ? event.relatedTarget : event.relatedTarget.parentNode);
    
	if(subMenu && !Contains(subMenu,elem))
	{
		menu.className = "menuItemNormal";
		subMenu.style.left=-1000;
	}
}

function Contains(container, element)
{
    var node = element.parentNode;
    while (node != null)
    {
        if (node.id == container.id) return true;
        node = node.parentNode;
    }

    return false;
}

function SetDeselected(menu, subMenu)
{
    if (menu) menu.className = "menuItemNormal";
    if (subMenu) subMenu.style.left = -1000;
}


document.write(createMenu(1));
document.write(createMenu(2));




<!--
/*Time limit script- JavaScript Kit (http://www.javascriptkit.com) Over 200+ free JavaScripts here!

    Возможно сделать пропадание выпадающего меню по таймеру...
*/


//enter limit in "minutes:seconds" Minutes should range from 0 to inifinity. Seconds should range from 0 to 59
var limit="1:30"
if (document.images)
{
    var parselimit = limit.split(":");
    parselimit = parselimit[0] * 60 + parselimit[1] * 1;
}
function begintimer()
{
    if (!document.images)
        return;
    if (parselimit == 1)
        window.location = "http://www.javascriptkit.com";
    else
    { 
        parselimit -= 1;
        curmin = Math.floor(parselimit / 60);
        cursec = parselimit % 60;
        if (curmin != 0)
            curtime = curmin+" minutes and "+cursec+" seconds left";
        else
            curtime = cursec+" seconds left";
        window.status = curtime;
        setTimeout("begintimer()", 1000);
    }
}
-->


