var arrDays   = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var arrMonths = null;  //Arreglo de meses claves segun el idioma
var myDate    = new Date();
var intCurrentMonth = myDate.getMonth()+1;
var intCurrentYear  = myDate.getFullYear();
var intCurrentDay   = myDate.getDate();
var intSelectedMonth="";
var intSelectedYear="";
var intSelectedDay="";

//Verifica que la fecha de salida sea posterior a la de llegada
function verificaFechas() { 
	var fechaI; var fechaF;	
	var idioma = fdic.lang(null); arrMonths = fdic.meses(idioma);
	fechaI = arrMonths[parseInt(document.getElementById("mes_desde").value) - 1] + ' ' + document.getElementById("dia_desde").value + ', ' + document.getElementById("anio_desde").value;
	fechaF = arrMonths[parseInt(document.getElementById("mes_hasta").value) - 1] + ' ' + document.getElementById("dia_hasta").value + ', ' + document.getElementById("anio_hasta").value;
	if (Date.parse(fechaI) > Date.parse(fechaF)) {
		alert(fdic.trad(disFechaSalidaPosterior,idioma));
		return false;
	}
	return true;
}

//Verifica que la fecha de salida sea posterior a la de llegada
//Nueva funcion para caja de busqueda multiple (hotel, hotel & avion, tour, traslado)
//Nota el anio_desde, etc, es el valor del objeto

function validaFechas(anio_desde,mes_desde,dia_desde,anio_hasta,mes_hasta,dia_hasta,tipomsg) { 
	var fechaI; var fechaF; var _tipomsg = '';
	var idioma = fdic.lang(null); arrMonths = fdic.meses(idioma);
	fechaI = arrMonths[parseInt(mes_desde) - 1] + ' ' + dia_desde + ', ' + anio_desde;
	fechaF = arrMonths[parseInt(mes_hasta) - 1] + ' ' + dia_hasta + ', ' + anio_hasta;
		
	if (Date.parse(fechaI) > Date.parse(fechaF)) {
		if (typeof tipomsg != 'undefined' &&  tipomsg != null) {_tipomsg = tipomsg; }
			
		switch (_tipomsg.toLowerCase()) {
			case 'car':
				alert(fdic.trad(disFechaDevolucionPosteriorCarros,idioma));
				break;
			default:
				alert(fdic.trad(disFechaSalidaPosterior,idioma));
				break;
		}		
		return false;
	}
	return true;
}

function cleanSelect(arg_Select) {
    if (typeof arg_Select != 'undefined' &&  arg_Select !=null) {
	  if (arg_Select.tagName.toLowerCase() == 'select') {
	    while (arg_Select.options.length > 0){
		    arg_Select.options[0] = null
	    }
      }
    }
}

function fillYearConstanteDesde(anio) {
	cleanSelect(document.forma.anio_desde);	intCurrentYear = anio ;	
	document.forma.anio_desde.options[0] = new Option(intCurrentYear,intCurrentYear, false, false);
	document.forma.anio_desde.options[1] = new Option(intCurrentYear + 1,intCurrentYear + 1, false, false);	
	if((intSelectedYear > 0) && (intSelectedYear != intCurrentYear)) {
		document.forma.anio_desde.options[1].selected = true
	}
}


function fillMonthConstanteDesde(anio,mes,dia) {
	var i; var j; var k=0; var dayDiff; var intUntil=11; var mes_actual; var opcion; var blnFromLoad ;
	var idioma = fdic.lang(null); arrMonths = fdic.meses(idioma);
	cleanSelect(document.forma.mes_desde); 
	if(anio == intCurrentYear){	j = intCurrentMonth-1 }	else{ j = 0; }
	for (i=j; i<=intUntil; i++) {
		if((intSelectedYear == anio) && (intSelectedMonth == i) && (blnFromLoad)) {
			document.forma.mes_desde.options[k++] = new Option(arrMonths[i],i + 1,true,true);
		}else {
			document.forma.mes_desde.options[k++] = new Option(arrMonths[i],i + 1,false,false);
		}
	}
    mes_actual=12-document.forma.mes_desde.length+1
	
	if(mes_actual<=mes){
	    opcion=mes-mes_actual; document.forma.mes_desde.options[opcion].selected = true;
	} else {
		document.forma.mes_desde.options[0].selected = true;
	}	
	fillDaysSelect(anio, document.forma.mes_desde.value, document.forma.dia_desde, blnFromLoad);		
}

