// JavaScript Document

// JavaScript Document
// JavaScript Form Validations

function checkEmail(str, inputID){
	var errorString = "";			
	var emailFilter = /^.+@.+\..{2,3}$/;
	if (!(emailFilter.test(str))) { 
		errorString = "\n - Email address is INVALID.<br/>";
	}
	

	
	var illegalChars = /[\(\)\<\>\,\;\:\\\/\"\[\]]/;
	if (str.match(illegalChars)) {
		errorString = "\n - Email address contains ILLEGAL characters.<br/>";
	}
	
		if(errorString != "")
			$("#"+inputID).addClass("error");
		else{
			$("#"+inputID).removeClass("error");
			$("#"+inputID).addClass("text");
		}
		
	return errorString;
}

function checkForNumbers(str){
	var numberFilter = /^[a-z A-Z]+$/;
	if(!(numberFilter.test(str))){
		return true;
	}
	else{
		return false;	
	}
}
	
function checkForLetters(str){
	var letterFilter = 	/^[0-9\ ]+$/;
	if(!(letterFilter.test(str))){
		return true;
	}
	else{
		return false;	
	}
}

function checkForIllegalChars(str){
	var illegalChars = /[\(\)\<\>\,\;\:\\\/\"\[\]]/;
	if(str.match(illegalChars)){
		return true;
	}
	else{
		return false;	
	}
}

var feedBackError = false;


function validateFeedBackForm(form){
	var errorString = "";
	
	if(form.name.value == ""){
		errorString += "\n - Name is empty.<br/>";
		//form.name.value = "Name is required.";
		//$(".form").find("h3").append("<div class=\"notice errors\"><p class=\"error\">Name is required.</p></div>");
		$("#nameRow").addClass("error");//.append("<br/><p class=\"error\">Name is required.</p>");
	}
	else{
		if(checkForIllegalChars(form.name.value)){
			errorString += "\n - Name contains ILLEGAL characters.<br/>";	
		}
		$("#nameRow").removeClass("error");
	}
	if(form.email.value == ""){
		//form.email.value = "Email is required.";
		errorString += "\n - Email is empty.<br/>";
		$("#emailRow").addClass("error");//.append("<p class=\"error\">Email is required.</p>");
	}else{
			errorString += checkEmail(form.email.value, "emailRow");	
			//.append("<br/><p class=\"error\">Not a valid email Address</p>");
	}
	if(form.message.value == ""){
		//form.message.value = "Feedback is required.";
		errorString += "\n - Please provide a comment or feedback.<br/>";
		$("#messageRow").addClass("error");
	}else{
		$("#messageRow").removeClass("error");
	}
	
	//Control Statement
	if(errorString == ""){
		return true;						
	}
	else{
		if(!feedBackError)
		{
			$(".form").find("h3").after("<div class=\"notice errors\"><p>Your signup couldn't be submitted due to an error. Please correct the error(s) below and try again.</p><p>"+errorString+"</p></div>");
			feedBackError = true;
		}else{
			$(".form").find(".notice").remove();
			$(".form").find("h3").after("<div class=\"notice errors\"><p>Your signup couldn't be submitted due to an error. Please correct the error(s) below and try again.</p><p>"+errorString+"</p></div>");
		}
		return false;
	}
}

var contactFormError = false;

function validateContactForm(form){
	var errorString = "";
	
	if(form.name.value == ""){
		errorString += "\n - name is empty.<br/>";
		$("#name").addClass("error");
	}else{
		if(checkForIllegalChars(form.name.value)){
			errorString += "\n - Name contains ILLEGAL characters.<br/>";	
			$("#name").addClass("error");
		}else{
			$("#name").removeClass("error");
		}
	}
	
	
	if(form.email.value == ""){
		errorString += "\n - Email is empty.<br/>";
		$("#email").addClass("error");
	}else{
			errorString += checkEmail(form.email.value, "email");	
	}
	if(form.message.value == ""){
		errorString += "\n - Please provide a comment or feedback.<br/>"
		$("#message").addClass("error");
	}else{
		$("#message").removeClass("error");
	}
	
	//Control Statement
	if(errorString == ""){
		return true;
	}
	else{
		if(!contactFormError)
		{
		$(".form").find("h3").after("<div class=\"notice errors\"><p>Your signup couldn't be submitted due to an error. Please correct the error(s) below and try again.</p><p>"+errorString+"</p></div>");
		contactFormError = true;
			return false;
		}else{
			$(".form").find(".notice").remove();
			$(".form").find("h3").after("<div class=\"notice errors\"><p>Your signup couldn't be submitted due to an error. Please correct the error(s) below and try again.</p><p>"+errorString+"</p></div>");
			return false;
		}
	}
}

var mailingListError = false;

function validateMailingListForm(form){
	var errorString = "";
	
	if(form.firstname.value == ""){
		errorString += "\n - First Name is empty. <br/>";
		$("#firstnameMailinglist").addClass("error");
	}else{
		if(checkForIllegalChars(form.firstname.value)){
			errorString += "\n - First Name contains ILLEGAL characters. <br/>";	
			$("#firstnameMailinglist").addClass("error");
		}else{
			$("#firstnameMailinglist").removeClass("error");
		}
	}
	
	if(form.lastname.value == ""){
		errorString += "\n - Last Name is empty. <br/>";
		$("#lastnameMailinglist").addClass("error");
	}else{
		if(checkForIllegalChars(form.lastname.value)){
			errorString += "\n - Last Name contains ILLEGAL characters. <br/>";	
			$("#lastnameMailinglist").addClass("error");
		}else{
			$("#lastnameMailinglist").removeClass("error");
		}
	}
	
	if(form.email.value == ""){
		errorString += "\n - Email is empty. <br/>";
		$("#emailMailinglist").addClass("error");
	}else{
			errorString += checkEmail(form.email.value, "emailMailinglist");	
	}
	
	//Control Statement
	if(errorString == ""){
		return true;						
	}
	else{
		
	if(!mailingListError)
	{
		$(".form").find("#mailingListSignup").prepend("<div class=\"notice errors\"><p>Your signup couldn't be submitted due to an error. Please correct the error(s) below and try again.</p><p>"+errorString+"</p></div>");
		mailingListError = true;
			return false;
	}else{
		$(".form").find(".notice").remove();
		$(".form").find("#mailingListSignup").prepend("<div class=\"notice errors\"><p>Your signup couldn't be submitted due to an error. Please correct the error(s) below and try again.</p><p>"+errorString+"</p></div>");
		return false;
	}
	}
}

var bookingError = false;

function validateBookingForm(form){
	var errorString = "";
	var emailString = "";
	
	if(form.companyname.value == ""){
		errorString += "\n - Company is empty.<br/>";
		$("#companyname").removeClass("text");
		$("#companyname").addClass("error");
	}else{
		$("#companyname").removeClass("error").addClass("text");
	}
	
	if(form.firstname.value == ""){
		errorString += "\n - First name is empty.<br/>";
		$("#firstname").removeClass("text");
		$("#firstname").addClass("error");
	}else{
		$("#firstname").removeClass("error").addClass("text");
	}
	
	if(form.lastname.value == ""){
		errorString += "\n - Last name is empty.<br/>";
		$("#lastname").removeClass("text");
		$("#lastname").addClass("error");
	}else{
		$("#lastname").removeClass("error").addClass("text");
	}
	
	if(form.contactphone.value == ""){
		errorString += "\n - Contact phone number is empty.<br/>";
		$("#contactphone").removeClass("text");
		$("#contactphone").addClass("error");
	}else{
		$("#contactphone").removeClass("error").addClass("text");
	}
	
	if(form.contactemail.value == ""){
		errorString += "\n - Contact email is empty.<br/>";
		$("#contactemail").removeClass("text");
		$("#contactemail").addClass("error");
	}else{	
		errorString += checkEmail(form.contactemail.value, "contactemail");	
	}
	
	if(form.confirmcontactemail.value == ""){
		errorString += "\n - Confirm email is empty.<br/>";
		$("#confirmcontactemail").removeClass("text");
		$("#confirmcontactemail").addClass("error");
		
	}else{
		if(form.confirmcontactemail.value != form.contactemail.value){
			errorString += "\n - Email doesn't match. <br/>";
		}else{
			emailString = checkEmail(form.contactemail.value, "contactemail");	
			if(emailString != "")
			{
				$("#confirmcontactemail").removeClass("text");
				$("#confirmcontactemail").addClass("error");
			}
		}
	}
	
	if(form.addressline1.value == ""){
		errorString += "\n - Address line 1 is empty.<br/>";
		$("#addressline1").removeClass("text");
		$("#addressline1").addClass("error");
	}else{
		$("#addressline1").removeClass("error").addClass("text");
	}
	
	/*if(form.addressline2.value == ""){
		errorString += "\n - Address line 2 is empty.<br/>";
		$("#addressline2").removeClass("text");
		$("#addressline2").addClass("error").addClass("text");
	}else{
		$("#addressline2").removeClass("error");
	}*/
	
	if(form.townsuburb.value == ""){
		errorString += "\n - Town/Suburb is empty.<br/>";
		$("#townsuburb").removeClass("text");
		$("#townsuburb").addClass("error");
	}else{
		$("#townsuburb").removeClass("error").addClass("text");
	}
	
		
	if(form.state.value == ""){
		errorString += "\n - State is empty.<br/>";
		$("#state").removeClass("text");
		$("#state").addClass("error");
	}else{
		$("#state").removeClass("error").addClass("text");
	}
	
			
	if(form.postcode.value == ""){
		errorString += "\n - Postcode is empty.<br/>";
		$("#postcode").removeClass("text");
		$("#postcode").addClass("error");
	}else{
		$("#postcode").removeClass("error").addClass("text");
	}
	
	if(form.country.value == ""){
		errorString += "\n - Country is empty.<br/>";
		$("#country").removeClass("text");
		$("#country").addClass("error");
	}else{
		$("#country").removeClass("error").addClass("text");
	}
	
		if(form.eventtype.value == "select"){
		errorString += "\n - Please select an event type.<br/>";
		$("#eventtype").removeClass("text");
		$("#eventtype").addClass("error");
	}else{
		$("#eventtype").removeClass("error").addClass("text");
	}
		
			
	if(form.preferreddate.value == ""){
		errorString += "\n - Preferred date is empty.<br/>";
		$("#preferreddate").removeClass("text");
		$("#preferreddate").addClass("error");
	}else{
		$("#preferreddate").removeClass("error").addClass("text");
	}
	
	if(form.preferredtime.value == ""){
		errorString += "\n - Preferred time is empty.<br/>";
		$("#preferredtime").removeClass("text");
		$("#preferredtime").addClass("error");
	}else{
		$("#preferredtime").removeClass("error").addClass("text");
	}
	
	//Control Statement
	if(errorString == ""){
		return true;						
	}
	else{
		if(!bookingError)
		{
			$(".formSection:first").prepend("<div class=\"notice errors\"><p>Your signup couldn't be submitted due to an error. Please correct the error(s) below and try again.</p><p>"+errorString+"</p></div>");
			bookingError = true;
		}else{
		$(".notice").remove();
		$(".formSection:first").prepend("<div class=\"notice errors\"><p>Your signup couldn't be submitted due to an error. Please correct the error(s) below and try again.</p><p>"+errorString+"</p></div>");
		}
		return false;
	}
}