var errorBorderColour = '#990000';
var passBorderColourLeft='#a7ccde';
var passBorderColourTop='#a7ccde';
var passBorderColourRight='#689ab3';
var passBorderColourBottom='#98c2d6';

function validateFormOnSubmit(theForm) {
var reason = "";

if ($(".form-contact").css("display") == "block") {
	reason += validateSubject(theForm.subject_contact);
	reason += validateName(theForm.name);
	reason += validateOrg(theForm.organisation);
	reason += validateEmail(theForm.email);
	reason += validateMessage(theForm.message);
} else if($(".form-careers").css("display") == "block") {
	reason += validateSubject(theForm.subject_enquire);
	reason += validateName(theForm.name);
	reason += validatePhone(theForm.phone);
	reason += validateEmail(theForm.email);
	reason += validateMessage(theForm.message);
} else if($("div.register form").css("display") == "block") {
	reason += validateEmail(theForm.email);
	reason += validateUsername(theForm.username);
	reason += validateScreenname(theForm.screen_name);
	reason += validatePassword(theForm.password, theForm.password_confirm);
	reason += validateTerms(theForm.accept_terms);
}



	
	

  
  if (reason != "") {
    //alert("Please correct the fields described below and that are marked in red:" + "" + reason + " Thank you." );
    return false;
  }
	return true;
}

//trim function
function trim(s) {
  return s.replace(/^\s+|\s+$/, '');
}
function validateSubject(fld) {
    var error = ""; 
    if(fld.value == "" || fld.value == null) {
		error = "* Please choose a subject";
		$("#error-subject").html(error);
	} else {
		$("#error-subject").html('');
	}
	return error;
}
function validatePhone(fld) {
    var error = ""; 
    if(fld.value == "") {
		error = "* Please include your phone number";
		 changeFieldStyles(fld, false);
		$("#error-phone").html(error);
	} else {
		$("#error-phone").html('');
		 changeFieldStyles(fld, true);
	}
	return error;
}

function changeFieldStyles(fld, validationValue) {
	if(validationValue) {
		fld.style.borderLeftColor = passBorderColourLeft;
		fld.style.borderTopColor = passBorderColourTop;
		fld.style.borderRightColor = passBorderColourRight;
		fld.style.borderBottomColor = passBorderColourBottom;
	} else {
		fld.style.borderColor = errorBorderColour;
	}
}
function validateUsername(fld) {
    var error = ""; 
    if (fld.value == "" || fld.value.length < 5) {
        changeFieldStyles(fld, false)
        error = "* Please include a username (5 or more characters)";
		$("#error-username").html(error);
    } else {
        changeFieldStyles(fld, true);
		$("#error-username").html('');
    }
    return error;
}
function validateScreenname(fld) {
    var error = ""; 
    if (fld.value == "" || fld.value.length < 5) {
        changeFieldStyles(fld, false);
        error = "* Please include a screen name (5 or more characters)";
		$("#error-screenname").html(error);
    } else {
        changeFieldStyles(fld, true);
		$("#error-screenname").html('');
    }
    return error;
}
function validatePassword(fld, fld2) {
    var error = ""; 
    if (fld.value == "" || fld.value.length < 5) {
        changeFieldStyles(fld, false);
        error = "* Please include a password (5 or more characters)";
		$("#error-password").html(error);
    } 
	if(fld2.value == "" || fld2.value.length < 5 || fld2.value != fld.value ) {
		error = "* Your passwords don't match, please try again";
		$("#error-password-confirm").html(error);
	} 
	else {
        changeFieldStyles(fld, true);
		changeFieldStyles(fld2, true);
		$("#error-password").html('');
		$("#error-password-confirm").html('');
    }
    return error;
}
function validateTerms(fld) {
    var error = ""; 
    if (!fld.checked) {
		error = "* Please accept the HealthCube terms for registering";
		$("#error-terms").html(error);
		 changeFieldStyles(fld, false);
	} else {
		$("#error-terms").html('');
		 changeFieldStyles(fld, true);
	}
	return error;
}
function validateName(fld) {
    var error = ""; 
    if (fld.value == "" || fld.value.length < 2) {
        changeFieldStyles(fld, false)
        error = "* Please include your name";
		$("#error-name").html(error);
    } else {
        changeFieldStyles(fld, true);
		$("#error-name").html('');
    }
    return error;
}
function validateOrg(fld) {
    var error = ""; 
    if (fld.value == "") {
        changeFieldStyles(fld, false)
        error = "* Please include your organisation";
		$("#error-org").html(error);
    } else {
        changeFieldStyles(fld, true);
		$("#error-org").html('');
    }
    return error;
}
function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value); // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
   
    if (fld.value == "") {
        changeFieldStyles(fld, false);
        error = "* Please include an email address";
		$("#error-email").html(error);
		changeFieldStyles(fld, false);
    } else if (!emailFilter.test(tfld)) { //test email for illegal characters
        error = "* Please include a valid email address";
		$("#error-email").html(error);
		changeFieldStyles(fld, false);
    } else if (fld.value.match(illegalChars)) {
        error = "* Your email address contains illegal characters";
		$("#error-email").html(error);
		changeFieldStyles(fld, false);
    } else {
	   $("#error-email").html('');
	   changeFieldStyles(fld, true);
    }
    return error;
}
function validateMessage(fld) {
    var error = ""; 
    if(fld.value == "") {
		error = "* Please include your message";
		$("#error-message").html(error);
		changeFieldStyles(fld, false);
	} else {
		$("#error-message").html('');
		changeFieldStyles(fld, true);
	}
	return error;
}

