/**
 * Menu Class 
 * For Sears.com Feb 3 2009
 * Sebastian Romero
 * menuElement -> Where all the events are going to be attached HTMLElement
 */
function Menu(menuElement) {
	/**
	 * All the elements will be attached to this component
	 */
	var obj_menuElement = menuElement;
	var num_interval = 0;
	var boo_isOver = true;
	var SHOWONTIME = 500;
	/**
	 * showInit Type Boolean 
	 * Displays the Menu on Init
	 */
	this.init = function(showInit){
		if(obj_menuElement)
			addEventsToMenu();
	};
	/**
	 * Adds the events to the Link
	 */
	var addEventsToMenu = function(){
		var arr_itemsMenu = new Array();
		//alert($("#" + obj_menuElement.id));
		arr_itemsMenu = obj_menuElement.getElementsByTagName("a");
		for (var i = 0; i< arr_itemsMenu.length; i++){
			arr_itemsMenu[i].onmouseover = itemOver;
		}
	};
	
	var hideAllElementDisplayed = function(){
		var arr_itemsMenu = new Array();
		arr_itemsMenu = obj_menuElement.getElementsByTagName("li");
		for (var i = 0; i< arr_itemsMenu.length; i++){
			try {
				var str_id = "cnt_" + String(arr_itemsMenu[i].id.split("li_")[1]);
				arr_itemsMenu[i].getElementsByTagName("a")[0].className = "";
				showHideElement(document.getElementById(str_id), false);
			} catch(e){}
		}
	};

	
	/**
	 * element Type HTML ID
	 * Element That we are going to Display
	 */
	var showHideElement = function(element, e){
		try {
			if (e) {
				$("#" + element.id).fadeIn("slow");
				//element.onmouseover = initializeElementDisplayed;
				//element.onmouseout = itemOut;
			} else {
				$("#" + element.id).fadeOut("slow");
			}
				
		} catch (e){
			
		}
	};
	
	var initializeElementDisplayed = function(){
		this.onmouseover = null;
		boo_isOver = true;
	}
	
	/**
	 * Handler for menus
	 */
	var itemOver = function(){
		hideAllElementDisplayed();
		var element = this.parentNode;
		var currentElement = this;
		currentElement.className += " hover";
		clearTimeout(num_interval);
		var fnc = function (){
			var str_id = "cnt_" + String(element.id.split("li_")[1]);
			showHideElement(document.getElementById(str_id), true);
		};
		num_interval = setTimeout(fnc, SHOWONTIME);
	};
	
	var itemOut = function(){
		var fn = function(){
			hideAllElementDisplayed();
			boo_isOver = false;
		};
		setTimeout(fn, SHOWONTIME)
		//var str_id = "cnt_" + String(this.parentNode.id.split("li_")[1]);
		//showHideElement(document.getElementById(str_id), false);
	};
	
	/**
	 * Inits the component
	 */
	this.init();
}

