// JavaScript Document
var menu_config= new menu_config_create();

function menu_config_create() {
	this.menu_array= new Array();
	this.created_menu_array= new Array();
	this.menu_str= "";
	this.current_menu= "";
	this.show_speed= 1;
	this.show_step= 5;
	this.show_x= 0;
	this.show_y= 0;
	this.show_direction= "vertical";
	this.showed_menu= "";
	this.chek_menu= "";
	this.hide_menu= "";
	this.hidding= false;
	this.timeout_id= null;
	this.hide_delay= 700;
	this.menu="";
}

function menu_add_menu_item(menu_name, sub_menu_name, menu_caption, menu_href) {
	var menu_end= menu_config.menu_array.length;
	menu_config.menu_array[menu_end]= new Array();
	menu_config.menu_array[menu_end].menu_name= menu_name;
	menu_config.menu_array[menu_end].sub_menu_name= sub_menu_name;
	menu_config.menu_array[menu_end].menu_caption= menu_caption;
	menu_config.menu_array[menu_end].menu_href= menu_href;
}

function menu_add_menu(menu_name, class_name, menu_direction, menu_type) {
	var menu_end= menu_config.created_menu_array.length;
	menu_config.created_menu_array[menu_end]= new Array();
	menu_config.created_menu_array[menu_end].menu_name= menu_name;
	menu_config.created_menu_array[menu_end].menu_type= menu_type;
	menu_config.menu_str+= "<div id='"+menu_name+"' class='"+class_name+"'";
	menu_config.menu_str+= " onmouseover='menu_show_menu(\""+"\", \""+menu_name+"\"";
	if(menu_type == "mainmenu") {
		menu_config.menu_str+=", \"mainmenu\"";
	}
	menu_config.menu_str+=");'";
	if(menu_type != "mainmenu") {
		menu_config.menu_str+=" onmouseout='menu_config.hide_delay= "+menu_config.hide_delay+"; menu_hide_menu(\""+menu_name +"\");'";
	}
	else if(menu_type == "mainmenu") {
		menu_config.menu_str+=" onmouseout='menu_config.hide_delay= "+menu_config.hide_delay+"; menu_hide_sub(); menu_hide_menu(menu_config.hide_menu);'";
	}
	menu_config.menu_str+= "><table cellpadding='0' cellspacing='0' class='"+class_name+"'>";
	if(menu_direction == "horizontal") {
		menu_config.menu_str+="<tr>";
	}
	var menu_items_counter= 1;
	for(i= 0; i < menu_config.menu_array.length; i++) {
		if(menu_config.menu_array[i].menu_name == menu_name) {
			if(menu_direction == "vertical") {
				menu_config.menu_str+="<tr>";
			}
			menu_config.menu_str+="<td nowrap onclick=\"window.location.href='"+menu_config.menu_array[i].menu_href+"'\" class='"+class_name+"'";
			menu_config.menu_str+=" id='"+menu_config.menu_array[i].menu_name+"_item_"+menu_items_counter+"'";
			menu_config.menu_str+=" onmouseover='this.className= \""+class_name+"_hover\"; menu_show_menu(\""+menu_config.menu_array[i].menu_name+"_item_"+menu_items_counter+"\", \""+menu_config.menu_array[i].sub_menu_name+"\"";
			if(menu_type == "mainmenu") {
				menu_config.menu_str+=", \"mainmenu\"";
			}
			menu_config.menu_str+=");'";
			menu_config.menu_str+=" onmouseout='this.className= \""+class_name+"\";";
			menu_config.menu_str+="'";
			menu_config.menu_str+=">";
			menu_config.menu_str+=menu_config.menu_array[i].menu_caption;
			menu_config.menu_str+="</td>";
			if(menu_direction == "vertical") {
				menu_config.menu_str+="</tr>";
			}
			menu_items_counter++;
		}
	}
	if(menu_direction == "horizontal") {
		menu_config.menu_str+="</tr>";
	}
	menu_config.menu_str+="</table></div>";
}

function menu_create_menu() {
	var place = document.getElementById("menu_place");
	place.innerHTML = menu_config.menu_str;
	//document.write(menu_config.menu_str);
}

