﻿/* FUNCIONES GENERALES */
	//reinicia los combos al entrar el la pagina
	function inicializar_combos(nombre_formulario,campo_pais,campo_provincia,campo_poblacion,campo_hotel){
		combo_paises_init(document.formulario.id_pais);//Cargo combo paises
		combo_hoteles_init(document.formulario_hoteles.id_hotel);//Cargo combo hoteles del buscador		
	}
	
	function inicializar_combos_promos (nombre_formulario,campo_pais,campo_provincia,campo_poblacion,campo_hotel){
		combo_paises_init(eval("document." + nombre_formulario + ".id_pais"));
		combo_hoteles_init(eval("document." + nombre_formulario + ".id_hotel"));
	}
	//cambia el color de la opcion seleccionada
	function cambiaColorSelect(elSelect) {
		for (var i = 0; i <= (elSelect.length-1); ++i) {
			if(i==elSelect.selectedIndex){elSelect[i].style.backgroundColor="#FEF5CC";}
			else{elSelect[i].style.backgroundColor="#FFFFFF";}
		}
	}

	// vacia el combo pasado como parametro
	function vaciar_combo(objeto){
		
		for (i=0; i<objeto.length;i++){objeto.options[1]=null;}
		
	}


//  reemplaza la subcadena1 por la subcadena2 dentro de cadena
	function reemplazar(cadena, subcadena1, subcadena2){
		cadena = cadena.split(subcadena1).join(subcadena2);
		return(cadena);
   }

/* FIN FUNCIONES GENERALES */



/* FUNCIONES DE CONTROL PAISES */
	//llena el combo de paises con todos los disponibles
	function combo_paises_init(combo_paises){
		vaciar_combo(combo_paises);
		combo_paises.options.length=array_paises_id.length;
		for(i=0;i<array_paises_id.length;i++){
			combo_paises.options[i].value=array_paises_id[i];
			combo_paises.options[i].text=array_paises_nombre[i];
		}
	}

	//reinicia el resto de combos al seleccionar un pais
	function combos_cambio_pais(combo_paises,combo_zonas,combo_localizaciones,combo_hoteles){
		
		pais_seleccionado = combo_paises.options[combo_paises.selectedIndex].value;
		combos_cambio_zonas_pais(combo_zonas,pais_seleccionado);
	/*	combos_cambio_localizaciones_pais(combo_localizaciones,pais_seleccionado);*/
		if(pais_seleccionado!=''){			
			combos_cambio_hoteles_pais(combo_hoteles,pais_seleccionado);
		}
		else{// no seleccionan ninguna opcion asi que volvemos a cargar tods los hoteles
			//combo_hoteles_init(combo_hoteles);
		}
	}
/* FIN FUNCIONES DE CONTROL PAISES */


