

var ddMenuMain = new Class({
	
	initialize: function(menuId) {

		
		this.menuContainer = $(menuId);
		this.menuId = menuId;
		this.level1links = $$('#' + this.menuId + ' a.level1Link');
		this.level1Items = $$('#' + this.menuId + ' li.level1Item');
		this.menuObjects = new Hash();
		this.menuObjects.set('items', new Array());

		/* fetch menu objects */
		for (c=0; c<this.level1links.length; c++) {
			var level1Item = new Hash();
			level1Item.set('link',this.level1links[c]);
			level1Item.set('item',this.level1Items[c]);
			
			// is there a submenu?
			var menuLevel2 = this.level1Items[c].getElements('ul.menuLevel2');
			if (menuLevel2.length==1) {
				var menu2 = new Hash();
				menu2.set('element',menuLevel2);
				menu2.set('items', new Array());
				var menu2Items = menuLevel2[0].getElements('li.level2Item');
				var menu2Links = menuLevel2[0].getElements('a.level2Link');
				for (d=0; d<menu2Items.length; d++) {
					var level2Item = new Hash();
					level2Item.set('link',menu2Links[d]);
					level2Item.set('item',menu2Items[d]);					
					
					// is there a sub2menu?
					var menuLevel3 = menu2Items[d].getElements('ul.menuLevel3');
					if (menuLevel3.length==1) {
						var menu3 = new Hash();
						menu3.set('element',menuLevel3);
						menu3.set('items', new Array());
						var menu3Items = menuLevel3[0].getElements('li.level3Item');
						var menu3Links = menuLevel3[0].getElements('a.level3Link');
						for (e=0; e<menu3Items.length; e++) {
							var level3Item = new Hash();
							level3Item.set('link',menu3Links[e]);
							level3Item.set('item',menu3Items[e]);					
							menu3['items'].push(level3Item);
						}
						level2Item.set('submenu',menu3);
					}
										
					menu2['items'].push(level2Item);					
				}
				
				level1Item.set('submenu',menu2);
				switch(c) {
					case 1:
					level1Item['submenu']['element'].setStyle('width','251px');
					break;
					case 2:
					level1Item['submenu']['element'].setStyle('width','308px');
					break;					
					case 3:
					level1Item['submenu']['element'].setStyle('width','150px');
					break;					
				}
			}
			this.menuObjects['items'].push(level1Item);
		}
		
		
		/* set the menu actions */
		
		for (c=0; c<this.menuObjects['items'].length; c++) {
			level1Item = this.menuObjects['items'][c];
			
			
			if (level1Item.has('submenu')) {
				
				for(d=0; d<level1Item['submenu']['items'].length; d++) {
					level2Item = level1Item['submenu']['items'][d];
					
					if (level2Item.has('submenu')) {
						for(e=0; e<level2Item['submenu']['items'].length; e++) {
							level3Item = level2Item['submenu']['items'][e];
							level3Item['item'].addEvent('mouseover', function() {
								this['link'].addClass('activeLinkLevel3');
							}.bind(level3Item));
							level3Item['item'].addEvent('mouseout', function() {
								this['link'].removeClass('activeLinkLevel3');
							}.bind(level3Item));
						}
					}
					
					level2Item['item'].addEvent('mouseenter', function() {
						this['link'].addClass('activeLinkLevel2');
						var pos = this['pos'];
						var linkPos = this['link'].getPosition(this['link'].getParent());
						var size = this['link'].getSize();
						pos.x = size.x-10;
						pos.y = linkPos.y + 5;
						
						if (this.has('submenu')) {
							this['submenu']['element'].setStyle('display','block');
							this['submenu']['element'].setPosition(pos);
						}
					}.bind(level2Item));
					
					level2Item['item'].addEvent('mouseleave', function() {
						this['link'].removeClass('activeLinkLevel2');
						
						if (this.has('submenu')) {
							this['submenu']['element'].setPosition({x:-10000, y:0});
						}
						
					}.bind(level2Item));					
				}
			}
						
			level1Item['item'].addEvent('mouseenter', function() {
				this['link'].addClass('activeLinkLevel1');
				var pos = this['link'].getPosition();
				pos.x += 1;
				pos.y += 38;
				if (this.has('submenu')) {
					this['submenu']['element'].setPosition(pos);
					for (d=0; d<this['submenu']['items'].length; d++) {
						this['submenu']['items'][d].set('pos',pos);
					}
				}
			}.bind(level1Item));
			
			level1Item['item'].addEvent('mouseleave', function() {
				this['link'].removeClass('activeLinkLevel1');
				
				if (this.has('submenu')) {
					this['submenu']['element'].setStyle('display','block');
					this['submenu']['element'].setPosition({x:-10000, y:0});
				}
				
			}.bind(level1Item));
						

		}
		
	},

	
	activate: function(link){
			
			
		
		

	},
	
	deactivate: function(link){

		
	}
	
	
});

window.addEvent('domready', initMenuMain);
function initMenuMain() {
	topMenuMain = new ddMenuMain('menudrop');
	
}
