﻿/*
	Slimbox v1.64 - The ultimate lightweight Lightbox clone
	(c) 2007-2008 Christophe Beyls <http://www.digitalia.be>
	MIT-style license.
*/
var popup_selectArray;
function ShowDropDown(_show_) {
    if (!_show_) {
        //alert("!_show_")
        popup_selectArray = new Array();
        var selects = $(document.body).getElements('select');
        for (var i = 0; i < selects.length; i++) {
            var s = selects[i];
            popup_selectArray[i] = selects[i];

            s.style.visibility = 'hidden';
            /*var sValue = '&nbsp;';
            if (s.options && selects[i].selectedIndex >= 0)
                sValue = s.options[selects[i].selectedIndex].text;
            var a_left = 0, a_top = 0;
            for (var p = s; p != null; p = p.offsetParent) {
                a_left += p.offsetLeft;
                a_top += p.offsetTop;
            }
            document.body.insertAdjacentHTML('BeforeEnd',
            //document.body.appendChild(
					'<span id="popup-adjacent" ' +
					'class="' + s.className + '"' +
					'style="position: absolute;left:' + a_left + ';top:' +
					a_top + ';width:' + s.offsetWidth + ';height:' +
					s.offsetHeight + ';padding-left:4;padding-top:2">' + sValue + '</span>'
					);*/
        }
    }
    else {
        for (var i = 0; i < popup_selectArray.length; i++) {
            popup_selectArray[i].style.visibility = 'visible';
        }
        //var adjacents = document.all['popup-adjacent'];
        /*var adjacents = $(document.body).getElements('span[id=popup-adjacent]');
        if (adjacents && adjacents.length) {
            for (var i = adjacents.length - 1; i >= 0; i--) {
                adjacents[i].outerHTML = '';
            }
        } else if (adjacents && adjacents.outerHTML) {
            adjacents.outerHTML = '';
        }*/
    }
}

