// START: MiniCart Object
var miniCart = function MiniCart() {
    if (this instanceof MiniCart) {

        var that = this;
        this.itemCount;
        var processing = false;
        var processed = false;

        this.addMiniCartItem = function (text, price) {
            var line = '<tr><td colspan="2">' + text + '</td><td style="text-align: right;">' + price + '</td></tr>';
            $('#ctl00_BodyHeader_StatelessItemsTable > tbody').append(line);
        }

        this.clearMiniCartContents = function () {
            $('#ctl00_BodyHeader_StatelessItemsTable > tbody').empty();
        }

        this.refreshMiniCartContents = function () {
            that.processed = false;
        }

        this.getMiniCartContents = function () {
            if (that.processed === true)
                return;

            if (that.processing === true)
                return;

            that.processing = true;

            that.showLoadingState();

            $.ajax({
                type: "POST",
                url: "/cart/default.aspx/GetMiniCartContents",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (r) {
                    that.clearMiniCartContents();
                    that.itemCount = r.d.length;
                    if (that.itemCount === 0)
                        that.showEmptyState();
                    else {
                        that.miniCartShowContents();
                        for (var i in r.d) {
                            that.addMiniCartItem(r.d[i].Text, r.d[i].Price);
                        }
                    }

                    that.processing = false;
                    that.processed = true;
                }
            });
        }

        this.miniCartShowContents = function () {
            $('#miniCartLoading').hide();
            $('#miniCartContents').show();
            $('#miniCartEmpty').hide();
        }

        this.showEmptyState = function () {
            $('#miniCartLoading').hide();
            $('#miniCartContents').hide();
            $('#miniCartEmpty').show();
        }

        this.showLoadingState = function () {
            $('#miniCartLoading').show();
            $('#miniCartContents').hide();
            $('#miniCartEmpty').hide();
        }
    }
    else {
        return new MiniCart();
    }
}();
// END: MiniCart Object

// Search Box Balloons Code
$(document).ready(function () {

    //  MiniCart Fix
    $('.nav_main DIV.minicart').hover(function () {
        $(this).addClass('hover');
        miniCart.getMiniCartContents();
    }, function () { $(this).removeClass('hover'); });
    $('.nav_main DIV.minicart DIV.mc_box').bgiframe();

    // Tabs
    $("#content_rotator_1").tabs({ fx: { opacity: "toggle"} }).tabs("rotate", 8000);
    $("#content_rotator_2").tabs({ fx: { opacity: "toggle"} }).tabs("rotate", 8000);
    $('#container-1').tabs();



    //// Tool Tips ////
    $('A.sTipLnk').tooltip2({ extraClass: "sTip", track: false, delay: 100, showURL: false, showBody: " - ", opacity: 0.95, fade: 0, htmlPrefix: "<div class='sTipSub'>", htmlAppend: "</div><div class='sTipFtr'></div>", passClass: true, excludeClass: "sTipLnk" });

    //// Tool Tips - DEPRICATED ////
    $('A.info_1').Tooltip({ extraClass: "hoverbox_1", track: false, delay: 250, showURL: false, showBody: " - ", fade: 250 });


    // Search Box Balloons Code - Register
    $(".register_balloon").click(function () {
        $(".search A").removeClass("here");
        $(".register_balloon").addClass("here");
        $(".search_type").val("type_register");
        if ($("INPUT.input").val() == "" || $("INPUT.input").val() == "Transfer A Domain" || $("INPUT.input").val() == "Look Up A Domain" || $("INPUT.input").val() == "Manage A Domain") {
            $("INPUT.input").val("Register A Domain");
        };
        return false;
    });
    // Search Box Balloons Code - Transfer  
    $(".transfer_balloon").click(function () {
        $(".search A").removeClass("here");
        $(".transfer_balloon").addClass("here");
        $(".search_type").val("type_transfer");
        if ($("INPUT.input").val() == "Register A Domain" || $("INPUT.input").val() == "" || $("INPUT.input").val() == "Look Up A Domain" || $("INPUT.input").val() == "Manage A Domain") {
            $("INPUT.input").val("Transfer A Domain");
        };
        return false;
    });
    // Search Box Balloons Code - WHOIS    
    $(".whois_balloon").click(function () {
        $(".search A").removeClass("here");
        $(".whois_balloon").addClass("here");
        $(".search_type").val("type_whois");
        if ($("INPUT.input").val() == "Register A Domain" || $("INPUT.input").val() == "Transfer A Domain" || $("INPUT.input").val() == "" || $("INPUT.input").val() == "Manage A Domain") {
            $("INPUT.input").val("Look Up A Domain");
        };
        return false;
    });
    // Search Box Balloons Code - Manage    
    $(".manage_balloon").click(function () {
        $(".search A").removeClass("here");
        $(".manage_balloon").addClass("here");
        $(".search_type").val("type_manage");
        if ($("INPUT.input").val() == "Register A Domain" || $("INPUT.input").val() == "Transfer A Domain" || $("INPUT.input").val() == "Look Up A Domain" || $("INPUT.input").val() == "") {
            $("INPUT.input").val("Manage A Domain");
        };
        return false;
    });

    // Search Box Text Box Code - Focus   
    $("INPUT.input").focus(function () {
        if ($("INPUT.input").val() == "Register A Domain" || $("INPUT.input").val() == "Transfer A Domain" || $("INPUT.input").val() == "Look Up A Domain" || $("INPUT.input").val() == "Manage A Domain") {
            $("INPUT.input").val("");
            $("INPUT.input").addClass("focused");
        };
        return false;
    });


    /* START: DL Expand & Collapse */
    $(".sDLExp").before("<ul class=\"sDLExpCol\"><li class=\"sDLExpShow\"><a href=\"#\">Expand all</a></li><li class=\"sDLExpHide\"><a href=\"#\">Collapse all</a></li></ul>");
    $(".sDLExpHide").hide();
    $(".sDLExpShow").click(function () { $(this).toggle(); $(this).next().toggle(); $(this).parent().next().children("DD").show(); $(this).parent().next().children("DT").removeClass("sClose").addClass("sOpen"); return false; });
    $(".sDLExpHide").click(function () { $(this).toggle(); $(this).prev().toggle(); $(this).parent().next().children("DD").hide(); $(this).parent().next().children("DT").addClass("sClose").removeClass("sOpen"); return false; });
    $(".sDLExp DT").addClass("sClose").toggle(function () { $(this).toggleClass("sClose").toggleClass("sOpen"); }, function () { $(this).toggleClass("sClose").toggleClass("sOpen"); }).click(function () { $(this).next().toggle(); });
    $(".sDLExp DT STRONG").each(function () { $(this).replaceWith("<a href='#'>" + $(this).text() + "</a>"); });
    $(".sDLExp DD").hide();
    /* END: DL Expand & Collapse */


    //// Table Of Contents Pluging ////
    $('#toc').toc({ exclude: 'h1, h3, h5, h6' });
});
