var mouseX = 0;
var mouseY = 0;

function getcords(e){
	mouseX = Event.pointerX(e);
	mouseY = Event.pointerY(e);
}


var subMenu = {
 	closeTimer: 0,
 	isOpen: 0,
 	stayOpen: null,
 	
 	activeSub: null,
 	activeLink: null,
 	
 	hoverSub: null,
 	hoverLink: null,
 	
 	SubmenuTop: null,
 	SubmenuBottom: null,
 	SubmenuLeft: null,
 	SubmenuRight: null,
 	
 	HTMLsubmenu: null,

	initialize: function() {
		this.stayOpen = 0;
		this.initMenu();
	},
	
	initMenu: function() {
	
		this.HTMLsubmenu = $$('.lightblue')[0];
		this.SubmenuTop = this.HTMLsubmenu.viewportOffset()['top'];
		this.SubmenuBottom = this.HTMLsubmenu.viewportOffset()['top'] + 60;
		this.SubmenuLeft = this.HTMLsubmenu.viewportOffset()['left'];
		this.SubmenuRight = this.HTMLsubmenu.viewportOffset()['left'] + 900;
		
		this.HTMLsubmenu.observe("mouseover", this.mouseOverMenu.bind(this, this.hoverLink));
		this.HTMLsubmenu.observe("mouseout", this.closeDelayed.bind(this, this.hoverLink));
	
		var menu = $$('#menu ul.main li.main');
		for (var k = 0; k < menu.length; k++) {
			menuItem = $(menu[k]);
			menuItem.observe("mouseover", this.open.bind(this, menu[k]));
			menuItem.observe("mouseout", this.closeDelayed.bind(this, menu[k]));
			
			if(menuItem.hasClassName('subs')) {
			
				menuItem.observe("click", this.openFirstPage.bind(this,menuItem.down('ul.sub li a').readAttribute('href')));
				if(menuItem.identify() != 'home')
					menuItem.down('a').writeAttribute('href', false);
			}
			
		}

		var active = $$('#menu ul.main li.active');
		if(active.length == 1) {
		
			this.activeSubLink = active[0];
			this.activeLink = this.activeSubLink.up('li.main');
			
			if(this.activeLink != null) {
				this.activeSub = this.activeSubLink.up('ul.sub');
				
				this.activeLink.addClassName('active');
				//this.activeSubLink.addClassName('hover');
				
				this.activeSub.setStyle({ 'marginLeft': this.activeLink.positionedOffset()['left'] - 40 + 'px' });
				this.activeSub.show();
				
				this.hoverSub = this.activeSub;
				this.hoverLink = this.activeLink;
				
			} else {
			
				this.activeLink = this.activeSubLink;
				this.activeSubLink = null;
				this.activeLink.addClassName('active');
				
			}

		}
		
	},
	
	openFirstPage: function(href) {
		document.location = href;
	},
	
	open: function(link) {
	
		if(this.hoverSub != null) {
			this.hoverSub.hide();
		}
		
		window.clearTimeout(this.closeTimer);
		
		if (this.hoverLink != null) // added by Lionel
      this.hoverLink.removeClassName('hover');

		this.hoverLink = link;			
		this.hoverSub = this.getSubmenu(link);
		
		this.hoverLink.addClassName('hover');
		if(this.hoverSub != null) {
			this.hoverSub.setStyle({ 'marginLeft': link.positionedOffset()['left'] - 40 + 'px' });
			this.hoverSub.show();
		}

	},
	
	closeDelayed: function(link) {
		//if(this.stayOpen == 0)
			this.closeTimer = window.setTimeout('subMenu.close("'+link+'")', 300);
	},
	
	mouseOverMenu: function(e) {
		var data = $A(arguments);
		var link = data[1];
		window.clearTimeout(this.closeTimer);
	},
	
	close: function(link) {
		if(!((window.mouseY > this.SubmenuTop) && (window.mouseY < this.SubmenuBottom) && (window.mouseX > this.SubmenuLeft) && (window.mouseX < this.SubmenuRight))) {

			if (this.hoverLink != null) // added by Lionel
      this.hoverLink.removeClassName('hover');

			if(this.hoverSub != null) {
				this.hoverSub.hide()
				this.hoverSub.stopObserving();			
			}

			if(this.activeSub != null) {
				this.activeSub.show();
				this.activeLink.addClassName('hover');
				this.hoverSub = this.activeSub;
				this.hoverLink = this.activeLink;
			}

		}	
		
	},
	
	getSubmenu: function(link) {
			var submenu = Selector.findChildElements(link, ["ul.sub"]);
			if(submenu[0] == null) return null;
			else return submenu[0];
	},
	
	closeAll: function() {
		var listElements = $$('#menu ul.sub');
		for (var i=0; i < listElements.length; i++) {
			listElements[i].hide();
		}
	},
	
	toggle: function(status) {
		if(status == 'open') {
			this.stayOpen = 1;
		} else {
			this.stayOpen = 0;
			if(this.isOpen != 0)
				this.closeDelayed(this, this.isOpen);
		}
	},
	
	highlight: function(path) {
		if(path.length != 0) {
			path = path.split("/");
		
			// Pfad mit oder ohne de Ÿbergeben
			if(path[1] == 'de') {
				var main = path[2];
				var sub = path[3];
			} else {
				var main = path[0];
				var sub = path[1];
			}
			
			var category = main.substr(0, 1).toUpperCase() + main.substr(1);
			var link = $$('.' + main + "-" + sub)[0];
		
			if(this.activeLink != null)
					this.activeLink.removeClassName('active');
			link.addClassName('active');
			
			if(this.activeCategory != null)
					this.activeCategory.removeClassName('active');
			$(category).addClassName('active');		
			
			this.activeCategory = $(category);
			this.activeLink = link;		
		}
	}
}