function fillDayConstanteDesde(anio,mes,dia) {
    var i; var j; var k=0 ; var intUntil; var ultimodia;
	cleanSelect(document.forma.dia_desde); 
	// j has the value for the first day
	if((anio == intCurrentYear) && (mes == intCurrentMonth)){
		j = intCurrentDay;
	}else{
		j=1;
	}	
	//Number of days in the selected month
	intUntil = arrDays[mes-1];
	if(mes == 2){
		if (anio % 4 == 0){ intUntil++; }	 
	}	
	//Fill the days combo and if there is a selected date select it here too.
	for (i=j; i<=intUntil; i++){
		if((intSelectedYear == anio) && (intSelectedMonth == mes) && (intSelectedDay == i-1) && (blnFromLoad))
			document.forma.dia_desde.options[k++] = new Option(i ,i,true,true);
		else
			document.forma.dia_desde.options[k++] = new Option(i ,i,false,false);		
	}		
	if(document.forma.dia_desde.length>=dia) {
	    document.forma.dia_desde.options[dia-1].selected = true;
	} else{
	    ultimodia=document.forma.dia_desde.length;
		document.forma.dia_desde.options[ultimodia-1].selected = true;
	}		
	if((anio == intCurrentYear) && (mes == intCurrentMonth)){
		if((dia >= j) && (dia <= i-1)){
	    	cont=0; indice=0;
			for(s=j; s<=i-1; s++) {
		 		if (s == dia)
			   	  indice=cont;	
				  cont=cont+1;  
			}
	    	document.forma.dia_desde.options[indice].selected = true;				
		 } else {
		 	 document.forma.dia_desde.options[0].selected = true;
		 }
	}
}

function fillDayConstanteHasta(anio,mes,dia) {
	document.forma.dia_hasta.options[dia-1].selected = true;	
}

function fillYearConstantehasta(anio){
	cleanSelect(document.forma.anio_hasta);	
	intCurrentYear = anio ;	
	document.forma.anio_hasta.options[0] = new Option(intCurrentYear,intCurrentYear, false, false);
	document.forma.anio_hasta.options[1] = new Option(intCurrentYear + 1,intCurrentYear + 1, false, false);	
	if((intSelectedYear > 0) && (intSelectedYear != intCurrentYear))
		document.forma.anio_hasta.options[1].selected = true
}

function fillMonthConstantehasta(anio,mes,dia){
	var i; 	var j; 	var k = 0; 	var dayDiff; var intUntil=11;  var mes_actual; var opcion; var blnFromLoad;
	var idioma = fdic.lang(null); arrMonths = fdic.meses(idioma);
	cleanSelect(document.forma.mes_hasta); 
	if(anio == intCurrentYear){	j = intCurrentMonth-1 }	 else{ 	j = 0;	}
	for (i=j; i<=intUntil; i++){
		if((intSelectedYear == anio) && (intSelectedMonth == i) && (blnFromLoad)){
			document.forma.mes_hasta.options[k++] = new Option(arrMonths[i],i + 1,true,true);
		} else {
			document.forma.mes_hasta.options[k++] = new Option(arrMonths[i],i + 1,false,false);
		}
	}
    mes_actual=12-document.forma.mes_hasta.length+1;
	
	if(mes_actual<=mes){
	    opcion=mes-mes_actual;
	    document.forma.mes_hasta.options[opcion].selected = true;
	} else {
		document.forma.mes_hasta.options[0].selected = true;
	}	
	fillDaysSelect(anio, document.forma.mes_hasta.value, document.forma.dia_hasta, blnFromLoad);		
}

