/*--------------------------------Definido, diseñado y creado por Rubén Martín Guerrero 15/06/2008------------------------------*/

var MinMilli = 1000 * 60 
var HrMilli = MinMilli * 60
var DyMilli = HrMilli * 24

var xmlfechas = new Object;

function controlafechas (folleto,rutaxml,fEntrada,fSalida,fMenorS,fMayorS,fMenorL,fMayorL,maxNoches)
{
	//loadDataXML(rutaxml);

	cargaFechas (folleto,maxNoches,fEntrada,fSalida,rutaxml);

	var fent = fEntrada.value;
	var fsal = fSalida.value;

	var fecha = new Date ();
	var pepe = fecha;

	pepe.setDate(pepe.getDate () + 2)
	/* if (fecha.getDay() > 0 && fecha.getDay() < 5)  Controlo si dia de la semana es de Lunes a Jueves para poner 2 días de antelación
		pepe.setDate(pepe.getDate () + 2)
	else Controlo si dia de la semana es de Jueves a Domingo para poner 3 días de antelación
		pepe.setDate(pepe.getDate () + 3) */	

	var dia = pepe.getDate ();

	if (dia < 10)
		dia = "0" + dia;
	var mes = fecha.getMonth () + 1;
	if (mes < 10)
		mes = "0" + mes;

	var anyo = fecha.getFullYear ();

	var fechaMenorLlegada = anyo + '' + mes + '' + dia;

	if (fent > fechaMenorLlegada)
		fechaMenorLlegada = fent;

	anyo = fechaMenorLlegada.substring (0,4)
	mes = fechaMenorLlegada.substring (4,6)
	dia = fechaMenorLlegada.substring (6,8)
	fechaMenorLlegada = dia + "/" + mes + "/" + anyo;
	
	var fechaMenorSalida = (parseInt(dia) + 1) + "/" + mes + "/" + anyo;

	anyo = fsal.substring (0,4)
	mes = fsal.substring (4,6)
	dia = fsal.substring (6,8)
	fsal = dia + "/" + mes + "/" + anyo;

	var fechaMayorLlegada = fsal;
	var fechaMayorSalida = fechaMayorLlegada;	

	fMenorL.value = fechaMenorLlegada;
	fMayorL.value = fechaMayorLlegada;
	fMenorS.value = fechaMenorSalida;
	fMayorS.value = fechaMayorSalida;

}

function cargaFechas (folleto,maxNoches,fEntrada,fSalida,rutaxml){

	var fecha_entrada1, fecha_entrada2,fecha_salida1,fecha_salida2,fent,fsal;

//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(''); 

    xmlfechas=aj.responseXML.documentElement;

	var folletos= xmlfechas.getElementsByTagName('FOLLETO');

	var i=0;

	var long_folletos=folletos.length;

	var posicionXml = 0;

	for (i=0; i<long_folletos; i++)
	{
		if (folletos[i].getAttribute('nombre') == folleto && folletos[i].getAttribute('estado') == 'A')
		{
			if (posicionXml == 0)
			{
				fecha_entrada1 = folletos[i].getAttribute('inicio');
				fecha_salida1 = folletos[i].getAttribute('fin');
				posicionXml++;
			}
			else
			{
				fecha_entrada2 = folletos[i].getAttribute('inicio');
				fecha_salida2 = folletos[i].getAttribute('fin');
			}
			maxNoches.value = folletos[i].getAttribute('maximodias');//Guarada el maximo de noches selecionables en el calendario, según folleto.
		}
	}
	if (fecha_entrada2 != undefined)
	{
		if (fecha_entrada1 < fecha_entrada2)
		{
			fent = fecha_entrada1;			//En esta funcion se seleciona del Xml las fechas de inicio y fin de cada uno de los 
			fsal = fecha_salida2;			//folletos, para realizar los controles posteriores al selecionar fechas en el calendario
		}									// y cargaR ESTE.
		else
		{
			fent = fecha_entrada2;
			fsal = fecha_salida1;
		}
	}	
	else
	{
		fent = fecha_entrada1;
		fsal = fecha_salida1
	}

	fEntrada.value = fent;
	fSalida.value = fsal;
}

