var cf = {
    formURI    : '/ContactForm/index.html',
    emailerURI : '/ContactForm/emailer.php',
    overlay    : $(jQuery('<div id="overlay"></div>')),
    container  : $(jQuery('<div id="lightbox" style="display:none;"></div>')),
    target     : $(jQuery('<div id="target"></div>')),
    close      : $(jQuery('<a href="#close" class="close">&times Close</a>')),
    form       : $("#contact-form-container"),

    hideLastContactUs: function(){
        $("#footer p a").each(function(){
            if($(this).attr('href') == 'pages/contact-emc-advertising.php' ||
                $(this).attr('href') == 'contact-emc-advertising.php'){
                $(this).hide();
            }
        });
    },

    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-number").val().length == 0){
                cf.addErrorClass("#phone-number-label", "#phone-number", "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){
                            $("#contact-form").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();
	});
    },

    lightboxCloseListener: function(){
        this.close.click(function(e){
            e.preventDefault();
            cf.overlay.add(cf.container).fadeOut('normal');
            if($.browser.msie || $.browser.webkit){
                $("#mainpic").show();
                $("#maintext iframe").show();
            }
        });

    },

    lightboxTrigger: function(){
        $("a.contact-us").click(function(){
            $('body').append(cf.overlay).append(cf.container);
            $("#overlay").fadeIn();
            cf.container.append(cf.close).append(cf.target);
            cf.target.load(cf.formURI);
            cf.container.slideDown('slow');
            cf.container.css({
                //'top': Math.round(($(window).height() - cf.container.outerHeight())/2) + 'px',
                'top': '25px',
                'left' : Math.round(($(window).width() - cf.container.outerWidth())/2) + 'px',
                'margin-top':0,
                'margin-left': 0
                });

            if($.browser.msie || $.browser.webkit){
                $("#mainpic").hide();
                $("#maintext iframe").hide();
            }
        });
        
    },

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

    init: function(){
        this.bindSpinner();
        this.validateContactForm();
        this.resetFormListener();
        //this.loadContactForm();
        this.lightboxTrigger();
        this.lightboxCloseListener();
        this.hideLastContactUs();
    }
};

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