/* NCC Top menu class
 * Dependencies: jQuery 1.2.6
 * @author : Isotop AB
 */ 

function TopMenu()
{
	this.wipeButton 	= null;
	this.wipeSpeed 		= 600;
	this.wipeArea 		= null;
	this.wipeOuterArea 	= null;
	this.root 			= null;
	this.activeSubMenu 	= null;
	this.activeTopItem 	= null;
	this.subIsActive 	= true;
	this.wipeHtmlSave	= null;
	
	this.init = function() {
		var parent = this;
		

		this.wipeButton 		= $('#displayTopLevel');
		this.wipeArea 			= $('#heading-container');
		this.wipeOuterArea 		= $('.heading');
		this.root 				= $('#top-menu');
		this.activeSubMenu 		= $('#top-menu .act ul');
		
		this.defaultSubMenu 	= this.activeSubMenu;
		this.subIsActive 		= false;
		this.subItem 			= $('#top-menu ul ul a');
		
		this.subItem.mouseover(function(){parent.keepSubAlive()});
		
		this.subList			= $('#top-menu ul ul');
		
		this.subList.mouseout(function(){parent.RestoreToDefault(false)});
		this.subList.mouseover(function(){parent.keepSubAlive()});
		
		if(this.wipeButton)
			this.wipeButton.click(function() {parent.wipeOut()});
		
		$('#top-menu ul li a.toplink').mouseover(function(){parent.toggleSubMenu(this.parentNode)});
		$('#top-menu ul li a.toplink').mouseout(function(){parent.RestoreToDefault(false)});
		//$('body').mouseout(function(e){parent.RestoreToDefault(e.pageY)});
		//$('#top-menu ul li ul li a').mouseover(function(){parent.subIsActive = true});
	}
	
	this.wipeOut = function()
	{
		this.wipeHtmlSave = this.wipeArea.html();
		this.wipeArea.html("");
		//this.wipeArea.SlideOutRight(this.wipeSpeed);
		$(this.wipeArea).hide("slide", { direction: "right" }, this.wipeSpeed);
		setTimeout("topMenu.wipeOuterArea.hide()",this.wipeSpeed)
		this.root.toggleClass('top-menu-widthheading');
	}
	
	this.wipeIn = function()
	{
		this.wipeArea.html(this.wipeHtmlSave);
		//this.wipeArea.SlideInRight(this.wipeSpeed);
		$(this.wipeArea).show("slide", { direction: "right" }, this.wipeSpeed);
		setTimeout("topMenu.wipeOuterArea.hide()",this.wipeSpeed)
		this.root.toggleClass('top-menu-widthheading');
	}
	
	this.RestoreToDefault = function(isCallback)
	{
		if(!isCallback)
		{
			this.subIsActive = false;
			setTimeout("topMenu.RestoreToDefault(true)",300);
		}
		else if(!this.subIsActive) { // close submenu is confirmed!
			this.activeSubMenu.hide();
			this.defaultSubMenu.show();
			this.activeSubMenu = this.defaultSubMenu;
			
			if(this.activeTopItem)
				this.activeTopItem.removeClass('hover'); 
				
			//this.wipeIn();
			
		}
	}
	
	this.toggleSubMenu = function(obj)
	{

			if(this.activeTopItem)
				this.activeTopItem.removeClass('hover');
				
			this.activeTopItem = $(obj);
			$(obj).addClass('hover');
			
			this.subIsActive = true;
			this.activeSubMenu.hide();
			this.activeSubMenu = $(obj).children("ul");
			this.activeSubMenu.show();
			
		//alert(this.activeSubMenu);
		//alert(obj);
		//obj.getElementsByTagName('ul')[0].show(); 
	}
	
	this.keepSubAlive = function()
	{
		this.subIsActive = true;
	}
}

var topMenu = new TopMenu();