﻿/////////////////////////////////////
// LaerdalJS.js
/////////////////////////////////////

//Root Namespace
/////////////////////////////////////
if (typeof laerdal === "undefined") var laerdal = {};
/////////////////////////////////////

//MUST Declare Sub Namespaces
if (!laerdal.ui) laerdal.ui = {};
if (!laerdal.cart) laerdal.cart = {};
if (!laerdal.shopItems) laerdal.shopItems = {};
if (!laerdal.iframe) laerdal.iframe = {};
/////////////////////////////////////

laerdal.trace = function(msg) {
    if(typeof console != 'undefined' && console.trace)
        console.trace(msg)
}

laerdal.log = function(msg) {
    if (typeof console != 'undefined' && console.log)
        console.log(msg)
}

laerdal.ui.tabs = {
    currentTabId: "",
    iframesLoaded: [],
    // implement / override in client code
    loadAjax: function(loadTabEl, cmd) {
        alert('implement laerdal.ui.tabs.loadAjax(cmd)');
    },

    showTab: function(id) {
        id = id.replace('/', '');
        if (id.indexOf("group") == 0)
            id = "shop";
        else if (id == '')
            id = 'main';
        if (id == this.currentTabId)
            return;
        
        this.currentTabId = id;
        var tabContent = $("#content_" + id);
        if (tabContent.length == 0)
            return;

        $(".ui-tabs-panel").hide();
        tabContent.show();        
        $(".ui-tabs-nav li").removeClass("ui-tabs-selected");

        var title = $(".ui-tabs-nav li#tab_" + id).addClass("ui-tabs-selected").text();
        $.address.title($.address.title().split(' | ')[0] + ' | ' + title);
        var cmd = $("input[name=ajaxcmd]", tabContent);
        if (cmd.length > 0) {
            var iframeOpts = cmd.val().split('|');
            if (iframeOpts[0] == 'iframe') {
                var reload = iframeOpts[1] == null ? false : iframeOpts[1] == 'true' ? true : false;
                if (!laerdal.ui.tabs.iframesLoaded["#content_" + id] || reload) {
                    var iframe = $(tabContent).find('iframe');
                    iframe.attr('src', iframeOpts[2])
                    laerdal.ui.tabs.iframesLoaded["#content_" + id] = true;
                }
            }
            else {
                laerdal.ui.tabs.loadAjax(tabContent, cmd);
            }
        }
    },

    // call on document ready
    loadFromUrl: function() {
        var t = location.hash.replace("#", "");
        if (t.length > 0)
            laerdal.ui.tabs.showTab(t);
    }
}

/////////////////////////////////////
//Namespace: cart
//Info: Methods related to the Cart
/////////////////////////////////////
laerdal.cart = {

    addItemToCart: function ($qty,$btn,itemNo){ 
        $btn.hide();
        var $loadImg = $('<img src="' + _appRoot + '/images/static/ajax-loader.gif" />');
        $btn.after($loadImg);

        var handler1 = function(o) {
            $loadImg.remove();
            $btn.show();
            var $existingPopup = $("#cboxLoadedContent .addedToCartInfo");
            if ($existingPopup.length > 0)
                $existingPopup.fadeOut('fast', function() { $(this).replaceWith(o.ResponseHTML) });
            else {
                $.fancybox({ content: '<div style="width: 800px">' + o.ResponseHTML + '</div>' });
        }
        }
        
        var args = { "method": "add", "partId": itemNo, "qty": parseInt($qty.val()), "source": "shop" };
        $.ajax({ url: _appRoot + "/Services/Cart.ashx", type: "POST", dataType: "json", data: args, success: handler1 });
    }
}
    
/////////////////////////////////////
//Namespace: shopItems
//Info: Methods related to ShopItemList.ascx usercontrol
/////////////////////////////////////
laerdal.shopItems = {

    addOnEnter: function(evt, itemNo) {
        if (evt.keyCode == 13)
            this.addItemToCart(itemNo);
    },
    addItemToCart: function(itemNo, ic) {  // ic=inputcontainer
        var $container = ic ? $(ic) : $("#row_" + itemNo);
        var $qty = $(".qty", $container);
        var $btn = $(".CartButton,.CartButton2", $container);        
        
        laerdal.cart.addItemToCart($qty, $btn, itemNo);
    },
    removeFavItem: function(partNo) {
        var handler1 = function(result) {
            $("tr.row_" + partNo).each(function(i) {
                $(this).animate({ opacity: "hide" }, "slow");
            });
        };
        var args = { method: "delFav", partId: partNo };
        $.ajax({ url: _appRoot + "/Services/Cart.ashx", type: "POST", dataType: "json", data: args, success: handler1 });
    },
    checkNoData: function(text) {
        
    }
}

/////////////////////////////////////
//Namespace: Auto Resize IFrame
//Info: Resizes the height of an IFrame according to its content, does not work on remote content
/////////////////////////////////////
laerdal.iframe = {

    resize: function(frameId) {

        var frame = document.getElementById(frameId);

        function iResize() {
            var innerDoc = (frame.contentDocument) ? frame.contentDocument : frame.contentWindow.document;
            frame.height = innerDoc.body.offsetHeight + 10;
        }

        // Check if browser is Safari or Opera.
        if ($.browser.safari || $.browser.opera) {
            // Start timer when loaded.
            $('#' + frameId).load(function() {
                setTimeout(iResize, 100);
            });

            // Safari and Opera need a kick-start.
            var iSource = frame.src;
            frame.src = '';
            frame.src = iSource;
        }
        else {
            $('#' + frameId).load(function() {
                var innerDoc = (frame.contentDocument) ? frame.contentDocument : frame.contentWindow.document;
                frame.height = innerDoc.body.scrollHeight + 10;
            });
        }

    }
}