/* FUNCIONES DE CONTROL DE ZONAS */
	//llena el combo de zonas en con todas las zonas existentes///
	// el parametro "listaPaises" son la lista de id's de paises separados por comas
	function combos_zonas_pais(combo_zonas,listaPaises){
	//	alert(combo_zonas);
		vaciar_combo(combo_zonas);
		var ___i = 0;
		var paises = new Array();
		if (!listaPaises){
			___i = 1;
			while (array_paises_id[___i]){
				paises[___i-1] = array_paises_id[___i];
				___i++;
			}
		} else {
			paises = listaPaises;
			paises = paises.split(",");
		}
		
		___i = 0;
		var total_opciones=0;
		while (paises[___i]){
			pais_seleccionado = paises[___i];
			if (total_opciones == 0)
				cm = 0;
			else
				cm = 1;

		
			var tp;			
			for(i=cm;i<array_zonas_id.length;i++){
				tp = String(array_zonas_id[i]);
				tp = tp.split("|");
				if((array_zonas_pais[i]==pais_seleccionado || array_zonas_id[i]=='') && tp[0]!='Z'){
					combo_zonas.options.length=total_opciones+1;
					combo_zonas.options[total_opciones].value=array_zonas_id[i];
					if (array_zonas_nombre[i] == "Opcional")
						combo_zonas.options[total_opciones].text = "CCAA o Localidad";
					else if (array_zonas_nombre[i] == "Optional")
						combo_zonas.options[total_opciones].text = "Region";
					else
						combo_zonas.options[total_opciones].text=array_zonas_nombre[i];
					total_opciones++;
					
					
					if(tp[0]=="P"){//Rellenamos localizaciones desde un pais extranjero
						for(j=1;j<array_localizaciones_id.length;j++){
							if(array_localizaciones_id[j]==''  ||  array_localizaciones_provincia[j]==tp[1]){
								combo_zonas.options.length=total_opciones+1;
								combo_zonas.options[total_opciones].style.marginLeft = "15px";
								combo_zonas.options[total_opciones].value="L|"+array_localizaciones_id[j];
								combo_zonas.options[total_opciones].text="   "+array_localizaciones_nombre[j];
								total_opciones++;
							}
						}
					} else if(tp[0]=="C"){//CCAA
						for(j=1;j<array_localizaciones_id.length;j++){
							if(array_localizaciones_id[j]==''  ||  (array_localizaciones_pais[j]=='34' &&  array_localizaciones_ccaa[j]==tp[1])){
								combo_zonas.options.length=total_opciones+1;
								combo_zonas.options[total_opciones].style.marginLeft = "15px";
								combo_zonas.options[total_opciones].value="L|"+array_localizaciones_id[j];
								combo_zonas.options[total_opciones].text="   "+array_localizaciones_nombre[j];
								total_opciones++;
							}
						}
					}
					
					
				}
			}
			
			___i++;
		}
			
		/*	if (pais_seleccionado != 34 && pais_seleccionado != "") {
				combo_zonas.selectedIndex = 2;
				combos_cambio_zona(document.getElementById("id_pais"),document.getElementById("zonax"),document.getElementById("id_localidad"),document.getElementById("id_hotel"),document.getElementById("zona"))
			} else if (pais_seleccionado == ""){
				vaciar_combo(combo_zonas);	
			}*/
	}


