/*======= Copyright 2011 : The Consumer Credit Repair Agency  =======*/
/*======= Form validation  =======*/


 $(document).ready(function() {

    $('#fname').blur(function(){FNameValidation();})
	$('#lname').blur(function(){LNameValidation();})
    $('#email').blur(function(){EmailValidation();})
	$('#phone').blur(function(){PhoneValidation();})
    $('#check').blur(function(){SumValidation();})

    $('#submit').click(function() {
        if(! validate())
            return false;
        
        var conf = $('#confirmation');
        conf.text("Your message is being sent ...");
        conf.addClass("confirmation_visible");

        var dataString = $("#chatform").serialize();

        $.ajax({
            url: "scripts/sendMail.php",
            type: "POST",
            data: dataString,
            dataType: "json",
            //timeout: 5000 ,
            success:function(data) {
                if(data.error==true) {
                    conf.text("Your message could not be sent. Please try again later.");
                    conf.addClass("confirmation_visible");
                    setTimeout(function(){
                        conf.removeClass("confirmation_visible");},3000);
                }
                else {
                    conf.addClass("confirmation_visible");
                    conf.text("Your message has been sent."); 
                    setTimeout(function(){
                        conf.fadeOut(2000, function(){
                            conf.removeClass("confirmation_visible");
                        });
                    },3000);
                }
            },
            error:function(xhr,err,e) {                            
                conf.text("Your message could not be sent. Please try again later.");
                conf.addClass("confirmation_visible");
                setTimeout(function(){
                    conf.removeClass("confirmation_visible");},3000);
                }
        }); // closing $.ajax()

        return true;
    })      
});


function FNameValidation() {

    var inputFName = $('#fname');
    var wrapFName = $('#fname_wrap');
    inputFName.val(trim(inputFName.val()));
    var strValue = inputFName.val();

    if(isEmpty(strValue)){
        wrapFName.addClass("error");
        return false;
    }
    
    var objRegExp = /^[a-zA-Z]+(([\'\,\.\-][a-zA-Z])?[a-zA-Z]*)*$/i
    if(! objRegExp.test(strValue)){
        wrapFName.addClass("error");
        return false;
    }

    wrapFName.removeClass("error");

    return true;
}

function LNameValidation() {

    var inputLName = $('#lname');
    var wrapLName = $('#lname_wrap');
    inputLName.val(trim(inputLName.val()));
    var strValue = inputLName.val();

    if(isEmpty(strValue)){
        wrapLName.addClass("error");
        return false;
    }
    
    var objRegExp = /^[a-zA-Z]+(([\'\,\.\-][a-zA-Z])?[a-zA-Z]*)*$/i
    if(! objRegExp.test(strValue)){
        wrapLName.addClass("error");
        return false;
    }

    wrapLName.removeClass("error");

    return true;
}

function EmailValidation() {

    var emailInput = $('#email');
    var wrapEmail = $('#email_wrap');

    emailInput.val(trim(emailInput.val()));
    var strValue = trim(emailInput.val());
    
    var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
    if(isEmpty(strValue)) {
        wrapEmail.addClass("error");
        return false;
    }

    if(!strValue.match(emailExp)) {
        wrapEmail.addClass("error");
        return false;
    }

    wrapEmail.removeClass("error");

    return true;
}

function PhoneValidation() {

    var phoneInput = $('#phone');
    var wrapPhone = $('#phone_wrap');

    phoneInput.val(trim(phoneInput.val()));
    var strValue = trim(phoneInput.val());
    
    var phoneExp =  /^(1\s*[-\/\.]?\s*)?(\((\d{3})\)|(\d{3}))\s*[-\/\.]?\s*(\d{3})\s*[-\/\.]?\s*(\d{4})\s*(([xX]|[eE][xX][tT]?)\.?\s*([#*\d]+))*$/;
    if(isEmpty(strValue)) {
        wrapPhone.addClass("error");
        return false;
    }

    if(!strValue.match(phoneExp)) {
        wrapPhone.addClass("error");
        return false;
    }

    wrapPhone.removeClass("error");

    return true;
}


function SumValidation() {

    var sumInput = $('#check');
    var wrapSum = $('#check_wrap');

    var strValue = trim(sumInput.val());
    if(isEmpty(strValue))    {
        wrapSum.addClass("error");
        return false;
    }
    
    if(isNaN(strValue)) {
        wrapSum.addClass("error");
        return false;
    }

    var n1 = parseInt(($('#n1')).text(), 10);
    var n2 = parseInt(($('#n2')).text(), 10);
    var s  = parseInt(strValue, 10);
    if((n1+n2)!= s) {
        wrapSum.addClass("error");
        return false;
    }

    wrapSum.removeClass("error");

    return true;
}

function validate() {

    var valid = true;

    if(!FNameValidation())
        valid = false;
	if(!LNameValidation())
        valid = false;	
    if(!EmailValidation())
        valid = false;
	if(!PhoneValidation())
        valid = false;	
    if(!SumValidation())
        valid = false;

    return valid ;
}

function trim(stringToTrim) {
    return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function isEmpty(strValue) {
    if(strValue.length == 0)
        return true;
    return false;
}


