var cargado = false;

window.addEvent('domready', function(){
	cargado = true;
});

function muestra_imagen(archivo,ancho,alto,pie){
 if (cargado){
	//identificadores de capas
	var capa_ampliacion = $('ampliacion');
	var capa_c1 = $('c1');
	var capa_cerrarampliacion = $('cerrarampliacion');
	var cargando = $('cargando');
	var cerrar_arriba = $('cerrararriba');
	var piefoto = $('imgapmpie');
	
	//si hubiese otra imagen que se está mostrando ampliación, la oculto
	capa_ampliacion.setOpacity(0);
		
	//calculo la mitad de la página
	mitad_top = parseInt(window.getScrollTop() + (window.getHeight()/2));
	mitad_left = parseInt(window.getScrollLeft() + (window.getWidth()/2));
	
	//muestro capa cargando
	top_cargando = mitad_top - 21;
	left_cargando = mitad_left - 21;
	cargando.setStyle('left', left_cargando + 'px');
	cargando.setStyle('top', top_cargando + 'px');
	cargando.setStyle('opacity', 1);

	//dimensiones nuevas de las capas donde se va a mostrar la imagen	
	capa_ampliacion.setStyle('width', ancho + 'px');
	capa_ampliacion.setStyle('height', alto + 30 + 29 + 'px');
	capa_c1.setStyle('width', ancho + 'px');
	capa_c1.setStyle('height', alto + 'px');
	capa_cerrarampliacion.setStyle ('width', ancho + 'px');
	cerrar_arriba.setStyle ('width', ancho + 'px');
	
	//posición nueva de la capa ampliacion
	pos_left = parseInt (mitad_left - (ancho/2));
	pos_top = parseInt (mitad_top - (alto/2));
	capa_ampliacion.setStyle('left', pos_left + 'px');
	capa_ampliacion.setStyle('top', pos_top + 'px');
	
	//coloco el pie de foto
	piefoto.set("html", pie);
	
	//cargo la imagen
	img = new Element('img',{'width': ancho, 'height': alto, 'id': 'imagenamp'});
	
	img.addEvent('load', function() {
			//$('imagenamp').replaceWith(img);
			//alert("reemplazo")
			img.replaces($('imagenamp'));
			cargando.setOpacity(0);
			efecto = new Fx.Tween(capa_ampliacion, {duration: 1000});
			efecto.start('opacity', 0,1);
		});
	img.setProperty('src', archivo);
	
 }
}


function cerrar_ampliacion(){
	var capa_ampliacion = $('ampliacion');
	efecto = new Fx.Tween(capa_ampliacion, {duration: 1000});
	efecto.start('opacity', 1,0);
}

