function lightbox(){this.speed=30;this.container=null;this.box=null;this.animation=null;this.dimensions=null;this.interval=null;this.actualSize=[0,0];this.image=null;this.opened=false;this.objects={};this.actualOpacity=100;this.overlay=null;this.left_button=null;this.right_button=null;this.title=null;this.label=null;this.counter=null;this.loading_image=null;this.actualType=null;this.object=null;this.init=function(){this.createBox();this.replaceLinks();this.loading_image=new Image();this.loading_image.width=32;this.loading_image.height=32;this.loading_image.src="/_img/lightbox/loading.gif";};this.replaceLinks=function(content){var parent=true;if(typeof(content)=="undefined"){content=document;parent=false;} var check={};var nodes=content.getElementsByTagName('a');for(var i=0;i=0){var type=this.getType(node.href);if(type!=null){var index=node.className.indexOf("lightbox_");var key="a"+this.getObjectCount()+1;if(index>=0){key="m"+node.className.substring(index+9).split(" ").shift();} key+=type;if(typeof(this.objects[key])=="undefined"){this.objects[key]=[];} var x=null;if(typeof(check[key])=="undefined"){check[key]=[];}else{if(typeof(check[key][node.href])!="undefined"){x=check[key][node.href];}} if(x==null){x=this.objects[key].length;this.objects[key][x]={"object":[node.href,node.title],"status":"new","type":type};} if(typeof(check[key][node.href])=="undefined"){check[key][node.href]=x;} node.rel=key+"-"+x;if(parent){node.onclick=function(){var parts=this.rel.split("-");var index=parseInt(parts.pop(),10);var key=parts.join("-");lightbox.open(key,index);return false;};}else{node.onclick=function(){var parts=this.rel.split("-");var index=parseInt(parts.pop(),10);var key=parts.join("-");window.parent.lightbox.open(key,index);return false;};}}}} delete check;};this.createBox=function(){this.overlay=document.createElement('div');this.overlay.id="lightbox_overlay";this.overlay.style.display="none";this.overlay.style.position="absolute";this.overlay.style.top="0";this.overlay.style.left="0";this.overlay.appendChild(document.createTextNode('\u00a0'));this.overlay.onclick=function(){lightbox.close();};this.container=document.createElement('div');this.container.className="container";this.container.appendChild(document.createTextNode('\u00a0'));this.box=document.createElement('div');this.box.id="lightbox";this.box.style.position="absolute";this.box.style.display="none";var close=document.createElement('a');close.href="javascript:void(0);";close.title="zavřít";close.onclick=function(){lightbox.close();};close.className="close";close.appendChild(document.createTextNode("\u00a0"));var l=document.createElement('span');l.appendChild(document.createTextNode("Předchozí"));this.left_button=document.createElement('a');this.left_button.href="javascript:void(0);";this.left_button.onclick=function(){lightbox.prev();};this.left_button.style.left="0";this.left_button.style.top="0";this.left_button.style.display="block";this.left_button.style.position="absolute";this.left_button.style.textAlign="left";this.left_button.style.zIndex="99";this.left_button.className="prev";this.left_button.appendChild(l);var r=document.createElement('span');r.appendChild(document.createTextNode("Následující"));this.right_button=document.createElement('a');this.right_button.href="javascript:void(0);";this.right_button.onclick=function(){lightbox.next();};this.right_button.style.right="0";this.right_button.style.top="0";this.right_button.style.display="block";this.right_button.style.position="absolute";this.right_button.style.textAlign="right";this.right_button.style.zIndex="99";this.right_button.className="next";this.right_button.appendChild(r);this.title=document.createElement('span');this.title.style.display="block";this.title.className="title";this.title.style.overflow="hidden";this.title.appendChild(document.createTextNode('\u00a0'));this.counter=document.createElement('span');this.counter.style.display="none";this.counter.className="counter";this.counter.appendChild(document.createTextNode('\u00a0'));this.label=document.createElement('div');this.label.appendChild(this.title);this.label.appendChild(this.counter);this.box.appendChild(this.left_button);this.box.appendChild(this.right_button);this.box.appendChild(close);this.box.appendChild(this.container);this.box.appendChild(this.label);var body=document.getElementsByTagName('body')[0];body.appendChild(this.box);body.appendChild(this.overlay);};this.open=function(key,index){if(this.objects[key].length<=1){this.counter.style.display="none";}else{this.counter.style.display="block";} if(this.opened===false){this.box.style.display="";if(this.dimensions==null){this.dimensions=this.getDimensions();} this.setSize(120,120);this.setOverlay();}else if(this.dimensions==null){this.dimensions=this.getDimensions();} this.opened=[key,index];lightbox.hideLabel();lightbox.hideButtons();this.actualType=this.objects[key][index]["type"];if(this.actualType=="image"){this.counter.firstChild.data="obrázek "+(index+1)+" z "+this.objects[key].length;}else{this.counter.firstChild.data="náhled "+(index+1)+" z "+this.objects[key].length;} if(this.objects[key][index]["status"]=="loaded"){if(this.objects[key][index]["type"]=="image"){this.image=this.objects[key][index]["object"];this.setTitle(this.image.alt);}else{this.object=this.objects[key][index]["object"];this.setTitle(this.object.title);} this.removeContent();this.resizeBox();}else{this.removeContent();this.actualOpacity=100;this.setImage(this.loading_image);if(this.objects[key][index]["type"]=="image"){this.image=new Image();this.image.alt=this.objects[key][index]["object"][1];this.image.id="i"+index+"k"+key;this.image.onload=function(){var parts=this.id.substring(1).split("k");var index=parts.shift();var key=parts.join("k");lightbox.objects[key][index]["status"]="loaded";lightbox.setTitle(this.alt);lightbox.removeContent();lightbox.resizeBox();};this.image.src=this.objects[key][index]["object"][0];this.objects[key][index]["object"]=this.image;}else{this.object=new Object();this.object.title=this.objects[key][index]["object"][1];this.object.key=key;this.object.index=index;var ajax=new Ajax(this.objects[key][index]["object"][0],null,true);ajax.onSuccess("lightbox.setData",this.object);ajax.onFailure("lightbox.set404Data",this.object);ajax.doRequest();this.objects[key][index]["object"]=this.object;}}};this.close=function(){this.opened=false;clearInterval(this.interval);this.interval=null;this.animation=null;this.overlay.style.display="none";this.box.style.display="none";this.dimensions=null;};this.setOverlay=function(){this.overlay.style.width=this.dimensions["page"][0]+"px";this.overlay.style.height=this.dimensions["page"][1]+"px";this.overlay.style.display="";};this.setData=function(data,obj){var key=obj.key;var index=obj.index;var tag='';var tag2='';var tag_i=data.indexOf(tag);if(tag_i>=0){data=data.substring(tag_i+tag.length).split(tag2).shift();} var tmp=document.createElement('div');tmp.id="lightbox_html";tmp.style.position="absolute";tmp.style.overflow="visible";tmp.style.top="-9999px";tmp.innerHTML=data;this.replaceLinks(tmp);var body=document.getElementsByTagName('body')[0];body.appendChild(tmp);obj.width=Math.max(tmp.scrollWidth+20,200);obj.height=Math.max(tmp.scrollHeight+20,120);body.removeChild(tmp);tmp.style.position="static";tmp.style.overflow="";tmp.style.top="0";obj.data=tmp;this.setTitle(obj.title);this.objects[key][index]["status"]="loaded";this.removeContent();this.resizeBox();};this.set404Data=function(data,obj){var key=obj.key;var index=obj.index;var tmp=document.createElement('div');tmp.id="lightbox_html";tmp.style.position="absolute";tmp.style.overflow="visible";tmp.style.top="-9999px";tmp.appendChild(document.createTextNode('Stránka nenalezena'));obj.width=300;obj.height=200;tmp.style.position="static";tmp.style.overflow="";tmp.style.top="0";obj.data=tmp;this.setTitle(obj.title);this.objects[key][index]["status"]="loaded";this.removeContent();this.resizeBox();};this.resizeBox=function(){var mh=this.dimensions["view"][1]-200;var mw=this.dimensions["view"][0]-100;if(this.actualType=="image"){var h=this.image.height;var w=this.image.width;if(w>mw||h>mh){if(w>h){var r=h/w;while(w>mw||h>mh){w--;h=Math.round(w*r);}}else{var r=w/h;while(w>mw||h>mh){h--;w=Math.round(h*r);}} this.image.width=w;this.image.height=h;}else if(w<220){w=220;}}else{var h=this.object.height;var w=this.object.width;if(w>mw){w=mw;this.object.width=mw;} if(h>mh){this.object.height=mh;}} var coef=1;if(w>this.actualSize[0]){coef=w/this.actualSize[0];}else if(w15){sp=15;} this.animation=["w",w,w>this.actualSize[0]?sp:-sp];if(this.interval==null){this.interval=setInterval(function(){lightbox.animate();},20);}};this.setTitle=function(str){if(this.dimensions==null){this.dimensions=this.getDimensions();} this.title.firstChild.data=str;this.dimensions["label"]=this.label.scrollHeight;};this.setImage=function(image){if(this.actualSize[1]>image.height){var top=Math.ceil((this.actualSize[1]-image.height)/2);image.style.position="relative";image.style.top=top+"px";image.style.zIndex=5;} image.style.display="block";image.style.margin="0 auto";this.container.removeChild(this.container.firstChild);this.container.appendChild(image);};this.removeImage=function(){this.animation=["o",0,-Math.round(this.speed*0.3)];if(this.interval==null){this.interval=setInterval(function(){lightbox.animate();},20);}};this.viewImage=function(){this.animation=["o",100,Math.round(this.speed*0.3)];this.setImage(this.image);this.setOpacity(0);if(this.interval==null){this.interval=setInterval(function(){lightbox.animate();},20);}};this.setContent=function(){while(this.container.hasChildNodes()){this.container.removeChild(this.container.firstChild);} var node=this.object.data;node.style.width=this.actualSize[0]+"px";node.style.height=this.actualSize[1]+"px";this.container.appendChild(node);};this.removeContent=function(){while(this.container.hasChildNodes()){this.container.removeChild(this.container.firstChild);} this.container.appendChild(document.createTextNode('\u00a0'));};this.showLabel=function(){this.label.style.visibility="";};this.hideLabel=function(){this.label.style.visibility="hidden";};this.hideButtons=function(){this.left_button.style.display="none";this.right_button.style.display="none";};this.showButtons=function(){var group=this.objects[this.opened[0]];if(group.length-1>this.opened[1]){this.right_button.style.display="";this.right_button.style.padding="0 44px 0 0";this.right_button.style.width=Math.ceil(this.actualSize[0]/3-44)+"px";this.right_button.style.height=this.actualSize[1]+"px";this.right_button.style.lineHeight=this.actualSize[1]+"px";} if(this.opened[1]>0){this.left_button.style.display="";this.left_button.style.padding="0 0 0 44px";this.left_button.style.width=Math.ceil(this.actualSize[0]/3-44)+"px";this.left_button.style.height=this.actualSize[1]+"px";this.left_button.style.lineHeight=this.actualSize[1]+"px";}};this.next=function(){var o=this.opened;this.open(o[0],o[1]+1);};this.prev=function(){var o=this.opened;this.open(o[0],o[1]-1);};this.animate=function(){if(this.animation[0]=="w"){if(this.animation[1]==this.actualSize[0]){var h=this.actualType=="image"?this.image.height:this.object.height;if(h<220){h=220;} var coef=1;if(h>this.actualSize[1]){coef=h/this.actualSize[1];}else if(h15){sp=15;} this.animation=["h",h,h>this.actualSize[1]?sp:-sp];return;}else{var w=this.actualSize[0]+this.animation[2];if(this.animation[2]>0&&w>this.animation[1]){w=this.animation[1];}else if(this.animation[2]<0&&w0&&h>this.animation[1]){h=this.animation[1];}else if(this.animation[2]<0&&h0&&o>this.animation[1]){o=this.animation[1];}else if(this.animation[2]<0&&00){this.showButtons();this.showLabel();} clearInterval(this.interval);this.interval=null;this.animation=null;return;}}};this.setSize=function(width,height){var w=false;var h=false;if(this.actualSize[0]!=width){this.container.style.width=width+"px";w=true;} if(this.actualSize[1]!=height){this.container.style.height=height+"px";h=true;} this.actualSize=[width,height];if(w){this.box.style.left=Math.round(this.dimensions["scroll"][0]+this.dimensions["view"][0]/2-this.actualSize[0]/2)+"px";} if(h){this.box.style.top=Math.round(this.dimensions["scroll"][1]+this.dimensions["view"][1]/2-this.actualSize[1]/2-this.dimensions["label"]/2)+"px";}};this.resize=function(){this.overlay.style.display="none";lightbox.dimensions=lightbox.getDimensions();lightbox.setOverlay();};this.getDimensions=function(){this.overlay.style.display="none";var top=0;var left=0;var viewportwidth=0;var viewportheight=0;var width=0;var height=0;if(typeof window.innerWidth!='undefined'){viewportwidth=window.innerWidth;viewportheight=window.innerHeight;} if(typeof document.documentElement!='undefined'){top=document.documentElement.scrollTop;left=document.documentElement.scrollLeft;if(viewportwidth==0&&viewportheight==0){viewportwidth=document.documentElement.clientWidth;viewportheight=document.documentElement.clientHeight;} height=document.documentElement.scrollHeight;width=document.documentElement.scrollWidth;}else{var node=document.getElementsByTagName('html')[0];left=node.scrollLeft;top=node.scrollTop;if(viewportwidth==0&&viewportheight==0){viewportwidth=node.clientWidth;viewportheight=node.clientHeight;} width=node.scrollWidth;if(node.scrollHeight>height){height=node.scrollHeight;}} return{"view":[viewportwidth,viewportheight],"page":[width,height],"scroll":[left,top],"label":this.label.scrollHeight};};this.getObjectCount=function(){var ret=0;for(var i in this.objects){ret++;} return ret;};this.setOpacity=function(value){if(typeof(this.container.firstChild.style)=="undefined"){return;} if(typeof(this.container.firstChild.style.opacity)!="undefined"){this.container.firstChild.style.opacity=value/100;} if(typeof(this.container.firstChild.style.mozOpacity)!="undefined"){this.container.firstChild.style.mozOpacity=value/100;} if(typeof(this.container.firstChild.style.filter)!="undefined"){this.container.firstChild.style.filter='alpha(opacity='+(value)+')';} this.actualOpacity=value;};this.getType=function(url){var ext=url.split("?").shift().split(".").pop().toLowerCase();switch(ext){case'html':return'text';case'htm':return'text';case'txt':return'text';case'jpg':return'image';case'gif':return'image';case'jpeg':return'image';case'png':return'image';case'tga':return'image';case'tiff':return'image';case'bmp':return'image';default:return'text';}}} lightbox=new lightbox();window.onresize=function(){if(lightbox.opened!==false){if(navigator.appName=='Microsoft Internet Explorer'){setTimeout("lightbox.resize()",10);}else{lightbox.resize();}}else{lightbox.dimensions=null;}};