function fillDayConstantehasta(anio,mes,dia) {
    var i; var j; var k = 0; var intUntil; var ultimodia;
	cleanSelect(document.forma.dia_hasta); 
	// j has the value for the first day
	if((anio == intCurrentYear) && (mes == intCurrentMonth)){ j = intCurrentDay } else{ j=1; }
	//Number of days in the selected month
	intUntil = arrDays[mes-1];
	if(mes == 2){
		if (anio % 4 == 0){ intUntil++; }	 
	}	
	//Fill the days combo and if there is a selected date select it here too.
	for (i=j; i<=intUntil; i++){
		    if((intSelectedYear == anio) && (intSelectedMonth == mes) && (intSelectedDay == i-1) && (blnFromLoad))
				document.forma.dia_hasta.options[k++] = new Option(i ,i,true,true);
			else
				document.forma.dia_hasta.options[k++] = new Option(i ,i,false,false);
		
	}	
	if(document.forma.dia_hasta.length>=dia) {
	    document.forma.dia_hasta.options[dia-1].selected = true;
	}else{
	    ultimodia=document.forma.dia_hasta.length;
		document.forma.dia_hasta.options[ultimodia-1].selected = true;
	}		
	if((anio == intCurrentYear) && (mes == intCurrentMonth)){
		if((dia >= j) && (dia <= i-1)){
	    		cont=0; indice=0;
				for(s=j; s<=i-1; s++) {
		 			if (s == dia)
			   		indice=cont;	
					cont=cont+1;  
				 }
	    		document.forma.dia_hasta.options[indice].selected = true;				
		 } else {
		 	 document.forma.dia_hasta.options[0].selected = true;
		 }
	}
	
}

function fillDayConstanteHasta(anio,mes,dia) {
	document.forma.dia_hasta.options[dia-1].selected = true;
}

function fillDaysSelect(arg_Year, arg_Month, arg_Select, blnFromLoad){
    var i; var j; var k = 0; var intUntil; var ultimodia; var dia = arg_Select.value;	
	cleanSelect(arg_Select); 
	// j has the value for the first day
	if((arg_Year == intCurrentYear) && (arg_Month == intCurrentMonth)){ j = intCurrentDay; }else{j=1;}
	//Number of days in the selected month
	intUntil = arrDays[arg_Month-1]
	if(arg_Month == 2){
		if (arg_Year % 4 == 0){ intUntil++; }	 
	}	
	//Fill the days combo and if there is a selected date select it here too.
	for (i=j; i<=intUntil; i++){
	    if((intSelectedYear == arg_Year) && (intSelectedMonth == arg_Month) && (intSelectedDay == i-1) && (blnFromLoad)) {
			arg_Select.options[k++] = new Option(i ,i,true,true);
		} else {
			arg_Select.options[k++] = new Option(i ,i,false,false);
		}		
	}	
	if(arg_Select.length>=dia) {
	    arg_Select.options[dia-1].selected = true;
	}else{
	    ultimodia=arg_Select.length;
		arg_Select.options[ultimodia-1].selected = true;
	}		
	if((arg_Year == intCurrentYear) && (arg_Month == intCurrentMonth)){
		if((dia >= j) && (dia <= i-1)) {
	    		cont=0; indice=0;
				for(s=j; s<=i-1; s++) {
		 		  if (s == dia)
			   	  indice=cont;	
				  cont=cont+1;  
				 }
	    		arg_Select.options[indice].selected = true;
				
		 }else {
		 	 arg_Select.options[0].selected = true;
		 }
	}	
	
}

