////////////////////////////////////////////////////////////////////// // Pano2VR 6.1.13/18080 HTML5/CSS3 & WebGL Panorama Player // // License: Pauline Liew P L // // (c) 2021, Garden Gnome Software, http://ggnome.com // ////////////////////////////////////////////////////////////////////// /* this.useWebVR*/ var ll="function"==typeof Object.defineProperties?Object.defineProperty:function(x,p,m){x!=Array.prototype&&x!=Object.prototype&&(x[p]=m.value)},nl="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this;function ol(x,p){if(p){var m=nl;x=x.split(".");for(var d=0;dm&&(m=Math.max(0,c+m));if(null==d||d>c)d=c;d=Number(d);0>d&&(d=Math.max(0,c+d));for(m=Number(m||0);mm&&(m=Math.max(m+c,0));mf;)f+=360;for(;180h&&(h=a.fov.j);this.cc||(this.cc=new x.Ga,this.cc.gm(this.pan,this.v));0!=this.mode&&1!=this.mode||!b||this.Rb&&this.Rb.gain.setValueAtTime(this.level*a.ba*this.pa,b.currentTime);if(2==this.mode&&b){var l=.5*Math.cos(f*Math.PI/180)+.5;this.Vc=Math.sqrt(l)*this.pa*this.level*a.ba;this.Yc=Math.sqrt(l)*this.pa*this.level* a.ba;this.Wc=Math.sqrt(1-l)*this.pa*this.level*a.ba;this.Xc=Math.sqrt(1-l)*this.pa*this.level*a.ba;this.Lh()}if(3==this.mode){f=0>f?f<-this.Bb?f+this.Bb:0:f>this.Bb?f-this.Bb:0;var k=this.level;e=Math.abs(e);e=eh||0>w)l=k*g*a.ba,b?(this.Vc=l*this.pa,this.Yc=l*this.pa,this.Xc=this.Wc=0,this.Lh()):this.f.volume=k*g*a.ba;else if(l=1-Math.abs(f/h),b){var r=k*(g+(1-g)*w*l)*a.ba;l=k*g*a.ba;0<=f?(this.Vc=r*this.pa,this.Yc=l*this.pa):(this.Vc=l*this.pa,this.Yc= r*this.pa);2*Math.abs(f)f?f>-this.Bb?0:f+this.Bb:f no audio buffer -> playWhenReady"),this.Qk=!0};c.prototype.Nj=function(){var a=this.m.ua.currentTime-this.mj;this.vf();this.stopped=!1;this.$f=a;this.paused=!0;this.m.L("bufferSoundPause",{id:this.id});this.m.L("bufferSoundTimeupdate",{id:this.id,time:this.uf()})};c.prototype.vf=function(){this.wb&&this.Rc&&(this.oj=!0,this.wb.disconnect(),this.wb.stop(0),this.wb=null);this.mj=this.$f=0;this.zf=-1;this.ended=this.paused= this.Rc=!1;this.stopped=!0;clearInterval(this.hc);this.hc=null;this.m.L("bufferSoundStop",{id:this.id});this.m.L("bufferSoundTimeupdate",{id:this.id,time:this.uf()})};c.prototype.uf=function(){var a=this.m.ua;if(-1a.loop&&(a.f.preload="none"));a.gd&&""!=a.gd&&(a.f.style.gd="url('"+b.eb(a.gd)+"')",a.f.style.webkitMaskImage="url('"+b.eb(a.gd)+"')",a.f.style.maskSize="100% 100%",a.f.style.webkitMaskSize="100% 100%");a.f.volume=a.level*b.ba;1<=a.loop&&(a.xb=a.loop-1);e&&(this.Ed=!0);(1==a.mode||2==a.mode||3==a.mode||5==a.mode)&&0<=a.loop&&(a.f.autoplay=!0,a.isRunning=!0,a.autoplay=!0,a.ro());b.S.push(this);b.Yh?b.$.appendChild(a.f):(a.f.style.position="absolute",b.Oe&&(a.Vb/=2,a.Ac/=2),a.Vb&&(a.f.width= a.Vb),a.Ac&&(a.f.height=a.Ac),b.M.appendChild(a.f));a.f.addEventListener("ended",function(){a.Ps()},!1)}catch(h){b.N(h)}};c.prototype.registerElement=function(a,b){this.hd=!0;this.f=b;this.id=a;this.level=1;this.m.S.push(this)};c.prototype.We=function(){var a=this.m;a.Yh&&(a.R.deleteTexture(this.texture),this.texture=0,a.$.removeChild(this.f));a.yo&&a.M.removeChild(this.f);this.f=null};return c}(m);x.Al=m;m=function(d){function c(a){a=d.call(this,a)||this;a.url="";a.Fa=0;a.La=0;a.ob=0;a.fov=50;a.ib= 0;a.bh=!1;a.Vb=100;a.Ac=100;a.Kc=1;return a}__extends(c,d);c.prototype.$b=function(a){d.prototype.$b.call(this,a);var b;if(b=a.getAttributeNode("url"))this.url=b.nodeValue.toString();if(b=a.getAttributeNode("maskimage"))this.gd=String(b.nodeValue);if(b=a.getAttributeNode("rotx"))this.Fa=Number(b.nodeValue);if(b=a.getAttributeNode("roty"))this.La=Number(b.nodeValue);if(b=a.getAttributeNode("rotz"))this.ob=Number(b.nodeValue);if(b=a.getAttributeNode("fov"))this.fov=Number(b.nodeValue);if(b=a.getAttributeNode("width"))this.Vb= Number(b.nodeValue);if(b=a.getAttributeNode("height"))this.Ac=Number(b.nodeValue);this.Kc=(b=a.getAttributeNode("stretch"))?Number(b.nodeValue):1;if(b=a.getAttributeNode("clickmode"))this.ib=Number(b.nodeValue);if(b=a.getAttributeNode("handcursor"))this.bh=1==Number(b.nodeValue);for(a=a.firstChild;a;)"source"==a.nodeName&&(b=a.getAttributeNode("url"))&&(this.url=b.nodeValue.toString()),a=a.nextSibling};c.prototype.$g=function(){this.Xg=!1;this.f.style[this.m.bd]="none"};c.prototype.Le=function(){1!== this.ib&&4!==this.ib||this.Zg(!this.qb)};c.prototype.Zg=function(a){var b=this.m;if(1===this.ib||4===this.ib)this.qb=a,this.m.Pb?(a=this.m.ra)&&a.activateSound(this.id,this.qb?1:0):(this.qb?(this.f.style.pointerEvents="auto",this.f.style.cursor="pointer",this.f.style.zIndex=(b.bi+8E4).toString()):(this.f.style.pointerEvents="none",this.f.style.cursor="default",this.f.style.zIndex=b.bi.toString()),this.f.style[b.bd]="all 1s ease 0s",this.Xg=!0,b.to())};c.prototype.addElement=function(){var a=this, b=this.m;try{a.f=document.createElement("img");a.f.setAttribute("style","-webkit-user-drag:none; max-width:none; pointer-events:none;");a.f.setAttribute("class","ggmedia");a.f.hidden=!0;a.f.addEventListener("click",function(e){e.stopPropagation()});b.Mf&&a.f.setAttribute("id",b.Mf+a.id);a.f.ondragstart=function(){return!1};if(1===a.ib||4===a.ib)a.f.addEventListener(b.Go(),function(){a.$g()},!1),a.f.addEventListener("transitionend",function(){a.$g()},!1);a.f.setAttribute("src",b.eb(a.url));a.Vb&&(a.f.width= a.Vb);a.Ac&&(a.f.height=a.Ac);b.fb.push(a);a.f.style.position="absolute";a.gd&&""!=a.gd&&(a.f.style.gd="url('"+b.eb(a.gd)+"')",a.f.style.webkitMaskImage="url('"+b.eb(a.gd)+"')",a.f.style.maskSize="100% 100%",a.f.style.webkitMaskSize="100% 100%");b.M.appendChild(a.f)}catch(e){b.N("Error addimage:"+e)}};c.prototype.We=function(){this.m.M.removeChild(this.f);this.f=null};return c}(p);x.Qo=m;p=function(d){function c(a){a=d.call(this,a)||this;a.Il=50;a.alpha=50;a.type=0;a.color=16777215;return a}__extends(c, d);c.prototype.$b=function(a){d.prototype.$b.call(this,a);var b;if(b=a.getAttributeNode("blinding"))this.Il=Number(b.nodeValue);if(b=a.getAttributeNode("alpha"))this.alpha=Number(b.nodeValue);if(b=a.getAttributeNode("type"))this.type=Number(b.nodeValue);if(b=a.getAttributeNode("color"))this.color=1*Number(b.nodeValue)};return c}(p);x.Ro=p;p=function(){function d(c){this.m=c;this.type="empty";this.cl=this.id=this.target=this.description=this.title=this.url="";this.w=100;this.h=20;this.Dj=!1;this.f= null;this.Cb=this.Zb=this.hb=this.va=this.distance=this.v=this.pan=0;this.visible=!0;this.gc=c.H.gc;this.ec=c.H.ec;this.fc=c.H.fc;this.dc=c.H.dc;this.Jf=c.H.Jf;this.ad="";this.Hd=this.De=0;this.pg=!1;this.si=0;this.vertices=[]}d.prototype.Df=function(){this.id=this.id;this.pan=this.pan;this.tilt=this.v;this.url=this.url;this.target=this.target;this.title=this.title;this.distance=this.distance;this.description=this.description;this.skinid=this.cl;this.obj=this.f;this.customimage=this.ad;this.customimagewidth= this.De;this.customimageheight=this.Hd;this.use3D=this.pg;this.distance3D=this.si;this.f&&this.f.__div&&(this.div=this.f.__div)};d.prototype.us=function(){var c=this.url;return"{"==c.charAt(0)?c.substr(1,c.length-2):!1};d.prototype.$b=function(c){var a;if(a=c.getAttributeNode("url"))this.url=a.nodeValue.toString();if(a=c.getAttributeNode("target"))this.target=a.nodeValue.toString();if(a=c.getAttributeNode("title"))this.title=a.nodeValue.toString();if(a=c.getAttributeNode("description"))this.description= a.nodeValue.toString();if(a=c.getAttributeNode("id"))this.id=a.nodeValue.toString();if(a=c.getAttributeNode("skinid"))this.cl=a.nodeValue.toString();if(a=c.getAttributeNode("width"))this.w=Number(a.nodeValue);if(a=c.getAttributeNode("height"))this.h=Number(a.nodeValue);if(a=c.getAttributeNode("wordwrap"))this.Dj=1==Number(a.nodeValue);a=c.getAttributeNode("pan");this.pan=1*(a?Number(a.nodeValue):0);a=c.getAttributeNode("tilt");this.v=1*(a?Number(a.nodeValue):0);a=c.getAttributeNode("fov");this.fov= 1*(a?Number(a.nodeValue):0);a=c.getAttributeNode("distance");this.distance=1*(a?Number(a.nodeValue):0);if(a=c.getAttributeNode("bordercolor"))this.gc=1*Number(a.nodeValue);if(a=c.getAttributeNode("backgroundcolor"))this.ec=1*Number(a.nodeValue);if(a=c.getAttributeNode("borderalpha"))this.fc=1*Number(a.nodeValue);if(a=c.getAttributeNode("backgroundalpha"))this.dc=1*Number(a.nodeValue);if(a=c.getAttributeNode("handcursor"))this.Jf=1==Number(a.nodeValue);if(a=c.getAttributeNode("customimage"))this.ad= this.m.qm()+a.nodeValue;if(a=c.getAttributeNode("customimagewidth"))this.De=Number(a.nodeValue);if(a=c.getAttributeNode("customimageheight"))this.Hd=Number(a.nodeValue);if(a=c.getAttributeNode("use3D"))this.pg=1==Number(a.nodeValue);if(a=c.getAttributeNode("distance3D"))this.si=Number(a.nodeValue);for(c=c.firstChild;c;){if("polystring"==c.nodeName){a=c.textContent.toString().split("|");for(var b=0;bc;c++)2>c%3&&(f[c]*=d);e.bufferData(e.ARRAY_BUFFER,new Float32Array(f),e.STATIC_DRAW);this.Ce=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,this.Ce);var g=[1,0,0,0,0,1,1,1];e.bufferData(e.ARRAY_BUFFER,new Float32Array(g),e.STATIC_DRAW);this.qd=e.createBuffer();e.bindBuffer(e.ELEMENT_ARRAY_BUFFER, this.qd);var h=[0,1,2,0,2,3];e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Uint16Array(h),e.STATIC_DRAW);f=[];h=[];g=[];var l=new x.Ga;for(d=0;6>d;d++){var k=d%3;var w=3>d?1:0;for(a=0;4>a;a++){l.x=-1;l.y=-1;l.z=1;for(c=0;cl.x?.33:0)+.33*k,(0>l.y?0:.5)+.5*w);if(4>d)for(c=0;ca;a++){var b=c.createTexture();this.ud++; b.bg=null;b.Qe=null;b.Lm=!1;c.bindTexture(c.TEXTURE_2D,b);c.texImage2D(c.TEXTURE_2D,0,c.RGB,1,1,0,c.RGB,c.UNSIGNED_BYTE,null);c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,c.LINEAR);c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE);c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE);if(d.yf[a]){var e=new Image;e.crossOrigin=d.crossOrigin;e.src=d.eb(d.yf[a]);b.bg=e;e.addEventListener&&e.addEventListener("load",this.tk(b),!1);d.ic.push(e)}this.jb.push(b)}for(a=0;6>a;a++)d.Ig[a]&& (e=new Image,e.crossOrigin=d.crossOrigin,e.src=d.eb(d.Ig[a]),e.addEventListener?e.addEventListener("load",this.tk(this.jb[a]),!1):e.onload=this.tk(this.jb[a]),this.jb[a].Qe=e,d.ic.push(e));for(a=0;ad;d++)this.kg(d),c.bindBuffer(c.ARRAY_BUFFER,this.Zj),c.vertexAttribPointer(this.P.ja,3,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this.Ce),c.vertexAttribPointer(this.P.Ma,2,c.FLOAT,!1,0,0),6<=this.jb.length&&this.jb[d].loaded&&(c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,this.jb[d]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.qd),c.uniform1i(this.P.gg, 0),c.uniformMatrix4fv(this.P.zh,!1,this.za),c.uniformMatrix4fv(this.P.je,!1,this.Ab),c.drawElements(c.TRIANGLES,6,c.UNSIGNED_SHORT,0))}};m.prototype.xj=function(){var d=this.m;if(d.u.cg&&6>16&255)/255,(c>>8&255)/255,(c>>0&255)/255,1)}};m.prototype.kg=function(d,c){void 0===c&&(c=1);var a=this.m;x.ka.identity(this.za);x.ka.rotate(this.za,c*-a.U.j*Math.PI/180,[0,0,1]);x.ka.rotate(this.za,c*-a.v.j*Math.PI/180,[1,0,0]);-1==c?x.ka.rotate(this.za, -a.pan.j*Math.PI/180,[0,1,0]):x.ka.rotate(this.za,(180-a.pan.j)*Math.PI/180,[0,1,0]);a.Oa&&(x.ka.rotate(this.za,-a.Oa.pitch*Math.PI/180,[1,0,0]),x.ka.rotate(this.za,a.Oa.U*Math.PI/180,[0,0,1]));4>d?x.ka.rotate(this.za,-Math.PI/2*d,[0,1,0]):x.ka.rotate(this.za,Math.PI/2*(5==d?1:-1),[1,0,0])};m.prototype.xs=function(d){var c=this;return function(){c.dk.push(d)}};m.prototype.yp=function(d){this.m.Na=!0;this.m.rd=!0;d.loaded=!0;d.Wk=0;d.me=0;var c=this.m.R;this.Yl();c.pixelStorei(c.UNPACK_FLIP_Y_WEBGL, 1);if(null!=d.u&&d.u.complete){d.rb=c.createTexture();this.m.ud++;c.bindTexture(c.TEXTURE_2D,d.rb);try{c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,d.u)}catch(a){c.texImage2D(c.TEXTURE_2D,0,c.RGBA,1,1,0,c.RGBA,c.UNSIGNED_BYTE,new Uint8Array([128,128,128,250])),this.m.N(a)}}this.m.update(2)};m.prototype.Yl=function(){this.m.bc&&this.m.bc--};m.prototype.zp=function(){if(0f;f++){var g=new x.Xd;g.V=document.createElement("canvas");c.m.ia?(g.V.width=b.width+2*e,g.V.height=b.height+2*e):(g.V.width=a.O+2*e,g.V.height=a.O+2*e);g.bb=g.V.getContext("2d");g.V.style[c.m.Va+"Origin"]="0% 0%";g.V.style.overflow="hidden";g.V.style.position="absolute";g.u=d;var h=b.width+2*e,l=b.height+2*e;g.bb&&g.bb.drawImage(d,0,f*l,h,l,0,0,h,l);if(c.m.ia&& c.m.R){var k=c.m.R;k.pixelStorei(k.UNPACK_FLIP_Y_WEBGL,1);g.rb=k.createTexture();c.m.ud++;k.bindTexture(k.TEXTURE_2D,g.rb);try{k.texImage2D(k.TEXTURE_2D,0,k.RGBA,k.RGBA,k.UNSIGNED_BYTE,g.V)}catch(w){c.m.N(w)}k.bindTexture(k.TEXTURE_2D,null);k.pixelStorei(k.UNPACK_FLIP_Y_WEBGL,0)}c.m.ld&&(g.V.ee=-1,c.m.M.insertBefore(g.V,c.m.M.firstChild));b.aa[f]=g}b.loaded=!0}}catch(w){c.m.N(w)}c.m.update(2)}};m.prototype.no=function(d){var c=this;return function(){c.m.Na=!0;c.m.rd=!0;c.Yl();d.u=null}};m.prototype.Us= function(){var d=this.m,c=d.u,a=d.u.levels;d.de&&(d.Mc(0),d.Hc());if(d.R){var b=d.R;b.useProgram(this.P);this.xj();b.clearColor(0,0,0,1);b.clear(b.COLOR_BUFFER_BIT|b.DEPTH_BUFFER_BIT);b.enable(b.DEPTH_TEST);x.ka.identity(this.Ab);x.ka.perspective(d.kc(),d.zb.width/d.zb.height,.1,100,this.Ab);b.uniformMatrix4fv(this.P.je,!1,this.Ab);d.vo();d.Jk();var e=d.hk();var f=a.length-1;for(d.Fc=0;f>=e;){var g=a[f],h=1;f==a.length-1&&0==c.Da&&(h=c.O/(c.O-.5));for(var l=0;6>l;l++){var k=d.cube.faces[l];var w= k.ag;if(k.mb&&0sh;sh++)id[sh]=0==sh%3?h*ha*(-2*id[sh]/g.width+1):1==sh%3?h*ha*(-2*id[sh]/g.height+1):ha;b.bufferData(b.ARRAY_BUFFER,new Float32Array(id),b.STATIC_DRAW)}}else w=!1;ua.visible=k.mb}r.Gk=w}}f--}for(l=0;6>l;l++)if(k=d.cube.faces[l],k.mb)for(w=k.ag,this.kg(l),b.uniform1i(this.P.gg,0),b.uniformMatrix4fv(this.P.je,!1,this.Ab),b.uniformMatrix4fv(this.P.zh, !1,this.za),b.enableVertexAttribArray(this.P.ja),b.enableVertexAttribArray(this.P.Ma),b.bindBuffer(b.ARRAY_BUFFER,this.Ce),b.vertexAttribPointer(this.P.Ma,2,b.FLOAT,!1,0,0),b.activeTexture(b.TEXTURE0),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this.qd),b.useProgram(this.P),f=e;f<=a.length-1;){g=a[f];if(k.mb&&0f?sh.Ye(-90*f):sh.Sd(5==f?90:-90);h.Oa&&(sh.Ze(h.Oa.U),sh.Sd(-h.Oa.pitch));sh.Ye(-h.pan.j);sh.Sd(h.v.j);sh.Ze(h.U.j);for(f=0;f<=e;f++)for(var db=0;db<=e;db++){var gl=2*(w+db*r)-1;var tf=2*(a+f*y)-1;id.x=1*gl;id.y=1*tf;id.z=-1;id.normalize();sh.Xq(id);gl=this.Cm(id,l,h.Sa());0!=h.Dc&&1>ua&&(gl=gl&&this.Cm(id,z,h.Dc), l.x=l.x*ua+z.x*(1-ua),l.y=l.y*ua+z.y*(1-ua));gl?-1E10l.x&&-1E10l.y?-2l.x&&-2l.y&&(c+=l.x,b+=l.y,ha++):l.x=NaN:l.x=NaN;d.vd[d.Di++]=l.x;d.vd[d.Di++]=l.y}0h;h++)isNaN(d.vd[2*b[0]])&&(e=!1);if(e){var l=!1,k=!1,w=!1,r=!1;for(h=0;4>h;h++){var y=d.vd[2*b[h]];yy;y++)for(var z=0;z=f;){var id={};k=a[h];var sh=null;0>w-h),y,-(0!=d.Dc)?.3:.1);tf.visible=0d.fov.j&&hd.Re){d.N("Excided painted tiles");this.lj=!1;break}tf.rb&&(l=y=c.O,ha==k.T-1&&(y=k.width-c.O*ha),z==k.ea-1&&(l=k.height-c.O*z),y=(y+2*c.Da)/c.O,l=(l+2*c.Da)/c.O,b.bindTexture(b.TEXTURE_2D,tf.rb),b.uniform2f(b.getUniformLocation(e,"uCanvasDimensions"),d.C.width,d.C.height),w=b.getUniformLocation(e,"srcScale"),b.uniform2f(w,.5*k.width/c.O/y,.5*k.height/c.O/l),w=b.getUniformLocation(e,"srcOffset"),b.uniform2f(w,(.5*k.width+ c.Da-c.O*ha)/c.O/y,-(.5*k.height+c.Da-c.O*z)/c.O/l+1),w=b.getUniformLocation(e,"zOffset"),b.uniform1f(w,(h+1)/(a.length+5)),y=b.getAttribLocation(e,"aVertexPosition"),b.disableVertexAttribArray(0),b.disableVertexAttribArray(1),b.disableVertexAttribArray(2),b.enableVertexAttribArray(y),b.activeTexture(b.TEXTURE0),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.LINEAR),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.LINEAR),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE),b.texParameteri(b.TEXTURE_2D, b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE),b.bindBuffer(b.ARRAY_BUFFER,this.Dq),b.vertexAttribPointer(y,2,b.FLOAT,!1,0,0),b.bufferData(b.ARRAY_BUFFER,new Float32Array(tf.vd),b.DYNAMIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this.Cq),b.bufferData(b.ELEMENT_ARRAY_BUFFER,new Uint16Array(tf.Me),b.DYNAMIC_DRAW),b.drawElements(b.TRIANGLES,tf.Kd,b.UNSIGNED_SHORT,0),g++)}h++}b.disable(b.CULL_FACE);b.cullFace(b.FRONT_AND_BACK);d.rd=!1}};m.prototype.yj=function(d,c){var a=this.m.R;x.ka.identity(this.za);this.kg(d, -1);a.uniformMatrix4fv(a.getUniformLocation(c,"matRotate"),!1,this.za)};m.prototype.pr=function(){var d=this.m;if(d.R){var c=d.R,a=this.Dn;c.useProgram(a);this.yj(0,a);c.uniform2f(c.getUniformLocation(a,"uCanvasDimensions"),d.C.width,d.C.height);var b=c.getUniformLocation(a,"srcOffset");c.uniform2f(b,.5,.5);1==d.D.format&&(b=c.getUniformLocation(a,"srcScale"),d.Nd?(c.uniform2f(b,-.5/Math.PI,(d.D.flipY?-.5:.5)/Math.PI),b=c.getUniformLocation(a,"srcOffset"),d.Ph?c.uniform2f(b,.5,.75):c.uniform2f(b, .5,.25)):c.uniform2f(b,-.5/Math.PI,(d.D.flipY?-1:1)/Math.PI));14==d.D.format&&(b=c.getUniformLocation(a,"srcScale"),c.uniform2f(b,1-2*d.D.rf/(d.D.width/3),1-2*d.D.rf/(d.D.height/2)));this.nl(a);b=c.getUniformLocation(a,"cubeTexture");c.uniform1i(b,0);b=c.getAttribLocation(a,"aVertexPosition");c.disableVertexAttribArray(0);c.disableVertexAttribArray(1);c.disableVertexAttribArray(2);c.enableVertexAttribArray(b);c.bindBuffer(c.ARRAY_BUFFER,this.bj);c.vertexAttribPointer(b,2,c.FLOAT,!1,0,0);c.activeTexture(c.TEXTURE0); c.bindTexture(c.TEXTURE_2D,d.D.texture);c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE);c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE);c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,c.LINEAR);c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,c.LINEAR);c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.qd);c.drawElements(c.TRIANGLES,6,c.UNSIGNED_SHORT,0)}};m.prototype.nl=function(d){var c=this.m,a=c.R,b=this.m.C,e=b.width/b.height;switch(c.fov.mode){case 1:e=1;break;case 2:e= b.width/Math.sqrt(b.width*b.width+b.height*b.height);break;case 3:4*b.height/3g;g++)this.jb[g].Qe.complete?this.oi[g]||(f=!0):b=!1,this.jb[g].bg.complete||(e=!1);if(e||b)if(!e||b||!this.Lc||f){g=Math.round(d.Gc/d.ff);e=(d.Gc-g)/2;d.N("paint cube single - isMain: "+b+" overlap: "+e);this.xf=0;this.Lc||(this.Lc=c.createTexture());d.ud++;c.bindTexture(c.TEXTURE_CUBE_MAP,this.Lc);c.texParameteri(c.TEXTURE_CUBE_MAP, c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE);c.texParameteri(c.TEXTURE_CUBE_MAP,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE);c.pixelStorei(c.UNPACK_FLIP_Y_WEBGL,1);f=document.createElement("canvas");f.width=g;f.height=g;var h=f.getContext("2d");for(g=0;6>g;g++){var l=a[g];this.jb[l].Qe.complete?this.oi[l]||(h.drawImage(this.jb[l].Qe,-e,-e),c.texImage2D(c.TEXTURE_CUBE_MAP_POSITIVE_X+g,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,f),this.oi[l]=!0):(h.drawImage(this.jb[l].bg,-e,-e,d.Gc,d.Gc),c.texImage2D(c.TEXTURE_CUBE_MAP_POSITIVE_X+ g,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,f))}this.ih=!b}};m.prototype.wp=function(){var d=this.m,c=this.m.u,a=d.u.levels,b=d.R,e;var f=a.length-1;if(!(0>f)){a[f].Ve&&f--;var g=512;d.hh&&(g=256);!d.fg&&2<=d.devicePixelRatio&&(g=512);for((e=b.getParameter(b.MAX_CUBE_MAP_TEXTURE_SIZE))&&e f){g=a[f];d.N("paint cube level "+f);this.xf=f;a=d.u.Da;f=0g.width&&(1500k;k++){for(var w=0;we;e++)for(var f=0;fc;c++)for(var a=0;a1.1*d.lo)for(this.be.sort(function(l,k){return k.mh-l.mh});this.be.length> d.lo;)h=this.be.pop(),h.rb&&(a.deleteTexture(h.rb),d.ud--,h.rb=0),h.u=null,h.If&&(a.deleteBuffer(h.If),h.If=0),g=h.level.aa.indexOf(h),d.N("delete "+g+" "+(b-h.mh)),delete h.level.aa[g]};m.prototype.Ns=function(){var d=this.m;if(d.R){var c=this.m.R;c.disable(c.DEPTH_TEST);var a;for(a=0;ac;c++)this.kg(0),a.bindBuffer(a.ARRAY_BUFFER,d.D.rl),a.vertexAttribPointer(this.P.ja,3,a.FLOAT,!1, 0,0),a.bindBuffer(a.ARRAY_BUFFER,d.D.pj),a.vertexAttribPointer(this.P.Ma,2,a.FLOAT,!1,0,0),a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,d.D.zk),a.uniform1i(this.P.gg,0),a.uniformMatrix4fv(this.P.zh,!1,this.za),a.uniformMatrix4fv(this.P.je,!1,this.Ab),a.drawElements(a.TRIANGLES,36,a.UNSIGNED_SHORT,0)}};m.prototype.Ls=function(){var d=this.m,c=d.R,a=d.D;if(0=a.H.mode&&(e=0);3==a.H.mode&&(e=a.H.va);for(d=0;d>16&255)/255,(c>>8&255)/255,(c&255)/255);var k=b.getUniformLocation(this.Qd,"uAlpha");b.uniform1f(k, f.fc*h);b.vertexAttribPointer(this.Qd.ja,3,b.FLOAT,!1,0,0);b.drawArrays(b.LINE_LOOP,0,l.length/3);c=f.ec;b.uniform3f(g,(c>>16&255)/255,(c>>8&255)/255,(c&255)/255);b.uniform1f(k,f.dc*h);b.enable(b.STENCIL_TEST);b.clearStencil(0);b.clear(b.STENCIL_BUFFER_BIT);b.colorMask(!1,!1,!1,!1);b.stencilFunc(b.ALWAYS,1,1);b.stencilOp(b.INCR,b.INCR,b.INCR);b.drawArrays(b.TRIANGLE_FAN,0,l.length/3);b.colorMask(!0,!0,!0,!0);b.stencilFunc(b.EQUAL,1,1);b.stencilOp(b.ZERO,b.ZERO,b.ZERO);b.drawArrays(b.TRIANGLE_FAN, 0,l.length/3);b.disable(b.BLEND);b.enable(b.DEPTH_TEST);b.disable(b.STENCIL_TEST);b.useProgram(this.P)}}}}};m.prototype.ml=function(){var d=this.m,c=d.u;if(d.C.width!=d.M.offsetWidth||d.C.height!=d.M.offsetHeight)d.C.width=d.M.offsetWidth,d.C.height=d.M.offsetHeight;d.de&&(d.Mc(0),d.Hc());if(d.R){var a=d.R;this.xj();a.clear(a.COLOR_BUFFER_BIT|a.DEPTH_BUFFER_BIT);a.disable(a.DEPTH_TEST);a.disable(a.CULL_FACE);a.useProgram(this.Og);var b=a.getUniformLocation(this.Og,"uRect");a.uniform2f(a.getUniformLocation(this.Og, "uCanvasDimensions"),d.C.width,d.C.height);a.activeTexture(a.TEXTURE0);a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.qd);var e=a.getAttribLocation(this.Og,"aVertexPosition");a.disableVertexAttribArray(0);a.disableVertexAttribArray(1);a.disableVertexAttribArray(2);a.enableVertexAttribArray(e);a.bindBuffer(a.ARRAY_BUFFER,this.Ce);a.vertexAttribPointer(e,2,a.FLOAT,!1,0,0);d.Fc=0;var f=100/d.fov.j;var g=c.width/c.height;e=d.C.height*f*g;f*=d.C.height;g=(d.pan.j/100/g-.5)*e+d.C.width/2;for(var h=(d.v.j/100- .5)*f+d.C.height/2,l,k,w,r=0;c.levels.length>=r+2&&c.levels[r+1].width>e;)r++;var y;var z=[];for(y=c.levels.length-1;y>=r;){var ha=c.levels[y];if(ha.cache){var ua={lb:0,Ib:0};ua.Kb=ha.T-1;ua.Lb=ha.ea-1}else{ua={};l=-h/f*(ha.height/d.u.O);k=(-g+d.C.width)/e*(ha.width/d.u.O);var id=(-h+d.C.height)/f*(ha.height/d.u.O);ua.lb=Math.min(Math.max(0,Math.floor(-g/e*(ha.width/d.u.O))),ha.T-1);ua.Ib=Math.min(Math.max(0,Math.floor(l)),ha.ea-1);ua.Kb=Math.min(Math.max(0,Math.floor(k)),ha.T-1);ua.Lb=Math.min(Math.max(0, Math.floor(id)),ha.ea-1)}z[y]=ua;var sh=!0;for(k=ua.Ib;k<=ua.Lb;k++)for(l=ua.lb;l<=ua.Kb;l++)w=l+k*ha.T,id=ha.aa[w],id||(id=new x.Xd,ha.aa[w]=id),this.ti()?id.u||(this.Qi(id,ha,d.re(0,y,l,k)),d.Na=!0):this.m.Fc++,id.u&&id.u.complete||(sh=!1),id.visible=!0;ua.Gk=sh;y--}for(y=c.levels.length-1;y>=r;){ha=c.levels[y];if(z[y]&&0<=z[y].lb)for(ua=z[y],k=ua.Ib;k<=ua.Lb;k++)for(l=ua.lb;l<=ua.Kb;l++)w=l+k*ha.T,(id=ha.aa[w])&&id.u&&id.u.complete&&(d=g+(-c.Da+c.O*l)*e/ha.width,a.uniform4f(b,d,h+(-c.Da+c.O*k)* f/ha.height,id.u.width*e/ha.width,id.u.height*f/ha.height),id&&id.rb&&(a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.qd),a.bindTexture(a.TEXTURE_2D,id.rb),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.drawElements(a.TRIANGLES,6,a.UNSIGNED_SHORT,0)));y--}this.Xk()}};m.prototype.Xe=function(){var d=this.m.R; if(d&&this.jb)for(;0c;c++)this.faces[c]=new p}d.prototype.qp=function(c,a,b,e){for(var f=0;6>f;f++){var g;if(g=this.faces[f]){var h=[];h.push(new x.Ga(-1,-1,-1,0,0));h.push(new x.Ga(1,-1,-1,1,0));h.push(new x.Ga(1,1,-1,1,1));h.push(new x.Ga(-1,1,-1,0,1));for(var l=0;lf?h[l].La(-Math.PI/2*f):h[l].Fa(Math.PI/2*(4===f?-1:1)), e&&(h[l].ob(e.U*Math.PI/180),h[l].Fa(-e.pitch*Math.PI/180)),h[l].La(-c*Math.PI/180),h[l].Fa(a*Math.PI/180),h[l].ob(b*Math.PI/180);g.mb=0 uRadius) {\n alpha = 1.0;\n } else {\n alpha = 1.0 - ((uRadius - distFromCenter) / uSoftEdge);\n };\n }\n else {\n float alphaFromLeft = 1.0 - ((gl_FragCoord.x -(uIrisCenter.x - uRectDim.x)) / uSoftEdge);\n float alphaFromRight = 1.0 - (((uIrisCenter.x + uRectDim.x) - gl_FragCoord.x) / uSoftEdge);\n float alphaFromTop = 1.0 - ((gl_FragCoord.y -(uIrisCenter.y - uRectDim.y)) / uSoftEdge);\n float alphaFromBottom = 1.0 - (((uIrisCenter.y + uRectDim.y) - gl_FragCoord.y) / uSoftEdge);\n alpha = max(max(alphaFromLeft, alphaFromRight), max(alphaFromTop, alphaFromBottom));\n }\n gl_FragColor = vec4(textureColor.x, textureColor.y, textureColor.z, alpha);\n}\n"); d.compileShader(a);d.getShaderParameter(a,d.COMPILE_STATUS)||(alert(d.getShaderInfoLog(a)),a=null);this.Ua=d.createProgram();d.attachShader(this.Ua,c);d.attachShader(this.Ua,a);d.linkProgram(this.Ua);d.getProgramParameter(this.Ua,d.LINK_STATUS)||alert("Could not initialise shaders");this.Ua.ja=d.getAttribLocation(this.Ua,"aVertexPosition");d.enableVertexAttribArray(this.Ua.ja);this.Ua.Ma=d.getAttribLocation(this.Ua,"aTextureCoord");d.enableVertexAttribArray(this.Ua.Ma);a=d.createShader(d.FRAGMENT_SHADER); d.shaderSource(a,"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nvarying vec2 vTextureCoord;\nuniform float uPercent;\nuniform int uDirection;\nuniform vec2 uCanvasDimensions;\nuniform float uSoftEdge;\nuniform sampler2D uSampler;\nvoid main(void) {\n vec4 textureColor = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));\n float alpha = 0.0;\n if (uDirection == 1) {\n\t if (gl_FragCoord.x > uPercent) {\n alpha = 1.0; \n } else {\n alpha = 1.0 - ((uPercent - gl_FragCoord.x) / uSoftEdge);\n }\n }\n if (uDirection == 2) {\n\t if (gl_FragCoord.x < uCanvasDimensions.x - uPercent) {\n alpha = 1.0; \n } else {\n alpha = 1.0 - ((gl_FragCoord.x - (uCanvasDimensions.x - uPercent)) / uSoftEdge);\n }\n }\n if (uDirection == 3) {\n\t if (gl_FragCoord.y < uCanvasDimensions.y - uPercent) {\n alpha = 1.0; \n } else {\n alpha = 1.0 - ((gl_FragCoord.y - (uCanvasDimensions.y - uPercent)) / uSoftEdge);\n }\n }\n if (uDirection == 4) {\n\t if (gl_FragCoord.y > uPercent) {\n alpha = 1.0; \n } else {\n alpha = 1.0 - ((uPercent - gl_FragCoord.y) / uSoftEdge);\n }\n }\n gl_FragColor = vec4(textureColor.x, textureColor.y, textureColor.z, alpha);\n}\n"); d.compileShader(a);d.getShaderParameter(a,d.COMPILE_STATUS)||(alert(d.getShaderInfoLog(a)),a=null);this.Za=d.createProgram();d.attachShader(this.Za,c);d.attachShader(this.Za,a);d.linkProgram(this.Za);d.getProgramParameter(this.Za,d.LINK_STATUS)||alert("Could not initialise shaders");this.Za.ja=d.getAttribLocation(this.Za,"aVertexPosition");d.enableVertexAttribArray(this.Za.ja);this.Za.Ma=d.getAttribLocation(this.Za,"aTextureCoord");d.enableVertexAttribArray(this.Za.Ma)};m.prototype.Mc=function(){var d= this.m.R;if(!d)return!1;if(this.uc=d.createFramebuffer()){d.bindFramebuffer(d.FRAMEBUFFER,this.uc);this.uc.width=1024;this.uc.height=1024;this.gf=d.createTexture();d.bindTexture(d.TEXTURE_2D,this.gf);d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MIN_FILTER,d.LINEAR);d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MAG_FILTER,d.LINEAR);d.texImage2D(d.TEXTURE_2D,0,d.RGBA,this.uc.width,this.uc.height,0,d.RGBA,d.UNSIGNED_BYTE,null);var c=d.createRenderbuffer();d.bindRenderbuffer(d.RENDERBUFFER,c);d.renderbufferStorage(d.RENDERBUFFER, d.DEPTH_COMPONENT16,this.uc.width,this.uc.height);d.framebufferTexture2D(d.FRAMEBUFFER,d.COLOR_ATTACHMENT0,d.TEXTURE_2D,this.gf,0);d.framebufferRenderbuffer(d.FRAMEBUFFER,d.DEPTH_ATTACHMENT,d.RENDERBUFFER,c);d.bindTexture(d.TEXTURE_2D,null);d.bindRenderbuffer(d.RENDERBUFFER,null);d.bindFramebuffer(d.FRAMEBUFFER,null);this.sb=d.createBuffer();d.bindBuffer(d.ARRAY_BUFFER,this.sb);d.bufferData(d.ARRAY_BUFFER,new Float32Array([-1,-1,0,1,-1,0,-1,1,0,1,1,0]),d.STATIC_DRAW);this.sb.itemSize=3;this.sb.ie= 4;this.dg=d.createBuffer();d.bindBuffer(d.ARRAY_BUFFER,this.dg);d.bufferData(d.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,1,1]),d.STATIC_DRAW);return!0}return!1};m.prototype.tn=function(d){var c=this.m.R,a=this.m.zb;if(this.Cd){c.useProgram(this.Ba);c.bindBuffer(c.ARRAY_BUFFER,this.sb);c.vertexAttribPointer(this.Ba.ja,this.sb.itemSize,c.FLOAT,!1,0,0);c.bindBuffer(c.ARRAY_BUFFER,this.dg);c.vertexAttribPointer(this.Ba.Ma,2,c.FLOAT,!1,0,0);c.enableVertexAttribArray(this.Ba.ja);c.enableVertexAttribArray(this.Ba.Ma); c.activeTexture(c.TEXTURE0);c.bindTexture(c.TEXTURE_2D,this.gf);a=1+(this.Hb-1)*d;var b=c.getUniformLocation(this.Ba,"uAlpha");c.uniform1f(b,1);b=c.getUniformLocation(this.Ba,"uZoomIn");c.uniform1i(b,1);b=c.getUniformLocation(this.Ba,"uZoomCenter");var e=.5+(this.ci-.5)*Math.sqrt(d),f=.5+(this.di-.5)*Math.sqrt(d);0>e-.5/a&&(e=.5/a);0>f-.5/a&&(f=.5/a);1e-.5/this.Hb&&(e=.5/this.Hb);0>f-.5/this.Hb&&(f=.5/this.Hb);1>16&255)/255,(this.sf>>8&255)/255,(this.sf&255)/255),b=c.getUniformLocation(this.gb,"uZoomIn"),c.uniform1i(b,1==this.sa||2==this.sa||6==this.sa?1:0),b=c.getUniformLocation(this.gb,"uZoomCenter"),c.uniform2f(b,e,f),e=c.getUniformLocation(this.gb,"uZoomFactor"),c.uniform1f(e,this.Hb),c.uniform1i(c.getUniformLocation(this.gb,"uSampler"),0);else if("irisround"==this.type||"irisroundcenter"==this.type||"irisrectangular"==this.type||"irisrectangularcenter"==this.type){c.useProgram(this.Ua); c.bindBuffer(c.ARRAY_BUFFER,this.sb);c.vertexAttribPointer(this.Ua.ja,this.sb.itemSize,c.FLOAT,!1,0,0);c.bindBuffer(c.ARRAY_BUFFER,this.dg);c.vertexAttribPointer(this.Ua.Ma,2,c.FLOAT,!1,0,0);c.activeTexture(c.TEXTURE0);c.bindTexture(c.TEXTURE_2D,this.gf);if(1==this.sa||2==this.sa||6==this.sa||"irisroundcenter"==this.type||"irisrectangularcenter"==this.type)var g=b=.5;else b=this.ci,g=this.di;var h=b*a.width,l=g*a.height;h=Math.max(h,a.width-h);l=Math.max(l,a.height-l);"irisround"==this.type||"irisroundcenter"== this.type?c.uniform1f(c.getUniformLocation(this.Ua,"uRadius"),(Math.sqrt(h*h+l*l)+this.Uc)*d):(h>l?(l=a.height/a.width*h+this.Uc,h+=this.Uc):(h=a.width/a.height*l+this.Uc,l+=this.Uc),c.uniform2f(c.getUniformLocation(this.Ua,"uRectDim"),h*d,l*d));d=c.getUniformLocation(this.Ua,"uSoftEdge");c.uniform1f(d,this.Uc);c.uniform1i(c.getUniformLocation(this.Ua,"uRound"),"irisround"==this.type||"irisroundcenter"==this.type?1:0);c.uniform2f(c.getUniformLocation(this.Ua,"uIrisCenter"),b*a.width,g*a.height);b= c.getUniformLocation(this.Ua,"uZoomIn");c.uniform1i(b,1==this.sa||2==this.sa||6==this.sa?1:0);b=c.getUniformLocation(this.Ua,"uZoomCenter");c.uniform2f(b,e,f);e=c.getUniformLocation(this.Ua,"uZoomFactor");c.uniform1f(e,this.Hb);c.uniform1i(c.getUniformLocation(this.Ua,"uSampler"),0)}else if("wipeleftright"==this.type||"wiperightleft"==this.type||"wipetopbottom"==this.type||"wipebottomtop"==this.type||"wiperandom"==this.type)c.useProgram(this.Za),c.bindBuffer(c.ARRAY_BUFFER,this.sb),c.vertexAttribPointer(this.Za.ja, this.sb.itemSize,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this.dg),c.vertexAttribPointer(this.Za.Ma,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,this.gf),c.uniform1f(c.getUniformLocation(this.Za,"uPercent"),3>this.bk?d*(a.width+this.Uc):d*(a.height+this.Uc)),d=c.getUniformLocation(this.Za,"uSoftEdge"),c.uniform1f(d,this.Uc),c.uniform1i(c.getUniformLocation(this.Za,"uDirection"),this.bk),c.uniform2f(c.getUniformLocation(this.Za,"uCanvasDimensions"),a.width,a.height), b=c.getUniformLocation(this.Za,"uZoomIn"),c.uniform1i(b,1==this.sa||2==this.sa||6==this.sa?1:0),b=c.getUniformLocation(this.Za,"uZoomCenter"),c.uniform2f(b,e,f),e=c.getUniformLocation(this.Za,"uZoomFactor"),c.uniform1f(e,this.Hb),c.uniform1i(c.getUniformLocation(this.Za,"uSampler"),0);c.drawArrays(c.TRIANGLE_STRIP,0,this.sb.ie);c.useProgram(this.m.Aa.P);c.disable(c.BLEND);c.enable(c.DEPTH_TEST)}};return m}();x.Mo=p})(ggP2VR||(ggP2VR={})); (function(x){var p=function(){function m(d){this.Th=[];this.m=d;this.enabled=!1;this.Fb=2;this.ni=!1}m.prototype.cm=function(d){if(2==d.mode||3==d.mode||5==d.mode){var c=this.m.ua.currentTime;if(d.Jb&&d.Jb.gain&&d.Ub&&d.Sb&&d.Tb){var a=d.Ub.gain.value,b=d.Sb.gain.value,e=d.Tb.gain.value;d.Jb.gain.linearRampToValueAtTime(d.Jb.gain.value,c);d.Jb.gain.linearRampToValueAtTime(0,c+this.Fb);d.Ub.gain.linearRampToValueAtTime(a,c);d.Ub.gain.linearRampToValueAtTime(0,c+this.Fb);d.Sb.gain.linearRampToValueAtTime(b, c);d.Sb.gain.linearRampToValueAtTime(0,c+this.Fb);d.Tb.gain.linearRampToValueAtTime(e,c);d.Tb.gain.linearRampToValueAtTime(0,c+this.Fb)}}else c=this.m.ua.currentTime,d.Rb&&d.Rb.gain&&(d.Rb.gain.linearRampToValueAtTime(d.Rb.gain.value,c),d.Rb.gain.linearRampToValueAtTime(0,c+this.Fb));d.ui=!0;setTimeout(function(){d.We()},1E3*this.Fb+5)};m.prototype.rs=function(){for(var d=0;da.pa&&(a.pa=d)}1==d&&clearInterval(this.ms)};return m}();x.No=p})(ggP2VR||(ggP2VR={})); (function(x){var p=function(){function m(d){this.qh=[];this.nd=null;this.sc=[];this.jc=[];this.tc=[];this.bl=!0;this.m=d;this.tp()}m.prototype.eh=function(){var d=this.m.R,c=d.createShader(d.VERTEX_SHADER);d.shaderSource(c,"attribute vec3 aVertexPosition;\nvoid main(void) {\n gl_Position = vec4(aVertexPosition, 1.0);\n}\n");d.compileShader(c);d.getShaderParameter(c,d.COMPILE_STATUS)||(alert(d.getShaderInfoLog(c)),c=null);var a=d.createShader(d.FRAGMENT_SHADER);d.shaderSource(a,"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nvarying vec4 vColor;\nuniform vec2 uCanvasDimensions;\nuniform vec2 uFlareCenterPosition;\nuniform float uBlindingValue;\nuniform float uAspectRatio;\nvoid main(void) {\n float canvasDiag = sqrt( (uCanvasDimensions.x * uCanvasDimensions.x) + (uCanvasDimensions.y * uCanvasDimensions.y) );\n vec2 diff = uFlareCenterPosition - gl_FragCoord.xy;\n diff.y = diff.y * uAspectRatio;\n float distFromFlarePoint = sqrt( (diff.x * diff.x) + (diff.y * diff.y) );\n float factor = (distFromFlarePoint / canvasDiag) / 10.0;\n gl_FragColor = vec4(1.0, 1.0, 1.0, pow(((1.0 - factor) * 0.8) * uBlindingValue, 2.0));\n}\n"); d.compileShader(a);d.getShaderParameter(a,d.COMPILE_STATUS)||(alert(d.getShaderInfoLog(a)),a=null);this.xc=d.createProgram();d.attachShader(this.xc,c);d.attachShader(this.xc,a);d.linkProgram(this.xc);d.getProgramParameter(this.xc,d.LINK_STATUS)||alert("Could not initialise shaders");this.xc.ja=d.getAttribLocation(this.xc,"aVertexPosition");d.enableVertexAttribArray(this.xc.ja);a=d.createShader(d.VERTEX_SHADER);c=d.createShader(d.VERTEX_SHADER);d.shaderSource(a,"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nattribute vec3 aVertexPosition;\nvarying vec4 vColor;\nuniform vec2 uCirclePosition;\nuniform float uCircleRadius;\nuniform vec2 uCanvasDimensions2;\nuniform float uAspectRatio;\nvoid main(void) {\n vec2 circleOnScreen = aVertexPosition.xy * uCircleRadius + uCirclePosition;\n circleOnScreen.y = circleOnScreen.y / uAspectRatio;\n vec2 circleNorm = (circleOnScreen / uCanvasDimensions2) * 2.0 - vec2(1.0, 1.0);\n gl_Position = vec4(circleNorm.x, circleNorm.y, 0.0, 1.0);\n}\n"); d.compileShader(a);d.getShaderParameter(a,d.COMPILE_STATUS)||(alert(d.getShaderInfoLog(a)),a=null);d.shaderSource(c,"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nattribute vec3 aVertexPosition;\nvarying vec4 vColor;\nuniform vec2 uCirclePosition;\nuniform float uCircleRadius;\nuniform vec2 uCanvasDimensions2;\nuniform float uAspectRatio;\nvoid main(void) {\n vec2 circleOnScreen = aVertexPosition.xy * uCircleRadius + uCirclePosition;\n circleOnScreen.y = circleOnScreen.y / uAspectRatio;\n vec2 circleNorm = (circleOnScreen / uCanvasDimensions2) * 2.0 - vec2(1.0, 1.0);\n gl_Position = vec4(circleNorm.x, circleNorm.y, 0.0, 1.0);\n}\n"); d.compileShader(c);d.getShaderParameter(c,d.COMPILE_STATUS)||(alert(d.getShaderInfoLog(c)),a=null);var b=d.createShader(d.FRAGMENT_SHADER);d.shaderSource(b,"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nvarying vec4 vColor;\nuniform vec2 uCircleTexturePosition;\nuniform vec3 uCircleColor;\nuniform float uCircleRadius;\nuniform float uCircleAlpha;\nuniform float uCircleSoftness;\nuniform float uAspectRatio;\nvoid main(void) {\n vec2 diff = uCircleTexturePosition - gl_FragCoord.xy;\n diff.y = diff.y * uAspectRatio;\n float distFromCircleCenter = sqrt( (diff.x * diff.x) + (diff.y * diff.y) );\n float softnessDistance = uCircleRadius * (1.0 - uCircleSoftness);\n if (distFromCircleCenter > uCircleRadius)\n {\n\t gl_FragColor = vec4(uCircleColor, 0.0);\n }\n else if (distFromCircleCenter <= (softnessDistance))\n {\n\t float factor = distFromCircleCenter / softnessDistance;\n\t gl_FragColor = vec4(uCircleColor, pow((1.0 - (0.2 * factor)) * uCircleAlpha, 1.8));\n }\n else\n {\n\t float factor = (distFromCircleCenter - softnessDistance) / (uCircleRadius - softnessDistance);\n\t gl_FragColor = vec4(uCircleColor, pow((0.8 - (0.8 * factor)) * uCircleAlpha, 1.8));\n }\n}\n"); d.compileShader(b);d.getShaderParameter(b,d.COMPILE_STATUS)||(alert(d.getShaderInfoLog(b)),b=null);this.Ca=d.createProgram();d.attachShader(this.Ca,a);d.attachShader(this.Ca,b);d.linkProgram(this.Ca);d.getProgramParameter(this.Ca,d.LINK_STATUS)||alert("Could not initialise shaders");this.Ca.ja=d.getAttribLocation(this.Ca,"aVertexPosition");d.enableVertexAttribArray(this.Ca.ja);a=d.createShader(d.FRAGMENT_SHADER);d.shaderSource(a,"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nvarying vec4 vColor;\nuniform vec2 uRingTexturePosition;\nuniform float uRingRadius;\nuniform float uRingAlpha;\nuniform float uAspectRatio;\nuniform sampler2D uSampler;\nvoid main(void) {\n vec2 diff = uRingTexturePosition - gl_FragCoord.xy;\n diff.y = diff.y * uAspectRatio;\n float distFromRingCenter = sqrt( (diff.x * diff.x) + (diff.y * diff.y) );\n float factor = distFromRingCenter / uRingRadius;\n if (distFromRingCenter > uRingRadius)\n {\n\t gl_FragColor = vec4(1.0, 1.0, 1.0, 0.0);\n }\n else\n {\n vec4 textureColor = texture2D(uSampler, vec2(factor / uAspectRatio, 0.5));\n gl_FragColor = vec4(textureColor.x, textureColor.y, textureColor.z, uRingAlpha);\n }\n}\n"); d.compileShader(a);d.getShaderParameter(a,d.COMPILE_STATUS)||(alert(d.getShaderInfoLog(a)),a=null);this.Eb=d.createProgram();d.attachShader(this.Eb,c);d.attachShader(this.Eb,a);d.linkProgram(this.Eb);d.getProgramParameter(this.Eb,d.LINK_STATUS)||alert("Could not initialise shaders");this.Eb.ja=d.getAttribLocation(this.Eb,"aVertexPosition")};m.prototype.Mc=function(){var d=this.m.R;this.Jd=d.createBuffer();d.bindBuffer(d.ARRAY_BUFFER,this.Jd);d.bufferData(d.ARRAY_BUFFER,new Float32Array([-1,-1,0,1, -1,0,1,1,0,-1,1,0]),d.STATIC_DRAW);this.Jd.itemSize=3;this.Jd.ie=4;this.Ff=d.createBuffer();d.bindBuffer(d.ARRAY_BUFFER,this.Ff);for(var c=[0,0,0],a=2*Math.PI/6,b=Math.PI/180*35,e=1,f=b;f<=b+2*Math.PI;f+=a)c.push(Math.sin(f)),c.push(-Math.cos(f)),c.push(0),e++;d.bufferData(d.ARRAY_BUFFER,new Float32Array(c),d.STATIC_DRAW);this.Ff.itemSize=3;this.Ff.ie=e;this.In=d.createTexture();d.bindTexture(d.TEXTURE_2D,this.In);d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MIN_FILTER,d.LINEAR);d.texParameteri(d.TEXTURE_2D, d.TEXTURE_MAG_FILTER,d.LINEAR);d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_S,d.CLAMP_TO_EDGE);d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_T,d.CLAMP_TO_EDGE);c=document.createElement("canvas");c.width=100;c.height=1;a=c.getContext("2d");a.width=100;a.height=1;b=a.createLinearGradient(0,0,100,0);b.addColorStop(0,this.m.fa(0,0));b.addColorStop(.88,this.m.fa(0,0));b.addColorStop(.9,this.m.fa(16654848,1));b.addColorStop(.92,this.m.fa(16776448,1));b.addColorStop(.94,this.m.fa(4849466,1));b.addColorStop(.96, this.m.fa(131071,1));b.addColorStop(.98,this.m.fa(8190,1));b.addColorStop(1,this.m.fa(0,0));a.fillStyle=b;a.fillRect(0,0,100,1);d.texImage2D(d.TEXTURE_2D,0,d.RGBA,d.RGBA,d.UNSIGNED_BYTE,c)};m.prototype.Cr=function(){for(;0a.z){f=-b/a.z;e=a.x*f;f*=a.y;var y=Math.max(h,l);Math.abs(e)l?h:l;y=r.Il/100*((ua-ha)/ua);0>y&&(y=0);if(this.m.ia){d.useProgram(this.xc);d.bindBuffer(d.ARRAY_BUFFER,this.m.J.sb);d.vertexAttribPointer(this.xc.ja,this.m.J.sb.itemSize,d.FLOAT,!1,0,0);var id=d.getUniformLocation(this.xc,"uCanvasDimensions");d.uniform2f(id,d.drawingBufferWidth,d.drawingBufferHeight);d.uniform2f(d.getUniformLocation(this.xc, "uFlareCenterPosition"),d.drawingBufferWidth/h*e,l-d.drawingBufferHeight/l*f);d.uniform1f(d.getUniformLocation(this.xc,"uBlindingValue"),y);id=d.getUniformLocation(this.xc,"uAspectRatio");d.uniform1f(id,this.m.J.Sh?d.drawingBufferWidth/d.drawingBufferHeight:d.drawingBufferWidth/d.drawingBufferHeight/(h/l));d.drawArrays(d.TRIANGLE_STRIP,0,this.m.J.sb.ie)}else id=this.Z.createRadialGradient(e,f,1,e,f,z),id.addColorStop(0,"rgba(255, 255, 255, "+y+")"),id.addColorStop(.5,"rgba(255, 255, 255, "+.8*y+")"), id.addColorStop(1,"rgba(255, 255, 255, "+.6*y+")"),this.Z.fillStyle=id,this.Z.fillRect(0,0,this.Z.width,this.Z.height);if(0!=Number(r.type)&&!this.m.J.Sh){y=h/2-e;z=l/2-f;var sh=1,db=Number(r.type)-1;ha<.35*ua&&(sh=ha/(.35*ua),sh*=sh);ha>.7*ua&&(sh=(ua-ha)/(.3*ua));sh*=r.alpha/100;if(0tf&&(tf=0);var hl=gl.color;if(8==db||9==db||10==db)hl=r.color;if(this.m.ia)d.useProgram(this.Ca),d.bindBuffer(d.ARRAY_BUFFER, this.Ff),d.vertexAttribPointer(this.Ca.ja,this.Ff.itemSize,d.FLOAT,!1,0,0),id=d.getUniformLocation(this.Ca,"uCanvasDimensions2"),d.uniform2f(id,d.drawingBufferWidth,d.drawingBufferHeight),d.uniform2f(d.getUniformLocation(this.Ca,"uCirclePosition"),d.drawingBufferWidth/h*(e+y*gl.A),d.drawingBufferWidth/h*(l-(f+z*gl.A))),d.uniform2f(d.getUniformLocation(this.Ca,"uCircleTexturePosition"),d.drawingBufferWidth/h*(e+y*gl.A),l-(f+z*gl.A)),d.uniform1f(d.getUniformLocation(this.Ca,"uCircleRadius"),ua),d.uniform3f(d.getUniformLocation(this.Ca, "uCircleColor"),(hl>>16&255)/255,(hl>>8&255)/255,(hl&255)/255),d.uniform1f(d.getUniformLocation(this.Ca,"uCircleAlpha"),tf),d.uniform1f(d.getUniformLocation(this.Ca,"uCircleSoftness"),.1),id=d.getUniformLocation(this.Ca,"uAspectRatio"),d.uniform1f(id,d.drawingBufferWidth/d.drawingBufferHeight/(h/l)),d.drawArrays(d.TRIANGLE_FAN,0,this.Ff.ie);else{this.Z.save();this.Z.translate(e+y*gl.A,f+z*gl.A);id=this.Z.createRadialGradient(0,0,1,0,0,1.1*ua);id.addColorStop(0,this.m.fa(hl,tf));id.addColorStop(.65, this.m.fa(hl,.9*tf));id.addColorStop(.8,this.m.fa(hl,.7*tf));id.addColorStop(1,this.m.fa(hl,.2*tf));this.Z.beginPath();hl=2*Math.PI/6;gl=Math.PI/180*35;var il=!0;for(tf=gl;tf<=gl+2*Math.PI;tf+=hl)il?(this.Z.moveTo(ua*Math.sin(tf),ua*Math.cos(tf)),il=!1):this.Z.lineTo(ua*Math.sin(tf),ua*Math.cos(tf));this.Z.closePath();this.Z.fillStyle=id;this.Z.fill();this.Z.restore()}}if(0tf&&(tf=0);hl=gl.color; if(8==db||9==db||10==db)hl=r.color;this.m.ia?(d.useProgram(this.Ca),d.bindBuffer(d.ARRAY_BUFFER,this.Jd),d.vertexAttribPointer(this.Ca.ja,this.Jd.itemSize,d.FLOAT,!1,0,0),id=d.getUniformLocation(this.Ca,"uCanvasDimensions2"),d.uniform2f(id,d.drawingBufferWidth,d.drawingBufferHeight),id=d.getUniformLocation(this.Ca,"uCirclePosition"),d.uniform2f(id,d.drawingBufferWidth/h*(e+y*gl.A),d.drawingBufferWidth/h*(l-(f+z*gl.A))),id=d.getUniformLocation(this.Ca,"uCircleTexturePosition"),d.uniform2f(id,d.drawingBufferWidth/ h*(e+y*gl.A),l-(f+z*gl.A)),id=d.getUniformLocation(this.Ca,"uCircleRadius"),d.uniform1f(id,ua),d.uniform3f(d.getUniformLocation(this.Ca,"uCircleColor"),(hl>>16&255)/255,(hl>>8&255)/255,(hl&255)/255),d.uniform1f(d.getUniformLocation(this.Ca,"uCircleAlpha"),tf),d.uniform1f(d.getUniformLocation(this.Ca,"uCircleSoftness"),gl.G),id=d.getUniformLocation(this.Ca,"uAspectRatio"),d.uniform1f(id,d.drawingBufferWidth/d.drawingBufferHeight/(h/l)),d.drawArrays(d.TRIANGLE_FAN,0,this.Jd.ie)):(this.Z.save(),this.Z.translate(e+ y*gl.A,f+z*gl.A),id=this.Z.createRadialGradient(0,0,1,0,0,ua),id.addColorStop(0,this.m.fa(hl,tf)),id.addColorStop(1-gl.G,this.m.fa(hl,.8*tf)),id.addColorStop(1,this.m.fa(hl,0)),this.Z.beginPath(),this.Z.arc(0,0,ua,0,2*Math.PI,!1),this.Z.closePath(),this.Z.fillStyle=id,this.Z.fill(),this.Z.restore())}if(0tf&&(tf=0),this.m.ia?(d.useProgram(this.Eb),d.activeTexture(d.TEXTURE0),d.bindTexture(d.TEXTURE_2D, this.In),d.bindBuffer(d.ARRAY_BUFFER,this.Jd),d.vertexAttribPointer(this.Eb.ja,this.Jd.itemSize,d.FLOAT,!1,0,0),id=d.getUniformLocation(this.Eb,"uCanvasDimensions2"),d.uniform2f(id,h,l),id=d.getUniformLocation(this.Eb,"uCirclePosition"),d.uniform2f(id,e+y*r.A,l-(f+z*r.A)),id=d.getUniformLocation(this.Eb,"uRingTexturePosition"),d.uniform2f(id,d.drawingBufferWidth/h*(e+y*r.A),l-(f+z*r.A)),id=d.getUniformLocation(this.Eb,"uCircleRadius"),d.uniform1f(id,ua),d.uniform2f(d.getUniformLocation(this.Eb,"uRingPosition"), e+y*r.A,l-(f+z*r.A)),d.uniform1f(d.getUniformLocation(this.Eb,"uRingRadius"),ua),d.uniform1f(d.getUniformLocation(this.Eb,"uRingAlpha"),tf),id=d.getUniformLocation(this.Eb,"uAspectRatio"),d.uniform1f(id,d.drawingBufferWidth/d.drawingBufferHeight/(h/l)),d.uniform1i(d.getUniformLocation(this.Eb,"uSampler"),0),d.drawArrays(d.TRIANGLE_FAN,0,this.Jd.ie)):(this.Z.save(),this.Z.translate(e+y*r.A,f+z*r.A),id=this.Z.createRadialGradient(0,0,0,0,0,ua),id.addColorStop(0,this.m.fa(16777215,0)),id.addColorStop(.88, this.m.fa(0,0)),id.addColorStop(.9,this.m.fa(16654848,tf)),id.addColorStop(.92,this.m.fa(16776448,tf)),id.addColorStop(.94,this.m.fa(4849466,tf)),id.addColorStop(.96,this.m.fa(131071,tf)),id.addColorStop(.98,this.m.fa(8190,tf)),id.addColorStop(1,this.m.fa(0,0)),this.Z.beginPath(),this.Z.arc(0,0,ua,0,2*Math.PI,!1),this.Z.closePath(),this.Z.fillStyle=id,this.Z.fill(),this.Z.restore())}this.m.ia&&(d.useProgram(this.m.Aa.P),d.disable(d.BLEND),d.enable(d.DEPTH_TEST))}}}};return m}();x.Lo=p})(ggP2VR||(ggP2VR= {}));var THREE; (function(x){var p=function(){function m(d){this.xd=[];this.qa={x:0,y:0};this.Qc={x:0,y:0};this.xh=0;this.ne=null;this.kk=!1;this.sl=this.Te=0;this.xk=this.Bj=!1;this.m=null;this.Yk=!0;this.Gf=1;this.Fi=[];this.frustumCulled=!1;this.dh=0;this.Oj=this.Do=this.qn=!1;this.Uf=[-1,-1,-1,-1];this.Ni=[];this.Pe=[];this.m=d;var c=this;setTimeout(function(){if(window.WebXRPolyfill&&window.Promise){var a={cardboardConfig:{BUFFER_SCALE:1}};Il&&(a.allowCardboardOnDesktop=!0);try{new window.WebXRPolyfill(a),d.N("WebXR Polyfill loaded!")}catch(b){}}c.Fq()}, 0);THREE?this.Hl():console.log("Three.js not available!")}m.prototype.vp=function(){this.init();this.animate()};m.prototype.Hl=function(){this.ll=new THREE.Matrix4;this.pn=new THREE.Euler};m.prototype.init=function(){"xr"in navigator||console.log("no WebXR support");if(THREE)if(this.Db)console.log("already set up!");else{this.ll||this.Hl();var d=this,c=this.pd=this.m.pd,a=this.Hr=new THREE.Scene,b=this.camera=new THREE.PerspectiveCamera(100,window.innerWidth/window.innerHeight,.001,2E4);108>THREE.REVISION&& (this.frustumCulled=!0);b.position.z=-.01;b.position.y=0;b.position.x=0;this.Db=b=new THREE.WebGLRenderer({depth:!0,logarithmicDepthBuffer:!0,alpha:!0,antialias:!0,stencil:!0});b.setClearColor(new THREE.Color(0),1);b.setPixelRatio(window.devicePixelRatio);b.setSize(window.innerWidth,window.innerHeight);b.outputEncoding=THREE.GammaEncoding;b.shadowMap.enabled=!1;c.appendChild(b.domElement);"xr"in navigator&&(b.xr.enabled=!0,b.xr.setReferenceSpaceType("local"));var e=this.Hg=new THREE.Group;c=this.Wj= b.xr.getController(0);c.addEventListener("selectstart",function(g){d.rn(g)});c.addEventListener("selectend",function(){});c.visible=!0;e.add(c);b=this.Xj=b.xr.getController(1);b.addEventListener("selectstart",function(g){d.rn(g)});b.addEventListener("selectend",function(){});b.visible=!0;e.add(b);e.visible=!1;a.add(e);e=(new THREE.BufferGeometry).setFromPoints([new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,-1)]);var f=new THREE.LineBasicMaterial({color:14737632});e=new THREE.Line(e,f);e.name="line"; e.scale.z=5;c.add(e.clone());b.add(e.clone());this.Hh=new THREE.Raycaster;this.qa=new THREE.Vector2;this.Zf=new THREE.Group;this.Of=new THREE.Group;this.wd=new THREE.Group;this.gk=new THREE.Group;this.Pj=new THREE.Group;this.Zf.add(this.wd);this.Zf.add(this.gk);this.Zf.add(this.Of);a.add(this.Zf);a.add(this.Pj);a=document.createElement("canvas");a.width=64;a.height=64;c=a.getContext("2d");c.fillStyle="black";c.lineWidth=3;c.beginPath();c.arc(32,32,10,0,2*Math.PI);c.stroke();a=new THREE.Texture(a); a.needsUpdate=!0;a.encoding=THREE.sRGBEncoding;e=new THREE.PlaneBufferGeometry(2,2,8);a=new THREE.MeshBasicMaterial({map:a});a.transparent=!0;a=new THREE.Mesh(e,a);a.position.z=-50;this.Pj.add(a);window.addEventListener("resize",function(){d.ir()},!1);document.addEventListener("mouseup",function(){d.er()},!1);document.addEventListener("mousedown",function(g){d.cr(g)},!1);document.addEventListener("mousemove",function(g){d.dr(g)},!1)}else console.log("Three.js not available!")};m.prototype.$n=function(){var d= this.m;d.N("VR not found");d.L("vrchanged",{});d.L("playerstatechanged",{})};m.prototype.js=function(){this.xk=!0;var d=this.m;d.N("XR found");d.L("vrchanged",{});d.L("playerstatechanged",{})};m.prototype.Fq=function(){if(!this.Do){this.Do=!0;var d=this;if("xr"in navigator)navigator.xr.isSessionSupported("immersive-vr").then(function(c){c?d.js():d.$n()})["catch"](d.$n)}};m.prototype.gh=function(){return null!=this.ne?this.Db.xr.isPresenting:!1};m.prototype.Ne=function(){return this.xk&&THREE};m.prototype.gr= function(d){var c=this;this.fi();d.addEventListener("end",function(){c.fr()});console.log("XR Session started.");this.Db.xr.setSession(d);this.kk=!0;this.ne=d};m.prototype.fr=function(){console.log("XR Session ended.");this.kk=!1;this.ne=null;this.Vj()};m.prototype.Bf=function(){var d=this.m;if(this.xk){if(null===this.ne){var c=this;navigator.xr.requestSession("immersive-vr",{optionalFeatures:["local-floor","bounded-floor"]}).then(function(b){c.gr(b)})["catch"](function(b){console.log(b);console.warn("'immersive-vr' isn't supported, or an error occurred activating VR!"); c.Vj()})}this.wd&&this.wd.translateY(-this.dh);this.dh=0;if(1==this.Gf){var a=navigator.userAgent;0<=a.indexOf("OculusBrowser")&&(0<=a.indexOf("Pacific")&&(this.Gf=1.7),0<=a.indexOf("Quest")&&(this.Gf=1.5))}this.Db.xr.setFramebufferScaleFactor(this.Gf);d.Oc("Enter VR - scaled "+this.Gf)}else this.fi()};m.prototype.jr=function(){if(THREE&&this.Db){var d=this.m;d.ve=!0;d.$.style.display="none";d.$a.style.display="none";this.Db.domElement.style.display="inline";d.L("vrchanged",{});d.L("playerstatechanged", {})}};m.prototype.Vj=function(){if(THREE&&this.Db){var d=this.m;d.ve=!1;d.$.style.display="inline";d.$a.style.display="inline";this.Db.domElement.style.display="none";d.gj(0);d.Hc();d.update();d.L("vrchanged",{});d.L("playerstatechanged",{})}};m.prototype.Cf=function(){null!=this.ne&&this.ne.end()};m.prototype.oo=function(){this.gh()?this.Cf():this.Bf()};m.prototype.em=function(){var d=0,c=this.m;var a=1536;this.Db&&c.N("Canvas: "+a);a*=Math.pow(2,0);if(0= d+2&&!c.u.levels[d+1].Ve&&c.u.levels[d+1].width>a;)d++;c.N("Level "+d+" - width: "+c.u.levels[d].width);c.N(c.u.levels)}return d};m.prototype.Bm=function(d){var c=this.m,a=c.te[d];d="";if(a){a=a.firstChild;for(var b;a;)"input"==a.nodeName&&(b=a)&&(b=0a;a++)d=c.Ob(d,"c","vr"),d=c.Ob(d,"s","vr"),d=c.Ob(d,"r",0),d=c.Ob(d,"l",0),d=c.Ob(d, "x",0),d=c.Ob(d,"y",0),d=c.Ob(d,"v",0),d=c.Ob(d,"h",0);return c.eb(d)};m.prototype.ceilPowerOfTwo=function(d){return Math.pow(2,Math.ceil(Math.log(d)/Math.LN2))};m.prototype.loadTexture=function(d,c,a){var b=new THREE.ImageLoader;b.setCrossOrigin(this.m.crossOrigin);var e=this;b.load(c,function(f){var g=e.ceilPowerOfTwo(f.width),h=e.ceilPowerOfTwo(f.height);d.format=THREE.RGBFormat;d.encoding=THREE.sRGBEncoding;d.needsUpdate=!0;if(g==f.width&&h==f.height||!a)d.image=f;else{e.m.N("resizing "+f.width+ "/"+f.height+" -> "+g+"/"+h);var l=document.createElement("canvas");l.width=g;l.height=h;l.getContext("2d").drawImage(f,0,0,g,h);d.image=l}d.Km=!0;d.fe&&d.fe.Km&&(d.Yg.visible=!0,d.fe.Yg.visible=!0)});this.Fi.push(d)};m.prototype.fi=function(){if(THREE){var d=this.m;if(this.Oj)d.N("vr panorama aleady added!");else{this.em();var c=this.Of,a=this;d.N("add vr panorama");this.Xe();this.camera.layers.enable(1);c.setRotationFromEuler(this.pn);c.rotateX(d.Oa.pitch*Math.PI/180);c.rotateZ(-d.Oa.U*Math.PI/ 180);var b=new THREE.SphereBufferGeometry(2E4/3*1.5,16,16),e=(new THREE.TextureLoader).load(this.Bm(d.mk()));e.encoding=THREE.sRGBEncoding;e=new THREE.MeshBasicMaterial({map:e,side:THREE.DoubleSide});b=new THREE.Mesh(b,e);b.scale.x=-1;b.rotateZ(d.Oa.U*Math.PI/180);b.rotateX(-d.Oa.pitch*Math.PI/180);b.rotateY(-90*Math.PI/180);c.add(b);a.Zi=b;a.Oj=!0;setTimeout(function(){d.N("Adding Main Pano");a.Oj=!1;a.Xo();d.D.f?a.$o():a.Yo();a.Vo()});this.Hn();this.Yk=!0}}};m.prototype.$o=function(){var d=this.m, c=this.Of,a=2E4/3;if(d.Nd){var b=new THREE.VideoTexture(d.D.f);b.wrapS=THREE.ClampToEdgeWrapping;b.wrapT=THREE.ClampToEdgeWrapping;b.minFilter=THREE.LinearFilter;b.encoding=THREE.sRGBEncoding;var e=new THREE.SphereBufferGeometry(a,60,40);e.scale(-1,1,1);for(var f=e.attributes.uv.array,g=1;ga)for(var g=d.u.levels[a],h=0;6>h;h++){c[h]=new THREE.Group;for(var l=0;lh?c[h].rotation.y=-h*Math.PI/2:c[h].rotation.x=(4==h?1:-1)*Math.PI/2;b.add(c[h])}else for(a=d.ff,h=0;6>h;h++)for(c[h]=new THREE.Group,w=0;wh?c[h].rotation.y=-h*Math.PI/2:c[h].rotation.x=(4==h?1:-1)*Math.PI/2,b.add(c[h])};m.prototype.Xo=function(){var d=this.m,c=this.wd;new x.Ga(0,0,-100);for(var a=d.H.rj,b=0;b=e.distance?5:1>e.distance?1:5>e.distance? e.distance:5;if(e.ad){var l=.005,k=(new THREE.TextureLoader).load(e.ad);k.encoding=THREE.sRGBEncoding;var w=new THREE.MeshBasicMaterial({map:k});if(e.pg){h=100;g=2*h*Math.tan(e.fov/2*Math.PI/180);var r=new THREE.PlaneBufferGeometry(g,g*e.Hd/e.De,1,1);w.transparent=!0;w.opacity=1}else r=new THREE.PlaneBufferGeometry(l*e.De,l*e.Hd,1,1),w.transparent=!0,w.opacity=.25;g=l*e.Hd/2;w.side=THREE.DoubleSide}else r=new THREE.SphereBufferGeometry(.2,16,16),k=(new THREE.TextureLoader).load(this.Bm(f)),k.encoding= THREE.sRGBEncoding,w=new THREE.MeshBasicMaterial({map:k}),w.transparent=!0,w.opacity=.25;f=new THREE.Mesh(r,w);l=e.title;if(a.enabled&&""!=l){r=document.createElement("canvas");r.width=256;r.height=32;k=r.getContext("2d");this.Rh||(this.Rh=document.createElement("canvas"),this.Rh.width=r.width,this.Rh.height=r.height);var y=this.Rh.getContext("2d");y.clearRect(0,0,r.width,r.height);y.font="16px Helvetica";y.textAlign="center";y.textBaseline="top";w=y.measureText(l);var z=w.width;0d.clientX&&50>d.clientY&&this.m.Cf();0this.Lq+1E3){var g=this.Dk.userData;g&&g.url&&this.m.jd(g.url,g.target)}}else this.Dk=null;for(g=0;gl&&(this.Jh(20),this.Uf[g]=h);.3h?(f=!0,-1!=this.Pe[g]&&(this.Pe[g]=-1,this.Ni[g]=Date.now()-1E4)):this.Pe[g]=0,0!=this.Pe[g]&&400>";this.cube=new x.Po;this.ol=!1;this.Eg=function(f,g){if(0==f.length)return f;var h;var l=[];var k=g.$i(f[0])-0;for(h=0;hz&&(z=0);1k||l.push(f[w]);l.push(ha)}k=y}return l};this.xn=new p;this.dl=0;this.rc=!1;this.Oi=-1;this.Ug=function(f){return f?this.fh()&&(f.clientX||f.clientY)?{x:f.clientX,y:f.clientY}:f.pageX||f.pageY?{x:f.pageX,y:f.pageY}:f.clientX||f.clientY?{x:f.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,y:f.clientY+document.body.scrollTop+ document.documentElement.scrollTop}:f.touches&&f.touches[0]?{x:f.touches[0].pageX,y:f.touches[0].pageY}:{x:0,y:0}:{x:0,y:0}};this.Vi=1;this.Dp=this.yi=this.Zm=this.fk=this.Uk=this.aj=0;this.$m=!1;this.ce=!0;this.kb=new x.ei(this);this.kb.Jf=!1;this.Zl();if(7=b&&(this.da.blendtime=b));a.hasOwnProperty("waitfortransition")&&(this.da.zoomoutpause=1==a.waitfortransition);a.hasOwnProperty("zoomedfov")&&(b=Number(a.zoomedfov),.01<=b&&50>=b&&(this.da.zoomfov=b));a.hasOwnProperty("zoomafterinfov")&&(b=Number(a.zoomafterinfov),70<=b&&120>=b&&(this.da.zoomafterinfov= b));a.hasOwnProperty("zoomafteroutoutfov")&&(b=Number(a.zoomafteroutfov),.01<=b&&70>=b&&(this.da.zoomafteroutfov=b));a.hasOwnProperty("zoomspeed")&&(b=Number(a.zoomspeed),.01<=b&&99>=b&&(this.da.zoomspeed=b));a.hasOwnProperty("dipcolor")&&(this.da.blendcolor=a.dipcolor);a.hasOwnProperty("softedge")&&(a=Number(a.softedge),0<=a&&1E3>=a&&(this.da.softedge=a));this.Bg||this.Yj()};c.prototype.Tc=function(a,b,e){var f=b?Number(b):0;if(0!=a&&4!=a&&12!=a&&9!=a)this.Oc("Unsupported projection type: "+a);else if(b&& 0!==f&&4!==f&&12!==f&&9!==f)this.Oc("Unsupported projection2 type: "+f);else if(a==f&&(f=0),this.Bh=e?Number(e):1,this.Wa!=a||this.Dc!=f)this.Wa=a,this.Dc=f,this.Aa.Hi()};c.prototype.Sa=function(){return 0==this.Wa?4:this.Wa};c.prototype.Sj=function(a,b){if(0!=a&&4!=a&&12!=a&&9!=a)this.Oc("Unsupported projection type: "+a);else if(this.ia||0==a||4==a||this.Oc("Projection changes require WebGL!"),this.Sa()!=a){var e={};e.pan=this.pan.j;e.tilt=this.v.j;e.fov=this.fov.j;e.projection=a;e.timingFunction= 3;e.speed=b;a=this.Tg(a);e.fov=Math.min(a,e.fov);this.Ui(e)}};c.prototype.addListener=function(a,b){(this.Mg[a]=this.Mg[a]||[]).push(b)};c.prototype.L=function(a,b){if(a=this.Mg[a])for(var e=a.length,f=0;f>4;g=(g&15)<<4|h>>2;var k=(h&3)<<6| l;b+=String.fromCharCode(f);64!=h&&(b+=String.fromCharCode(g));64!=l&&(b+=String.fromCharCode(k))}while(e>3&7];if(!(h&64&&l)||g+l>e)return null;for(h&=63>>l;0Number(this.Ad))&&(this.ua=null);this.lc&&!this.ed&&12<=Number(this.Ad)&&13>Number(this.Ad)&&(this.ua=null);this.lc&&this.ed&&13==Number(this.Nf[0])&&(1==Number(this.Nf[1])||2<=Number(this.Nf[1]))&&(this.ua=null);this.Xh=this.Tm?10");window.console&&window.console.log(a)}};c.prototype.Ts=function(a){if(Il){var b= document.getElementById("gg_debug");b&&(b.innerHTML=a.toString()+"
");window.console&&window.console.warn(a)}};c.prototype.Oc=function(a){var b=document.getElementById("gg_debug");b&&(b.innerHTML=a+"
");window.console&&window.console.log(a)};c.prototype.Tn=function(a){this.Re=a};c.prototype.setCrossOrigin=function(a){this.crossOrigin=a};c.prototype.Lr=function(a){this.Mf=a};c.prototype.kq=function(){return this.Dh};c.prototype.Jr=function(a){this.$d=a};c.prototype.qm=function(){return this.$d}; c.prototype.Rp=function(){return this.hh};c.prototype.Mp=function(){return this.Ei};c.prototype.Sp=function(){return this.Rf};c.prototype.Op=function(){return this.B.active};c.prototype.Mr=function(a){this.hh=!!a};c.prototype.zi=function(){return this.isLoaded};c.prototype.Qp=function(){return!this.isLoaded};c.prototype.td=function(){return Number(this.C.height)/(2*Math.tan(Math.PI/180*(this.kc()/2)))};c.prototype.Xn=function(a,b){this.isFullscreen&&(a=window.innerWidth,b=window.innerHeight);var e= a-this.margin.left-this.margin.right,f=b-this.margin.top-this.margin.bottom;if(!(10>e||10>f)){var g=window.devicePixelRatio||1;this.fg&&(g=1);this.M.style.width=e+"px";this.M.style.height=f+"px";this.M.style.left=this.margin.left+"px";this.M.style.top=this.margin.top+"px";if(this.ia)try{this.$a&&(this.$a.style.position="absolute",this.$a.style.display="inline",this.$a.style.width=e+"px",this.$a.style.height=f+"px",this.$a.width=e*g,this.$a.height=f*g),this.R&&(this.zb.width=e*g,this.zb.height=f*g, this.R.viewport(0,0,this.R.drawingBufferWidth,this.R.drawingBufferHeight))}catch(h){alert(h)}this.yc&&(this.yc.style.width=a+"px",this.yc.style.height=b+"px",this.yc.width=a,this.yc.height=b);this.Ra&&(this.Ra.style.width=a+"px",this.Ra.style.height=b+"px",this.Ja.style.width=a+"px",this.Ja.style.height=b+"px",this.Ja.width=a,this.Ja.height=b,this.Ja.style.left=this.margin.left+"px",this.Ja.style.top=this.margin.top+"px",this.ta&&this.ta!=this.Ra&&(this.ta.style.width=a+"px",this.ta.style.height= b+"px"));this.Ta&&(e=this.Ta.nd,e.style.width=a+"px",e.style.height=b+"px",e.width=a,e.height=b,e.style.left=this.margin.left+"px",e.style.top=this.margin.top+"px");this.Kf&&(this.Na=!0);e=this.M.offsetWidth;f=this.M.offsetHeight;if(this.C.width!=e||this.C.height!=f)this.C.width=e,this.C.height=f;this.Os();this.ta&&this.ta.ggUpdateSize&&this.ta.ggUpdateSize(a,b);this.L("sizechanged",{w:a,h:b});this.L("playerstatechanged",{})}};c.prototype.kf=function(){this.ol=!0};c.prototype.Hc=function(){this.Xn(this.pd.offsetWidth, this.pd.offsetHeight)};c.prototype.yq=function(){var a={width:0,height:0};a.width=this.C.width;a.height=this.C.height;return a};c.prototype.Ke=function(){var a={x:0,y:0},b=this.M;if(b.offsetParent){do a.x+=b.offsetLeft,a.y+=b.offsetTop,b=b.offsetParent;while(b)}return a};c.prototype.Yr=function(a){this.la=a};c.prototype.Nr=function(a,b,e,f){this.margin.left=a;this.margin.top=b;this.margin.right=e;this.margin.bottom=f;this.la=this.skinObj;this.kf()};c.prototype.mp=function(a){0==a&&(this.K.Md=!1); 1==a&&(this.K.Md=!0);2==a&&(this.K.Md=!this.K.Md);this.L("viewmodechanged",{});this.L("playerstatechanged",{})};c.prototype.wq=function(){return 1==this.K.Md?1:0};c.prototype.Nl=function(a,b){this.H.mode=1==b&&0a.z?(y=-b/a.z,r=a.x*y,y*=a.y,Math.abs(r)a.z?(y=-b/a.z,r=this.C.width/2+a.x*y,y=this.C.height/2+a.y*y):y=r=0,a.Zb=r,a.Cb=y;k.ke=z}}}};c.prototype.Ip=function(){for(var a=[],b=0;bb&&(b=0);1>16&255)+","+(a>>8&255)+","+(a&255)+","+b+")"};c.prototype.mr=function(){var a;if(this.Ja&&(this.H.kh!=this.H.mode&&(this.H.kh=this.H.mode,this.Ja.style.visibility=0=this.H.mode&&(b=0);3==this.H.mode&&(b=this.H.va);for(a=0;ae!=f.Cb>e&&b<(f.Zb-l.Zb)*(e-l.Cb)/(f.Cb-l.Cb)+l.Zb&&(g=!g)}return g};c.prototype.li=function(a,b){var e=-1;if((0<=this.H.mode||0e.width?this.fov.j/2:4==b?180*Math.atan(4*e.height/(3*e.width)*Math.tan(this.fov.j/2*Math.PI/180))/Math.PI:4*e.height/(3*e.width)*(this.fov.j/2)}return 2*a};c.prototype.Lp=function(a,b){a||(a=this.kc());b||(b=this.Sa());return 4==b?180*Math.atan(this.aspect()*Math.tan(a/2*Math.PI/180))/Math.PI:a*this.aspect()};c.prototype.aspect=function(){return this.C.width/this.C.height};c.prototype.Kl=function(a){var b=this.fov.j;a/=2;var e=this.Sa();switch(this.fov.mode){case 0:b=2*a;break; case 1:a=4==e?180*Math.atan(this.C.width/this.C.height*Math.tan(a*Math.PI/180))/Math.PI:this.C.width/this.C.height*a;b=2*a;break;case 2:b=Math.sqrt(this.C.width*this.C.width+this.C.height*this.C.height);a=4==e?180*Math.atan(b/this.C.height*Math.tan(a*Math.PI/180))/Math.PI:b/this.C.height*a;b=2*a;break;case 3:4*this.C.height/3>this.C.width?b=2*a:(b=3*this.C.width/(4*this.C.height),a=4==e?180*Math.atan(b*Math.tan(a*Math.PI/180))/Math.PI:b*a,b=2*a)}return b};c.prototype.ij=function(a){this.fov.j=this.Kl(a)}; c.prototype.Dg=function(){if(!this.ve){var a=this.xn;a.pan=this.pan.j;a.v=this.v.j;a.fov=this.fov.j;this.wf(a);this.wf(a);this.wf(a);this.pan.j=a.pan;this.v.j=a.v;this.fov.j=a.fov}};c.prototype.wf=function(a){var b=this.C.width/this.C.height;if(2==this.Xa){if(0b&&(a.fov=b);50a.v-f&&(a.v=-50+f));e>g?a.pan=0:(a.pan+e>g&&(a.pan=g-e,this.B.active&&(this.B.speed=-this.B.speed,this.pan.d=0)),a.pan-e<-g&&(a.pan=-g+e,this.B.active&&(this.B.speed=-this.B.speed,this.pan.d=0)))}else{0g&&(a.fov=g);12==this.Sa()&&(2*e>h&&(a.fov=h/b),f=this.kc()/2,2*f>h&&(a.fov=h),f=this.kc()/2,e=b*f);2*f>this.v.max-this.v.min&&180>this.v.max-this.v.min&&(f=(this.v.max-this.v.min)/2,a.fov=this.Kl(2*f));90>this.v.max?a.v+f>this.v.max&&(a.v=this.v.max-f):a.v>this.v.max&&(a.v=this.v.max); -90b){g=90;h=Math.tan(f*Math.PI/180);var l=Math.tan((Math.abs(a.v)+f)*Math.PI/180);l=Math.sqrt(l*l+1)/Math.sqrt(h*h+1);f=180*Math.atan(l*Math.tan(e*Math.PI/180))/Math.PI;2*f>b&&(l=Math.tan(b*Math.PI/360)/Math.tan(e*Math.PI/180),b=l*Math.sqrt(h*h+1),l=Math.sqrt(b*b-1),g=180/Math.PI*Math.atan(l));a.pan+f>this.pan.max&&(a.pan=this.pan.max-f,this.B.active&&(this.B.speed=-this.B.speed, this.pan.d=0));a.pan-fg&&(a.v=g-e);a.v-e<-g&&(a.v=-g+e)}}};c.prototype.update=function(a){void 0===a&&(a=0);this.Na=!0;a&&(this.Kg=Math.max(1*a,this.Kg))};c.prototype.um=function(){return this.ra?!!this.ra.isTileLoading:0a;a++){var e;if(e=this.cube.faces[a]){var f="";this.Sc?(f+="translate3d("+this.C.width/2+"px,"+this.C.height/2+"px,0px) ",f+="perspective("+b+"px) ",f+="translate3d(0px,0px,"+b+"px) "):f+="translate3d("+this.C.width/2+"px,"+this.C.height/2+"px,"+b+"px) ";f+="rotateZ("+Number(this.U.j).toFixed(10)+"deg) ";f+="rotateX("+Number(this.v.j).toFixed(10)+"deg) ";f+="rotateY("+Number(-this.pan.j).toFixed(10)+ "deg) ";e.Im&&(f+=e.Im,e.mb||(f="translate3d(-10px,-10px,0px) scale(0.001,0.001)"),e.V.style[this.Va]=f)}}};c.prototype.Fs=function(){this.Dg();var a;this.yc&&(a=this.yc.getContext("2d"));if(this.C.width!==this.M.offsetWidth||this.C.height!==this.M.offsetHeight)this.C.width=this.M.offsetWidth,this.C.height=this.M.offsetHeight;if(a){var b=a.canvas.width/2,e=a.canvas.height/2,f=a.createRadialGradient(b,e,5,b,e,Math.max(b,e));f.addColorStop(0,"#333");f.addColorStop(1,"#fff");a.rect(0,0,a.canvas.width, a.canvas.height);a.fillStyle=f;a.fill();a.fillStyle="#f00";a.font="20px Helvetica";a.textAlign="center";a.fillText("Pan: "+this.pan.j.toFixed(1),b,e-60);a.fillText("Tilt: "+this.v.j.toFixed(1),b,e-30);a.fillText("Fov: "+this.fov.j.toFixed(1),b,e+0);a.fillText("Node: "+this.mk(),b,e+30);a.fillText("Title: "+this.rg.title,b,e+60)}};c.prototype.Gs=function(){this.Dg();if(this.C.width!==this.M.offsetWidth||this.C.height!==this.M.offsetHeight)this.C.width=this.M.offsetWidth,this.C.height=this.M.offsetHeight; this.ra&&this.ra.setPan&&(this.ra.setPan(this.pan.j),this.ra.setTilt(this.v.j),this.ra.setFov(this.fov.j))};c.prototype.ml=function(){this.Ja.style.visibility="inherit";this.ma||(this.ma=this.Ja.getContext("2d"));if(this.ma.width!=this.C.width||this.ma.height!=this.C.height)this.ma.width=this.C.width,this.ma.height=this.C.height;this.ma.clear?this.ma.clear():this.ma.clearRect(0,0,this.Ja.width,this.Ja.height);this.Fc=0;var a=100/this.fov.j;var b=this.u.width/this.u.height;var e=this.C.height*a*b; a*=this.C.height;var f=(this.pan.j/100/b-.5)*e+this.C.width/2;for(var g=(this.v.j/100-.5)*a+this.C.height/2,h,l,k,w,r=0;this.u.levels.length>=r+2&&this.u.levels[r+1].width>e;)r++;var y;var z=[];for(y=this.u.levels.length-1;y>=r;){b=this.u.levels[y];if(b.cache){var ha={lb:0,Ib:0};ha.Kb=b.T-1;ha.Lb=b.ea-1}else{ha={};var ua=-g/a*(b.height/this.u.O);h=(-f+this.C.width)/e*(b.width/this.u.O);l=(-g+this.C.height)/a*(b.height/this.u.O);ha.lb=Math.min(Math.max(0,Math.floor(-f/e*(b.width/this.u.O))),b.T-1); ha.Ib=Math.min(Math.max(0,Math.floor(ua)),b.ea-1);ha.Kb=Math.min(Math.max(0,Math.floor(h)),b.T-1);ha.Lb=Math.min(Math.max(0,Math.floor(l)),b.ea-1)}z[y]=ha;var id=!0;for(l=ha.Ib;l<=ha.Lb;l++)for(h=ha.lb;h<=ha.Kb;h++)w=h+l*b.T,ua=b.aa[w],ua||(ua=new x.Xd,b.aa[w]=ua),this.bc=r;){b=this.u.levels[y];if(z[y]&&0<=z[y].lb)for(ha=z[y],l=ha.Ib;l<=ha.Lb;l++)for(h=ha.lb;h<=ha.Kb;h++)w=h+l*b.T,(ua=b.aa[w])||(ua=b.aa[w]=new x.Xd),ua.u&&ua.u.complete&&(w=f+(-this.u.Da+this.u.O*h)*e/b.width,this.ma.drawImage(ua.u,w,g+(-this.u.Da+this.u.O*l)*a/b.height,ua.u.width*e/b.width,ua.u.height*a/b.height)),ua.visible=!0;y--}for(e=0;e=this.H.mode&&(e=0),3==this.H.mode&&(e=this.H.va),k=0;kthis.cube.faces.length))for(var a=0;6>a;a++){var b=this.cube.faces[a];var e=[];e.push(new x.Ga(-1,-1,-1,0,0));e.push(new x.Ga(1,-1,-1,1,0));e.push(new x.Ga(1,1,-1,1,1));e.push(new x.Ga(-1,1,-1,0,1));for(var f=0;4>f;f++)4>a?e[f].La(-Math.PI/2*a):e[f].Fa(Math.PI/2*(4==a?-1:1)),this.Oa&&(e[f].ob(this.Oa.U*Math.PI/180),e[f].Fa(-this.Oa.pitch*Math.PI/180)),e[f].Ye(-this.pan.j),e[f].Sd(this.v.j),e[f].Ze(this.U.j); e=this.Uj(e);b.mb=0=a+2&&!this.u.levels[a+1].Ve&&this.u.levels[a+1].width>e;)a++;return a};c.prototype.Ks=function(){var a=!1,b,e,f;if(this.C.width!==this.M.offsetWidth||this.C.height!==this.M.offsetHeight)this.C.width=this.M.offsetWidth,this.C.height=this.M.offsetHeight,this.M.style[this.Va+"OriginX"]=this.C.width/2+"px",this.M.style[this.Va+ "OriginY"]=this.C.height/2+"px",a=!0;var g=Math.round(this.td());if(this.lh!=g||a)this.lh=g,this.Sc||(this.M.style[this.Id]=g+"px",this.M.style[this.Id+"Origin"]="50% 50%");this.Fc=0;if(0b;b++){var l=this.cube.faces[b];l.mb&&(h=h+b+",")}h=this.hk();var k;for(k=this.u.levels.length-1;k>=h;){a=this.u.levels[k];var w=1;k==this.u.levels.length-1&&0==this.u.Da&&(w=this.u.O/(this.u.O-2));for(b=0;6>b;b++){l=this.cube.faces[b];var r=l.ag;if(l.mb&& 0=k);)z=z.nextSibling;this.M.insertBefore(r.V,z);r.bb=r.V.getContext("2d")}else if(this.mo=k);)z=z.nextSibling;this.M.insertBefore(r.V,z)}r.V&&(this.yk++,r.u=new Image,r.u.crossOrigin=this.crossOrigin,r.u.style[this.Va+"Origin"]="0% 0%",r.u.style.position="absolute",r.u.style.overflow="hidden",r.V.ee=k,r.u.onload=this.vs(r),r.u.onerror=this.tj(r),r.u.onabort=this.tj(r),r.u.setAttribute("src", this.re(b,k,e,f)),a.cache&&this.ic.push(r.u),this.bc++,this.Na=!0)}else this.Fc++;if(r.V){z="";this.Sc?(z+="translate3d("+this.C.width/2+"px,"+this.C.height/2+"px,0px) ",z+=" perspective("+g+"px) ",z+="translate3d(0px,0px,"+g+"px) "):z+="translate3d("+this.C.width/2+"px,"+this.C.height/2+"px,"+g+"px) ";z+="rotateZ("+Number(this.U.j).toFixed(10)+"deg) ";z+="rotateX("+Number(this.v.j).toFixed(10)+"deg) ";z+="rotateY("+Number(-this.pan.j).toFixed(10)+"deg) ";this.Oa&&(z+="rotateX("+Number(-this.Oa.pitch).toFixed(10)+ "deg) ",z+="rotateZ("+Number(this.Oa.U).toFixed(10)+"deg) ");z=4>b?z+("rotateY("+-90*b+"deg) "):z+("rotateX("+(4==b?-90:90)+"deg) ");if(this.eg){var ha=this.u.O/a.width*(2*k+1)*(this.Ag/this.u.O);ha=this.lc?2/Math.tan(this.fov.j*Math.PI/360)*ha:2*ha;z+=" scale("+ha*w*w+")"}else ha=1/(w*w);z+=" translate3d("+(1/w*e*this.u.O-this.u.Da-a.width/2)+"px,";z+=1/w*f*this.u.O-this.u.Da-a.width/2+"px,";z+=-a.width*ha/2+"px)";l.mb&&(r.visible=!0,r.V?r.V.style[this.Va]=z:r.u&&(r.u.style[this.Va]=z))}}}}k--}for(g= 0;gb||100>e)e=b=100;var f=window.devicePixelRatio||1;this.fg&&(f=1);this.M.style.width=b+"px";this.M.style.height=e+"px";this.$a.style.width=b+"px";this.$a.style.height=e+"px";this.$a.width=b*f;this.$a.height=e*f;this.$a.style.display="none";this.$a.style.touchAction= "none";this.M.insertBefore(this.$a,this.M.firstChild);var g=this.Eo;g.stencil=!0;g.depth=!0;g.powerPreference="high-performance";g.alpha=this.lc?!0:!1;this.ed&&10<=this.Nf[0]&&(g.antialias=!1,g.alpha=!1);a={};a.flags=g;a.canvas=this.$a;this.L("beforewebglcontext",a);this.R=this.$a.getContext("webgl",g);this.R||(this.R=this.$a.getContext("experimental-webgl",g));if(this.R){var h=this.R;this.zb.width=b*f;this.zb.height=e*f;h.clearColor(0,0,0,0);h.enable(this.R.DEPTH_TEST);h.viewport(0,0,500,500);h.clear(h.COLOR_BUFFER_BIT| h.DEPTH_BUFFER_BIT);4096<=h.getParameter(h.MAX_TEXTURE_SIZE)&&!this.hh&&(this.Re=1g;g++)l=this.Ob(l,"c",a),l=this.Ob(l,"s",k),l=this.Ob(l,"r",b),l=this.Ob(l,"l",h),l=this.Ob(l,"x",e),l=this.Ob(l,"y",f),l=this.Ob(l,"v",f),l=this.Ob(l,"h",e);return this.eb(l)};c.prototype.Wg=function(){return this.pan.j};c.prototype.jq=function(){return this.F.pan};c.prototype.zm=function(){for(var a=this.pan.j;-180>a;)a+=360;for(;180a;)a+=360;for(;180a&&-1E7b&&-1E7e&&-1E7e?Number(e):this.fov.j;this.F.speed=!isNaN(f)&&0=l?(this.fj(b,e,f),this.Tc(g)):(a=new x.tl,a.ab="__AutoMove",a.pe=this.zm(),a.Nh=this.v.j,a.Td=this.fov.j,a.Mh=this.Wa,a.Vd=b,a.qe=e,a.mg=f,a.Bd=g,a.Af=!1,a.Ee=!1,a.Fe=!1,0==h&&(a.Ee=!0),1==h&&(a.Af=!0,a.Ee=!0),2==h&&(a.Fe=!0),a.speed= l,this.F.Cl=this.I,this.I=this.mm(a),this.F.Dl=(new Date).getTime(),this.F.pl=!0,this.F.active=!0,this.F.aborted=!1,this.F.pan=b,this.F.v=e,this.F.fov=f,this.Yd=!1)};c.prototype.Uq=function(a){this.moveTo(this.pan.cb,this.v.cb,this.fov.cb,a)};c.prototype.Vq=function(a,b){var e={};e.pan=this.pan.cb;e.tilt=this.v.cb;e.fov=this.fov.cb;e.projection=this.Yi;e.timingFunction=b;e.speed=a;this.Ui(e)};c.prototype.Wo=function(a,b,e,f){var g=new x.ei(this);g.type="point";g.pan=b;g.v=e;g.id=a;g.f={};g.f.player= this;g.Df();g.f.hotspot=g;g.f.__div=document.createElement("div");g.f.__div.appendChild(f);this.W.push(g);g.f.__div.style.position="absolute";g.f.__div.style.left="-1000px";g.f.__div.style.top="-1000px";g.f.__div.mb=!0;this.Ra.insertBefore(g.f.__div,this.Ra.firstChild);this.Na=!0};c.prototype.Hs=function(a,b,e){for(var f=0;fa;)a+=360;b=e.cp()}e={};e.pan=a;e.tilt=b;return e};c.prototype.Nc=function(a){return a==this.control||a&&void 0!==a.ggPermeableMap&&1==a.ggPermeableMap?!0:a&&void 0!==a.ggPermeable&&0==a.ggPermeable?!1:a&&a.ggType&&("container"==a.ggType||"cloner"==a.ggType||"timer"==a.ggType)?!0:!1};c.prototype.Tj=function(a,b){var e=this.td(),f,g;for(f=0;fw;w++){switch(w){case 0:k.init(-g,-r,0);break;case 1:k.init(g,-r,0);break;case 2:k.init(g,r,0);break;case 3:k.init(-g,r,0)}k.Fa(h.Fa*Math.PI/180);k.La(-h.La*Math.PI/180);k.ob(h.ob*Math.PI/180);--k.z;k.Fa(-h.v*Math.PI/180);k.La(h.pan*Math.PI/180);k.La(-this.pan.j*Math.PI/180);k.Fa(this.v.j* Math.PI/180);k.ob(this.U.j*Math.PI/180);l.push(k.clone())}l=this.Uj(l);if(0k.z?(r=-e/k.z,g=this.C.width/2+k.x*r,r=this.C.height/2+k.y*r):r=g=0,k.Zb=g,k.Cb=r;if(this.Nm(l,a,b))return h}}return null};c.prototype.fh=function(){return document.webkitIsFullScreen||document.mozFullScreen||document.msFullscreenElement&&null!=document.msFullscreenElement||document.fullScreen};c.prototype.Tq=function(a){this.uo(a);window.focus();if(this.sd)this.sd.onclick();(this.He|| this.Ef&&this.Pf)&&this.wi();this.Qb=null;if(!this.K.mc&&!this.rc){a=a?a:window.event;if(a.which||0==a.which||1==a.which){var b=(new Date).getTime();if(this.le){this.Qb=this.le;this.Y.Qc=!0;this.Y.startTime=b;a.stopPropagation();return}if(this.Nc(a.target)){var e;(e=this.Tj(this.qa.x,this.qa.y))&&e.Le&&(this.Qb=e);this.Co(a.pageX,a.pageY);this.Y.Qc=!0;this.Y.startTime=b;a.preventDefault();this.Ea()}}this.ga.na.x=0;this.ga.na.y=0}};c.prototype.jf=function(a,b){var e=this.H.rj;e.enabled&&(this.ya!= this.kb&&0<=a&&0<=b&&""!=this.ya.title?(this.Ha.innerHTML=this.ya.title,this.Ha.style.color=this.fa(e.sj,e.qj),this.Ha.style.backgroundColor=e.background?this.fa(e.ec,e.dc):"transparent",this.Ha.style.border="solid "+this.fa(e.gc,e.fc)+" "+e.ji+"px",this.Ha.style.borderRadius=e.Mj+"px",this.Ha.style.textAlign="center",0a-this.Y.startTime&&0<=b&&20>b){var e=this.li(this.qa.x,this.qa.y);e&&(this.ya==this.kb&&this.Kh(e),this.po(e));b=Math.abs(this.ga.Pd.x-this.ga.oa.x)+Math.abs(this.ga.Pd.y-this.ga.oa.y);700>a-this.jh&&0<=b&&20>b?(e?this.qo(e):this.K.ck&&this.vj(),this.jh=0):this.jh=a;this.ga.Pd.x=this.ga.oa.x;this.ga.Pd.y=this.ga.oa.y}}};c.prototype.gn=function(a){if(!this.K.ge&&!this.rc&&(a=a?a:window.event,this.Nc(a.target))){var b=a.detail?-1*a.detail: a.wheelDelta/40;this.K.Rm&&(b=-b);a.axis&&(-1==this.Oi?this.Oi=a.axis:this.Oi!=a.axis&&(b=0));var e=0Math.abs(a.wheelDeltaY)&&(b=0);0!=b&&(this.Rj(e*this.K.bo,!0),this.update());a.preventDefault();this.Ea()}};c.prototype.Ds=function(a){a||(a=window.event);var b=a.touches,e=this.Ke();this.qa.x=b[0].pageX-e.x;this.qa.y=b[0].pageY-e.y;this.se=this.Qb=null;window.focus();this.Ei||(this.Ei=!0,this.L("hastouch",{}),this.L("playerstatechanged", {}));this.Wm||this.Oe||!(this.He||this.Ef&&this.Pf)||this.wi();if(!this.K.mc&&!this.rc){var f=(new Date).getTime();if(this.le)this.Qb=this.le,this.Y.cd=!0,this.Y.startTime=f,a.preventDefault(),this.Y.Eh=!0;else{if(!this.Y.cd&&b[0]){this.Y.startTime=f;this.Y.start.x=b[0].pageX;this.Y.start.y=b[0].pageY;this.Y.oa.x=b[0].pageX;this.Y.oa.y=b[0].pageY;this.vb=b[0].target;if(this.Nc(this.vb)){(f=this.Tj(this.qa.x,this.qa.y))&&f.Le&&(this.Qb=f);if(f=this.li(this.qa.x,this.qa.y))this.N(f),this.se=f,this.Kh(f), f=this.Ug(a),this.jf(f.x-e.x,f.y-e.y);this.Co(b[0].pageX,b[0].pageY);this.Y.fm=b[0].identifier;this.Y.cd=!0;a.preventDefault();this.Y.Eh=!0;this.Ea()}if(this.vb){e=this.vb;for(f=!1;e&&e!=this.control;){if(e.onmouseover)e.onmouseover();e.onmousedown&&!f&&(e.onmousedown(),f=!0);e=e.parentNode}f&&(a.preventDefault(),this.Y.Eh=!0)}}1this.fov.max&&(this.Ka.fov.zc=this.fov.max),this.Ka.fov.zcg){e=!0;this.Nc(this.vb)&&(a.preventDefault(),this.Qb&&(this.Qb.Le(),this.le=this.Qb.qb?this.Qb:null));if(this.vb){for(g=this.vb;g&&g!=this.control;)g.onclick&&(g.onclick(),"hotspot"!=g.$s&&(h=!0),e=!1),g=g.parentNode;h&&a.preventDefault()}g=Math.abs(this.Y.Pd.x-this.Y.oa.x)+Math.abs(this.Y.Pd.y-this.Y.oa.y);if(700>f-this.jh&&0<=g&&20>g){if(this.Nc(this.vb))if(a.preventDefault(), this.se)this.qo(this.se);else if(this.K.ck){var l=this;setTimeout(function(){l.vj()},1)}if(this.vb){for(g=this.vb;g&&g!=this.control;)g.ondblclick&&(g.ondblclick(),h=!0,e=!1),g=g.parentNode;h&&a.preventDefault()}this.jh=0}else this.jh=f;this.Y.Pd.x=this.Y.oa.x;this.Y.Pd.y=this.Y.oa.y}if(this.vb)for(g=this.vb;g&&g!=this.control;){if(g.onmouseout)g.onmouseout();if(g.onmouseup)g.onmouseup();g=g.parentNode}a=this.Ug(a);this.jf(a.x-b.x,a.y-b.y);this.se&&e&&this.po(this.se);this.jf(-1,-1);this.vb=null; this.Y.cd=!1;this.Kh(this.kb);this.se=null}};c.prototype.As=function(a){var b=this.Ke();this.K.mc||this.rc||(this.Y.cd=!1);this.se=null;this.Kh(this.kb);a=this.Ug(a);this.jf(a.x-b.x,a.y-b.y)};c.prototype.Xm=function(){return null!=this.vb||this.Y.cd||this.Y.Qc};c.prototype.hn=function(a){!this.Se&&window.MSGesture&&(this.N("setup gesture"),this.Se=new MSGesture,this.Se.target=this.control);this.Se&&this.Se.addPointer(a.pointerId)};c.prototype.om=function(a){this.uk=!0;this.Vi=1;this.K.mc||this.K.ge|| this.rc||(a.touches?(this.vb=a.touches.target,this.Nc(a.target)&&(a.preventDefault(),this.fov.prev=this.fov.j,this.Ea())):(a.preventDefault(),this.fov.prev=this.fov.j,this.Ea()))};c.prototype.Fp=function(a){this.K.mc||this.K.ge||this.rc||!this.Nc(a.target)||(a.preventDefault(),this.Ka.fov.active=!0,this.Ka.fov.zc=this.fov.prev/Math.sqrt(a.scale),4==this.Sa()&&2!=this.Xa&&this.Ka.fov.zc>this.fov.max&&(this.Ka.fov.zc=this.fov.max),this.update(),this.Ea())};c.prototype.Wq=function(a){this.K.mc||this.K.ge|| this.rc||(a.preventDefault(),1!=a.scale&&(this.Ka.fov.active=!0,this.Vi*=a.scale,this.Ka.fov.zc=this.fov.prev/Math.sqrt(this.Vi),4==this.Sa()&&2!=this.Xa&&this.Ka.fov.zc>this.fov.max&&(this.Ka.fov.zc=this.fov.max),this.update(),this.Ea()))};c.prototype.nm=function(a){this.K.mc||this.K.ge||this.rc||(this.Ka.fov.active=!1,a.preventDefault(),this.Ea(),this.Se&&this.Se.reset&&this.Se.reset())};c.prototype.Jq=function(a){this.K.rh||this.rc||(this.isFullscreen&&a.preventDefault(),this.Mi=a.keyCode,this.Ea())}; c.prototype.Kq=function(a){this.Mi&&(this.Mi=0,a.preventDefault())};c.prototype.br=function(){this.Mi=0};c.prototype.Ah=function(){this.isFullscreen&&(this.fh()||this.exitFullscreen(),this.fh()&&(this.$.style.left="0px",this.$.style.top="0px"))};c.prototype.hr=function(a,b,e,f){f?(this.ah.alpha=a,this.ah.beta=b,this.ah.gamma=e,this.ah.gamma+=90):(this.nb.alpha=a,this.nb.beta=b,this.nb.gamma=e,this.nb.gamma+=90);this.nb.orientation=window.orientation?1*parseInt(""+window.orientation,10):0;e=new x.vl; a=this.nb;e.Ye(-a.alpha);e.Ze(-a.beta);e.Sd(-a.gamma);e.Ze(90-a.orientation);1>e.Mb?-1this.nb.fadeIn&&(this.nb.fadeIn+=1,g=.1*this.nb.fadeIn); e=-e+this.nb.Te;this.af(g*e+(1-g)*this.Wg());this.bf(g*a+(1-g)*this.Bi());this.zo?this.gj(g*b+(1-g)*this.Dm()):this.gj(0);this.Dg();this.F.active=f}};c.prototype.po=function(a){this.la&&this.la.hotspotProxyClick&&this.la.hotspotProxyClick(a.id,a.url);""!=a.url&&(this.Ok(a.url,a.target),this.jf(-1,-1))};c.prototype.qo=function(a){this.la&&this.la.hotspotProxyDoubleClick&&this.la.hotspotProxyDoubleClick(a.id,a.url)};c.prototype.xi=function(){return Math.min(1,2*Math.tan(Math.PI*Math.min(this.fov.j, 90)/360))};c.prototype.un=function(){var a=this;setTimeout(function(){a.un()},100);9!=a.aj||a.Ii||window.requestAnimationFrame(function(){a.Ch();a.N("restart recover timer")});10k;)k+=360}e=k-l;2!=this.Xa&&(180e&&(e+=360));this.pan.j+=e*this.Fd}else this.pan.j=k;this.B.oh=this.pan.j;break;case 1:l=this.v.j;this.Yd&&3!=w.type?(f=k-l,this.v.j+=f*this.Fd):this.v.j=k;this.B.ph=this.v.j;break;case 2:l=this.fov.j,this.Yd&&3!=w.type?(g=k-l,this.fov.j+=g*this.Fd):this.fov.j=k,this.B.nh=this.fov.j}}b=this.Sa();for(h=Math.floor(a);!this.Hf(h,3)&&0a?(b=this.Tg(this.xg),this.fov.j>b?this.hi= a:(w=(a-this.hi)/this.Ij,w=Math.min(1,w),this.Tc(this.Wa,this.xg,1-w))):(0==h.Fb||w>h.Fb-.3?this.Tc(h.value):(w/=h.Fb,this.Tc(b,h.value,1-w)),this.B.cn=h.value);this.Yd&&(e=Math.sqrt(e*e+f*f+g*g),.3>e&&(this.Yd=!1,this.Fd=.02,this.wg=0),0this.wg&&(this.Fd+=.01,this.Fd=Math.min(this.Fd,1)),this.wg=e);h=Math.floor(a);if(h!=this.El)for(this.El=h,a=this.Gp(h),e=0;e=this.Ya.length&&(b=0),a=this.Ya[b];while(""!=this.B.Xf&&!this.Vg(a).tags.includes(this.B.Xf)&&a!=this.Qa);return a};c.prototype.qr=function(a){var b=this.F.speed;this.F.Ek&&(b=b*(a.getTime()-this.F.Ek)/ 60,5b&&(b=.2));this.F.Ek=a.getTime();this.B.Pg&&(this.Aa.ready()||4==this.Wa)&&this.zi()&&(this.B.Pg=!1,this.B.active=!0,this.yb.running=!0,this.yb.ik=!1);if(this.F.active||0!=this.F.Nb&&this.Aa.ready()){if(this.F.pl&&"__AutoMove"==this.I.ab){var e=a.getTime()-this.F.Dl;b=e/100;if(b>=this.I.length){if(this.jj(this.I.length),this.wa.splice(this.wa.indexOf(this.I),1),this.F.active=!1,this.I=this.F.Cl,this.F.Nb=0,this.fj(this.F.pan,this.F.v,this.F.fov),this.pan.$c=this.F.pan,this.v.$c=this.F.v, this.F.yh&&(this.F.yh=!1,this.B.Ti=!0,this.B.active=!0,this.L("autorotatechanged",{})),this.onMoveComplete)this.onMoveComplete()}else this.jj(b)}else{this.pan.d=this.F.pan-this.pan.j;if(360==this.pan.max-this.pan.min){for(;-180>this.pan.d;)this.pan.d+=360;for(;1805*e?e/f:.2,this.pan.d*=f,this.v.d*= f,this.fov.d*=f;this.pan.j+=this.pan.d;this.v.j+=this.v.d;this.U.j+=this.U.d;this.fov.j+=this.fov.d;0!=this.F.Nb&&(this.F.Nb!=this.Wa?(b=this.Tg(this.F.Nb),this.nk()>b?(this.fov.j+=-Math.max((2.5-1.7*Math.min(Math.sqrt(this.pan.d*this.pan.d+this.v.d*this.v.d+this.U.d*this.U.d)/e,1))*e,this.fov.d)-this.fov.d,this.F.fov=this.fov.j):(this.Dc=this.Wa,this.Wa=this.F.Nb,this.N("New projection from Target:"+this.Wa),this.Bh=this.F.Gh=0,this.Aa.Hi())):1>this.F.Gh?(this.F.Gh=Math.min(1,this.F.Gh+.05*b),this.Bh= this.F.Gh):(this.Dc=0,this.F.Nb=0,this.Aa.Hi()))}this.Sf=a.getTime();this.update()}else if(this.B.active){e=a.getTime()-this.B.startTime;this.B.Pithis.D.f.duration-this.D.f.currentTime&&(this.Kj=!0);f>=10*this.mf;)f-=10*this.mf;if(!g&&b>=this.I.length||g&&!e&&b>=this.I.length||g&&e&&(this.I.ab!=this.I.jn||this.I.Wi!= this.Qa)&&b>=this.I.length){this.jj(this.I.length);this.B.Od=0;this.nf=!1;if(this.yb.running){this.On();return}this.Yb=this.I.jn;this.Yb==this.I.ab&&this.Qa==this.I.Wi?1e.pan;)e.pan+=360;e.tilt=f.value;e.fov=g.value;e.projection=h?h.value:4}e.timingFunction=3;e.speed=1;this.F.yh=!0;this.Ui(e);this.B.active=!0}}else 0=1E3*this.B.Xi?11E3*this.B.timeout&&!this.B.Pg&&(this.B.Oh&&this.zi()||!this.B.Oh)&&(this.B.active=!0,this.B.startTime=a.getTime(),this.B.zd=0,this.L("autorotatechanged",{}),this.pan.d=0,this.v.d=0,this.fov.d=0),!this.Ka.enabled||this.Y.Ji()||0==this.pan.d&&0==this.v.d&&0==this.fov.d||(this.F.Gi=!0,this.pan.d*=.9,this.v.d*=.9,this.fov.d*=.9,this.pan.j+=this.pan.d,this.v.j+=this.v.d,this.Rj(this.fov.d),1E-4>this.pan.d*this.pan.d+this.v.d*this.v.d+this.fov.d*this.fov.d&&(this.pan.d=0,this.v.d=0, this.fov.d=0),this.update())};c.prototype.sr=function(a){var b=this.J;if(!b.Yn){if(b.Cd){var e=Math.max(0,a.getTime()-b.Io);e/=1E3*b.Ho;1<=e?(b.Cd=!1,this.dm(),b.fl=a.getTime(),this.ho(),b.ue=!0,0==b.vc||b.ug||(4==b.vc?(this.I=this.Sg(!0,b.df,b.ef,b.Wd),this.Yb=this.I.ab,this.B.active=!0,this.yb.running=!0):this.moveTo(b.df,b.ef,b.Wd,b.we,0,b.Bd))):b.tn(e)}else b.ue&&(e=Math.max(0,a.getTime()-b.fl),e/=1E3*b.zg,1<=e?(b.ue=!1,this.Sf=a.getTime(),this.update(),0!=b.vc&&b.ug&&(4==b.vc?(this.I=this.Sg(!0, b.df,b.ef,b.Wd),this.Yb=this.I.ab,this.B.active=!0,this.yb.running=!0):this.moveTo(b.df,b.ef,b.Wd,b.we,0,b.Bd)),4!=b.vc&&(this.dj(!1),this.B.active=b.xe,this.L("autorotatechanged",{}),b.xe=!1),this.B.zd=0,this.da&&this.Yj(),this.Bg=!1):b.tn(e));b=this.kr;b.fp&&(b.ri?a.getTime()-b.ek>=1E3*b.delay&&(b.ri=!1):(b.current+=b.md,0>b.current&&(b.current=0,b.md=-b.md,b.ri=!0,b.ek=a.getTime()),1b.ac[a]?(b.ac[a]+=.05,b.kd[a]b.ac[a]&&(b.ac[a]=b.kd[a],-1!=b.kj.indexOf(b.ub[a])&&(b.kj.splice(b.kj.indexOf(b.ub[a]),1),b.ub.splice(a,1),b.kd.splice(a,1),b.ac.splice(a,1)))));this.update()}if(2==b.mode)for(a=0;ae.va?(e.va+=b.md,e.hbe.va&&(e.va=e.hb)),this.update())}3==b.mode&& b.hb!=b.va&&(b.hb>b.va?(b.va+=b.md,b.hbb.va&&(b.va=b.hb)),this.update())};c.prototype.ur=function(){var a=this.Ka;this.Y.Ji()&&(this.K.Md?(a.na.x=.4*(this.ga.oa.x-a.oa.x),a.na.y=.4*(this.ga.oa.y-a.oa.y),a.oa.x+=a.na.x,a.oa.y+=a.na.y):(a.na.x=.1*-this.ga.na.x*this.K.sensitivity/8,a.na.y=.1*-this.ga.na.y*this.K.sensitivity/8),this.Ao(a.na.x,a.na.y),this.update());a.fov.active&&(this.Ll(.4*(a.fov.zc-this.fov.j)),.001>Math.abs(a.fov.zc-this.fov.j)/this.fov.j&&(a.fov.active= !1),this.update());if(a.enabled&&(0!=a.na.x||0!=a.na.y)&&!this.Y.Ji()){var b=.9*(1-a.Zk);a.na.x*=b;a.na.y*=b;this.F.Gi=!0;.01>a.na.x*a.na.x+a.na.y*a.na.y?(a.na.x=0,a.na.y=0):(this.Ao(a.na.x,a.na.y),this.update())}};c.prototype.rr=function(){if(this.K.Kn&&this.K.Md){var a=this.xn;a.pan=this.pan.j;a.v=this.v.j;a.fov=this.fov.j;this.wf(a);this.wf(a);this.wf(a);var b=a.pan-this.pan.j,e=a.v-this.v.j;a=a.fov-this.fov.j;if(0!=b||0!=e||0!=a){var f=.2+.9*Math.min((Math.abs(b)+Math.abs(e)+Math.abs(a))/Math.abs(Math.min(this.fov.j, 90))*.3,1);this.pan.j+=b*f;this.v.j+=e*f;this.fov.j+=a*f;this.Ka.Zk=.3;this.update()}else this.Ka.Zk=0}else this.Dg();if(isNaN(this.pan.j)||1E7this.pan.j)this.pan.j=0;if(isNaN(this.v.j)||1E7this.v.j)this.v.j=0;if(isNaN(this.U.j)||1E7this.U.j)this.U.j=0;if(2!=this.Xa){for(;360this.pan.j;)this.pan.j+=360}};c.prototype.tr=function(){if(!this.zi()&&this.Kf&&5"+c.Xl(this.Ri).replace(/./gm,function(k){return"&#"+k.charCodeAt(0)+";"})),f.setAttribute("style","color: black; text-decoration: none;"),a.appendChild(f),g.appendChild(a));e.$.insertBefore(e.sd, e.$.firstChild);g.onclick=function(){e.sd&&(e.$.removeChild(e.sd),e.sd=null)};g.oncontextmenu=g.onclick}};c.prototype.ep=function(){var a=this;var b=a.Ra;a.control=b;a.control=b;a.Is();setTimeout(function(){a.Ch()},10);setTimeout(function(){a.un()},200);setTimeout(function(){a.kf();a.Vh()},10);b.addEventListener&&(b.addEventListener("touchstart",function(e){a.Ds(e)},!1),b.addEventListener("touchmove",function(e){a.Cs(e)},!1),b.addEventListener("touchend",function(e){a.Bs(e)},!1),b.addEventListener("touchcancel", function(e){a.As(e)},!1),b.addEventListener("pointerdown",function(e){a.hn(e)},!1),b.addEventListener("MSPointerDown",function(e){a.hn(e)},!1),b.addEventListener("MSGestureStart",function(e){a.om(e)},!1),b.addEventListener("MSGestureEnd",function(e){a.nm(e)},!1),b.addEventListener("MSGestureChange",function(e){a.Wq(e)},!1),b.addEventListener("gesturestart",function(e){a.om(e)},!1),b.addEventListener("gesturechange",function(e){a.Fp(e)},!1),b.addEventListener("gestureend",function(e){a.nm(e)},!1), b.addEventListener("mousedown",function(e){a.Tq(e)},!1),b.addEventListener("mousemove",function(e){a.Sq(e)},!1),document.addEventListener("mouseup",function(e){a.Rq(e)},!1),b.addEventListener("mousewheel",function(e){a.gn(e)},!1),b.addEventListener("DOMMouseScroll",function(e){a.gn(e)},!1),document.addEventListener("keydown",function(e){a.Jq(e)},!1),document.addEventListener("keyup",function(e){a.Kq(e)},!1),window.addEventListener("resize",function(){a.kf()},!1),window.addEventListener("blur",function(){a.br()}, !1),a.$.addEventListener("webkitfullscreenchange",function(){a.Ah()},!1),document.addEventListener("mozfullscreenchange",function(){a.Ah()},!1),window.addEventListener("webkitfullscreenchange",function(){a.Ah()},!1),document.addEventListener("MSFullscreenChange",function(){a.Ah()},!1),document.addEventListener("fullscreenchange",function(){a.Ah()},!1));b.oncontextmenu=function(e){void 0===e&&(e=window.event);if(e.target&&!a.Nc(e.target))return!0;if(!e.ctrlKey){e=a.Ug(e);var f=a.Ke();a.hs(e.x-f.x, e.y-f.y);return!1}return!0};window.addEventListener("deviceorientation",function(e){a.hr(e.alpha,e.beta,e.gamma,e.absolute);null!=e.alpha&&null!=e.beta&&null!=e.gamma&&0==a.sk&&(a.sk=!0,a.L("gyroavailable",{available:!0}),a.L("playerstatechanged",{}))})};c.prototype.Bl=function(){for(var a=0;ab&&(b=0),b>a.ki()&&(b=a.ki()-.1),a.Jl(b)):a.f&&(0>b&&(b=0),b>a.f.duration&&(b=a.f.duration-.1),a.f.currentTime=b))};c.prototype.setVolume=function(a,b){if(this.Pb){var e=this.ra;e&&e.setVolume(a,b)}else try{e=void 0;var f=Number(b);1f&&(f=0);"_videopanorama"===a&&this.D.f&&(this.D.f.volume=f); if("_main"===a){this.ba=f;for(e=0;ee&&(e=0);this.ba=e;for(f=0;fe&&(e=0);h.level=e;h.f&&null!=h.f.volume&&(h.f.volume=e*this.ba)}}}catch(l){this.N(l)}};c.prototype.ej=function(a,b,e){a.f.style.opacity=0==b?1:0;a.f.style[this.bd]= "opacity "+e+"ms";a.f.style.opacity=0==b?0:1};c.prototype.Or=function(a,b,e){function f(){var k=g[l];if(!k.f)return"continue";0==b?(h.ej(k,b,e),setTimeout(function(){0==k.f.style.opacity&&k.jg(!1)},e+10),k.mb=!1):1==b?(h.ej(k,b,e),k.jg(!0),k.mb=!0):2==b&&("visible"==k.f.style.visibility?(h.ej(k,0,e),setTimeout(function(){0==k.f.style.opacity&&k.jg(!1)},e+10),k.mb=!1):(h.ej(k,1,e),k.jg(!0),k.mb=!0))}for(var g=this.pb(a),h=this,l=0;le&&(e=this.Gc);for(b=0;6>b;b++){var f=this.cube.faces[b];a?(f.width=this.Ag,f.height=this.Ag):(f.V=document.createElement("canvas"),f.V.width=this.Gc,f.V.height=this.Gc,f.width=this.Gc, f.height=this.Gc,f.bb=f.V.getContext("2d"));var g="position:absolute;";g+="left: 0px;";g+="top: 0px;";g+="width: "+e+"px;";g+="height: "+e+"px;";a&&(g+="outline: 1px solid transparent;");g+=this.Pa+"transform-origin: 0% 0%;";g+="-webkit-user-select: none;";g+=this.Pa+"transform: ";var h="";var l=1;this.eg&&(l=100);h=4>b?h+("rotateY("+-90*b+"deg)"):h+("rotateX("+(4==b?-90:90)+"deg)");this.eg&&(h+=" scale("+l+")");h+=" translate3d("+-e/2+"px,"+-e/2+"px,"+-e*l/(2*this.ff)+"px)";g+=h+";";f.Im=h;a||(f.V.setAttribute("style", g),this.M.insertBefore(f.V,this.M.firstChild))}if(!a){for(b=0;6>b;b++)f=this.cube.faces[b],""!=this.yf[b]&&(f.Rd=new Image,f.Rd.crossOrigin=this.crossOrigin,f.Rd.onload=this.Vl(f),f.Rd.setAttribute("src",this.eb(this.yf[b])),this.ic.push(f.Rd));for(b=0;6>b;b++)f=this.cube.faces[b],f.loaded=!1,f.u=new Image,f.u.crossOrigin=this.crossOrigin,f.u.onload=this.Vl(f),f.u.setAttribute("src",this.eb(this.Ig[b])),this.ic.push(f.u)}};c.prototype.Xe=function(){var a;this.Ka.na.x=0;this.Ka.na.y=0;if(this.ld){for(a= 0;aa.h?a.w:a.h};c.prototype.Tk=function(a,b){var e=(new DOMParser).parseFromString(a,"text/xml");this.ak=a;this.zn(e,b);this.ra&&(this.N("Apply to Flash player"),this.ra.readConfigString(this.ak),this.ra.setLocked(!0),this.ra.setSlaveMode(!0))};c.prototype.yn=function(a,b,e){try{var f=void 0;f=new XMLHttpRequest;f.open("GET",a,!1);f.send(null);if(f.responseXML){var g= a.lastIndexOf("/");0<=g&&(this.$d=a.substr(0,g+1));2<=arguments.length&&null!=b&&(this.$d=b);this.Tk(f.responseText,e)}else alert("Error loading panorama XML")}catch(h){alert("Error:"+h)}};c.prototype.Ar=function(a,b,e,f){var g=new XMLHttpRequest;var h=this;g.onload=function(l){if(4<=g.readyState)if(g.responseXML){var k=a.lastIndexOf("/");0<=k&&(h.$d=a.substr(0,k+1));3<=arguments.length&&null!=e&&(h.$d=e);h.Tk(g.responseText,f);b&&b()}else alert("Error loading panorama XML");else console.error("Wrong state loading XML:"+ g.statusText)};g.onerror=function(){console.error("Error loading XML:"+g.statusText)};g.open("GET",a,!0);g.send(null)};c.prototype.Qj=function(a){var b="";"{"==a.charAt(0)&&(b=a.substr(1,a.length-2));(a=this.ae[b])&&(b=a);a={oldNodeId:this.Qa,nodeId:b};this.L("beforechangenodeid",a);this.rk?this.rk=!1:this.Mk.push(this.Qa);""!=this.Qa&&-1==this.Cj.indexOf(this.Qa)&&(this.Cj.push(this.Qa),this.L("changevisitednodes",{}));this.bn=this.Qa;this.Qa=b;this.N("change active node: "+b);this.la&&this.la.changeActiveNode&& this.la.changeActiveNode("{"+b+"}");this.L("changenodeid",a);this.Ef=!0};c.prototype.mk=function(){return this.Qa};c.prototype.bq=function(){if(0=this.Ya.length&&(a=0);return this.Ya[a]}return""};c.prototype.oq=function(){if(0a&&(a=this.Ya.length-1);return this.Ya[a]}return""};c.prototype.Up=function(){return this.bn};c.prototype.$q=function(a){return-1!=this.Cj.indexOf(a)};c.prototype.sp=function(){this.Cj= [];this.L("changevisitednodes",{})};c.prototype.zn=function(a,b){var e=a.firstChild;this.te=[];this.Ya=[];this.ae=[];for(a=e.firstChild;a;){if("map"==a.nodeName){var f={},g=a.getAttributeNode("title");g&&(f.title=g.nodeValue.toString());g=a.getAttributeNode("type");f.type=g.nodeValue.toString();"web"==f.type?(g=a.getAttributeNode("mapprovider"),f.mapprovider=g.nodeValue.toString(),(g=a.getAttributeNode("mapstyle"))&&(f.mapstyle=g.nodeValue.toString()),(g=a.getAttributeNode("googlecustomstylecode"))&& (f.googlecustomstylecode=g.nodeValue.toString()),(g=a.getAttributeNode("mapurltemplate"))&&(f.mapurltemplate=g.nodeValue.toString()),(g=a.getAttributeNode("mapmaxzoom"))&&(f.mapmaxzoom=Number(g.nodeValue)),(g=a.getAttributeNode("mapkey"))&&(f.mapkey=g.nodeValue.toString()),(g=a.getAttributeNode("styleurl"))&&(f.styleurl=g.nodeValue.toString())):(g=a.getAttributeNode("width"),f.width=Number(g.nodeValue),g=a.getAttributeNode("height"),f.height=Number(g.nodeValue),g=a.getAttributeNode("zoomlevels"), f.zoomlevels=Number(g.nodeValue),g=a.getAttributeNode("tileformat"),f.tileformat=g.nodeValue.toString(),g=a.getAttributeNode("bgcolor"),f.bgcolor=g.nodeValue.toString(),g=a.getAttributeNode("transparent"),f.transparent=1==g.nodeValue,g=a.getAttributeNode("floorplannorth"),f.floorplannorth=Number(g.nodeValue));g=a.getAttributeNode("id");this.Si[g.nodeValue.toString()]=f}a=a.nextSibling}if("tour"==e.nodeName){this.Rf=!0;a="";(g=e.getAttributeNode("start"))&&(a=g.nodeValue.toString());this.hasOwnProperty("startNode")&& this.startNode&&(a=String(this.startNode),this.startNode="");this.hasOwnProperty("startView")&&this.startView&&("object"===typeof this.startView&&null!==this.startView?b=this.startView:""!=this.startView&&(b=String(this.startView)),this.startView="");f=e.firstChild;var h="";for(e="";f;){if("panorama"==f.nodeName){if(g=f.getAttributeNode("id"))h=g.nodeValue.toString(),""==a&&(a=h),""==e&&(e=h),this.te[h]=f,this.Ya.push(h);for(g=f.firstChild;g;){if("userdata"==g.nodeName){var l=this.Ng(g);this.$h[h]= l;h==a&&(this.$h._first=l);l.customnodeid&&(this.ae[l.customnodeid]=h);this.Pc[h]=this.am(g);this.Wf[h]=this.bm(g)}g=g.nextSibling}}if("masternode"==f.nodeName)for(g=f.firstChild;g;)"userdata"==g.nodeName&&(l=this.Ng(g),this.$h._master=l),g=g.nextSibling;f=f.nextSibling}this.te.hasOwnProperty(a)||(g=this.ae[a])&&(a=g);this.te.hasOwnProperty(a)||(this.Oc("Start node "+a+" not found!"),a=e);this.Sk(this.te[a],b);this.Qj("{"+a+"}");this.Qa=a}else this.Rf=!1,this.Sk(e,b),this.Qj(""),this.Ya.push(""); this.ve&&(this.N("add pano vr config"),this.Gb.fi());this.L("configloaded",{});this.L("changenode",{});this.L("playerstatechanged",{})};c.prototype.Sk=function(a,b){var e=this;this.En();this.Ta&&this.Ta.Cr();this.hg(this.kb);this.Xe();this.lh=0;for(var f=a.firstChild,g,h,l=0;f;){if("view"==f.nodeName){if(g=f.getAttributeNode("fovmode"))this.fov.mode=Number(g.nodeValue);g=f.getAttributeNode("pannorth");this.pan.Nk=1*(g?g.nodeValue:0);for(var k=f.firstChild;k;){"start"==k.nodeName&&(g=k.getAttributeNode("pan"), this.pan.j=Number(g?g.nodeValue:0),this.pan.cb=this.pan.j,g=k.getAttributeNode("tilt"),this.v.j=Number(g?g.nodeValue:0),this.v.cb=this.v.j,g=k.getAttributeNode("roll"),this.U.j=Number(g?g.nodeValue:0),this.U.cb=this.U.j,g=k.getAttributeNode("fov"),this.fov.j=Number(g?g.nodeValue:70),this.fov.cb=this.fov.j,g=k.getAttributeNode("projection"),this.Yi=Number(g?g.nodeValue:4),this.Tc(this.Yi));"min"==k.nodeName&&(g=k.getAttributeNode("pan"),this.pan.min=1*(g?g.nodeValue:0),g=k.getAttributeNode("tilt"), this.v.min=1*(g?g.nodeValue:-90),g=k.getAttributeNode("fov"),this.fov.min=1*(g?g.nodeValue:5),1E-20>this.fov.min&&(this.fov.min=1E-20),g=k.getAttributeNode("fovpixel"),this.fov.wh=1*(g?g.nodeValue:0));if("max"==k.nodeName){g=k.getAttributeNode("pan");this.pan.max=1*(g?g.nodeValue:0);g=k.getAttributeNode("tilt");this.v.max=1*(g?g.nodeValue:90);g=k.getAttributeNode("fov");this.fov.max=1*(g?g.nodeValue:120);180<=this.fov.max&&(this.fov.max=179.9);if(g=k.getAttributeNode("fovstereographic"))this.fov.Lk= 1*g.nodeValue;if(g=k.getAttributeNode("fovfisheye"))this.fov.Kk=1*g.nodeValue;if(g=k.getAttributeNode("scaletofit"))this.K.Mn=1==g.nodeValue}if("flyin"==k.nodeName){if(g=k.getAttributeNode("projection"))this.Jc.Nb=Number(g.nodeValue);if(g=k.getAttributeNode("pan"))this.Jc.pan=parseFloat(g.nodeValue);if(g=k.getAttributeNode("tilt"))this.Jc.v=parseFloat(g.nodeValue);if(g=k.getAttributeNode("fov"))this.Jc.fov=parseFloat(g.nodeValue)}k=k.nextSibling}}if("autorotate"==f.nodeName){if(g=f.getAttributeNode("speed"))this.B.speed= 1*g.nodeValue;if(g=f.getAttributeNode("delay"))this.B.timeout=1*g.nodeValue;if(g=f.getAttributeNode("returntohorizon"))this.B.uj=1*g.nodeValue;if(g=f.getAttributeNode("nodedelay"))this.B.Xi=1*g.nodeValue;if(g=f.getAttributeNode("noderandom"))this.B.nn=1==g.nodeValue;(g=f.getAttributeNode("nodefilter"))&&!this.B.mn&&(this.B.Xf=g.nodeValue);this.ce&&(this.B.enabled=!0,this.B.qf=!0,this.B.active=!1);this.B.Od=0;if(g=f.getAttributeNode("startloaded"))this.B.Oh=1==g.nodeValue,this.B.Oh&&(this.B.active= !1);if(g=f.getAttributeNode("useanimation"))this.B.Zh=1==g.nodeValue,this.B.qg=this.B.Zh;if(g=f.getAttributeNode("syncanimationwithvideo"))this.B.jl=1==g.nodeValue}if("animation"==f.nodeName){if(g=f.getAttributeNode("syncanimationwithvideo"))this.B.jl=1==g.nodeValue;if(g=f.getAttributeNode("useinautorotation"))this.B.Zh=1==g.nodeValue;if(g=f.getAttributeNode("animsequence"))this.B.ii=g.nodeValue,this.ce&&(this.B.Zd=this.B.ii);this.wa=[];for(k=f.firstChild;k;){if("clip"==k.nodeName){this.I=new x.ul; if(g=k.getAttributeNode("animtitle"))this.I.pf=g.nodeValue.toString();if(g=k.getAttributeNode("cliptitle"))this.I.ab=g.nodeValue.toString();if(g=k.getAttributeNode("nodeid"))this.I.bt=g.nodeValue.toString();if(g=k.getAttributeNode("length"))this.I.length=Number(g.nodeValue);if(g=k.getAttributeNode("animtype"))this.I.ap=Number(g.nodeValue);if(g=k.getAttributeNode("nextcliptitle"))this.I.jn=g.nodeValue.toString();if(g=k.getAttributeNode("nextclipnodeid"))this.I.Wi=g.nodeValue.toString();if(g=k.getAttributeNode("nextclipstartview"))this.I.Zq= g.nodeValue.toString();if(g=k.getAttributeNode("transitiontype"))this.I.Es=Number(g.nodeValue);var w=k.firstChild;for(this.I.ca=[];w;){if("keyframe"==w.nodeName){var r=new x.Zc;if(g=w.getAttributeNode("time"))r.time=Number(g.nodeValue);if(g=w.getAttributeNode("value"))r.value=Number(g.nodeValue);if(g=w.getAttributeNode("valuestring"))r.ql=g.nodeValue.toString();if(g=w.getAttributeNode("transitiontime"))r.Fb=Number(g.nodeValue);g=w.getAttributeNode("type");var y=0;g&&(r.type=Number(g.nodeValue),y= Number(g.nodeValue));if(g=w.getAttributeNode("property"))r.tb=Number(g.nodeValue);if(g=w.getAttributeNode("additionaltrackid"))r.gi=g.nodeValue.toString();if(1==y||2==y){if(g=w.getAttributeNode("bezierintime"))r.ye=Number(g.nodeValue);if(g=w.getAttributeNode("bezierinvalue"))r.ze=Number(g.nodeValue);if(g=w.getAttributeNode("bezierouttime"))r.Ae=Number(g.nodeValue);if(g=w.getAttributeNode("bezieroutvalue"))r.Be=Number(g.nodeValue)}this.I.ca.push(r)}w=w.nextSibling}this.wa.push(this.I)}k=k.nextSibling}}"input"== f.nodeName&&(h||(h=f));if(h)for(w=0;6>w;w++)g=h.getAttributeNode("prev"+w+"url"),this.yf[w]=g?String(g.nodeValue):"";"altinput"==f.nodeName&&(k=0,(g=f.getAttributeNode("screensize"))&&(k=1*g.nodeValue),0l&&(l=k,h=f));if("control"==f.nodeName&&this.ce){if(g=f.getAttributeNode("simulatemass"))this.Ka.enabled=1==g.nodeValue;if(g=f.getAttributeNode("rubberband"))this.K.Kn=1==g.nodeValue;if(g=f.getAttributeNode("locked"))this.K.mc=1==g.nodeValue;g&&(this.K.rh=1==g.nodeValue);if(g=f.getAttributeNode("lockedmouse"))this.K.mc= 1==g.nodeValue;if(g=f.getAttributeNode("lockedkeyboard"))this.K.rh=1==g.nodeValue;if(g=f.getAttributeNode("lockedkeyboardzoom"))this.K.Oq=1==g.nodeValue;if(g=f.getAttributeNode("lockedwheel"))this.K.ge=1==g.nodeValue;if(g=f.getAttributeNode("invertwheel"))this.K.Rm=1==g.nodeValue;if(g=f.getAttributeNode("speedwheel"))this.K.bo=1*g.nodeValue;if(g=f.getAttributeNode("invertcontrol"))this.K.Md=1==g.nodeValue;if(g=f.getAttributeNode("sensitivity"))this.K.sensitivity=1*g.nodeValue,1>this.K.sensitivity&& (this.K.sensitivity=1);if(g=f.getAttributeNode("dblclickfullscreen"))this.K.ck=1==g.nodeValue;if(g=f.getAttributeNode("contextfullscreen"))this.K.Fg=1==g.nodeValue;if(g=f.getAttributeNode("contextvr"))this.K.Gg=1==g.nodeValue;if(g=f.getAttributeNode("contextprojections"))this.K.mi=1==g.nodeValue;if(g=f.getAttributeNode("hideabout"))this.K.Lf=1==g.nodeValue;for(k=f.firstChild;k;)"menulink"==k.nodeName&&(w={text:"",url:""},g=k.getAttributeNode("text"),w.text=g.nodeValue,g=k.getAttributeNode("url"), w.url=g.nodeValue,this.vh.push(w)),k=k.nextSibling}if("transition"==f.nodeName&&this.ce){if(g=f.getAttributeNode("enabled"))this.J.enabled=1==g.nodeValue;if(g=f.getAttributeNode("blendtime"))this.J.zg=1*g.nodeValue;if(g=f.getAttributeNode("blendcolor"))this.J.sf=g.nodeValue.toString();if(g=f.getAttributeNode("type"))this.J.type=g.nodeValue.toString();if(g=f.getAttributeNode("softedge"))this.J.Uc=1*g.nodeValue;if(g=f.getAttributeNode("zoomin"))this.J.sa=1*g.nodeValue;if(g=f.getAttributeNode("zoomout"))this.J.vc= 1*g.nodeValue;if(g=f.getAttributeNode("zoomfov"))this.J.Gj=1*g.nodeValue;if(g=f.getAttributeNode("zoomafterinfov"))this.J.Ej=1*g.nodeValue;if(g=f.getAttributeNode("zoomafteroutfov"))this.J.Fj=1*g.nodeValue;if(g=f.getAttributeNode("zoomspeed"))this.J.we=1*g.nodeValue;if(g=f.getAttributeNode("zoomoutpause"))this.J.ug=1==g.nodeValue;"cut"==this.J.type&&(this.J.zg=0)}if("soundstransition"==f.nodeName){if(g=f.getAttributeNode("enabled"))this.Ia.enabled=1==g.nodeValue;if(g=f.getAttributeNode("transitiontime"))this.Ia.Fb= 1*g.nodeValue;if(g=f.getAttributeNode("crossfade"))this.Ia.ni=1==g.nodeValue}if("flyintransition"==f.nodeName){if(g=f.getAttributeNode("enabled"))this.yb.enabled=1==g.nodeValue&&this.ia;if(g=f.getAttributeNode("speed"))this.yb.speed=1*g.nodeValue}"userdata"==f.nodeName&&(this.userdata=this.rg=this.Ng(f),this.Pc[a.id]||(this.Pc[a.id]=this.am(f),this.Wf[a.id]=this.bm(f)));if("hotspots"==f.nodeName)for(k=f.firstChild;k;){if("label"==k.nodeName&&this.ce){w=this.H.rj;if(g=k.getAttributeNode("enabled"))w.enabled= 1==g.nodeValue;if(g=k.getAttributeNode("width"))w.width=1*g.nodeValue;if(g=k.getAttributeNode("height"))w.height=1*g.nodeValue;if(g=k.getAttributeNode("textcolor"))w.sj=1*g.nodeValue;if(g=k.getAttributeNode("textalpha"))w.qj=1*g.nodeValue;if(g=k.getAttributeNode("background"))w.background=1==g.nodeValue;if(g=k.getAttributeNode("backgroundalpha"))w.dc=1*g.nodeValue;if(g=k.getAttributeNode("backgroundcolor"))w.ec=1*g.nodeValue;if(g=k.getAttributeNode("border"))w.ji=1*g.nodeValue;if(g=k.getAttributeNode("bordercolor"))w.gc= 1*g.nodeValue;if(g=k.getAttributeNode("borderalpha"))w.fc=1*g.nodeValue;if(g=k.getAttributeNode("borderradius"))w.Mj=1*g.nodeValue;if(g=k.getAttributeNode("wordwrap"))w.Dj=1==g.nodeValue}if("polystyle"==k.nodeName&&this.ce){if(g=k.getAttributeNode("mode"))this.H.mode=1*g.nodeValue;if(g=k.getAttributeNode("bordercolor"))this.H.gc=1*g.nodeValue;if(g=k.getAttributeNode("backgroundcolor"))this.H.ec=1*g.nodeValue;if(g=k.getAttributeNode("borderalpha"))this.H.fc=1*g.nodeValue;if(g=k.getAttributeNode("backgroundalpha"))this.H.dc= 1*g.nodeValue;if(g=k.getAttributeNode("handcursor"))this.H.Jf=1==g.nodeValue}g=void 0;"hotspot"==k.nodeName&&(g=new x.ei(this),g.type="point",g.$b(k),this.W.push(g));"polyhotspot"==k.nodeName&&(g=new x.ei(this),g.type="poly",g.$b(k),this.W.push(g));k=k.nextSibling}if("sounds"==f.nodeName||"media"==f.nodeName)for(k=f.firstChild;k;){if("sound"==k.nodeName&&!this.kn)for(g=new x.zl(this),g.$b(k),this.Pb||g.addElement(),w=0;ww;w++)(g=h.getAttributeNode("prev"+w+"url"))&&(this.yf[w]=String(g.nodeValue));if(g=h.getAttributeNode("tilevrurl"))this.Ul=String(g.nodeValue);if(g=h.getAttributeNode("tilesize"))this.Gc= 1*g.nodeValue;if(g=h.getAttributeNode("canvassize"))this.Ag=Number(g.nodeValue);if(g=h.getAttributeNode("tilescale"))this.ff=1*g.nodeValue;if(g=h.getAttributeNode("leveltileurl"))this.u.Hk=g.nodeValue;if(g=h.getAttributeNode("leveltilesize"))this.u.O=Number(g.nodeValue);if(g=h.getAttributeNode("levelbias"))this.u.en=Number(g.nodeValue);if(g=h.getAttributeNode("levelbiashidpi"))this.u.fn=Number(g.nodeValue);g=h.getAttributeNode("overlap");this.Oa.U=0;this.Oa.pitch=0;g&&(this.u.Da=Number(g.nodeValue)); if(g=h.getAttributeNode("levelingroll"))this.Oa.U=Number(g.nodeValue);if(g=h.getAttributeNode("levelingpitch"))this.Oa.pitch=Number(g.nodeValue);this.Xa=0;(g=h.getAttributeNode("flat"))&&1==g.nodeValue&&(this.Xa=2);g=h.getAttributeNode("width");this.u.width=1*(g?g.nodeValue:1);g=h.getAttributeNode("height");this.u.height=1*(g?g.nodeValue:this.u.width);this.D.src=[];this.u.levels=[];for(k=h.firstChild;k;){if("preview"==k.nodeName){if(g=k.getAttributeNode("color"))this.u.cg=g.nodeValue;if(g=k.getAttributeNode("strip"))this.u.wn= 1==g.nodeValue}if("video"==k.nodeName){if(g=k.getAttributeNode("format"))"3x2"==g.nodeValue&&(this.D.format=14),"equirectangular"==g.nodeValue&&(this.D.format=1);if(g=k.getAttributeNode("flipy"))this.D.flipY=Number(g.nodeValue);if(g=k.getAttributeNode("startonload"))this.D.el=1==g.nodeValue;if(g=k.getAttributeNode("startmutedmobile"))this.D.eo=1==g.nodeValue;if(g=k.getAttributeNode("bleed"))this.D.rf=Number(g.nodeValue);if(g=k.getAttributeNode("endaction"))this.D.Ge=String(g.nodeValue);if(g=k.getAttributeNode("targetview"))this.D.kl= String(g.nodeValue);if(g=k.getAttributeNode("width"))this.D.width=Number(g.nodeValue);if(g=k.getAttributeNode("height"))this.D.height=Number(g.nodeValue);for(w=k.firstChild;w;)"source"==w.nodeName&&(g=w.getAttributeNode("url"))&&this.D.src.push(g.nodeValue.toString()),w=w.nextSibling}if("level"==k.nodeName){h=new x.xl;g=k.getAttributeNode("width");h.width=1*(g?g.nodeValue:1);g=k.getAttributeNode("height");h.height=1*(g?g.nodeValue:h.width);if(g=k.getAttributeNode("preload"))h.cache=1==g.nodeValue; if(g=k.getAttributeNode("preview"))h.Ve=1==g.nodeValue;h.T=Math.floor((h.width+this.u.O-1)/this.u.O);h.ea=Math.floor((h.height+this.u.O-1)/this.u.O);this.u.levels.push(h)}k=k.nextSibling}this.u.Fk=this.u.levels.length}this.Kf=!0;this.Wh&&(this.ia=this.ld=!1,this.yc||(this.N("dummy rendering"),this.yc=document.createElement("canvas"),this.yc.width=100,this.yc.height=100,this.yc.id="dummycanvas",this.M.appendChild(this.yc)),this.Hc());this.ia&&this.R&&(this.Aa.Pm(this.ff),this.Aa.Qm());this.ld&&(0< this.u.levels.length?this.Sl(!0):this.Sl(!1),this.lh=0);var z=this;0ha;ha++){var tf=ha%3*gl+z.D.rf;var hl=tf+gl-2*z.D.rf;var il=4;3>ha&&(il+=gl);var kl=il+gl-2*z.D.rf;for(ua=0;4>ua;ua++){sh.x=-1;sh.y=-1;sh.z=1;for(var jl=0;jla.time&&this.I.ca[b].timea.Vd;)a.Vd+=360;for(;180f;)f+=360;for(;180id)for(;z<=l&&ua>id;)ua=new x.Ic,ua.Lj(db,gl,hl,tf,z),ua=ua.y,z++;else z=1;z>=.8*l&&(y=z=Math.round(.8* l));0==z&&(z=1);id=4==a.Mh?120:this.Tg(a.Mh);ua=a.mg;if(ua>id)for(;ha>z&&ua>id;)ua=new x.Ic,ua.Lj(db,gl,hl,tf,ha),ua=ua.y,ha--}db=new x.Zc;db.time=0;db.tb=0;db.value=a.pe;db.type=1;db.Ae=l/3;db.Be=a.Af?a.pe:a.pe+f/3;b.ca.push(db);db=new x.Zc;db.time=0;db.tb=1;db.value=a.Nh;db.type=1;db.Ae=l/3;db.Be=a.Af?a.Nh:a.Nh+g/3;b.ca.push(db);db=new x.Zc;db.time=0;db.tb=2;db.value=a.Td;db.type=1;db.Ae=l/3;db.Be=a.Af?a.Td:a.Td+h/3;b.ca.push(db);db=new x.Zc;db.time=0;db.tb=3;db.value=a.Mh;db.type=0;db.Fb=0;b.ca.push(db); e&&(db=new x.Zc,db.time=z,db.tb=3,db.value=a.Bd,db.type=0,db.Fb=ha-z,b.ca.push(db));db=new x.Zc;db.time=l;db.tb=0;db.value=a.pe+f;db.type=1;db.ye=2*l/3;db.ze=a.Ee&&!a.Fe?db.value:db.value-f/3;a.Fe&&(db.Ae=l+w,db.Be=db.value+w/l*f);b.ca.push(db);db=new x.Zc;db.time=l;db.tb=1;db.value=a.qe;db.type=1;db.ye=2*l/3;db.ze=a.Ee&&!a.Fe?a.qe:a.qe-g/3;a.Fe&&(db.Ae=l+w,db.Be=db.value+w/l*g);b.ca.push(db);db=new x.Zc;db.time=y;db.tb=2;db.value=r;db.type=1;db.ye=2*y/3;db.ze=a.Ee?r:r-h/3;b.ca.push(db);a.Fe&&(db= new x.Zc,db.time=l+k,db.tb=0,db.value=a.pe+f,db.type=1,db.ye=l+k-w,db.ze=a.pe+f,b.ca.push(db),db=new x.Zc,db.time=l+k,db.tb=1,db.value=a.qe,db.type=1,db.ye=l+k-w,db.ze=a.qe,b.ca.push(db));this.wa.push(b);return b};c.prototype.Rs=function(){this.D.f&&this.D.f.play()};c.prototype.Ss=function(){this.D.f&&(this.D.f.pause(),this.D.f.currentTime=0)};c.prototype.Qs=function(){this.D.f&&this.D.f.pause()};c.prototype.es=function(a){this.D.f&&(0>a&&(a=0),a>this.D.f.duration&&(a=this.D.f.duration-.1),this.D.f.currentTime= a,this.update())};c.prototype.vq=function(){return this.D.f?this.D.f.currentTime:0};c.prototype.uq=function(){if(this.D.f)return this.D.f};c.prototype.ds=function(a){if(this.D.f){var b=!this.D.f.paused&&!this.D.f.ended,e=this.D.f.currentTime;this.D.f.pause();this.D.f.src=isNaN(parseInt(a,10))?String(a):this.D.src[parseInt(a,10)];b&&(this.D.f.onloadedmetadata=function(){this.currentTime=e;this.play();this.onloadedmetadata=null});this.D.f.currentTime=e}};c.prototype.Ap=function(){this.kn=!0};return c}(); x.yl=d})(ggP2VR||(ggP2VR={}));window.ggHasHtml5Css3D=Gl;window.ggHasWebGL=Hl;window.pano2vrPlayer=ggP2VR.yl;var n=ggP2VR.yl.prototype;n.getVersion=n.Hm;n.readConfigString=n.Tk;n.readConfigUrl=n.yn;n.readConfigUrlAsync=n.Ar;n.readConfigXml=n.zn;n.openUrl=n.Ok;n.openNext=n.jd;n.goBack=n.Bq;n.setMargins=n.Nr;n.addListener=n.addListener;n.on=n.addListener;n.removeEventListener=n.removeEventListener;n.off=n.removeEventListener;n.detectBrowser=n.Zl;n.initWebGL=n.Mc;n.getPercentLoaded=n.kq; n.setBasePath=n.Jr;n.getBasePath=n.qm;n.setViewerSize=n.Xn;n.getViewerSize=n.yq;n.setSkinObject=n.Yr;n.changeViewMode=n.mp;n.getViewMode=n.wq;n.changePolygonMode=n.Nl;n.setPolygonMode=n.Nl;n.getPolygonMode=n.mq;n.showOnePolyHotspot=n.Zn;n.hideOnePolyHotspot=n.Mm;n.changePolyHotspotColor=n.kp;n.toggleOnePolyHotspot=n.zs;n.changeViewState=n.np;n.getViewState=n.xq;n.setRenderFlags=n.Rr;n.getRenderFlags=n.pq;n.setMaxTileCount=n.Tn;n.getVFov=n.kc;n.setVFov=n.ij;n.getHFov=n.Lp;n.updatePanorama=n.Vh; n.isTouching=n.Xm;n.getIsMobile=n.Rp;n.setIsMobile=n.Mr;n.getIsTour=n.Sp;n.getIsAutorotating=n.Op;n.getIsLoading=n.Qp;n.getIsLoaded=n.zi;n.getIsTileLoading=n.um;n.getLastActivity=n.Tp;n.getPan=n.Wg;n.getPanNorth=n.Je;n.getPanDest=n.jq;n.getPanN=n.zm;n.setPan=n.af;n.setPanNorth=n.$k;n.changePan=n.Ml;n.changePanLog=n.jp;n.getTilt=n.Bi;n.getTiltDest=n.qq;n.setTilt=n.bf;n.changeTilt=n.Ol;n.changeTiltLog=n.lp;n.getFov=n.nk;n.getFovDest=n.Jp;n.setFov=n.$e;n.changeFov=n.Ll;n.changeFovLog=n.Rj; n.getRoll=n.Dm;n.setRoll=n.gj;n.setPanTilt=n.Pr;n.setPanTiltFov=n.fj;n.setDefaultView=n.Kr;n.setLocked=n.setLocked;n.setLockedMouse=n.Rn;n.setLockedKeyboard=n.Qn;n.getLockedKeyboard=n.Vp;n.setLockedWheel=n.Sn;n.moveTo=n.moveTo;n.moveToEx=n.Ui;n.moveToDefaultView=n.Uq;n.moveToDefaultViewEx=n.Vq;n.addHotspotElements=n.Bl;n.playSound=n.Ue;n.playPauseSound=n.vn;n.playStopSound=n.yr;n.pauseSound=n.Pk;n.activateSound=n.Uo;n.soundGetTime=n.ks;n.soundSetTime=n.ls;n.setMediaVisibility=n.Or;n.isPlaying=n.isPlaying; n.stopSound=n.nj;n.setVolume=n.setVolume;n.changeVolume=n.op;n.removeHotspots=n.En;n.getHotspotsVisible=n.sm;n.getCurrentPerspective=n.td;n.addHotspot=n.Wo;n.updateHotspot=n.Hs;n.removeHotspot=n.Br;n.setActiveHotspot=n.hg;n.getPointHotspotIds=n.lq;n.getHotspot=n.Np;n.setFullscreen=n.ig;n.toggleFullscreen=n.vj;n.enterFullscreen=n.Bp;n.exitFullscreen=n.exitFullscreen;n.getIsFullscreen=n.Pp;n.startAutorotate=n.ps;n.stopAutorotate=n.ss;n.toggleAutorotate=n.ys;n.setAutorotateNodeFilter=n.Ir; n.startAnimation=n.os;n.createLayers=n.Tl;n.removePanorama=n.Xe;n.getScreenResolution=n.Em;n.getMaxScreenResolution=n.xm;n.getNodeIds=n.eq;n.getNodeUserdata=n.Vg;n.getNodeLatLng=n.pk;n.getNodeTitle=n.hq;n.getNodeDistance=n.cq;n.getCurrentNode=n.mk;n.getNextNode=n.bq;n.getPrevNode=n.oq;n.getLastVisitedNode=n.Up;n.getNodesWithTag=n.ym;n.getCurrentPointHotspots=n.Ip;n.getPositionAngles=n.nq;n.getPositionRawAngles=n.Am;n.nodeVisited=n.$q;n.clearVisitedNodes=n.sp;n.setElementIdPrefix=n.Lr; n.videoPanoPlay=n.Rs;n.videoPanoStop=n.Ss;n.videoPanoPause=n.Qs;n.getVideoPanoTime=n.vq;n.setVideoPanoTime=n.es;n.getVideoPanoObject=n.uq;n.setVideoPanoSource=n.ds;n.getMediaObject=n.$p;n.getMediaBufferSourceObject=n.Zp;n.registerVideoElement=n.An;n.disableSoundLoading=n.Ap;n.setCrossOrigin=n.setCrossOrigin;n.setProjection=n.Tc;n.getProjection=n.Sa;n.changeProjection=n.Sj;n.changeProjectionEx=n.Sj;n.changeLensflares=n.ip;n.setTransition=n.bs;n.getMapType=n.Yp;n.getMapDetails=n.Xp; n.getNodeMapCoords=n.fq;n.getNodeMapCoordsInPercent=n.gq;n.getMapContainingNode=n.Wp;n.getMapsContainingNode=n.wm;n.getMapIDs=n.vm;n.addVariable=n.Zo;n.setVariableOptions=n.Vn;n.setVariableValue=n.oe;n.getVariableValue=n.tq;n.setSuperCookie=n.$r;n.getGyroAvailable=n.Kp;n.setUseGyro=n.Un;n.getUseGyro=n.rq;n.getOS=n.iq;n.getBrowser=n.Hp;n.triggerEvent=n.L;n.requestRedraw=n.Dr;n.getWebGlContext=n.zq;n.getHasTouch=n.Mp;n.enterVR=n.Bf;n.exitVR=n.Cf;n.toggleVR=n.oo;n.isInVR=n.gh;n.hasVR=n.Ne; n.getVRDisplayName=n.sq;n.setVRFrameBufferScaleFactor=n.cs;var Jl=ggP2VR.zl.prototype;Jl.bufferSoundCurrentTime=Jl.uf;Jl.bufferSoundSetTime=Jl.Jl;Jl.bufferSoundSetDragTime=Jl.hp;Jl.bufferSoundDuration=Jl.ki;