/*Class: XBox [Built on MooTools framework: www.mootools.net]Author: Martin Jezek 2009Version: 1.5*/var XBox = new Class({    Implements: Options,    options: {        image: "Obrázek",        of: "z"    },    initialize: function(options) {        this.setOptions(options);        this.addXboxWall();        this.addXboxBody();        this.addTweens();        this.applyXbox();    },    now: 0,    images_count: 0,    scroll_top: 0,    page_height: 0,    resizeXbox: function() {        if ($("xbox_wall").getStyle("display") == "block") {            window.scrollTo(0, this.scroll_top);        }        $("xbox_wall").setStyle("width", document.getWidth());        $("xbox_wall").setStyle("height", this.page_height);        $("xbox_wall").setStyle("height", window.getScrollHeight() + 50);    },    addXboxWall: function() {        this.xbox_wall = new Element("div", {            "id": "xbox_wall"        });        this.xbox_wall.setOpacity(.85);        this.xbox_wall.setStyle("width", window.getScrollWidth());        this.xbox_wall.setStyle("height", window.getScrollHeight());        this.xbox_wall.inject(document.body);        this.page_height = window.getScrollHeight();    },    addXboxBody: function() {        this.xbox_body = new Element("div", {            "id": "xbox_body"        });        this.xbox_body.set('html', '<div id="xbox_body_content"><div class="wysiwyg" id="xbox_html"></div><p id="xbox_image_title"></p><span id="xbox_image_close"></span><a href="#prev" id="xbox_image_prev"></a><a href="#next" id="xbox_image_next"></a></div>');        this.xbox_body.inject(document.body);        this.xboxImage = new Image();        $("xbox_body_content").appendChild(this.xboxImage);        this.xboxImage = $("xbox_body_content").getElements("img")[0];        this.xboxImage.inject($("xbox_html"), "after");				this.xboxImage.id = "xbox_image";        $("xbox_image_close").addEvent("click", this.removeXbox.bindWithEvent(this));        $("xbox_body").addEvent("click", this.removeXbox.bindWithEvent(this));        $("xbox_wall").addEvent("click", this.removeXbox.bindWithEvent(this));        $("xbox_body_content").addEvent("click",        function(event) {            event.stopPropagation();        });        $("xbox_image_next").addEvent("click", this.switchXboxImage.bind(this, {            step: 1        }));        $("xbox_image_prev").addEvent("click", this.switchXboxImage.bind(this, {            step: -1        }));    },    removeXbox: function(event) {        this.now = 0;        $("xbox_wall").setStyle("display", "none");        $("xbox_body").setStyle("display", "none");        $("xbox_wall").setStyle("width", document.getWidth());        $("xbox_wall").setStyle("height", window.getScrollHeight());        event.stopPropagation();    },    addTweens: function() {        this.tween_height = new Fx.Tween($("xbox_body_content"), {            property: "height"        });        this.tween_width = new Fx.Tween($("xbox_body_content"), {            property: "width"        });        this.tween_opacity = new Fx.Tween($("xbox_image"), {            property: "opacity",            duration: 400        });        this.tween_html_opacity = new Fx.Tween($("xbox_html"), {            property: "opacity",            duration: 400        });    },    applyXbox: function() {        $$("a.xbox").each(function(image, index) {            image.addEvent("click", this.showXbox.bind(this, {                src: image,                index: index            }));        },        this);        window.addEvent("resize", this.resizeXbox.bind(this));        this.images_count = $$("a.xbox").length;        $$(".htmlbox").each(function(html) {            html.addEvent("click", this.showXbox.bind(this, {                html: html            }));        },        this);    },    showXbox: function(image) {        $("xbox_html").innerHTML = "";        $("xbox_html").setStyle("display", "none");        $("xbox_image").setStyle("display", "none");        $("xbox_body_content").setStyle("width", 300);        $("xbox_body_content").setStyle("height", 200);        this.scroll_top = window.getScrollTop();        $("xbox_body").setStyle("top", this.scroll_top + 50);        $("xbox_wall").setStyle("display", "block");        $("xbox_body").setStyle("display", "block");        if (typeof(image.html) != "undefined") {            this.showXboxHTML(image.html);        } else {            this.now = image.index;            this.showXboxImage();        }        return false;    },    showXboxHTML: function(html) {        if ($("xbox_body_content").hasClass("disabled")) {            $("xbox_body_content").removeClass("disabled");        }        $("xbox_html").fade(0);        $("xbox_image_prev").setStyle("display", "none");        $("xbox_image_next").setStyle("display", "none");        $("xbox_image_close").setStyle("display", "none");        $("xbox_image_title").setStyle("display", "none");//        $(html.rel).setStyle("display", "block");        this.xboxHtmlWidth = $(html.rel).getStyle("width");        this.xboxHtmlHeight = $(html.rel).getStyle("height");//        $(html.rel).setStyle("display", "none");        if (html.rel != "") { (function() {                $("xbox_body_content").addClass("disabled");                this.tween_width.start($("xbox_body_content").getStyle("width"), this.xboxHtmlWidth).chain(function() {                    this.tween_height.start($("xbox_body_content").getStyle("height"), this.xboxHtmlHeight).chain(function() { (function() {                            $("xbox_html").setStyle("display", "block").adopt($(html.rel).clone(true));                            this.tween_html_opacity.set(1);                            $("xbox_image_close").setStyle("display", "block");                            this.resizeXbox();                        }).bind(this).delay(100);                    }.bind(this));                }.bind(this));            }).bind(this).delay(750);        }    },    showXboxImage: function() {        if ($("xbox_body_content").hasClass("disabled")) {            $("xbox_body_content").removeClass("disabled");        }        $("xbox_image").setStyle("display", "none");        $("xbox_image").fade(0);        $("xbox_image_close").setStyle("display", "none");        $("xbox_image_title").setStyle("display", "none");        $("xbox_image_prev").setStyle("display", "none");        $("xbox_image_next").setStyle("display", "none");        this.xboxImageTemp = new Image();        this.xboxImageTemp.onload = this.onImageTempLoad.bind(this);        this.xboxImageTemp.src = $$("a.xbox")[this.now].href;        $("xbox_image_title").innerHTML = $$("a.xbox")[this.now].title;        if (this.images_count > 1) {            $("xbox_image_title").innerHTML += "<span>" + this.options.image + " " + (this.now + 1) + " " + this.options.of + " " + this.images_count + "</span>";        }    },    onImageTempLoad: function() { (function() {            $("xbox_body_content").addClass("disabled");            this.tween_width.start($("xbox_body_content").getStyle("width"), this.xboxImageTemp.width).chain(function() {                this.tween_height.start($("xbox_body_content").getStyle("height"), this.xboxImageTemp.height).chain(function() {                    $("xbox_image").src = this.xboxImageTemp.src;                    $("xbox_image_prev").setStyle("height", this.xboxImageTemp.height);                    $("xbox_image_next").setStyle("height", this.xboxImageTemp.height); (function() {                        $("xbox_image").setStyle("display", "block");                        this.tween_opacity.start(0, 1);                        this.resizeXbox();                        $("xbox_image_close").setStyle("display", "block");                        $("xbox_image_title").setStyle("display", "block");                        $("xbox_image_prev").setStyle("display", "block");                        $("xbox_image_next").setStyle("display", "block");                        this.showXboxNavigation();                        this.resizeXbox();                    }).bind(this).delay(100);                }.bind(this));            }.bind(this));        }).bind(this).delay(750);    },    showXboxNavigation: function() {        if (this.images_count > 1 && this.now == 0) {            $("xbox_image_next").setStyle("display", "block");            $("xbox_image_prev").setStyle("display", "none");        } else if (this.images_count > 1 && this.now == this.images_count - 1) {            $("xbox_image_next").setStyle("display", "none");            $("xbox_image_prev").setStyle("display", "block");        } else if (this.images_count > 1) {            $("xbox_image_next").setStyle("display", "block");            $("xbox_image_prev").setStyle("display", "block");        } else {            $("xbox_image_next").setStyle("display", "none");            $("xbox_image_prev").setStyle("display", "none");        }    },    switchXboxImage: function(image) {        $("xbox_image_next").blur();        $("xbox_image_prev").blur();        this.now = this.now + image.step;        this.showXboxImage();        return false;    }});
