var IE4 = (document.all) ? 1 : 0;
var hideDelay = 0; //ms
var shiftX = 5;
var shiftY = -9;
var cursorY = 0;
var cursorShiftX = 13;

var emptyObject;
emptyObject = new Object();

var extension = "html";
var menuImagesPath = "images/menu/"
var menuImagesExt  = "gif";

var allMenuPartList;
allMenuPartList = new Object();

// ------------
// menu images
// ------------

function menuItem(name, parentMenu, title, image, arrowPosition, href) {
	this.typeName = "menu";
	this.name = name;
	this.parent = parentMenu;
	this.title = title;
	this.image = new Image();
	this.image.src = menuImagesPath + image+"."+menuImagesExt;
	this.imageSelected = new Image();
	this.imageSelected.src = menuImagesPath + image+"_sel."+menuImagesExt;
	this.arrowPosition = arrowPosition;
	this.href = href;
	this.lock = false;
	this.itemFocused = false;
	this.subMenuFocused = false;
	this.subMenu = emptyObject;
	return this;
}

function subMenuItem(name, parentMenu, title, image, arrowPosition, href) {
	this.typeName = "subMenu"
	this.name = name;
	this.parent = parentMenu;
	this.title = title;
	this.image = new Image();
	this.image.src = menuImagesPath + image+"."+menuImagesExt;
	this.arrowPosition = arrowPosition;
	this.href = href;
	this.lock = false;
	this.itemFocused = false;
	this.subMenuFocused = false;
	this.subMenu = emptyObject;
	return this;
}


var rootPart = new menuItem("root",emptyObject,"Домашняя страница", "", 0, "/");
allMenuPartList.root = rootPart;

