function CarvalidateCities() {
	var f = getCarEntryForm();
	var checkstr = "";
	//Verificar ciudad
	if (f.td_A_City.value=="") {
		checkstr += "Introduce una ciudad destino\n";
	} else {
		f.td_A_City.value = Carcity(f.td_A_City.value);
	}
	return checkstr;
}

function CarvalidatePassengers() {
	var f = getCarEntryForm();
	var checkstr = "";
	var numAdults = f.td_select_adt?f.td_select_adt.selectedIndex:0;
	var numChilds = f.td_select_chd?f.td_select_chd.selectedIndex:0;
	var numOlds = 0;
   	var numTotal = 0 + numAdults + numChilds + numOlds;

	if (numTotal == 0) {
		checkstr += "Tienes que seleccionar las personas que van a viajar.\n";
	} else if (numTotal > 9) {
		checkstr += "Solo puede reservar un máximo de 9 plazas.\n";
	}
	return checkstr;
}

function CarvalidateActualDate() {
	var f = getCarEntryForm();
	var myDate = new Date();
	var checkstr = "";
	if (Number(f.td_D_Month[f.td_D_Month.selectedIndex].value.substring(4)) == myDate.getMonth()+1 && Number(f.td_D_Day[f.td_D_Day.selectedIndex].value) < myDate.getDate()) {
		checkstr = "No puede hacer busquedas en dias anteriores a hoy";
	}
	return checkstr;
}

function Carcity(v) {
	i=v.indexOf("(");
	j=v.lastIndexOf(")");
	if (j-i==4) return v.substring(i+1,j);
	return v;
}

function doCarSearch(tipo) {
	var f = getCarEntryForm();

	var checkstr = "";
	checkstr += CarvalidateCities();

//	checkstr += validatePassengers();

	checkstr += CarvalidateActualDate();

	var myDate = new Date();
	if (Number(f.td_D_Month.value.substring(4)) == (myDate.getMonth() + 1) && Number(f.td_D_Day.value) <= (myDate.getDate() + 2)) {
		alert("Recuerda que sólo podrás hacer reservas con, al menos, 2 días antes del día de la entrada al hotel");
		return;
	}

	if(checkstr!=""){
		alert(checkstr);
		return;
	}

	if ( tipo == 1 ) //ebookers
	{
		f.td_guess.value = f.td_A_City.value;
        f.td_pick_up_day.value = f.td_D_Day.value;
        f.td_drop_off_day.value = f.td_R_Day.value;
		tempmes = f.td_D_Month.value.substring(4,6);
        f.td_pick_up_month.value = tempmes;
		tempmes = f.td_R_Month.value.substring(4,6);
        f.td_drop_off_month.value = tempmes;
		f.submit();
	}
	else if ( tipo == 2 ) //Hert?
	{
		window.document.form1.PickupLoc_Keyword.value = f.td_A_City.value;
		window.document.form1.Pday.value = f.td_D_Day.value;
		window.document.form1.Rday.value = f.td_R_Day.value;
		window.document.form1.Phour.value = f.td_pick_up_hour.value;
		window.document.form1.Rhour.value = f.td_drop_off_hour.value;
		window.document.form1.Pminute.value = f.td_pick_up_min.value;
		window.document.form1.Rminute.value = f.td_drop_off_min.value;
		tempmes = f.td_D_Month.value.substring(4,6);
		tempanyo = f.td_D_Month.value.substring(0,4);
		window.document.form1.Pmoyr.value = tempmes+tempanyo;
		tempmes = f.td_R_Month.value.substring(4,6);
		tempanyo = f.td_R_Month.value.substring(0,4);
		window.document.form1.Rmoyr.value = tempmes+tempanyo;
		window.document.form1.submit();

	}
	else if ( tipo == 3 ) //recordrentacar
	{
		window.document.recordrentacar.submit();
	}
}

function CargetDaysMonth(month, year){
	var arrDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	if(isLeapYear(year) && month==1) return 29;
	else return arrDays[month];
}

function getMes(m) {
	var arrMonthNames = ["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"];
	return arrMonthNames[m];
}