///////////////////////////////////////////////
//MENÚ DE OPCIONES HORIZONTAL DE CABECERA
////////////////////////////////////////////////////////////////////////
//CONFIGURACIÓN DEL MENÚ
opcionesPrincipales = [
	["Portada","/"],
	["Guías de Guiarte.com", "/guias/"],
	["Otras secciones", "/secciones/"],
	["Servicios", "/servicios/"],
	["Comunidad", "/usuarios/"]
];
opcionesSecundarias = [
	[[],[]],
	[["Grandes Rutas", "Ciudades","Cuentaviajes", "Nuevas rutas", "Comarcas", "Pueblos", "Guías por países"],["/grandesrutas/", "/ciudades/","/cuentaviajes/", "/nuevasrutas/", "/guiascomarcales/", "/pueblos/","/paises/"]],
	[["Todos los destinos","Noticiario", "Editorial", "Enlaces"],["/destinos/","/noticias/", "/editorial/", "/enlaces/"]],
	[["Reserva de Viajes","Tienda guiarte.com", "Reserva de hoteles", "Vuelos bajo coste", "Vuelo + hotel", "Restaurantes"],["/buscador-vuelos-hoteles-coches/", "http://compras.guiarte.com/", "/hoteles/", "http://www.edreams.es/edreams/espanol/vuelos/vuelos.jhtml?mktportal=tradedoubler&utm_source=tradedoubler&utm_medium=affiliates&url=http://www.edreams.es/edreams/espanol/amadeus3/flightSearch.jhtml&tduid=9f97f8298b03aae3668bc2006cf35b84&_requestid=170659", "http://clk.tradedoubler.com/click?p=21645&a=995602&g=16312996","http://www.eltenedor.es/aff.php?i=131"]],
	[["Portada comunidad", "Blogs de los usuarios", "Fotos de los usuarios", "Albums de fotos", "Boletín de novedades"],["/usuarios/", "/blog/", "/usuarios/fotos/", "/album/", "/boletin-novedades/"]]
];
desplazamientosSubmenu = [0,0,0,14,93];
classOpcionesPrincipales = ["navupconfondo","navupconfondo","navupconfondo","navupconfondo","navupsinfondo"]
////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////
//CLASE DE OPCIONES PRINCIPALES DEL NAVEGADOR
var OpcionPrincipal = new Class({
	initialize: function(texto, url, indice, navegadorDondeEstoy, claseEspecial){
		this.texto = texto;
		this.url = url;
		this.indice = indice;
		this.navegadorDondeEstoy = navegadorDondeEstoy;
		this.claseEspecial = claseEspecial;
		this.enlace = new Element("a", {href: this.url});
		this.enlace.set("html",this.texto); 
		this.enlace.addEvent("mouseenter",function(){
			this.navegadorDondeEstoy.ocultaSubmenus();
			this.navegadorDondeEstoy.muestraSubmenu(this.indice);
		}.bind(this));
		this.enlace.addEvent("mouseleave",function(){
			this.navegadorDondeEstoy.ocultaSubmenuRetardo(this.indice);
		}.bind(this));
	},
	
	dameCodigo: function(){
		return "<li class='" + this.claseEspecial + "'><a href='" + this.url + "'>" + this.texto + "</a></li>";
	},
	dameEnlace: function(){
		return this.enlace;
	},
	
	dameElementoLista: function(){
		var elementoLista = new Element("li",{'class': this.claseEspecial});
		this.enlace.inject(elementoLista);
		return elementoLista;
	}
});
////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////
//CLASE DE UNA ÚNICA OPCIÓN SECUNDARIA
var OpcionSecundaria = new Class({
	initialize: function(texto, url){
		this.texto = texto;
		this.url = url;
	},
	
	dameCodigo: function(){
		return "<div class='opcionessubnavegador'><a href='" + this.url + "'>" + this.texto + "</a></div>";
	}
});
////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////
//CLASE DE UN GRUPO DE OPCIONES SECUNDARIAS
var SubNavegador = new Class({
	initialize: function(arrayComponentes,indice, navegadorPresente, desplazamientoSubmenu){
		this.navegadorDondeEstoy = navegadorPresente;
		this.indice = indice;
		this.desplazamientoSubmenu = desplazamientoSubmenu;
		this.elementos = new Array();
		var i
		for (i=0; i<arrayComponentes[0].length; i++){
			this.elementos.include(new OpcionSecundaria(arrayComponentes[0][i], arrayComponentes[1][i]));
		}
		
		this.elementoGenerado  = new Element('div', {
			id: 'subnavegador' + this.indice, 'class': 'subnavegador'
		});
		//meto los eventos para los div donde están los subnavegadores
		this.elementoGenerado.addEvent("mouseenter", function(){
			this.navegadorDondeEstoy.anulaRetardo();
		}.bind(this));
		this.elementoGenerado.addEvent("mouseleave", function(){
			this.navegadorDondeEstoy.ocultaSubmenuRetardo(this.indice);
		}.bind(this));
		
		var navegador = "";
		this.elementos.each(function (item, index){
			navegador += item.dameCodigo();
		});
		
		this.elementoGenerado.set("html",navegador);
	},
	
	ocultate: function(){
		this.elementoGenerado.setStyle("display", "none");
	},
	
	muestrate: function(){
		this.elementoGenerado.setStyle("display", "block");
	},
	
	dameElemento: function(){
		return this.elementoGenerado;
	},
	
	recolocate: function(posicionEnlace, sizeEnlace){
		this.elementoGenerado.setStyle("top", posicionEnlace.y + sizeEnlace.y);
		this.elementoGenerado.setStyle("left", posicionEnlace.x - this.desplazamientoSubmenu);
	}
});
////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////
//CLASE NAVEGADOR
var Navegador = new Class({
	retardo: null,
	
	initialize: function(Principales, secundarias, desplazamientosSubmenu, estilosEspacilesPrincipales){
		this.opcionesPrincipales = new Array();
		this.opcionesSecundarias = new Array();
		var i
		for (i=0; i<Principales.length; i++){
			this.opcionesPrincipales.include(new OpcionPrincipal(Principales[i][0], Principales[i][1], i, this, estilosEspacilesPrincipales[i]));
			this.opcionesSecundarias.include(new SubNavegador(secundarias[i],i, this, desplazamientosSubmenu[i]));
		}
	},
	anulaRetardo: function(){
		$clear(this.retardo);
	},
	
	ocultaSubmenus: function(){
		this.opcionesSecundarias.each(function(item, index){
			item.ocultate();
		});
	},
	ocultaSubmenuRetardo: function(indiceOcultar){
		//alert ("oculto " + indiceOcultar)
		this.retardo = this.opcionesSecundarias[indiceOcultar].ocultate.delay(1000,this.opcionesSecundarias[indiceOcultar]);
	},
	
	muestraSubmenu: function (indiceSubmenu){
		this.anulaRetardo();
		this.opcionesSecundarias[indiceSubmenu].muestrate();
	},
	
	recolocaSubnavegadores: function(){
		for (i=0; i<this.opcionesPrincipales.length; i++){
			//alert (this.opcionesPrincipales[i].enlace.getPosition().x);
			this.opcionesSecundarias[i].recolocate(this.opcionesPrincipales[i].enlace.getPosition(), this.opcionesPrincipales[i].enlace.getSize());
		}
	},
	
	escribete: function(lugar){
		
		//lugar donde voy a insertarlo todo
		var lugar_impresion = $(lugar);
		
		//genero opciones principales
		var listaElementos = new Element ("ul");
		
		this.opcionesPrincipales.each(function (item, index){
			item.dameElementoLista().inject(listaElementos);
		});
		listaElementos.inject(lugar_impresion);
		
		//genero recuadros con las opciones secundarias
		var elementoSecundario;
		this.opcionesSecundarias.each(function (item, index){
			elementoSecundario = item.dameElemento();
			elementoSecundario.inject(lugar_impresion, 'after');
		});
		
		//posiciono las opciones secundarias
		this.recolocaSubnavegadores();
	}
}); 
////////////////////////////////////////////////////////////////////////



