// JavaScript Document
	var wDay = new Array('dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb');
	var MKey = new Array(1,4,4,0,2,5,0,3,6,1,4,6);
function weekDay(type) {
		var f = document.forms[0];
		Day2 = eval("f." + type + "_Day");
		YearMonth2 = eval("f." + type + "_YearMonth");
		Week2 = eval("f." + type + "_week");
		var day = parseFloat(Day2.value);
		var YearMonth =  YearMonth2.value;
		var month = parseFloat(YearMonth.substr(4,2)) - 1;
		var year = parseFloat(YearMonth.substr(2,2));
		var N = day + MKey[month] + year;
		var M = N%7;
		Week2.value = wDay[M];
	}

function validateNights() {
	var f = document.forms[0];
	var checkstr = "";
	if (f.Nights.value=="00") {
		checkstr += "- El número de noches no puede ser 0.\n";
	} else
		if (f.Nights.value=="31") {
		checkstr += "- El número de noches no puede ser mayor a 30.\n";
	}
	return checkstr;
}

function validateCities() {
	var f = document.forms[0];
	var checkstr = "";
	if (f.D_City.value=="") {
		checkstr += "- Selecciona una ciudad de destino.\n";
	}
	return checkstr;
}

function validatePassengers() {
	var f = document.forms[0];
	var checkstr = "";
	var numAdults = Number(f.adt1.value);
	var numChilds = Number(f.chd1.value);
    var numTotal = 0 + numAdults + numChilds;
	if (numTotal == 0) {
		checkstr += "- Tienes que seleccionar las personas que van a viajar.\n";
	} else if (numTotal > 4) {
		checkstr += "- No puede haber más de 4 personas por habitación.\n";
	}
	return checkstr;
}

function validateActualDate() {
	var f = document.forms[0];
	var myDate = new Date();
	var checkstr = "";
	if (Number(f.D_YearMonth[f.D_YearMonth.selectedIndex].value.substring(4)) == myDate.getMonth()+1 && Number(f.D_Day[f.D_Day.selectedIndex].value) < myDate.getDate()) {
		checkstr = "- No puede hacer busquedas en dias anteriores a hoy";
	}
	return checkstr;
}

function doFlightSearch() {
	var f = document.forms[0];

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

	checkstr += validatePassengers();	

	checkstr += validateActualDate();
	
	checkstr += validateNights();

	if(checkstr!=""){
		alert(checkstr);
		return false;
	} else {
		openTarget (f, 'width=800,height=300,left=10,top=10,resizable=1,scrollbars=1');	
		return true;}

	var myDate = new Date();
	if (Number(f.D_YearMonth.value.substring(4)) == (myDate.getMonth() + 1) && Number(f.D_Day.value) <= (myDate.getDate() + 3)) {
		if(!confirm("Recuerda que sólo podrás hacer reservas con, al menos, 3 días antes del día de la salida del viaje")) {
			return false;
		}
	}
}

function openTarget (form, features, windowName) {
	if (!windowName)
    	windowName = 'formTarget' + (new Date().getTime());
  	form.target = windowName;
  	open ('', windowName, features);
}


function getDaysMonth(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 completeDays2(comboType){
	var f = document.forms[0];

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

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

	var numDays = getDaysMonth(month, year);	

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


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

	var f = document.forms[0];

	for (var i=0; i < 10;i++) {	
		f.D_YearMonth.options[0] = null;
		f.R_YearMonth.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.D_YearMonth[f.D_YearMonth.length] = newMonthD;
		f.R_YearMonth[f.R_YearMonth.length] = newMonthR;
	}
}


function initDate(initDays) { 
	var myDate = new Date(); 
	var f = document.forms[0];	
	completeMonths2();	
	completeDays2("D");	
	completeDays2("R");	

	var initDMonth = myDate.getMonth();
	var initRMonth = myDate.getMonth();
	var initDDay = myDate.getDate() + initDays;	
	if (initDDay > f.D_Day.options.length) {
		initDDay = initDDay - f.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.R_Day.options.length) {
		initRDay = initRDay - f.R_Day.options.length;
		initRMonth = initRMonth + 1;
	}

	setDateCalendar(initDDay,initDMonth+1,"D",false);	
	setDateCalendar(initRDay,initRMonth+1,"R",false);
	changeDateField2("D");
	changeDateField2("R");
	setNights();
}

function changeDateField2(dateType){
	var f = document.forms[0];
	eval("f." + dateType + "_Date.value = f." + dateType + "_Day.value + '/' + f." + dateType + "_YearMonth.value.substring(4) + '/' + f." + dateType + "_YearMonth.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 getDaysMonth(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 completeDays2(comboType){
	var f = document.forms[0];

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

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

	var numDays = getDaysMonth(month, year);

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

function setDateCalendar(day, month, typeDate, blnChangeOtherDate){
	var f = document.forms[0];
	month = Number(month); 
	day = Number(day);
	cmbDay = eval("f."+typeDate+"_Day");
	cmbMonth = eval("f."+typeDate+"_YearMonth");
	cmbDate = eval("f."+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;
		}
	}

	if (getDaysMonth(month-1, year) != cmbDay.options.length) {
		completeDays2(typeDate);
	}
	if (day-1 >= cmbDay.options.length) {
		cmbDay.selectedIndex = cmbDay.options.length-1;
	} else {
		cmbDay.selectedIndex = day-1;
	}
	changeDateField2(typeDate);

	var dDate = f.D_YearMonth.value.substring(0,4) + f.D_YearMonth.value.substring(4) + f.D_Day.value;
	var rDate = f.R_YearMonth.value.substring(0,4) + f.R_YearMonth.value.substring(4) + f.R_Day.value;

	if (blnChangeOtherDate){ 	
		if ("D" == typeDate && dDate > rDate) {
			if (f.D_Day.selectedIndex == f.D_Day.options.length - 1) {
				month = month + 1;
				day = 1;
			} else {
				day = day + 1;
			}
			setDateCalendar(day,month,"R",false);
		} else if ("R" == typeDate && dDate > rDate) {
			setDateCalendar(day,month,"D",false);
		}
	}
}

function setDateFromNights() {
	var f = document.forms[0];
	var Dday = Number(f.D_Day.value);
	var Dmonth = Number(f.D_YearMonth.value.substring(4)); 
	var nights = Number(f.Nights.selectedIndex);
	var diasMes = Number(f.D_Day.options.length);
	var diaD = Number(f.D_Day.selectedIndex);
	if ((Dday + nights) > diasMes) {
		Dmonth = Dmonth + 1;
		Dday = Dday + nights - diasMes;
		} else {
			Dday = Dday + nights;
		}
		setDateCalendar(Dday,Dmonth,"R",false);
}


function setNights() {
	var f = document.forms[0];
	var dDate = f.D_Day.value;
	var rDate = f.R_Day.value;
	var D_month = Number(f.D_YearMonth.value.substring(4));
	var R_month = Number(f.R_YearMonth.value.substring(4));
	var offset = Number((R_month - D_month)*f.D_Day.options.length);
	var i=0;
	if (D_month == R_month) {
	i = rDate - dDate;
	f.Nights.selectedIndex = i; 
	} else if ((i = rDate - dDate + offset) < 31) {		
		f.Nights.selectedIndex = i;
	} else {
		f.Nights.selectedIndex = 31;
	}
}

function setCmbDate(typeDate, blnChangeOtherDate){
	var f = document.forms[0];

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

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

	setDateCalendar(day,month,typeDate,blnChangeOtherDate);
	setNights();
}