function menu_show_menu(menu_item, menu_name, parent_menu) {
	if(menu_config.menu != menu_name) {
		menu_config.menu= menu_name;
		menu_config.hide_delay= 0;
		menu_hide_menu(menu_config.menu);
	}
	if(menu_name.length > 0) {
		window.clearTimeout(menu_config.timeout_id);
		if(menu_item != "") {
			if(menu_config.showed_menu != menu_name) {
				menu_config.hide_delay= 0;
				menu_hide_menu(menu_config.current_menu);
				var left= document.getElementById(menu_item).offsetParent.offsetParent.offsetLeft+document.getElementById(menu_item).offsetParent.offsetLeft+document.getElementById(menu_item).offsetLeft;
				var top= document.getElementById(menu_item).offsetParent.offsetParent.offsetTop+document.getElementById(menu_item).offsetParent.offsetTop+document.getElementById(menu_item).offsetTop;
				var height= document.getElementById(menu_item).offsetParent.offsetParent.offsetHeight;
				var width= document.getElementById(menu_item).offsetWidth;
				var d_left= left+width;
				var d_top= top+height-1;
				if(menu_name != "no_menu") {
					document.getElementById(menu_name).style.left= left+"px";
					document.getElementById(menu_name).style.top= d_top+"px";
				}
				if(menu_config.current_menu != menu_name) {
					menu_config.hide_delay= 0;
					menu_hide_menu(menu_config.showed_menu);
					menu_config.current_menu= (menu_name == "no_menu")? "": menu_name;
					menu_config.show_y= 0;
					menu_config.showed_menu= "";
					menu_show_delayed();
					if(menu_name != "no_menu") {
						document.getElementById(menu_name).style.visibility= "visible";
					}
				}
			}
		}
		if((menu_config.current_menu != menu_name) && (menu_name != "")) {
			document.getElementById(menu_name).style.visibility= "visible";
		}
		menu_config.check_menu= menu_name;
		menu_chek_hided();
	}
	else {
		menu_config.hide_delay= 0;
		menu_hide_menu(menu_config.showed_menu);
		menu_config.current_menu= "";
	}
}

function menu_hide_menu(menu_name) {
	if(menu_name.length > 0) {
		if(menu_config.hide_delay == 0) {
			document.getElementById(menu_name).style.visibility= "hidden";
		}
		menu_config.hide_menu= menu_name;
		window.clearTimeout(menu_config.timeout_id);
		menu_config.timeout_id= window.setTimeout("menu_hide_delayed()", menu_config.hide_delay);
		menu_config.check_menu= menu_name;
		window.setTimeout("menu_chek_hided()", (menu_config.hide_delay+500));
	}
}

function menu_chek_hided() {
	if(document.getElementById(menu_config.check_menu).style.visibility == "hidden") {
		menu_config.showed_menu= "";
		menu_config.menu="";
		menu_config.current_menu= "";
		menu_config.hidding=false;
	}
}

function menu_show_delayed() {
	if((menu_config.current_menu != "") || (menu_config.showed_menu != ""))	{
		menu_config.showed_menu= (menu_config.current_menu != "")? menu_config.current_menu: menu_config.showed_menu;
		var height= document.getElementById(menu_config.showed_menu).offsetHeight;
		document.getElementById(menu_config.showed_menu).style.clip= "rect(auto auto "+menu_config.show_y+"px"+" auto)";
		menu_config.show_y+= menu_config.show_step;
		if(menu_config.show_y < (height+menu_config.show_step)) {
			window.setTimeout("menu_show_delayed()", menu_config.show_speed);
		}
		else {
			menu_config.show_y= 0;
		}
	}	
} 

function menu_hide_delayed() {
	if(menu_config.hide_menu.length > 0) {
		document.getElementById(menu_config.hide_menu).style.visibility= "hidden";
		menu_config.hide_menu= "";
		menu_config.timeout_id= null;
	}
}

function menu_hide_sub() {
	menu_config.hide_menu= "";
	for(i= 0; i < menu_config.created_menu_array.length; i++) {
		if(menu_config.created_menu_array[i].menu_type != "mainmenu") {
			if(document.getElementById(menu_config.created_menu_array[i].menu_name).style.visibility == "visible") {
				menu_config.hide_menu= menu_config.created_menu_array[i].menu_name;
			}
		}
	}
}
