
(function($) {
    // simple jquery plugin to allow image preloading
    var cache = [];
    $.preLoadImages = function() {
        var args_len = arguments.length;
        for (var i = args_len; i--; ) {
            var cacheImage = document.createElement('img');
            cacheImage.src = arguments[i];
            cache.push(cacheImage);
        }
    }

    //custom fade operators that stop dumb transparency problems in IE
    $.fn.customFadeIn = function(speed, callback) {
        $(this).fadeIn(speed, function() {
            if (!$.support.opacity)
                $(this).get(0).style.removeAttribute('filter');
            if (callback != undefined)
                callback();
        });
    };
    $.fn.customFadeOut = function(speed, callback) {
        $(this).fadeOut(speed, function() {
            if (!$.support.opacity)
                $(this).get(0).style.removeAttribute('filter');
            if (callback != undefined)
                callback();
        });
    };
    $.fn.customFadeTo = function(speed, to, callback) {
        return this.animate({ opacity: to }, speed, function() {
        if (to == 100 && jQuery.browser.msie)
                this.style.removeAttribute('filter');
            if (jQuery.isFunction(callback))
                callback();
        });
    };
    
})(jQuery)

// preload all the notification bubble images
$.preLoadImages('/images/theme/dabs_com_v3/en/jgrowl/themes/default/bottom-left-arrow.gif',
                '/images/theme/dabs_com_v3/en/jgrowl/themes/default/bottom-middle-arrow.gif',
                '/images/theme/dabs_com_v3/en/jgrowl/themes/default/bottom-no-arrow.gif',
                '/images/theme/dabs_com_v3/en/jgrowl/themes/default/bottom-right-arrow.gif',
                '/images/theme/dabs_com_v3/en/jgrowl/themes/default/top-left-arrow.gif',
                '/images/theme/dabs_com_v3/en/jgrowl/themes/default/top-middle-arrow.gif',
                '/images/theme/dabs_com_v3/en/jgrowl/themes/default/top-no-arrow.gif',
                '/images/theme/dabs_com_v3/en/jgrowl/themes/default/top-right-arrow.gif',
                '/images/theme/dabs_com_v3/en/jgrowl/themes/default/close-window.gif',
                '/images/theme/dabs_com_v3/en/jgrowl/themes/yellow/bottom-left-arrow.gif',
                '/images/theme/dabs_com_v3/en/jgrowl/themes/yellow/bottom-middle-arrow.gif',
                '/images/theme/dabs_com_v3/en/jgrowl/themes/yellow/bottom-no-arrow.gif',
                '/images/theme/dabs_com_v3/en/jgrowl/themes/yellow/bottom-right-arrow.gif',
                '/images/theme/dabs_com_v3/en/jgrowl/themes/yellow/top-left-arrow.gif',
                '/images/theme/dabs_com_v3/en/jgrowl/themes/yellow/top-middle-arrow.gif',
                '/images/theme/dabs_com_v3/en/jgrowl/themes/yellow/top-no-arrow.gif',
                '/images/theme/dabs_com_v3/en/jgrowl/themes/yellow/top-right-arrow.gif',
                '/images/theme/dabs_com_v3/en/jgrowl/themes/yellow/close-window.gif'
                );


/**
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
* 
* @param  f  onMouseOver function || An object with configuration options
* @param  g  onMouseOut function  || Nothing (use configuration options object)
* @author    Brian Cherne <brian@cherne.net>
*/
(function($) { $.fn.hoverIntent = function(f, g) { var cfg = { sensitivity: 7, interval: 100, timeout: 0 }; cfg = $.extend(cfg, g ? { over: f, out: g} : f); var cX, cY, pX, pY; var track = function(ev) { cX = ev.pageX; cY = ev.pageY; }; var compare = function(ev, ob) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); if ((Math.abs(pX - cX) + Math.abs(pY - cY)) < cfg.sensitivity) { $(ob).unbind("mousemove", track); ob.hoverIntent_s = 1; return cfg.over.apply(ob, [ev]); } else { pX = cX; pY = cY; ob.hoverIntent_t = setTimeout(function() { compare(ev, ob); }, cfg.interval); } }; var delay = function(ev, ob) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); ob.hoverIntent_s = 0; return cfg.out.apply(ob, [ev]); }; var handleHover = function(e) { var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget; while (p && p != this) { try { p = p.parentNode; } catch (e) { p = this; } } if (p == this) { return false; } var ev = jQuery.extend({}, e); var ob = this; if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); } if (e.type == "mouseover") { pX = ev.pageX; pY = ev.pageY; $(ob).bind("mousemove", track); if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout(function() { compare(ev, ob); }, cfg.interval); } } else { $(ob).unbind("mousemove", track); if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout(function() { delay(ev, ob); }, cfg.timeout); } } }; return this.mouseover(handleHover).mouseout(handleHover); }; })(jQuery);




/* ====================================================================== */
/* this is the dabs.com code for the tabbed navigator */

var cancelDelay = false;

$.fn.delay = function(time, callback) {
    // Empty function:
    jQuery.fx.step.delay = function() { };
    // Return meaningless animation, (will be added to queue)
    return this.animate({ delay: 1 }, time, callback);
}

$(document).ready(function() {

    $('div.product-detail-body .tabs ul li:last-child').css('border', 'none');
    
    $('#maintabs ul li[id^="toptab_"]:not(.selected)').hoverIntent(showNavContent, function() { })
    $('#maintabs ul li[id^="toptab_"].selected').hoverIntent(showSelection, function() { })
    $('#navigation').mouseleave(showSelection);
    $('div.category-lines').mouseover(function(e) {
        return false;
    });
});

function showSelection(e) {
    cancelDelay = false;
    $('#maintabs').delay(0, function() {
        if (cancelDelay == false) {
            $('#maintabs ul li').removeClass('hover');
            $('div.level-2 div.category-list').hide();
            $('#catlistcurrent').show();
            $('div.level-3').css('visibility', 'visible');
        };
    });
};

function showNavContent() {
    cancelDelay = true;
    $('div.level-2 div.category-list').hide();
    $('div.level-3').css('visibility', 'hidden');
    var catId = $(this).attr('id').split('_')[1]
    $('#catlist_' + catId).fadeIn(50);
    $('#maintabs ul li').removeClass('hover');
    $(this).addClass('hover');
    return false;
}

/* ====================================================================== */

