	function Validate(){
		var result=new Boolean;
		var errors = new String; var strCCDate;
		var ccdate;
		
		result=true;
		errors="";
		

		if (Form1.NameOnCard.value==""){
			errors += "You must enter the Name on Card" ;
		}
		if (Form1.Number.value==""){
			errors += "You must enter your Credit Card Number\n";
		}
		if (!ValidateCard(Form1.Number.value,Form1.CardType.value)){
			errors += "Your Credit Card Number is NOT valid\n";
		}
		if (Form1.ExpiresMonth.value==""){
			errors += "You must enter the expiration Month of your Credit Card\n";
		}
		if (Form1.ExpiresYear.value==""){
			errors += "You must enter the expiration Year of your Credit Card\n";
		}
			
		strCCDate = "1/" + Form1.ExpiresMonth.value + "/" + Form1.ExpiresYear.value;
		ccdate = new Date(strCCDate);
		if (isNaN(ccdate)){
			errors += "The expiration date of your Credit Card is not valid, please be sure you enter the date in mm/yyyy format.";
		}
			
		if (errors !=""){
			window.alert(errors);
			result=false;
		}
		
		
		return result;
	}

	function validateForm(theForm){
		var returnValue = true;
		var errMessage = "";
			
		if(theForm.contact_name.value == ""){
			errMessage += "Please enter your name.\n";
			returnValue = false;
		}
			
		if(theForm.contact_email.value == ""){
			errMessage += "Please enter your email address.\n";
			returnValue = false;
		}
		else if(!validateEmail(theForm.contact_email.value)){
			errMessage += "Please enter a valid email address.\n";
			returnValue = false;
		}
			
		if(!returnValue)
			alert(errMessage);
		
		return returnValue;
	}
	
	function validateResForm(theForm){
		//alert("validating");
		var todaysDate = new Date();
		var returnValue = true;
		var errMessage = "";

		//alert('validation function called');
		if(!(theForm.checkin.value == "") && !(theForm.checkout.value == ""))
		{
			//alert('values not empty');
			var CIVal = theForm.checkin.value;
			var COVal = theForm.checkout.value;
			
			//split into arrays ([2]=yyyy,[1]=mm,[0]=dd) 
			var CIDate = CIVal.split('/');
			var CODate = COVal.split('/');
			
			var CheckInDate = new Date(CIDate[2],CIDate[1],CIDate[0]); 
			var CheckOutDate = new Date(CODate[2],CODate[1],CODate[0]); 
		}
		else
		{
			errMessage += "Please enter valid dates\n";
			returnValue = false;
		}
		
		if(CheckInDate.getTime() <= todaysDate.getTime()){
			errMessage += "Please enter a valid check-in date.\n";
			returnValue = false;
		}
		else if(CheckOutDate.getTime() <= CheckInDate.getTime()){
			errMessage += "Please enter a valid check-out date.\n";
			returnValue = false;
		}
			
		if(!returnValue)
			alert(errMessage);
		
		return returnValue;
	}
	
	function validateOfferResForm(theForm){
		//alert("validating");
		var todaysDate = new Date();
		var returnValue = true;
		var errMessage = "";

		//alert('validation function called');
		if(!(theForm.checkin.value == "") && !(theForm.checkout.value == ""))
		{
			//alert('values not empty');
			var CIVal = theForm.checkin.value;
			var COVal = theForm.checkout.value;
			var rCOVal = theForm.regCheckout.value;
			
			//split into arrays ([2]=yyyy,[1]=mm,[0]=dd)
			var CIDate = CIVal.split('/');
			var CODate = COVal.split('/');
			var rCODate = rCOVal.split('/');
			
			var CheckInDate = new Date(CIDate[2],CIDate[1],CIDate[0]); 
			var CheckOutDate = new Date(CODate[2],CODate[1],CODate[0]); 
			var rCheckOutDate = new Date(rCODate[2],rCODate[1],rCODate[0]); 
		}
		else
		{
			errMessage += "Please enter valid dates\n";
			returnValue = false;
		}
		
		if(CheckInDate.getTime() <= todaysDate.getTime()){
			errMessage += "Offer has expired.\n";
			returnValue = false;
		}
		else if(CheckOutDate.getTime() < rCheckOutDate.getTime()){
			errMessage += "Please enter a valid check-out date. \n";
			errMessage += "You may stay longer but are required to\n";
			errMessage += "stay the minumum days subject to the offer. \n";
			returnValue = false;
		}
			
		if(!returnValue)
			alert(errMessage);
		
		return returnValue;
	}
		
	function validateNewReg(theForm){
		var returnValue = true;
		var errMessage = "";
			
		if(theForm.firstName.value == ""){
			errMessage += "Please enter your name.\n";
			returnValue = false;
		}
		
		if(theForm.lastName.value == ""){
			errMessage += "Please enter your name.\n";
			returnValue = false;
		}
		
		if(theForm.telephone.value == ""){
			errMessage += "Please enter your name.\n";
			returnValue = false;
		}
		
		if(theForm.email.value == ""){
			errMessage += "Please enter your email address.\n";
			returnValue = false;
		}
		else if(!validateEmail(theForm.email.value)){
			errMessage += "Please enter a valid email address.\n";
			returnValue = false;
		}
		
		if(theForm.password.value == ""){
			errMessage += "Please enter your password.\n";
			returnValue = false;
		}else if(theForm.confirmPassword.value == ""){
			errMessage += "Please confirm your password.\n";
			returnValue = false;
		}else if(theForm.password.value != theForm.confirmPassword.value){
			//errMessage += "Please confirm your password.\n";
			errMessage += "The confirmation password you provided does not match.\n";
			returnValue = false;
		}	
			
		if(!returnValue)
			alert(errMessage);
		
		return returnValue;
	}
	
	function validateLogin(theForm){
		var returnValue = true;
		var errMessage = "";
			
		
		if(theForm.login_email.value == ""){
			errMessage += "Please enter your email address.\n";
			returnValue = false;
		}
		else if(!validateEmail(theForm.login_email.value)){
			errMessage += "Please enter a valid email address.\n";
			returnValue = false;
		}
		
		if(theForm.login_password.value == ""){
			errMessage += "Please enter your password.\n";
			returnValue = false;
		}	
			
		if(!returnValue)
			alert(errMessage);
		
		return returnValue;
	}
		
	function validateEmail(theAddress)
	{
		var returnValue = true;
		var AtSym       = theAddress.indexOf('@');
		var Period      = theAddress.lastIndexOf('.');
		var Space       = theAddress.indexOf(' ');
		var Length      = theAddress.length - 1;  // Array is from 0 to length-1

		// '@' cannot be in first position, Must be at least one valid char btwn '@' and '.'
		// Must be at least one valid char after '.', No empty spaces permitted
		if((AtSym < 1) || (Period <= AtSym+1) || (Period == Length ) || (Space  != -1))
			returnValue = false;

		return returnValue;
	}
	
	//function ValidateEmail(Expr){
	//	var re = /^[\w\.-]+@[\w\.-]+\.[a-zA-Z]+$/
	//	return re.test(Expr);
	//}
	
	function getYear(d) { 
		return (d < 1000) ? d + 1900 : d;
		}

	function isDate (year, month, day) {
	  // month argument must be in the range 1 - 12
	  month = month - 1;  // javascript month range : 0- 11
	  var tempDate = new Date(year,month,day);
	  if ( (getYear(tempDate.getYear()) == year) &&
	     (month == tempDate.getMonth()) &&
	     (day == tempDate.getDate()) )
	      return true;
	  else
	     return false
	 }
	
	
	function ValidateCard(cardNumber, cardType){

		var isValid = false;
		var ccCheckRegExp = /[^\d ]/;
		isValid = !ccCheckRegExp.test(cardNumber);
		
		if (isValid)
		{
			var cardNumbersOnly = cardNumber.replace(/ /g,"");
			var cardNumberLength = cardNumbersOnly.length;
			var lengthIsValid = false;
			var prefixIsValid = false;
			var prefixRegExp;

			switch(cardType){
			case "mastercard":
				lengthIsValid = (cardNumberLength == 16);
				prefixRegExp = /^5[1-5]/;
				break;
				
			case "visa":
				lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 13);
				prefixRegExp = /^4/;
				break;
	      case "amex":
				lengthIsValid = (cardNumberLength == 15);
				prefixRegExp = /^3(4|7)/;
				break;
			default:
	        prefixRegExp = /^$/;
	        alert("Card type not found");
	    }

		prefixIsValid = prefixRegExp.test(cardNumbersOnly);
		
	   isValid = prefixIsValid && lengthIsValid;
	  }
		if (isValid)
	  {
	   var numberProduct;
	   var numberProductDigitIndex;
	   var checkSumTotal = 0;

	   for (digitCounter = cardNumberLength - 1; 
			digitCounter >= 0; 
	      digitCounter--)
	   {
	      checkSumTotal += parseInt (cardNumbersOnly.charAt(digitCounter));
	      digitCounter--;
	      numberProduct = String((cardNumbersOnly.charAt(digitCounter) * 2));
	      for (var productDigitCounter = 0;
	        productDigitCounter < numberProduct.length; 
	        productDigitCounter++)
	      {
	        checkSumTotal += 
	          parseInt(numberProduct.charAt(productDigitCounter));
	      }
	    }

	    isValid = (checkSumTotal % 10 == 0);
	  }

	  return isValid;
	}