/*--------------------------------Definido, diseñado y creado por Rubén Martín Guerrero 15/06/2008------------------------------*/

var xmlcomunidad_provincia = null;
var xmllocalidad = null;
var xmlorigenes = null;


/*---------------------------------------------Funciones Destino Sólo Hotel------------------------------------------------------*/

function pinta_comunidades (BuscParador,texto_inicio,rutaxml){//Pinta comunidades o paises sin ningun tipo de control

//Bloque de codigo que llama a funcion para generar objeto ajax  y recupera la informacion del xml indicado	
	var aj=ajax();
	
    if(!aj){
        alert('error');
        return;
    }

    aj.open('get',rutaxml,false);

	aj.send(''); 

	xmlcomunidad_provincia=aj.responseXML.documentElement;

	var comunidades= xmlcomunidad_provincia.getElementsByTagName('comunidad');
	var long_com = comunidades.length;
	var i=0;
	var j=1;
	BuscParador.options[0] = new Option(texto_inicio,'')
	while (i<long_com)
	{
		if(comunidades[i].getAttribute('folleto').search('FP')>0)
		{
			BuscParador.options[j]=new Option(comunidades[i].getAttribute('nombre_comunidad'),comunidades[i].getAttribute('cod_comunidad'));
			j=j+1;
		}
		i=i+1;
	}
}


function pinta_provincias_com (BuscParador,cod_comunidad,texto_inicio,rutaxml){//Pinta provincias o ciudad teniendo encuenta el pais
//Bloque de codigo que llama a funcion para generar objeto ajax  y recupera la informacion del xml indicado	
	borracombo(BuscParador);
	var aj=ajax();
	
    if(!aj){
        alert('error');
        return;
    }

    aj.open('get',rutaxml,false);

	aj.send(''); 

	xmlcomunidad_provincia=aj.responseXML.documentElement;

	var areas = new Array();
	var pos_array = 0;
	var provincias= xmlcomunidad_provincia.getElementsByTagName('provincia');
	var long_pro = provincias.length;
	borracombo(BuscParador);
	var i=0;
	BuscParador.options[0] = new Option(texto_inicio,'')
	for (i=0; i<long_pro; i++)
	{
		if((provincias[i].getAttribute('cod_comunidad')==cod_comunidad)&&(provincias[i].getAttribute('folleto').search('FP')>0))
		{
			areas[pos_array]=provincias[i].getAttribute('nombre_provincia') + "-" + provincias[i].getAttribute('cod_provincia');
			pos_array=pos_array+1;
		}
	}
	areas = ordenaArray (areas);
	pintaArea (areas,BuscParador);	
}

function pinta_provincias (BuscParador,texto_inicio,rutaxml){

//Bloque de codigo que llama a funcion para generar objeto ajax  y recupera la informacion del xml indicado	
	var aj=ajax();
	
    if(!aj){
        alert('error');
        return;
    }

    aj.open('get',rutaxml,false);

	aj.send(''); 

	xmlcomunidad_provincia=aj.responseXML.documentElement;

	var areas = new Array();
	var pos_array = 0;
	var provincias= xmlcomunidad_provincia.getElementsByTagName('provincia');
	var long_pro = provincias.length;

	var i=0;
	BuscParador.options[0] = new Option(texto_inicio,'')

	for (i=0; i<long_pro; i++)
	{		
		areas[pos_array]=provincias[i].getAttribute('nombre_provincia') + "-" + provincias[i].getAttribute('cod_provincia');
		pos_array=pos_array+1;
	}

	areas = ordenaArray (areas);
	pintaArea (areas,BuscParador);	
}

function pintaArea (areas,BuscParador){
	var long_area = areas.length;
	var dato;

	for (i=0; i<long_area; i++)	{
		dato = areas[i].split ("-");
		BuscParador.options[i+1]=new Option(dato[0],dato[1]);
	}
}

function pinta_localidad (BuscParador,cod_provincia,texto_inicio,ruta_localidades){
	borracombo(BuscParador);
	var encontrado=0;
	var folletos="";
	var ruta_xml=ruta_localidades + cod_provincia + ".xml";

//Bloque de codigo que llama a funcion para generar objeto ajax  y recupera la informacion del xml indicado	
	var aj=ajax();
	
    if(!aj){
        alert('error');
        return;
    }

    aj.open('get',ruta_xml,false);

	aj.send(''); 

	xmllocalidad=aj.responseXML.documentElement;

	var localidades= xmllocalidad.getElementsByTagName('localidad');
	var long_loc = localidades.length;
	var i=0;
	var j=1;

	BuscParador.options[0] = new Option(texto_inicio,'')
	for (i=0; i<long_loc; i++)
	{
		if((localidades[i].getAttribute('vendible')=='SI')&&(localidades[i].getAttribute('folleto').search('FP')>0))
		{
			BuscParador.options[j]=new Option(localidades[i].getAttribute('nombre_localidad'),localidades[i].getAttribute('cod'));
			j=j+1;
		}
	}

}