window.addEvent('domready', function(){
	if($defined($('navup'))){
		miNavegador = new Navegador(opcionesPrincipales, opcionesSecundarias, desplazamientosSubmenu, classOpcionesPrincipales);
		miNavegador.escribete("navup");
	}
});

if(cargado) {
window.addEvent('resize', function(){
	if($defined($('navup'))){
		miNavegador.recolocaSubnavegadores();
	}
});
}
var MiPopup = new Class({
	initialize: function(miHtml,ancho,alto,titulo){
		this.titulo=titulo;
		this.tamanoBody = window.getScrollSize();
		this.posScroll = window.getScroll();
		this.espacioDisponibleVentana = window.getSize();
		this.capaSombra = new Element("div", {'id': 'capasombra', 'style': 'width: ' + this.tamanoBody.x + 'px; height: ' + this.tamanoBody.y + 'px; ' });
		this.capaSombra.inject(document.body);
		var myFx = new Fx.Tween(this.capaSombra,{'duration': 300});
		myFx.start('opacity',0,0.8);
		
		this.contenido = new Element("div", {'id': 'contenidopopup'});
		this.contenido.set('html', miHtml);
		var titulo = new Element("div", {'id': 'titulopopup'});
		titulo.set('html', this.titulo);
		var cerrar = new Element("div", {'id': 'cerrarpopup'});
		cerrar.addEvent('click', function(){
			this.cerrar();
		}.bind(this));
		cerrar.inject(titulo,'top');
		titulo.inject(this.contenido,'top');
				
		this.capaPopup = new Element("div", {'id': 'capapopup', 'style': 'margin-left:-' + ancho/2 +'px; top:' + (this.posScroll.y + (this.espacioDisponibleVentana.y/2) - (alto/2)-15) +'px'});
		this.capaPopup.inject(this.capaSombra,'after');
		
		var myFx2 = new Fx.Tween(this.capaPopup,{'duration': 700});
		myFx2.start('width',4,ancho);
		myFx2.addEvent('complete', function(){
			var myFx3 = new Fx.Tween(this.capaPopup,{'duration': 700});
			myFx3.start('height',4,alto+30);
			myFx3.addEvent('complete', function(){
				this.contenido.inject(this.capaPopup);
				this.contenido.setStyle('opacity', 0);
				this.contenido.setStyle('display', 'block');
				var myFx4 = new Fx.Tween(this.contenido,{'duration': 600});
				myFx4.start('opacity',0,1);
			}.bind(this));
		}.bind(this));
		
		this.capaSombra.addEvent('click', function(){
				this.cerrar();
			}.bind(this)
		);
	},
	
	cerrar: function(){
		var myFx = new Fx.Tween(this.capaPopup,{'duration': 500});
		myFx.start('opacity',1,0);
		myFx.addEvent('complete', function(){
			var myFx2 = new Fx.Tween(this.capaSombra,{'duration': 500});
			myFx2.start('opacity',0.8,0);
			myFx.addEvent('complete', function(){
				this.capaSombra.destroy();
				this.capaPopup.destroy();
			}.bind(this));
		}.bind(this));
	}
});

