// JavaScript Document
// Functions for Guest Reservation Request Form
// Written, cobbled, and hacked by Avi Schwab

		var one = (1000*60*60*24);
		var today = new Date();	
		var dat = new Date(today.getTime() + one + one);
		dat.setHours('0','0','0','0');
		
		function GetDay(intDay){
			var DayArray = new Array("Sun", "Mon", "Tue", "Wed", 
								 "Thu", "Fri", "Sat")
			return DayArray[intDay]
		}
		
		function GetMonth(intMonth){
			var MonthArray = new Array("January", "February", "March",
									   "April", "May", "June",
									   "July", "August", "September",
									   "October", "November", "December") 
			return MonthArray[intMonth] 	  	 
		}
		function getDateStrWithDOW(){
			// Print date of the day after tomorrow
			var newDate = new Date(today.getTime() + one + one)
			var year = newDate.getYear()
			if(year<1000) year+=1900
			var dayStr = GetDay(newDate.getDay()) + ", "
			dayStr += GetMonth(newDate.getMonth()) + " " + newDate.getDate()
			dayStr += ", " + year
			return dayStr
		}
		
		function pageLoad(){
			// Set autocomplete OFF for all form elements to kill Firefox focus exception
			// https://bugzilla.mozilla.org/show_bug.cgi?id=236791
			var inputs = document.getElementsByTagName("INPUT");
        	for(var i=0; i<inputs.length; i++) {
                inputs[i].setAttribute('autocomplete', 'off');
        	}
			
			document.mainform.reset();
		}
		function isEmail(str) {
			// are regular expressions supported?
			var supported = 0;
			if (window.RegExp) {
			var tempStr = "a";
			var tempReg = new RegExp(tempStr);
			if (tempReg.test(tempStr)) supported = 1;
			}
			if (!supported) 
			return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
			var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
			var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
			return (!r1.test(str) && r2.test(str));
		}
		function checkData ()
		{

			if (document.getElementById("First_Name").value == "") {
			alert("Please fill in your first name.")
			document.getElementById("First_Name").focus()
			return false}
			
			if (document.getElementById("Last_Name").value == "") {
			alert("Please fill in your last name.")
			document.getElementById("Last_Name").focus()
			return false}
		   
			if (document.getElementById("Street_Address").value == "") {
			alert("Please fill in your address.")
			document.getElementById("Street_Address").focus()
			return false}
			
			if (document.getElementById("City").value == "") {
			alert("Please fill in your city.")
			document.getElementById("City").focus()
			return false}

			if (document.getElementById("State").options[document.getElementById("State").options.selectedIndex].value == "" 
				&& document.getElementById("Country").options[document.getElementById("Country").options.selectedIndex].value == "United States") {
			alert("Please pick a state.")
			document.getElementById("State").focus()
			return false}

			if (document.getElementById("Zip").value == "") {
			alert("Please fill in your zip code.")
			document.getElementById("Zip").focus()
			return false}

			if (document.getElementById("Email").value == "" || !isEmail(document.getElementById("Email").value)) {
			alert("Please fill in a valid email address.")
			document.getElementById("Email").focus()
			return false}
			
			document.mainform.email.value = document.getElementById("Email").value;

			if (document.getElementById("Day_Phone").value == "") {
			alert("Please fill in your phone number.")
			document.getElementById("Day_Phone").focus()
			return false}
			
			if (document.getElementById("Gender").value == "") {
			alert("Please select your gender.")
			document.getElementById("Gender").focus()
			return false}


			if (document.getElementById("dateDepart").value == "Click to set Departure Date" ||
				document.getElementById("dateArrive").value == "Click to set Arrival Date") {
			alert("Please choose an arrival and departure date.")
			document.getElementById("dateArrive").focus()
			return false}
				
			var comments = document.getElementById("Comments").value;
			if (comments != "") {
			comments = '\n\nComments: ' + comments;}
			
			var subj = document.getElementById("First_Name").value + ' ' + document.getElementById("Last_Name").value + ' Reservation Request';
			document.getElementById("subject").value = subj;
	
			document.mainform.Reservation.value = 
			'\n' + 'Thank you for your housing request. We will contact you within 48 hours to confirm your reservation and collect payment information for your ' + document.getElementById("Days").value 
			+ ' night(s) totaling $' + document.getElementById("Price").value + '.'
			+ '\n\n' + document.getElementById("First_Name").value 
			+ ' ' + document.getElementById("Last_Name").value 
			+ '\n' + document.getElementById("Street_Address").value 
			+ '\n' + document.getElementById("City").value 
			+ ', ' + document.getElementById("State").options[document.getElementById("State").options.selectedIndex].value 
			+ ' ' + document.getElementById("Zip").value 
			+ ' ' + document.getElementById("Country").options[document.getElementById("Country").options.selectedIndex].value 
			+ '\n\nEmail: ' + document.getElementById("Email").value 
			+ '\nPhone: ' + document.getElementById("Day_Phone").value 
			+ '\nGender: ' + document.getElementById("Gender").value
			+ '\n\nRequested Stay Dates: ' + document.getElementById("dateArrive").value 
			+ ' to ' + document.getElementById("dateDepart").value 
			+ '\nRoom Type: ' + document.getElementById("party").value
			+ ' ' + document.getElementById("roomType").value
			+ comments
			;

   			//alert(document.mainform.data.value + '.\nYour information will now be sent. Thank you.');        
         	
			var name=confirm(document.mainform.Reservation.value + '\n\nPlease note that until you contact our front desk by phone at 773-753-2270 to provide a valid Visa or Mastercard information, your reservation has not been confirmed.\n\nClick OK to send this information or Cancel to edit it. Thank you for making International House your home away from home.');
			
			//var name=confirm(document.mainform.Reservation.value + '\n\nClick OK to send this information or Cancel to edit it. Thank you for making International House your home away from home.');
			if (name==true) return true;

			return false;       
		}
