var cf = {
    formURI: '/ContactForm/contactform.html',
    emailerURI: '/ContactForm/emailer.php',
    validateContactForm: function(){
        $("#contact-button").live('click',function(){
            var errored = false;
            $('span.field-error').remove();
            $('.form-label-error').removeClass('form-label-error');
            $('.form-field-error').removeClass('form-field-error');


            if($("#name").val().length == 0){
                cf.addErrorClass("#name-label", "#name", "Please provide a name entry.");
                errored = true;
            }

            if($("#phone").val().length == 0){
                cf.addErrorClass("#phone-label", "#phone", "Please provide a phone entry.");
                errored = true;
            }

            var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
            if($("#email").val().length == 0){
                cf.addErrorClass("#email-label", "#email", "Please provide a email entry.");
                errored = true;
            } else if(reg.test($("#email").val()) == false) {
                cf.addErrorClass("#email-label", "#email", "Please provide a valid email entry.");
                errored = true;
            }

            if($("#message").val().length == 0){
                cf.addErrorClass("#message-label", "#message", "Please provide a message entry.");
                errored = true;
            }

            if($("#filter").val() != '6'){ //SET THIS TO BE THE ANSWER TO THE FILTER QUESTION
                cf.addErrorClass("#filter-label", "#filter", "Incorrect answer. Please try again.");
                errored = true;
            }


            if(errored){
               return false;
            }else{               
               $.ajax({
                    url: cf.emailerURI, //MAKE SURE THAT THIS HAS THE CORRECT PATH
                    type: 'post',
                    data: $("#contact-form").serialize(),
                    success: function(data){
                            $("#load-me").html("").html(data);
                    }
                });
                return true;
            }
        });
    },

    loadContactForm: function(){
        if($("#contact-form-container").length > 0){
            $("#load-me").load(this.formURI);
        }
    },

    resetFormListener: function(){
            $("a#resetform").live('click', function(){
                    cf.loadContactForm();
            });
    },

    addErrorClass: function(label,field, msg){
        $(label).append('<span class="field-error form-label-error">' + msg + '</span>');
        $(field).addClass('form-field-error');
    },

    bindSpinner:function(){
        $("#spinner").bind("ajaxSend", function() {
		$(this).show();
	}).bind("ajaxStop", function() {
		$(this).hide();
	}).bind("ajaxError", function() {
		$(this).hide();
	});
    },

    logError: function(msg){
        console.log(msg);
    },

    init: function(){
        this.bindSpinner();
        this.validateContactForm();
        this.resetFormListener();
        this.loadContactForm();
    }
};

$(function(){
    cf.init();
});
