var navigation = new Class({
	initialize:function(el){		
		this.parentList = $(el);
		this.parentList.id = "nav";
		this.depth = 0;
		/* setting id's */
		this.parseList(this.parentList, this.depth, this.parentList.id);
		/* pulling submenus to another div */
		this.reorganize();
		/* stting events handling */
		this.setTriggers();
		/* save initial selected order */
		this.saveInitial();
		/* setting backgrounds on selection basics */
		this.setContent();
		$(el).setStyle('display', 'block');
	},
	parseList:function(el,currentLevel,parentId){
		if( currentLevel ) { el.id = "sub" + parentId; el.addClass('level'+currentLevel); }
		var node = el.getFirst();
		var i = 0;
		while( node ) {
			node.id = parentId + (i++);
			node.addClass('level'+currentLevel);
			if( currentLevel > this.depth)
				this.depth = currentLevel;
			if( node.getChildren('ul').length ) {
				this.parseList(node.getFirst('ul'),(currentLevel + 1),node.id);
			}
			node.getFirst().getFirst().set('html',node.getFirst().getFirst().get('html').replace(/ /g,"&nbsp;"));
			node = node.getNext();
		}		
	},	
	reorganize:function(){
		if($('levelOneTabs').getElement('ul')){
			$('levelOneTabs').getElement('ul').id = "homeSub";
		}
		this.parentList.getElements('ul.level1').inject($('levelOneTabs'));
		$$('ul.level1').each(function(item){
			item.height = $(item).getSize().y;
		});
	},
	setTriggers:function(){	
		var parent = this;		
		$$('li.level0').addEvent('mouseover', function(){
			if(!$(this).hasClass('selected')) {
				$$('li.level0').removeClass('selected');
				$(this).addClass('selected');				
				$$('ul.level1').morph({'display':'none',opacity: 0});			
				if($("sub" + this.id)){					
					if($('homeSub')){
						$('homeSub').morph({'display':'none',opacity: 0});
					}
					if( $("sub"+this.id).height > 50 ) {
						$('levelOneTabs').setStyle('height', $("sub"+this.id).height);
					} else {
						$('levelOneTabs').setStyle('height', 50);
					}
					$("sub"+this.id).morph({'display':'block',opacity:1.0});					
				} else { 
					if($('homeSub')){
						$('homeSub').morph({'display':'block',opacity: 1.0});
					}
				}
			}
		});
		$('levelOneTabs').getElements('ul').setStyle('display','none');
		if($('homeSub')){
			$('homeSub').morph({'display':'block',opacity: 1.0});
		}
		$('navigation').getElements('a.selected').getParent().fireEvent('mouseover');
		$$('li.level0').addEvent('click', function(e){
				e.preventDefault();
		});
		$('navigation').addEvent('mouseleave',function(){
			//alert("submenu leave");
			(function(){
				$$('li.level0').each(function(item){
					if(item.hasClass('initialSelected')){
						item.fireEvent('mouseover');
					}
				});
			}).delay(500);
		});
	},
	saveInitial:function(){
		$('navigation').getElements('a.selected').addClass('initialSelected');
		$$('a.initialSelected').each(function(item){
			if(item.getParent().hasClass('level0')){
				item.getParent().addClass('initialSelected');
			}
		});
	},
	statusQuo:function(){
		$('navigation').getElements('a.initialSelected').addClass('selected');
		$('navigation').getElements('a.initialSelected').getParent().fireEvent('mouseover');
	},
	setContent:function(){
		if( $('navigation').getElements('li.level0').length ){
			$('navigation').getElements('li.level0').each(function(item){
				if($(item).hasClass('selected')){
					var field;
					if($('nav-separate-tab')){
						field = $('nav-separate-tab');
					} else {
						if($('content-tab-inner')) {
							field = $('content-tabs');
						}
					}
					switch(item.id){
						case 'nav0':{
							field.addClass('server-tab');
							break;
						}
						case 'nav1':{
							field.addClass('net-tab');
							break;
						}
						case 'nav2':{
							field.addClass('storage-tab');
							break;
						}
						case 'nav3':{
							field.addClass('software-tab');
							break;
						}
						case 'nav4':{
							field.addClass('service-tab');
							break;
						}
						case 'nav5':{
							field.addClass('office-tab');
							break;
						}
						default: {
							break;
						}
					}
				}
			});
		}
	}
});
