// JavaScript Document
$.fn.formValidation = function(){
//set variables for all the various form elements;
var name = $(this).find("#name");
var email = $(this).find("#email");
var subject = $(this).find("#subject");
var message = $(this).find("#message");
var spam = $(this).find("#spam");
var formFields = $(this).find("input:text, textarea");
var status = $(this).find("#status");
var resetBtn = $(this).find("#reset");
/*submit handler for contact form*/
$(this).submit(function(e) {
//prevents default form action
e.preventDefault();
formFields.removeClass("error-focus");
//check required fields are not empty and that the email address is valid
if(name.val()==""){
errorMessage("Please Enter Your Name");
name.focus().addClass("error-focus");
}else if(email.val()==""){
errorMessage("Please Enter Your Email Address");
email.focus().addClass("error-focus");
}else if(!isValidEmail(email.val())){
errorMessage("Please Enter a Correct Email Address");
email.focus().addClass("error-focus");
}else if(subject.val()==""){
errorMessage("Please Enter a Subject");
subject.focus().addClass("error-focus");
}else if(message.val()==""){
errorMessage("Please Enter Your Message");
message.focus().addClass("error-focus");
}else if(!spam.val()==""){
errorMessage("Spam Attack!!");
}else{
//if all fields are valid then send data to the server for processing
successMessage("Email being sent... please wait");
//serialize all the form field values as a string
var formData = $(this).serialize();
//send serialized data string to the send mail php via POST method
$.ajax({
type: "POST",
url: "send-mail.php",
data: formData,
success: function(sent){
if(sent=="error"){
errorMessage("Opps, something went wrong - message not sent");
} else if(sent=="success"){
successMessage("Thanks "+name.val()+", your message has been successfully sent");
//clear form fields
formFields.val("");
}//end if else
}//end success function
});//end ajax function
}//end else
});//end submit
//click handler for reset button - hides the status message
resetBtn.click(function(){
status.slideUp("fast");
formFields.removeClass("error-focus");
});
//functions
function errorMessage(message){
status.html(message).attr("class", "error").slideDown("fast");
}
function successMessage(message){
status.html(message).attr("class", "success").slideDown("fast");
}
function isValidEmail(email) {
var emailRx = /^[\w\.-]+@[\w\.-]+\.\w+$/;
return emailRx.test(email);
}
};