function fillDaysFreeSelect(arg_Year, arg_Month, arg_Select, blnFromLoad) {
    var i; var j=1;  var k = 0; var intUntil; var ultimodia;  var dia = arg_Select.value;
    cleanSelect(arg_Select);
    //Number of days in the selected month
    intUntil = arrDays[arg_Month - 1];
    if (arg_Month == 2) {
        if (arg_Year % 4 == 0) { intUntil++; }
    }
    //Fill the days combo and if there is a selected date select it here too.
    for (i = j; i <= intUntil; i++) {
        if ((intSelectedYear == arg_Year) && (intSelectedMonth == arg_Month) && (intSelectedDay == i - 1) && (blnFromLoad))
            arg_Select.options[k++] = new Option(i, i, true, true);
        else
            arg_Select.options[k++] = new Option(i, i, false, false);

    }
    if ((arg_Select.length >= dia) && (dia != '')) {
        arg_Select.options[dia - 1].selected = true;
    }else {
        ultimodia = arg_Select.length;
        if (arg_Select.length > 0) { arg_Select.options[ultimodia - 1].selected = true; }
    }
    if ((arg_Year == intCurrentYear) && (arg_Month == intCurrentMonth)) {
        if ((dia >= j) && (dia <= i - 1)) {
            cont = 0; indice = 0;
            for (s = j; s <= i - 1; s++) {
                if (s == dia)
                    indice = cont;
                    
                cont = cont + 1;
            }
            arg_Select.options[indice].selected = true;
        } else {
            arg_Select.options[0].selected = true;
        }
    }
}

function fillMonthsSelect(arg_Year, arg_Select, arg_DaySelect, blnFromLoad){
   
	var i; var j; var k = 0; var dayDiff; var intUntil=11;  var mes_actual;  var opcion; var mes = arg_Select.value;
	var idioma = fdic.lang(null); arrMonths = fdic.meses(idioma);
	cleanSelect(arg_Select); 
	if(arg_Year == intCurrentYear){	j = intCurrentMonth-1; } else{ j = 0; }
	for (i=j; i<=intUntil; i++){
		if((intSelectedYear == arg_Year) && (intSelectedMonth == i) && (blnFromLoad)){
			arg_Select.options[k++] = new Option(arrMonths[i],i + 1,true,true);
		} else {
			arg_Select.options[k++] = new Option(arrMonths[i],i + 1,false,false);
		}
	}
    mes_actual=12-arg_Select.length+1;
	
	if(mes_actual<=mes){
	    opcion=mes-mes_actual;
	    arg_Select.options[opcion].selected = true;
	} else {
		arg_Select.options[0].selected = true;
	}	
	fillDaysSelect(arg_Year, arg_Select.value, arg_DaySelect, blnFromLoad);		
}


function fillMonthsFreeSelect(arg_Year, arg_Select, arg_DaySelect, blnFromLoad) {
    var i;  var j=0;  var k = 0; var dayDiff; var intUntil=11;  var mes_actual; var opcion; var mes = arg_Select.value;
    var idioma = fdic.lang(null); arrMonths = fdic.meses(idioma);
    cleanSelect(arg_Select);
    for (i = j; i <= intUntil; i++) {
        if ((intSelectedYear == arg_Year) && (intSelectedMonth == i) && (blnFromLoad)) {
            arg_Select.options[k++] = new Option(arrMonths[i], i + 1, true, true);
        }else {
            arg_Select.options[k++] = new Option(arrMonths[i], i + 1, false, false);
        }
    }
    mes_actual = 12 - arg_Select.length + 1;   
    opcion = mes - mes_actual;
    arg_Select.options[opcion].selected = true;

    fillDaysFreeSelect(arg_Year, arg_Select.value, arg_DaySelect, blnFromLoad);
}


