function TopMenu(currentId)
{
	this.currentId = currentId;
	this.previousTimeout = false;
	this.previousMenu = false;
	this.splash = false;
}

TopMenu.prototype.mouseOver = function(menuId)
{
	this.over[menuId] = true;
	this.out[menuId] = false;
	
	if(this.previousMenu != menuId && this.previousMenu)
	{
		clearTimeout(this.previousTimeout);
		this.previousTimeout = false;
		oTopMenu.fMouseOut(this.previousMenu);
	}
	var f = function() { oTopMenu.fMouseOver(menuId) };
	setTimeout(f, 500);
}

TopMenu.prototype.fMouseOver = function(menuId)
{
	if(this.over[menuId])
	{
		this.over[menuId] = false;
		
		if(menuId != this.currentId)
		{
			document.getElementById(this.currentId).className = '';
			document.getElementById('sub_'+this.currentId).style.display = 'none';
		}
		
		document.getElementById(menuId).className = 'currentNav';
		document.getElementById('sub_'+menuId).style.display = '';
		
		if(this.navBarClosed)
		{
			document.getElementById('sub_'+this.currentId).className = 'subNavWrapperHide';
		}
		
		if(this.previousMenu != menuId && this.previousMenu)
		{
			document.getElementById(this.previousMenu).className = '';
			document.getElementById('sub_'+this.previousMenu).style.display = 'none';
		}
	}
}

TopMenu.prototype.mouseOut = function(menuId)
{	
	this.over[menuId] = false;
	this.out[menuId] = true;
	var f = function() { oTopMenu.fMouseOut(menuId) };
	if(this.previousTimeout && this.previousMenu == menuId)
	{
		clearTimeout(this.previousTimeout);
	}
	this.previousMenu = menuId;
	this.previousTimeout = setTimeout(f, 1500);
}

TopMenu.prototype.fMouseOut = function(menuId)
{	
	if(this.out[menuId])
	{
		this.out[menuId] = false;
		
		if(menuId != this.currentId)
		{
			document.getElementById(this.currentId).className = 'currentNav';
			document.getElementById('sub_'+this.currentId).style.display = '';
			
			document.getElementById(menuId).className = '';
			document.getElementById('sub_'+menuId).style.display = 'none';
		}
		
		if(this.navBarClosed)
		{
			document.getElementById('sub_'+this.currentId).className = 'subNavWrapperHide';
		}
	}
}

TopMenu.prototype.hideNavBar = function()
{
	if(this.navBarClosed)
	{
		document.getElementById('sub_'+this.currentId).className = 'subNavWrapper';
		this.navBarClosed = false;
	}
	else
	{
		this.navBarClosed = true;
		document.getElementById('sub_'+this.currentId).className = 'subNavWrapperHide';
	}
}

TopMenu.prototype.add = function(event, splash)
{
	this.splash = splash;
	oUtils.setDivEventPos(event, "menuQuickEdit", 70);
	$("#formMenuQuickEdit")[0].reset();
	
	if(this.splash)
	{
		$("#splashPage").val("1");
	}
	
	$("#menuQuickEdit").css("display", "");
}

TopMenu.prototype.save = function()
{
	this.loadingRequestAjax();
	
	$.ajax({
	   type: "POST",
	   url: "/quickEdit/menuSave",
	   data: $("#formMenuQuickEdit").serialize(),
	   success: function(topNavContent) {
			oTopMenu.refreshAjax(topNavContent, "Menu successfully saved");	
	   }
	});
}

TopMenu.prototype.closeQuickEditDiv = function()
{
	$("#menuQuickEdit").css("display", "none");
}

TopMenu.prototype.remove = function(menuId, splash)
{
	this.splash = splash;
	
	if(confirm("Are you sure ?"))
	{
		$.ajax({
		   type: "POST",
		   url: "/quickEdit/menuRemove",
		   data: "menuId="+menuId+"&splashPage="+this.splash,
		   success: function(topNavContent) {
		   		oTopMenu.refreshAjax(topNavContent, "Menu successfully removed");
		   }
		});
	}
}

TopMenu.prototype.refresh = function()
{
	if(document.getElementById(this.currentId))
	{
		document.getElementById(this.currentId).className = 'currentNav';
	}
	if(document.getElementById('sub_'+this.currentId))
	{
		document.getElementById('sub_'+this.currentId).style.display = '';
	}
	
	this.navBarClosed = false;
	
	this.over = new Array();
	this.out = new Array();
}

TopMenu.prototype.refreshAjax = function(newContent, message)
{
	if(this.splash)
	{
		$("#menu_container").html(newContent);
	}
	else
	{
		$("#topMenuContent").html(newContent);
		oTopMenu.refresh();
	}
	
	if(message)
	{
		alert(message);
	}
}

TopMenu.prototype.loadingRequestAjax = function()
{
	$("#menuButtonSave").attr("disabled", true);
	$("#menuButtonSave").val("Loading...");
}

TopMenu.prototype.edit = function(event, menuId, splash)
{
	this.splash = splash;
	
	$.post("/quickEdit/loadMenu", { "menuId": menuId },
	  function(data)
	  {
	    $("#menuNameQuickEdit").val(data.menuName);
	    $("#menuParentIdQuickEdit").val(data.menuParentId);
	    $("#menuUrlQuickEdit").val(data.menuUrl);
	    $("#menuPositionQuickEdit").val(data.menuPosition);
	  }, "json"
	);
	
	oUtils.setDivEventPos(event, "menuQuickEdit", 70);
	
	$("#menuQuickEdit").css("display", "");
	$("#menuIdQuickEdit").val(menuId);
}