﻿/** Smoothbox v20080623 by Boris Popoff (http://gueschla.com)* To be used with mootools 1.2** Based on Cody Lindley's Thickbox, MIT License** Licensed under the MIT License:*   http://www.opensource.org/licenses/mit-license.php*/
window.addEvent("domready", TB_init); TB_WIDTH = 0; TB_HEIGHT = 0; var TB_doneOnce = 0; function TB_init() { $$("a.smoothbox").each(function(a) { a.onclick = TB_bind }) } function TB_bind(b) { var b = new Event(b); b.preventDefault(); this.blur(); var a = this.title || this.name || ""; var c = this.rel || false; TB_show(a, this.href, c); this.onclick = TB_bind; return false } function TB_show(q, e, b) { if (!$("TB_overlay")) { new Element("iframe").setProperty("id", "TB_HideSelect").injectInside(document.body); $("TB_HideSelect").setOpacity(0); new Element("div").setProperty("id", "TB_overlay").injectInside(document.body); $("TB_overlay").setOpacity(0); TB_overlaySize(); new Element("div").setProperty("id", "TB_load").injectInside(document.body); $("TB_load").innerHTML = "<img src='art/loading.gif' />"; TB_load_position(); $("TB_overlay").set("tween", { duration: 400 }); $("TB_overlay").tween("opacity", 0, 0.6) } if (!$("TB_load")) { new Element("div").setProperty("id", "TB_load").injectInside(document.body); $("TB_load").innerHTML = "<img src='../loading.gif' />"; TB_load_position() } if (!$("TB_window")) { new Element("div").setProperty("id", "TB_window").injectInside(document.body); $("TB_window").setOpacity(0) } $("TB_overlay").onclick = TB_remove; window.onscroll = TB_position; var r = e.match(/(.+)?/)[1] || e; var o = /\.(jpe?g|png|gif|bmp)/gi; if (r.match(o)) { var u = { caption: "", url: "", html: "" }; var l = u, m = u, a = ""; if (b) { function j(v, w, i) { return { caption: v.title, url: v.href, html: "<span id='TB_" + w + "'>&nbsp;&nbsp;<a href='#'>" + i + "</a></span>"} } var c = []; $$("a.smoothbox").each(function(i) { if (i.rel == b) { c[c.length] = i } }); var t = false; for (var p = 0; p < c.length; p++) { var k = c[p]; var g = k.href.match(o); if (k.href == e) { t = true; a = "Image " + (p + 1) + " of " + (c.length) } else { if (t) { m = j(k, "next", "Next &gt;"); break } else { l = j(k, "prev", "&lt; Prev") } } } } imgPreloader = new Image(); imgPreloader.onload = function() { imgPreloader.onload = null; var w = window.getWidth() - 150; var C = window.getHeight() - 150; var z = imgPreloader.width; var v = imgPreloader.height; if (z > w) { v = v * (w / z); z = w; if (v > C) { z = z * (C / v); v = C } } else { if (v > C) { z = z * (C / v); v = C; if (z > w) { v = v * (w / z); z = w } } } TB_WIDTH = z + 30; TB_HEIGHT = v + 60; $("TB_window").innerHTML += "<a href='' id='TB_ImageOff' title='Close'><img id='TB_Image' src='" + e + "' width='" + z + "' height='" + v + "' alt='" + q + "'/></a><div id='TB_caption'>" + q + "<div id='TB_secondLine'>" + a + l.html + m.html + "</div></div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a></div>"; $("TB_closeWindowButton").onclick = TB_remove; function i(x) { return function() { $("TB_window").dispose(); new Element("div").setProperty("id", "TB_window").injectInside(document.body); TB_show(x.caption, x.url, b); return false } } var B = i(l); var A = i(m); if ($("TB_prev")) { $("TB_prev").onclick = B } if ($("TB_next")) { $("TB_next").onclick = A } document.onkeydown = function(x) { var x = new Event(x); switch (x.code) { case 27: TB_remove(); break; case 190: if ($("TB_next")) { document.onkeydown = null; A() } break; case 188: if ($("TB_prev")) { document.onkeydown = null; B() } break } }; $("TB_ImageOff").onclick = TB_remove; TB_position(); TB_showWindow() }; imgPreloader.src = e } else { var d = e.match(/\?(.+)/)[1]; var s = TB_parseQuery(d); TB_WIDTH = (s.width * 1) + 30; TB_HEIGHT = (s.height * 1) + 40; var h = TB_WIDTH - 30, n = TB_HEIGHT - 45; if (e.indexOf("TB_iframe") != -1) { urlNoQuery = e.split("TB_"); $("TB_window").innerHTML += "<div id='TB_title'><div id='TB_ajaxWindowTitle'>" + q + "</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a></div></div><iframe frameborder='0' hspace='0' src='" + urlNoQuery[0] + "' id='TB_iframeContent' name='TB_iframeContent' style='width:" + (h + 29) + "px;height:" + (n + 17) + "px;' onload='TB_showWindow()'> </iframe>" } else { $("TB_window").innerHTML += "<div id='TB_title'><div id='TB_ajaxWindowTitle'>" + q + "</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a></div></div><div id='TB_ajaxContent' style='width:" + h + "px;height:" + n + "px;'></div>" } $("TB_closeWindowButton").onclick = TB_remove; if (e.indexOf("TB_inline") != -1) { $("TB_ajaxContent").innerHTML = ($(s.inlineId).innerHTML); TB_position(); TB_showWindow() } else { if (e.indexOf("TB_iframe") != -1) { TB_position(); if (frames.TB_iframeContent == undefined) { $(document).keyup(function(v) { var i = v.keyCode; if (i == 27) { TB_remove() } }); TB_showWindow() } } else { var f = function() { TB_position(); TB_showWindow() }; new Request.HTML({ method: "get", update: $("TB_ajaxContent"), onComplete: f }).get(e) } } } window.onresize = function() { TB_position(); TB_load_position(); TB_overlaySize() }; document.onkeyup = function(i) { var i = new Event(i); if (i.code == 27) { TB_remove() } } } function TB_showWindow() { if (TB_doneOnce == 0) { TB_doneOnce = 1; $("TB_window").set("tween", { duration: 250, onComplete: function() { if ($("TB_load")) { $("TB_load").dispose() } } }); $("TB_window").tween("opacity", 0, 1) } else { $("TB_window").setStyle("opacity", 1); if ($("TB_load")) { $("TB_load").dispose() } } } function TB_remove() { $("TB_overlay").onclick = null; document.onkeyup = null; document.onkeydown = null; if ($("TB_imageOff")) { $("TB_imageOff").onclick = null } if ($("TB_closeWindowButton")) { $("TB_closeWindowButton").onclick = null } if ($("TB_prev")) { $("TB_prev").onclick = null } if ($("TB_next")) { $("TB_next").onclick = null } $("TB_window").set("tween", { duration: 250, onComplete: function() { $("TB_window").dispose() } }); $("TB_window").tween("opacity", 1, 0); $("TB_overlay").set("tween", { duration: 400, onComplete: function() { $("TB_overlay").dispose() } }); $("TB_overlay").tween("opacity", 0.6, 0); window.onscroll = null; window.onresize = null; $("TB_HideSelect").dispose(); TB_init(); TB_doneOnce = 0; return false } function TB_position() { $("TB_window").set("morph", { duration: 75 }); $("TB_window").morph({ width: TB_WIDTH + "px", left: (window.getScrollLeft() + (window.getWidth() - TB_WIDTH) / 2) + "px", top: (window.getScrollTop() + (window.getHeight() - TB_HEIGHT) / 2) + "px" }) } function TB_overlaySize() { $("TB_overlay").setStyles({ height: "0px", width: "0px" }); $("TB_HideSelect").setStyles({ height: "0px", width: "0px" }); $("TB_overlay").setStyles({ height: window.getScrollHeight() + "px", width: window.getScrollWidth() + "px" }); $("TB_HideSelect").setStyles({ height: window.getScrollHeight() + "px", width: window.getScrollWidth() + "px" }) } function TB_load_position() { if ($("TB_load")) { $("TB_load").setStyles({ left: (window.getScrollLeft() + (window.getWidth() - 56) / 2) + "px", top: (window.getScrollTop() + ((window.getHeight() - 20) / 2)) + "px", display: "block" }) } } function TB_parseQuery(c) { if (!c) { return {} } var e = {}; var b = c.split(/[;&]/); for (var a = 0; a < b.length; a++) { var d = b[a].split("="); if (!d || d.length != 2) { continue } e[unescape(d[0])] = unescape(d[1]).replace(/\+/g, " ") } return e };
