//Чтобы изменить способ переключения меню, переименуйте этот файл в menu1.js, а файл menu1.js - в menu2.js

//Оигинал этого скрипта здесь: http://www.fridsten.se/script/menu2.html

// A cascading menu script by Fredrik Fridsten 2000 (c)
// Feel free to use this, but please mention in a comment in the code.

// To configure the script:
// Change the nom value to the number of menus that you want to use
// Note: Always make sure that this is correct, otherwise you might get a javascript error.

// The phrases "images/opened.gif" and "images/closed.gif" should be referring to the
// pictures you might use.
// If you don't want to use images, just remove the picopen and picclose functions.
// Also remove the lines in the toggle function that refer to those.

// The input variables to the toggle function are the number of the submenu to open/close,
// starting with 1, and the number of pixels to move the objects below.
// For example toggle(2,60) opens/closes the second submenu and moves the objects below 60 pixels.

var nom = 11; // Number of menus
//Массив со значениями сдвига для каждого из пунктов меню
var toggleHeights = new Array (0, 0, 237, 260, 260, 76, 0, 0, 0, 0, 0);

var tits = new Array(); // An array for the title objects
var subs = new Array(); // An array for the submenu objects
var lastn;
var lastmove;
var isIE4;
var isNav4;
var isNav6;
var re = new RegExp('px');

function setbrowser() {
	if (navigator.appVersion.charAt(0) == "4") {
		if (navigator.appName.indexOf("Explorer") >= 0) {
			isIE4 = true;
		}
		else {
			isNav4 = true;
		}
	}
	else if (navigator.appVersion.charAt(0) > "4") {
		isNav6 = true;
	}
	if (isNav4) { // Setting the visibility for NN and IE
		visible = 'show';
		hidden = 'hide';
	}
	else if (isIE4) {
		visible = 'visible';
		hidden = 'hidden';
	}
	else if (isNav6) {
		visible = 'visible';
		hidden = 'hidden';
	}
}

setbrowser();

for (var i = 1; i <= nom; i++) { // Fills the arrays with title and submenu objects
	tits[i] = ('title' + i);
	subs[i] = ('submenu' +i);
}

// A couple of small functions that changes the image by the clicked menu
function picopen(n) {
	title = ('title' + n);
	pic = ('pic' + n);
	if (isNav4) {
		document.layers[title].document.images[pic].src = "images/opened.gif";
	}
	else if (isIE4) {
		document.all(pic).src = "images/opened.gif";
	}
	else if (isNav6) {
		document.getElementById(pic).src = "images/opened.gif";
	}
}

function picclose(n) {
	title = ('title' + n);
	pic = ('pic' + n);
	if (isNav4) {
		document.layers[title].document.images[pic].src = "images/closed.gif";
	}
	else if (isIE4) {
		document.all(pic).src = "images/closed.gif";
	}
	else if (isNav6) {
		document.getElementById(pic).src = "images/closed.gif";
	}
}

// The main script for toggling the selected menu
// Input variables:
// n = the number of the submenu to show/hide
// move = the number of pixels for moving the objects below

lastn = (nom + 1);
lastmove = 0;

function lasttoggle(n,move) {
	if (n <= nom) {
		menu = ('submenu' + n);
		if (isNav4) {
			submenu = document.layers[menu];
		}
		else if (isIE4) {
			submenu = document.all(menu).style;
		}
		else if (isNav6) {
			submenu = document.getElementById(menu).style;
		}
		if (submenu.visibility.toLowerCase() == visible) {
			submenu.visibility = hidden;
			//picclose(n); // Remove this if you don't use pictures
			for (var i = (n+1); i <= nom; i++) {
				if (isNav4) {
					var tit = document.layers[tits[i]];
					var subm = document.layers[subs[i]];
				}
				else if (isIE4) {
					var tit = document.all(tits[i]).style;
					var subm = document.all(subs[i]).style;
				}
				else if (isNav6) {
					var tit = document.getElementById(tits[i]).style;
					var subm = document.getElementById(subs[i]).style;
				}
				var tmptit = parseInt(tit.top);
				var tmpsub = parseInt(subm.top);
				if (isNav4) {
					tit.top = (tmptit - move);
					subm.top = (tmpsub - move);
				} else {
					tit.top = (tmptit - move) + "px";
					subm.top = (tmpsub - move) + "px";
				}
			}			
		}
	}
}

function toggle(n,move) {
	var menu = ('submenu' + n);
	if (isNav4) {
		submenu = document.layers[menu];
	}
	else if (isIE4) {
		submenu = document.all(menu).style;
	}
	else if (isNav6) {
		submenu = document.getElementById(menu).style;
	}
	if (submenu.visibility.toLowerCase() == visible) {
		submenu.visibility = hidden;
		//picclose(n); // Remove this if you don't use pictures
		for (var i = (n+1); i <= nom; i++) {
			if (isNav4) {
				var tit = document.layers[tits[i]];
				var subm = document.layers[subs[i]];
			}
			else if (isIE4) {
				var tit = document.all(tits[i]).style;
				var subm = document.all(subs[i]).style;
			}
			else if (isNav6) {
				var tit = document.getElementById(tits[i]).style;
				var subm = document.getElementById(subs[i]).style;
			}
			var tmptit = parseInt(tit.top);
			var tmpsub = parseInt(subm.top);
			if (isNav4) {
				tit.top = (tmptit - move);
				subm.top = (tmpsub - move);
			} else {
				tit.top = (tmptit - move) + "px";
				subm.top = (tmpsub - move) + "px";
			}			
		}
	}
	else {
		submenu.visibility = visible;
		//picopen(n); // Remove this if you don't use pictures
		if (lastn != n) {
			lasttoggle(lastn,lastmove);
		}
		for (var i = (n+1); i <= nom; i++) {
			if (isNav4) {
				var tit = document.layers[tits[i]];
				var subm = document.layers[subs[i]];
			}
			else if (isIE4) {
				var tit = document.all(tits[i]).style;
				var subm = document.all(subs[i]).style;
			}
			else if (isNav6) {
				var tit = document.getElementById(tits[i]).style;
				var subm = document.getElementById(subs[i]).style;
			}
			var tmptit = parseInt(tit.top);
			var tmpsub = parseInt(subm.top);
			if (isNav4) {
				tit.top = (tmptit + move);
				subm.top = (tmpsub + move);
			} else {
				tit.top = (tmptit + move) + "px";
				subm.top = (tmpsub + move) + "px";
			}		
		}
	}
	lastn = n;
	lastmove = move;
}

//Закрыть подменю во всех пунктах
function closeAll () {
	for (var j = 1; j <= nom; j++) {
		var menu = ('submenu' + j);
		//alert ('j = ' + j + ', container = ' + isContainer);
		if (isNav4) {
			submenu = document.layers[menu];
		}
		else if (isIE4) {
			submenu = document.all[menu].style;
		}
		else if (isNav6) {
			submenu = document.getElementById(menu).style;
		}
		if (submenu.visibility.toLowerCase() == visible) {
			toggle(j, toggleHeights[j - 1]);
		}
	}
}
