$(document).ready(function(){

// prepare Options Object
var options = {
    target:'#contactResponse',
    url:   'includes/ajax/joinMailList.php',
    beforeSubmit: validateMail,
    success: function() {
		$("#joinMail").fadeOut('fast');
	    $("#contactResponse").fadeIn('fast');
        }
};
// pass options to ajaxForm
$('#joinMail').ajaxForm(options);
 });

 function validateMail() {
    $('#contactResponse').empty();
    var answer = $("#contactResponse");
         if (answer.is(':hidden')) {
         $('#contactResponse').fadeIn();
         }
    // fieldValue is a Form Plugin method that can be invoked to find the
    // current value of a field
    //
    // To validate, we can capture the values of both the username and password
    // fields and return true only if both evaluate to true
    var emailValue = $('input[@name=email]').fieldValue();
    var nameValue = $('input[@name=name]').fieldValue();
    // usernameValue and passwordValue are arrays but we can do simple
    // "not" tests to see if the arrays are empty
    if (!emailValue[0] || !nameValue[0]) {
        $("#contactResponse").append('Please enter a value for all fields');
		 $("#contactResponse").fadeIn('fast');
        return false;
    }

	else if (echeck(emailValue[0])==false){
		$("#contactResponse").append('Please enter a valid email');
        return false;
	}
	
    else
        return true;

}

function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    return false
		 }

 		 return true					
	}