opcionesPrincipalesBlog = [
	["Destinos ","/destinos/"],
	["Blogs", "/blog/"],
	["Usuarios", "/usuarios/"]
];
opcionesSecundariasBlog = [
	[["Fotos por países", "Albums de fotos","Fotos de los usuarios", "Europa", "América del sur", "América del norte", "Centroamérica", "África", "Asia", "Oceanía"],["/usuarios/fotos/", "/album/","/fotos-todos-usuarios/", "/destinos/europa.html", "/destinos/america-del-sur.html", "/destinos/america-del-norte.html","/destinos/centro-america.html","/destinos/africa.html","/destinos/asia.html","/destinos/oceania.html"]],
	[["Todos los blogs", "Crea tu blog", "Ayuda para crear blogs"],["/blog/listado_completo.php","/usuarios/control/blog/", "/ayuda/ayuda-blog.html"]],
	[["Panel de control","Registro"],["/usuarios/control", "/usuarios/registro/"]]
];
desplazamientosSubmenuBlog = [0,65,120];
classOpcionesPrincipalesBlog = ["navupconfondo","navupconfondo","navupconfondo"]

window.addEvent('domready', function(){
	if($defined($('cabder'))){
		miNavegador = new Navegador(opcionesPrincipalesBlog, opcionesSecundariasBlog, desplazamientosSubmenuBlog, classOpcionesPrincipalesBlog);
		miNavegador.escribete("cabder");
	}
});

window.addEvent('resize', function(){
	if($defined($('cabder'))){
		miNavegador.recolocaSubnavegadores();
	}
});

var EnlaceJsHomeGuia = new Class({
	initialize: function(texto, url, uldestino){
		this.destino = new Element("LI");
		this.destino.inject($(uldestino));
		this.enlace = new Element("A",{"href": url, "html": texto});
		this.enlace.inject(this.destino);
	}
});




	

