
	var Navegacion = new Class({
		
		Implements:	[Options],
		
		seccionActual: 	$empty,
		estadoActual: 	$empty,
		urlActual:		$empty,
		enlaces: 		$empty,
		
		options: {
			idContenedorNavegacion: 	'navegacion',
			idContenedorSeccion:		'contenedor',
			idFaderHome:				'fader'
		},
		
		initialize: function(options) {
			this.setOptions(options);
			this.enlaces = $$('#'+this.options.idContenedorNavegacion + ' li  a');
			this.asignaEventosClick();
			this.asignaEventoshover();
			this.cacheaEstado();
			this.ocultaSubMenus();
			this.creaLoader();
			this.urlActual = self.location.href;
		},
		
		creaLoader: function() {
			loader = new Element('div');
			loader.id = 'loader';
			loader.inject($('wrapper'));
		},
		
		cacheaEstado: function() {
			this.seccionActual = $('wrapper').className;
			this.estadoActual = $(this.options.idContenedorNavegacion).className;
		},
		
		asignaEventosClick: function() {
			this.enlaces.each(function(anchor) {
				anchor.addEvent('click', this.cargaSeccion.bindWithEvent(this,[anchor]));
				anchor.addEvent('click', function(){if($('intro'))window.intro.stop();});
			},this);
		},
		
		asignaEventoshover: function() {
			this.enlaces.each(function(anchor) {
				anchor.addEvent('mouseenter', this.fadeHome.bindWithEvent(this,[anchor]));
				anchor.addEvent('mouseenter',function(){if($('intro'))$('intro').setStyle("display","none")});
				anchor.addEvent('mouseout', this.fadeHome.bindWithEvent(this,[anchor]));
				anchor.addEvent('mouseleave',function(){if($('intro'))$('intro').setStyle("display","block")});
			}, this);			
		},
		
		cargaSeccion: function(event, anchor) {
			event.preventDefault();
			this.marcaEnlaces(anchor);
			this.ejecutaProceso(this.generaProceso(anchor, false));
			//this.abreSubMenu(anchor);
			this.cacheaEstado();
		},
		
		cargaManual: function(seccion) {
			anchor = $$("a."+seccion)[0];
			this.marcaEnlaces(anchor);
			this.ejecutaProceso(this.generaProceso(anchor, true));	
			//this.abreSubMenu(anchor);
			this.cacheaEstado();
		},
		
		marcaEnlaces : function(anchor)
		{
			if(anchor.getParent().get('tag') == 'li')
			{	//this.enlaces.removeEvents();
				this.enlaces.setStyle('font-weight', 'normal');
				this.enlaces.addEvent("mouseenter", function(){this.setStyle('font-weight', 'bold');});
				this.enlaces.addEvent("mouseleave", function(){this.setStyle('font-weight', 'normal');});
				
				if(anchor.getParent("ul").getParent("li"))
				{
					anchor.getParent("ul").getParent("li").getChildren("a")[0].setStyle('font-weight','bold');
					anchor.getParent("ul").getParent("li").getChildren("a")[0].removeEvents("mouseleave");
					anchor.getParent("ul").getElements("li a").setStyle("color", "#8c95b1");
					anchor.getParent("ul").getElements("li a").addEvent("mouseenter", function(){this.setStyle("color","#08203a")});
					anchor.getParent("ul").getElements("li a").addEvent("mouseleave", function(){this.setStyle("color","#8c95b1")});
					
					//console.debug(anchor.getParent("ul").getElements("li a"));
					
					anchor.setStyle("color","#08203a");
				}
				else
				{
					$$("#"+this.options.idContenedorNavegacion+" ul li a").each(function(anchor){
						anchor.setStyle("color","#8c95b1");
						anchor.addEvent("mouseenter", function(){this.setStyle("color","#08203a")});
						anchor.addEvent("mouseleave", function(){this.setStyle("color","#8c95b1")});
					})
				}
				
					
					
				anchor.setStyles({'font-weight':'bold'});
				anchor.removeEvents("mouseleave");
			}
		},
		
		ejecutaProceso: function(proceso) 
		{
			proceso.callChain.delay(000,proceso);
			proceso.callChain.delay(500,proceso);
			proceso.callChain.delay(000,proceso);
		},
		
		generaProceso: function(anchor, fromHistory) {

			var container = $(this.options.idContenedorSeccion);
			var proceso = new Chain(); 
			if(this.estadoActual != "buraglia")
				container.addClass(this.seccionActual);
			
			window.seccion = this.seccionActual;	
			
			$('wrapper').set("class", anchor.className);
			
			var oscurecer = function() { 
				container.set("morph",{onComplete: this.abreSubMenu.bind(this,[anchor])})
				container.morph("." + anchor.getParent().className);
				container.fade('out'); 
			}.bind(this);
			
			proceso.chain(oscurecer);
			
			window.url = this.urlActual;
			window.container = container;
			
			var cargar = function() { if(anchor.href != window.url) new Request.HTML({
				url: anchor.href, 
				update: container,
				onRequest: function() {
					$('loader').fade(.5);
				},
				onSuccess: function() {
					window.url = anchor.href;
					if(anchor.getParent("ul"))
						if(!fromHistory && !anchor.getParent("ul").getParent("li")) {dhtmlHistory.add(anchor.className, window.seccion);};
				
			if(anchor.className == "web_navegacion_instalaciones")
				$('rimadesioSite').setStyle("display", "block");
				},
				onComplete: function() {
					window.container.fade('in');
					$('loader').fade('out');
					if($('rimadesioSite'))
						$('rimadesioSite').setStyle("display", "none");
				}
			}).post({fromAjax: true}); };
			
			this.urlActual = window.url;
			
			proceso.chain(cargar);
			
			var clase = 'abierto';
			if(anchor.getParent().className == 'cerrado')
				clase = 'cerrado';
			
			var restauraclase = function() { container.set("class", clase); };
			proceso.chain(restauraclase);
			
			return proceso;
		},
		
		fadeHome: function(event, anchor){
			if(this.seccionActual == "web_navegacion_buraglia" && $(this.options.idFaderHome))
			{
				$(this.options.idFaderHome).set("class", anchor.className);
				$(this.options.idFaderHome).fade();
			}
		},
		
		ocultaSubMenus: function() {
			$(this.options.idContenedorNavegacion).getElements('ul').fade('hide');
			$('web_navegacion_cocinas').slideLeft("hide");
			$('web_navegacion_instalaciones').slideRight("hide");
		},
		
		abreSubMenu: function(anchor) {
			if(anchor.rel != "submenu")
			{
				$(this.options.idContenedorNavegacion).getElements('ul').slideLeft("hide");
				$(this.options.idContenedorNavegacion).getElements('ul').fade("hide");
				
				if($(anchor.get("class")) != null)
				{
					anchor.getParent().getElements('ul').slide($(anchor.get("class")).get("title"));
					anchor.getParent().getElements('ul').fade("in");
				}
			}
		}
		
	});
		