$(document).ready(function() {
    $("#send").hover(function() {
        $(this).addClass("send_hover");
    }, function() {
        $(this).removeClass("send_hover");
    }); 
    
    var sending = false;
    var inhibit = false;
    
    $("#send").click(function() {
        if (sending) return;
        
        $("#form > .message").remove();
        
        if (inhibit) {
            $("#send").after("<div class=\"message\">Email already sent.</div>");
            return;
        }
        
        sending = true;
        
        var firstname = $("#firstname").val();
        var surname = $("#surname").val();
        var telephone = $("#telephone").val();
        var email = $("#email").val();
        var text = $("#text").val();
        
        var incomplete = false;
        
        if (surname == "") {
            incomplete = true;
            $("#surname").addClass("invalid_input").after("<div class=\"message\">Surname required.</div>");
        } else {
            $("#surname").removeClass("invalid_input");
        }
        
        if (telephone == "") {
            incomplete = true;
            $("#telephone").addClass("invalid_input").after("<div class=\"message\">Telephone required.</div>");
        } else {
            $("#telephone").removeClass("invalid_input");
        }
        
        if (email == "") {
            incomplete = true;
            $("#email").addClass("invalid_input").after("<div class=\"message\">Email required.</div>");
        } else {
            $("#email").removeClass("invalid_input");
        }
        
        if (incomplete) {
            sending = false;
            return;
        }
        
        if (!isValidEmailAddress(email)) {
            $("#email").addClass("invalid_input").after("<div class=\"message\">Email address invalid.</div>");
            sending = false;
            return;
        }
        
        $("#loader").show();
        
        $.ajax ({
            type : "post",
            url : "/contact/ajax",
            data : "firstname="+firstname+"&surname="+surname+"&telephone="+telephone+"&email="+email+"&text="+text,
            success: function(msg) {
                sending = false;
                inhibit = true;
                $("#loader").hide();
                $("#send").after("<div class=\"message\">Email sent successfully.</div>");
            }
        })
            
    });
    
    function isValidEmailAddress(emailAddress) {
        var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
        return pattern.test(emailAddress);
    }
});
