var YtTools = {
    fontSmall: "font-small",
    fontMedium: "font-medium",
    fontLarge: "font-large",
    widthThin: "width-thin",
    widthWide: "width-wide",
    widthFluid: "width-fluid",
    start: function() {
        YtTools.setDivHeight();
        YtTools.setupFancy();
        YtTools.setupAccordion();
        YtTools.setupTopPanel();
        YtTools.setupStyleSwitcher();
        if (YtSettings.lightbox) {
            YtTools.setupLightbox();
            Lightbox.init()
        }
    },
    include: function(e) {
        $ES("script").each(function(a, b) {
            var c = a.getProperty("src");
            if (c && c.match(/yt_tools\.js(\?.*)?$/)) {
                var d = c.replace(/yt_tools\.js(\?.*)?$/, "") + "addons/";
                document.write("<script language=\"javascript\" src=\"" + d + e + "\" type=\"text/javascript\"></script>")
            }
        })
    },
    setDivHeight: function() {
        YtTools.matchDivHeight("div.topbox div", 0);
        YtTools.matchDivHeight("div.bottombox div", 0, 60);
        YtTools.matchDivHeight("div.maintopbox div div div", 0);
        YtTools.matchDivHeight("div.mainbottombox div div div", 0);
        YtTools.matchDivHeight("div.contenttopbox div div div", 0)
    },
    matchDivHeight: function(d, e, f) {
        var g = 0;
        var h = [];
        var i = $ES(d + " div");
        $ES(d).each(function(a, b) {
            if (!i.test(a)) {
                h.push(a)
            }
        });
        h.each(function(a, b) {
            var c, divPadding;
            if (a.offsetHeight) {
                c = a.offsetHeight;
                divPadding = 0;
                divPadding += a.getStyle("padding-top").toInt();
                divPadding += a.getStyle("padding-bottom").toInt();
                c -= divPadding;
                if (e != undefined) {
                    c -= e
                }
            } else {
                if (a.style.pixelHeight) {
                    c = a.style.pixelHeight
                }
            }
            g = Math.max(g, c)
        });
        if (f != undefined) {
            g = Math.max(g, f)
        }
        h.each(function(a, b) {
            if (window.ie6) {
                a.setStyle("height", g + "px")
            } else {
                a.setStyle("min-height", g + "px")
            }
        })
    },
    setupSlider: function() {
        var a = new SliderMenu(".mainmenu .slider", {
            widthSliderPx: YtSettings.widthSliderPx,
            widthSliderOpenPx: YtSettings.widthSliderOpenPx
        })
    },
    setupAccordion: function() {
        var c = -1;
        this.togglers = $ES("li.toggler");
        this.togglers.each(function(a, b) {
            if (a.hasClass("active")) {
                c = b
            }
        },
        this);
        var d = new Fx.Accordion("li.toggler", "ul.accordion", {
            show: c
        })
    },
    setupFancy: function() {
        new SlideList($E("ul", "menu"), {
            transition: Fx.Transitions.backOut,
            duration: 700
        })
    },
    setupTopPanel: function() {
        var a = $E("#toppanel");
        var b = new SlidePanel(a, $E("#toppanel-wrapper"), YtSettings.heightToppanel, {
            transition: Fx.Transitions.linear,
            duration: 500
        });
        if (a) {
            var c = $E("#toppanel-container .trigger");
            var d = $E("#toppanel .close");
            if (c) {
                c.addEvent("click",
                function() {
                    b.toggle()
                })
            }
            if (d) {
                d.addEvent("click",
                function() {
                    b.toggle()
                })
            }
        }
    },
    setupStyleSwitcher: function() {
        var a = $E("#wrapper").effect("width", {
            duration: 400,
            transition: Fx.Transitions.quadOut,
            onComplete: YtTools.widthSwitchComplete
        });
        var b = new Element(document.body);
        var c = $E("#switchwidththin");
        var d = $E("#switchwidthwide");
        var e = $E("#switchwidthfluid");
        var f = $E("#switchfontsmall");
        var g = $E("#switchfontmedium");
        var h = $E("#switchfontlarge");
        if (c) {
            c.addEvent("click",
            function() {
                YtTools.widthSwitch(a, YtTools.widthThin)
            })
        }
        if (d) {
            d.addEvent("click",
            function() {
                YtTools.widthSwitch(a, YtTools.widthWide)
            })
        }
        if (e) {
            e.addEvent("click",
            function() {
                YtTools.widthSwitch(a, YtTools.widthFluid)
            })
        }
        if (f) {
            f.addEvent("click",
            function() {
                YtTools.fontSwitch(b, YtTools.fontSmall)
            })
        }
        if (g) {
            g.addEvent("click",
            function() {
                YtTools.fontSwitch(b, YtTools.fontMedium)
            })
        }
        if (h) {
            h.addEvent("click",
            function() {
                YtTools.fontSwitch(b, YtTools.fontLarge)
            })
        }
    },
    fontSwitch: function(c, d) {
        var e = [YtTools.fontSmall, YtTools.fontMedium, YtTools.fontLarge];
        e.each(function(a, b) {
            if (a == d) {
                c.addClass(d)
            } else {
                c.removeClass(a)
            }
        });
        YtTools.setStyleFont(d);
        YtTools.setDivHeight()
    },
    widthSwitch: function(a, b) {
        var c = YtTools.getWidthPx(b);
        var d = YtTools.getCurrentWidth();
        YtTools.setStyleWidth(b);
        a.start(d, c)
    },
    widthSwitchComplete: function() {
        var a = Cookie.get("ytstylewidth") || YtSettings.widthDefault;
        if (a == YtTools.widthFluid) {
            $E("#wrapper").setStyle("width", (YtSettings.widthFluidPx * 100) + "%")
        }
        YtTools.setDivHeight()
    },
    getWidthPx: function(a) {
        switch (a) {
        case YtTools.widthThin:
            widthPx = YtSettings.widthThinPx;
            break;
        case YtTools.widthWide:
            widthPx = YtSettings.widthWidePx;
            break;
        case YtTools.widthFluid:
            widthPx = parseInt((Window.getWidth()) * YtSettings.widthFluidPx);
            break
        }
        return widthPx
    },
    getCurrentWidth: function() {
        return YtTools.getWidthPx(Cookie.get("ytstylewidth") || YtSettings.widthDefault)
    },
    setStyleFont: function(a) {
        Cookie.set("ytstylefont", a, {
            path: "/"
        })
    },
    setStyleWidth: function(a) {
        Cookie.set("ytstylewidth", a, {
            path: "/"
        })
    },
    setupLightbox: function() {
        $ES("img.lightbox").each(function(a, b) {
            var c = new Element("a");
            var d = a.getProperty("src").replace(/^(\S+)\.(gif|jpg|jpeg|png)$/, "$1_lightbox.$2");
            c.setProperty("href", d);
            c.setProperty("rel", a.className);
            if (a.getProperty("title")) {
                c.setProperty("title", String(a.getProperty("title")))
            }
            a.clone().injectInside(c);
            a.replaceWith(c)
        })
    }
};
YtTools.include("toppanel.js");
YtTools.include("fancymenu.js");
window.addEvent("load", YtTools.start);