function fillMonthsFreeSelect(arg_Year, arg_Select, arg_DaySelect, blnFromLoad) {
    var i; var j=0;  var k = 0; var dayDiff; var intUntil=11; var mes_actual; var opcion; var mes = arg_Select.value;
    var idioma = fdic.lang(null); arrMonths = fdic.meses(idioma);
    cleanSelect(arg_Select);
    for (i = j; i <= intUntil; i++) {
        if ((intSelectedYear == arg_Year) && (intSelectedMonth == i) && (blnFromLoad)) {
            arg_Select.options[k++] = new Option(arrMonths[i], i + 1, true, true);
        }else {
            arg_Select.options[k++] = new Option(arrMonths[i], i + 1, false, false);
        }
    }
    mes_actual = 12 - arg_Select.length + 1;
    opcion = mes - mes_actual;
    arg_Select.options[opcion].selected = true;

    fillDaysFreeSelect(arg_Year, arg_Select.value, arg_DaySelect, blnFromLoad);
}


function fillYearsSelect(arg_Select){
	cleanSelect(arg_Select);		
	arg_Select.options[0] = new Option(intCurrentYear,intCurrentYear, false, false);
	arg_Select.options[1] = new Option(intCurrentYear + 1,intCurrentYear + 1, false, false);	
	if((intSelectedYear > 0) && (intSelectedYear != intCurrentYear)) {
		arg_Select.options[1].selected = true
	}
}


// funciones que pasan la fecha del calendario a los combos de la pagina de rates

//****************** funciones para sumar la fecha **********************
function DateAdd(startDate, numDays, numMonths, numYears) {
	var returnDate = new Date(startDate.getTime());
	var yearsToAdd = numYears;
	var month = returnDate.getMonth()         + numMonths;

	if (month > 11) {
		yearsToAdd = Math.floor((month+1)/12);
		month -= 12*yearsToAdd;
		yearsToAdd += numYears;
	}
	returnDate.setMonth(month);
	returnDate.setFullYear(returnDate.getFullYear() + yearsToAdd);
	returnDate.setTime(returnDate.getTime()+60000*60*24*numDays);
	return returnDate;
}

function YearAdd(startDate, numYears) {
   return DateAdd(startDate,0,0,numYears);
}
function MonthAdd(startDate, numMonths) {
   return DateAdd(startDate,0,numMonths,0);
}
function DayAdd(startDate, numDays) {
   return DateAdd(startDate,numDays,0,0);
}

//****************** fin de funciones para sumar la fecha ***************
function Fecha(dia, mes, anio){
	var i=0; var j=0; var k=0; var indiceanio; var indicemes; var indicedia;
	while(i<=3){
		if (document.forma.anio_desde[i].value==anio){
			indiceanio=i;
			break;
		}
		i=i+1;
	}
	document.forma.anio_desde.options.selectedIndex =indiceanio;
	fillMonthsSelect(document.forma.anio_desde.value, document.forma.mes_desde, document.forma.dia_desde, false)
	while(j<=13){
		if (document.forma.mes_desde[j].value==mes){
			indicemes=j;
			break;
		}
		j=j+1;
	}
	document.forma.mes_desde.options.selectedIndex =indicemes;
	fillDaysSelect(document.forma.anio_desde.value, document.forma.mes_desde.value, document.forma.dia_desde, false)
	while(k<=32){
		if (document.forma.dia_desde[k].value==dia){
			indicedia=k;
			break;
		}
		k=k+1;
	}
	document.forma.dia_desde.options.selectedIndex =indicedia;
	var FechaSalida=(new Date(anio,mes,dia));
	var FechaOut = DateAdd(FechaSalida, 7, -1, 0);

	Anio2=FechaOut.getYear(); Mes2=FechaOut.getMonth(); Mes2=Mes2+1;  Dia2=FechaOut.getDate();
	i=0; j=0; k=0;
	document.forma.submit() ;
	//while(i<=3){
	//	if (document.forma.anio_hasta[i].value==Anio2){
	//		indiceanio=i;
	//		break;}
	//	i=i+1;}
	//document.forma.anio_hasta.options.selectedIndex =indiceanio;
	//fillMonthsSelect(document.forma.anio_hasta.value, document.forma.mes_hasta, document.forma.dia_hasta, false)
	//while(j<=13){
	//	if (document.forma.mes_hasta[j].value==Mes2){
	//		indicemes=j;
	//		break;}
	//	j=j+1;}

	//document.forma.mes_hasta.options.selectedIndex =indicemes;
	//fillDaysSelect(document.forma.anio_hasta.value, document.forma.mes_hasta.value, document.forma.dia_hasta, false)
	//while(k<=32){
	//	if (document.forma.dia_hasta[k].value==Dia2){
	//		indicedia=k;
	//		break;}
	//	k=k+1;}
	//document.forma.dia_hasta.options.selectedIndex =indicedia;
}


