// js handling the login procedures

// constants
var NORMAL_STATE = 4;

// variables
var http; 

// getCalendar method:  gets all booking for the year specified
function getCalendar(){	

	var year = document.getElementById('yearMenu').options[document.getElementById('yearMenu').selectedIndex].value;
	var url ='scripts/getBookingCalendar.php';
			// open up the path
	var parameters = "year=" + year;

	http = getHTTPObject();	// We create the HTTP Object

	http.onreadystatechange = handleHttpChangeYear;

	http.open('POST', url , true)
      http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http.setRequestHeader("Content-length", parameters.length);
      http.setRequestHeader("Connection", "close");
      http.send(parameters);
}

function dateSelected(year, month, day){	
	var url ='scripts/setStartDate.php';
			// open up the path
	
	document.getElementById('startDate').value = day + "/" + month + "/" + year;
	validateEmail(document.getElementById('startDate'));
}

function submitEnquiry(){
	var url ='scripts/submitEnquiry.php';
	var errorMessage = '';
	var startDate = document.getElementById('startDate');
	if (startDate.className == "formFillMandFail"){
		errorMessage += "Invalid Start Date\n";
	}
	var endDate = document.getElementById('endDate');
	if (endDate.className == "formFillMandFail"){
		errorMessage += "Invalid End Date\n";
	}
	var name = document.getElementById('name');
	if (name.className == "formFillMandFail"){
		errorMessage += "Invalid Name\n";
	}
	var email = document.getElementById('email');
	if (email.className == "formFillMandFail"){
		errorMessage += "Invalid email\n";
	}
	var phone = document.getElementById('phone');
	if (phone.className == "formFillMandFail"){
		errorMessage += "Invalid Phone Number\n";
	}
	var enquiry = document.getElementById('enquiry').value;

	document.getElementById('enquiryResponse').innerHTML = '';
	if (errorMessage != ''){
		alert(errorMessage);
	}
	else {
		var parameters = "startDate=" + startDate.value + "&endDate=" + endDate.value + "&name=" + name.value + "&email=" + email.value + "&phone=" + phone.value + "&enquiry=" + enquiry;
		alert(parameters);
		http = getHTTPObject();	// We create the HTTP Object

		http.onreadystatechange = handleHttpSubmitEnquiry;

		http.open('POST', url , true)
		http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		http.setRequestHeader("Content-length", parameters.length);
		http.setRequestHeader("Connection", "close");
		http.send(parameters);
	}
	
}

// handleHttpChangeYear method: called when the seed is returned from the server
function handleHttpChangeYear(){
	// if there hasn't been any errors
	if (http.readyState == NORMAL_STATE) {
//		var newCalendar = '<table id="calendar" width="100%">' + http.responseText + '</table>';
		var newCalendar = http.responseText;
		document.getElementById('availCalendar').innerHTML = newCalendar;
	}
}

function handleHttpSubmitEnquiry(){
	// if there hasn't been any errors
	if (http.readyState == NORMAL_STATE) {
		document.getElementById('availCalendar').innerHTML = '';
		document.getElementById('startDate').value = '';
		document.getElementById('endDate').value = '';
		document.getElementById('name').value = '';
		document.getElementById('email').value = '';
		document.getElementById('phone').value = '';
		document.getElementById('enquiry').value = '';

		document.getElementById('enquiryResponse').innerHTML = http.responseText;
	}
}

// method that sets up a cross-browser XMLHttpRequest object
function getHTTPObject() {
    //Mozilla-based browsers
    if(window.XMLHttpRequest){
        request = new XMLHttpRequest();
    } else if (window.ActiveXObject){
        request = new ActiveXObject("Msxml2.XMLHTTP");
        if (! request){
            request = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    //test for null if can't create
    if(request){
				return request;
    }else{
        alert("Your browser does not permit the use of all of this application's features");
    }
}

