﻿var PCM = (function (window, document, undefined) {

    function _bindNav() {
        var subNav = $("#header .subNav");

        $("#header .subNavOpenLink").click(function () {
            subNav.show();
            return false;
        });
        subNav.click(function (e) {
            e.stopPropagation();
        }).mouseleave(function () {
            subNav.hide();
        });
        $("body").click(function () {
            subNav.hide();
        });

        $(".closeButton", subNav).click(function () {
            subNav.hide();
        });
    }

    /* Home Carousel Functions */

    function _bindHomeCarousel() {
        var container = $("#homeSlider"),
            navItems = $(".nav li", container),
            carousel = $(".slides", container);

        carousel.jcarousel({
            scroll: 1,
            visible: 1,
            animation: 500,
            auto: 6,
            wrap: "circular",
            itemLoadCallback: function (inst, action) {
                navItems.removeClass("active");
                navItems.eq((inst.first % navItems.length) - 1).addClass("active");
            },
            setupCallback: function (inst) {
                $("li", carousel).fadeIn("fast");
            }
        });

        navItems.each(function (i) {
            var navItem = $(this);

            navItem.click(function () {
                navItems.removeClass("active");
                navItem.addClass("active");
                carousel.jcarousel("stopAuto");
                carousel.jcarousel("scroll", i + 1, false);
                return false;
            });
        });

        $(".jcarousel-next", container).click(function () {
            carousel.jcarousel("stopAuto");
        });

        $(".jcarousel-prev", container).click(function () {
            carousel.jcarousel("stopAuto");
        });
    }

    /* Product Tabs Functions */

    function _bindProductTabs() {
        var container = $("#productDetails"),
            tabs = $(".productTabs li", container),
            tiles = $(".productTiles .tile", container);

        tabs.each(function (i) {
            var tab = $(this);

            tab.click(function () {
                if (!tab.hasClass("active")) {
                    tabs.removeClass("active");
                    tiles.hide();
                    tab.addClass("active");
                    tiles.eq(i).show();
                }
                return false;
            });
        });
    }

    function _initialize() {
        _bindNav();
        _bindProductTabs();
        _bindHomeCarousel();
    }

    return {
        init: _initialize
    };

})(this, this.document);