//****************** fin de funciones para sumar la fecha ***************
//  ****  Sirve para ajustar las fechas que vienen del Calendario de Tours
function FechaTour(dia, mes, anio) {
	var i=0; var j=0; var k=0; var indiceanio; var indicemes; var indicedia;
	while(i<=3){
		if (document.form_Activities.anio_tour1[i].value==anio){
			indiceanio=i;
			break;
		}
		i=i+1;
	}
	document.form_Activities.anio_tour1.options.selectedIndex =indiceanio;
	fillMonthsSelect(document.form_Activities.anio_tour1.value, document.form_Activities.mes_tour1, document.form_Activities.dia_tour1, false)
	//Llena los meses
	while(j<=13){
		if (document.form_Activities.mes_tour1[j].value==mes){
			indicemes=j;
			break;
		}
		j=j+1;
	}
	document.form_Activities.mes_tour1.options.selectedIndex =indicemes;
	//Llena los Dias
	fillDaysSelect(document.form_Activities.anio_tour1.value, document.form_Activities.mes_tour1.value, document.form_Activities.dia_tour1, false)
	while(k<=32){
		if (document.form_Activities.dia_tour1[k].value==dia){
			indicedia=k;
			break;
		}
		k=k+1;
	}
	document.form_Activities.dia_tour1.options.selectedIndex =indicedia;
	var FechaSalida=(new Date(anio,mes,dia));
	var FechaOut = DateAdd(FechaSalida, 7, -1, 0);

}

function t1msnDestinos() { 
	var idioma = fdic.lang(null); 
	if (document.forma.Destino.value == "") {
		alert (fdic.trad(disSelectDestinoLista,idioma));
		return false;
	} else {
		return true;
	}
}
    
//funcin que llena y ajusta los das.  Slo para el Booking serach de e-travel  
function fillDaysSelectNew(arg_Year, arg_Month, arg_Select, blnFromLoad){
    var i; var j; var k = 0; var intUntil; var ultimodia; var dia = arg_Select.value;
	cleanSelect(arg_Select); 
	j=1;
	
	//Number of days in the selected month
	intUntil = arrDays[arg_Month-1]
	if(arg_Month == 2){
		if (arg_Year % 4 == 0){ intUntil++; }	 
	}	
	//Fill the days combo and if there is a selected date select it here too.
	for (i=j; i<=intUntil; i++){
		if((intSelectedYear == arg_Year) && (intSelectedMonth == arg_Month) && (intSelectedDay == i-1) && (blnFromLoad)) {
			arg_Select.options[k++] = new Option(i ,i,true,true);
		}else{
			arg_Select.options[k++] = new Option(i ,i,false,false);
		}		
	}	
	if(arg_Select.length>=dia) {
	    arg_Select.options[dia-1].selected = true;
	} else{
	    ultimodia=arg_Select.length;
		arg_Select.options[ultimodia-1].selected = true;
	}		
	if((arg_Year == intCurrentYear) && (arg_Month == intCurrentMonth)){
		if((dia >= j) && (dia <= i-1)){
	    		cont=0; indice=0;
				for(s=j; s<=i-1; s++) {
		 			if (s == dia)
			   		indice=cont;	
					cont=cont+1;  
				 }
	    		arg_Select.options[indice].selected = true;				
		 } else {
		 	 arg_Select.options[0].selected = true;
		 }
	}
	
}










