
var Dropdown = {
    init: function () {
        $$("#tabs-container > ul > li").each(
            function (elm) {
                elm.observe("mouseenter", Dropdown.over);
                elm.observe("mouseleave", Dropdown.out);
            }
        );
    },
    
    over: function (event) {
        clearTimeout(Dropdown.timeout);
        $$("#tabs-container > ul > li.hover").invoke("removeClassName", "hover");
        var elm = $(event.target);
        if (!elm.match("#tabs-container > ul > li")) {
            elm = elm.up("#tabs-container > ul > li");
        }
        elm.addClassName("hover");
    },
    
    out: function (event) {
        var elm = $(event.target);
        if (!elm.match("#tabs-container > ul > li")) {
            elm = elm.up("#tabs-container > ul > li");
        }
        Dropdown.timeout = setTimeout(function () {
                elm.removeClassName("hover");
            }, 300);
        
    }
};


var HoverIconSwap = {
    register_all: function () {
        $$('.background-icon').each(HoverIconSwap.register);
    },
    register: function (elm) {
        elm = $(elm);

        elm.observe('mouseover', HoverIconSwap.mouseover);
        elm.observe('mouseout', HoverIconSwap.mouseout);
    },
    mouseover: function (e) {
        var elm = $(e.target);

        elm.addClassName("hover_swap");
    },
    mouseout: function (e) {
        var elm = $(e.target);

        elm.removeClassName("hover_swap");
    },
    getFileName: function (elm) {
        var fileName = elm.src.split("/");
        return fileName[fileName.length - 1];
    }
};
document.observe("dom:loaded", HoverIconSwap.register_all);


var Sprite = {
    SPACER: "icon_spacer.gif",
    src: function (elm, name) {
        elm = $(elm);
        Sprite.clear(elm);
        elm.addClassName("s_" + name);
    },
    replace: function (elm, orig, replacement) {
        elm.className = elm.className.replace(orig, replacement);
    },
    clear: function (elm) {
        elm = $(elm);
        elm.className = elm.classNames().reject(function (x) {
            return !x.indexOf("s_");
        }).join(" ");
    },
    make: function (name, attr) {
        attr.src = Sprite.SPACER;
        attr['class'] = " " + attr['class'] || "";
        attr['class'] = "sprite s_" + name + attr['class'];

        return new Element("img", attr);
    },
    get: function (elm) {
        return elm.className;
    },
    set: function (elm, val) {
        elm.className = val;
        elm.src = Sprite.SPACER;
    }
};

