function checkForm() {
	// Check if method is supported
	if (!document.getElementsByTagName || !document.getElementById) return false;
	// Check if form is ther
	if (!document.getElementById("reservation") || !document.getElementById("submit")) return false;
	// Find the form
	var theForm = document.getElementById("reservation");
	var mySubmit = document.getElementById("submit");
	// Change Submit Img 
	mySubmit.src = "/assets/img/btn_processing.gif";
	mySubmit.disabled = true;

	
	// Find the sidenav
	var errorBox = document.getElementById("errorHolder");
	var para = document.createElement("p");
	var text = document.createTextNode("Sorry. The highlighted fields are required. Please check your details and re-submit.");
	para.appendChild(text);
	
	// Declare the error caching array
	var error = [];
	
	// Go through each element in the form
	for (var i=0; i<theForm.elements.length; i++) {
		var element = theForm.elements[i];
		
		// Test if is a required element
		if (element.className.indexOf("requiredInput") != -1) {
			if (!isFilled(element)) {
				element.parentNode.className = "required";
				error[i] = element.name;
			} else {
				element.parentNode.className = "";
			}
		}
		// Test if is an email element
		if (element.className.indexOf("emailInput") != -1) {
			if (!isEmail(element)) {
				element.parentNode.className = "required";
				error[i] = element.name;
			} else {
				element.parentNode.className = "";
			}
		}
	}
	
	// Test if there was an error
	for (var i = 0 ; i < error.length ; i++) {
		if (error[i]) {	// Change Submit Img 
	mySubmit.src = "/assets/img/btn_submit.gif";
	mySubmit.disabled = true;
			while (errorBox.hasChildNodes()) {
				errorBox.removeChild(errorBox.lastChild);
			}
			errorBox.appendChild(para);
			return false;
		}
	}
	
	return true;
	
}

// Test length of element value
function isFilled(field) {
	if (field.value.length < 1 || field.value == field.defaultValue) {
		return false;
	} else {
		return true;
	}
}

// Test if is correctly formatted email address
function isEmail(field) {
	if (field.value.indexOf("@") == -1 || field.value.indexOf(".") == -1){
		return false;
	} else {
		return true;
	}
}