/***************************/
//@Author: Michael Foster			
/***************************/
/* Edited by Mit (mit@w3systems.net) 19/10/2010

- Remove keyup detection as not necessary.  
- Changed '&' to '&&' in onsubmit if statement (syntax was wrong) 
- Added var for mobile number, and onblur call to function
- Changed if statement in validateContactNumber to validate number of 11 characters (ignoring spaces)
- Added validateMobileNumber function... duplicated actions of validateContactNumber, but will also return true if zero length

*/

$(document).ready(function(){
	
	//global vars
	var form = $("#contact-form");
	var title = $("#title");
	var titleInfo = $("#titleInfo");
	var first = $("#name");
	var firstInfo = $("#firstInfo");
	var surname = $("#surname");
	var surnameInfo = $("#surnameInfo");
	var contactno = $("#contact-number");
	var contactnoInfo = $("#contact-numberInfo");
	var mobileno = $("#mobile-number");
	var mobilenoInfo = $("#mobile-numberInfo");
	var email = $("#email");
	var emailInfo = $("#emailInfo");
	var errorMsg = '';
	var sideBarForm = $("#from_side_form").val();
	//On blur
	title.blur(validateTitle);
	first.blur(validateFirst);
	surname.blur(validateSurname);
	contactno.blur(validateContactNumber);
	mobileno.blur(validateMobileNumber);
	email.blur(validateEmail);
	
	if (sideBarForm == '1') {
		var numcreditors = $("#number_creditors");
		var debtlevel = $("#debt_level");
		//
		numcreditors.blur(validateNumCreditors);
		debtlevel.blur(validateDebtLevel);
	}
	
	//On Submit
	$("#contact-form").submit(function(){
		errorMsg = '';
		//
		
		if (sideBarForm == '1') {
			if (validateNumCreditors() == false) { errorMsg = errorMsg + 'Number of creditors\n'; }
			if (validateDebtLevel() == false) { errorMsg = errorMsg + 'Level of Debt\n'; }
		}
		
		if (validateTitle() == false) { errorMsg = errorMsg + 'Title\n'; }
		if (validateFirst() == false) { errorMsg = errorMsg + 'First name\n'; }
		if (validateSurname() == false) { errorMsg = errorMsg + 'Surname\n'; }
		if (validateEmail() == false) { errorMsg = errorMsg + 'Email\n'; }
		if (validateContactNumber() == false) { errorMsg = errorMsg + 'Main contact number\n'; }
		if (validateMobileNumber() == false) { errorMsg = errorMsg + 'Alternate Contact Number\n'; }
		//
		if (errorMsg == '') {
			/*showLoading();
			$.post("data.php", {var:"foo"}, function(results){
			  $("content").append(results);
			  hideLoading();
			});*/
			return true; 
			
			//return false;
		}
		else {
			// comment out the next line if you do not want to give the user an error alert.
			alert('Please enter the following fields:\n' + errorMsg);
			return false;
		}
	});

	//	
	function validateTitle(){
		//if it's NOT valid
		if(title.val().length < 1){
			title.addClass("error");
			return false;
		}
		//if it's valid
		else{
			title.removeClass("error");
			return true;
		}
	}

	function validateFirst(){
		//if it's NOT valid
		if(first.val().length < 3){
			first.addClass("error");
			return false;
		}
		//if it's valid
		else{
			first.removeClass("error");
			return true;
		}
	}

	function validateSurname(){
		//if it's NOT valid
		if(surname.val().length < 3){
			surname.addClass("error");
			return false;
		}
		//if it's valid
		else{
			surname.removeClass("error");
			return true;
		}
	}

	function validateEmail(){
		//testing regular expression
		var a = $("#email").val();
		var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
		//if it's valid email
		if(filter.test(a)){
			email.removeClass("error");
			return true;
		}
		//if it's NOT valid
		else{
			email.addClass("error");
			return false;
		}
	}

	function validateContactNumber(){
		//if it's NOT valid
		if(contactno.val().replace(/\s+/g, '').length != 11) {
			contactno.addClass("error");
			return false;
		}
		//if it's valid
		else{
			contactno.removeClass("error");
			return true;
		}
	}

	function validateMobileNumber(){

		//if it's NOT valid

		if((mobileno.val() == '') || (mobileno.val() == null)) {

			mobileno.removeClass("error");

			return true;

		}

		else if(mobileno.val().replace(/\s+/g, '').length == 11) {

			mobileno.removeClass("error");

			return true;

		}

		//if it's valid

		else{

			mobileno.addClass("error");

			return false;

		}
		
		

	}
	
	function validateNumCreditors(){

			if(numcreditors.val().length < 1){
				numcreditors.addClass("error");
				return false;
			}
			//if it's valid
			else{
				numcreditors.removeClass("error");
				return true;
			}

	}
	
	function validateDebtLevel(){
			//testing regular expression
			if(debtlevel.val().length < 1){
				debtlevel.addClass("error");
				return false;
			}
			//if it's valid
			else{
				debtlevel.removeClass("error");
				return true;
			}
		}

});
