/*
 
 Panorado JS - Panoramic Viewer for HTML
 (c) 2012 by Karl Maloszek - Simple Software
 http://www.panorado.com/en/PanoradoJs.php
 Use is free on private (non-commercail) websites.
 This is not public domain software!
 Comments are welcome.

*/
function PanoradoJS(Ab){var ab,Bb,Fa,ha,B,Ga,Cb,ia,ja,qa,ra,H,sa,W,ka,ta,Ha,la,bb,X,cb,db,Db;function eb(){ma();alert("Panorado JS v."+ab+"\n"+Bb)}function Eb(a){f&&b&&b.clearRect(0,0,f.width,f.height);f=b=null;if(a&&a.getContext)f=a,b=f.getContext("2d"),f.setAttribute("tabindex",0),f.addEventListener("keydown",ac,!0),Fb?(f.addEventListener("touchstart",ua,!0),document.addEventListener("touchmove",ua,!0),document.addEventListener("touchend",ua,!0),document.addEventListener("touchcancel",ua,!0),document.addEventListener("touchleave",
ua,!0)):(f.addEventListener("dblclick",bc,!0),f.addEventListener("mousedown",cc,!0),document.addEventListener("mouseup",dc,!0),document.addEventListener("mousemove",ec,!0),f.addEventListener("mouseout",fc,!0),f.addEventListener("mousewheel",Gb,!0),f.addEventListener("DOMMouseScroll",Gb,!0)),f.ondblclick=gc,window.onresize=Hb,Y(Ia),Y(Ja),Y(Ka),Y(La),E(),Ib(),q(),E(),L.create()}function fb(){gb();q()}function gb(){if(c)x=c.pan,i=c.tilt,k=c.scale,Q=M=va=V=r=p=0,Z=!1,A=I=0,J=N()}function ma(){ca&&(clearTimeout(ca),
ca=0);Q=V=r=p=0;A=N()}function v(){return O==Fa}function N(){return(new Date).getTime()}function Jb(a){$&&(0>a?a=0:a>=$.length-1&&(a=$.length-1),a!=da&&(Kb($[a]),da=a))}function hb(a){Jb(da+a)}function Kb(a){gb();da=-1;c=null;O=ha;if(a&&a.src){c=hc(a.src);c.title=a.title?a.title:"";c.projection="spherical"==a.projection?B:Ga;D=c.projection;c.horizon=a.horizon?na(a.horizon,-45,45):0;c.pan=a.pan?a.pan:0;c.tilt=a.tilt?a.tilt:0;c.scale=a.scale;c.horzFov=a.horzFov&&0<a.horzFov&&360>a.horzFov?a.horzFov:
360;c.vertFov=0;c.is360=360==c.horzFov;c.panSpeed=a.panSpeed?Ma(a.panSpeed):Cb;c.tiltSpeed=a.tiltSpeed?Ma(a.tiltSpeed):0;oa=a.compassNorth?!0:!1;c.compassNorth=a.compassNorth?a.compassNorth:0;c.compassNorth+=3600;c.compassNorth%=360;T=[];ib=null;if(a=a.hotspots)for(var b=0;b<a.length;b++)T.push(new ic(a[b]));c.hotspots=T;L.create()}q()}function hc(a){var b=new Image;O=ia;b.onload=function(){c.vertFov=c.horzFov*c.height/c.width;if(180<c.vertFov)c.horzFov*=180/c.vertFov,c.vertFov=180;c.is360=360==c.horzFov;
O=Fa;k=c.scale=Na(c.scale);x=c.pan=jb(c.pan);i=c.tilt=kb(c.tilt);gb();E();Lb=!1;Oa&&Oa();q()};b.onerror=function(){O=ja;q()};b.onabort=function(){O=ja;q()};b.src=a;return b}function wa(a,b){Mb(x+a,i+b,null)}function Mb(a,b,c){J=0;ma();Z=!1;v()&&("number"==typeof c&&(k=Na(c)),x=a,i=b,q())}function ea(a){Z=!1;R(k*a)}function R(a){J=0;ma();v()&&(0!=aa?(va=k,M=Na(a),M!=k&&(Q=N(),q())):(a=Na(a),k!=a&&(lb(k,a),k=a,q())))}function F(a,b){J=0;v()&&(null!==a&&(p=Ma(a)),null!==b&&(r=Ma(b)),A=N(),q())}function Ma(a){return a<
-qa?-qa:a>qa?qa:a}function Na(a){Pa=!1;if("number"!=typeof a||0==a){Pa=!0;if(v()){var a=c.width,b=c.height,e=f.width,d=f.height;if(D==B){var j;j=Math.min(c.horzFov,ra)/2;e*=j*H/fa(j);j=Math.min(c.vertFov,sa)/2;d*=j*H/fa(j);a=Math.min(a*ra/c.horzFov,a);b=Math.min(b*sa/c.vertFov,b)}a=Math.min(e/a,d/b);a=Math.max(a,mb);a=Math.min(a,nb)}else a=0;return a}if(a<mb)return mb;if(a>nb)return nb;b=[0.125,0.125*Math.SQRT2,0.25,0.25*Math.SQRT2,0.5,0.5*Math.SQRT2,1,1*Math.SQRT2,2,2*Math.SQRT2,4,4*Math.SQRT2,8];
for(e=0;e<b.length;e++)if(a>0.999*b[e]&&a<1.001*b[e]){a=b[e];break}return a}function jb(a){if(c.is360)a=(a+36E3)%360;else{var b=Nb()/2,e=c.horzFov-b;b>e?a=c.horzFov/2:a<b?a=b:a>e&&(a=e)}return a}function kb(a){var b=Ob(),e=(c.vertFov-b)/2,d=-e,e=e-c.horizon,d=d-c.horizon;D==B&&c.is360&&(90<=c.vertFov/2-c.horizon&&(e+=b/2),90<=c.vertFov/2+c.horizon&&(d-=b/2));e<d?a=(d+e)/2:a<d?a=d:a>e&&(a=e);return a}function lb(a,b){if(Z&&0<=s){var c=ob(a)-ob(b);x+=c;c=pb(a)-pb(b);i+=c}c=k;k=b;x=jb(x);i=kb(i);k=c;
0==Q&&(Z=!1)}function ob(a){a||(a=k);var b=s-f.width/2,e=-(y-f.height/2),d=0;D==B?(a=c.width/c.horzFov*a*W*ba(i)-e*Math.sin(i*H),d=x+xa(b,a)):d=x+b/a*c.horzFov/c.width;c.is360&&(0>d?d+=360:360<d&&(d-=360));return d}function pb(a){a||(a=k);var b=s-f.width/2,e=-(y-f.height/2),d=0;D==B?(d=c.width/c.horzFov*a*W,a=d*ba(i)-e*Math.sin(i*H),e=d*Math.sin(i*H)+e*ba(i),d=xa(e,Math.sqrt(b*b+a*a))):d=i+e/a*c.vertFov/c.height;return d}function ya(a,b){var e,d;if(D==B){e=c.width/c.horzFov*k*W;d=e*ba(i)-b*Math.sin(i*
H);var f=e*Math.sin(i*H)+b*ba(i);e=xa(a,d);d=xa(f,Math.sqrt(a*a+d*d))}else e=a/k*c.horzFov/c.width,d=i+b/k*c.vertFov/c.height;c.is360&&(0>e?e+=360:360<e&&(e-=360));return new Pb(e,d)}function Qb(a,b){var e,d;e=a-x;c.is360&&(-180>=e?e+=360:180<e&&(e-=360));if(D==B){var j=c.width/c.horzFov*k*W,g=xa(fa(b),ba(e));d=g-i;if(-90>=d||90<d)return null;var z=j/ba(d),g=ba(g)*z;e=fa(e)*g;d=fa(d)*j}else d=b-i,e=e/c.horzFov*c.width*k,d=d/c.vertFov*c.height*k;return new Pb(f.width/2+e,f.height/2-d)}function Nb(){var a=
f.width/c.width*c.horzFov/k;D==B?(a=2*Math.atan(a*H/2)*W,a=Math.min(a,ra)):a=Math.min(a,c.horzFov);return a}function Ob(){if(!f)return 0;var a=f.height/c.height*c.vertFov/k;D==B?(a=2*Math.atan(a*H/2)*W,a=Math.min(a,sa)):a=Math.min(a,c.vertFov);return a}function q(){var a=Rb();Sb();E();a&&pa&&pa();Tb()}function Ub(){Rb()&&(Sb(),E(),pa&&pa());Tb()}function Tb(){ca&&(clearTimeout(ca),ca=0);(p||r||J||V||Q)&&(ca=setTimeout(function(){window._VIEWERS[Vb].checkPaint()},1))}function Rb(){if(!v())return!1;
var a=A,b=x,c=i,d=k;A=N();var f;f=0|jc();f|=kc();0<=za?50<A-qb&&(p=r=0):(a=(A-a)/1E3,x+=p*a,i+=r*a);var g,z,n,h,a=k;0==Q||M==va||(g=1+(A-Q)/(500*(2<<aa)),z=Math.log(va),n=Math.log(M),h=Math.log(k),z=1+Math.min(2*Math.abs(z-h),Math.abs(n-h)+(n-h)*(n-h))/Math.abs(z-n)/8,g*=z,va<M?(a*=g,a>M&&(a=M)):(a/=g,a<M&&(a=M)),a==M?(k=a,Q=0):Q=A);lb(k,a);k=a;f|=b!=x;f|=c!=i;f|=d!=k;return f|=rb()}function jc(){var a=1E3*Qa;if(0==J)return I=1,!1;if(A<J+a){var b=I;I=(A-J)/a;return I!=b}if(0==c.panSpeed&&0==c.tiltSpeed)return I=
1,J=0,!0;if(c.panSpeed!=p||c.tiltSpeed!=r){I=1;a=(A-J-a-2E3)/4E3;if(0>a)return!0;p=a*c.panSpeed;r=a*c.tiltSpeed;p=0<c.panSpeed?Math.min(c.panSpeed,p):Math.max(c.panSpeed,p);0<c.tiltSpeed?r=Math.min(c.tiltSpeed,r):_tiltspeed=Math.max(c.tiltSpeed,r);return!0}I=1;J=0;return!1}function Wb(){if(!J)return 1;var a=(A-J)/(1E3*Qa);return 0.9<a?1:a}function kc(){if(0==V||V==A)return!1;if(Math.sqrt(p*p+r*r)>0.02/k*c.horzFov/90){var a=1-(A-V)/(25*(2<<Ra));if(0<a)return p*=a,r*=a,V=A,!0}p=r=V=0;return!1}function Sb(){if(b){var a;
switch(O){case ha:a="No image!";break;case ia:a="Loading image '"+c.title+"' ("+c.src+")...";break;case ja:a="Error loading image '"+c.title+"' ("+c.src+") !"}switch(O){case ha:case ia:case ja:if(Lb||O!=ia)b.clearRect(0,0,f.width,f.height),b.globalAlpha=1,str="",f.style.fontStyle&&(str+=f.style.fontStyle+" "),f.style.fontVariant&&(str+=f.style.fontVariant+" "),f.style.fontWeight&&(str+=f.style.fontWeight+" "),str=f.style.fontSize?str+(f.style.fontSize+" "):str+"14px ",str=f.style.fontFamily?str+f.style.fontFamily:
str+"sans-serif",b.font=str,b.fillStyle=f.style.color?f.style.color:"#000",b.textBaseline="top",b.fillText(a,20,20);break;case Fa:a=f.width;var u=f.height,e;f?(D==B?(e=Math.min(c.horzFov,ra),e=2*fa(e/2)/(c.horzFov*H)*c.width*k):e=c.width*k,e=Math.round(Math.min(e,f.width))):e=0;var d;D==B?(d=Math.min(c.vertFov,sa),d=2*fa(d/2)/(c.vertFov*H)*c.height*k):d=c.height*k;d=Math.round(Math.min(d,f.height));a=Math.round((a-e)/2);u=Math.round((u-d)/2);e=a+e;d=u+d;if(D==B){b.globalAlpha=Wb();var j=e-a,g=d-u,
z=N();if(D!=B)K=null;else{C=sb;tb||(C*=0.5);var n=Math.min(4/Math.min(c.width/c.horzFov*k,4),2);C*=n;C=c.horzFov/Math.floor(c.horzFov/C);n=Math.round(c.horzFov/C);c.is360&&(C=c.horzFov/n);var h=Math.round(c.vertFov/C);180>c.vertFov&&h++;n++;h++;K=Array(h);for(var m,t,o=-c.vertFov/2-c.horizon,G=c.vertFov/2-c.horizon,w=0;w<h;w++){K[w]=Array(n);t=c.vertFov/2-c.horizon-w*C;t>G?t=G:t<o&&(t=o);for(var l=0;l<n;l++)m=l*C,K[w][l]=new lc(m,t)}}b.fillStyle=f.style.backgroundColor?f.style.backgroundColor:"#000";
b.fillRect(a,u,j,g);m=ya(0,0);n=ya(0,g/2);h=ya(j/2,g/2);t=ya(j/2,-g/2);g=ya(0,-g/2);Nb();Ob();90<Math.abs(n.x-g.x)?0<m.y?(j=c.horzFov/2,m=Math.min(g.y,t.y),h=90):(j=c.horzFov/2,m=-90,h=Math.max(n.y,h.y)):(j=Math.max(h.x,t.x),m=Math.min(g.y,t.y),h=Math.max(n.y,h.y),j+=C);g=-j;j+=x;g+=x;c.is360&&(g=(g+3600)%360,j=(j+3600)%360);-90<m&&(m-=C);90>h&&(h+=C);n=m;m=K.length;t=K[0].length;for(o=0;o<m;o++)for(G=0;G<t;G++)if(w=K[o][G],w.valid=!1,!(w.tilt<n)&&!(w.tilt>h)){if(c.is360&&g>=j){if(w.pan<g&&w.pan>
j)continue}else{if(w.pan<g)continue;if(w.pan>j)continue}if(l=Qb(w.pan,w.tilt))w.valid=!0,w.xDisp=l.x,w.yDisp=l.y}g=K.length-1;j=K[0].length-1;for(n=0;n<g;n++)for(h=0;h<j;h++)if(m=K[n][h],m.valid){var p=K[n][h+1];if(p.valid&&(l=K[n+1][h+1],l.valid&&(o=K[n+1][h],o.valid))){t=m.pan/c.horzFov*c.width;var w=p.pan/c.horzFov*c.width,G=(0.5-(m.tilt+c.horizon)/c.vertFov)*c.height,q=(0.5-(o.tilt+c.horizon)/c.vertFov)*c.height;if(Sa(m)||Sa(p)||Sa(l)||Sa(o)){var r=m.xDisp,s=m.yDisp,y=p.xDisp,p=p.yDisp,v=l.xDisp,
l=l.yDisp,A=o.xDisp,o=o.yDisp;m=0<m.tilt+c.horizon;tb?(Ta(t,G,w,G,w,q,r,s,y,p,v,l,!0),Ta(t,G,w,q,t,q,r,s,v,l,A,o,!1)):m?Ta(t,G,w,q,t,q,r,s,v,l,A,o):Ta(t,G,w,G,w,q,r,s,y,p,v,l)}}}z=N()-z;z+=" ms"}else z=N(),b.globalAlpha=Wb(),b.setTransform(1,0,0,1,0,0),g=c.width,h=c.height,j=x/c.horzFov*g,m=(0.5-(i+c.horizon)/c.vertFov)*h,n=Math.min((e-a)/k,g),h=Math.min((d-u)/k,h),j-=n/2,m-=h/2,n=j+n,h=m+h,0>j&&(c.is360?(j+=g,n+=g):j=0),0>m&&(m=0),n<=g?b.drawImage(c,j,m,n-j,h-m,a,u,e-a,d-u):(t=(g-j)*k,b.drawImage(c,
j,m,g-j,h-m,a,u,t,d-u),b.drawImage(c,0,m,n-g,h-m,a+t,u,e-a-t,d-u)),z=N()-z+" ms";if(Db)document.getElementById("debug3").innerHTML=z;if(U&&T){b.save();b.globalAlpha=I;Aa=null;for(z=0;z<T.length;z++)g=T[z],g.paint(),!Aa&&g.isUnderCursor()&&(Aa=g);b.restore()}b.save();b.setTransform(1,0,0,1,0,0);b.globalAlpha=1;b.fillStyle=f.style.backgroundColor?f.style.backgroundColor:"#000";z=f.width;g=f.height;0<a&&b.fillRect(0,0,a,g);e<z&&b.fillRect(e,0,e,g);0<u&&b.fillRect(a,0,e-a,u);d<g&&b.fillRect(a,d,e-a,g-
d);b.restore();if(oa)if(D==B)u=f.width/2,e=(x-c.compassNorth+3600)%360,Xb(e,u);else{a=50/k*(c.horzFov/c.width);u=[1,2,5,10,15,30,45,90];for(e=0;e<u.length;e++)if(a<=u[e]||e==u.length-1){a=u[e];break}d=x-f.width/2/k*c.horzFov/c.width;d-=c.compassNorth;d=Math.round(d/a)*a;for(d=d-a+c.compassNorth;(u=k*c.width/c.horzFov*(d-x)+f.width/2)<f.width;)e=(d-c.compassNorth+36E3)%360,Xb(Math.round(e),u),d+=a}ub&&L.paint();Aa&&1==I&&Aa.paintPopup()}}}function Ta(a,u,e,d,f,g,p,n,h,m,t,o,G){var w=a,l=u,q=e-a,r=
g-u,i,e=e-a,d=d-u,f=f-a,g=g-u,a=u=0,h=h-p,m=m-n,t=t-p,o=o-n,s=f*d-e*g,v=(t*d-h*g)/s,x=(o*d-m*g)/s,h=(h*f-t*e)/s,m=(m*f-o*e)/s;b.save();b.setTransform(v,x,h,m,p,n);tb&&(b.beginPath(),i=1==I?1:0,G?(b.moveTo(a-2*i,u-i),b.lineTo(e+i,d-i),b.lineTo(f+i,g+2*i)):(b.moveTo(a-i,u-2*i),b.lineTo(e+2*i,d+i),b.lineTo(f-i,g+i)),b.closePath(),b.clip());try{i=1==I?0.5/k*C:0,b.drawImage(c,w,l,Math.min(q+i,c.width-w),Math.min(r+i,c.height-l),0,0,q+i,r+i)}catch(y){}b.restore()}function Sa(a){var b=C/c.horzFov*c.width*
k;return a.xDisp>=-b&&a.xDisp<=f.width+b&&0<=a.yDisp&&a.yDisp<=f.height}function Xb(a,c){var a=Math.round(a),e=mc(a),d=0==a%90;b.save();b.globalAlpha=I;b.font=(d?"20px":"14px")+" sans-serif";b.textBaseline="bottom";b.lineWidth=4;b.fillStyle=d?"#ff0":"#fff";b.strokeStyle="#222";b.beginPath();b.rect(c,f.height-14,1.5,f.height-1);b.stroke();b.fill();b.strokeText(e,c+4,f.height+0.5);b.fillText(e,c+4,f.height);b.restore()}function mc(a){switch(a){case 0:case 360:return"N";case 90:return"E";case 180:return"S";
case 270:return"W";default:return 10>a?"00"+a:100>a?"0"+a:""+a}}function rb(){var a=L.mouseOver();if(Yb!=a)return Yb=a,!0;a=vb();return ub!=a?(ub=a,!0):!1}function vb(){return!S||!L.visible?!1:0<=s&&s<=f.width&&0<=y&&y<=f.height&&Ua}function nc(a){Ba=new Image;Ba.onload=function(){q()};Ba.src=a}function oc(a){Ca=new Image;Ca.onload=function(){q()};Ca.src=a}function wb(){if(!U||!T)return null;for(var a=0;a<T.length;a++){var b=T[a];if(b&&b.isUnderCursor())return b}return null}function Zb(a){var b=document.createElement("canvas"),
c=b.width=b.height=ka,d=b.getContext("2d");d.setTransform(1,0,0,1,ka/2,ka/2);d.beginPath();d.arc(0,0,c/2-2,0,2*Math.PI,!1);d.lineWidth=2;var f=d.createLinearGradient(0,-c/2,0,c/2);f.addColorStop(0,"#f88");f.addColorStop(1,"#a00");d.fillStyle=f;d.stroke();d.fill();d.beginPath();d.arc(0,0,0.4*c,0,2*Math.PI,!1);d.fillStyle="#f00";d.fill();d.strokeStyle=d.fillStyle="#fff";d.lineCap="round";d.lineJoin="round";d.lineWidth=7;d.shadowBlur=4;d.shadowColor="#444";a?(d.beginPath(),d.moveTo(-15,-15),d.lineTo(15,
0),d.lineTo(-15,15)):(d.beginPath(),d.moveTo(-12,-4),d.lineTo(0,-4),d.lineTo(0,20),d.moveTo(-14,20),d.lineTo(14,20),d.stroke(),d.beginPath(),d.arc(-2,-20,2.5,0,2*Math.PI,!1));d.stroke();return b}function Va(a){var b=f,c=parseInt(f.style.borderLeftWidth);isNaN(c)&&(c=0);var d=parseInt(f.style.borderTopWidth);for(isNaN(d)&&(d=0);"BODY"!=b.tagName;)d+=b.offsetTop,c+=b.offsetLeft,b=b.offsetParent;s=a.clientX-c+window.pageXOffset;y=a.clientY-d+window.pageYOffset;Ua=a.target==f}function Y(a){if(!xb&&f&&
a)f.style.cursor="url("+a+"),move",f.width=f.width}function E(){if(f){var a;O==ha||O==ja?a="auto":O==ia?a="wait":S?0>P&&L.getFunctionUnderCursor()?a="pointer":(a=wb())&&a.isLink()?a="pointer":ga?(a=0<=P?La:Ka,a=(a?"url("+a+"),":"")+"auto",xb&&(a="auto")):(a=0<=P?Ja:Ia,a=(a?"url("+a+"),":"")+"move",xb&&(a="move")):a="auto";f.style.cursor=a}}function ac(a){if(S&&v()&&-1==P)switch(a.which){case 37:case 177:a.shiftKey?F(p-ta,null):(F(0,0),wa(-1/Math.sqrt(k),0));break;case 39:case 176:a.shiftKey?F(p+ta,
null):(F(0,0),wa(1/Math.sqrt(k),0));break;case 38:a.shiftKey?F(null,r+ta):(F(0,0),wa(0,1/Math.sqrt(k)));break;case 40:a.shiftKey?F(null,r-ta):(F(0,0),wa(0,-1/Math.sqrt(k)));break;case 27:case 178:F(0,0);break;case 179:fb();break;case 107:case 187:case 175:a.ctrlKey||(a.shiftKey?ea(Ha):ea(la));break;case 109:case 189:case 174:a.ctrlKey||(a.shiftKey?ea(1/Ha):ea(1/la));break;case 49:case 97:R(1);break;case 50:case 98:R(2);break;case 53:case 101:R(0.5);break;case 65:R(0);break;case 77:ga=!ga;E();break;
case 67:oa=!oa;q();break;case 72:U=!U;q();break;case 73:eb()}}function bc(a){S&&v()&&1==a.which&&!a.shiftKey&&!a.ctrlKey&&!a.altKey&&(0<=L.mouseOver()||Wa&&Wa())}function cc(a){Va(a);if(S&&v()&&1==a.which&&!a.shiftKey&&!a.ctrlKey&&!a.altKey){var b=L.getFunctionUnderCursor();if(b)b();else if(Q=J=0,ma(),I=1,!(0>s||s>=f.width||0>y||y>=f.height))P=s,Da=y,ga&&(za=x,Xa=i),a.returnValue=!1,q()}}function dc(a){Va(a);if(S&&v()&&1==a.which&&!(0>P)){a=P==s&&Da==y;P=Da=-1;E();var b;a&&(b=wb())&&b.isLink()?(b.gotoUrl(),
za=Xa=-1):(0!=Ra&&(0!=p||0!=r)?V=N():p=r=0,za=Xa=-1,a&&Ya&&Ya())}}function ec(a){var b=s,e=y;Va(a);if(S&&v()){var d=N()-qb;if(d){qb=N();if(0<=P){document.selection&&document.selection.empty&&document.selection.empty();f.focus();var j=c.horzFov/c.width/k;ga?(x=za-(s-P)*j,i=Xa+(y-Da)*j,p/=1.2*j,r/=1.2*j,p+=100*((b-s)/d),r-=100*((e-y)/d),p*=j,r*=j):(b=s-P,e=y-Da,p=b*Math.max(Math.abs(b),100)*bb*j,r=-e*Math.max(Math.abs(e),100)*bb*j);Ub();a.returnValue=!1}else{if(rb()){E();q();return}j=wb();j!=ib&&(q(),
ib=j)}a.preventDefault();E();Za&&Za()}}}function fc(){Ua=!1;S&&v()&&rb()&&(E(),q())}function Gb(a){if(S&&v()&&-1==P&&!a.ctrlKey&&!a.altKey){var b=a.shiftKey?Ha:la;f.focus();Va(a);var c=0<=(a.detail?-120*a.detail:a.wheelDelta);yb&&(c=!c);var d=0==Q?k:M,b=d*(c?b:1/b);0==aa&&lb(d,b);Z=!0;R(b);a.preventDefault()}}function ua(a){var b=a.changedTouches[0],c="";if(a.touches&&2==a.touches.length){if("touchstart"!=a.type)return;c="dblclick"}else switch(a.type){case "touchstart":c="mousedown";break;case "touchmove":c=
"mousemove";break;case "touchend":c="mouseup";break;case "touchleave":c="mouseout";break;default:return}if(b.target){var d=b.target;d!=document&&d!=f||(a.preventDefault(),a=document.createEvent("MouseEvent"),a.initMouseEvent(c,!0,!0,window,1,b.screenX,b.screenY,b.clientX,b.clientY,!1,!1,!1,!1,0,null),d.dispatchEvent(a))}}function Hb(){Viewer.resize(f.clientWidth,f.clientHeight)}function Ib(){if($a){var a=document.getElementsByTagName("html")[0].style,b=document.getElementsByTagName("body")[0].style;
a.height="100%";a.overflow="hidden";b.height="100%";b.overflow="hidden";b.margin="0";Hb()}}function gc(a){document.selection&&document.selection.empty();a.preventDefault()}function ic(a){function c(){if(!U)return null;var a=Qb(d,j);if(!a)return null;var b=h&&h.src?h.width:ka,b=b*(Math.log(10*k)/5),e=h&&h.src?h.height:ka,e=e*(Math.log(10*k)/5);a.x-=b/2;a.y-=e/2;return 0>a.x+b||a.x>f.width||0>a.y+e||a.y>f.height?null:new zb(a.x,a.y,b,e)}function e(){return i?!0:!1}this.isUnderCursor=function(){var a=
c();return!a||s<a.x||s>a.x+a.cx||y<a.y||y>a.y+a.cy?!1:!0};this.gotoUrl=function(){if(i)if("_self"==n)window.location.href=i;else{var a=self.open(i,n);a&&a.focus()}};this.isLink=e;this.paint=function(){var a=c();if(a)b.shadowColor="#444",b.shadowBlur=20*(Math.log(10*k)/5),h&&b.drawImage(h,a.x,a.y,a.cx,a.cy),b.shadowBlur=0};this.paintPopup=function(){b.save();b.globalAlpha=1;b.shadowColor="#444";b.shadowBlur=3;b.shadowOffsetX=1;b.shadowOffsetY=2;b.font="14px sans-serif";var a=b.measureText(g),a=new zb(s-
8,y+16,a.width+10,20);if(0>a.x)a.x=0;else if(a.x>f.width-a.cx)a.x=f.width-a.cx;if(0>a.y)a.y=0;else if(a.y>f.height-a.cy)a.y=f.height-a.cy;b.strokeStyle="#008";b.lineWidth=2;var c=b.createLinearGradient(a.x,a.y,a.x,a.y+a.cy);c.addColorStop(0,"#fff");c.addColorStop(1,"#bbb");b.fillStyle=c;$b(a,2);b.stroke();b.fill();b.shadowBlur=0;b.shadowOffsetX=0;b.shadowOffsetY=0;b.fillStyle="#008";b.textAlign="center";b.textBaseline="middle";b.fillText(g,a.x+a.cx/2,a.y+a.cy/2);b.restore()};var d=a.pan?a.pan:0,j=
a.tilt?a.tilt:0,g=a.text?a.text:"?",i=a.url?a.url:null,n=a.target?a.target:"_self";Object.defineProperty(this,"pan",{set:function(a){d=a;q()},get:function(){return d}});Object.defineProperty(this,"tilt",{set:function(a){j=a;q()},get:function(){return j}});Object.defineProperty(this,"text",{set:function(a){g=a},get:function(){return g}});Object.defineProperty(this,"url",{set:function(a){i=a},get:function(){return i}});Object.defineProperty(this,"target",{set:function(a){n=a},get:function(){return n}});
var h;a.image?(h=new Image,h.src=a.img):h=e()?Ca:Ba}function ba(a){return Math.cos(a*H)}function fa(a){return Math.tan(a*H)}function xa(a,b){return Math.atan2(a,b)*W}function na(a,b,c){return a<=b?b:a>=c?c:a}function $b(a,c){var e=a.x+a.cx,d=a.y+a.cy;b.beginPath();b.moveTo(a.x+c,a.y);b.lineTo(e-c,a.y);b.quadraticCurveTo(e,a.y,e,a.y+c);b.lineTo(e,a.y+a.cy-c);b.quadraticCurveTo(e,d,e-c,d);b.lineTo(a.x+c,d);b.quadraticCurveTo(a.x,d,a.x,d-c);b.lineTo(a.x,a.y+c);b.quadraticCurveTo(a.x,a.y,a.x+c,a.y)}function Pb(a,
b){this.x=a;this.y=b}function zb(a,b,c,d){this.x=a;this.y=b;this.cx=c;this.cy=d}function lc(a,b){this.pan=a;this.tilt=b;this.yDisp=this.xDisp=0;this.valid=!1}ab="1.0.1.34";Bb="(c) 2012 by Karl Maloszek - Simple Software\n(http://www.panorado.com)";Db=!1;H=Math.PI/180;W=180/Math.PI;Ga=1;B=2;Cb=3;ta=3;qa=60;cb=0.25;db=8;la=Math.SQRT2;Ha=Math.sqrt(Math.sqrt(Math.sqrt(Math.SQRT2)));ra=103;sa=70.5;bb=0.04;ka=96;X=30;ha=0;ia=1;ja=2;Fa=3;this.about=eb;this.reset=fb;this.move=wa;this.moveTo=Mb;this.zoom=
ea;this.zoomToCursor=function(a){Z=!0;R(k*a)};this.setSpeed=F;this.checkPaint=Ub;this.resize=function(a,b){$a?(f.width=document.body.clientWidth,f.height=document.body.clientHeight):(f.width=a,f.height=b);var c=aa;aa=0;R(Pa?0:k);aa=c;L.create();q()};this.selectImage=Jb;this.nextImage=hb;if(!window._VIEWERS)window._VIEWERS=[];var Vb=window._VIEWERS.length;window._VIEWERS[Vb]=this;var Ea=navigator.userAgent,tb=0<=Ea.indexOf("MSIE"),xb=0<=Ea.indexOf("Chrome");Ea.indexOf("Firefox");Ea.indexOf("Safari");
Ea.indexOf("Opera");var Fb=!1;try{document.createEvent("TouchEvent"),Fb=!0}catch(pc){}try{Object.defineProperty(this,"version",{get:function(){return ab}})}catch(qc){return}var f=null;Object.defineProperty(this,"canvas",{set:function(a){Eb(a);q()},get:function(){return f}});var b=null,$a=!1;Object.defineProperty(this,"fullWindow",{set:function(a){$a=a;Ib()},get:function(){return $a}});var $=null;Object.defineProperty(this,"imageList",{set:function(a){$=a;da=-1;L.create()},get:function(){return $}});
var da=-1,c=null;Object.defineProperty(this,"image",{set:function(a){Kb(a)},get:function(){return c}});var D=Ga;Object.defineProperty(this,"projection",{set:function(a){D="spherical"==a?B:Ga;q()},get:function(){return D==B?"spherical":"flat"}});var K=null,sb=5,C;Object.defineProperty(this,"gridSize",{set:function(a){sb=na(a,1,8);q()},get:function(){return sb}});var mb=cb,nb=db,S=!0;Object.defineProperty(this,"enabled",{set:function(a){S=a?!0:!1},get:function(){return S}});var ga=!1;Object.defineProperty(this,
"mouseMode",{set:function(a){ga="grab"==a;E()},get:function(){return ga?"grab":"pan"}});var yb=!1;Object.defineProperty(this,"mouseWheel",{set:function(a){yb="in"==a},get:function(){return yb?"in":"out"}});var Ia,Ja,Ka,La;Object.defineProperty(this,"panCursor0",{set:function(a){Y(a);Ia=a;E()},get:function(){return Ia}});Object.defineProperty(this,"panCursor1",{set:function(a){Y(a);Ja=a;E()},get:function(){return Ja}});Object.defineProperty(this,"grabCursor0",{set:function(a){Y(a);Ka=a;E()},get:function(){return Ka}});
Object.defineProperty(this,"grabCursor1",{set:function(a){Y(a);La=a;E()},get:function(){return La}});var Ra=2;Object.defineProperty(this,"softPan",{set:function(a){Ra=na(a,0,5)},get:function(){return Ra}});var aa=3;Object.defineProperty(this,"softZoom",{set:function(a){aa=na(a,0,5)},get:function(){return aa}});var Qa=0.5;Object.defineProperty(this,"softFade",{set:function(a){Qa=na(a,0,10)},get:function(){return Qa}});var O=ha;Object.defineProperty(this,"loaded",{get:function(){return v()}});var Lb=
!0,x;Object.defineProperty(this,"pan",{set:function(a){v()&&(ma(),x=jb(a),q())},get:function(){return v()?x:0}});var i;Object.defineProperty(this,"tilt",{set:function(a){v()&&(ma(),i=kb(a),q())},get:function(){return v()?i:0}});var k=1;Object.defineProperty(this,"scale",{set:function(a){Z=!1;R(a)},get:function(){return k}});var Pa=!1;Object.defineProperty(this,"panSpeed",{set:function(a){F(a,null)},get:function(){return v()?p:0}});Object.defineProperty(this,"tiltSpeed",{set:function(a){F(null,a)},
get:function(){return v()?r:0}});Object.defineProperty(this,"mousePan",{get:function(){return v()?ob(k):0}});Object.defineProperty(this,"mouseTilt",{get:function(){return v()?pb(k):0}});var ca=0,I=0,J,A,p=0,r=0,za=-1,Xa=-1,V=0,Q=0,va=0,M=0,qb=0,s=-1,y=-1,P=-1,Da=-1,Ua=!1,Z=!1,Oa=null,Ya=null,Wa=null,Za=null,pa=null;Object.defineProperty(this,"onImageLoaded",{set:function(a){Oa=a},get:function(){return Oa}});Object.defineProperty(this,"onClick",{set:function(a){Ya=a},get:function(){return Ya}});Object.defineProperty(this,
"onDblClick",{set:function(a){Wa=a},get:function(){return Wa}});Object.defineProperty(this,"onMouseMove",{set:function(a){Za=a},get:function(){return Za}});Object.defineProperty(this,"onImageMove",{set:function(a){pa=a},get:function(){return pa}});var oa=!1;Object.defineProperty(this,"compassVisible",{set:function(a){oa=a;q()},get:function(){return oa}});var U=!0;Object.defineProperty(this,"hotspotsVisible",{set:function(a){U=a;q()},get:function(){return U}});var Ba=Zb(!1),Ca=Zb(!0);Object.defineProperty(this,
"hotspotInfo",{set:function(a){nc(a)},get:function(){return Ba.src}});Object.defineProperty(this,"hotspotLink",{set:function(a){oc(a)},get:function(){return Ca.src}});var T=null,ib=null,Aa=null,L=new function(){function a(){if(f){o=[];var a=1.1*X*c,e=1.5*X*c,l=10+a/2;d&&(o.push({x:l,fnPaint:function(){b.beginPath();b.moveTo(-4,-4);b.lineTo(4,0);b.lineTo(-4,4);b.closePath();b.stroke()},fnClick:function(){fb()}}),l+=e);j&&(o.push({x:l,fnPaint:function(){b.beginPath();b.moveTo(-4,0);b.lineTo(4,0);b.stroke()},
fnClick:function(){ea(1/la)},fnEnabled:function(){return k>cb}}),l+=a,o.push({x:l,fnPaint:function(){b.beginPath();b.moveTo(-4,-1);b.lineTo(0,-4);b.lineTo(0,6);b.stroke()},fnClick:function(){R(1)},fnHilight:function(){return 1==k}}),l+=a,o.push({x:l,fnPaint:function(){b.beginPath();b.strokeRect(-4,-4,8,8)},fnClick:function(){R(0)},fnHilight:function(){return Pa}}),l+=a,o.push({x:l,fnPaint:function(){b.beginPath();b.moveTo(-4,0);b.lineTo(4,0);b.moveTo(0,-4);b.lineTo(0,4);b.stroke()},fnClick:function(){ea(la)},
fnEnabled:function(){return k<db}}),l+=e);g&&(o.push({x:l,fnPaint:function(){b.beginPath();b.moveTo(3,-3);b.lineTo(-3,0);b.lineTo(3,3);b.stroke()},fnClick:function(){F(p-2,null)}}),l+=a,o.push({x:l,fnPaint:function(){b.beginPath();b.moveTo(-3,-4);b.lineTo(-3,4);b.moveTo(3,-4);b.lineTo(3,4);b.stroke()},fnClick:function(){F(0,0)},fnEnabled:function(){return 0!=p||0!=r}}),l+=a,o.push({x:l,fnPaint:function(){b.beginPath();b.moveTo(-3,-3);b.lineTo(3,0);b.lineTo(-3,3);b.stroke()},fnClick:function(){F(p+
2,null)}}),l+=e);i&&$&&(o.push({x:l,fnPaint:function(){b.beginPath();b.moveTo(-3,-3);b.lineTo(-9,0);b.lineTo(-3,3);b.stroke();b.strokeRect(1,-4,8,8)},fnClick:function(){hb(-1)},fnEnabled:function(){return 0<da}}),l+=a,o.push({x:l,fnPaint:function(){b.beginPath();b.moveTo(3,-3);b.lineTo(9,0);b.lineTo(3,3);b.stroke();b.strokeRect(-9,-4,8,8)},fnClick:function(){hb(1)},fnEnabled:function(){return da<$.length-1}}),l+=e);n&&T&&(o.push({x:l,fnPaint:function(){b.beginPath();b.arc(0,0,4,0,2*Math.PI,!0);b.moveTo(-7,
0);b.lineTo(7,0);b.moveTo(0,-7);b.lineTo(0,7);b.stroke()},fnClick:function(){U=!U;q()},fnHilight:function(){return U}}),l+=a);h&&(o.push({x:l,fnPaint:function(){b.fillText("?",0,6)},fnClick:function(){(m=self.open(h,"ViewerHelp","width=500,height=500,location=no,menubar=no,scrollbars=no,resizable=yes,status=no,toolbar=no,titlebar=yes"))&&m.focus()}}),l+=a);o.push({x:l,fnPaint:function(){b.beginPath();b.moveTo(-3,-1);b.lineTo(0,-1);b.lineTo(0,5);b.moveTo(-4,5);b.lineTo(4,5);b.stroke();b.beginPath();
b.arc(-0.5,-5,0.7,0,2*Math.PI,!0);b.stroke()},fnClick:function(){eb()}});t&&self.opener&&o.push({x:l+a,fnPaint:function(){b.beginPath();b.moveTo(0,-7);b.lineTo(0,3);b.stroke();b.beginPath();b.arc(0,1,5,225*Math.PI/180,315*Math.PI/180,!0);b.stroke()},fnClick:function(){m&&!m.closed&&(m.close(),m=null);window.close()}})}}this.getFunctionUnderCursor=function(){if(!vb()||!o)return null;var a=X*c/2,b=20*c/2,d=f.height-10-b;if(!(y>=d-b&&y<=d+b))return null;for(b=0;b<o.length;b++)if(d=o[b],s>=d.x-a&&s<=
d.x+a)if(d.fnEnabled){if(d.fnEnabled())return d.fnClick;break}else return d.fnClick;return null};this.mouseOver=function(){if(!vb()||!o||!Ua)return-1;var a=X*c/2,b=20*c/2,d=f.height-10-b;if(!(y>=d-b&&y<=d+b))return-1;for(b=0;b<o.length;b++)if(d=o[b],s>=d.x-a&&s<=d.x+a)return b;return-1};this.paint=function(){if(o){b.save();b.globalAlpha=1;b.shadowColor="#000";b.shadowBlur=1.5;b.shadowOffsetX=1;b.shadowOffsetY=2;b.font="bold 16px sans-serif";b.textAlign="center";b.textBaseline="alphabetic";b.lineWidth=
1.5;b.lineCap="round";b.lineJoin="round";b.fillStyle="#fff";b.strokeStyle="#fff";for(var a=f.height-10-20*c/2,d=0;d<o.length;d++){var e=o[d],g=e.x,h=X*c/2,i=20*c/2,h=s>=g-h&&s<=g+h&&y>=a-i&&y<=a+i,i=!e.fnEnabled||e.fnEnabled();b.setTransform(c,0,0,c,g,a);b.save();b.fillStyle=h&&i?"rgba(96, 128, 192, 0.4)":e.fnHilight&&e.fnHilight()?"rgba(128, 170, 255, 0.4)":"rgba(24, 32, 48, 0.4)";b.lineWidth=h&&i?2:1.01;g=new zb(-X/2,-10,X,20);$b(g,4);b.fill();b.stroke();b.restore();b.lineWidth=1.5;e.fnPaint()}b.restore()}};
this.create=a;var c=1;Object.defineProperty(this,"size",{set:function(a){c=na(a,0.7,2);L.create()},get:function(){return c}});var e=!0,d=!0,j=!0,g=!0,i=!0,n=!0,h="",m=null,t=!0;Object.defineProperty(this,"visible",{set:function(a){e=a;q()},get:function(){return e}});Object.defineProperty(this,"reset",{set:function(b){d=b;a()},get:function(){return d}});Object.defineProperty(this,"scale",{set:function(b){j=b;a()},get:function(){return j}});Object.defineProperty(this,"motion",{set:function(b){g=b;a()},
get:function(){return g}});Object.defineProperty(this,"hotspots",{set:function(b){n=b;a()},get:function(){return n}});Object.defineProperty(this,"browse",{set:function(b){i=b;a()},get:function(){return i}});Object.defineProperty(this,"helpUrl",{set:function(b){h=b;a()},get:function(){return h}});Object.defineProperty(this,"closeWindow",{set:function(b){t=b;a()},get:function(){return t}});var o=null;a()};this.controls=L;var ub=!1,Yb=-1;Ab&&Eb(Ab)};

