﻿var bannerPosition = 0;
var bannerImageCount = 0;
var bannerXml;
var fadeDuration = 1250;
var interval = 10000;
var intervalId = 0;
var regexEmail = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/

$(document).ready(function () {

    loadBannerXml();
    handleModal();

    $(".BannerWrapper").hover(
        function () {
            $(".BannerLeftArrow").show();
            $(".BannerRightArrow").show();
        },
        function () {
            $(".BannerLeftArrow").hide();
            $(".BannerRightArrow").hide();
        }
    );

    $(".BannerWrapper").click(function (event) {

        clearInterval(intervalId);
        window.location = $(".BannerWrapper").attr("href");

    });

    $(".BannerLeftArrow").click(function (event) {

        event.stopPropagation();
        clearInterval(intervalId);
        handleBanner(-1);

    });

    $(".BannerRightArrow").click(function (event) {

        event.stopPropagation();
        clearInterval(intervalId);
        handleBanner(1);

    });

    $(".NewsletterButton").click(function (event) {

        event.preventDefault();
        $(".ModalMask").fadeTo("fast", 0.5);
        $("#NewsletterForm").show("fast");

    });

    $(".ModalClose").click(function () {

        $(".ModalMask").hide();
        $(".ModalContent").hide();

    });

    $(".ModalBody input").focus(function () {

        if ($(this).val() == $(this).attr("default")) {
            $(this).val("");
            $(this).removeClass("ValidFormItem");
        }

    });

    $(".ModalBody input").blur(function () {

        if ($(this).val() == "")
            $(this).val($(this).attr("default"));
        else {

            if ($(this).attr("id") == "txtEmail") {
                if ($(this).val().match(regexEmail))
                    $(this).addClass("ValidFormItem");
            }
            else
                $(this).addClass("ValidFormItem");

        }

    });

    $(".ClearForm").click(function (event) {

        event.preventDefault();
        $(".ModalBody input").each(function () {

            $(this).val($(this).attr("default"));
            $(this).removeClass("ValidFormItem");

        });

        $(".ModalBody select").each(function () {

            $(this).val(0);

        });

    });

    $(".Subscribe").click(function (event) {

        event.preventDefault();

        if (validForm()) {

            var state = ""
            if ($("#ddlState").val() == "--")
                state = $("#txtState").val();

            var dataString = "owner_id_enc=06972k-7c5c8c6f&user_email=" + $("#txtEmail").val()
                             + "&user_fname=" + $("#txtFirstName").val()
                             + "&user_lname=" + $("#txtLastName").val()
                             + "&user_city=" + $("#txtCity").val()
                             + "&user_state=" + $("#ddlState").val()
                             + "&user_state_other=" + state
                             + "&user_country=" + $("#ddlCountry").val()
                             + "&user_phone=" + $("#txtPhone").val()
                             + "&function=Subscribe";

            $.ajax({
                type: "POST",
                url: "http://www.mailermailer.com/x",
                data: dataString,
                dataType: "text",
                complete: function () {

                    $("#NewsletterForm").hide();
                    $("#NewsletterThankYou").show("fast");

                }
            });
        }
    });

});

function handleBanner(offset) {

    clearInterval(intervalId);

    if (bannerPosition + offset < 1)
        bannerPosition = bannerImageCount;
    else if (bannerPosition + offset > bannerImageCount)
        bannerPosition = 1;
    else
        bannerPosition = bannerPosition + offset;

    var banner = $(bannerXml).find("bannerItem[position=" + bannerPosition + "]");
    $(".BannerWrapper").fadeOut(fadeDuration, function () { $(".BannerWrapper").css("background-image", "url(" + $(banner).attr("url") + ")") }).fadeIn(fadeDuration);
    $(".BannerWrapper").attr("href", $(banner).attr("href"));

    intervalId = setInterval('handleBanner(1)', interval);

}

function handleModal() {

    var windowHeight = $(document).height();
    var windowWidth = $(window).width();

    var modalHeight = $(window).height();
    var modalWidth = $(window).width();

    $(".ModalMask").appendTo("body");
    $(".ModalContent").appendTo("body");

    $(".ModalMask").css({ 'width': windowWidth, 'height': windowHeight });

    $(".ModalContent").css('top', modalHeight / 2 - $(".ModalContent").outerHeight() / 2);
    $(".ModalContent").css('left', modalWidth / 2 - $(".ModalContent").outerWidth() / 2);

}

function loadBannerXml() {

    $.ajax({
        type: "GET",
        url: "/App_Templates/Skin_1/Data/Banner.xml",
        dataType: "xml",
        success: function (xml) {

            bannerXml = xml;

            bannerPosition = 1;
            bannerImageCount = $(bannerXml).find("bannerItem").length;

            var banner = $(bannerXml).find("bannerItem[position=" + bannerPosition + "]");
            $(".BannerWrapper").css("background-image", "url(" + $(banner).attr("url") + ")");
            $(".BannerWrapper").attr("href", $(banner).attr("href"));

            intervalId = setInterval('handleBanner(1)', interval);

        }
    });
}

function validForm() {

    var errorMessage = "";

    $("#txtFirstName").removeClass("ValidFormItem");
    $("#txtLastName").removeClass("ValidFormItem");
    $("#txtEmail").removeClass("ValidFormItem");
    $("#txtPhone").removeClass("ValidFormItem");
    $("#txtCity").removeClass("ValidFormItem");

    if ($("#txtFirstName").val() == "" || $("#txtFirstName").val() == $("#txtFirstName").attr("default"))
        errorMessage += "\n\t First Name is required.";
    else
        $("#txtFirstName").addClass("ValidFormItem");

    if ($("#txtLastName").val() == "" || $("#txtLastName").val() == $("#txtLastName").attr("default"))
        errorMessage += "\n\t Last Name is required.";
    else
        $("#txtLastName").addClass("ValidFormItem");

    if ($("#txtEmail").val() == "" || $("#txtEmail").val() == $("#txtEmail").attr("default"))
        errorMessage += "\n\t Email Address is required.";
    else if (!$("#txtEmail").val().match(regexEmail))
        errorMessage += "\n\t A valid Email Address is required.";
    else
        $("#txtEmail").addClass("ValidFormItem");

    if ($("#txtPhone").val() == "" || $("#txtPhone").val() == $("#txtPhone").attr("default"))
        errorMessage += "\n\t Phone Number is required.";
    else
        $("#txtPhone").addClass("ValidFormItem");

    if ($("#txtCity").val() == "" || $("#txtCity").val() == $("#txtCity").attr("default"))
        errorMessage += "\n\t City is required.";
    else
        $("#txtCity").addClass("ValidFormItem");

    if ($("#ddlState option:selected").val() == "--" && ($("#txtState").val() == "" || $("#txtState").val() == $("#txtState").attr("default")))
        errorMessage += "\n\t State is required.";

    if ($("#ddlCountry option:selected").val() == "--")
        errorMessage += "\n\t Country is required.";

    if (errorMessage.length > 0) {
        alert("The following errors were encountered: \n" + errorMessage);
        return false;
    }
    else
        return true;

}