var Slimbox; (function() { var G = 0, F, L, B, S, T, O, E, M, J = new Image(), K = new Image(), X, a, P, H, W, Z, I, Y, C; window.addEvent("domready", function() { $(document.body).adopt($$([X = new Element("div", { id: "lbOverlay" }).addEvent("click", N), a = new Element("div", { id: "lbCenter" }), Z = new Element("div", { id: "lbBottomContainer" })]).setStyle("display", "none")); P = new Element("div", { id: "lbImage" }).injectInside(a).adopt(H = new Element("a", { id: "lbPrevLink", href: "#" }).addEvent("click", D), W = new Element("a", { id: "lbNextLink", href: "#" }).addEvent("click", R)); I = new Element("div", { id: "lbBottom" }).injectInside(Z).adopt(new Element("a", { id: "lbCloseLink", href: "#" }).addEvent("click", N), Y = new Element("div", { id: "lbCaption" }), C = new Element("div", { id: "lbNumber" }), new Element("div", { styles: { clear: "both"} })); E = { overlay: new Fx.Tween(X, { property: "opacity", duration: 500 }).set(0), image: new Fx.Tween(P, { property: "opacity", duration: 500, onComplete: A }), bottom: new Fx.Tween(I, { property: "margin-top", duration: 400 })} }); Slimbox = { open: function(e, d, c) { ShowDropDown(false); F = $extend({ loop: false, overlayOpacity: 0.8, resizeDuration: 400, resizeTransition: false, initialWidth: 250, initialHeight: 250, animateCaption: true, showCounter: true, counterText: "Фото {x} из {y}" }, c || {}); if (typeof e == "string") { e = [[e, d]]; d = 0 } L = e; F.loop = F.loop && (L.length > 1); b(); Q(true); O = window.getScrollTop() + (window.getHeight() / 15); E.resize = new Fx.Morph(a, $extend({ duration: F.resizeDuration, onComplete: A }, F.resizeTransition ? { transition: F.resizeTransition} : {})); a.setStyles({ top: O, width: F.initialWidth, height: F.initialHeight, marginLeft: -(F.initialWidth / 2), display: "" }); E.overlay.start(F.overlayOpacity); G = 1; return U(d) } }; Element.implement({ slimbox: function(c, d) { $$(this).slimbox(c, d); return this } }); Elements.implement({ slimbox: function(c, f, e) { f = f || function(g) { return [g.href, g.title] }; e = e || function() { return true }; var d = this; d.removeEvents("click").addEvent("click", function() { var g = d.filter(e, this); return Slimbox.open(g.map(f), g.indexOf(this), c) }); return d } }); function b() { X.setStyles({ top: window.getScrollTop(), height: window.getHeight() }) } function Q(c) { ["object", window.ie ? "select" : "embed"].forEach(function(e) { Array.forEach(document.getElementsByTagName(e), function(f) { if (c) { f._slimbox = f.style.visibility } f.style.visibility = c ? "hidden" : f._slimbox }) }); X.style.display = c ? "" : "none"; var d = c ? "addEvent" : "removeEvent"; window[d]("scroll", b)[d]("resize", b); document[d]("keydown", V) } function V(c) { switch (c.code) { case 27: case 88: case 67: N(); break; case 37: case 80: D(); break; case 39: case 78: R() } return false } function D() { return U(S) } function R() { return U(T) } function U(c) { if ((G == 1) && (c >= 0)) { G = 2; B = c; S = ((B || !F.loop) ? B : L.length) - 1; T = B + 1; if (T == L.length) { T = F.loop ? 0 : -1 } $$(H, W, P, Z).setStyle("display", "none"); E.bottom.cancel().set(0); E.image.set(0); a.className = "lbLoading"; M = new Image(); M.onload = A; M.src = L[c][0] } return false } function A() { switch (G++) { case 2: a.className = ""; P.setStyles({ backgroundImage: "url(" + L[B][0] + ")", display: "" }); $$(P, I).setStyle("width", M.width); $$(P, H, W).setStyle("height", M.height); Y.set("html", L[B][1] || ""); C.set("html", (F.showCounter && (L.length > 1)) ? F.counterText.replace(/{x}/, B + 1).replace(/{y}/, L.length) : ""); if (S >= 0) { J.src = L[S][0] } if (T >= 0) { K.src = L[T][0] } if (a.clientHeight != P.offsetHeight) { E.resize.start({ height: P.offsetHeight }); break } G++; case 3: if (a.clientWidth != P.offsetWidth) { E.resize.start({ width: P.offsetWidth, marginLeft: -P.offsetWidth / 2 }); break } G++; case 4: Z.setStyles({ top: O + a.clientHeight, marginLeft: a.style.marginLeft, visibility: "hidden", display: "" }); E.image.start(1); break; case 5: if (S >= 0) { H.style.display = "" } if (T >= 0) { W.style.display = "" } if (F.animateCaption) { E.bottom.set(-I.offsetHeight).start(0) } Z.style.visibility = ""; G = 1 } } function N() { if (G) { G = 0; M.onload = $empty; for (var c in E) { E[c].cancel() } $$(a, Z).setStyle("display", "none"); E.overlay.chain(Q).start(0) } ShowDropDown(true); return false } })();

// AUTOLOAD CODE BLOCK (MAY BE CHANGED OR REMOVED)
Slimbox.scanPage = function() {
	var links = $$("a").filter(function(el) {
		return el.rel && el.rel.test(/^lightbox/i);
	});
	$$(links).slimbox({ overlayOpacity: 0.4 /* Put custom options here */ }, null, function(el) {
		return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
	});
};
window.addEvent("domready", Slimbox.scanPage);
if (typeof HTMLElement != "undefined" && !
HTMLElement.prototype.insertAdjacentElement) {
    HTMLElement.prototype.insertAdjacentElement = function
(where, parsedNode) {
        switch (where) {
            case 'beforeBegin':
                this.parentNode.insertBefore(parsedNode, this)
                break;
            case 'afterBegin':
                this.insertBefore(parsedNode, this.firstChild);
                break;
            case 'beforeEnd':
                this.appendChild(parsedNode);
                break;
            case 'afterEnd':
                if (this.nextSibling)
                    this.parentNode.insertBefore(parsedNode, this.nextSibling);
                else this.parentNode.appendChild(parsedNode);
                break;
        }
    }

    HTMLElement.prototype.insertAdjacentHTML = function
(where, htmlStr) {
        var r = this.ownerDocument.createRange();
        r.setStartBefore(this);
        var parsedHTML = r.createContextualFragment(htmlStr);
        this.insertAdjacentElement(where, parsedHTML)
    }


    HTMLElement.prototype.insertAdjacentText = function
(where, txtStr) {
        var parsedText = document.createTextNode(txtStr)
        this.insertAdjacentElement(where, parsedText)
    }
}