opcionesPieGuias = [
	["Grandes Rutas","/grandesrutas/","Grandes rutas históricas","Rutas históricas que se han convertido en un referente de turismo, peregrinaje y aventura."],
	["Ciudades|Pueblos", "/ciudades/|/pueblos/", "Guías de ciudades|Pueblos", "Guías de las mayores ciudades del mundo y las más interesantes de cara al turismo y arte.|Artículos sobre poblaciones españolas y de otras partes del mundo."],
	["Cuentaviajes", "/cuentaviajes/", "Cuentos y relatos de viajes", "Cuentos o relatos de autor sobre viajes."],
	["Nuevas rutas|Comarcas", "/nuevasrutas/|/guiascomarcales/", "Las nuevas rutas|Guías de pequeñas comarcas", "Caminos o itinerarios que actualmente existen para recorrer el mundo.|Guías dedicadas a pequeños núcleos rurales alejados de las gentes de la ciudad. "],
	["Guías por países", "/paises/", "Países", "Guías creadas por el equipo de guiarte.com ordenados por países."]
];
opcionesPieSecciones = [
	["Todos los destinos", "/destinos/", "Destinos","Los destinos turísticos más populares de todo el mundo."],
	["Noticiario","/noticias/","Noticias de guiarte.com","Noticias sobre turismo, arte y naturaleza que destacamos en guiarte.com."],
	["Editorial", "/editorial/","Editorial de guiarte.com","Artículos sobre turismo, arte y naturaleza que destacamos en guiarte.com."],
	["Enlaces", "/enlaces/","Enlaces","Enlaces relacionados con la naturaleza, el turismo y el arte, clasificados por categorías."]

];
opcionesPieServicios = [
	["Reserva de Viajes", "/buscador-vuelos-hoteles-coches/","Reserva de Viajes","Buscador de vuelos, hoteles y alquiler de coches de guiarte.com."],
	["Tienda guiarte.com","http://compras.guiarte.com/","Tienda guiarte.com","Tienda de productos de guairte.com."],
	["Reserva de hoteles", "/hoteles/","Reserva de hoteles","Reserva de hoteles a través de guiarte.com."],
	["Vuelos bajo coste", "http://www.edreams.es/edreams/espanol/vuelos/vuelos.jhtml?mktportal=tradedoubler&utm_source=tradedoubler&utm_medium=affiliates&url=http://www.edreams.es/edreams/espanol/amadeus3/flightSearch.jhtml&tduid=9f97f8298b03aae3668bc2006cf35b84&_requestid=170659","Vuelos bajo coste","Reserva tus vuelos a través de guiarte.com."],
	["Vuelo + hotel", "http://clk.tradedoubler.com/click?p=21645&a=995602&g=16312996","Vuelo + hotel","Reserva tus vacaciones a través de guiarte.com."]
];
opcionesPieComunidad = [
	["Registro", "/usuarios/registro","Registro de usuarios","Comparte experiencias sobre tus viajes y mantente en contacto con otros viajeros."],
	["Blogs de viajes","/blog/","Blogs de viajes","Blogs de viajes que han publicado los usuarios de Guiarte.com."],
	["Fotos de los usuarios", "/usuarios/fotos/","Fotos de los usuarios", "Fotos enviadas por los usuarios de guiarte.com en cualquiera de sus secciones."],
	["Albums de fotos","/album/","Albums de fotos", "Albums con fotos de las secciones de guiarte.com."],
	["Boletín de novedades","/boletin-novedades/","Boletín de novedades", "Apuntate a nuestro boletin para estar informado de nuestras novedades."]
];

var EnlacesPie = new Class({
	initialize: function(destino, enlaces){
		if ($defined($(destino))){
			this.destino = $(destino);
			enlaces.each(function(valor, indice){
				var capa_enlace = new Element ("div", {"class": "secpielink"});
				var txtenlaces = valor[0].split("|");
				var urlenlaces = valor[1].split("|");
				if ($defined(valor[2])){
					var titulotipenlaces = valor[2].split("|");
					var txttipenlaces = valor[3].split("|");
				}
				for (i=0; i<txtenlaces.length; i++){
					var enlace = new Element ("a", {"html": txtenlaces[i], "href": urlenlaces[i], "class": "cargatippie"});
					if ($defined(valor[2])){
						enlace.store('tip:title', titulotipenlaces[i]);
						enlace.store('tip:text',  txttipenlaces[i]);
					}
					enlace.inject(capa_enlace);
					if(i != txtenlaces.length-1)
						new Element("span", {"html": ", "}).inject(capa_enlace);
				}
				capa_enlace.inject(this.destino);
			}, this);
		}
	}
});



