
var arrDays   = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var arrMonths = new Array('Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic');
// Arreglo para validar que la fecha de salida no sea posterior a la de llegada
var arrMonthsING = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'); 
var myDate    = new Date();

var intCurrentMonth = myDate.getMonth()+1;
var intCurrentYear  = myDate.getFullYear();
var intCurrentDay   = myDate.getDate();

var intSelectedMonth
var intSelectedYear
var intSelectedDay

intSelectedYear = ""
intSelectedMonth = "" 
intSelectedDay = ""

//Verifica que la fecha de salida sea posterior a la de llegada
function verificaFechas()
{ 
	var fechaI
	var fechaF
	fechaI = arrMonthsING[parseInt(document.getElementById("mes_desde").value) - 1] + ' ' + document.getElementById("dia_desde").value + ', ' + document.getElementById("anio_desde").value;
	fechaF = arrMonthsING[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('La fecha de salida debe ser posterior a la fecha de llegada.');
		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)
{ 
	var fechaI;
	var fechaF;
	fechaI = arrMonthsING[parseInt(mes_desde) - 1] + ' ' + dia_desde + ', ' + anio_desde;
	fechaF = arrMonthsING[parseInt(mes_hasta) - 1] + ' ' + dia_hasta + ', ' + anio_hasta;
	if (Date.parse(fechaI) > Date.parse(fechaF))
	{
		alert('La fecha de salida debe ser posterior a la fecha de llegada.');
		return false;
	}
	return true;
}

function cleanSelect(arg_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
    var mes_actual
	var opcion
	var blnFromLoad 
	
	//var mes = document.forma.mes_desde.value;
	
	cleanSelect(document.forma.mes_desde); 
	if(anio == intCurrentYear){	
		j = intCurrentMonth-1
	}	
	else{
		j = 0;	
	}
	intUntil = 11;
	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
	//var dia = document.forma.dia_desde.value;
	//alert(arg_Year + arg_Month );
	//Empty Combo
	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;
//document.forma.mes_hasta.options[mes-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
    var mes_actual
	var opcion
	var blnFromLoad 
	
	//var mes = document.forma.mes_hasta.value;
	
	cleanSelect(document.forma.mes_hasta); 
	if(anio == intCurrentYear){	
		j = intCurrentMonth-1
	}	
	else{
		j = 0;	
	}
	intUntil = 11;
	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
	//var dia = document.forma.dia_hasta.value;
	//alert(arg_Year + arg_Month );
	//Empty Combo
	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;
//document.forma.mes_hasta.options[mes-1].selected = true;
}

// Added by VHDM
function fillDaysSelectTo(arg_Year, arg_Month, arg_Select, blnFromLoad)
{
    myDate.setDate(myDate.getDate() + 7);
    AssignDate(myDate);
    fillDaysSelect(arg_Year, arg_Month, arg_Select, blnFromLoad)
    
    myDate = new Date();
    AssignDate(myDate);
}

// Added by VHDM
function fillDaysSelectFrom(arg_Year, arg_Month, arg_Select, blnFromLoad)
{
    myDate.setDate(myDate.getDate() + 14);
    AssignDate(myDate);
    fillDaysSelect(arg_Year, arg_Month, arg_Select, blnFromLoad)
    
    myDate = new Date();
    AssignDate(myDate);
}

// Added by VHDM
function AssignDate(myDate)
{
    intSelectedYear  = myDate.getFullYear() + "";
    intSelectedMonth = (myDate.getMonth()+1) + "";
    intSelectedDay   = myDate.getDate() + "";
}
function fillDaysFreeSelect(arg_Year, arg_Month, arg_Select, blnFromLoad) {
    var i
    var j
    var k = 0
    var intUntil
    var ultimodia
    var dia = arg_Select.value;

    //Empty Combo
    cleanSelect(arg_Select);
    // j has the value for the first day
    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) && (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 fillDaysSelect(arg_Year, arg_Month, arg_Select, blnFromLoad){
    var i
	var j
	var k = 0
	var intUntil
	var ultimodia
	var dia = arg_Select.value;
	
	//Empty Combo
	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)&&(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;
	}
}

// Added by VHDM
function fillMonthsSelectTo(arg_Year, arg_Select, arg_DaySelect, blnFromLoad)
{
    myDate.setDate(myDate.getDate() + 7);
    AssignDate(myDate);
    fillMonthsSelect(arg_Year, arg_Select, arg_DaySelect, blnFromLoad)
    
    myDate = new Date();
    AssignDate(myDate);
}

// Added by VHDM
function fillMonthsSelectFrom(arg_Year, arg_Select, arg_DaySelect, blnFromLoad)
{
    myDate.setDate(myDate.getDate() + 14);
    AssignDate(myDate);
    fillMonthsSelect(arg_Year, arg_Select, arg_DaySelect, blnFromLoad)
    
    myDate = new Date();
    AssignDate(myDate);
}

function fillMonthsSelect(arg_Year, arg_Select, arg_DaySelect, blnFromLoad){
	var i
	var j
	var k = 0
	var dayDiff
	var intUntil
    var mes_actual
	var opcion
	var mes = arg_Select.value;

	cleanSelect(arg_Select); 
	if(arg_Year == intSelectedYear){	
		j = intSelectedMonth-1
	}	
	else{
		j = 0;	
	}
	intUntil = 11;
	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
    var k = 0
    var dayDiff
    var intUntil
    var mes_actual
    var opcion
    var mes = arg_Select.value;

    cleanSelect(arg_Select);
    j = 0;
    intUntil = 11;
    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){
i=0;
j=0;
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)
{
i=0;
j=0;
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()
  {  
   if (document.forma.Destino.value == "")
     {
     alert ("Seleccione un destino de la lista.");
	 return false;
	 }
   else
     {
	 return true;
     }
  }
  
  
  
//función que llena y ajusta los días.  Sólo 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;
	
	//Empty Combo
	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;
	}
	
	
}