function CarcompleteDays2(comboType){
	var f = getCarEntryForm();

	var size = eval("f.td_" + comboType + "_Day.length;");
	for (var i=size; i >= 0;i--) {
		eval("f.td_" + comboType + "_Day.options[" + i +"] = null;");
	}

	var month = eval("f.td_" + comboType + "_Month[f.td_" + comboType + "_Month.selectedIndex].value.substring(4) - 1;");
	var year = eval("f.td_" + comboType + "_Month[f.td_" + comboType + "_Month.selectedIndex].value.substring(0,4);");

	var numDays = CargetDaysMonth(month, year);

	//rellenar dias
	for (var i=1;i< numDays+1;i++) {
		var newDay = new Option(i,(i<10?"0"+i:i));
		eval("f.td_" + comboType + "_Day[f.td_" + comboType + "_Day.length] = newDay;");
	}
}

function CarcompleteMonths2() {
	var myDate = new Date();

	var f = getCarEntryForm();

	for (var i=0; i < 10;i++) {
		f.td_D_Month.options[0] = null;
		f.td_R_Month.options[0] = null;
	}

	for (var i=0;i<10;i++) {
		var monthIndex = myDate.getMonth()+i <= 11?myDate.getMonth()+i:myDate.getMonth()+i-12;
		var strMonth = getMes(monthIndex);
		var year = (myDate.getMonth() > monthIndex?myDate.getFullYear()+1:myDate.getFullYear());
		var newMonthD = new Option(strMonth + " " + year,year+""+((monthIndex+1)<10?"0"+(monthIndex+1):(monthIndex+1)));
		var newMonthR = new Option(strMonth + " " + year,year+""+((monthIndex+1)<10?"0"+(monthIndex+1):(monthIndex+1)));
		f.td_D_Month[f.td_D_Month.length] = newMonthD;
		f.td_R_Month[f.td_R_Month.length] = newMonthR;
	}
}
function CarinitDate(initDays) {
	var myDate = new Date();
	var f = getCarEntryForm();
	CarcompleteMonths2();
	CarcompleteDays2("D");
	CarcompleteDays2("R");

	var initDMonth = myDate.getMonth();
	var initRMonth = myDate.getMonth();
	var initDDay = myDate.getDate() + initDays;
	//Si pasamos del maximo de dias del mes actual
	if (initDDay > f.td_D_Day.options.length) {
		initDDay = initDDay - f.td_D_Day.options.length;
		initDMonth = initDMonth + 1;
		initRMonth = initRMonth + 1;
	}

	var daysToNextSunday;
	var dayWeek = myDate.getDay()+initDays;
	if (dayWeek > 7) dayWeek = dayWeek - 7;
	daysToNextSunday = 7 - dayWeek;
	if (daysToNextSunday == 0) daysToNextSunday = 7;

	var initRDay = initDDay + daysToNextSunday;
	if (initRDay > f.td_R_Day.options.length) {
		initRDay = initRDay - f.td_R_Day.options.length;
		initRMonth = initRMonth + 1;
	}
	//Le sumamos uno a los initMonths, ya que el 0 corresponde a enero
	CarsetDateCalendar(initDDay,initDMonth+1,"D",false);
	CarsetDateCalendar(initRDay,initRMonth+1,"R",false);
	CarchangeDateField2("D");
	CarchangeDateField2("R");
}


function CarCheck(){
	var f=document.forms['AIR_ENTRY_FORM'];
		var dYearMonthValue = f.td_D_Month.options[f.td_D_Month.selectedIndex].value;
		var dDayValue = f.td_D_Day.options[f.td_D_Day.selectedIndex].value;
		var dTimeIndex = f.td_D_Time.selectedIndex;

		var departureDate = new Date(dYearMonthValue.substring(0,4), parseInt(dYearMonthValue.substring(4,6))-1, dDayValue, dTimeIndex-1, 0, 0);
	var today=new Date();
	today.setTime(today.getTime()+(1000*60*60*24*3));
	today.setHours(7);
	alert(departureDate);
	alert(today);
	if(departureDate < today)
	{
		if(!confirm("Recuerda que sólo podrás hacer reservas con, al menos, 3 días de antelación al día de viaje"))
			return false;
	}
	return true;
}

