

function correctShow(obj) { 

	/* IE7 bug hack */

	if (parseFloat(navigator.appVersion.split('MSIE')[1]) >= 7) {	
		obj.style.styleFloat = 'left';
		obj.style.display = 'block';
	}
	else {
		obj.style.display = 'inline';
	}
}

function getSelectedMenu(menu) {
	for (i = 0; i < menu.childNodes.length; i++) {
		if (menu.childNodes[i].tagName != 'LI') { continue; }
		if (menu.childNodes[i].style.display == '') { return menu.childNodes[i]; }
	}
	return null;
};

function getSelectedSubMenu(menu) {
	for (i = 0; i < menu.childNodes.length; i++) {
		if (menu.childNodes[i].className == 'menu-sub-selected') { return menu.childNodes[i]; }
	}
	return null;
};


function Menu() {

	this.main_menu = false;
	this.sel_menu = false;
	this.sel_sub_menu = false;
	this.show_sub_menu = false;
	this.menu_timer = false;
	this.old_menu = false;
	this.menu = false;
	this.empty = false;


};

Menu.prototype.init = function(menu_id) {
	this.menu = document.getElementById(menu_id);
	this.main_menu = document.getElementById(menu_id+'-main');
	this.empty = document.getElementById('menu-sub-empty');

	if (!this.menu) { return false; }
	this.sel_sub_menu = getSelectedSubMenu(this.menu);
	this.sel_menu = getSelectedMenu(this.main_menu);
	if (!this.sel_sub_menu) {
		this.sel_sub_menu = this.empty;
		correctShow(this.empty);
	}
	this.show_sub_menu = this.sel_sub_menu;
};


Menu.prototype.show_menu = function() {
	if (this.sel_menu) {
		correctShow(this.sel_menu);
	}

	if (this.sel_sub_menu) {
		correctShow(this.sel_sub_menu);
	}
};

Menu.prototype.showSubMenu = function(id) {

	clearTimeout(this.menu_timer);

	var menu = document.getElementById('sub-menu-'+id);

	var main_menu = document.getElementById('menu-sel-'+id);
	var hide_menu = document.getElementById('menu-'+id);
	
	if (this.old_menu) {
		var old_main_menu = document.getElementById('menu-sel-'+this.old_menu);
		var old_hide_menu = document.getElementById('menu-'+this.old_menu);
	
		if (this.old_menu  != this.sel_menu_id) {
			old_main_menu.style.display = 'none';
			correctShow(old_hide_menu);
		}
	}

	correctShow(main_menu);
	hide_menu.style.display = 'none';


	if (this.show_sub_menu) {
		this.show_sub_menu.style.display = 'none';
		this.show_sub_menu = false;
	}

	if (menu) {
		correctShow(	menu);
		this.show_sub_menu = menu;
	}
	this.old_menu = id;
};

Menu.prototype.hideSubMenu = function(shedule) {

	clearTimeout(this.menu_timer);
	if (shedule) {
		this.menu_timer = setTimeout('menu.hideSubMenu(false)', 500);
		return false;
	}

	if (this.show_sub_menu == this.sel_sub_menu)  { return this.sel_sub_menu; }

	if (this.show_sub_menu)  {
		this.show_sub_menu.style.display = 'none';
	}

	this.show_sub_menu = this.sel_sub_menu;

	if (this.show_sub_menu)  {
		correctShow(this.show_sub_menu);
	}

	if (this.old_menu) {
		var old_main_menu = document.getElementById('menu-sel-'+this.old_menu);
		var old_hide_menu = document.getElementById('menu-'+this.old_menu);
		if (this.old_menu  != this.sel_menu_id) {
			old_main_menu.style.display = 'none';
			correctShow(old_hide_menu);
		}
	} 

	this.old_menu = false;
	return this.show_sub_menu;
};


var menu = new Menu();

