function isLeapYear(yrStr) {
	var leapYear=false;
	var year = parseInt(yrStr, 10);
	// every fourth year is a leap year
	if (year%4 == 0) {
		leapYear=true;
		// unless it's a multiple of 100
		if (year%100 == 0) {
			leapYear=false;
			// unless it's a multiple of 400
			if (year%400 == 0) {
				leapYear=true;
			}
		}
	}
	return leapYear;
}

function getDaysInMonth(mthIdx, YrStr) {
	// default number of days is 31
	var maxDays=31
	// Feb has 28 or 29
	if (mthIdx==1) {
		if (isLeapYear(YrStr)) {
			maxDays=29;
		} else {
		maxDays=28;
		}
	}
	// Apr, Jun, Sep, and Nov have 30
	if (mthIdx==3 || mthIdx==5 || mthIdx==8 || mthIdx==10) {
		maxDays=30;
	}
	return maxDays;
}

// adjusts the number of days in the month for the selected month
// and returns non-zero if it is the last day of the month
function adjustDate(mthIdx, Dt, Yt) {
	var value=0;
	var theYear=Yt.options.value;
	var numDays=getDaysInMonth(mthIdx, theYear);
	if (mthIdx==1) {
		if (Dt.options.selectedIndex + 1 < numDays) {
			return 0;
		} else {
			Dt.options.selectedIndex=numDays - 1;
			//check for leap year
			if (numDays==29) {
				return 99;
			} else {
			return 1;
			}
        }
    }
	if (Dt.options.selectedIndex + 1 < numDays) {
		value=0;
	} else {
		if (Dt.options.selectedIndex + 1 > numDays) {
			Dt.options.selectedIndex--;
			value=3;
		} else {
			//index is 31 or 30
			value=2;
		}
	}
return value;
}

//changes departure month when arrival month is changed
function amadChange(inM,inD,inY,outM,outD,outY) {
	var res = adjustDate(inM.options.selectedIndex, inD, inY);
	if (res != 0) {
		outD.options.selectedIndex=0;
		outY.options.selectedIndex = inY.options.selectedIndex;
		if (outM.options.selectedIndex==11) {
			outM.options.selectedIndex=0
		} else {
			outM.options.selectedIndex=inM.options.selectedIndex + 1;
		}
	} else {
		outM.options.selectedIndex = inM.options.selectedIndex;
		outD.options.selectedIndex = inD.options.selectedIndex+1;
		outY.options.selectedIndex = inY.options.selectedIndex;
	}
	if ( ( inM.options.selectedIndex == 11 ) && ( inD.options.selectedIndex == 30 ) ) {
		outY.options.selectedIndex = inY.options.selectedIndex+1;
	}
	return;
}

//Weekday Array
var wdArray = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");

//Nights Text
var nightTxt = " night";
var nightsTxt = " nights";

//set weekdays
function setWkd(form) {
	for (var i = 0; i < form.doa_yy.length; i++) {
		if (form.doa_yy.options[i].selected)
		var fyear = form.doa_yy.options[i].text;
		if (form.dod_yy.options[i].selected)
		var tyear = form.dod_yy.options[i].text;
	}
	var checkinDate = new Date(fyear,form.doa_mm.selectedIndex,form.doa_dd.selectedIndex+1);
	var checkoutDate = new Date(tyear,form.dod_mm.selectedIndex,form.dod_dd.selectedIndex+1);

	form.inWd.value = "(" + wdArray[checkinDate.getDay()] + ")";
	form.outWd.value = "(" + wdArray[checkoutDate.getDay()] + ")";

	var numNights = Math.round((checkoutDate - checkinDate) / 86400000);

	if (numNights < 1) numNights = "?????";
    else if (numNights == 1) numNights += nightTxt;
    else numNights += nightsTxt;

	form.lengthStay.value = numNights;
}