function fechaEntradaChange(dias,fEntrada,fSalida,fMenorS,maxNoches){
	var diaEntrada = fecha_cal (fEntrada.value);
	
	if (fSalida.value == ""){
		for (i=0; i<dias; i++)
			diaEntrada = new Date (diaEntrada.getTime()+DyMilli);
		
		fMenorS.value = fecha_text (diaEntrada)
		fSalida.value = fMenorS.value;
		
	}
	else{
		var diaSalida = fecha_cal (fSalida.value);
		fSalida.value = '';

		for (i=0; i<dias; i++)
			diaEntrada = new Date (diaEntrada.getTime()+DyMilli);

		fMenorS.value = fecha_text (diaEntrada);
		fSalida.value = fMenorS.value;
	}
	calculaNochesEstancia(fEntrada,fSalida,maxNoches);
}

function fechaSalidaChange(fEntrada,fSalida,maxNoches){
	if (fEntrada.value == "")
	{
		var diaSalida = fecha_cal (fSalida.value);
		diaSalida = new Date(diaSalida.getTime()-DyMilli);				
		fllegada = fecha_text(diaSalida)
		fEntrada.value = fllegada;
	}
	calculaNochesEstancia(fEntrada,fSalida,maxNoches);
}

function calculaNochesEstancia(fEntrada,fSalida,maxNoches){

	var diaEntrada = fecha_cal (fEntrada.value);			
	var diaSalida = fecha_cal (fSalida.value);
	var noches = (diaSalida - diaEntrada.getTime())/DyMilli;
	noches = noches + "";

	document.BuscVueloHotel.nochesEstancia.value=noches;

	var pepe = noches.indexOf (".")
	if (pepe != -1){
		var jose = noches.substring(pepe+1,pepe+2) 
		if (jose >= 5)
			noches = parseInt(noches) + 1;
	}
	var error = controlaNoches (noches, diaEntrada,maxNoches);	
	if (error != 0) fSalida.value = '';
}

function controlaNoches (noches, diaEntrada, maxNoches){
	if (parseInt(noches) > parseInt(maxNoches.value)){
		var diaE = diaEntrada.getDate() + parseInt(maxNoches.value);
		var mesE = diaEntrada.getMonth() + 1;
		var anyoE = diaEntrada.getYear ();
		var diamaximo = diaE + "/" + mesE + "/" + anyoE;
		diamaximo = fecha_cal (diamaximo);
		diamaximo = fecha_text (diamaximo);

		var codigo_flotante = new String (
		"<html>\n" + "<head>\n" + "<title>Atención</title>\n" + "</head>\n" +
		"<body bgcolor=\"#f5f5f5\" topmargin=\"0\" leftmargin=\"0\">\n"+
		"<table cellspacing=\"0\" cellpadding=\"5\" border=\"0\" width=\"100%\" bgcolor=\"#f5f5f5\">\n"+
		"<tr><td bgcolor=\"#E8EDE5\">\n"+
		"<font color=\"#003660\" face=\"verdana\" size=\"1\"><b>Atención:</b></font></td></tr>" + 
		"<tr><td bgcolor=\"#f5f5f5\"><font color=\"#000000\" face=\"verdana\" size=\"1\">* El número de noches seleccionado no puede exceder de " + document.BuscVueloHotel.maxnoches.value + ".<br><br>" + 
		"* Para la fecha de entrada que has seleccionado debes indicar como &nbsp;&nbsp;&nbsp;fecha de salida máxima el día " + diamaximo + "</font></td></tr>" + 
		"<tr><td align=\"center\"><a href=\"javascript:window.close();\" style=\"text-decoration: none\"><font color=\"#000000\" face=\"verdana\" size=\"1\">cerrar</font></a>\n</table></body></html>");
	
		flotanteError (410,110,codigo_flotante);
		return 1;
	}
	else
		return 0;
}

function flotanteError (ancho,alto,codigo_flotante){
	var nAltura = screen.availHeight;
	var nAnchura = screen.availWidth;
	var nTop = (nAltura - 140) * .5;
	nLeft = (nAnchura - 420) * .5;
	var wf = "";	
	wf = wf + "width=" + ancho;
	wf = wf + ",height=" + alto;
	wf = wf + ",top=" + nTop;
	wf = wf + ",left=" + nLeft;
	wf = wf + ",resizable=no";
	wf = wf + ",scrollbars=no";
	wf = wf + ",menubar=no";
	wf = wf + ",toolbar=no";
	wf = wf + ",directories=no";
	wf = wf + ",location=no";
	
	var VentanaError = window.open('','alerta',wf);
	VentanaError.opener = self;
	VentanaError.focus();
	VentanaError.document.write (codigo_flotante);
	VentanaError.document.close();
}