//Scripts from below
		
		function priceCalc(){
			var price;
			if (document.getElementById("roomType").value == "Guest Room") 
			{ 
				if (document.getElementById("party").value == "Double")
				{
					if (document.getElementById("Days").value < 7)
						price = 80;
					else price = 70;
				}
				else
				{
					if (document.getElementById("Days").value < 7)
						price = 80;
					else price = 70;
				}
			}
			if (document.getElementById("roomType").value == "Dorm Room") 
			{ 
				if (document.getElementById("party").value == "Double")
				{
					alert("Double occupancy allowed in Guest Rooms only.");
					document.getElementById("roomType").value = "Guest Room";
					priceCalc();
					return false;
				}
				else
				{
					if (document.getElementById("Days").value < 7)
						price = 65;
					else price = 60;
				}
			}
			document.getElementById("Price").value = price * document.getElementById("Days").value;
			return true;
		}
		function catcalc(cal) {
			var date = cal.date;
			var time = date.getTime()
			
			// use the _other_ field
			var field = document.getElementById("dateDepart");
			if (field == cal.params.inputField) {
				field = document.getElementById("dateArrive");
			}
			if (field.value == "Click to set Departure Date" || Date.parse(field.value) <= time) {
			var date2 = new Date(time+one);
			field.value = date2.print("%a, %B %d, %Y"); }
			
			dayscalc();
		}	
		function dayscalc() {
			var arrGMT = Date.parse(document.getElementById("dateArrive").value);
			var depGMT = Date.parse(document.getElementById("dateDepart").value);

			var tempa = new Date();
			var tempd = new Date();
			tempa.setTime(arrGMT);
			tempd.setTime(depGMT);
			
			var arrive = Date.UTC(tempa.getUTCFullYear(),tempa.getUTCMonth(),tempa.getUTCDate());
			var depart = Date.UTC(tempd.getUTCFullYear(),tempd.getUTCMonth(),tempd.getUTCDate());
			
			if (depart < arrive) 
				{ 	//alert("Please enter a valid departure date.");
					return false;
				}
			
			var days = (depart - arrive) / one;

			document.getElementById("Days").value = days;
			priceCalc();
		}			
		function disableDates(date){
			//afterToday(date);
			var arr = document.getElementById("dateArrive");
			if (arr.value=="Click to set Arrival Date"){
				var newarr = getDateStrWithDOW();
				arr.value = newarr;
			}
			var arrive = Date.parse(arr.value);
			arrive += one;
			var day = date.getTime();
			//alert(arrive + " " + day);
			if (day < arrive) return true;
			else return false;
		} 
		function afterToday(date){			
			var arr = document.getElementById("dateArrive");
			if (arr.value=="Click to set Arrival Date"){
				var newarr = getDateStrWithDOW();
				arr.value = newarr;
			}
			var arrive = dat.getTime();
			var day = date.getTime();
			
			if (day < arrive) { return true;}
			else { return false;}
		}
		function when() { alert(today); }


	function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features); }