/* FUNCIONES DE CONTROL DE ZONAS */
	//llena el combo de zonas en funcion del pais seleccionado

	function combos_cambio_zonas_pais(combo_zonas,pais_seleccionado){
		vaciar_combo(combo_zonas);
		var total_opciones=0;
		var tp;
		for(i=0;i<array_zonas_id.length;i++){
			tp = String(array_zonas_id[i]);
			tp = tp.split("|");
			if((array_zonas_pais[i]==pais_seleccionado || array_zonas_id[i]=='') && tp[0]!='Z'){
				combo_zonas.options.length=total_opciones+1;
				combo_zonas.options[total_opciones].value=array_zonas_id[i];
				combo_zonas.options[total_opciones].text=array_zonas_nombre[i];
				total_opciones++;
				
				
				if(tp[0]=="P"){//Rellenamos localizaciones desde un pais extranjero
					for(j=1;j<array_localizaciones_id.length;j++){
						if(array_localizaciones_id[j]==''  ||  array_localizaciones_provincia[j]==tp[1]){
							combo_zonas.options.length=total_opciones+1;
							combo_zonas.options[total_opciones].style.marginLeft = "15px";
							combo_zonas.options[total_opciones].value="L|"+array_localizaciones_id[j];
							combo_zonas.options[total_opciones].text="   "+array_localizaciones_nombre[j];
							total_opciones++;
						}
					}
				} else if(tp[0]=="C"){//CCAA
					for(j=1;j<array_localizaciones_id.length;j++){
						if(array_localizaciones_id[j]==''  ||  (array_localizaciones_pais[j]=='34' &&  array_localizaciones_ccaa[j]==tp[1])){
							combo_zonas.options.length=total_opciones+1;
							combo_zonas.options[total_opciones].style.marginLeft = "15px";
							combo_zonas.options[total_opciones].value="L|"+array_localizaciones_id[j];
							combo_zonas.options[total_opciones].text="   "+array_localizaciones_nombre[j];
							total_opciones++;
						}
					}
				}
				
				
			}
		}
		
		if (pais_seleccionado != 34 && pais_seleccionado != "") {
			combo_zonas.selectedIndex = 2;
			//CAMBIO MANU combos_cambio_zona(document.getElementById("id_pais"),document.getElementById("zonax"),document.getElementById("id_localidad"),document.getElementById("id_hotel"),document.getElementById("zona"))
			combos_cambio_zona(document.formulario.id_pais,document.formulario.zonax,document.formulario.id_localidad,document.formulario_hoteles.id_hotel,document.formulario.zona)
		} else if (pais_seleccionado == ""){
			vaciar_combo(combo_zonas);
		}
	}

	//reinicia el resto de combos al seleccionar una zona
	function combos_cambio_zona(combo_paises,combo_zonas,combo_localizaciones,combo_hoteles,zona){
		zona_seleccionada = combo_zonas.options[combo_zonas.selectedIndex].value;
		
	//	zona_seleccionada = combo_zonas.value;
	//	alert(zona_seleccionada);
		nueva_zona = new Array();
		nueva_zona = zona_seleccionada.split('|');
		tipo_id = nueva_zona[0];
		valor_id = nueva_zona[1];

	//	vaciar_combo(combo_localizaciones);
	/*	var total_opciones=0;
		if(tipo_id=="P"){//Rellenamos localizaciones desde un pais extranjero
			for(i=0;i<array_localizaciones_id.length;i++){
				if(array_localizaciones_id[i]==''  ||  array_localizaciones_provincia[i]==valor_id){
					combo_localizaciones.options.length=total_opciones+1;
					combo_localizaciones.options[total_opciones].value=array_localizaciones_id[i];
					combo_localizaciones.options[total_opciones].text=array_localizaciones_nombre[i];
					total_opciones++;
				}
			}
		}
		else if(tipo_id=="C"){//CCAA
			for(i=0;i<array_localizaciones_id.length;i++){
				if(array_localizaciones_id[i]==''  ||  (array_localizaciones_pais[i]=='34' &&  array_localizaciones_ccaa[i]==valor_id)){
					combo_localizaciones.options.length=total_opciones+1;
					combo_localizaciones.options[total_opciones].value=array_localizaciones_id[i];
					combo_localizaciones.options[total_opciones].text=array_localizaciones_nombre[i];
					total_opciones++;
				}
			}
		}*/
	/*	else if(tipo_id=="Z"){//Zona 
			for(i=0;i<array_localizaciones_id.length;i++){
				if(array_localizaciones_id[i]==''  ||  (array_localizaciones_pais[i]=='34' &&  array_localizaciones_zona[i]==valor_id)){
					combo_localizaciones.options.length=total_opciones+1;
					combo_localizaciones.options[total_opciones].value=array_localizaciones_id[i];
					combo_localizaciones.options[total_opciones].text=array_localizaciones_nombre[i];
					total_opciones++;
				}
			}
		}*/

		
		//combos_cambio_localizaciones_zonas(combo_localizaciones,zona_seleccionada);
		if(zona_seleccionada != ''){
			if (tipo_id == "C"){
				zona.value = "C|"+valor_id;
				combo_localizaciones.value = "";
			} else if (tipo_id == "P"){
				zona.value = "P|"+valor_id;
				combo_localizaciones.value = "";
			} else if (tipo_id == "L"){
				zona.value = "L|"+valor_id;
				combo_localizaciones.value = valor_id;
			}

			combos_cambio_hoteles_zonas(combo_hoteles,tipo_id,valor_id,combo_localizaciones,zona);
		}
		else{// si no seleccionan ninguna opcion volvemos a cargar tods los hoteles
			zona.value = "";
			combo_localizaciones.value = "";
			combo_hoteles_init(combo_hoteles);
		}
	}

	//selecciona una opcion del combo de zonas
	function seleccionaZona(id){
		for(i=0;i<=document.formulario.zona.length-1;i++){
			if(document.formulario.zona.options[i].value == "C|"+id){
				document.formulario.zona.options[i].selected = true
			}
		}
 		cambiaColorSelect(document.formulario.zona); 
	}

/* FIN FUNCIONES DE CONTROL ZONAS*/






/* FUNCIONES DE CONTROL LOCALIZACIONES*/

	//reinicia el resto de combos al seleccionar una localizacion
	function combos_cambio_localizacion(combo_paises,combo_zonas,combo_localizaciones,combo_hoteles){
		localizacion_seleccionada=combo_localizaciones.options[combo_localizaciones.selectedIndex].value;
		vaciar_combo(combo_hoteles);
		var total_opciones=0;
		for(i=0;i<array_hoteles_sap.length;i++){
			if(array_hoteles_localizacion[i]==localizacion_seleccionada || array_hoteles_pais[i]==''){
				combo_hoteles.options.length=total_opciones+1;
				combo_hoteles.options[total_opciones].value=array_hoteles_sap[i];
				nombre_hotel= array_hoteles_nombre[i];
				nombre_hotel = nombre_hotel.replace("H. ","");
				nombre_hotel = nombre_hotel.replace("G. ","G.H. ");
				combo_hoteles.options[total_opciones].text=nombre_hotel;
				total_opciones++;
			}
		}

	}

