/*global $ jQuery fb */

$(document).ready(function () {
    
    var showSuccess, showError, showArrows, hideArrows;
    
    // Display the success "thank you" message in a lightbox.
    showSuccess = function (id) {
        
        var url;
        
        url = "/iframes/join-mailing-list.php";
        url += "?name=" + $("#JoinMailingListName").val();
        url += "&id=" + id;
        
        $.fn.colorbox({
            iframe: true,
            href: url,
            title: "Thank You!",
            width: "400px",
            height: "300px"
        });
        $("#JoinMailingList form").get(0).reset();

    };
    
    // Display an error message in a lightbox.
    showError = function () {
        
        var url;
        
        url = "/iframes/join-mailing-list.php?error=1";
        
        $.fn.colorbox({
            iframe: true,
            href: url,
            title: "An error occured",
            width: "400px",
            height: "300px"
        });
        $("#JoinMailingList form").get(0).reset();

    };

    // Show the arrows and disable the submit button.
    showArrows = function () {
        $("#JoinMailingListArrows").show();
        $("#JoinMailingListSubmit").attr("disabled", "true");
    };
    
    // Hide the arrows and re-enable the submit button.
    hideArrows = function () {
        $("#JoinMailingListArrows").hide();
        $("#JoinMailingListSubmit").removeAttr("disabled");
    };
    
    // Form validation
    $("#JoinMailingList form").validate({
        rules: {
            JoinMailingListName: "required",
            JoinMailingListEmail: {
                required: true,
                email: true
            }
        },
        messages: {
            JoinMailingListName: "Please include your name.",
            JoinMailingListEmail: "Please provide a valid e-mail address."
        },
        submitHandler: function (form) {
            
            console.log("Submit!");
            
            var fields;
            
            fields = {};
            
            fields.campaignID = $("#JoinMailingListCampaignID").val(); 
            fields.name = $("#JoinMailingListName").val();
            fields.email = $("#JoinMailingListEmail").val();
            fields.title = $("#JoinMailingListPosition").val();
            fields.district = $("#JoinMailingListDistrict").val();
            fields.school = $("#JoinMailingListSchool").val();
            fields.zip = $("#JoinMailingListZip").val();
         
            $.ajax({
                beforeSend: function () {
                    showArrows();
                },
                cache: false,
                data: fields,
                dataType: "json",
                error: function () {
                    hideArrows();
                    showError();
                },
                success: function (data) {
                    
                    // Data stored successfully.
                    if (data.success) {
                        hideArrows();
                        showSuccess(data.insert_id);
                    }
                    
                    // Unable to store.
                    else {
                        hideArrows();
                        showError();
                    }

                },
                url: "/scripts/camp/store-contact.php"
            });

        }
    });           
  
});