function controlaZona (zona,BuscParador)
{
	borracombo(BuscParador);
	var localidades= xmllocalidad.getElementsByTagName('localidad');
	var long_loc = localidades.length;
	var i=0;

	for (i=0; i<long_loc; i++)
	{
		if(localidades[i].getAttribute('cod')==zona)
			pintaFolletos(localidades[i].getAttribute("folleto"),BuscParador);
	}
}

function pintaFolletos (folletos,BuscParador)
{
	var folleto = folletos.split(",");
	var tot_folletos = folleto.length;
	var folletos_pintados = new Array ();
	var cont_folleto;
	var cont_select = 1
	var encontrado;

	borracombo (BuscParador);
	BuscParador.options[0] = new Option("(Todos)","")

	for (i=0; i<tot_folletos;i++){
		if (folleto [i] != 'BH' && folleto [i] != 'FS'){
			cont_folleto = folletos_pintados.length;
			if (cont_folleto == 0){
				pintaNombreFolleto(BuscParador,folleto[i],cont_select);
				cont_select++;
				folletos_pintados [cont_folleto] = folleto [i];
			}
			else
			{
				encontrado = 0;
				for (j=0;j<cont_folleto;j++){
					if (folleto[i] == folletos_pintados[j]) encontrado++
				}
				if (encontrado == 0){
					pintaNombreFolleto(BuscParador,folleto[i],cont_select);
					cont_select++;
					folletos_pintados [cont_folleto] = folleto [i];	
				}
			}
		}
	}
}

function pintaNombreFolleto (BuscParador,folleto,cont){
	switch (folleto){
		case "EM": 	BuscParador.options[cont]=new Option("Urbano",folleto);	
					break;
		case "FM": 	BuscParador.options[cont]=new Option("Hotel de Montaña",folleto);	
					break;
		case "FR": 	BuscParador.options[cont]=new Option("Turismo Rural",folleto);	
					break;
		case "MC": 	BuscParador.options[cont]=new Option("Hotel en la playa",folleto);	
					break;
		case "FP": 	BuscParador.options[cont]=new Option("Parador",folleto);	
					break;
		case "PA": 	BuscParador.options[cont]=new Option("Port Aventura",folleto);	
					break;
		case "IS": 	BuscParador.options[cont]=new Option("Hotel en la playa",folleto);	
					break;
		case "II": 	BuscParador.options[cont]=new Option("Islas",folleto);	
					break;
		case "PE": 	BuscParador.options[cont]=new Option("Picos de Europa",folleto);	
					break;
		case "CP": 	BuscParador.options[cont]=new Option("Hoteles con Encanto",folleto);	
					break;
		case "SB": 	BuscParador.options[cont]=new Option("Salud y Belleza",folleto);	
					break;
		case "PA": 	BuscParador.options[cont]=new Option("Port Aventura",folleto);	
					break;
		case "ED": 	BuscParador.options[cont]=new Option("Disney",folleto);	
					break;
	}
}

/*----------------------------------------------------Funciones Neutras-----------------------------------------------------------*/

function recupera_comunidad_pais(provincia_seleccionada)//al acceder directamente a pintar las provincias, cuando estas cambiam es necesario recuperar su comunidad
{
	var provincias = xmlcomunidad_provincia.getElementsByTagName('provincia');
	var long_pro = provincias.length;
	var i=0;
	var encontrado=0;

	while(i<=long_pro && encontrado==0)
	{
		if(provincias[i].getAttribute('cod_provincia')==provincia_seleccionada)
		{
			BuscParador.comunidad_pais.value=provincias[i].getAttribute('cod_comunidad');
			encontrado=1;
		}
		i++;
	}
}

function inicializa_destino(BuscParador)
{
	BuscParador.selectedIndex=0;
}

function borracombo (BuscParador){
	var elemencombo = BuscParador.length;
	for(i=0;i<elemencombo;i++){
		BuscParador.options[0]=null;
	}
}

function ordenaArray (areas){
	var cambio;
	var aux;
	var i =0;
	var j=0;

	while(i < areas.length && cambio!=0){
		cambio=0;
		for(j=0;j<areas.length-1;j++){
			if(areas[j]>areas[j+1]){
				aux=areas[j];
				areas[j]=areas[j+1];	
				areas[j+1]=aux;
				cambio=1;
			}
		}
		i++;	
	}
	return areas;
}