//llena el combo de localizaciones en funcion del pais seleccionado
	function combos_cambio_localizaciones_pais(combo_localizaciones,pais_seleccionado){
		vaciar_combo(combo_localizaciones);
		var total_opciones=0;
		for(i=0;i<array_localizaciones_id.length;i++){
			if(array_localizaciones_pais[i]==pais_seleccionado || array_localizaciones_id[i]==''){
				combo_localizaciones.options.length=total_opciones+1;
				combo_localizaciones.options[total_opciones].value = array_localizaciones_id[i];
				combo_localizaciones.options[total_opciones].text  = array_localizaciones_nombre[i];
				total_opciones++;
			}
		}
	}

	//selecciona una opcion del combo de localizaciones
	function seleccionaLocalidad(id){
		for(i=0;i<=document.formulario.id_localidad.length-1;i++){
			if(document.formulario.id_localidad.options[i].value == "L|"+id){
				document.formulario.id_localidad.options[i].selected = true
			}
		}
 		cambiaColorSelect(document.formulario.id_localidad); 
	}


/* FIN FUNCIONES DE CONTROL LOCALIZACIONES*/










/* FUNCIONES DE CONTROL DE HOTELES */
//llena el combo de hoteles con todos los disponibles
	function combo_hoteles_init(combo_hoteles){
		vaciar_combo(combo_hoteles);
		combo_hoteles.options.length=array_hoteles_sap.length;
		for(i=0;i<array_hoteles_sap.length;i++){
			combo_hoteles.options[i].value=array_hoteles_sap[i];
			nombre_hotel= array_hoteles_nombre[i];
			nombre_hotel = nombre_hotel.replace("H. ","");
			nombre_hotel = nombre_hotel.replace("G. ","G.H. ");
			combo_hoteles.options[i].text=nombre_hotel;
		}
	}



//llena el combo de hoteles respecto al pais seleccionado
	function combos_cambio_hoteles_pais(combo_hoteles,id_pais){
		//alert("combo hoteles");
		vaciar_combo(combo_hoteles);
		var total_opciones=0;
		for(i=0;i<array_hoteles_sap.length;i++){
			if(array_hoteles_pais[i]==id_pais || array_hoteles_pais[i]==''){
				combo_hoteles.options.length=total_opciones+1;
				combo_hoteles.options[total_opciones].value=array_hoteles_sap[i];
				nombre_hotel= array_hoteles_nombre[i];
				nombre_hotel = nombre_hotel.replace("H. ","");
				nombre_hotel = nombre_hotel.replace("G. ","G.H. ");
				combo_hoteles.options[total_opciones].text=nombre_hotel;
				total_opciones++;
			}
		}
	}


