{function ImgPrew(name){this.closeAction=false;this.picCloseAction=false;this.nextAction=false;this.prevAction=false;this.initGallery=function(){if(SZN.gEl("viGallery")){var gal=SZN.gEl("viGallery");var pics=gal.getElementsByTagName("span");this.actions=new Array();this.imgFold=new Array();for(var i=0;i<pics.length;i++){this.actions[i]=SZN.Events.addListener(pics[i],"click",this,this.show,false,true);this.imgFold[i]=pics[i].getElementsByTagName("img")[0];}}};this.deActive=function(){for(var i=0;i<this.actions.length;i++){SZN.Events.removeListener(this.actions[i]);this.actions[i]=null;}this.actions=new Array();};this.show=function(e,elm){var box=this.makeBox();this.box=box;this.setBoxPosition();box.id="previewBox";box.style.visibilty="hidden";box.style.display="block";document.getElementById("card").parentNode.insertBefore(box,document.getElementById("card").nextSibling);for(var i=0;i<this.imgFold.length;i++){if(elm.getElementsByTagName("img")[0]==this.imgFold[i]){this.activeNum=i;}}this.setImg();this.prevAction=SZN.Events.addListener(SZN.gEl("prevImg"),"click",this,this.goPrev,false,true);this.nextAction=SZN.Events.addListener(SZN.gEl("nextImg"),"click",this,this.goNext,false,true);this.setListing();this.boxActivate();box.style.visibilty="visible";};this.setListing=function(){var prev=SZN.gEl("prevImg");var next=SZN.gEl("nextImg");if(prev.className=="active"){if(this.activeNum<=0){if(this.prevAction){SZN.Events.removeListener(this.prevAction);this.prevAction=false;}prev.className="pasive";}}else{if(this.activeNum>0){if(!this.prevAction){this.prevAction=SZN.Events.addListener(prev,"click",this,this.goPrev,false,true);}prev.className="active";}}if(next.className=="active"){if(this.activeNum==(this.imgFold.length-1)){if(this.nextAction){SZN.Events.removeListener(this.nextAction);this.nextAction=false;}next.className="pasive";}}else{if(this.activeNum<(this.imgFold.length-1)){if(!this.nextAction){this.nextAction=SZN.Events.addListener(next,"click",this,this.goNext,false,true);}next.className="active";}}};this.goPrev=function(e,elm){this.activeNum=this.activeNum>0?this.activeNum-1:this.activeNum;this.setImg();this.setListing();};this.goNext=function(e,elm){this.activeNum=this.activeNum<(this.imgFold.length-1)?this.activeNum+1:this.activeNum;this.setImg();this.setListing();};this.close=function(e,elm){if(this.closeAction){SZN.Events.removeListener(this.closeAction);}if(this.picColoseAction){SZN.Events.removeListener(this.picColoseAction);}if(this.nextAction){SZN.Events.removeListener(this.nextAction);}if(this.prevAction){SZN.Events.removeListener(this.prevAction);}SZN.Events.removeListener(this.picAction);SZN.gEl("previewBox").parentNode.removeChild(SZN.gEl("previewBox"));this.box=null;this.cont=null;};this.setImg=function(){var num=this.activeNum;if(SZN.gEl("bigPhoto")){SZN.gEl("bigPhoto").style.visibility="hidden";SZN.gEl("bigPhoto").src=this.imgFold[num].src.split("_")[0]+window.window.photoSuffix;}else{var img=SZN.cEl("img");img.id="bigPhoto";img.style.visibility="hidden";img.style.position="absolute";img.style.top=0;img.style.left=0;SZN.gEl("picBox").appendChild(img);this.picAction=SZN.Events.addListener(img,"load",this,this.setImgPosition,false,true);this.picCloseAction=SZN.Events.addListener(img,"click",this,this.close,false,true);img.src=this.imgFold[num].src.split("_")[0]+window.window.photoSuffix;}};this.setImgPosition=function(e,elm){var top=Math.round((300-elm.offsetHeight)/2);var left=Math.round((400-elm.offsetWidth)/2);elm.style.top=top+"px";elm.style.left=left+"px";elm.style.visibility="visible";};this.makeBox=function(){var obal=SZN.cEl("div");obal.style.position="absolute";obal.style.width="440px";obal.style.height="365px";obal.innerHTML=this.makeCont();return obal;};this.makeCont=function(){var cont="<div class=\"prevBg\">"+"</div>"+"<div class=\"prevBox\">"+"<div class=\"prevContent\">"+"<div class=\"prevHead\">"+"<div>"+"<div id=\"picListing\">"+"<em id=\"prevImg\" class=\"active\">&lt; Předchozí</em> | <em id=\"nextImg\" class=\"active\">Následující &gt;</em>"+"</div>"+"<div id=\"picClosing\">"+"<span id=\"closingText\" class=\"closeBox\">Zavřít galerii</span>"+"</div>"+"<div class=\"cistic\"></div>"+"</div>"+"</div>"+"<div class=\"picBox\" id=\"picBox\" style=\"position:relative;width:400px;height:300px\">"+"</div>"+"</div>"+"</div>";return cont;};this.boxActivate=function(){this.closeAction=SZN.Events.addListener(SZN.gEl("closingText"),"click",this,this.close,false,true);};this.setBoxPosition=function(){var trg=SZN.gEl("card");var top=parseInt(trg.style.top);var left=parseInt(trg.style.left);this.box.style.top=(top)+"px";this.box.style.left=(left)+"px";};};var imgPrew=new ImgPrew("imgPrew");var card={"premiseId":1,"lastPremiseId":0,"cardOpened":false,"showCard":function(e,elm){SZN.Events.cancelDef(e);this.premiseId=elm.id.split("-")[1];if(this.cardOpened){if(this.lastPremiseId==this.premiseId){this.closeCard();return 0;}else{this.closeCard();}}this.resultBox=SZN.gEl("vysledek-"+this.premiseId);this.body=document.getElementsByTagName("body")[0];this.boxPosTop=SZN.Dom.getBoxPosition(this.resultBox).top;this.boxPosLeft=SZN.Dom.getBoxPosition(this.resultBox).left;this.boxPosHeight=this.resultBox.offsetHeight;this.getData();},"getData":function(){var rq=new SZN.HTTPRequest();var url="/card?adr=premiseCard_"+this.premiseId+"&encoding=utf8&output=json&requestType=xmlhttp&mapId=card&requestId="+SZN.idGenerator()+"&rand="+Math.random();rq.send(url,card,"createCard");},"createCard":function(response){var data=eval("("+response+")");var nameClass="class= twoTabs";var tabs=2;switch(data.obsah.length){case 3:nameClass="class= threeTabs";var tabs=3;break;case 4:nameClass="class= fourTabs";var tabs=4;break;default:break;};var htmlCode="<div id=\"visitCard\">"+"<div id=\"viBgr\" "+nameClass+"></div>"+"<div id=\"viData\">"+"<ul id=\"viTabs\">";if(typeof data.obsah[0]!="undefined"){htmlCode+="<li id=\"contacts\" class=\"active\"><a id=\"link-viCont1\" href=\"#\">Kontakty</a></li>";}if(typeof data.obsah[1]!="undefined"){htmlCode+="<li id=\"desc\"><a id=\"link-viCont2\" href=\"#\">Popis firmy</a></li>";};if((typeof data.obsah[2]!="undefined")&&(typeof data.obsah[2].photo=="undefined")){htmlCode+="<li id=\"open\"><a id=\"link-viCont3\" href=\"#\">Otevírací hodiny</a></li>";}else{if((typeof data.obsah[2]!="undefined")&&(typeof data.obsah[2].photo!="undefined")){htmlCode+="<li id=\"gallery\"><a id=\"link-viCont3\" href=\"#\">Fotografie</a></li>";}}if(typeof data.obsah[3]!="undefined"){htmlCode+="<li id=\"gallery\"><a id=\"link-viCont4\" href=\"#\">Fotografie</a></li>";};htmlCode+="</ul>"+"<!--- PRVNI ZALOZKA --->"+"<div class=\"viContainer\" id=\"viCont1\">"+"<div id=\"viTools\">"+"<span class=\"printBox\"><a href=\"http://www.firmy.cz/detail/"+data.obsah[0].seoName+"?cardPrint\">Vytiskni</a></span>"+"<span class=\"pipe\">|</span>"+"<span class=\"closeBox\"><a href=\"#\" id=\"close-"+this.premiseId+"-0\">Zavřít</a></span>"+"</div>"+"<div id=\"viMap\">"+"<a href=\"http://www.mapy.cz/?query=id%3Apremise%20"+this.premiseId+"&amp;mapType=base\" class=\"map\">"+"<img src=\"http://mapgen.mapy.cz/?typ=base&amp;center="+data.obsah[0].map.hexPPx+"_"+data.obsah[0].map.hexPPy+"&amp;arrow="+data.obsah[0].map.hexPPx+"_"+data.obsah[0].map.hexPPy+"&amp;zoom="+data.obsah[0].map.zoom+"&amp;w=260&amp;h=260&amp;fmt=png\" height=\"260\" width=\"260\" alt=\"mapka\">"+"</a>"+"<div class=\"mapLinks\">"+"<span class=\"mapBox\"><a href=\"http://www.mapy.cz/?query=id%3Apremise%20"+this.premiseId+"&amp;mapType=base\">Zobrazit na mapy.cz</a></span>"+"<span class=\"pipe\">|</span>"+"<span class=\"routeBox\"><a href=\"#\" onclick=\"return router.show(this)\">Naplánovat trasu</a></span>"+"</div>"+"</div>"+"<div id=\"viInfo\">";htmlCode+="<h3>"+data.obsah[0].name+"</h3>"+"<p class=\"affiliate\">"+data.obsah[0].address;htmlCode+="<br /><span class=\"more\"> "+(SZN.gEl("reg-"+this.premiseId)!=null?SZN.gEl("reg-"+this.premiseId).innerHTML:"")+" </span>";htmlCode+="</p>"+"<ul class=\"comm\">";if(typeof data.obsah[0].telephone!="undefined"){htmlCode+="<li>Telefon: "+data.obsah[0].telephone+"</li>";}if(typeof data.obsah[0].telephone_MOB!="undefined"){htmlCode+="<li>Mobil: "+data.obsah[0].telephone_MOB+"</li>";}if(typeof data.obsah[0].telephone_FAX!="undefined"){htmlCode+="<li>Fax: "+data.obsah[0].telephone_FAX+"</li>";}if(typeof data.obsah[0].telephone_GRN!="undefined"){htmlCode+="<li>Zelená linka: "+data.obsah[0].telephone_GRN+"</li>";}if(data.obsah[0].email!=""){htmlCode+="<li>Email: <a class=\"mail\" href=\"mailto:"+data.obsah[0].email+"\">"+data.obsah[0].email+"</a></li>";}if(data.obsah[0].url!=""){htmlCode+="<li><a class=\"url\" href=\""+data.obsah[0].url+"\" onmousedown=\"var im = new Image(1,1); im.src='"+window.crdStat+"/?act="+window.crdCw+"&amp;premid="+this.premiseId+"'\">"+data.obsah[0].url+"</a></li>";}htmlCode+="</ul>"+"<p class=\"more\">"+"<a href=\"http://www.firmy.cz/detail/"+this.premiseId+"\" onmousedown=\"var im = new Image(1,1); im.src='"+window.crdStat+"/?act="+window.crdCp+"&amp;premid="+this.premiseId+"'\"><strong>Detail firmy &raquo;</strong></a>"+"</p>"+"</div>"+"<div class=\"cistic\">&nbsp;</div>"+"</div>"+"<!--- DRUHA ZALOZKA --->"+"<div class=\"viContainer\" id=\"viCont2\" style=\"display:none;\">"+"<div id=\"viTools\">"+"<span class=\"printBox\"><a href=\"http://www.firmy.cz/detail/"+data.obsah[0].seoName+"?cardPrint\">Vytiskni</a></span>"+"<span class=\"pipe\">|</span>"+"<span class=\"closeBox\"><a href=\"#\" id=\"close-"+this.premiseId+"-1\">Zavřít</a></span>"+"</div>"+"<div id=\"viScreen\">";if(data.obsah[0].url!=""){htmlCode+="<a href=\""+data.obsah[0].url+"\" id=\"screenshot\" onmousedown=\"var im = new Image(1,1); im.src='"+window.crdStat+"/?act="+window.crdCw+"&amp;premid="+this.premiseId+"'\">"+"<img src=\"http://img.mapy.cz/fy/"+data.obsah[1].screenshotPath+"_scrshot.jpg\" alt=\"\" height=\"150\" width=\"200\">"+"</a>";}htmlCode+="</div>"+"<div id=\"viInfo\">";htmlCode+="<h3>"+data.obsah[0].name+"</h3>"+"<p class=\"affiliate\">"+data.obsah[0].address;htmlCode+="<br /><span class=\"more\"> "+(SZN.gEl("reg-"+this.premiseId)!=null?SZN.gEl("reg-"+this.premiseId).innerHTML:"")+" </span>";htmlCode+="</p>"+"<p class=\"desc\">"+data.obsah[1].description+"</p>";if(data.obsah[0].url!=""){htmlCode+="<p class=\"comm\"><a class=\"url\" href=\""+data.obsah[0].url+"\" onmousedown=\"var im = new Image(1,1); im.src='"+window.crdStat+"/?act="+window.crdCw+"&amp;premid="+this.premiseId+"'\">"+data.obsah[0].url+"</a></p>";}htmlCode+="<p class=\"more\">"+"<a href=\"http://www.firmy.cz/detail/"+this.premiseId+"\" onmousedown=\"var im = new Image(1,1); im.src='"+window.crdStat+"/?act="+window.crdCp+"&amp;premid="+this.premiseId+"'\"><strong>Detail firmy &raquo;</strong></a>"+"</p>"+"</div>"+"<div class=\"cistic\">&nbsp;</div>"+"</div>";if((typeof data.obsah[2]!="undefined")&&(typeof data.obsah[2].photo=="undefined")){htmlCode+="<!--- TRETI ZALOZKA --->"+"<div class=\"viContainer\" id=\"viCont3\" style=\"display:none;\">"+"<div id=\"viTools\">"+"<span class=\"printBox\"><a href=\"http://www.firmy.cz/detail/"+data.obsah[0].seoName+"?cardPrint\">Vytiskni</a></span>"+"<span class=\"pipe\">|</span>"+"<span class=\"closeBox\"><a href=\"#\" id=\"close-"+this.premiseId+"-2\">Zavřít</a></span>"+"</div>"+"<div id=\"viInfo\">";htmlCode+="<h3>"+data.obsah[0].name+"</h3>"+"<p class=\"affiliate\">"+data.obsah[0].address;htmlCode+="<br /><span class=\"more\"> "+(SZN.gEl("reg-"+this.premiseId)!=null?SZN.gEl("reg-"+this.premiseId).innerHTML:"")+" </span>";htmlCode+="</p>"+"<h4>Otevírací hodiny:</h4>"+"<p class=\"open\">";for(var i=0;i<data.obsah[2].openingHours.length;i++){if(data.obsah[2].openingHours[i].type=="open"){htmlCode+="<span>"+data.obsah[2].openingHours[i].day+"</span> "+data.obsah[2].openingHours[i].amFrom+" - "+data.obsah[2].openingHours[i].amTo;if(data.obsah[2].openingHours[i].pmFrom){htmlCode+=" "+data.obsah[2].openingHours[i].pmFrom+" - "+data.obsah[2].openingHours[i].pmTo;}htmlCode+="<br/>";}else{if(data.obsah[2].openingHours[i].type=="nonstop"){htmlCode+="<span>"+data.obsah[2].openingHours[i].day+"</span> nonstop<br/>";}else{htmlCode+="<span>"+data.obsah[2].openingHours[i].day+"</span> &mdash;<br/>";}}}htmlCode+="</p>"+"<p class=\"more\">"+"<a href=\"http://www.firmy.cz/detail/"+this.premiseId+"\" onmousedown=\"var im = new Image(1,1); im.src='"+window.crdStat+"/?act="+window.crdCp+"&amp;premid="+this.premiseId+"'\"><strong>Detail firmy &raquo;</strong></a>"+"</p>"+"</div>"+"<div class=\"cistic\">&nbsp;</div>"+"</div>";;}if(((typeof data.obsah[2]!="undefined")&&(typeof data.obsah[2].photo!="undefined"))||(typeof data.obsah[3]!="undefined")){htmlCode+="<!--- Ctvrta ZALOZKA --->"+"<div class=\"viContainer\" id=\"viCont"+(tabs)+"\" style=\"display:none;\">"+"<div id=\"viTools\">"+"<span class=\"printBox\"><a href=\"http://www.firmy.cz/detail/"+data.obsah[0].seoName+"?cardPrint\">Vytiskni</a></span>"+"<span class=\"pipe\">|</span>"+"<span class=\"closeBox\"><a href=\"#\" id=\"close-"+this.premiseId+"-"+(tabs-1)+"\">Zavřít</a></span>"+"</div>"+"<div id=\"viGallery\">"+this.makeGallery(data.obsah[3]||data.obsah[2])+"</div>"+"<div id=\"viInfo\" class=\"gall\">";htmlCode+="<h3>"+data.obsah[0].name+"</h3>"+"<p class=\"affiliate\">"+data.obsah[0].address;htmlCode+="<br /><span class=\"more\"> "+(SZN.gEl("reg-"+this.premiseId)!=null?SZN.gEl("reg-"+this.premiseId).innerHTML:"")+" </span>";htmlCode+="</p>"+"<p class=\"more\">"+"<a href=\"http://www.firmy.cz/detail/"+this.premiseId+"\" onmousedown=\"var im = new Image(1,1); im.src='"+window.crdStat+"/?act="+window.crdCp+"&amp;premid="+this.premiseId+"'\"><strong>Detail firmy &raquo;</strong></a>"+"</p>"+"</div>"+"<div class=\"cistic\">&nbsp;</div>"+"</div>";}htmlCode+="</div>"+"</div>";this.cardBox=SZN.cEl("div");this.cardBox.id="card";this.cardBox.style.position="absolute";this.cardBox.style.top=(this.boxPosTop+26)+"px";this.cardBox.style.left=(this.boxPosLeft+100)+"px";this.cardBox.innerHTML=htmlCode;this.body.appendChild(this.cardBox);if(typeof window.vizitkaCounter!="undefined"){window.vizitkaCounter(window.vizitka_gem_id);}var pruhled=SZN.Dom.getDocSize();var boxCardPosTop=SZN.Dom.getBoxPosition(this.cardBox).top;var scroll=SZN.Dom.getScrollPos();var cardPosRelative=boxCardPosTop-scroll.y;var cardPosRelativeBottom=cardPosRelative+this.cardBox.offsetHeight+100;if(pruhled.height<cardPosRelativeBottom){window.scrollBy(0,cardPosRelativeBottom-pruhled.height);}this.tabsLi=SZN.gEl("viTabs").getElementsByTagName("li");this.tabs=new Array();for(var i=0;i<this.tabsLi.length;i++){this.tabs[i]=this.tabsLi[i].getElementsByTagName("a")[0];SZN.Events.addListener(this.tabs[i],"click",card,"changeTab",false,true);}this.actTab=SZN.gEl("viCont1");SZN.Events.addListener(SZN.gEl("close-"+this.premiseId+"-0"),"click",card,"showCard",false,true);SZN.Events.addListener(SZN.gEl("close-"+this.premiseId+"-1"),"click",card,"showCard",false,true);if((typeof data.obsah[2]!="undefined")&&(typeof data.obsah[2].photo=="undefined")){SZN.Events.addListener(SZN.gEl("close-"+this.premiseId+"-2"),"click",card,"showCard",false,true);}else{if((typeof data.obsah[2]!="undefined")&&(typeof data.obsah[2].photo!="undefined")){SZN.Events.addListener(SZN.gEl("close-"+this.premiseId+"-2"),"click",card,"showCard",false,true);}}if(typeof data.obsah[3]!="undefined"){SZN.Events.addListener(SZN.gEl("close-"+this.premiseId+"-3"),"click",card,"showCard",false,true);}imgPrew.initGallery();this.cardOpened=true;var pocitadlo=new Image();pocitadlo.src=window.crdStat+"/?act=CDP_I&premid="+this.premiseId;this.lastPremiseId=this.premiseId;},"changeTab":function(e,eml){SZN.Events.cancelDef(e);this.actTab.style.display="none";for(var i in this.tabs){if(this.tabs[i]!=null){this.tabs[i].parentNode.className="";}}var newTab=SZN.gEl(eml.id.split("-")[1]);newTab.style.display="block";eml.parentNode.className="active";this.actTab=newTab;},"closeCard":function(){this.cardBox.parentNode.removeChild(this.cardBox);if(SZN.gEl("previewBox")){imgPrew.close(null,SZN.gEl("previewBox"));imgPrew.deActive();}this.cardOpened=false;},"destroy":function(){SZN.Events.clearAllEvents();},"makeGallery":function(data){window.photoSuffix=data.originalSuffix;var imgs=data.photo;var output="";for(var i=0;i<imgs.length;i++){output+="<span><img src=\""+imgs[i]+"\" alt=\"\" /></span>";}return output;}};function setCounterClick(typ,ids){if(SZN.gEl("counterImg")){var trg=SZN.gEl("counterImg");}else{var trg=SZN.cEl("img");trg.id="counterImg";trg.width="1";trg.height="1";trg.alt="";var box=document.getElementsByTagName("body")[0];box.insertBefore(trg,box.firstChild);}var urlStr="http://stat.mapy.cz/?act="+typ+"&premid="+ids;trg.src=urlStr;};var router={"frm":"routeForm","inited":false,"show":function(param){if(SZN.gEl(router.frm).style.display!="block"){SZN.gEl(router.frm).style.display="block";}else{SZN.gEl(router.frm).style.display="none";}if(!router.inited){SZN.gEl("map").appendChild(SZN.gEl(router.frm));SZN.Events.addListener(SZN.gEl("routeChange"),"click",router.rtSwitch,false);router.inited=true;}SZN.gEl(router.frm).style.visibility="visible";return false;},"hide":function(){SZN.gEl(router.frm).style.display="none";},"rtSwitch":function(){var endNode=SZN.gEl("cBox").getElementsByTagName("span")[0];var startNode=SZN.gEl("rtFrom");var endValue=endNode.innerHTML;var startValue=startNode.value;endNode.innerHTML=startValue;startNode.value=endValue;},"send":function(){var urlMain=myUrl;var urlTo=SZN.gEl("cBox").getElementsByTagName("span")[0].innerHTML;var urlFrom=SZN.gEl("rtFrom").value;var urlStr=myUrl+"/?query=route:"+urlFrom+">"+urlTo;window.location=urlStr;return false;}};function hideSubtree(node){for(var child=node.firstChild;child!=null;child=child.nextSibling){if(child.nodeName=="LI"){for(var grandChild=child.firstChild;grandChild!=null;grandChild=grandChild.nextSibling){if(grandChild.nodeName=="A"){if(grandChild.className=="selected"){grandChild.className="unselected";}}else{if(grandChild.nodeName=="UL"){grandChild.style.display="none";}}}}}return true;};function showSubtree(node){var currentLI=node.parentNode;var top=currentLI.parentNode;for(var node=top.firstChild;node!=null;node=node.nextSibling){if(node.nodeName!="LI"){continue;}var ul=false;for(var node2=node.firstChild;node2!=null;node2=node2.nextSibling){if(node2.nodeName=="UL"){ul=node2;}}if(!ul){continue;}if(node==currentLI){ul.style.display=(ul.style.display=="none"?"":"none");}else{ul.style.display="none";}}return false;};function toggleDistricts(a){var node=a;var parent=node.parentNode;var ul=false;for(var node=parent.firstChild;node!=null;node=node.nextSibling){if(node.nodeName=="UL"){ul=node;}}if(!ul){return false;}if(ul.style.display=="none"){ul.style.display="";a.innerHTML="Sbalit";a.backgroundImage="url(/st/img/ico-minus.gif)";}else{ul.style.display="none";a.innerHTML="Rozbalit";a.backgroundImage="url(/st/img/ico-plus.gif)";}return false;}function cul(){}function ImgPreviewObj(mainObj,name,type,suffix){this.imgFold=new Array();this.visibleNum=null;this.active=new Object;this.opened=false;this.previewInterval=null;this.initGallery=function(){var obj=mainObj[name];nd=SZN.gEl(type?"panoramas":"photos");obj.active.memPrev=0;obj.active.memNext=0;var trg=nd.getElementsByTagName("span");var count=0;for(var i=0;i<trg.length;i++){if((trg[i].className.indexOf("pBox")!=-1)){obj.imgFold[count]=trg[i];SZN.Events.addListener(trg[i],"click",obj.showImage,false);count++;}}};this.showImage=function(e){var obj=mainObj[name];if(!arguments[0]||(arguments[0].type!="fake")){var trg=SZN.Events.getTarget(e);}else{var trg=e.trg;}while(trg.className.indexOf("pBox")==-1){trg=trg.parentNode;}for(var i=0;i<obj.imgFold.length;i++){if(trg==obj.imgFold[i]){obj.visibleNum=i;}}obj.opened=true;if(!SZN.gEl("previewBox")){var box=obj.makeBox();box.style.visibility="hidden";document.getElementsByTagName("body")[0].appendChild(box);obj.bWidth=box.offsetWidth;obj.bHeight=box.offsetHeight;obj.setBoxPosition();obj.appendImage(trg);obj.setListing();box.style.visibility="visible";}else{obj.setListing();obj.changeImage(trg);}};this.makeBox=function(){var obj=mainObj[name];var box=SZN.cEl("div");box.id="previewBox";box.className="mainPhotoBox";var topBorder=SZN.cEl("div");topBorder.className="photoTop";box.appendChild(topBorder);var contentBorder=SZN.cEl("div");contentBorder.className="photoContent";box.appendChild(contentBorder);var bottomBorder=SZN.cEl("div");bottomBorder.className="photoBottom";box.appendChild(bottomBorder);var headLine=SZN.cEl("div");headLine.className="photoHead";contentBorder.appendChild(headLine);headLine.innerHTML="<em>Zavřít galerii</em> <img src=\"/ico_close.gif\" width=\"15\" height=\"15\" alt=\"Zavřít galerii\" title=\"Zavřít galerii\" border=\"0\" />";var contentIn=SZN.cEl("div");contentIn.id="previewIn";contentBorder.appendChild(contentIn);var footerLine=SZN.cEl("div");footerLine.className="photoFooter";contentBorder.appendChild(footerLine);footerLine.innerHTML="<span class=\"ps\" id=\"listPrev\"><em>&lt; Předchozí</em></span><span class=\"ps\" id=\"listNext\"><em>Následující &gt;</em></span><div class=\"cleaner\"></div>";SZN.Events.addListener(headLine.getElementsByTagName("em")[0],"click",obj.close,false);SZN.Events.addListener(headLine.getElementsByTagName("img")[0],"click",obj.close,false);SZN.Events.addListener(box,"click",SZN.Events.stopEvent,false);SZN.Events.addListener(box,"mousedown",SZN.Events.stopEvent,false);SZN.Events.addListener(box,"mousemove",SZN.Events.stopEvent,false);SZN.Events.addListener(box,"dblclick",SZN.Events.stopEvent,false);return box;};this.close=function(){var obj=mainObj[name];var trg=SZN.gEl("previewBox");trg.parentNode.removeChild(trg);obj.opened=false;obj.active.memPrev=0;obj.active.memNext=0;obj.visibleNum=null;};this.setBoxPosition=function(){var obj=mainObj[name];var trg=SZN.gEl("previewBox");var refTrg=SZN.gEl("photos");var refPos=0;var leftPos=0;var rt=refTrg;while(rt.offsetParent){refPos+=rt.offsetTop;rt=rt.offsetParent;}refPos=refPos+refTrg.offsetHeight;var topPos=refPos-trg.offsetHeight;var leftPos=237;if(topPos<0){topPos=0;}trg.style.top=(topPos+3)+"px";trg.style.left=(leftPos)+"px";};this.appendImage=function(trg){var obj=mainObj[name];if(type){var pImg=SZN.cEl("embed");pImg.setAttribute("src",obj.setImgSource(trg));pImg.setAttribute("quality","high");pImg.setAttribute("pluginspage","http://www.macromedia.com/go/getflashplayer");pImg.setAttribute("type","application/x-shockwave-flash");pImg.setAttribute("height","300");pImg.setAttribute("width","400");obj.setListing();pImg.id="imgPreview";SZN.gEl("previewIn").appendChild(pImg);if(SZN.Browser.client=="opera"){SZN.gEl("previewIn").innerHTML=SZN.gEl("previewIn").innerHTML;}pImg.onload=obj.setImgTop;}else{var pImg=SZN.cEl("img");obj.setListing();pImg.id="imgPreview";pImg.style.visibility="hidden";SZN.gEl("previewIn").appendChild(pImg);pImg.onload=obj.setImgTop;pImg.onclick=obj.close;pImg.style.cursor=(SZN.Browser.client=="ie")?"hand":"pointer";pImg.title="Zavřít galerii";pImg.src=obj.setImgSource(trg);}};this.changeImage=function(trg){var obj=mainObj[name];var pImg=SZN.gEl("imgPreview");obj.setListing();if(type){var pImg=SZN.cEl("embed");pImg.setAttribute("src",obj.setImgSource(trg));pImg.setAttribute("quality","high");pImg.setAttribute("pluginspage","http://www.macromedia.com/go/getflashplayer");pImg.setAttribute("type","application/x-shockwave-flash");pImg.setAttribute("height","300");pImg.setAttribute("width","400");obj.setListing();pImg.id="imgPreview";SZN.gEl("previewIn").replaceChild(pImg,SZN.gEl("previewIn").firstChild);if(SNZ.Browser.client=="opera"){SZN.gEl("previewIn").innerHTML=SZN.gEl("previewIn").innerHTML;}pImg.onload=obj.setImgTop;}else{var pImg=SZN.cEl("img");pImg.id="imgPreview";pImg.src=obj.setImgSource(trg);pImg.onload=obj.setImgTop;pImg.onclick=obj.close;pImg.style.cursor=(SZN.Browser.client=="ie")?"hand":"pointer";pImg.title="Zavřít galerii";SZN.gEl("previewIn").replaceChild(pImg,SZN.gEl("previewIn").firstChild);}};this.setListing=function(){var obj=mainObj[name];var prevImg=SZN.gEl("listPrev");var nextImg=SZN.gEl("listNext");if(obj.visibleNum==0){if(obj.visibleNum==(obj.imgFold.length-1)){prevImg.className="ps";nextImg.className="ps";obj.setActive(0,0);}else{prevImg.className="ps";nextImg.className="ac";obj.setActive(0,1);}}else{if(obj.visibleNum==(obj.imgFold.length-1)){prevImg.className="ac";nextImg.className="ps";obj.setActive(1,0);}else{prevImg.className="ac";nextImg.className="ac";obj.setActive(1,1);}}};this.setActive=function(setPrev,setNext){var obj=mainObj[name];var prevActive=SZN.gEl("listPrev").getElementsByTagName("em")[0];var nextActive=SZN.gEl("listNext").getElementsByTagName("em")[0];if(!obj.active.memPrev&&setPrev){SZN.Events.addListener(prevActive,"click",obj.listPrevious,false);}else{if(obj.active.memPrev&&!setPrev){SZN.Events.removeListener(prevActive,"click",obj.listPrevious,false);}}if(!obj.active.memNext&&setNext){SZN.Events.addListener(nextActive,"click",obj.listNext,false);}else{if(obj.active.memNext&&!setNext){SZN.Events.removeListener(nextActive,"click",obj.listNext,false);}}obj.active.memPrev=setPrev;obj.active.memNext=setNext;};this.listNext=function(){var obj=mainObj[name];var myTarget=obj.imgFold[obj.visibleNum+1];obj.showImage({"type":"fake","trg":myTarget});};this.listPrevious=function(){var obj=mainObj[name];var myTarget=obj.imgFold[obj.visibleNum-1];obj.showImage({"type":"fake","trg":myTarget});};this.setImgSource=function(imageBox){var source=imageBox.getElementsByTagName("img")[0].src.split("_")[0]+suffix;return source;};this.setImgTop=function(){var pImg=SZN.gEl("imgPreview");pImg.style.position="relative";pImg.style.top=((Math.round(300-pImg.offsetHeight)/2)>0?(Math.round(300-pImg.offsetHeight)/2):0)+"px";pImg.style.visibility="visible";};};var cat={"init":function(){SZN.gEl("moreSwitch").style.display="block";SZN.gEl("moreCat").style.display="none";SZN.Events.addListener(SZN.gEl("moreSwitch"),"click",cat.switchCat,false);},"switchCat":function(e){var trg=SZN.Events.getTarget(e);if(SZN.gEl("moreCat").style.display=="none"){SZN.gEl("moreCat").style.display="block";trg.innerHTML="Sbalit";trg.style.backgroundImage="url(/st/img/ico-minus.gif)";}else{SZN.gEl("moreCat").style.display="none";trg.innerHTML="Rozbalit";trg.style.backgroundImage="url(/st/img/ico-plus.gif)";}}};function submitAction(ids){var emailPattern=/^[\w]+([\w._#\/ +$%=-][\w]+)*@[\w]+([\w.-]+[\w]+)*\.[\w]{2,5}$/;var sender=SZN.gEl("sender").value;var msg=SZN.gEl("message").value;var checkHash=(SZN.gEl("code")&&(SZN.gEl("code").value!=""))?true:false;var checkSnd=emailPattern.test(sender);var checkMsg=(msg=="")?false:true;if(checkSnd&&checkMsg&&checkHash){return true;}else{var note="";var cnt=1;if(!checkSnd){var note="Není zadaný platný e-mail!";buildMessage(1,note);}else{removeMessage(1);}if(!checkMsg){var note=" Není zadán žádný dotaz!";buildMessage(2,note);}else{removeMessage(2);}if(!checkHash){var note="Není zadaný kontrolní kód!";if(!SZN.gEl("code")){sendEmail.fromSubmit=true;sendEmail.getHash();}else{buildMessage(4,note);}cnt++;}else{removeMessage(4);}return false;}};function buildMessage(ids,msg){var tags=SZN.gEl("messageForm").getElementsByTagName("p");var noteBox=SZN.cEl("strong");noteBox.innerHTML=msg;if(tags[ids].getElementsByTagName("strong").length==0){tags[ids].appendChild(noteBox);}}function removeMessage(ids){var tags=SZN.gEl("messageForm").getElementsByTagName("p");var num=ids;if(tags[num].getElementsByTagName("strong").length!=0){tags[num].getElementsByTagName("strong")[0].parentNode.removeChild(tags[num].getElementsByTagName("strong")[0]);}}function SendEmailObj(){this.hrId="sendemailHr";this.boxId="sendemail";this.codeId="code";this.formIds="messageForm";this.formActive=false;this.hashShow=false;this.fromSubmit=false;this.init=function(){SZN.gEl(this.hrId).style.display="block";SZN.gEl(this.boxId).style.display="block";if(!SZN.gEl(this.codeId)){this.activateForm();}else{this.formActive=true;}};this.activateForm=function(){var tags=SZN.gEl(this.formIds).getElementsByTagName("input");for(var i=0;i<tags.length;i++){if(tags[i].type=="text"){SZN.Events.addListener(tags[i],"focus",this.getHash,false);}}var txtArea=SZN.gEl(this.formIds).getElementsByTagName("textarea")[0];SZN.Events.addListener(txtArea,"focus",this.getHash,false);var mySelect=SZN.gEl(this.formIds).getElementsByTagName("select")[0];SZN.Events.addListener(mySelect,"focus",this.getHash,false);};this.getHash=function(){var obj=arguments.callee._this;if(obj.formActive){return;}obj.formActive=true;var dataFold=SZN.gEl("dataFold");var urlStr="/detail/auth/getHash";var url=urlStr;var rq=new SZN.HTTPRequest();rq.send(url,obj,"response");};this.response=function(response){eval(response);};this.getHash._this=this;this.setHash=function(hashNumber){var content=new Array();var refTag=SZN.gEl("mailSendBox");hashSrc="http://"+window.location.host+"/detail/auth/"+hashNumber;if(this.fromSubmit){content[1]="<label for=\"code\">Opište kód z obrázku:</label><input id=\"code\" name=\"code\" type=\"text\" size=\"10\" value=\"\" /><strong>Není zadaný kontrolní kód!</strong>";}else{content[1]="<label for=\"code\">Opište kód z obrázku:</label><input id=\"code\" name=\"code\" type=\"text\" size=\"10\" value=\"\" />";}content[0]="<img id=\"hashPic\" src=\"\" width=\"170\" height=\"70\" alt=\"kontrolní kód\" title=\"kontrolní kód\" /><input name=\"hash\" type=\"hidden\" value=\""+hashNumber+"\" />";for(var i=0;i<content.length;i++){if(this.hashShow){break;}var box=SZN.cEl("p");box.innerHTML=content[i];box.style.display="block";SZN.gEl(this.formIds).insertBefore(box,refTag);if(i==0){SZN.gEl("hashPic").src=hashSrc;}}this.hashShow=true;};};var sendEmail=new SendEmailObj();function printCard(){if(window.location.href.indexOf("cardPrint")!=-1){window.print();}}SZN.Events.addListener(window,"load",printCard,false);function initMap(id,x,y,zoom,url){var mapa=new SZN.MapEngine(SZN.gEl(id),true);mapa.mouseSet(5);mapa.enableSelection(1);mapa.zoomSet(zoom);mapa.setCenter(x,y);mapa.port.copyVisible=false;var zoomControl=new SZN.Visual.ZoomControl("full");mapa.addControls(zoomControl,mapa.getDefaultLayoutBox(),10,10);var m=mapa.makeMark("user","","","id");var a=SZN.cEl("a",false,false,{"position":"absolute"});a.href=url;a.appendChild(m.elms.activ.node);m.elms.activ.node=a;mapa.addMark(x,y,m);mapa.init();if(SZN.CONF.enableInfoMap){mapa.addNewComponent({"part":SZN.InfoMap,"name":"infoMap"});}}SZN.ImageBrowser=SZN.ClassMaker.makeClass({"NAME":"ImageBrowser","VERSION":"2.0","CLASS":"class"});SZN.ImageBrowser.prototype.$constructor=function(container,data,optObj){this.options={"width":640,"height":480,"thumbWidth":100,"thumbHeight":75,"thumbBorder":0,"zoomLinkId":"","mainLinkId":"","imagePath":"img/","imageFormat":"png","showNavigation":true,"useShadow":false,"parent":false,"zIndex":false,"shadowSizes":[22,22,22,22]};this.ec=[];this.dom={};this.objCache=[];this.window=false;this.defaultIndex=0;this.index=-1;this.container=SZN.gEl(container);for(var p in optObj){this.options[p]=optObj[p];}this.data=[];for(var i=0;i<data.length;i++){var item=data[i];var o={};o.alt=item.alt;o.big=item.big.url;o.small=item.small.url;if(item.main){this.defaultIndex=i;}this.data.push(o);}if(this.container){var imgLinks=this.container.getElementsByTagName("a");for(var i=0;i<imgLinks.length;i++){var link=imgLinks[i];this.objCache.push(new SZN.ImageBrowser.ImageLink(this,i,link));}}var link=SZN.gEl(this.options.mainLinkId);if(link){this.objCache.push(new SZN.ImageBrowser.ImageLink(this,this.defaultIndex,link));}var link=SZN.gEl(this.options.zoomLinkId);if(link){this.objCache.push(new SZN.ImageBrowser.ImageLink(this,this.defaultIndex,link));}this._buildDom();};SZN.ImageBrowser.prototype.$destructor=function(){for(var i=0;i<this.data.length;i++){this.data[i].obj.$destructor();}for(var i=0;i<this.objCache.length;i++){this.objCache[i].$destructor();}for(var i=0;i<this.ec.length;i++){SZN.Events.removeListener(this.ec[i]);}for(var p in this){this[p]=null;}};SZN.ImageBrowser.prototype._buildDom=function(){if(this.options.useShadow){var winopts={"imagePath":this.options.imagePath,"imageFormat":this.options.imageFormat,"sizes":this.options.shadowSizes};this.window=new SZN.Window(winopts);this.dom.container=this.window.container;this.dom.content=this.window.content;}else{this.dom.container=SZN.cEl("div",false,false,{"position":"relative"});this.dom.content=this.dom.container;}var tw=this.data.length*this.options.thumbWidth;var th=this.options.thumbHeight+2*this.options.thumbBorder;if(tw>this.options.width){th+=17;}SZN.Dom.addClass(this.dom.content,"image-browser-content");var table=SZN.cEl("table",false,false,{"borderCollapse":"collapse"});var tb=SZN.cEl("tbody");var tr=SZN.cEl("tr");var mainPart=SZN.cEl("td",false,"image-browser-image",{"width":this.options.width+"px","height":this.options.height+"px","padding":"0px","overflow":"hidden"});SZN.Dom.append([this.dom.content,table],[table,tb],[tb,tr],[tr,mainPart]);var thumbsPort=SZN.cEl("div",false,"image-browser-port",{"position":"relative","overflow":"auto","width":this.options.width+"px","height":th+"px"});var thumbs=SZN.cEl("table",false,"image-browser-thumbs",{"borderCollapse":"collapse"});var tb=SZN.cEl("tbody");var tr=SZN.cEl("tr");var dummy=SZN.cTxt("...");mainPart.appendChild(dummy);var prev=SZN.cEl("div",false,"image-browser-prev");var next=SZN.cEl("div",false,"image-browser-next");var close=SZN.cEl("div",false,"image-browser-close");prev.title="Předchozí";next.title="Následující";close.title="Zavřít";if(this.options.showNavigation){this.ec.push(SZN.Events.addListener(prev,"click",this,"_prev",false,true));this.ec.push(SZN.Events.addListener(next,"click",this,"_next",false,true));this.ec.push(SZN.Events.addListener(prev,"mousedown",this,"_cancel",false,true));this.ec.push(SZN.Events.addListener(next,"mousedown",this,"_cancel",false,true));}if(!this.options.parent){this.ec.push(SZN.Events.addListener(close,"click",this,"_hide",false,true));this.ec.push(SZN.Events.addListener(mainPart,"click",this,"_hide",false,true));}for(var i=0;i<this.data.length;i++){var data=this.data[i];var td=SZN.cEl("td",false,false,{"padding":"0px"});var div=SZN.cEl("div",false,false,{"overflow":"hidden","width":this.options.thumbWidth+"px"});var tmp=SZN.cTxt("...");SZN.Dom.append([td,div],[div,tmp]);var img=new SZN.ImageBrowser.ScaledImage(data.small,this.options.thumbWidth,this.options.thumbHeight,tmp);this.objCache.push(img);img.title=data.alt;data.div=div;data.img=img.elm;data.obj=new SZN.ImageBrowser.ImageLink(this,i,td);SZN.Dom.append([tr,td]);}var active=SZN.cEl("div",false,"image-browser-active",{"position":"absolute"});thumbsPort.appendChild(active);this.dom.mainPart=mainPart;this.dom.thumbs=thumbs;this.dom.port=thumbsPort;this.dom.active=active;SZN.Dom.append([thumbs,tb],[tb,tr]);SZN.Dom.append([this.dom.content,thumbsPort],[thumbsPort,thumbs]);if(this.options.showNavigation&&this.data.length>1){SZN.Dom.append([this.dom.content,prev,next]);}if(this.options.parent){this.options.parent.appendChild(this.dom.container);this._showImage(this.defaultIndex);}else{this.dom.root=SZN.cEl("div",false,"image-browser-root",{"position":"absolute","left":"0px","top":"0px"});this.dom.container.style.position="absolute";this.dom.container.style.left="0px";this.dom.container.style.top="0px";if(this.options.zIndex){this.dom.root.style.zIndex=this.options.zIndex;this.dom.container.style.zIndex=this.options.zIndex;}this.dom.content.appendChild(close);this._hide();this.ec.push(SZN.Events.addListener(window,"resize",this,"_reposition",false,true));this.ec.push(SZN.Events.addListener(window,"scroll",this,"_reposition",false,true));}};SZN.ImageBrowser.prototype._showImage=function(index){this._show();if(this.index!=-1){var old=this.data[this.index];SZN.Dom.removeClass(old.div,"active");}this.index=index;var data=this.data[this.index];var img=new SZN.ImageBrowser.ScaledImage(data.big,this.options.width,this.options.height,this.dom.mainPart.firstChild);this.objCache.push(img);if(!this.options.parent){img.title="Klikni pro zavření";}SZN.Dom.addClass(data.div,"active");var leftOffset=data.obj.offset;var sl=Math.round(leftOffset-(this.options.width/2-this.options.thumbWidth/2));this.dom.port.scrollLeft=sl;var pos1=SZN.Dom.getBoxPosition(data.div.parentNode);var pos2=SZN.Dom.getBoxPosition(this.dom.port);var act=this.dom.active;act.style.left=(pos1.left-pos2.left)+"px";act.style.top=(pos1.top-pos2.top)+"px";var w1=parseInt(SZN.Dom.getStyle(data.div,"borderLeftWidth"))||0;w1-=parseInt(SZN.Dom.getStyle(act,"borderLeftWidth"))||0;var w2=parseInt(SZN.Dom.getStyle(data.div,"borderRightWidth"))||0;w2-=parseInt(SZN.Dom.getStyle(act,"borderRightWidth"))||0;var h1=parseInt(SZN.Dom.getStyle(data.div,"borderTopWidth"))||0;h1-=parseInt(SZN.Dom.getStyle(act,"borderTopWidth"))||0;var h2=parseInt(SZN.Dom.getStyle(data.div,"borderBottomWidth"))||0;h2-=parseInt(SZN.Dom.getStyle(act,"borderBottomWidth"))||0;act.style.width=(this.options.thumbWidth+w1+w2)+"px";this.dom.active.style.height=(this.options.thumbHeight+h1+h2)+"px";};SZN.ImageBrowser.prototype._prev=function(){if(this.index==0){return;}this._showImage(this.index-1);};SZN.ImageBrowser.prototype._next=function(){if(this.index==this.data.length-1){return;}this._showImage(this.index+1);};SZN.ImageBrowser.prototype._hide=function(){SZN.Dom.elementsHider(this.dom.container,false,"show");SZN.Dom.elementsHider(this.dom.container,false,"show");if(!this.options.parent){this.dom.root.style.display="none";}if(this.window){this.window.hide();}else{this.dom.container.style.display="none";}};SZN.ImageBrowser.prototype._show=function(){if(this.options.parent){if(this.window){this.window.show();}else{this.dom.container.style.display="";}}else{if(!this.dom.root.parentNode){document.body.appendChild(this.dom.root);document.body.appendChild(this.dom.container);this.dom.root.style.left="0px";this.dom.root.style.top="0px";this.dom.container.style.left="0px";this.dom.container.style.top="0px";}this.dom.root.style.display="";this.dom.container.style.display="";this._reposition();}SZN.Dom.elementsHider(this.dom.container,false,"hide");};SZN.ImageBrowser.prototype._reposition=function(){var docSize=SZN.Dom.getDocSize();var scrollPos=SZN.Dom.getScrollPos();this.dom.root.style.width=docSize.width+"px";this.dom.root.style.height=docSize.height+"px";this.dom.root.style.left=scrollPos.x+"px";this.dom.root.style.top=scrollPos.y+"px";var tableLeft=(docSize.width-this.dom.container.offsetWidth)/2+scrollPos.x;this.dom.container.style.left=Math.round(tableLeft)+"px";var tableTop=(docSize.height-this.dom.container.offsetHeight)/2+scrollPos.y;this.dom.container.style.top=Math.round(tableTop)+"px";};SZN.ImageBrowser.prototype._cancel=function(e,elm){SZN.Events.cancelDef(e);};SZN.ImageBrowser.ImageLink=SZN.ClassMaker.makeClass({"NAME":"ImageLink","VERSION":"1.0","CLASS":"class"});SZN.ImageBrowser.ImageLink.prototype.$constructor=function(owner,index,elm){this.ec=[];this.owner=owner;this.index=index;this.elm=elm;this.offset=index*owner.options.thumbWidth;this.ec.push(SZN.Events.addListener(this.elm,"click",this,"_show",false,true));};SZN.ImageBrowser.ImageLink.prototype.$destructor=function(){for(var i=0;i<this.ec.length;i++){SZN.Events.removeListener(this.ec[i]);}for(var p in this){this[p]=null;}};SZN.ImageBrowser.ImageLink.prototype._show=function(e,elm){SZN.Events.cancelDef(e);this.owner._showImage(this.index);};SZN.ImageBrowser.ScaledImage=SZN.ClassMaker.makeClass({"NAME":"ScaledImage","VERSION":"1.0","CLASS":"class"});SZN.ImageBrowser.ScaledImage.prototype.$constructor=function(src,w,h,ancestor){this.w=w;this.h=h;this.src=src;this.ancestor=ancestor;this.ec=[];this.elm=SZN.cEl("img");this.container=SZN.cEl("div",false,false,{"position":"absolute","left":"-1000px","top":"-1000px","width":"1px","height":"1px","overflow":"hidden"});this.ec.push(SZN.Events.addListener(this.elm,"load",this,"_loaded",false,true));document.body.insertBefore(this.container,document.body.firstChild);this.container.appendChild(this.elm);this.elm.src=this.src;};SZN.ImageBrowser.ScaledImage.prototype.$destructor=function(){for(var i=0;i<this.ec.length;i++){SZN.Events.removeListener(this.ec[i]);}for(var p in this){this[p]=null;}};SZN.ImageBrowser.ScaledImage.prototype._loaded=function(e,elm){var w=this.elm.width;var h=this.elm.height;var ratio_w=w/this.w;var ratio_h=h/this.h;var max=Math.max(ratio_w,ratio_h);if(max>1){w=w/max;h=h/max;if(w&&h){this.elm.width=Math.ceil(w);this.elm.height=Math.ceil(h);}}if(this.ancestor&&this.ancestor.parentNode){this.ancestor.parentNode.replaceChild(this.elm,this.ancestor);}if(this.container){this.container.parentNode.removeChild(this.container);this.container=false;}};Tabs=SZN.ClassMaker.makeClass({"NAME":"Tabs","VERSION":"1.0","CLASS":"class"});Tabs.prototype.$constructor=function(input){this.tabsDivId=input.tabsDivId;this.inputId=input.inputId;this.moreId=input.moreId;this.closeId=input.closeId;this.visible=false;this.div=null;this.input=null;this.more=null;this.close=null;this.moreMenuUl=null;};Tabs.prototype.init=function(){this.div=SZN.gEl(this.tabsDivId);this.input=SZN.gEl(this.inputId);this.more=SZN.gEl(this.moreId);this.close=SZN.gEl(this.closeId);if(this.div==null||this.more==null){return;}this.moreMenuUl=this.more.getElementsByTagName("ul")[0];this.moreMenuUl.style.display="none";SZN.Events.addListener(this.div,"click",this,"onDivClick");SZN.Events.addListener(this.moreMenuUl,"click",this,"onDivClick");SZN.Events.addListener(this.more,"mouseover",this,"_mouseOver");SZN.Events.addListener(this.more,"mouseout",this,"_mouseOut");};Tabs.prototype._mouseOver=function(e,elm){if(this.visible){return;}this.visible=true;this.moreMenuUl.style.display="block";};Tabs.prototype._mouseOut=function(e,elm){var newElm=e.relatedTarget||e.toElement;while(newElm){if(newElm==this.more){return;}newElm=newElm.parentNode;}this.visible=false;this.moreMenuUl.style.display="none";};Tabs.prototype.onDivClick=function(){var links=this.div.getElementsByTagName("a");for(var i=0;i<links.length;i++){links[i].href=this._createNewUrl(links[i].href);}};Tabs.prototype.getEscapedValue=function(){return encodeURIComponent(this.input.value);};Tabs.prototype._createNewUrl=function(url){var parsedUrl=parseUri(url);if(parsedUrl.host.match(/firmy/g)){url=url.substring(0,url.lastIndexOf("/")+1);url+=this.getEscapedValue();}else{if(parsedUrl.query.match(/q=/g)){url=url.replace(/q=[^&]*/g,"q="+this.getEscapedValue());}else{if(parsedUrl.query.match(/s=/g)){url=url.replace(/s=[^&]*/g,"s="+this.getEscapedValue());}else{if(parsedUrl.query.match(/query=/g)){url=url.replace(/query=[^&]*/g,"query="+this.getEscapedValue());}else{if(parsedUrl.query.match(/search=/g)){url=url.replace(/search=[^&]*/g,"search="+this.getEscapedValue());}else{}}}}}return url;};Tabs.prototype.onMoreClick=function(e,elm){if(!this.visible){SZN.Events.cancelDef(e);}this.visible=true;this.moreMenuUl.style.display="block";};Tabs.prototype.onCloseClick=function(e,elm){SZN.Events.stopEvent(e);this.visible=false;this.moreMenuUl.style.display="none";};SZN.Window=SZN.ClassMaker.makeClass({"NAME":"Window","VERSION":"1.0","CLASS":"class"});SZN.Window.prototype.$constructor=function(optObj){this.options={"imagePath":"/st/img/shadow-","imageFormat":"png","sizes":[6,6,6,6]};for(var p in optObj){this.options[p]=optObj[p];}this.content=SZN.cEl("div",false,"window-content",{"position":"relative"});;this.container=false;this._buildDom();};SZN.Window.prototype._buildDom=function(){var imageNames=[["lt","t","rt"],["l","","r"],["lb","b","rb"]];this.container=SZN.cEl("div",false,"window-container",{"position":"relative","zIndex":10});var table=SZN.cEl("table",false,false,{"borderCollapse":"collapse","position":"relative"});var tbody=SZN.cEl("tbody");SZN.Dom.append([table,tbody],[this.container,table]);for(var i=0;i<3;i++){var tr=SZN.cEl("tr");tbody.appendChild(tr);for(var j=0;j<3;j++){var td=SZN.cEl("td");td.style.padding="0px";td.style.margin="0px";if(i==1&&j==1){td.appendChild(this.content);}var im=imageNames[i][j];if(im){var path=this.options.imagePath+im+"."+this.options.imageFormat;if(SZN.Browser.klient=="ie"&&this.options.imageFormat.match(/png/i)){td.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+path+"',sizingMethod='scale')";}else{td.style.backgroundImage="url("+path+")";}}if(i==0){td.style.height=this.options.sizes[0]+"px";}if(i==2){td.style.height=this.options.sizes[2]+"px";}if(j==0){td.style.width=this.options.sizes[3]+"px";}if(j==2){td.style.width=this.options.sizes[1]+"px";}if(j==1&&i!=1){td.style.width="auto";}tr.appendChild(td);}}};SZN.Window.prototype.$destructor=function(){for(var p in this){this[p]=null;}};SZN.Window.prototype.show=function(){this.container.style.display="";};SZN.Window.prototype.hide=function(){this.container.style.display="none";};SZN.DetailTab=SZN.ClassMaker.makeClass({"NAME":"SZN.DetailTab","VERSION":"1.0","CLASS":"class"});SZN.DetailTab.prototype.$constructor=function(element,contentBox){this.ec=[];this.domCache=null;this.element=SZN.gEl(element);this.contentBox=SZN.gEl(contentBox);this.ec.push(SZN.Events.addListener(this.element,"click",this,"click",false,true));this.ec.push(SZN.Events.addListener(window,"unload",this,"$destructor",false,true));};SZN.DetailTab.prototype.$destructor=function(){for(var i=0;i<this.ec.length;i++){SZN.Events.removeListener(this.ec[i]);}for(var p in this){this[p]=null;}};SZN.DetailTab.prototype.click=function(e,elm){SZN.Events.cancelDef(e);var li=this.element.parentNode.parentNode.getElementsByTagName("li");for(var i=0;i<li.length;i++){SZN.Dom.removeClass(li[i].getElementsByTagName("a")[0],"active");}SZN.Dom.addClass(this.element,"active");var url=this.element.href+(this.element.href.search(/\?/)>-1?"&":"?")+"js=1";if(this.domCache){SZN.Dom.clear(this.contentBox);this.contentBox.appendChild(this.domCache);}else{var rq=new SZN.HTTPRequest();rq.setMethod("get");rq.setFormat("txt");rq.setMode("async");rq.send(url,this,"_response");}};SZN.DetailTab.prototype._response=function(txt,status){if(status==200){SZN.Dom.clear(this.contentBox);var parsedHtml=this._jsParser(txt);this.domCache=SZN.cEl("div");this.domCache.innerHTML=parsedHtml.codeHTML;this.contentBox.appendChild(this.domCache);parsedHtml.codeJS.forEach(eval);}};SZN.DetailTab.prototype._jsParser=function(str){var jsField=[];var s=str.replace(/<script.*?>([\s\S]*?)<\/script>/g,function(tag,code){jsField.push(code);return "";});return {"codeHTML":s,"codeJS":jsField};};SZN.DetailTab.initializeTabs=function(idMenu,contentBox){var menu=SZN.gEl(idMenu);if(menu){var a=menu.getElementsByTagName("a");for(var i=0;i<a.length;i++){new SZN.DetailTab(a[i],SZN.gEl(contentBox));}}};SZN.VecNd=SZN.ClassMaker.makeClass({"NAME":"VecNd","VERSION":"1.0","CLASS":"class"});SZN.VecNd.prototype.$constructor=function(n){this.n=n;this.data=[];for(var i=0;i<n;i++){var val=(arguments.length>i+1?arguments[i+1]:0);this.data.push(val);}};SZN.VecNd.prototype.setN=function(n,val){this.data[n]=val;};SZN.VecNd.prototype.getN=function(n){return this.data[n];};SZN.VecNd.prototype.norm=function(degree){var d=degree||2;var sum=0;for(var i=0;i<this.n;i++){sum+=Math.pow(this.getN(i),d);}return Math.pow(sum,1/d);};SZN.VecNd.prototype._plus=function(t){for(var i=0;i<this.n;i++){this.setN(i,this.getN(i)+t.getN(i));}return this;};SZN.VecNd.prototype.plus=function(t){var result=this.clone();return result._plus(t);};SZN.VecNd.prototype._minus=function(t){for(var i=0;i<this.n;i++){this.setN(i,this.getN(i)-t.getN(i));}return this;};SZN.VecNd.prototype.minus=function(t){var result=this.clone();return result._minus(t);};SZN.VecNd.prototype._multiply=function(num){for(var i=0;i<this.n;i++){this.setN(i,this.getN(i)*num);}return this;};SZN.VecNd.prototype.multiply=function(num){var result=this.clone();return result._multiply(num);};SZN.VecNd.prototype.dot=function(t){var result=0;for(var i=0;i<this.n;i++){result+=this.getN(i)*t.getN(i);}return result;};SZN.VecNd.prototype._unit=function(degree){var n=this.norm(degree);for(var i=0;i<this.n;i++){this.setN(i,this.getN(i)/n);}return this;};SZN.VecNd.prototype.unit=function(degree){var result=this.clone();return result._unit(degree);};SZN.VecNd.prototype.clone=function(){var result=new this.sConstructor(this.n);for(var i=0;i<this.n;i++){result.setN(i,this.getN(i));}return result;};SZN.VecNd.prototype.join=function(separator,round){var s=separator||",";var arr=[];for(var i=0;i<this.n;i++){var val=this.getN(i);if(round){val=Math.round(val);}arr.push(val);}return arr.join(s);};SZN.VecNd.prototype.toString=function(){return "["+this.join(", ")+"]";};SZN.Vec2d=SZN.ClassMaker.makeClass({"NAME":"Vec2d","VERSION":"1.0","CLASS":"class","EXTEND":SZN.VecNd});SZN.Vec2d.prototype.$constructor=function(x,y){SZN.VecNd.prototype.$constructor.call(this,2,x,y);};SZN.Vec2d.prototype.setX=function(x){this.data[0]=x;};SZN.Vec2d.prototype.setY=function(y){this.data[1]=y;};SZN.Vec2d.prototype.getX=function(){return this.data[0];};SZN.Vec2d.prototype.getY=function(){return this.data[1];};SZN.Vec2d.prototype.normal=function(){return new this.sConstructor(this.getY(),-this.getX());};SZN.Vec2d.prototype._symmetry=function(axis){var norm=axis.normal()._unit();var coef=this.dot(norm);return this._minus(norm._multiply(2*coef));};SZN.Vec2d.prototype.symmetry=function(axis){var result=this.clone();return result._symmetry(axis);};SZN.Vec2d.prototype.distance=function(p1,p2){var vec=p2.minus(p1);var n=vec.normal().unit();var a1=p1.getX();var a2=p1.getY();var c1=this.getX();var c2=this.getY();var v1=vec.getX();var v2=vec.getY();var w1=n.getX();var w2=n.getY();var dist=(v1*c2-v2*c1+a1*v2-a2*v1)/(w1*v2-v1*w2);return -dist;};SZN.Vector=SZN.ClassMaker.makeClass({"NAME":"Vector","CLASS":"static","VERSION":"1.0","DEPEND":[{"sClass":SZN.Vec2d,"ver":"1.0"}]});SZN.Vector.getCanvas=function(w,h){if(SZN.Browser.client=="ie"){return new SZN.VML(w,h);}else{return new SZN.SVG(w,h);}};SZN.Vector.Canvas=SZN.ClassMaker.makeClass({"NAME":"Canvas","VERSION":"1.0","CLASS":"class"});SZN.Vector.Canvas.prototype.$constructor=function(width,height){};SZN.Vector.Canvas.prototype.clear=function(){};SZN.Vector.Canvas.prototype.resize=function(width,height){};SZN.Vector.Canvas.prototype.setScale=function(scale){};SZN.Vector.Canvas.prototype.getContainer=function(){};SZN.Vector.Canvas.prototype.getContent=function(){};SZN.Vector.Canvas.prototype.circle=function(){};SZN.Vector.Canvas.prototype.polyline=function(){};SZN.Vector.Canvas.prototype.polygon=function(){};SZN.Vector.Canvas.prototype.path=function(){};SZN.Vector.Canvas.prototype.setStroke=function(element,options){};SZN.Vector.Canvas.prototype.setFill=function(element,options){};SZN.Vector.Canvas.prototype.setCenterRadius=function(element,center,radius){};SZN.Vector.Canvas.prototype.setPoints=function(element,points,closed){};SZN.Vector.Canvas.prototype.setFormat=function(element,format){};SZN.Vector.Canvas.prototype.setTitle=function(element,title){element.setAttribute("title",title);};SZN.Vector.Canvas.prototype.computeControlPointsSymmetric=function(points,options){var o={"flat":true,"curvature":20,"join":false};for(var p in options){o[p]=options[p];}if(points.length<2||(points.length==2&&!o.join)){return false;}var result=[];var X=false;var Y=false;var limit=(o.join?points.length:points.length-1);for(var i=0;i<limit;i++){var A=points[i];if(o.join){var B=(i+1==points.length?points[0]:points[i+1]);var C=(i+2>=points.length?points[i+2-points.length]:points[i+2]);}else{var B=points[i+1];var C=(i+2==points.length?false:points[i+2]);}if(!C){var AB=B.minus(A);if(o.flat){Y=A.plus(AB.multiply(0.5));}else{var vAX=X.minus(A);var vYB=vAX.symmetry(AB);Y=B.minus(vYB);}}else{var vAC=C.minus(A);var l=vAC.norm();var frac=l/o.curvature;if(!frac){frac=Infinity;}var vYB=vAC.multiply(1/frac);Y=B.minus(vYB);}if(!X){var AB=B.minus(A);if(o.join){var D=points[points.length-1];var vBD=D.minus(B);var l=vBD.norm();var frac=l/o.curvature;if(!frac){frac=Infinity;}var vXA=vBD.multiply(1/frac);X=A.minus(vXA);}else{if(o.flat){X=A.plus(AB.multiply(0.5));}else{var vAX=vYB.symmetry(AB);X=A.plus(vAX);}}}result.push([X,Y]);X=B.plus(vYB);}return result;};SZN.Vector.Canvas.prototype.computeControlPoints=function(points,options){var o={"flat":true,"curvature":20,"join":false};for(var p in options){o[p]=options[p];}o.curvature=o.curvature/100;if(points.length<2||(points.length==2&&!o.join)){return false;}var result=[];var X=false;var Y=false;var limit=(o.join?points.length:points.length-1);for(var i=0;i<limit;i++){var A=points[i];if(o.join){var B=(i+1==points.length?points[0]:points[i+1]);var C=(i+2>=points.length?points[i+2-points.length]:points[i+2]);var D=(i?points[i-1]:points[points.length-1]);}else{var B=points[i+1];var C=(i+2==points.length?false:points[i+2]);var D=(i?points[i-1]:false);}var AB=B.minus(A);if(!C){if(o.flat){Y=A.plus(AB.multiply(0.5));}else{var vAX=X.minus(A);var vYB=vAX.symmetry(AB);Y=B.minus(vYB);}}else{var vAC=C.minus(A);var dist=AB.norm()*o.curvature;var norm=vAC.norm();var vYB=vAC.multiply(dist/norm||0);Y=B.minus(vYB);}if(D){var vBD=D.minus(B);var vBA=B.minus(A);var dist=vBA.norm()*o.curvature;var norm=vBD.norm();var vXA=vBD.multiply(dist/norm||0);X=A.minus(vXA);}else{if(o.flat){X=A.plus(AB.multiply(0.5));}else{var vAX=vYB.symmetry(AB);X=A.plus(vAX);}}result.push([X,Y]);}return result;};SZN.Vector.Primitive=SZN.ClassMaker.makeClass({"NAME":"Primitive","VERSION":"1.0","CLASS":"class"});SZN.Vector.Primitive.prototype.$constructor=function(canvas){this.canvas=canvas;this.elm=false;};SZN.Vector.Primitive.prototype.$destructor=function(){if(this.elm&&this.elm.parentNode&&this.elm.parentNode.nodeType==1){this.elm.parentNode.removeChild(this.elm);}};SZN.Vector.Line=SZN.ClassMaker.makeClass({"NAME":"Line","VERSION":"1.0","CLASS":"class","EXTEND":SZN.Vector.Primitive});SZN.Vector.Line.prototype.$constructor=function(canvas,points,options){this.canvas=canvas;this.elm2=false;this.options={"color":"#000","width":1,"curvature":0,"opacity":1,"outlineColor":"#fff","outlineOpacity":1,"outlineWidth":0,"title":"","symmetricCP":true};for(var p in options){this.options[p]=options[p];}this._build(points);};SZN.Vector.Line.prototype._build=function(points){var o1={"color":this.options.color,"width":this.options.width,"opacity":this.options.opacity};if(this.options.outlineWidth){var o2={"color":this.options.outlineColor,"width":2*this.options.outlineWidth+this.options.width,"opacity":this.options.outlineOpacity};}if(this.elm){this.elm.parentNode.removeChild(this.elm);}if(this.elm2){this.elm2.parentNode.removeChild(this.elm2);}if(this.options.curvature){this.elm=this.canvas.path();if(this.options.outlineWidth){this.elm2=this.canvas.path();}}else{this.elm=this.canvas.polyline();if(this.options.outlineWidth){this.elm2=this.canvas.polyline();}}this.canvas.setTitle(this.elm,this.options.title);this.canvas.setStroke(this.elm,o1);if(this.options.outlineWidth){this.canvas.setStroke(this.elm2,o2);this.canvas.setTitle(this.elm2,this.options.title);this.canvas.getContent().appendChild(this.elm2);}this.canvas.getContent().appendChild(this.elm);this.setPoints(points);};SZN.Vector.Line.prototype.setCurvature=function(c){if(!!this.options.curvature!=!!c){this.options.curvature=c;this._build(this.points);}else{this.options.curvature=c;this.setPoints(this.points);}};SZN.Vector.Line.prototype.$destructor=function(){if(this.elm.parentNode&&this.elm.parentNode.nodeType==1){this.elm.parentNode.removeChild(this.elm);}if(this.elm2&&this.elm2.parentNode&&this.elm2.parentNode.nodeType==1){this.elm2.parentNode.removeChild(this.elm2);}};SZN.Vector.Line.prototype.setPoints=function(points){this.points=points;if(this.options.curvature){var d="M "+this.points[0].join(" ");var len=this.points.length;if(len>2){if(this.options.symmetricCP){var control=this.canvas.computeControlPointsSymmetric(this.points,{"join":false,"curvature":this.options.curvature});}else{var control=this.canvas.computeControlPoints(this.points,{"join":false,"curvature":this.options.curvature});}for(var i=1;i<len;i++){var c=control[i-1];var x=c[0];var y=c[1];var point=this.points[i];d+="C "+x.join(" ")+", "+y.join(" ")+", "+point.join(" ")+" ";}}else{for(var i=1;i<len;i++){var point=this.points[i];d+="L  "+point.join(" ")+" ";}}this.canvas.setFormat(this.elm,d);if(this.elm2){this.canvas.setFormat(this.elm2,d);}}else{this.canvas.setPoints(this.elm,points);if(this.elm2){this.canvas.setPoints(this.elm2,points);}}};SZN.Vector.Line.prototype.setOptions=function(options){var o={};if("width" in options){o.width=options.width;this.options.width=options.width;}if("opacity" in options){o.opacity=options.opacity;}if("color" in options){o.color=options.color;}this.canvas.setStroke(this.elm,o);if(this.elm2){o={};if("outlineWidth" in options){o.width=2*options.outlineWidth+this.options.width;}if("outlineOpacity" in options){o.opacity=options.outlineOpacity;}if("outlineColor" in options){o.color=options.outlineColor;}this.canvas.setStroke(this.elm2,o);}};SZN.Vector.Polygon=SZN.ClassMaker.makeClass({"NAME":"Polygon","VERSION":"1.0","CLASS":"class","EXTEND":SZN.Vector.Primitive});SZN.Vector.Polygon.prototype.$constructor=function(canvas,points,options){this.canvas=canvas;this.options={"color":"#000","curvature":0,"opacity":1,"outlineColor":"#fff","outlineOpacity":1,"outlineWidth":0,"title":"","symmetricCP":true};for(var p in options){this.options[p]=options[p];}this._build(points);};SZN.Vector.Polygon.prototype._build=function(points){var stroke={"color":this.options.outlineColor,"width":this.options.outlineWidth,"opacity":this.options.outlineOpacity};var fill={"color":this.options.color,"opacity":this.options.opacity};if(this.elm){this.elm.parentNode.removeChild(this.elm);}if(this.options.curvature){this.elm=this.canvas.path();}else{this.elm=this.canvas.polygon();}this.canvas.setStroke(this.elm,stroke);this.canvas.setFill(this.elm,fill);this.canvas.setTitle(this.elm,this.options.title);this.canvas.getContent().appendChild(this.elm);this.setPoints(points);};SZN.Vector.Polygon.prototype.setPoints=function(points){this.points=points;if(this.options.curvature){if(this.options.symmetricCP){var control=this.canvas.computeControlPointsSymmetric(this.points,{"join":true,"curvature":this.options.curvature});}else{var control=this.canvas.computeControlPoints(this.points,{"join":true,"curvature":this.options.curvature});}var d="M "+this.points[0].join(" ");var len=this.points.length;for(var i=1;i<len+1;i++){var c=control[i-1];var x=c[0];var y=c[1];var point=(i>=len?this.points[0]:this.points[i]);d+="C "+x.join(" ")+", "+y.join(" ")+", "+point.join(" ")+" ";}d+="Z";this.canvas.setFormat(this.elm,d);}else{this.canvas.setPoints(this.elm,points,true);}};SZN.Vector.Polygon.prototype.setCurvature=function(c){if(!!this.options.curvature!=!!c){this.options.curvature=c;this._build(this.points);}else{this.options.curvature=c;this.setPoints(this.points);}};SZN.Vector.Circle=SZN.ClassMaker.makeClass({"NAME":"Circle","VERSION":"1.0","CLASS":"class","EXTEND":SZN.Vector.Primitive});SZN.Vector.Circle.prototype.$constructor=function(canvas,center,radius,options){this.canvas=canvas;this.center=new SZN.Vec2d(0,0);this.radius=0;this.options={"color":"","opacity":1,"outlineColor":"#000","outlineOpacity":1,"outlineWidth":1,"title":""};for(var p in options){this.options[p]=options[p];}var stroke={"color":this.options.outlineColor,"width":this.options.outlineWidth,"opacity":this.options.outlineOpacity};var fill={"color":this.options.color,"opacity":this.options.opacity};this.elm=this.canvas.circle(this.center,this.radius);this.setCenter(center);this.setRadius(radius);this.canvas.setStroke(this.elm,stroke);this.canvas.setFill(this.elm,fill);this.canvas.setTitle(this.elm,this.options.title);this.canvas.getContent().appendChild(this.elm);};SZN.Vector.Circle.prototype.setCenter=function(center){this.center=center;this.canvas.setCenterRadius(this.elm,this.center,this.radius);};SZN.Vector.Circle.prototype.setRadius=function(radius){this.radius=radius;this.canvas.setCenterRadius(this.elm,this.center,this.radius);};SZN.Vector.Path=SZN.ClassMaker.makeClass({"NAME":"Path","VERSION":"1.0","CLASS":"class","EXTEND":SZN.Vector.Primitive});SZN.Vector.Path.prototype.$constructor=function(canvas,format,options){this.canvas=canvas;this.elm2=false;this.options={"color":"none","opacity":1,"width":0,"outlineColor":"#fff","outlineOpacity":1,"outlineWidth":1,"title":""};for(var p in options){this.options[p]=options[p];}var stroke={"color":this.options.outlineColor,"width":this.options.outlineWidth,"opacity":this.options.outlineOpacity};var fill={"width":this.options.width,"color":this.options.color,"opacity":this.options.opacity};var two=this.options.width&&!format.match(/z/i);this.elm=this.canvas.path();this.setFormat(format);if(two){this.elm2=this.canvas.path();this.setFormat(format);if(stroke.width){stroke.width=fill.width+2*stroke.width;}this.canvas.setStroke(this.elm,fill);this.canvas.setStroke(this.elm2,stroke);this.canvas.setTitle(this.elm2,this.options.title);}else{this.canvas.setStroke(this.elm,stroke);this.canvas.setFill(this.elm,fill);}this.canvas.setTitle(this.elm,this.options.title);if(this.elm2){this.canvas.getContent().appendChild(this.elm2);}this.canvas.getContent().appendChild(this.elm);};SZN.Vector.Path.prototype.$destructor=function(){if(this.elm.parentNode&&this.elm.parentNode.nodeType==1){this.elm.parentNode.removeChild(this.elm);}if(this.elm2&&this.elm2.parentNode&&this.elm2.parentNode.nodeType==1){this.elm2.parentNode.removeChild(this.elm2);}};SZN.Vector.Path.prototype.setFormat=function(format){this.canvas.setFormat(this.elm,format);if(this.elm2){this.canvas.setFormat(this.elm2,format);}};SZN.SVG=SZN.ClassMaker.makeClass({"NAME":"SVG","VERSION":"2.0","CLASS":"class","IMPLEMENT":SZN.Vector.Canvas});SZN.SVG.prototype.ns="http://www.w3.org/2000/svg";SZN.SVG.prototype.xlinkns="http://www.w3.org/1999/xlink";SZN.SVG.prototype.$constructor=function(width,height){var svg=document.createElementNS(this.ns,"svg");svg.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",this.xlinkns);var g=document.createElementNS(this.ns,"g");svg.appendChild(g);this.ec=[];this.ec.push(SZN.Events.addListener(svg,"mousemove",SZN.Events.cancelDef));this.ec.push(SZN.Events.addListener(svg,"mousedown",SZN.Events.cancelDef));this.ec.push(SZN.Events.addListener(svg,"mouseup",SZN.Events.cancelDef));this.canvas=svg;this.g=g;this.resize(width,height);};SZN.SVG.prototype.$destructor=function(){for(var i=0;i<this.ec.length;i++){SZN.Events.removeListener(this.ec[i]);}this.ec=[];if(this.canvas.parentNode&&this.canvas.parentNode.nodeType==1){this.canvas.parentNode.removeChild(this.canvas);}this.canvas=null;};SZN.SVG.prototype.getContainer=function(){return this.canvas;};SZN.SVG.prototype.getContent=function(){return this.g;};SZN.SVG.prototype.clear=function(){SZN.Dom.clear(this.g);};SZN.SVG.prototype.resize=function(width,height){this.canvas.setAttribute("width",width);this.canvas.setAttribute("height",height);};SZN.SVG.prototype.setScale=function(scale){this.g.setAttribute("transform","scale("+scale+")");};SZN.SVG.prototype.polyline=function(){var el=document.createElementNS(this.ns,"polyline");el.setAttribute("fill","none");el.setAttribute("stroke","none");el.setAttribute("stroke-linejoin","round");el.setAttribute("stroke-linecap","round");return el;};SZN.SVG.prototype.circle=function(){var el=document.createElementNS(this.ns,"circle");el.setAttribute("fill","none");el.setAttribute("stroke","none");return el;};SZN.SVG.prototype.polygon=function(){var el=document.createElementNS(this.ns,"polygon");el.setAttribute("fill","none");el.setAttribute("stroke","none");el.setAttribute("stroke-linejoin","round");el.setAttribute("stroke-linecap","round");return el;};SZN.SVG.prototype.path=function(){var el=document.createElementNS(this.ns,"path");el.setAttribute("fill","none");el.setAttribute("stroke","none");el.setAttribute("stroke-linejoin","round");el.setAttribute("stroke-linecap","round");return el;};SZN.SVG.prototype.setStroke=function(element,options){if("color" in options){element.setAttribute("stroke",options.color);}if("opacity" in options){element.setAttribute("stroke-opacity",options.opacity);}if("width" in options){element.setAttribute("stroke-width",options.width);}};SZN.SVG.prototype.setFill=function(element,options){if("color" in options){element.setAttribute("fill",options.color);}if("opacity" in options){element.setAttribute("fill-opacity",options.opacity);}};SZN.SVG.prototype.setCenterRadius=function(element,center,radius){element.setAttribute("cx",center.getX());element.setAttribute("cy",center.getY());element.setAttribute("r",radius);};SZN.SVG.prototype.setPoints=function(element,points,closed){var arr=points.map(function(item){return item.join(" ");});element.setAttribute("points",arr.join(", "));};SZN.SVG.prototype.setFormat=function(element,format){element.setAttribute("d",format);};SZN.VML=SZN.ClassMaker.makeClass({"NAME":"VML","VERSION":"2.1","CLASS":"class","IMPLEMENT":SZN.Vector.Canvas});SZN.VML.prototype.$constructor=function(width,height){if(SZN.Browser.client=="ie"&&!document.namespaces["vml"]){if(document.documentMode&&document.documentMode>=8){document.namespaces.add("vml","urn:schemas-microsoft-com:vml","#default#VML");}else{document.namespaces.add("vml","urn:schemas-microsoft-com:vml");}var s=document.createStyleSheet();s.cssText="vml\\:*{behavior:url(#default#VML);";}var storage=SZN.cEl("div",false,false,{"display":"none"});var tmp=SZN.cEl("div",false,false,{"display":"none"});document.body.insertBefore(storage,document.body.firstChild);document.body.insertBefore(tmp,document.body.firstChild);this.constructor.storage=storage;this.constructor.tmp=tmp;var el=SZN.cEl("div",false,false,{"position":"absolute","overflow":"hidden"});this.canvas=el;this.resize(width,height);};SZN.VML.prototype.$destructor=function(){if(this.canvas.parentNode&&this.canvas.parentNode.nodeType==1){this.canvas.parentNode.removeChild(this.canvas);}this.canvas=null;};SZN.VML.prototype.setScale=function(scale){this.canvas.style.zoom=scale;};SZN.VML.prototype.clear=function(){SZN.Dom.clear(this.canvas);};SZN.VML.prototype.resize=function(width,height){this.canvas.style.width=width+"px";this.canvas.style.height=height+"px";};SZN.VML.prototype.getContainer=function(){return this.canvas;};SZN.VML.prototype.getContent=function(){return this.canvas;};SZN.VML.prototype.polyline=function(){var el=this._build("<vml:polyline><vml:fill></vml:fill><vml:stroke endcap='round' joinstyle='round'></vml:stroke></vml:polyline>");el.style.position="absolute";el.filled=false;return el;};SZN.VML.prototype.circle=function(){var el=this._build("<vml:oval><vml:fill></vml:fill><vml:stroke></vml:stroke></vml:oval>");el.style.position="absolute";el.filled=false;el.stroked=false;return el;};SZN.VML.prototype.polygon=function(){var el=this._build("<vml:polyline><vml:fill></vml:fill><vml:stroke endcap='round' joinstyle='round'></vml:stroke></vml:polyline>");el.filled=false;el.stroked=false;return el;};SZN.VML.prototype.path=function(){var el=this._build("<vml:shape><vml:fill></vml:fill><vml:stroke endcap='round' joinstyle='round'></vml:stroke></vml:shape>");el.filled=false;el.stroked=false;el.style.position="absolute";el.style.width="1px";el.style.height="1px";el.coordsize="1,1";return el;};SZN.VML.prototype.setStroke=function(element,options){if("color" in options){element.strokecolor=options.color;}if("width" in options&&options.width){element.stroked=true;element.strokeweight=options.width+"px";}if("opacity" in options){element.getElementsByTagName("stroke")[0].opacity=options.opacity;}};SZN.VML.prototype.setFill=function(element,options){if("color" in options){element.filled=true;element.fillcolor=options.color;}if("opacity" in options){element.getElementsByTagName("fill")[0].opacity=options.opacity;}};SZN.VML.prototype.setCenterRadius=function(element,center,radius){element.style.left=(center.getX()-radius)+"px";element.style.top=(center.getY()-radius)+"px";element.style.width=(radius*2)+"px";element.style.height=(radius*2)+"px";};SZN.VML.prototype.setPoints=function(element,points,closed){var arr=points.map(function(item){return item.join(" ");});if(closed){arr.push(points[0].join(" "));}element.points.value=arr.join(", ");};SZN.VML.prototype._analyzeFormat=function(format){var data=[];var ptr=0;var current="";var obj=false;while(ptr<format.length){if(!current){}var ch=format.charAt(ptr);if(ch.match(/[a-z]/i)){if(current){obj.parameters.push(parseFloat(current));}if(obj){data.push(obj);}obj={"command":ch,"parameters":[]};current="";}else{if(ch.match(/[ ,]/)){if(current){obj.parameters.push(parseFloat(current));}current="";}else{current+=ch;}}ptr++;}if(current){obj.parameters.push(parseFloat(current));}if(obj){data.push(obj);}return data;};SZN.VML.prototype._serializeFormat=function(data){var s="";for(var i=0;i<data.length;i++){var cmd=data[i];var numbers=cmd.parameters.map(function(item){return Math.round(item);});s+=cmd.command+" "+numbers.join(" ")+" ";}return s;};SZN.VML.prototype._generateArc=function(parameters,coords){function calcAngle(ux,uy,vx,vy){var ta=Math.atan2(uy,ux);var tb=Math.atan2(vy,vx);if(tb>=ta){return tb-ta;}return 2*Math.PI-(ta-tb);}function fixAngle(angle){var a=angle;a=360*a/(2*Math.PI);return a*(2<<15);}var r1=parameters[0];var r2=parameters[1];var x=parameters[5];var y=parameters[6];var cx=coords.getX();var cy=coords.getY();var largeArcFlag=parameters[3];var sweepFlag=parameters[4];var xp,yp,cxp,cyp;var angle=parameters[2];angle=angle*Math.PI/180;xp=Math.cos(angle)*(cx-x)/2+Math.sin(angle)*(cy-y)/2;yp=-Math.sin(angle)*(cx-x)/2+Math.cos(angle)*(cy-y)/2;var root=0;var numerator=r1*r1*r2*r2-r1*r1*yp*yp-r2*r2*xp*xp;if(numerator<0){var s=sqrt(1-numerator/(r1*r1*r2*r2));r1*=s;r2*=s;root=0;}else{root=Math.sqrt(numerator/(r1*r1*yp*yp+r2*r2*xp*xp));if(largeArcFlag==sweepFlag){root=-root;}}cxp=root*r1*yp/r2;cyp=-root*r2*xp/r1;var centerX=Math.cos(angle)*cxp-Math.sin(angle)*cyp+(cx+x)/2;var centerY=Math.sin(angle)*cxp+Math.cos(angle)*cyp+(cy+y)/2;var theta=calcAngle(1,0,(xp-cxp)/r1,(yp-cyp)/r2);var delta=calcAngle((xp-cxp)/r1,(yp-cyp)/r2,(-xp-cxp)/r1,(-yp-cyp)/r2);if(!sweepFlag&&delta>0){delta-=2*Math.PI;}else{if(sweepFlag&&delta<0){delta+=2*Math.PI;}}coords.setX(x);coords.setY(y);return [centerX,centerY,r1,r2,-fixAngle(theta),-fixAngle(delta)];};SZN.VML.prototype._fixFormat=function(format){var coords=new SZN.Vec2d(0,0);var data=this._analyzeFormat(format);for(var i=0;i<data.length;i++){var cmd=data[i];switch(cmd.command){case "M":case "L":coords.setX(cmd.parameters[0]);coords.setY(cmd.parameters[1]);break;case "C":coords.setX(cmd.parameters[4]);coords.setY(cmd.parameters[5]);break;case "z":case "Z":cmd.command="X";break;case "A":cmd.command="AE";cmd.parameters=this._generateArc(cmd.parameters,coords);break;}}data.push({"command":"E","parameters":[]});return this._serializeFormat(data);};SZN.VML.prototype._build=function(str){this.constructor.tmp.innerHTML=str;var elm=this.constructor.tmp.firstChild;this.constructor.storage.appendChild(elm);return elm;};SZN.VML.prototype.setFormat=function(element,format){var f=this._fixFormat(format);element.path=f;};SZN.LBChart=SZN.ClassMaker.makeClass({"NAME":"LBChart","VERSION":"1.1","CLASS":"class","DEPEND":[{"sClass":SZN.Vector,"ver":"1.0"}]});SZN.LBChart.prototype.$constructor=function(id,data,labels,options){this.options={"padding":30,"rows":{"count":6,"color":"#888"},"legend":{"draw":"right","width":25},"markerSize":8,"barWidth":10,"barMinSize":0,"lineWidth":1,"outlineWidth":1,"min":null,"max":null,"zero":false,"merge":false,"pointer":false,"zero":false,"axes":{"draw":true,"color":"#ffd625"},"colors":["#004c8c","#ff4911","#ffd625","#5ea221","#840026","#89cdff","#374705","#b3d200","#522476","#ff9b11","#c9000e","#008ad4"]};this._mergeOptions(this.options,options);if(this.options.legend.draw===true){this.options.legend.draw="right";}this.container=SZN.gEl(id);this.appended=[];this.widget={"width":this.container.offsetWidth,"height":this.container.offsetHeight};this.chart={"width":0,"height":0,"left":0,"top":0};this.legend={"width":0,"height":0,"left":0,"top":0};this.bar={"count":0,"length":0,"step":0};this.misc={"min":0,"max":0,"step":0};this.canvas=SZN.Vector.getCanvas(this.widget.width,this.widget.height);this.container.style.position="relative";this.container.appendChild(this.canvas.getContainer());this.labels=[];for(var i=0;i<labels.length;i++){var o=labels[i];if(typeof (o)=="string"){o={"label":o,"width":0,"color":""};}this.labels.push(o);}this.data=data;for(var i=0;i<this.data.length;i++){if(data[i].type=="bar"){this.bar.count++;this.bar.length=data[i].data.length;}}if(this.bar.count&&this.options.merge){this.bar.count=1;}if(!this.data.length){return;}this._draw();if(this.options.pointer){var c=this.canvas.getContainer();SZN.Events.addListener(c,"mousemove",this,"_mousemove");SZN.Events.addListener(c,"mouseout",this,"_mouseout");}};SZN.LBChart.prototype.$destructor=function(){this.canvas.$destructor();for(var i=0;i<this.appended.length;i++){var elm=this.appended[i];elm.parentNode.removeChild(elm);}};SZN.LBChart.prototype._mergeOptions=function(oldData,newData){for(var p in newData){if(!(p in oldData)){continue;}var newVal=newData[p];if(typeof (newVal)=="object"&&!(newVal instanceof Array)&&newVal!==null){arguments.callee(oldData[p],newData[p]);}else{oldData[p]=newVal;}}};SZN.LBChart.prototype._mousemove=function(e,elm){var s=SZN.Dom.getScrollPos();var pos=SZN.Dom.getBoxPosition(this.container);s.x+=e.clientX;s.y+=e.clientY;s.x-=pos.left;s.y-=pos.top;if(s.x>=this.chart.left&&s.x<=this.chart.left+this.chart.width&&s.y>=this.chart.top&&s.y<=this.chart.top+this.chart.height){var o=1;var a=new SZN.Vec2d(s.x,this.chart.top);var b=new SZN.Vec2d(s.x,this.chart.top+this.chart.height);this._vertical.setPoints([a,b]);}else{var o=0;}this._vertical.setOptions({"opacity":o});};SZN.LBChart.prototype._mouseout=function(e,elm){this._vertical.setOptions({"opacity":0});};SZN.LBChart.prototype.scale=function(value){return Math.round((value-this.misc.min)/(this.misc.max-this.misc.min)*this.chart.height);};SZN.LBChart.prototype._lesser=function(a,b){return a-b<1e-8;};SZN.LBChart.prototype._draw=function(){var o=this.options;if(o.legend.draw){this._prepareLegend();}this._computeExtremes();if(o.rows.count){this._computeStepY();}this._prepareLabels();if(o.rows.count){this._drawLabelsY();}if(this.bar.count){this._computeStepX();}if(this.labels.length){this._drawLabelsX();}if(o.axes.draw){this._drawAxes();}var idx=0;for(var i=0;i<this.data.length;i++){if(this.data[i].type=="bar"){this._drawBars(i,idx);if(!this.options.merge){idx++;}}}for(var i=0;i<this.data.length;i++){if(this.data[i].type!="bar"){this._drawLine(i);}}if(o.legend.draw){this._drawLegend();}if(o.pointer){var a=new SZN.Vec2d(0,0);var b=new SZN.Vec2d(0,0);this._vertical=new SZN.Vector.Line(this.canvas,[a,b],{"color":"#000","width":1,"opacity":0});this._vertical.elm.setAttribute("shape-rendering","crispEdges");}};SZN.LBChart.prototype._drawAxes=function(){var style={"width":1,"color":this.options.axes.color};var bottom=this.chart.top+this.chart.height;new SZN.Vector.Line(this.canvas,[new SZN.Vec2d(this.chart.left,bottom),new SZN.Vec2d(this.chart.left+this.chart.width,bottom)],style);new SZN.Vector.Line(this.canvas,[new SZN.Vec2d(this.chart.left,bottom),new SZN.Vec2d(this.chart.left,this.chart.top)],style);};SZN.LBChart.prototype._drawBars=function(indexTotal,index){var o=this.options;var obj=this.data[indexTotal];var color=o.colors[indexTotal%o.colors.length];var points=[];var x1=this.chart.left+index*o.barWidth+this.bar.step/2;for(var i=0;i<obj.data.length;i++){var value=obj.data[i];var x2=x1+o.barWidth;var ref=0;if(this.misc.min>=0){ref=this.misc.min;}else{if(this.misc.max<=0){ref=this.misc.max;}}var y1=this.chart.top+this.chart.height-this.scale(ref);var y2=this.chart.top+this.chart.height-this.scale(value);if(this.options.barMinSize&&Math.abs(y2-y1)<this.options.barMinSize){y2=y1-this.options.barMinSize;}var style={"color":color,"outlineWidth":o.outlineWidth,"outlineColor":"black","title":value};if(style.outlineWidth==0){style.outlineOpacity=0;}new SZN.Vector.Polygon(this.canvas,[new SZN.Vec2d(x1,y1),new SZN.Vec2d(x2,y1),new SZN.Vec2d(x2,y2),new SZN.Vec2d(x1,y2)],style);x1+=this.bar.step+this.bar.count*o.barWidth;}};SZN.LBChart.prototype._drawLine=function(index){var o=this.options;var obj=this.data[index];var dataLength=obj.data.length;var interval=this.chart.width/(dataLength+(this.bar.count?0:-1));var color=o.colors[index%o.colors.length];var points=[];var x=this.chart.left;if(this.bar.count){x+=this.bar.step/2+this.bar.count*o.barWidth/2;}for(var i=0;i<dataLength;i++){var value=obj.data[i];var y=this.chart.top+this.chart.height-this.scale(value);points.push(new SZN.Vec2d(x,y));x+=interval;}new SZN.Vector.Line(this.canvas,points,{"color":color,"width":o.lineWidth});var m=obj.marker||SZN.Marker;for(var i=0;i<points.length;i++){new m(this.canvas,points[i],o.markerSize,color,obj.data[i]);}};SZN.LBChart.prototype._drawLabelsX=function(){var labels=[];var total=0;var x=this.chart.left;if(this.bar.count){x+=this.bar.step/2+this.bar.count*this.options.barWidth/2;}var y=this.chart.top+this.chart.height+5;var interval=this.chart.width/(this.labels.length+(this.bar.count?0:-1));for(var i=0;i<this.labels.length;i++){if(this.labels[i].width){var a=new SZN.Vec2d(Math.round(x),this.chart.top);var b=new SZN.Vec2d(Math.round(x),this.chart.top+this.chart.height);var l=new SZN.Vector.Line(this.canvas,[a,b],{"color":this.labels[i].color,"width":this.labels[i].width});l.elm.setAttribute("shape-rendering","crispEdges");}var label=SZN.cEl("div",false,false,{"position":"absolute","top":y+"px","left":Math.round(x)+"px"});var l2=SZN.cEl("div",false,"label-x",{"position":"relative","left":"-50%"});label.appendChild(l2);l2.innerHTML=this.labels[i].label;this.container.appendChild(label);this.appended.push(label);x+=interval;total+=5+label.offsetWidth;labels.push(label);}if(total>this.chart.width){var frac=Math.ceil(total/this.chart.width);for(var i=0;i<labels.length;i++){if(i%frac){labels[i].style.display="none";}}}};SZN.LBChart.prototype._drawLabelsY=function(){var idx=0;var style={"color":this.options.rows.color,"width":1};for(var i=this.misc.min;this._lesser(i,this.misc.max);i+=this.misc.step){var top=this.chart.top+this.chart.height-this.scale(i);new SZN.Vector.Line(this.canvas,[new SZN.Vec2d(this.chart.left,top),new SZN.Vec2d(this.chart.left+this.chart.width,top)],style);var text=this._labels[idx];var w=text.offsetWidth;var h=text.offsetHeight;top-=Math.round(h/2);text.style.top=top+"px";text.style.left=(this.chart.left-10-w)+"px";idx++;}};SZN.LBChart.prototype._drawLegend=function(){var labels=this._legendLabels;var size=this.options.legend.width;for(var i=0;i<this.data.length;i++){var dataset=this.data[i];var color=this.options.colors[i%this.options.colors.length];var x1=this.legend.left;var x2=x1+this.options.legend.width;if(dataset.type=="bar"){var y1=this.legend.top+i*(size+10);var y2=y1+size;new SZN.Vector.Polygon(this.canvas,[new SZN.Vec2d(x1,y1),new SZN.Vec2d(x2,y1),new SZN.Vec2d(x2,y2),new SZN.Vec2d(x1,y2)],{"color":color,"outlineColor":"#000","outlineWidth":this.options.outlineWidth});}else{var y=this.legend.top+i*(size+10)+Math.round(size/2);new SZN.Vector.Line(this.canvas,[new SZN.Vec2d(x1,y),new SZN.Vec2d(x2,y)],{"color":color,"width":1+this.options.lineWidth});if(dataset.marker){new dataset.marker(this.canvas,new SZN.Vec2d(x1+size/2,y),this.options.markerSize,color);}}var l=this.legend.left+size+10;var t=this.legend.top+i*(size+10);var text=labels[i];t+=Math.round((size-text.offsetHeight)/2);text.style.left=l+"px";text.style.top=t+"px";}};SZN.LBChart.prototype._prepareLabels=function(){if(this.options.rows.count){var m=0;var labels=[];for(var i=this.misc.min;this._lesser(i,this.misc.max);i+=this.misc.step){var text=SZN.cEl("div",false,"label-y",{"position":"absolute"});text.innerHTML=Math.round(i*1000)/1000;this.container.appendChild(text);this.appended.push(text);var w=text.offsetWidth;m=Math.max(m,w);labels.push(text);}this.chart.left=m+10;this._labels=labels;}switch(this.options.legend.draw){case "left":this.chart.left+=this.legend.left+this.legend.width+2*this.options.padding;this.chart.top=this.options.padding;this.chart.width=this.widget.width-this.chart.left-this.options.padding;this.chart.height=this.widget.height-this.chart.top-this.options.padding;break;case "right":this.chart.left+=this.options.padding;this.chart.top=this.options.padding;this.chart.width=this.legend.left-2*this.options.padding-this.chart.left;this.chart.height=this.widget.height-this.chart.top-this.options.padding;break;case "top":this.chart.left+=this.options.padding;this.chart.top=this.legend.top+this.legend.height+2*this.options.padding;this.chart.width=this.widget.width-this.chart.left-this.options.padding;this.chart.height=this.widget.height-this.chart.top-this.options.padding;break;case "bottom":this.chart.left+=this.options.padding;this.chart.top=this.options.padding;this.chart.width=this.widget.width-this.chart.left-this.options.padding;this.chart.height=this.legend.top-2*this.options.padding;break;default:this.chart.left+=this.options.padding;this.chart.top=this.options.padding;this.chart.width=this.widget.width-this.chart.left-this.options.padding;this.chart.height=this.widget.height-this.chart.top-this.options.padding;break;}};SZN.LBChart.prototype._prepareLegend=function(){var labels=[];var max=0;for(var i=0;i<this.data.length;i++){var text=SZN.cEl("div",false,"legend",{"position":"absolute"});text.innerHTML=this.data[i].label;this.container.appendChild(text);this.appended.push(text);var w=text.offsetWidth;max=Math.max(max,w);labels.push(text);}this._legendLabels=labels;this.legend.width=max+10+this.options.legend.width;this.legend.height=this.data.length*this.options.legend.width+(this.data.length-1)*10;switch(this.options.legend.draw){case "left":this.legend.left=this.options.padding;this.legend.top=Math.round((this.widget.height-this.legend.height)/2);break;case "right":this.legend.top=Math.round((this.widget.height-this.legend.height)/2);this.legend.left=this.widget.width-this.legend.width-this.options.padding;break;case "top":this.legend.top=this.options.padding;this.legend.left=Math.round((this.widget.width-this.legend.width)/2);break;case "bottom":this.legend.top=this.widget.height-this.options.padding-this.legend.height;this.legend.left=Math.round((this.widget.width-this.legend.width)/2);break;}};SZN.LBChart.prototype._computeStepY=function(){var diff=this.misc.max-this.misc.min;var step=diff/(this.options.rows.count);var base=Math.floor(Math.log(step)/Math.log(10));var divisor=Math.pow(10,base);var optimal=Math.round(step/divisor)*divisor;if(this.options.min!==null&&this.options.max!==null){this.misc.step=step;}else{this.misc.step=optimal;var rounded=Math.ceil(diff/optimal)*optimal;if(this.options.min!==null){this.misc.max=this.misc.min+rounded;}else{if(this.options.max!==null){this.misc.min=this.misc.max-rounded;}else{this.misc.min=Math.floor(this.misc.min/optimal)*optimal;this.misc.max=Math.ceil(this.misc.max/optimal)*optimal;}}}};SZN.LBChart.prototype._computeStepX=function(){this.bar.step=(this.chart.width-this.bar.count*this.bar.length*this.options.barWidth)/this.bar.length;};SZN.LBChart.prototype._computeExtremes=function(){var all=[];for(var i=0;i<this.data.length;i++){var dataset=this.data[i];for(var j=0;j<dataset.data.length;j++){all.push(dataset.data[j]);}}all.sort(function(a,b){return a-b;});var min=all.shift();var max=all.pop();if(this.options.zero){if(min>0){min=0;}if(max<0){max=0;}}if(this.options.min!==null){min=this.options.min;}if(this.options.max!==null){max=this.options.max;}this.misc.min=min;this.misc.max=max;};SZN.Marker=SZN.ClassMaker.makeClass({"NAME":"Marker","VERSION":"1.0","CLASS":"class"});SZN.Marker.prototype.$constructor=function(canvas,point,size,color,title){this.canvas=canvas;this.point=point;this.size=size;this.color=color;this.title=title;this._draw();this._dummy();};SZN.Marker.prototype._draw=function(){};SZN.Marker.prototype._dummy=function(){new SZN.Vector.Circle(this.canvas,this.point,this.size*1.5,{"opacity":0,"outlineWidth":0,"outlineOpacity":0,"title":this.title});};SZN.Marker.Circle=SZN.ClassMaker.makeClass({"NAME":"Circle","VERSION":"1.0","CLASS":"class","EXTEND":SZN.Marker});SZN.Marker.Circle.prototype._draw=function(){new SZN.Vector.Circle(this.canvas,this.point,this.size/2,{"color":this.color,"outlineWidth":0,"outlineOpacity":0,"title":this.title});};SZN.Marker.Square=SZN.ClassMaker.makeClass({"NAME":"Square","VERSION":"1.0","CLASS":"class","EXTEND":SZN.Marker});SZN.Marker.Square.prototype._draw=function(){var x1=this.point.getX()-this.size/2;var y1=this.point.getY()-this.size/2;var x2=x1+this.size;var y2=y1+this.size;new SZN.Vector.Polygon(this.canvas,[new SZN.Vec2d(x1,y1),new SZN.Vec2d(x2,y1),new SZN.Vec2d(x2,y2),new SZN.Vec2d(x1,y2)],{"color":this.color,"outlineWidth":0,"outlineOpacity":0,"title":this.title});};SZN.Marker.Cross=SZN.ClassMaker.makeClass({"NAME":"Cross","VERSION":"1.0","CLASS":"class","EXTEND":SZN.Marker});SZN.Marker.Cross.prototype._draw=function(){var x1=this.point.getX()-this.size/2;var y1=this.point.getY()-this.size/2;var x2=x1+this.size;var y2=y1+this.size;new SZN.Vector.Line(this.canvas,[new SZN.Vec2d(x1,y1),new SZN.Vec2d(x2,y2)],{"color":this.color,"outlineWidth":0,"width":2,"title":this.title});new SZN.Vector.Line(this.canvas,[new SZN.Vec2d(x2,y1),new SZN.Vec2d(x1,y2)],{"color":this.color,"outlineWidth":0,"width":2,"title":this.title});};SZN.Marker.Plus=SZN.ClassMaker.makeClass({"NAME":"Plus","VERSION":"1.0","CLASS":"class","EXTEND":SZN.Marker});SZN.Marker.Plus.prototype._draw=function(){var x1=this.point.getX()-this.size/2;var y1=this.point.getY()-this.size/2;var x2=x1+this.size;var y2=y1+this.size;new SZN.Vector.Line(this.canvas,[new SZN.Vec2d(x1,this.point.getY()),new SZN.Vec2d(x2,this.point.getY())],{"color":this.color,"width":2,"outlineWidth":0,"outlineOpacity":0,"title":this.title});new SZN.Vector.Line(this.canvas,[new SZN.Vec2d(this.point.getX(),y1),new SZN.Vec2d(this.point.getX(),y2)],{"color":this.color,"width":2,"outlineWidth":0,"outlineOpacity":0,"title":this.title});};SZN.Marker.Triangle=SZN.ClassMaker.makeClass({"NAME":"Triangle","VERSION":"1.0","CLASS":"class","EXTEND":SZN.Marker});SZN.Marker.Triangle.prototype._draw=function(){var coef=Math.sqrt(3);var x=this.point.getX();var y=this.point.getY();new SZN.Vector.Polygon(this.canvas,[new SZN.Vec2d(x-this.size/2,y+this.size*coef/6),new SZN.Vec2d(x+this.size/2,y+this.size*coef/6),new SZN.Vec2d(x,y-this.size*coef/3)],{"color":this.color,"outlineWidth":0,"outlineOpacity":0,"title":this.title});};SZN.PieChart=SZN.ClassMaker.makeClass({"NAME":"PieChart","VERSION":"1.1","CLASS":"class","DEPEND":[{"sClass":SZN.Vector,"ver":"1.0"}]});SZN.PieChart.prototype.$constructor=function(id,data,options){this.options={"padding":15,"skew":0.7,"depth":10,"legendWidth":15,"labelDistance":20,"legend":"right","prefix":"","suffix":"","outlineColor":{"graph":"#000","legend":"#000"},"colors":["rgb(0,76,140)","rgb(255,73,17)","rgb(255,214,37)","rgb(94,162,33)","rgb(132,0,38)","rgb(137,205,255)","rgb(55,71,5)","rgb(179,210,0)","rgb(82,36,118)","rgb(255,155,17)","rgb(201,0,14)","rgb(0,138,212)"]};for(var p in options){this.options[p]=options[p];}if(this.options.legend===true){this.options.legend="right";}this.container=SZN.gEl(id);this.appended=[];this.lastLabel=null;this.widget={"width":this.container.offsetWidth,"height":this.container.offsetHeight};this.legend={"left":0,"top":0,"width":0,"height":0};this.chart={"radius":0,"cx":0,"cy":0};this.data=data;this.canvas=SZN.Vector.getCanvas(this.widget.width,this.widget.height);this.container.style.position="relative";this.container.appendChild(this.canvas.getContainer());this._draw();};SZN.PieChart.prototype.$destructor=function(){this.canvas.$destructor();for(var i=0;i<this.appended.length;i++){var elm=this.appended[i];elm.parentNode.removeChild(elm);}};SZN.PieChart.prototype._draw=function(){var o=this.options;if(o.legend){this._prepareLegend();}this._computePosition();var total=0;for(var i=0;i<this.data.length;i++){total+=parseFloat(this.data[i].data);}if(this.options.depth){var angle=2*Math.PI-Math.PI/2;for(var i=0;i<this.data.length;i++){var v=this.data[i].data;if(!v){continue;}var color=o.colors[i%o.colors.length];angle=this._drawPie(v,total,angle,color,1);}}var angle=2*Math.PI-Math.PI/2;for(var i=0;i<this.data.length;i++){var v=this.data[i].data;if(!v){continue;}var color=o.colors[i%o.colors.length];angle=this._drawPie(v,total,angle,color,0);}if(this.options.legend){this._drawLegend();}};SZN.PieChart.prototype._drawPie=function(value,total,start_angle,color,middle){var ycoef=this.options.skew;var r=this.chart.radius;var cx=this.chart.cx;var cy=this.chart.cy;var angle=parseFloat(value)/total*2*Math.PI;var end_angle=start_angle+angle;var large=(angle>=Math.PI?1:0);if(middle){cy+=Math.round(this.options.depth/2);var deg1=(start_angle/Math.PI*180)%360;var deg2=(end_angle/Math.PI*180)%360;if(deg2<=deg1){deg2+=360;}if(deg1>180&&deg2<360){return end_angle;}if(deg2>360){deg1=360;large=0;}if(deg1<540&&deg2>540){deg2=540;large=0;}if(deg1<180&&deg2>180){deg2=180;large=0;}var rad1=deg1/180*Math.PI;var rad2=deg2/180*Math.PI;var x1=r*Math.cos(rad1)+cx;var y1=ycoef*r*Math.sin(rad1)+cy;var x2=r*Math.cos(rad2)+cx;var y2=ycoef*r*Math.sin(rad2)+cy;var d=this.options.depth;var path="M "+x1+" "+y1+" L "+x1+" "+(y1-d)+" ";path+="A "+r*1+" "+(r*ycoef)+" 0 "+large+" 1 "+x2+" "+(y2-d)+" ";path+="L "+x2+" "+y2+" ";path+="A "+r+" "+(r*ycoef)+" 0 "+large+" 0 "+x1+" "+y1+" ";var r=color.match(/([0-9]+) *, *([0-9]+) *, *([0-9]+)/);var c=[parseInt(r[1],10),parseInt(r[2],10),parseInt(r[3],10)];var newr=c[0]-50;if(newr<0){newr=0;}var newg=c[1]-50;if(newg<0){newg=0;}var newb=c[2]-50;if(newb<0){newb=0;}new SZN.Vector.Path(this.canvas,path,{"outlineColor":this.options.outlineColor.graph,"color":"rgb("+newr+","+newg+","+newb+")"});}else{cy-=Math.round(this.options.depth/2);var x1=r*Math.cos(start_angle)+cx;var y1=ycoef*r*Math.sin(start_angle)+cy;var x2=r*Math.cos(end_angle)+cx;var y2=ycoef*r*Math.sin(end_angle)+cy;if(value==total){var path="M "+(cx-r)+" "+cy+" ";path+="A "+r+" "+r*(ycoef)+" 0 "+large+" 1 "+(cx+r)+" "+cy+" ";path+="A "+r+" "+r*(ycoef)+" 0 "+large+" 1 "+(cx-r)+" "+cy+" ";}else{var path="M "+cx+" "+cy+" L "+x1+" "+y1+" ";path+="A "+r+" "+r*(ycoef)+" 0 "+large+" 1 "+x2+" "+y2+" ";path+="L "+cx+" "+cy+" z";}new SZN.Vector.Path(this.canvas,path,{"outlineColor":this.options.outlineColor.graph,"color":color});var mid_angle=(start_angle+end_angle)/2;this._drawLabel(mid_angle,value,cy);}return end_angle;};SZN.PieChart.prototype._drawLabel=function(angle,value,cy){var cx=this.chart.cx;var r=this.chart.radius;var x=(r+this.options.labelDistance)*Math.cos(angle)+cx;var y=(r+this.options.labelDistance)*this.options.skew*Math.sin(angle)+cy;y+=(angle%(2*Math.PI)<Math.PI?this.options.depth:0);var text1=SZN.cEl("div",false,false,{"position":"absolute","left":Math.round(x)+"px","top":Math.round(y)+"px"});var text2=SZN.cEl("div",false,"label",{"position":"relative","left":"-50%"});text2.innerHTML=this.options.prefix+value+this.options.suffix;SZN.Dom.append([text1,text2],[this.container,text1]);this.appended.push(text1);var oh=text2.offsetHeight;y-=oh/2;text1.style.top=Math.round(y)+"px";if(this.lastLabel){this._testShift(this.lastLabel,text2,text1,angle);if(this.lastLabel!=this.firstLabel){this._testShift(this.firstLabel,text2,text1,angle);}}else{this.firstLabel=text2;}this.lastLabel=text2;};SZN.PieChart.prototype._testShift=function(oldLabel,newLabel,holder,angle){var pos1=SZN.Dom.getBoxPosition(oldLabel);var pos2=SZN.Dom.getBoxPosition(newLabel);var dims1=[oldLabel.offsetWidth,oldLabel.offsetHeight];var dims2=[newLabel.offsetWidth,newLabel.offsetHeight];var coef=0.8;dims1[1]*=coef;dims2[1]*=coef;var ok1=(pos1.left+dims1[0]<=pos2.left)||(pos2.left+dims2[0]<=pos1.left);var ok2=(pos1.top+dims1[1]<=pos2.top)||(pos2.top+dims2[1]<=pos1.top);if(!ok1&&!ok2){var amount=Math.sqrt(dims2[0]*dims2[1])/coef;var x=holder.offsetLeft+Math.cos(angle)*amount;var y=holder.offsetTop+Math.sin(angle)*amount*this.options.skew;holder.style.left=Math.round(x)+"px";holder.style.top=Math.round(y)+"px";}};SZN.PieChart.prototype._prepareLegend=function(){var labels=[];var max=0;for(var i=0;i<this.data.length;i++){var text=SZN.cEl("div",false,"legend",{"position":"absolute"});text.innerHTML=this.data[i].label;this.container.appendChild(text);this.appended.push(text);var w=text.offsetWidth;max=Math.max(max,w);labels.push(text);}this._legendLabels=labels;this.legend.width=max+10+this.options.legendWidth;this.legend.height=this.data.length*this.options.legendWidth+(this.data.length-1)*10;switch(this.options.legend){case "left":this.legend.left=this.options.padding;this.legend.top=Math.round((this.widget.height-this.legend.height)/2);break;case "right":this.legend.left=this.widget.width-this.options.padding-this.legend.width;this.legend.top=Math.round((this.widget.height-this.legend.height)/2);break;case "top":this.legend.left=Math.round((this.widget.width-this.legend.width)/2);this.legend.top=this.options.padding;break;case "bottom":this.legend.left=Math.round((this.widget.width-this.legend.width)/2);this.legend.top=this.widget.height-this.options.padding-this.legend.height;break;}};SZN.PieChart.prototype._drawLegend=function(labels){var labels=this._legendLabels;var size=this.options.legendWidth;for(var i=0;i<this.data.length;i++){var color=this.options.colors[i%this.options.colors.length];var x1=this.legend.left;var x2=x1+size;var y1=this.legend.top+i*(size+10);var y2=y1+size;new SZN.Vector.Polygon(this.canvas,[new SZN.Vec2d(x1,y1),new SZN.Vec2d(x2,y1),new SZN.Vec2d(x2,y2),new SZN.Vec2d(x1,y2)],{"color":color,"outlineColor":this.options.outlineColor.legend,"outlineWidth":1});var l=this.legend.left+10+size;var t=this.legend.top+i*(size+10);var text=labels[i];t+=Math.round((size-text.offsetHeight)/2);text.style.left=l+"px";text.style.top=t+"px";}};SZN.PieChart.prototype._computePosition=function(){var o=this.options;var w=0;var h=0;var left=0;var top=0;switch(this.options.legend){case "left":w=this.widget.width-3*o.padding-this.legend.width;h=this.widget.height-2*o.padding;left=this.widget.width-o.padding-w;top=o.padding;break;case "right":w=this.widget.width-3*o.padding-this.legend.width;h=this.widget.height-2*o.padding;left=o.padding;top=o.padding;break;case "top":w=this.widget.width-2*o.padding;h=this.widget.height-3*o.padding-this.legend.height;left=o.padding;top=this.widget.height-o.padding-h;break;case "bottom":left=o.padding;top=o.padding;w=this.widget.width-2*o.padding;h=this.widget.height-3*o.padding-this.legend.height;break;default:w=this.widget.width-2*o.padding;h=this.widget.height-2*o.padding;left=o.padding;top=o.padding;break;}this.chart.cx=left+Math.round(w/2);this.chart.cy=top+Math.round(h/2);h/=o.skew;h-=o.depth;this.chart.radius=Math.round(Math.min(w,h)/2);};}
