// validation functions for /booking/dsp_hosteldetails.cfm; dsp_packages.cfm
// relies on 'today' (the current server date) being set by a script section earlier in the page


function addDays(dDate,days) {
    return new Date(dDate.getTime() + days*24*60*60*1000);
}

function availFormCheck(form,mlos,days,tqydts,tqydts1) {
	var	today = new Date();
	var	cmp_day
	cmp_day = today.getTime()+ tqydts*43200000
	if (form.starttime.value.length==0){
		alert("请输入入住时间!!!");
		form.starttime.focus();
		return false
	}	
	if(!isDate(form.starttime.value)){
		alert("入住时间不符合格式规范或无效的日期!");
		form.starttime.focus();
		return false
	}
	if(parseDate(form.starttime.value,true).getTime()<cmp_day)
	{
		alert("目前本站旅馆必须提前"+tqydts+"天预订，谢谢合作！!");
		form.starttime.focus();
		return false	
	}
	var ele = form.elements;
		// check the arrival date
	
	//var dVal = ele['days'].options[ele['days'].selectedIndex].value;
	//
	//if (dVal != days)
	//	days = dVal	
	//	
	//if (!isValidDate(ele['startday'].options[ele['startday'].selectedIndex].value,
	//		ele['startmonth'].options[ele['startmonth'].selectedIndex].value,
	//		ele['startyear'].options[ele['startyear'].selectedIndex].value)) {
	//	alert('Please select a valid arrival date.\n\nYou can book this hostel for arrivals between '+formatDate(today)+' and '+formatDate(maxdate));		
	//	return;
	//	}	
	//
	// check mlos against dates....
	//var date=new Date(ele['startyear'].options[ele['startyear'].selectedIndex].value,
	//		ele['startmonth'].options[ele['startmonth'].selectedIndex].value-1,
	//		ele['startday'].options[ele['startday'].selectedIndex].value);
	//var days=dVal;
	//for(ii=0;ii<days;ii++){
	//		if(ii>0)
	//			date=new Date(date.getTime()+24*60*60*1000);// up by 1 day
	//		if(aMlos[date] && aMlos[date]>days){
	//			alert('Sorry....\n\nThe minimum length of stay you can book over these dates is '+aMlos[date]+' nights.\n\nPlease check the \'bed availability\' section to see which days carry the minimum nights.');
	//			return false;
	//		}
	//	}
	// loop over the bed DDLs to see if any selects above 0
	// assumes options[0] is the 0 option	
	var ele = form.elements;
	for(ii=0;ii<ele.length;ii++)
		if (ele[ii].type == 'select-one' && ele[ii].name.indexOf('beds_') == 0 && ele[ii].selectedIndex > 0) {
			form.submit();
			return;
			}			
		alert ('请选择房间类型和人数');
	
}


function availFormCheck1(form,tqydts) {
	
	if (form.starttime.value.length==0){
		alert("请输入入住时间!!!");
		form.starttime.focus();
		return false
	}	
	if(!isDate(form.starttime.value)){
		alert("入住时间不符合格式规范或无效的日期!");
		form.starttime.focus();
		return false
	}
	
	var	today = new Date();
	var	cmp_day = new Date(today.getYear(),today.getMonth(),today.getDate()+tqydts);
	if(parseDate(form.starttime.value,true).getTime()<cmp_day.getTime())
	{
		alert("目前本旅馆必须提前"+tqydts+"天预订，谢谢合作！!");
		form.starttime.focus();
		return false	
	}

	var ele = form.elements;
	for(ii=0;ii<ele.length;ii++)
		if (ele[ii].type == 'select-one' && ele[ii].name.indexOf('beds_') == 0 && ele[ii].selectedIndex > 0) {
			form.submit();
			return;
			}			
		alert ('请选择房间类型和人数');
	
}


function formatDate(date) {
	var monthNames = new Array('January','February','March','April','May','June','July','August','September','October','November','December');
	var str = date.getDate()+' '+monthNames[date.getMonth()]+' '+date.getFullYear();
	return str;
}


function isValidDate(dd,mm,yy) {
	// take numeric day, month, year and see if it's a valid date
	if (mm == 2 && (yy % 4 == 0 && dd > 29 || yy % 4 > 0 && dd > 28))	
		return false; // days in February
	else if ((mm == 4 || mm == 6 || mm == 9 || mm == 11) && dd == 31)
		return false; // months with 30 days
		
	var date =  new Date(yy,mm-1,dd); // -1 cos Jan == 0
	
	if (Date.parse(date) < Date.parse(today) || Date.parse(date) > Date.parse(maxdate))
	// date in the past or too far in the future?
		return false;
	
	return true;
}