var aboutPart = new menuItem("about",rootPart,"О компании", "company", 21, "company."+extension);
	allMenuPartList.about = aboutPart;

		var aboutHistoryPart = new subMenuItem("aboutHistory",aboutPart,"История","2_history",37,"history."+extension);
		allMenuPartList.aboutHistory = aboutHistoryPart;

		var aboutStrategyPart = new subMenuItem("aboutStrategy",aboutPart,"Стратегия","2_strategy",52,"strategy."+extension);
		allMenuPartList.aboutStrategy = aboutStrategyPart;

		var aboutStaffPart = new subMenuItem("aboutStaff",aboutPart,"Руководство","2_staff",67,"staff."+extension);
		allMenuPartList.aboutStaff = aboutStaffPart;		

		var aboutStructurePart = new subMenuItem("aboutStructure",aboutPart,"Структура","2_structure",82,"structure."+extension);
		allMenuPartList.aboutStructure = aboutStructurePart;		

		var aboutProjectsPart = new subMenuItem("aboutProjects",aboutPart,"Проекты","2_projects",97,"projects."+extension);
		allMenuPartList.aboutProjects = aboutProjectsPart;		

		var aboutPartnersPart = new subMenuItem("aboutPartners",aboutPart,"Партнеры","2_partners",112,"partners."+extension);
		allMenuPartList.aboutPartners = aboutPartnersPart;		

		var aboutContactsPart = new subMenuItem("aboutContacts",aboutPart,"Контакты","2_contacts",127,"contacts."+extension);
		allMenuPartList.aboutContacts = aboutContactsPart;		

		var aboutVacancyPart = new subMenuItem("aboutVacancy",aboutPart,"Вакансии","2_vacancy",142,"vacancy."+extension);
		allMenuPartList.aboutVacancy = aboutVacancyPart;		

		aboutPart.subMenu = new Array(aboutHistoryPart,aboutStrategyPart,aboutStaffPart,aboutStructurePart, aboutProjectsPart,aboutPartnersPart,aboutContactsPart, aboutVacancyPart);

	var servicesPart = new menuItem("services",rootPart,"Услуги", "services", 41, "services."+extension);
	allMenuPartList.services = servicesPart;

		var servicesPeoplePart = new subMenuItem("servicesPeople",servicesPart,"Обcлуживание населения","2_servpopulation",58,"services_people."+extension);
		allMenuPartList.servicesPeople = servicesPeoplePart;

		var servicesEquipmentPart = new subMenuItem("servicesEquipment",servicesPart,"Газовое оборудование","2_gasequipment",73,"services_equipment_list."+extension);
		allMenuPartList.servicesEquipment = servicesEquipmentPart;

		var servicesShopsPart = new subMenuItem("servicesShops",servicesPart,"Продажа оборудования","2_sales",88,"services_shop_list."+extension);
		allMenuPartList.servicesShops = servicesShopsPart;

		var servicesLabPart = new subMenuItem("servicesLab",servicesPart,"Центральная лаборатория","2_lab",103,"services_lab."+extension);
		allMenuPartList.servicesLab = servicesLabPart;

		servicesPart.subMenu = new Array(servicesPeoplePart,servicesEquipmentPart,servicesShopsPart,servicesLabPart);
        
  	var welcomePart = new menuItem("welcome",rootPart,"Инвесторам", "investoram", 61, "finance."+extension);
	allMenuPartList.welcome = welcomePart;	



	var societyPart = new menuItem("society",rootPart,"Мособлгаз и общество", "safety", 81, "safety."+extension);
	allMenuPartList.society = societyPart;

		var societyPersonalPoliticPart = new subMenuItem("societyPersonalPolitic",societyPart,"Персональная политика","2_personalpolitic",98,"personalpolitic."+extension);
		allMenuPartList.societyPersonalPolitic = societyPersonalPoliticPart;

		var societySocialPart = new subMenuItem("societySocial",societyPart,"Социальное обеспечение","2_social",113,"social."+extension);
		allMenuPartList.societySocial = societySocialPart;

		var societyWorkSequrityPart = new subMenuItem("societyWorkSequrity",societyPart,"Охрана труда","2_worksecurity",128,"worksecurity."+extension);
		allMenuPartList.societyWorkSequrity = societyWorkSequrityPart;

		var societySocialBasePart = new subMenuItem("societySocialBase",societyPart,"Охрана труда","2_basesocial",143,"basesocial."+extension);
		allMenuPartList.societySocialBase = societySocialBasePart;

		var societyPensFondPart = new subMenuItem("societyPensFond",societyPart,"Пенсионный фонд","2_pensfond",158,"pensfond."+extension);
		allMenuPartList.societyPensFond = societyPensFondPart;

		var societyProfLearnPart = new subMenuItem("societyProfLearn",societyPart,"Профессиональная подготовка","2_proflearn",173,"proflearn."+extension);
		allMenuPartList.societyProfLearn = societyProfLearnPart;

		var societyMecenatPart = new subMenuItem("societyMecenat",societyPart,"Благотворительность","2_mecenat",188,"mecenat."+extension);
		allMenuPartList.societyMecenat = societyMecenatPart;

		societyPart.subMenu = new Array(societyPersonalPoliticPart,societySocialPart,societyWorkSequrityPart,societySocialBasePart,societyPensFondPart,societyProfLearnPart,societyMecenatPart);

	var ecologyPart = new menuItem("ecology",rootPart,"Метрология", "ecology", 101, "metrology."+extension);
	allMenuPartList.ecology = ecologyPart;

	var newsPart = new menuItem("news",rootPart,"Новости", "news", 121, "news.php");
	allMenuPartList.news = newsPart;

	var pressPart = new menuItem("press",rootPart,"СМИ о нас", "press", 141, "news_m."+extension);
	allMenuPartList.press = pressPart;

	var branchesPart = new menuItem("branches",rootPart,"Филиалы", "branches", 161, "company_hosting."+extension);
	allMenuPartList.branches = branchesPart;
	
	rootPart.subMenu = new Array(aboutPart,servicesPart,welcomePart,societyPart,ecologyPart,newsPart,pressPart,branchesPart);




function loadLayers(root){
	loadLayer(root);
	for (var i=0; i<root.submenu.length; i++) loadLayers(root.submenu[i]);
}

function getItem(menu, name) {
	for (var i=0; i<menu.length; i++) {
		if (menu[i].name != name) {
			var res = getItem(menu[i].submenu, name);
			if (res != null) return res;
		} else return menu[i];
	}
	return null;
}

function item(name) {
	return getItem(theMenu, name);
}

function getParent(item, name) {
	for (var i=0; i<item.submenu.length; i++) {
		if (item.submenu[i].name != name) {
			var res = getParent(item.submenu[i], name);
			if (res != null) return res;
		} else return item;
	}
	return null;
}

function parentOf(name) {
	return getParent(theRoot, name)
}

function focusSubmenu(name) {
	item(name).submenuFocused = true;
}

function unfocusSubmenu(name) {
	item(name).submenuFocused = false;
	setTimeout("closeAllSubmenus(\'" + name + "\')", hideDelay);
}

