
//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	//} else {
		//alert("Your Browser Doe not support javascript");
	}
}

//Our XmlHttpRequest object to get the image
var searchReq = getXmlHttpRequestObject();

var bookingReq = getXmlHttpRequestObject();

var userReg = getXmlHttpRequestObject();

var userLogin = getXmlHttpRequestObject();

//Called from keyup on the search textbox.
//Starts the AJAX request.
function homePageImageFinder(lastImageId,action) {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		searchReq.open("GET", 'services/ajax/homePageImageFinder.cfm?lastImageId=' + lastImageId + '&action='+ action, true);
		searchReq.onreadystatechange = handleImageFinder; 
		searchReq.send(null);
	}		
}

//Called when the AJAX response is returned.
function handleImageFinder() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('PhotoAlbum')
		ss.innerHTML = '';
		//var str = searchReq.responseText.split("\n");   dont use line splitting
		var str = searchReq.responseText;
		//for(i=0; i < str.length - 1; i++) {
			//Build our element string.  This is cleaner using the DOM, but
			//IE doesn't support dynamically added attributes.
			//var imgString = str[i];
			var imgString = str;
			ss.innerHTML += imgString;			
		//}
	}
}


//Called from keyup on the search textbox.
//Starts the AJAX request.
function getBookingForm(venueID,venueProductID) {
	if (bookingReq.readyState == 4 || bookingReq.readyState == 0) {
		bookingReq.open("GET", 'services/ajax/bookingForm.cfm?venueID='+venueID+'&venueProductID='+venueProductID, true);
		bookingReq.onreadystatechange = handleBookingForm; 
		bookingReq.send(null);
	}
	return false;	
}

//Called when the AJAX response is returned.
function handleBookingForm() {
	if (bookingReq.readyState == 4) {
		var ss = document.getElementById('venueMain')
		ss.innerHTML = bookingReq.responseText;
	}
}



//Starts the AJAX request.
function getRegSubmit(forname,surname,email,password) {
	if (userReg.readyState == 4 || userReg.readyState == 0) {
		userReg.open("GET", 'services/ajax/regSubmit.cfm?forname='+forname+'&surname='+surname+'&email='+email+'&password='+password, true);
		userReg.onreadystatechange = handleRegSubmit; 
		userReg.send(null);
	}
	return false;	
}

//Called when the AJAX response is returned.
function handleRegSubmit() {
	if (userReg.readyState == 4) {
		var ss = document.getElementById('venueMain')
		ss.innerHTML = userReg.responseText;
	}
}


//Starts the AJAX request.
function getLoginSubmit(email,password) {
	if (userLogin.readyState == 4 || userLogin.readyState == 0) {
		userLogin.open("GET", 'services/ajax/loginSubmit.cfm?email='+email+'&password='+password, true);
		userLogin.onreadystatechange = handleLoginSubmit; 
		userLogin.send(null);
	}
	return false;	
}
//Called when the AJAX response is returned.
function handleLoginSubmit() {
	if (userLogin.readyState == 4) {
		var ss = document.getElementById('venueMain')
		ss.innerHTML = userLogin.responseText;
	}
}



function checkDate(field)
  {
    var allowBlank = true;
    var minYear = 2007;
    var maxYear = 2009;

    var errorMsg = "";

    // regular expression to match required date format
    re = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;
    
    if(field.value != '') {
      if(regs = field.value.match(re)) {
        if(regs[1] < 1 || regs[1] > 31) {
          errorMsg = "Invalid value for day: " + regs[1];
        } else if(regs[2] < 1 || regs[2] > 12) {
          errorMsg = "Invalid value for month: " + regs[2];
        } else if(regs[3] < minYear || regs[3] > maxYear) {
          errorMsg = "Invalid value for year: " + regs[3] + " - must be between " + minYear + " and " + maxYear;
        }
      } else {
        errorMsg = "Invalid date format: " + field.value;
      }
    } else if(!allowBlank) {
      errorMsg = "Empty date not allowed!";
    }
    
    if(errorMsg != "") {
      alert(errorMsg);
      field.focus();
      return false;
    }
    
    return true;
}

function IsNumeric(sText)
{
   var ValidChars = "123456789";
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
}


function chkAccomForm(frm) {
	checkDate(frm.dateArrive);
	
	if (IsNumeric(frm.nights.value)==false) {
		alert('Sorry, the number of nights you have entered is invalid.');
		return false
	}	
	
    return true
}


function chkErrors() {
	if (msg != '') {
		document.getElementById('errorBoxMsg').innerHTML=msg;
		document.getElementById('errorBox').style.display='block';
	}
}

function closeError() {
	document.getElementById('errorBox').style.display='none';
}



function pickBookNewReg()
{
	document.getElementById('bookNewReg').style.display='block';
	document.getElementById('logRegChoose').style.display='none';
}
function pickBookLogin()
{	
	document.getElementById('bookLogin').style.display='block';
	document.getElementById('logRegChoose').style.display='none';	
}



function verifyLogin()
{
	if (document.getElementById('emailLogin').value == '')	{
		alert('please enter a valid email address')	;
		return false
	}
	if (document.getElementById('passwordLogin').value == '')	{
		alert('please enter your password')	;
		return false
	}	
	
	getLoginSubmit(
					document.getElementById('emailLogin').value,
					document.getElementById('passwordLogin').value
				);
	
	return true
}

function verifyReg()
{
	if (document.getElementById('emailReg').value == '')	{
		alert('please enter a valid email address');
		return false;
	}
	if (document.getElementById('passwordReg').value == '')	{
		alert('please enter your desired password');
		return false;
	}	
	if (document.getElementById('confirmPasswordReg').value == '')	{
		alert('please confirm your desired password');
		return false;
	}	
	if (document.getElementById('confirmPasswordReg').value != document.getElementById('passwordReg').value)	{
		alert('the passwords you entered do not match')	;
			document.getElementById('passwordReg').value = '';
			document.getElementById('confirmPasswordReg').value = '';
		return false;
	}
		
	rgForname = document.getElementById('forname').value;
	rgSurname = document.getElementById('surname').value;
	rgEmail = document.getElementById('emailReg').value;
	rgPassword = document.getElementById('passwordReg').value;
	
	getRegSubmit(rgForname,rgSurname,rgEmail,rgPassword);
	
	return true;
}