//Set form data to defaults or session values on home page load
function loadSession(form,dam,dad,day,ddm,ddd,ddy,hot,ads,chi,rms) {
	curDate = new Date();
	curDay = curDate.getDate();
	curMonth = curDate.getMonth();
	curYear = curDate.getFullYear();
	setYear = curYear - form.dod_yy.options[0].text;
	
	if (curDay >= 28) {
		form.doa_dd.selectedIndex = 0;
		if (curMonth == 11) {
			form.doa_mm.selectedIndex = 0;
			form.doa_yy.selectedIndex = setYear+1;
			form.dod_yy.selectedIndex = setYear+1;
		} else if (curDay >= 28) {
			form.doa_mm.selectedIndex = curMonth+1;
			form.doa_yy.selectedIndex = setYear;
			form.dod_yy.selectedIndex = setYear;
		}
	} else if (curDay < 28) {
		form.doa_dd.selectedIndex = curDay+2;
		form.doa_mm.selectedIndex = curMonth;
		form.doa_yy.selectedIndex = setYear;
		form.dod_yy.selectedIndex = setYear;
	}
	amadChange(form.doa_mm, form.doa_dd, form.doa_yy, form.dod_mm, form.dod_dd, form.dod_yy);
	
	if(dam!=0)
	form.doa_mm.value=dam;
	if(dad!=0)
	form.doa_dd.value=dad;
	if(day!=0)
	form.doa_yy.value=day;
	if(ddm!=0)
	form.dod_mm.value=ddm;
	if(ddd!=0)
	form.dod_dd.value=ddd;
	if(ddy!=0)
	form.dod_yy.value=ddy;
	form.hotels_id.value=hot;
	form.num_adults.value=ads;
	form.num_children.value=chi;
	form.num_rooms.value=rms;
}

// adjusts the number of days in the month for the selected month
// and returns non-zero if it is the last day of the month
// when year is not specified (rental car page)
function adjustCarDate( mthIdx, Dt ) {
	var value = 0;
	var today = new Date()
	var theYear = parseInt( today.getYear(), 10 )

	if ( mthIdx < today.getMonth() ) {
		theYear = ( parseInt( today.getYear(), 10 ) + 1 )
	}
	if ( theYear < 100 ) {
		theYear = "19" + theYear
	} else {
		if ( ( theYear - 100 ) < 10 ) {
			theYear = "0" + ( theYear - 100 )
		} else {
			theYear = ( theYear - 100 ) + ""
		}
            theYear = "20" + theYear
	}

	var numDays = getDaysInMonth( mthIdx, theYear );

	if ( mthIdx == 1 ) {
		if ( Dt.options.selectedIndex + 2 < numDays ) {
			return 0;
		} else {
			if ( Dt.options.selectedIndex + 1 > numDays) {
				Dt.options.selectedIndex=numDays - 1;
			}
			//check for leap year
			if ( (Dt.options.selectedIndex + 1) == numDays ) {
 				return 1;
			} else {
				return 4;
			}
		}
	}

	if ( Dt.options.selectedIndex + 2 < numDays ) {
		value = 0;
	} else {
		if ( Dt.options.selectedIndex + 1 > numDays ) {
			Dt.options.selectedIndex--;
			value = 3;
		} else if ( Dt.options.selectedIndex + 1 == numDays ) {
			//index is 31 or 30
			value = 2;
		} else {
			value = 4;
		}
	}
	return value;
}

//changes departure month when arrival month is changed -- no year (rental car page)
function amadCarChange(inM, inD, outM, outD) {
	var res = adjustCarDate(inM.options.selectedIndex, inD);
	if ( res != 0 ) {
		outD.options.selectedIndex = 0;
		if ( inM.options.selectedIndex == 11 ) {
			outM.options.selectedIndex = 0
		} else if( res == 4 ) {
			outM.options.selectedIndex=inM.options.selectedIndex + 1;
			outD.options.selectedIndex = 0;
		} else {
			outM.options.selectedIndex=inM.options.selectedIndex + 1;
			outD.options.selectedIndex = 1;
		}
	} else {
		outM.options.selectedIndex = inM.options.selectedIndex;
		if (outD.options.selectedIndex <= inD.options.selectedIndex) {
			outD.options.selectedIndex = inD.options.selectedIndex + 2;
		}
	}
	return;
}

//Set current dates on rental car page load
function loadCarDates(form) {
	curDate = new Date();
	curDay = curDate.getDate();
	curMonth = curDate.getMonth();

	if (curDay >= 28) {
		form.pu_day.selectedIndex = 0;
		if (curMonth == 11) {
			form.pu_month.selectedIndex = 0;
		} else if (curDay >= 28) {
			form.pu_month.selectedIndex = curMonth+1;
		}
	} else if (curDay < 28) {
		form.pu_day.selectedIndex = curDay+2;
		form.pu_month.selectedIndex = curMonth;
	}
	amadCarChange(form.pu_month, form.pu_day, form.do_month, form.do_day);
}

function trim(str) {
	return str.replace(/^\s*|\s*$/g,"");
} 

function l_validation() {
	var docf=document.frm;
	if(trim(docf.login.value)==""){
					alert("Please enter login");
					docf.login.focus()
					return false;
	}
	if( trim(docf.password.value)=="")
    {
	  alert("Please enter Password");
	  docf.password.focus();
	  return false;
	}
return true;	 
}

function e_validation() {
	var docf=document.frm;
	if(trim(docf.login.value)==""){
					alert("Please enter login");
					docf.login.focus()
					return false;
	}
return true;	 
}