var Navigator = Class.create(
{
	sActiveItem : null,
	
	initialize: function()
	{
		Event.observe(window, 'load', this.onDomloaded );
	},

	/**
	*	Set of functions to laod when the window is successfull loaded.
	*/
	onDomloaded: function()
	{
		//alert($('nav6').Width());
		Event.observe($('header_block'), 'mouseover', function(){ oNavigator.hideActiveItem(); });
		Event.observe($('right_block'), 'mouseover', function(){ oNavigator.hideActiveItem(); });
		Event.observe($('body_left_side'), 'mouseover', function(){ oNavigator.hideActiveItem(); });
		Event.observe($('body_right_side'), 'mouseover', function(){ oNavigator.hideActiveItem(); });
		Event.observe($('container_block'), 'mouseover', function(){ oNavigator.hideActiveItem(); });
		
		$('body_right_side').style.width = '100px';
	},
	
	/**
	*	Show an html object width a fade effect.<b> 
	*	@params string sItemID ID of the html element to hendle.
	*/
	showThisItem: function(sItemID)
	{
		if(this.sActiveItem == null)
		{
			this.sActiveItem = 0;
		}
		
		if(this.sActiveItem != null)
		{
			if(this.sActiveItem != sItemID)
			{
				this.hideActiveItem();
				this.sActiveItem = sItemID;
				
				$('nav'+sItemID+'_link').addClassName('a_hover');
				
				if($('nav'+sItemID+'_columns'))
				{
					$('nav'+sItemID+'_columns').style.display = 'none';
					$('nav'+sItemID+'_columns').removeClassName('hidden');
					
					// Resetting the queue of eventual not jet executed effects
					Effect.Queue.each(function(e) { e.cancel() });
					Effect.Appear('nav'+sItemID+'_columns', {duration: 0.3} );
				}
			}
		}
	},

	/**
	*	Function to hide the actual shown menu-item/submenu
	*/
	hideActiveItem: function()
	{
		if(this.sActiveItem)
		{
			$('nav'+this.sActiveItem+'_link').removeClassName('a_hover');
		
			if($('nav'+this.sActiveItem+'_columns'))
			{
				Effect.Fade('nav'+this.sActiveItem+'_columns', {duration: 0.1} );
				$('nav'+this.sActiveItem+'_columns').addClassName('hidden');
			}
			this.sActiveItem = null;
		}
	},

	addToEffectList: function(sID)
	{
		Event.observe($('nav'+sID+'_link'), 'mouseover', function(){ oNavigator.showThisItem(sID); });
		Event.observe($('nav'+sID+'_columns'), 'mouseover', function(){ oNavigator.showThisItem(sID); });
	}
});

// Initializing the navigator object
var oNavigator = new Navigator();