function getCarEntryForm() {

	var f;
	if (navigator.userAgent.indexOf("MSIE") >= 0) {
		for (var i=0;i < document.forms.length;i++) {
			if (document.forms[i].name == "CAR_ENTRY_FORM") {
				f=document.forms[i];
			}
		}
	} else {
		f=document.forms["CAR_ENTRY_FORM"];
	}

	return f;
}

function CarchangeDateField2(dateType){
	var f = getCarEntryForm();
	eval("f.td_" + dateType + "_Date.value = f.td_" + dateType + "_Day.value + '/' + f.td_" + dateType + "_Month.value.substring(4) + '/' + f.td_" + dateType + "_Month.value.substring(0,4);");
}

function isLeapYear (year) {
    var leapYear = false;
    if ((year % 400) == 0) {
        leapYear = true;
    } else if ((year % 100) == 0) {
        leapYear = false;
    } else if ((year % 4) == 0) {
        leapYear = true;
    } else {
        leapYear =false;
    }
    return leapYear;
}


function CargetDaysMonth(month, year){
	var arrDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	if(isLeapYear(year) && month==1) return 29;
	else return arrDays[month];
}


function CarcompleteDays2(comboType){
	var f = getCarEntryForm();

	var size = eval("f.td_" + comboType + "_Day.length;");
	for (var i=size; i >= 0;i--) {
		eval("f.td_" + comboType + "_Day.options[" + i +"] = null;");
	}

	var month = eval("f.td_" + comboType + "_Month[f.td_" + comboType + "_Month.selectedIndex].value.substring(4) - 1;");
	var year = eval("f.td_" + comboType + "_Month[f.td_" + comboType + "_Month.selectedIndex].value.substring(0,4);");

	var numDays = CargetDaysMonth(month, year);

	//rellenar dias
	for (var i=1;i < numDays+1;i++) {
		var newDay = new Option(i,(i<10?"0"+i:i));
		eval("f.td_" + comboType + "_Day[f.td_" + comboType + "_Day.length] = newDay;");
	}
}

function CarsetDateCalendar(day, month, typeDate, blnChangeOtherDate){
	var f = getCarEntryForm();
	month = Number(month);
	day = Number(day);
	cmbDay = eval("f.td_"+typeDate+"_Day");
	cmbMonth = eval("f.td_"+typeDate+"_Month");
	cmbDate = eval("f.td_"+typeDate+"_Date");
	year = Number(cmbMonth.value.substring(0,4));

	for (var i=0;i < cmbMonth.options.length;i++){
		if (Number(cmbMonth.options[i].value.substring(4)) == month) {
			cmbMonth.selectedIndex = i;
		}
	}

	//Si cambia el numero de dias que tiene el mes rellenamos de nuevo el combo
	if (CargetDaysMonth(month-1, year) != cmbDay.options.length) {
		CarcompleteDays2(typeDate);
	}
	if (day-1 >= cmbDay.options.length) {
		cmbDay.selectedIndex = cmbDay.options.length-1;
	} else {
		cmbDay.selectedIndex = day-1;
	}
	CarchangeDateField2(typeDate);

	var dDate = f.td_D_Month.value.substring(0,4) + f.td_D_Month.value.substring(4) + f.td_D_Day.value;
	var rDate = f.td_R_Month.value.substring(0,4) + f.td_R_Month.value.substring(4) + f.td_R_Day.value;

	if (blnChangeOtherDate){
		if ("D" == typeDate && dDate > rDate) {
			if (f.td_D_Day.selectedIndex == f.td_D_Day.options.length - 1) {
				month = month + 1;
				day = 1;
			} else {
				day = day + 1;
			}
			CarsetDateCalendar(day,month,"R",false);
		} else if ("R" == typeDate && rDate < dDate) {
			CarsetDateCalendar(day,month,"D",false);
		}
	}
}
function CarsetCmbDate(typeDate, blnChangeOtherDate){
	var f = getCarEntryForm();

	cmbDay = eval("f.td_"+typeDate+"_Day");
	cmbMonth = eval("f.td_"+typeDate+"_Month");
	cmbDate = eval("f.td_"+typeDate+"_Date");

	var day = Number(cmbDay.value);
	var month = Number(cmbMonth.value.substring(4));

	CarsetDateCalendar(day,month,typeDate,blnChangeOtherDate);
}
