﻿function checkDate(){
	document.availForm.submit.disabled = true;
	var datePattern = /(0[1-9]|1[012])[\./](0[1-9]|[12][0-9]|3[01])[\./]20\d\d/
	var dateToCheck = document.availForm.in_date.value
	if (dateToCheck.search(datePattern) == -1){
		alert("The check-in date supplied is not valid! Please enter a valid date in MM/DD/YYYY format.");
		document.availForm.submit.disabled = false;
		return (false);
	}
	var dateArray = dateToCheck.split("/");
	var in_month = dateArray[0];
	var in_day = dateArray[1];
	var in_year = dateArray[2];
	var now = new Date()
	var todaysYear = now.getFullYear();
	var todaysMonth = now.getMonth() + 1;
	var todaysDay = now.getDate();
	if (in_year > todaysYear) {
		var good_in = true;
	} else if ((in_year==todaysYear) && (in_month > todaysMonth)) {
		var good_in = true;
	} else if ((in_year==todaysYear) && (in_month==todaysMonth) && (in_day >= todaysDay)) {
		var good_in = true;
	} else {
		alert("The check-in date supplied is in the past! Please try again.");
		document.availForm.submit.disabled = false;
		return (false);
	}
	var dateToCheck = document.availForm.out_date.value
	if (dateToCheck.search(datePattern) == -1){
		alert("The check-out date supplied is not valid! Please enter a valid date in MM/DD/YYYY format.");
		document.availForm.submit.disabled = false;
		return (false);
	}
	var dateArray = dateToCheck.split("/");
	var out_month = dateArray[0];
	var out_day = dateArray[1];
	var out_year = dateArray[2];
	if (out_year > todaysYear) {
		var good_out = true;
	} else if ((out_year==todaysYear) && (out_month > todaysMonth)) {
		var good_out = true;
	} else if ((out_year==todaysYear) && (out_month==todaysMonth) && (out_day >= todaysDay)) {
		var good_out = true;
	} else {
		alert("The check-out date supplied is in the past! Please try again.");
		document.availForm.submit.disabled = false;
		return (false);
	}
	if ((good_out) && (good_in)) {
		if (out_year > in_year) {
			var good_check = true;
		} else if ((out_year==in_year) && (out_month > in_month)) {
			var good_check = true;
		} else if ((out_year==in_year) && (out_month==in_month) && (out_day >= in_day)) {
			var good_check = true;
		} else {
			alert("The check-out date supplied is before the check-in date supplied! Please try again.");
			document.availForm.submit.disabled = false;
			return (false);
		}
		
		return (true);
	}
}

function checkEmailAddress(emailAddress){
	var allowed = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.@-_";
	var emailLength = emailAddress.length;
	var atSignPosition = 0;
	var finalDotPosition = 0;
	var numberOfDots = 0;
	var numberOfAtSigns = 0;
	if (emailLength < 5){
		return false;
	}
	for (i = 0; i < emailLength ;i ++){
		if (allowed.indexOf(emailAddress.charAt(i))<0){
			return (false);
		}
		if ((emailAddress.charAt(i)) == "@"){
			numberOfAtSigns ++;
			atSignPosition = i;
		} else {
			if ((emailAddress.charAt(i)) == "."){
				numberOfDots ++;
				finalDotPosition = i;
			}
		}
	}
	if (numberOfDots == 0){
		return (false);
	}
	if (numberOfAtSigns != 1){
		return (false);
	}
	if (atSignPosition > finalDotPosition){
		return (false);
	}
	if (finalDotPosition == (emailLength-1)){
		return (false);
	}
	return (true);
}

function checkPhone(phone) {
	var allowed = "0123456789";
	var stripedPhone = phone.replace(/\D+/g,"");
	var stripedPhoneLength = stripedPhone.length;
	if (stripedPhoneLength != 10) {
		return false;
	}
	return (true);
}
function checkMessageField(emailMessage){
	var notAllowed = "http";
	var messageField = emailMessage;
	if (messageField.indexOf(notAllowed) != -1){
		return (false);
	}
	return (true);
}
function checkContactForm(){
	document.contactForm.send.disabled = true;
	if (document.contactForm.name.value == ""){
		alert ('Please enter your name.');
		document.contactForm.name.focus();
		document.contactForm.send.disabled = false;
		return false;
	}
	if (document.contactForm.email.value == ""){
		alert ('Please enter your Email address.');
		document.contactForm.email.focus();
		document.contactForm.send.disabled = false;
		return false;
	}
	if (document.contactForm.phone.value == ""){
		alert ('Please enter your contact number.');
		document.contactForm.phone.focus();
		document.contactForm.send.disabled = false;
		return false;
	}
	if (checkPhone(document.contactForm.phone.value)==false) {
		alert ('Please enter a valid 10 digit Phone numner. (555)555-1234');
		document.contactForm.phone.focus();
		document.contactForm.send.disabled = false;
		return false;
	}
	if (checkEmailAddress(document.contactForm.email.value)==false){
		alert ('Please enter a valid Email address.');
		document.contactForm.email.focus();
		document.contactForm.send.disabled = false;
		return false;
	}
	if (document.contactForm.message.value == ""){
		alert ('Please tell us how we can help you.');
		document.contactForm.message.focus();
		document.contactForm.send.disabled = false;
		return false;
	}
	if (checkMessageField(document.contactForm.message.value)==false){
		alert ('Your message looks like spam! Please remove the http:// part of the web address in your message.');
		document.contactForm.message.focus();
		document.contactForm.send.disabled = false;
		return false;
	}
	return true;
}

