var mainmenutabs =  {
	
	tabDisplayedClass : 'on',	
	tabLinkPrefix : 'tablink_',	
	tabDivPrefix : 'tab_',	
	tabLinks : [],
	tabContainers : [],
	currentContainer : null,
	currentLink : null,
	requireOverlay : false, /* ie6 select boxs over menus */
	init	: function() {
	if((window.clientInformation && window.clientInformation.userAgent.indexOf( "MSIE " ) > 0 )|| Browser.Engine.name == "trident"){
			this.requireOverlay  =	true;
			try{
				var startpos = window.clientInformation.userAgent.indexOf( "MSIE " );
				var ver = window.clientInformation.userAgent.substr(startpos + 5,  window.clientInformation.userAgent.indexOf( ";",startpos  ) - startpos -5);
				var ver = new Number(ver);
				if(ver != "NaN" && ver <= 6){
					this.requireOverlay  =	true;
				}else{
					this.requireOverlay  =	false;
				}
			}catch(e){
				//cache any problem to garantee  continues performance
			}
		}
	},
	
	registerTab: function (id) {
		var tabContainer = $(this.tabDivPrefix + id);
		var tabLink = $(this.tabLinkPrefix + id);
		if(tabContainer != null && tabLink != null )
		{
			
			this.tabContainers[id] = tabContainer;
			this.tabLinks[id] = tabLink;
			this.positionTab(tabContainer, tabLink);
			tabLink.getParent().addEvent('mouseover',this.hoverTab.bindWithEvent(this));
			tabLink.getParent().addEvent('mouseleave',this.hideAllTabs.bind(this));
			
		} else {return false;}
		
		return true;
	},
	positionTab: function (containerEl,linkEl) {
		var menuContainerSize = linkEl.getParent().getParent().getSize();
		var linkPosition = linkEl.getPosition(linkEl.getParent().getParent());
		var linkSize = linkEl.getSize();
		var containerSize = containerEl.getSize();
		var offsetDifferance = menuContainerSize.x - linkPosition.x;
		if(offsetDifferance  >= containerSize.x){
			containerEl.setStyle('left',linkPosition.x);
		} else if (
			
				((menuContainerSize.x - offsetDifferance) > containerSize.x) ||
				((linkPosition.x + linkSize.x ) >= containerSize.x)
				
		
		) {
			containerEl.setStyle('left',(linkPosition.x + linkSize.x + linkEl.getChildren('span')[0].getSize().x) - containerSize.x);
			
		} else{
			var offset = (linkPosition.x ) - 2*(containerSize.x - (menuContainerSize.x-linkPosition.x));
			offset = offset + containerSize.x < linkPosition.x +  linkSize.x ? offset +  linkSize.x : offset;
			containerEl.setStyle('left', offset );
			
		}
		
		
	},
	parseLinkId : function(linkId){
		
		return linkId.substr(this.tabLinkPrefix.length);
		
		
	},
	overlayOff: function(){
		var overlay = $('overlayHideSelect');
		if(overlay !=null){
			overlay.setStyle('display','none');
		}
	},
	overlayOn: function(){
		//staticRoot is globally defined in ASDA project
		if(this.currentContainer==null) return true;
		var overlay = $('overlayHideSelect');
		if(!overlay){
		var overlay = new Element('iframe').setProperty('id', 'overlayHideSelect').setProperty('class', 'overlayHideSelect' ).setProperty('src',staticRoot+'img/blank.gif');
			overlay.setOpacity(0);
			
		}
		overlay.setStyle('display','block');
		overlay.setStyle('width',this.currentContainer.getSize().x);
		overlay.setStyle('height',this.currentContainer.getSize().y);
		overlay.setStyle('left',this.currentContainer.getPosition(this.currentContainer.getParent().getParent()).x);
		overlay.setStyle('top',this.currentContainer.getPosition(this.currentContainer.getParent().getParent()).y);
		this.currentContainer.getParent().adopt(overlay);
		return true;
	},
	hoverTab: function (event) {
			if(event.target.id == null || event.target.id == "" )return false;
			this.hideAllTabs();
			
			
			var currentTabId = this.parseLinkId(event.target.id);
			var currentContainer = this.tabContainers[currentTabId];
			if(currentContainer != null){
				this.tabLinks[currentTabId].getParent().addClass('on');
				this.currentContainer = currentContainer;
				this.currentLink = this.tabLinks[currentTabId];
				if(this.requireOverlay)this.overlayOn();
				
			}else{
				
				this.hideAllTabs();
			}
			
			//$(document).addEvent('click',this.hideAllTabs.bind(this));
	},
	selectTab: function () {
	//should be user in case we need CoreMetrics
	},
	hideAllTabs: function(event) {
		if(this.currentLink != null){
			this.currentLink.getParent().removeClass("on");
			if(this.requireOverlay)this.overlayOff();
			this.currentContainer = null;
			this.currentLink = null;
			return true;
			
		}
		
		return true;
	}
};
	