function layerAction(act, name,event) {
	if (IE4) {
		if (!document.all["div" + name]) return;
		parentOf(name).submenuLocked = act;
		if (act) {
			with (document.all["div" + name]) {
				style.posLeft = document.body.scrollLeft + event.clientX - event.offsetX + shiftX;
				style.posTop = document.body.scrollTop + event.clientY - event.offsetY + event.srcElement.offsetHeight + shiftY;
				style.visibility = "inherit";
			}
		} else {
			document.all["div" + name].style.visibility = "hidden";
		}
	} else if(document.getElementById) {
		// --------------------------------------------------------
		// for NN6
		// --------------------------------------------------------
		parentOf(name).submenuLocked = act;
		if (act) {
			var divElement = document.getElementById("div" + name);
			divElement.style.left = event.pageX;
			// -----------------------------------------------
			// for NN6 change the top if header height changed
			// -----------------------------------------------
			divElement.style.top = event.target.y + event.target.height;
			divElement.style.left = event.target.x;
			divElement.style.visibility = "inherit";
		} else {
			document.getElementById("div" + name).style.visibility = "hidden";
		}	
	} else {
		if (!document.layers["lyr" + name]) return;
		parentOf(name).submenuLocked = act;
		if (act) {
			with (document.anchors["anc" + name]) {
				var lyrLeft = x;
				var lyrTop = y;
			}

			with (document.layers["lyr" + name]) {
				left = lyrLeft + shiftX;
				top = lyrTop + 22;
				visibility = "inherit";
			}
		} else {
			document.layers["lyr" + name].visibility = "hide";
		}
	}
}

function setImage(name,image) {
	document.images[name].src = image;
}

function showSubmenu(name,event) {
	item(name).itemFocused = true;
	layerAction(1, name,event);
}

function hideSubmenu(name) {
	item(name).itemFocused = false;
	setTimeout("closeSubmenu(\'" + name + "\')", hideDelay);
}

function closeSubmenu(name,event) {
	if ((!item(name).submenuFocused) 
		&& (!item(name).submenuLocked)
		&& (!item(name).itemFocused)) {
		parentOf(name).submenuLocked = false;
		layerAction(0, name,event);
	}
}

function closeAllSubmenus(name) {
	if (name != "Root") {
		closeSubmenu(name);
		closeAllSubmenus(parentOf(name).name);
	}	
}

function loadItem(anItem) {
	document.writeln('<tr>');
	document.writeln(	'<td width=150 class="selmenu">');
	document.writeln(		'<a href="#" class="selmenu">');
	document.writeln(			'<table border=0 cellpadding=1 cellspacing=2>');
	document.writeln(				'<tr>');
	document.writeln(					'<td width=150 onClick="location.href=\'' + anItem.href + '\'">');
	document.writeln(						'<a href="' + anItem.href + '"class="submenu" name="anc' + anItem.name + '">' + anItem.title + '</a>');
	document.writeln(					'</td>');
	document.writeln(				'</tr>');
	document.writeln(			'</table>');
	document.writeln(		'</a>');
	document.writeln(	'</td>');
	document.writeln('</tr>');
}

function loadLayer(root){
	
	document.writeln('');
	if(!document.getElementById) {
		document.writeln('<layer name="lyr' + root.name + '"  visibility="hide" top="0" left="0" onmouseover="focusSubmenu(\'' + root.name + '\')" onmouseout="unfocusSubmenu(\'' + root.name + '\');">');
		document.writeln('<nolayer>');
	}
	
	document.writeln('<div id="div' + root.name + '" style="position:absolute; top:0; left:0; visibility:hidden" onmouseover="focusSubmenu(\'' + root.name + '\')" onmouseout="unfocusSubmenu(\'' + root.name + '\');">');
	if(!document.getElementById) {	
		document.writeln('</nolayer>');
	}

	document.writeln(	'<table border=0 cellpadding=0 cellspacing=0 bgcolor="#ffffff">');
	document.writeln(		'<tr>');
	document.writeln(			'<td>');
	document.writeln(				'<table border=0 cellpadding=0 cellspacing=1 >');

	for (var i=0; i<root.submenu.length; i++) loadItem(root.submenu[i]);

	document.writeln(				'</table>');
	document.writeln(			'</td>');
	document.writeln(		'</tr>');
	document.writeln(	'</table>');

	if(!document.getElementById) {
		document.writeln('<nolayer>');
	}
	
	document.writeln('</div>');
	if(!document.getElementById) {
		document.writeln('</nolayer>');
		document.writeln('</layer>');
	}
	document.writeln('');
}