//llena el combo de hoteles respecto a la zona seleccionada
	function combos_cambio_hoteles_zonas(combo_hoteles,tipo_id,valor_id,localidad,zona){
		//alert("combo_hoteles:"+combo_hoteles.id+"\n localidad:"+localidad.value+"\n zona:"+zona.value+"\n tipo_id:"+tipo_id+"\n array_hoteles_sap.length:"+array_hoteles_sap.length);
		
		vaciar_combo(combo_hoteles);
	//	alert(combo_hoteles.name+"\n "+combo_hoteles.id);
		var total_opciones=0;
		if(tipo_id=="P"){//Rellenamos localizaciones desde un pais extranjero
			for(i=0;i<array_hoteles_sap.length;i++){
				if(array_hoteles_pais[i]==''  ||  array_hoteles_provincia[i]==valor_id){
					combo_hoteles.options.length=total_opciones+1;
					combo_hoteles.options[total_opciones].value=array_hoteles_sap[i];
					nombre_hotel= array_hoteles_nombre[i];
					nombre_hotel = nombre_hotel.replace("H. ","");
					nombre_hotel = nombre_hotel.replace("G. ","G.H. ");
					combo_hoteles.options[total_opciones].text=nombre_hotel;
					total_opciones++;
				}
			}
		}
		else if(tipo_id == "C"){//CCAA
			for(i=0;i<array_hoteles_sap.length;i++){
				if(array_hoteles_pais[i]==''  ||  (array_hoteles_pais[i]=='34' &&  array_hoteles_ccaa[i]==valor_id)){
					combo_hoteles.options.length=total_opciones+1;
					combo_hoteles.options[total_opciones].value=array_hoteles_sap[i];
					nombre_hotel= array_hoteles_nombre[i];
					nombre_hotel = nombre_hotel.replace("H. ","");
					nombre_hotel = nombre_hotel.replace("G. ","G.H. ");
					combo_hoteles.options[total_opciones].text=nombre_hotel;
					total_opciones++;
				}
			}
		}
		else if(tipo_id == "L"){//Zona 
			for(i=0;i<array_hoteles_sap.length;i++){
				if(array_hoteles_localizacion[i]==valor_id || array_hoteles_pais[i]==''){
					combo_hoteles.options.length = total_opciones+1;
					combo_hoteles.options[total_opciones].value=array_hoteles_sap[i];
					nombre_hotel= array_hoteles_nombre[i];
					nombre_hotel = nombre_hotel.replace("H. ","");
					nombre_hotel = nombre_hotel.replace("G. ","G.H. ");
					combo_hoteles.options[total_opciones].text=nombre_hotel;
					total_opciones++;
				}
			}
		}
		
		
/*		
		
		var total_opciones=0;
		for(i=0;i<array_hoteles_sap.length;i++){
			if(array_hoteles_localizacion[i]==localizacion_seleccionada || array_hoteles_pais[i]==''){
				combo_hoteles.options.length=total_opciones+1;
				combo_hoteles.options[total_opciones].value=array_hoteles_sap[i];
				nombre_hotel= array_hoteles_nombre[i];
				nombre_hotel = nombre_hotel.replace("H. ","");
				nombre_hotel = nombre_hotel.replace("G. ","G.H. ");
				combo_hoteles.options[total_opciones].text=nombre_hotel;
				total_opciones++;
			}
		}
		
*/		
	/*	else if(tipo_id == "Z"){//Zona 
			for(i=0;i<array_hoteles_sap.length;i++){
				if(array_hoteles_pais[i]==''  ||  (array_hoteles_pais[i]=='34' &&  array_hoteles_zona[i]==valor_id)){
					combo_hoteles.options.length=total_opciones+1;
					combo_hoteles.options[total_opciones].value=array_hoteles_sap[i];
					nombre_hotel= array_hoteles_nombre[i];
					nombre_hotel = nombre_hotel.replace("H. ","");
					nombre_hotel = nombre_hotel.replace("G. ","G.H. ");
					combo_hoteles.options[total_opciones].text=nombre_hotel;
					total_opciones++;
				}
			}
		}*/
}


	//selecciona una opcion del combo de hoteles
	function seleccionaHotel(id){
		for(i=0;i<=document.formulario_hoteles.id_hotel.length-1;i++){
			sap_hotel=reemplazar(document.formulario_hoteles.id_hotel.options[i].value," ","");
			id_hotel=reemplazar(id," ","");
			if(sap_hotel==id_hotel){
				document.formulario_hoteles.id_hotel.options[i].selected = true
			}
		}
 		cambiaColorSelect(document.formulario_hoteles.id_hotel); 
	}

/* FIN FUNCIONES DE CONTROL DE HOTELES */




/*CHANGES BY MANU 11/03/2008 */
/*

	llena el combo de zonas en funcion del pais seleccionado
    combo_zonas = combo que se va a cargar
	pais_seleccionado = pais seleccionado en el combo de paises



function combos_cambio_zonas_pais(combo_zonas,pais_seleccionado)
{
	vaciar_combo(combo_zonas); //vaciamos el combo de zonas
	var total_opciones=0;
	
	for(i=0;i<array_zonas_id.length;i++){

		if(array_zonas_pais[i] == pais_seleccionado || array_zonas_id[i]=='' ) 
		{
			var tipo_zona = array_zonas_id[i].split('|');
			if(tipo_zona[0].toUpperCase()=='Z' || array_zonas_id[i]==''){
					combo_zonas.options.length=total_opciones+1;
					combo_zonas.options[total_opciones].value=array_zonas_id[i];
					combo_zonas.options[total_opciones].text=array_zonas_nombre[i];
					total_opciones++;					
			}  			
		}
	}	
}

*/




