var mainMenu = {
	l1: {},
	resetFlag: false,
	idTime: -1,

	init: function() {
		var numl0 = 0, element, activeL0, activeL1;

		while (mainMenu.getbyid('l0_' + numl0) != undefined) {
			element = mainMenu.getbyid('l0_' + numl0);
			mainMenu.addEvent(element, "mouseover", mainMenu.lev0over);
			mainMenu.addEvent(element, "mouseout", mainMenu.lev0Out);
			classNames = element.className.split(' ');
			if(classNames.length > 1) activeL0 = numl0;

			numl1 = 0;
			activeL1 = undefined;
			while (mainMenu.getbyid('l1_' + numl0 + '_' + numl1) != undefined) {
				element = mainMenu.getbyid('l1_' + numl0 + '_' + numl1);
				mainMenu.addEvent(element, "mouseover", mainMenu.lev1over);
				mainMenu.addEvent(element, "mouseout", mainMenu.lev1Out);
				classNames = element.className.split(' ');
				if(classNames.length > 1) activeL1 = numl1;
				numl1++;
			}

			mainMenu.l1[numl0] = {'count': numl1, 'active': activeL1};
			mainMenu.l1.current = activeL1;
			numl0++;
		}
		mainMenu.l0 = {'count': numl0, 'active': activeL0, 'current': activeL0};
		mainMenu.l0.current = activeL0;
	},

	lev0over: function(e) {
		var item = this;
		mainMenu.resetFlag = false;
		if(item.id == undefined) item = e.srcElement;
		mainMenu.l0.current = item.id.split('_')[1];

		for(var i=0; i<mainMenu.l0.count; i++) {
			mainMenu.setClass(mainMenu.getbyid('l0_' + i), 'topMItem');
			mainMenu.setClass(mainMenu.getbyid('l1_' + i), 'dispNone');
		}
		mainMenu.setClass(item, 'topMItem active');
		mainMenu.setClass(mainMenu.getbyid('l1_' + mainMenu.l0.current), ''); //pokaż poziom 1 dla danej zakladki

		mainMenu.clearL1(mainMenu.l0.current);
	},

	clearL1: function(l0ID) {
		for(var i=0; i<mainMenu.l1[l0ID].count; i++) {
			mainMenu.setClass(mainMenu.getbyid('l1_' + l0ID + '_' + i), 'topMSubItem');
		}
	},	

	lev1over: function(e) {
		var item = this;
		mainMenu.resetFlag = false;
		mainMenu.clearL1(mainMenu.l0.current);
		if(item.id == undefined) item = e.srcElement;
		mainMenu.l1.current = item.id.split('_')[2];
	},

	setClass: function(item, className) {
		if(item != undefined)
			item.className = className;
	},

	lev0Out: function(e) {
		mainMenu.resetFlag = true;
		if(mainMenu.idTime == -1)
			mainMenu.idTime = window.setTimeout("mainMenu.resetTime()", 1000);
	},

	lev1Out: function(e) {
		mainMenu.lev0Out();
		mainMenu.setClass(mainMenu.getbyid('l1_' + mainMenu.l0.current + '_' + mainMenu.l1.current), 'topMSubItem active');
	},

	resetTime: function() {
		if(mainMenu.resetFlag) {
			window.setTimeout("mainMenu.reset()", 2000);
		}
		mainMenu.idTime = -1;
	},

	reset: function() {
		mainMenu.clearL1(mainMenu.l0.current);
		mainMenu.setClass(mainMenu.getbyid('l0_' + mainMenu.l0.current), 'topMItem');
		mainMenu.setClass(mainMenu.getbyid('l1_' + mainMenu.l0.current), 'dispNone');
		mainMenu.setClass(mainMenu.getbyid('l1_' + mainMenu.l0.current + '_' + mainMenu.l1.current), 'topMSubItem');
		if(mainMenu.l0.active != undefined) {
			mainMenu.clearL1(mainMenu.l0.active);
			mainMenu.setClass(mainMenu.getbyid('l0_' + mainMenu.l0.active), 'topMItem active');
			mainMenu.setClass(mainMenu.getbyid('l1_' + mainMenu.l0.active), '');
			mainMenu.setClass(mainMenu.getbyid('l1_' + mainMenu.l0.active + '_' + mainMenu.l1[mainMenu.l0.active].active), 'topMSubItem active');
			mainMenu.l0.current = mainMenu.l0.active;
		}
	},

	addEvent: function(obj, event, func) {
		if (obj.addEventListener) obj.addEventListener(event, func, false);
		else obj.attachEvent("on" + event, func);
	},

	removeEvent: function(obj, event, func) {
		if (obj.removeEventListener) obj.removeEventListener(event, func, false);
		else obj.detachEvent("on" + event, func);
	},

	getbyid: function(id) {
		if(document.getElementById(id))
			return document.getElementById(id);
		return undefined;
	}
};

mainMenu.addEvent(window, 'load', mainMenu.init);

