﻿function HookPopupLinks() {
    if (!document.getElementsByTagName) return false;
    var links = document.getElementsByTagName("a");
    for (var i = 0; i < links.length; i++) {
        if (links[i].className.match("popup")) {
            links[i].onclick = function () { return !window.open(this.href); }
        }
    }
    return true;
}

window.onload = HookPopupLinks;

var ModalImage = {};
ModalImage.background = "silver";
ModalImage.opacity = 0.7;
ModalImage.imageBorder = "";
ModalImage.imageBoxStyle = "padding: 5px;background:white;border:solid 1px gray;";
ModalImage.text = "Zavřít";
ModalImage.textStyle = "color:darkred;text-align: right;text-decoration: underline;";
ModalImage.loaderColors = ['white'];
ModalImage.loaderOpacities = [1];
ModalImage.loaderBull = ['\u2022'];
ModalImage.loaderBullSize = [42, 38, 36, 34];
ModalImage.loaderRadius = 20;
ModalImage.loaderSpeed = 120;
ModalImage.IE = ((navigator.userAgent.toLowerCase().indexOf("opera") == -1) && navigator.appName == "Microsoft Internet Explorer") ? true : false;
ModalImage.open = function (el) { if (ModalImage.IE) { s = navigator.appVersion; a = s.indexOf("MSIE"); b = s.indexOf(";", a); var IEversion = parseFloat(s.substring(a + 4, b)) } if (ModalImage.IE && IEversion < 6) return true; var p = document.createElement('div'); ModalImage.parent = p; var bg = document.createElement('div'); document.body.appendChild(p); p.appendChild(bg); bg.style.cssText = "position:absolute;z-index:1000;background:" + ModalImage.background + ";opacity:" + ModalImage.opacity + ";filter:alpha(opacity=" + (ModalImage.opacity * 100) + ")"; ModalImage.placeBg(bg); bg.onclick = function () { return history.back() }; var imgbox = document.createElement('div'); p.appendChild(imgbox); imgbox.style.cssText = "top:0;left:0;position:absolute;visibility:hidden;" + ModalImage.imageBoxStyle + ";z-index:1000;cursor:pointer;_curosr:hand;" + ModalImage.textStyle; var img = document.createElement('img'); img.style.cssText = "margin:0 0 5px 0;display:block;border:" + ModalImage.imageBorder; imgbox.appendChild(img); imgbox.appendChild(document.createTextNode(ModalImage.text)); var loading = ModalImage.loader(p, bg, ModalImage.loaderColors, ModalImage.loaderOpacities, ModalImage.loaderRadius, ModalImage.loaderBull, ModalImage.loaderBullSize); img.onload = function () { ModalImage.loaded(imgbox, bg, loading) }; imgbox.onclick = function () { return history.back() }; img.src = el.href; window.onresize = function () { ModalImage.placeBg(bg); ModalImage.placeImgBox(imgbox, bg) }; window.onscroll = function () { ModalImage.placeBg(bg) }; ModalImage.History.add(ModalImage.close); return false };
ModalImage.close = function () { var el = ModalImage.parent; el.parentNode.removeChild(el); window.onresize = null; window.onscroll = null; return false };
ModalImage.loaded = function (img, bg, loader) { ModalImage.placeImgBox(img, bg); if (loader != null) ModalImage.stopLoader(loader); var fce = function () { img.style.visibility = "visible" }; setTimeout(fce, 1) };
ModalImage.placeImgBox = function (img, bg) { var middle = { x: bg.offsetWidth / 2, y: bg.offsetHeight / 2 }; var size = { x: img.offsetWidth / 2, y: img.offsetHeight / 2 }; var x = bg.offsetLeft + middle.x - size.x; var y = bg.offsetTop + middle.y - size.y; if (x < 0) x = 0; if (y < 0) y = 0; img.style.top = y + "px"; img.style.left = x + "px" };
ModalImage.placeBg = function (bg) { var scrolled = (window.pageXOffset == undefined) ? { x: document.documentElement.scrollLeft, y: document.documentElement.scrollTop} : { x: window.pageXOffset, y: window.pageYOffset }; bg.style.width = 0; bg.style.height = 0; var winsize = (window.innerHeight == undefined) ? { x: document.documentElement.clientWidth + 'px', y: document.documentElement.clientHeight + 'px'} : { x: '100%', y: '100%' }; bg.style.top = scrolled.y + 'px'; bg.style.left = scrolled.x + 'px'; bg.style.width = winsize.x; bg.style.height = winsize.y; };
ModalImage.loader = function (p, bg, color, opacity, radius, bull, bullsize) { var lp = document.createElement('div'); lp.id = "ModalImage-Loader"; p.appendChild(lp); var fi = Math.PI / 2, loader = []; var middle = { x: bg.offsetWidth / 2, y: bg.offsetHeight / 2 }; for (var i = 0; i < 8; i++) { loader[i] = document.createElement('div'); var c = (color[i]) ? color[i] : color[color.length - 1]; var o = (opacity[i]) ? opacity[i] : opacity[opacity.length - 1]; var s = (bullsize[i]) ? bullsize[i] : bullsize[bullsize.length - 1]; loader[i].style.cssText = "position:absolute;z-index:1001;color:" + c + ";font:bold " + s + "px/" + bullsize[0] + "px arial,sans-serif;opacity:" + o + ";filter:alpha(opacity=" + (o * 100) + ");text-align:center;width:" + bullsize[0] + "px;height:" + bullsize[0] + "px;cursor:default"; lp.appendChild(loader[i]); var b = (bull[i]) ? bull[i] : bull[bull.length - 1]; loader[i].innerHTML = b; }; var loading; var fce = function () { fi = fi - Math.PI / 4; for (var i = 0; i < 8; i++) { var y = Math.cos(fi + Math.PI / 4 * i); var x = Math.sin(fi + Math.PI / 4 * i); if (!ModalImage.IE) loader[i].style.visibility = 'hidden'; loader[i].style.top = bg.offsetTop + middle.y + radius * y + 'px'; loader[i].style.left = bg.offsetLeft + middle.x + radius * x + 'px'; if (!ModalImage.IE) loader[i].style.visibility = 'visible'; } loading = setTimeout(fce, ModalImage.loaderSpeed) }; fce(); return loading; };
ModalImage.stopLoader = function (loader) { clearTimeout(loader); var lp = document.getElementById("ModalImage-Loader"); if (lp) lp.parentNode.removeChild(lp); };
ModalImage.History = {}; ModalImage.History.hash = "__"; ModalImage.History.previousHash = ""; ModalImage.History.interval = null; ModalImage.History.iframe = null; ModalImage.History.iframeDOM = null; ModalImage.History.undoFunction = null; ModalImage.History.add = function (undoFunction) { ModalImage.History.undoFunction = undoFunction; if (ModalImage.IE) { ModalImage.History.initIE(); ModalImage.History.iframe.src = ""; ModalImage.History.iframe.document.open(); ModalImage.History.iframe.document.write("<html><body><script>window.onbeforeunload=function(){try{top.ModalImage.History.back();}catch(e){}}</scr" + "ipt></body></html>"); ModalImage.History.iframe.document.close(); } else { ModalImage.History.previousHash = window.location.hash.replace(/^#/, ""); window.location.hash = (ModalImage.History.previousHash != ModalImage.History.hash) ? ModalImage.History.hash : ModalImage.History.hash + "_"; ModalImage.History.interval = window.setInterval(ModalImage.History.check, 200); ModalImage.History.initOpera(); } }; ModalImage.History.check = function () { if (window.location.hash.replace(/^#/, "") == ModalImage.History.previousHash) { ModalImage.History.undoFunction(); ModalImage.History.remove(); } }; ModalImage.History.remove = function () { window.clearInterval(ModalImage.History.interval); }; ModalImage.History.initOpera = function () { if (navigator.userAgent.toLowerCase().indexOf('opera') != -1) { var i = document.createElement('img'); i.src = "javascript:location.href=\'javascript:ModalImage.History.check();\';"; i.style.cssText = "position: absolute; top: -1000px; left: -1000px; width: 1px; height: 1px;"; document.body.appendChild(i); } }; ModalImage.History.initIE = function () { var i = document.createElement('iframe'); document.body.appendChild(i); i.style.cssText = "position: absolute; top: -1000px; left: -1000px; width: 1px; height: 1px;"; ModalImage.History.iframeDOM = i; ModalImage.History.iframe = window.frames[window.frames.length - 1]; ModalImage.History.iframe.src = ""; ModalImage.History.iframe.document.open(); ModalImage.History.iframe.document.write("a"); ModalImage.History.iframe.document.close(); }; ModalImage.History.back = function () { ModalImage.History.undoFunction(); if (ModalImage.IE) ModalImage.History.deleteIframe(); }; ModalImage.History.deleteIframe = function () { var i = ModalImage.History.iframeDOM; if (i) i.parentNode.removeChild(i); };

