var SharedObject=function(){return{toString:function(){return"[object SharedObject]"},getSpectrum:function(id,time){var ret=0;var loc=Math.round(60*time);var array=eval("spectrum_"+id);if((array!=undefined)&&(array[loc]!=undefined)){ret=array[loc]}return ret},getTitleData:function(){var i=parseInt(Math.random()*titleMemoryData.length);return titleMemoryData[i]},data:Object,}}();SharedObject.data=new Object();SharedObject.data.dt_shared_memory="";var MERCATOR_RANGE=256;function bound(b,a,c){if(a!=null){b=Math.max(b,a)}if(c!=null){b=Math.min(b,c)}return b}function degreesToRadians(a){return a*(Math.PI/180)}function radiansToDegrees(a){return a/(Math.PI/180)}function MercatorProjection(){this.pixelOrigin_=new google.maps.Point(MERCATOR_RANGE/2,MERCATOR_RANGE/2);this.pixelsPerLonDegree_=MERCATOR_RANGE/360;this.pixelsPerLonRadian_=MERCATOR_RANGE/(2*Math.PI)}MercatorProjection.prototype.fromLatLngToPoint=function(g,f){var e=this;var a=f||new google.maps.Point(0,0);var b=e.pixelOrigin_;a.x=b.x+g.lng()*e.pixelsPerLonDegree_;var c=bound(Math.sin(degreesToRadians(g.lat())),-0.9999,0.9999);a.y=b.y+0.5*Math.log((1+c)/(1-c))*-e.pixelsPerLonRadian_;return a};MercatorProjection.prototype.fromPointToLatLng=function(a){var f=this;var b=f.pixelOrigin_;var c=(a.x-b.x)/f.pixelsPerLonDegree_;var e=(a.y-b.y)/-f.pixelsPerLonRadian_;var g=radiansToDegrees(2*Math.atan(Math.exp(e))-Math.PI/2);return new google.maps.LatLng(g,c)};function r2d(a){return a*360/(2*Math.PI)}var gLocation=(function(){var h=new google.maps.Geocoder();var r=new google.maps.DirectionsService();var n=new MercatorProjection();var g=0.00004;var f=60;var b=0;var a=0;var t;var s;var m;var l=0;var j=0;var q="";function e(v){t=v;var x=new Date();Math.random(x.getTime());var u=Math.random()*2*Math.PI;randlat=v.lat()+b*Math.cos(u);randlong=v.lng()+b*Math.sin(u);var w={origin:v,destination:new google.maps.LatLng(randlat,randlong),travelMode:google.maps.DirectionsTravelMode.WALKING};r.route(w,function(y,z){if(z==google.maps.DirectionsStatus.OK){q=y.routes[0].copyrights;s=y.routes[0].overview_path;k();onSuccess()}else{onNotEnoughData()}})}function k(){var A=null;var v=0;var I=0;m=0;var D=false;var w=[];for(var J=1;J<=2;J++){for(var L=1;L<s.length-1;L++){var E=s[L];var A=s[L-1];var u=s[L+1];v=p(A,E);var O=E.lat()-A.lat();var H=E.lng()-A.lng();var N=u.lat()-E.lat();var F=u.lng()-E.lng();var R=Math.atan2(H,O);var Q=Math.atan2(F,N);var T=Math.sqrt(O*O+H*H);var S=Math.sqrt(N*N+F*F);var P=Q-R;P+=(2*Math.PI);P%=(2*Math.PI);if(P>(0.16/J)){var M=0.00003/J;if(T>M&&S>M){R+=Math.PI;s[L]=new google.maps.LatLng(E.lat()+M*Math.cos(R),E.lng()+M*Math.sin(R));s.splice(L+1,0,new google.maps.LatLng(E.lat()+M*Math.cos(Q),E.lng()+M*Math.sin(Q)));L++}}}}w.push(s[0]);for(var L=1;L<s.length;L++){var E=s[L];var A=s[L-1];v=p(A,E);if(I+v>b){var G=v;var x=b-I;var z=p(A,E);var C=E.lat()-A.lat();var B=E.lng()-A.lng();var y=new google.maps.LatLng(A.lat()+C*x/z,A.lng()+B*x/z);v=p(A,y);E=y;D=true}w.push(E);I+=v;if(D){break}}s=w;s.reverse();I=0;s[0].acc_distance=0;s[0].distance=0;for(var L=1;L<s.length;L++){var E=s[L];var K=s[L-1];v=p(E,K);I+=v;E.distance=v;E.acc_distance=I}m=I}function c(A,v){if(A<0){A=0}if(A>1){A=1}var D=0;var x=A*m;if(v==true){x=A*a}var z=s[s.length-1];for(var w=0;w<s.length-1;w++){if(s[w+1].acc_distance>=x){var F=s[w];var E=s[w+1];var u=x-F.acc_distance;var y=u/E.distance;var B=E.lat()-F.lat();var C=E.lng()-F.lng();z=new google.maps.LatLng(F.lat()+B*y,F.lng()+C*y);l=F.acc_distance+p(F,z);break}}return z}function p(x,v){var w=v.lat()-x.lat();var u=v.lng()-x.lng();return Math.sqrt(w*w+u*u)}return{checkAddress:function(v,u){f=u;b=g*f;a=g*34.409;h.geocode({address:v},function(w,x){if(x==google.maps.GeocoderStatus.OK){e(w[0].geometry.location)}else{onInvalidAddress()}})},getPosition:function(u,v){return c(u,v)},getLocation:function(){return t},getRoute:function(){return s},getSP:function(){return s[j]},getCopyright:function(){return q}}})();var THREE=THREE||{};THREE.Color=function(b){this.__styleString="rgba(0, 0, 0, 1)";this.setHex=function(a){this.hex=a;this.updateRGBA();this.updateStyleString()};this.setRGBA=function(a,g,j,h){this.r=a;this.g=g;this.b=j;this.a=h;this.updateHex();this.updateStyleString()};this.updateHex=function(){this.hex=Math.floor(this.a*255)<<24|Math.floor(this.r*255)<<16|Math.floor(this.g*255)<<8|Math.floor(this.b*255)};this.updateRGBA=function(){this.a=(this.hex>>24&255)/255;this.r=(this.hex>>16&255)/255;this.g=(this.hex>>8&255)/255;this.b=(this.hex&255)/255};this.updateStyleString=function(){this.__styleString="rgba("+Math.floor(this.r*255)+","+Math.floor(this.g*255)+","+Math.floor(this.b*255)+","+this.a+")"};this.toString=function(){return"THREE.Color ( r: "+this.r+", g: "+this.g+", b: "+this.b+", a: "+this.a+", hex: "+this.hex+" )"};this.setHex(b)};THREE.Vector2=function(e,c){this.x=e||0;this.y=c||0};THREE.Vector2.prototype={set:function(e,c){this.x=e;this.y=c},copy:function(b){this.x=b.x;this.y=b.y},addSelf:function(b){this.x+=b.x;this.y+=b.y},add:function(c,e){this.x=c.x+e.x;this.y=c.y+e.y},subSelf:function(b){this.x-=b.x;this.y-=b.y},sub:function(c,e){this.x=c.x-e.x;this.y=c.y-e.y},multiplyScalar:function(b){this.x*=b;this.y*=b},unit:function(){this.multiplyScalar(1/this.length())},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},lengthSq:function(){return this.x*this.x+this.y*this.y},negate:function(){this.x=-this.x;this.y=-this.y},clone:function(){return new THREE.Vector2(this.x,this.y)},toString:function(){return"THREE.Vector2 ("+this.x+", "+this.y+")"}};THREE.Vector3=function(f,g,e){this.x=f||0;this.y=g||0;this.z=e||0};THREE.Vector3.prototype={set:function(f,g,e){this.x=f;this.y=g;this.z=e},copy:function(b){this.x=b.x;this.y=b.y;this.z=b.z},add:function(c,e){this.x=c.x+e.x;this.y=c.y+e.y;this.z=c.z+e.z},addSelf:function(b){this.x+=b.x;this.y+=b.y;this.z+=b.z},addScalar:function(b){this.x+=b;this.y+=b;this.z+=b},sub:function(c,e){this.x=c.x-e.x;this.y=c.y-e.y;this.z=c.z-e.z},subSelf:function(b){this.x-=b.x;this.y-=b.y;this.z-=b.z},cross:function(c,e){this.x=c.y*e.z-c.z*e.y;this.y=c.z*e.x-c.x*e.z;this.z=c.x*e.y-c.y*e.x},crossSelf:function(h){var e=this.x,f=this.y,g=this.z;this.x=f*h.z-g*h.y;this.y=g*h.x-e*h.z;this.z=e*h.y-f*h.x},multiplySelf:function(b){this.x*=b.x;this.y*=b.y;this.z*=b.z},multiplyScalar:function(b){this.x*=b;this.y*=b;this.z*=b},divideScalar:function(b){this.x/=b;this.y/=b;this.z/=b},dot:function(b){return this.x*b.x+this.y*b.y+this.z*b.z},distanceTo:function(b){return Math.sqrt(this.distanceToSquared(b))},distanceToSquared:function(g){var h=this.x-g.x,e=this.y-g.y,f=this.z-g.z;return h*h+e*e+f*f},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z},normalize:function(){if(this.length()>0){this.multiplyScalar(1/this.length())}else{this.multiplyScalar(0)}},isZero:function(){var b=0.0001;return(Math.abs(this.x)<b)&&(Math.abs(this.y)<b)&&(Math.abs(this.z)<b)},clone:function(){return new THREE.Vector3(this.x,this.y,this.z)},toString:function(){return"THREE.Vector3 ( "+this.x+", "+this.y+", "+this.z+" )"}};THREE.Vector4=function(f,g,h,e){this.x=f||0;this.y=g||0;this.z=h||0;this.w=e||1};THREE.Vector4.prototype={set:function(f,g,h,e){this.x=f;this.y=g;this.z=h;this.w=e},copy:function(b){this.x=b.x;this.y=b.y;this.z=b.z;this.w=b.w},add:function(c,e){this.x=c.x+e.x;this.y=c.y+e.y;this.z=c.z+e.z;this.w=c.w+e.w},addSelf:function(b){this.x+=b.x;this.y+=b.y;this.z+=b.z;this.w+=b.w},sub:function(c,e){this.x=c.x-e.x;this.y=c.y-e.y;this.z=c.z-e.z;this.w=c.w-e.w},subSelf:function(b){this.x-=b.x;this.y-=b.y;this.z-=b.z;this.w-=b.w},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)},toString:function(){return"THREE.Vector4 ("+this.x+", "+this.y+", "+this.z+", "+this.w+")"}};THREE.Rectangle=function(){var n,l,q,m,k,r,p=true;function j(){k=q-n;r=m-l}this.getX=function(){return n};this.getY=function(){return l};this.getWidth=function(){return k};this.getHeight=function(){return r};this.getX1=function(){return n};this.getY1=function(){return l};this.getX2=function(){return q};this.getY2=function(){return m};this.set=function(c,a,e,b){p=false;n=c;l=a;q=e;m=b;j()};this.addPoint=function(b,a){if(p){p=false;n=b;l=a;q=b;m=a}else{n=Math.min(n,b);l=Math.min(l,a);q=Math.max(q,b);m=Math.max(m,a)}j()};this.addRectangle=function(a){if(p){p=false;n=a.getX1();l=a.getY1();q=a.getX2();m=a.getY2()}else{n=Math.min(n,a.getX1());l=Math.min(l,a.getY1());q=Math.max(q,a.getX2());m=Math.max(m,a.getY2())}j()};this.inflate=function(a){n-=a;l-=a;q+=a;m+=a;j()};this.minSelf=function(a){n=Math.max(n,a.getX1());l=Math.max(l,a.getY1());q=Math.min(q,a.getX2());m=Math.min(m,a.getY2());j()};this.instersects=function(a){return Math.min(q,a.getX2())-Math.max(n,a.getX1())>=0&&Math.min(m,a.getY2())-Math.max(l,a.getY1())>=0};this.empty=function(){p=true;n=0;l=0;q=0;m=0;j()};this.isEmpty=function(){return p};this.toString=function(){return"THREE.Rectangle (x1: "+n+", y1: "+m+", x2: "+q+", y1: "+l+", width: "+k+", height: "+r+")"}};THREE.Matrix4=function(){this._x=new THREE.Vector3();this._y=new THREE.Vector3();this._z=new THREE.Vector3()};THREE.Matrix4.prototype={n11:1,n12:0,n13:0,n14:0,n21:0,n22:1,n23:0,n24:0,n31:0,n32:0,n33:1,n34:0,n41:0,n42:0,n43:0,n44:1,identity:function(){this.n11=1;this.n12=0;this.n13=0;this.n14=0;this.n21=0;this.n22=1;this.n23=0;this.n24=0;this.n31=0;this.n32=0;this.n33=1;this.n34=0;this.n41=0;this.n42=0;this.n43=0;this.n44=1},lookAt:function(l,m,g){var h=this._x,j=this._y,k=this._z;k.sub(l,m);k.normalize();h.cross(g,k);h.normalize();j.cross(k,h);j.normalize();this.n11=h.x;this.n12=h.y;this.n13=h.z;this.n14=-h.dot(l);this.n21=j.x;this.n22=j.y;this.n23=j.z;this.n24=-j.dot(l);this.n31=k.x;this.n32=k.y;this.n33=k.z;this.n34=-k.dot(l)},transform:function(g){var j=g.x,k=g.y,f=g.z,h=g.w?g.w:1;g.x=this.n11*j+this.n12*k+this.n13*f+this.n14*h;g.y=this.n21*j+this.n22*k+this.n23*f+this.n24*h;g.z=this.n31*j+this.n32*k+this.n33*f+this.n34*h;h=this.n41*j+this.n42*k+this.n43*f+this.n44*h;if(g.w){g.w=h}else{g.x=g.x/h;g.y=g.y/h;g.z=g.z/h}},crossVector:function(a){var e=new THREE.Vector4();e.x=this.n11*a.x+this.n12*a.y+this.n13*a.z+this.n14*a.w;e.y=this.n21*a.x+this.n22*a.y+this.n23*a.z+this.n24*a.w;e.z=this.n31*a.x+this.n32*a.y+this.n33*a.z+this.n34*a.w;e.w=(a.w)?this.n41*a.x+this.n42*a.y+this.n43*a.z+this.n44*a.w:1;return e},multiply:function(a,b){this.n11=a.n11*b.n11+a.n12*b.n21+a.n13*b.n31+a.n14*b.n41;this.n12=a.n11*b.n12+a.n12*b.n22+a.n13*b.n32+a.n14*b.n42;this.n13=a.n11*b.n13+a.n12*b.n23+a.n13*b.n33+a.n14*b.n43;this.n14=a.n11*b.n14+a.n12*b.n24+a.n13*b.n34+a.n14*b.n44;this.n21=a.n21*b.n11+a.n22*b.n21+a.n23*b.n31+a.n24*b.n41;this.n22=a.n21*b.n12+a.n22*b.n22+a.n23*b.n32+a.n24*b.n42;this.n23=a.n21*b.n13+a.n22*b.n23+a.n23*b.n33+a.n24*b.n43;this.n24=a.n21*b.n14+a.n22*b.n24+a.n23*b.n34+a.n24*b.n44;this.n31=a.n31*b.n11+a.n32*b.n21+a.n33*b.n31+a.n34*b.n41;this.n32=a.n31*b.n12+a.n32*b.n22+a.n33*b.n32+a.n34*b.n42;this.n33=a.n31*b.n13+a.n32*b.n23+a.n33*b.n33+a.n34*b.n43;this.n34=a.n31*b.n14+a.n32*b.n24+a.n33*b.n34+a.n34*b.n44;this.n41=a.n41*b.n11+a.n42*b.n21+a.n43*b.n31+a.n44*b.n41;this.n42=a.n41*b.n12+a.n42*b.n22+a.n43*b.n32+a.n44*b.n42;this.n43=a.n41*b.n13+a.n42*b.n23+a.n43*b.n33+a.n44*b.n43;this.n44=a.n41*b.n14+a.n42*b.n24+a.n43*b.n34+a.n44*b.n44},multiplySelf:function(F){var u=this.n11,v=this.n12,x=this.n13,z=this.n14,C=this.n21,D=this.n22,E=this.n23,G=this.n24,H=this.n31,m=this.n32,s=this.n33,t=this.n34,w=this.n41,y=this.n42,A=this.n43,B=this.n44;this.n11=u*F.n11+v*F.n21+x*F.n31+z*F.n41;this.n12=u*F.n12+v*F.n22+x*F.n32+z*F.n42;this.n13=u*F.n13+v*F.n23+x*F.n33+z*F.n43;this.n14=u*F.n14+v*F.n24+x*F.n34+z*F.n44;this.n21=C*F.n11+D*F.n21+E*F.n31+G*F.n41;this.n22=C*F.n12+D*F.n22+E*F.n32+G*F.n42;this.n23=C*F.n13+D*F.n23+E*F.n33+G*F.n43;this.n24=C*F.n14+D*F.n24+E*F.n34+G*F.n44;this.n31=H*F.n11+m*F.n21+s*F.n31+t*F.n41;this.n32=H*F.n12+m*F.n22+s*F.n32+t*F.n42;this.n33=H*F.n13+m*F.n23+s*F.n33+t*F.n43;this.n34=H*F.n14+m*F.n24+s*F.n34+t*F.n44;this.n41=w*F.n11+y*F.n21+A*F.n31+B*F.n41;this.n42=w*F.n12+y*F.n22+A*F.n32+B*F.n42;this.n43=w*F.n13+y*F.n23+A*F.n33+B*F.n43;this.n44=w*F.n14+y*F.n24+A*F.n34+B*F.n44},multiplyScalar:function(b){this.n11*=b;this.n12*=b;this.n13*=b;this.n14*=b;this.n21*=b;this.n22*=b;this.n23*=b;this.n24*=b;this.n31*=b;this.n32*=b;this.n33*=b;this.n34*=b;this.n41*=b;this.n42*=b;this.n43*=b;this.n44*=b},determinant:function(){return(this.n14*this.n23*this.n32*this.n41-this.n13*this.n24*this.n32*this.n41-this.n14*this.n22*this.n33*this.n41+this.n12*this.n24*this.n33*this.n41+this.n13*this.n22*this.n34*this.n41-this.n12*this.n23*this.n34*this.n41-this.n14*this.n23*this.n31*this.n42+this.n13*this.n24*this.n31*this.n42+this.n14*this.n21*this.n33*this.n42-this.n11*this.n24*this.n33*this.n42-this.n13*this.n21*this.n34*this.n42+this.n11*this.n23*this.n34*this.n42+this.n14*this.n22*this.n31*this.n43-this.n12*this.n24*this.n31*this.n43-this.n14*this.n21*this.n32*this.n43+this.n11*this.n24*this.n32*this.n43+this.n12*this.n21*this.n34*this.n43-this.n11*this.n22*this.n34*this.n43-this.n13*this.n22*this.n31*this.n44+this.n12*this.n23*this.n31*this.n44+this.n13*this.n21*this.n32*this.n44-this.n11*this.n23*this.n32*this.n44-this.n12*this.n21*this.n33*this.n44+this.n11*this.n22*this.n33*this.n44)},clone:function(){var b=new THREE.Matrix4();b.n11=this.n11;b.n12=this.n12;b.n13=this.n13;b.n14=this.n14;b.n21=this.n21;b.n22=this.n22;b.n23=this.n23;b.n24=this.n24;b.n31=this.n31;b.n32=this.n32;b.n33=this.n33;b.n34=this.n34;b.n41=this.n41;b.n42=this.n42;b.n43=this.n43;b.n44=this.n44;return b},toString:function(){return"| "+this.n11+" "+this.n12+" "+this.n13+" "+this.n14+" |\n| "+this.n21+" "+this.n22+" "+this.n23+" "+this.n24+" |\n| "+this.n31+" "+this.n32+" "+this.n33+" "+this.n34+" |\n| "+this.n41+" "+this.n42+" "+this.n43+" "+this.n44+" |"}};THREE.Matrix4.translationMatrix=function(e,g,h){var f=new THREE.Matrix4();f.n14=e;f.n24=g;f.n34=h;return f};THREE.Matrix4.scaleMatrix=function(e,g,h){var f=new THREE.Matrix4();f.n11=e;f.n22=g;f.n33=h;return f};THREE.Matrix4.rotationXMatrix=function(c){var e=new THREE.Matrix4();e.n22=e.n33=Math.cos(c);e.n32=Math.sin(c);e.n23=-e.n32;return e};THREE.Matrix4.rotationYMatrix=function(c){var e=new THREE.Matrix4();e.n11=e.n33=Math.cos(c);e.n13=Math.sin(c);e.n31=-e.n13;return e};THREE.Matrix4.rotationZMatrix=function(c){var e=new THREE.Matrix4();e.n11=e.n22=Math.cos(c);e.n21=Math.sin(c);e.n12=-e.n21;return e};THREE.Matrix4.makeInvert=function(c){var e=new THREE.Matrix4();e.n11=c.n23*c.n34*c.n42-c.n24*c.n33*c.n42+c.n24*c.n32*c.n43-c.n22*c.n34*c.n43-c.n23*c.n32*c.n44+c.n22*c.n33*c.n44;e.n12=c.n14*c.n33*c.n42-c.n13*c.n34*c.n42-c.n14*c.n32*c.n43+c.n12*c.n34*c.n43+c.n13*c.n32*c.n44-c.n12*c.n33*c.n44;e.n13=c.n13*c.n24*c.n42-c.n14*c.n23*c.n42+c.n14*c.n22*c.n43-c.n12*c.n24*c.n43-c.n13*c.n22*c.n44+c.n12*c.n23*c.n44;e.n14=c.n14*c.n23*c.n32-c.n13*c.n24*c.n32-c.n14*c.n22*c.n33+c.n12*c.n24*c.n33+c.n13*c.n22*c.n34-c.n12*c.n23*c.n34;e.n21=c.n24*c.n33*c.n41-c.n23*c.n34*c.n41-c.n24*c.n31*c.n43+c.n21*c.n34*c.n43+c.n23*c.n31*c.n44-c.n21*c.n33*c.n44;e.n22=c.n13*c.n34*c.n41-c.n14*c.n33*c.n41+c.n14*c.n31*c.n43-c.n11*c.n34*c.n43-c.n13*c.n31*c.n44+c.n11*c.n33*c.n44;e.n23=c.n14*c.n23*c.n41-c.n13*c.n24*c.n41-c.n14*c.n21*c.n43+c.n11*c.n24*c.n43+c.n13*c.n21*c.n44-c.n11*c.n23*c.n44;e.n24=c.n13*c.n24*c.n31-c.n14*c.n23*c.n31+c.n14*c.n21*c.n33-c.n11*c.n24*c.n33-c.n13*c.n21*c.n34+c.n11*c.n23*c.n34;e.n31=c.n22*c.n34*c.n41-c.n24*c.n32*c.n41+c.n24*c.n31*c.n42-c.n21*c.n34*c.n42-c.n22*c.n31*c.n44+c.n21*c.n32*c.n44;e.n32=c.n14*c.n32*c.n41-c.n12*c.n34*c.n41-c.n14*c.n31*c.n42+c.n11*c.n34*c.n42+c.n12*c.n31*c.n44-c.n11*c.n32*c.n44;e.n33=c.n13*c.n24*c.n41-c.n14*c.n22*c.n41+c.n14*c.n21*c.n42-c.n11*c.n24*c.n42-c.n12*c.n21*c.n44+c.n11*c.n22*c.n44;e.n34=c.n14*c.n22*c.n31-c.n12*c.n24*c.n31-c.n14*c.n21*c.n32+c.n11*c.n24*c.n32+c.n12*c.n21*c.n34-c.n11*c.n22*c.n34;e.n41=c.n23*c.n32*c.n41-c.n22*c.n33*c.n41-c.n23*c.n31*c.n42+c.n21*c.n33*c.n42+c.n22*c.n31*c.n43-c.n21*c.n32*c.n43;e.n42=c.n12*c.n33*c.n41-c.n13*c.n32*c.n41+c.n13*c.n31*c.n42-c.n11*c.n33*c.n42-c.n12*c.n31*c.n43+c.n11*c.n32*c.n43;e.n43=c.n13*c.n22*c.n41-c.n12*c.n23*c.n41-c.n13*c.n21*c.n42+c.n11*c.n23*c.n42+c.n12*c.n21*c.n43-c.n11*c.n22*c.n43;e.n44=c.n12*c.n23*c.n31-c.n13*c.n22*c.n31+c.n13*c.n21*c.n32-c.n11*c.n23*c.n32-c.n12*c.n21*c.n33+c.n11*c.n22*c.n33;e.scale(1/c.determinant());return e};THREE.Matrix4.makeFrustum=function(z,a,A,m,w,x){var y,b,s,c,t,u,v;y=new THREE.Matrix4();b=2*w/(a-z);s=2*w/(m-A);c=(a+z)/(a-z);t=(m+A)/(m-A);u=-(x+w)/(x-w);v=-2*x*w/(x-w);y.n11=b;y.n12=0;y.n13=c;y.n14=0;y.n21=0;y.n22=s;y.n23=t;y.n24=0;y.n31=0;y.n32=0;y.n33=u;y.n34=v;y.n41=0;y.n42=0;y.n43=-1;y.n44=0;return y};THREE.Matrix4.makePerspective=function(p,r,m,j){var k,n,l,q;k=m*Math.tan(p*Math.PI/360);n=-k;l=n*r;q=k*r;return THREE.Matrix4.makeFrustum(l,q,n,k,m,j)};THREE.Matrix4.makeOrtho=function(x,h,q,z,t,u){var w,p,r,s,m,v,y;w=new THREE.Matrix4();m=h-x;v=z-q;y=u-t;p=(h+x)/m;r=(z+q)/v;s=(u+t)/y;w.n11=2/m;w.n12=0;w.n13=0;w.n14=-p;w.n21=0;w.n22=2/v;w.n23=0;w.n24=-r;w.n31=0;w.n32=0;w.n33=-2/y;w.n34=-s;w.n41=0;w.n42=0;w.n43=0;w.n44=1;return w};THREE.Vertex=function(e,c){this.position=e||new THREE.Vector3();this.normal=c||new THREE.Vector3();this.screen=new THREE.Vector3();this.__visible=true;this.toString=function(){return"THREE.Vertex ( position: "+this.position+", normal: "+this.normal+" )"}};THREE.Face3=function(j,k,a,b,c){this.a=j;this.b=k;this.c=a;this.normal=b||new THREE.Vector3();this.screen=new THREE.Vector3();this.color=c||new THREE.Color(0);this.toString=function(){return"THREE.Face3 ( "+this.a+", "+this.b+", "+this.c+" )"}};THREE.Face4=function(l,m,a,b,c,k){this.a=l;this.b=m;this.c=a;this.d=b;this.normal=c||new THREE.Vector3();this.screen=new THREE.Vector3();this.color=k||new THREE.Color(0);this.toString=function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(c,e){this.u=c||0;this.v=e||0};THREE.UV.prototype={copy:function(b){this.u=b.u;this.v=b.v},toString:function(){return"THREE.UV ("+this.u+", "+this.v+")"}};THREE.Geometry=function(){this.vertices=[];this.faces=[];this.uvs=[];this.computeNormals=function(){var f,l,n,p,q,j,m,k;for(f=0;f<this.vertices.length;f++){this.vertices[f].normal.set(0,0,0)}for(l=0;l<this.faces.length;l++){n=this.vertices[this.faces[l].a];p=this.vertices[this.faces[l].b];q=this.vertices[this.faces[l].c];j=new THREE.Vector3();m=new THREE.Vector3();k=new THREE.Vector3();j.sub(q.position,p.position);m.sub(n.position,p.position);j.crossSelf(m);if(!j.isZero()){j.normalize()}this.faces[l].normal=j;n.normal.addSelf(k);p.normal.addSelf(k);q.normal.addSelf(k);if(this.faces[l] instanceof THREE.Face4){this.vertices[this.faces[l].d].normal.addSelf(k)}}}};THREE.Camera=function(h,e,g,f){this.position=new THREE.Vector3(0,0,0);this.target={position:new THREE.Vector3(0,0,0)};this.projectionMatrix=THREE.Matrix4.makePerspective(h,e,g,f);this.up=new THREE.Vector3(0,1,0);this.matrix=new THREE.Matrix4();this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrix.lookAt(this.position,this.target.position,this.up)};this.toString=function(){return"THREE.Camera ( "+this.position+", "+this.target.position+" )"}};THREE.Object3D=function(b){this.position=new THREE.Vector3();this.rotation=new THREE.Vector3();this.scale=new THREE.Vector3(1,1,1);this.matrix=new THREE.Matrix4();this.screen=new THREE.Vector3();this.material=b instanceof Array?b:[b];this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrix.identity();this.matrix.multiplySelf(THREE.Matrix4.translationMatrix(this.position.x,this.position.y,this.position.z));this.matrix.multiplySelf(THREE.Matrix4.rotationXMatrix(this.rotation.x));this.matrix.multiplySelf(THREE.Matrix4.rotationYMatrix(this.rotation.y));this.matrix.multiplySelf(THREE.Matrix4.rotationZMatrix(this.rotation.z));this.matrix.multiplySelf(THREE.Matrix4.scaleMatrix(this.scale.x,this.scale.y,this.scale.z))}};THREE.Line=function(c,e){THREE.Object3D.call(this,e);this.geometry=c};THREE.Line.prototype=new THREE.Object3D();THREE.Line.prototype.constructor=THREE.Line;THREE.Mesh=function(c,e){THREE.Object3D.call(this,e);this.geometry=c;this.flipSided=false;this.doubleSided=false;this.overdraw=false};THREE.Mesh.prototype=new THREE.Object3D();THREE.Mesh.prototype.constructor=THREE.Mesh;THREE.Particle=function(b){THREE.Object3D.call(this,b);this.autoUpdateMatrix=false};THREE.Particle.prototype=new THREE.Object3D();THREE.Particle.prototype.constructor=THREE.Particle;THREE.LineColorMaterial=function(g,e,f){this.lineWidth=f||1;this.color=new THREE.Color((e>=0?(e*255)<<24:4278190080)|g);this.toString=function(){return"THREE.LineColorMaterial ( color: "+this.color+", lineWidth: "+this.lineWidth+" )"}};THREE.MeshBitmapUVMappingMaterial=function(b){this.bitmap=b;this.toString=function(){return"THREE.MeshBitmapUVMappingMaterial ( bitmap: "+this.bitmap+" )"}};THREE.MeshColorFillMaterial=function(c,e){this.color=new THREE.Color((e>=0?(e*255)<<24:4278190080)|c);this.toString=function(){return"THREE.MeshColorFillMaterial ( color: "+this.color+" )"}};THREE.MeshColorStrokeMaterial=function(g,e,f){this.lineWidth=f||1;this.color=new THREE.Color((e>=0?(e*255)<<24:4278190080)|g);this.toString=function(){return"THREE.MeshColorStrokeMaterial ( lineWidth: "+this.lineWidth+", color: "+this.color+" )"}};THREE.MeshFaceColorFillMaterial=function(){this.toString=function(){return"THREE.MeshFaceColorFillMaterial ( )"}};THREE.MeshFaceColorStrokeMaterial=function(b){this.lineWidth=b||1;this.toString=function(){return"THREE.MeshFaceColorStrokeMaterial ( lineWidth: "+this.lineWidth+" )"}};THREE.ParticleBitmapMaterial=function(b){this.bitmap=b;this.offset=new THREE.Vector2();this.toString=function(){return"THREE.ParticleBitmapMaterial ( bitmap: "+this.bitmap+" )"}};THREE.ParticleCircleMaterial=function(c,e){this.color=new THREE.Color((e>=0?(e*255)<<24:4278190080)|c);this.toString=function(){return"THREE.ParticleCircleMaterial ( color: "+this.color+" )"}};THREE.Scene=function(){this.objects=[];this.addObject=function(b){this.objects.push(b)};this.removeObject=function(e){for(var g=0,f=this.objects.length;g<f;g++){if(e==this.objects[g]){this.objects.splice(g,1);return}}};this.add=function(b){this.addObject(b)};this.toString=function(){return"THREE.Scene ( "+this.objects+" )"}};THREE.Renderer=function(){var l=[],p=[],m=[],j=[],h=new THREE.Vector4(),n=new THREE.Matrix4();function k(a,b){return b.z-a.z}this.renderList=null;this.project=function(H,c){var v,G,I,F,a,K,b,J,L,D,M,N,O,P,E=0,e=0,g=0,f=0;this.renderList=[];if(c.autoUpdateMatrix){c.updateMatrix()}for(v=0,G=H.objects.length;v<G;v++){D=H.objects[v];if(D.autoUpdateMatrix){D.updateMatrix()}if(D instanceof THREE.Mesh){n.multiply(c.matrix,D.matrix);for(I=0,F=D.geometry.vertices.length;I<F;I++){b=D.geometry.vertices[I];b.screen.copy(b.position);n.transform(b.screen);c.projectionMatrix.transform(b.screen);b.__visible=b.screen.z>0&&b.screen.z<1}for(a=0,K=D.geometry.faces.length;a<K;a++){L=D.geometry.faces[a];if(L instanceof THREE.Face3){M=D.geometry.vertices[L.a];N=D.geometry.vertices[L.b];O=D.geometry.vertices[L.c];if(M.__visible&&N.__visible&&O.__visible&&(D.doubleSided||(D.flipSided!=(O.screen.x-M.screen.x)*(N.screen.y-M.screen.y)-(O.screen.y-M.screen.y)*(N.screen.x-M.screen.x)<0))){if(!l[E]){l[E]=new THREE.RenderableFace3()}l[E].v1.copy(M.screen);l[E].v2.copy(N.screen);l[E].v3.copy(O.screen);l[E].z=Math.max(M.screen.z,Math.max(N.screen.z,O.screen.z));l[E].material=D.material;l[E].overdraw=D.overdraw;l[E].uvs=D.geometry.uvs[a];l[E].color=L.color;this.renderList.push(l[E]);E++}}else{if(L instanceof THREE.Face4){M=D.geometry.vertices[L.a];N=D.geometry.vertices[L.b];O=D.geometry.vertices[L.c];P=D.geometry.vertices[L.d];if(M.__visible&&N.__visible&&O.__visible&&P.__visible&&(D.doubleSided||(D.flipSided!=((P.screen.x-M.screen.x)*(N.screen.y-M.screen.y)-(P.screen.y-M.screen.y)*(N.screen.x-M.screen.x)<0||(N.screen.x-O.screen.x)*(P.screen.y-O.screen.y)-(N.screen.y-O.screen.y)*(P.screen.x-O.screen.x)<0)))){if(!p[e]){p[e]=new THREE.RenderableFace4()}p[e].v1.copy(M.screen);p[e].v2.copy(N.screen);p[e].v3.copy(O.screen);p[e].v4.copy(P.screen);p[e].z=Math.max(M.screen.z,Math.max(N.screen.z,Math.max(O.screen.z,P.screen.z)));p[e].material=D.material;p[e].overdraw=D.overdraw;p[e].uvs=D.geometry.uvs[a];p[e].color=L.color;this.renderList.push(p[e]);e++}}}}}else{if(D instanceof THREE.Line){n.multiply(c.matrix,D.matrix);for(I=0,F=D.geometry.vertices.length;I<F;I++){b=D.geometry.vertices[I];b.screen.copy(b.position);n.transform(b.screen);c.projectionMatrix.transform(b.screen);b.__visible=b.screen.z>0&&b.screen.z<1;if(I>0){J=D.geometry.vertices[I-1];if(b.__visible&&J.__visible){if(!m[g]){m[g]=new THREE.RenderableLine()}m[g].v1.copy(b.screen);m[g].v2.copy(J.screen);m[g].z=Math.max(b.screen.z,J.screen.z);m[g].material=D.material;this.renderList.push(m[g]);g++}}}}else{if(D instanceof THREE.Particle){h.set(D.position.x,D.position.y,D.position.z,1);c.matrix.transform(h);c.projectionMatrix.transform(h);D.screen.set(h.x/h.w,h.y/h.w,h.z/h.w);if(D.screen.z>0&&D.screen.z<1){if(!j[f]){j[f]=new THREE.RenderableParticle()}j[f].x=D.screen.x;j[f].y=D.screen.y;j[f].z=D.screen.z;j[f].rotation=D.rotation.z;j[f].scale.x=D.scale.x*Math.abs(h.x/h.w-(h.x+c.projectionMatrix.n11)/(h.w+c.projectionMatrix.n14));j[f].scale.y=D.scale.y*Math.abs(h.y/h.w-(h.y+c.projectionMatrix.n22)/(h.w+c.projectionMatrix.n24));j[f].material=D.material;j[f].color=D.color;this.renderList.push(j[f]);f++}}}}}this.renderList.sort(k)}};THREE.CanvasRenderer=function(){THREE.Renderer.call(this);var B=document.createElement("canvas"),A=B.getContext("2d"),E,s,C,H,t=new THREE.Rectangle(),D=new THREE.Rectangle(),y=new THREE.Rectangle(),F=new THREE.Vector2(),G=new THREE.Vector2(),J=new THREE.Vector2(),u=new THREE.UV(),v=new THREE.UV(),w=new THREE.UV(),x=new THREE.UV();this.domElement=B;this.autoClear=true;this.setSize=function(a,b){E=a;s=b;C=E/2;H=s/2;B.width=E;B.height=s;t.set(-C,-H,C,H)};this.clear=function(){if(!D.isEmpty()){D.inflate(1);D.minSelf(t);A.setTransform(1,0,0,1,C,H);A.clearRect(D.getX(),-(D.getHeight()+D.getY()),D.getWidth(),D.getHeight());D.empty()}};this.render=function(e,k){var f,ab,Z,j,X,ah,ac=Math.PI*2,p,r,m,q,ad,ag,aj,ak,l,n,Y,af,aa,ae,b,c,g,h,a,ai,W;this.project(e,k);if(this.autoClear){this.clear()}A.setTransform(1,0,0,-1,C,H);for(f=0,ab=this.renderList.length;f<ab;f++){X=this.renderList[f];y.empty();if(X instanceof THREE.RenderableParticle){p=X.x*C;r=X.y*H;for(Z=0,j=X.material.length;Z<j;Z++){ah=X.material[Z];if(ah instanceof THREE.ParticleCircleMaterial){aa=X.scale.x*C;ae=X.scale.y*H;y.set(p-aa,r-ae,p+aa,r+ae);if(!t.instersects(y)){continue}A.save();A.translate(p,r);A.rotate(-X.rotation);A.scale(aa,ae);A.beginPath();A.arc(0,0,1,0,ac,true);A.closePath();A.fillStyle=ah.color.__styleString;A.fill();A.restore()}else{if(ah instanceof THREE.ParticleBitmapMaterial){a=ah.bitmap;ai=a.width/2;W=a.height/2;b=X.scale.x*C;c=X.scale.y*H;aa=b*ai;ae=c*W;g=ah.offset.x*b;h=ah.offset.y*c;y.set(p+g-aa,r+h-ae,p+g+aa,r+h+ae);if(!t.instersects(y)){continue}A.save();A.translate(p,r);A.rotate(-X.rotation);A.scale(b,-c);A.translate(-ai+ah.offset.x,-W-ah.offset.y);A.drawImage(a,0,0);A.restore()}}}}else{if(X instanceof THREE.RenderableLine){p=X.v1.x*C;r=X.v1.y*H;m=X.v2.x*C;q=X.v2.y*H;y.addPoint(p,r);y.addPoint(m,q);if(!t.instersects(y)){continue}A.beginPath();A.moveTo(p,r);A.lineTo(m,q);A.closePath();for(Z=0,j=X.material.length;Z<j;Z++){ah=X.material[Z];if(ah instanceof THREE.LineColorMaterial){A.lineWidth=ah.lineWidth;A.lineJoin="round";A.lineCap="round";A.strokeStyle=ah.color.__styleString;A.stroke();y.inflate(A.lineWidth)}}}else{if(X instanceof THREE.RenderableFace3){X.v1.x*=C;X.v1.y*=H;X.v2.x*=C;X.v2.y*=H;X.v3.x*=C;X.v3.y*=H;if(X.overdraw){I(X.v1,X.v2);I(X.v2,X.v3);I(X.v3,X.v1)}p=X.v1.x;r=X.v1.y;m=X.v2.x;q=X.v2.y;ad=X.v3.x;ag=X.v3.y;y.addPoint(p,r);y.addPoint(m,q);y.addPoint(ad,ag);if(!t.instersects(y)){continue}for(Z=0,j=X.material.length;Z<j;Z++){ah=X.material[Z];if(ah instanceof THREE.MeshColorFillMaterial){A.beginPath();A.moveTo(p,r);A.lineTo(m,q);A.lineTo(ad,ag);A.lineTo(p,r);A.closePath();A.fillStyle=ah.color.__styleString;A.fill()}else{if(ah instanceof THREE.MeshColorStrokeMaterial){A.beginPath();A.moveTo(p,r);A.lineTo(m,q);A.lineTo(ad,ag);A.lineTo(p,r);A.closePath();A.lineWidth=ah.lineWidth;A.lineJoin="round";A.lineCap="round";A.strokeStyle=ah.color.__styleString;A.stroke();y.inflate(A.lineWidth)}else{if(ah instanceof THREE.MeshFaceColorFillMaterial){A.beginPath();A.moveTo(p,r);A.lineTo(m,q);A.lineTo(ad,ag);A.lineTo(p,r);A.closePath();A.fillStyle=X.color.__styleString;A.fill()}else{if(ah instanceof THREE.MeshFaceColorStrokeMaterial){A.beginPath();A.moveTo(p,r);A.lineTo(m,q);A.lineTo(ad,ag);A.lineTo(p,r);A.closePath();A.lineWidth=ah.lineWidth;A.lineJoin="round";A.lineCap="round";A.strokeStyle=X.color.__styleString;A.stroke();y.inflate(A.lineWidth)}else{if(ah instanceof THREE.MeshBitmapUVMappingMaterial){a=ah.bitmap;ai=a.width-1;W=a.height-1;u.copy(X.uvs[0]);v.copy(X.uvs[1]);w.copy(X.uvs[2]);u.u*=ai;u.v*=W;v.u*=ai;v.v*=W;w.u*=ai;w.v*=W;z(a,p,r,m,q,ad,ag,u.u,u.v,v.u,v.v,w.u,w.v)}}}}}}}else{if(X instanceof THREE.RenderableFace4){X.v1.x*=C;X.v1.y*=H;X.v2.x*=C;X.v2.y*=H;X.v3.x*=C;X.v3.y*=H;X.v4.x*=C;X.v4.y*=H;G.copy(X.v2);J.copy(X.v4);if(X.overdraw){I(X.v1,X.v2);I(X.v2,X.v4);I(X.v4,X.v1)}p=X.v1.x;r=X.v1.y;m=X.v2.x;q=X.v2.y;aj=X.v4.x;ak=X.v4.y;if(X.overdraw){I(X.v3,G);I(X.v3,J)}ad=X.v3.x;ag=X.v3.y;l=G.x;n=G.y;Y=J.x;af=J.y;y.addPoint(p,r);y.addPoint(m,q);y.addPoint(ad,ag);y.addPoint(aj,ak);if(!t.instersects(y)){continue}for(Z=0,j=X.material.length;Z<j;Z++){ah=X.material[Z];if(ah instanceof THREE.MeshColorFillMaterial){A.beginPath();A.moveTo(p,r);A.lineTo(m,q);A.lineTo(ad,ag);A.lineTo(aj,ak);A.lineTo(p,r);A.closePath();A.fillStyle=ah.color.__styleString;A.fill()}else{if(ah instanceof THREE.MeshColorStrokeMaterial){A.beginPath();A.moveTo(p,r);A.lineTo(m,q);A.lineTo(ad,ag);A.lineTo(aj,ak);A.lineTo(p,r);A.closePath();A.lineWidth=ah.lineWidth;A.lineJoin="round";A.lineCap="round";A.strokeStyle=ah.color.__styleString;A.stroke();y.inflate(A.lineWidth)}else{if(ah instanceof THREE.MeshFaceColorFillMaterial){A.beginPath();A.moveTo(p,r);A.lineTo(m,q);A.lineTo(ad,ag);A.lineTo(aj,ak);A.lineTo(p,r);A.closePath();A.fillStyle=X.color.__styleString;A.fill()}else{if(ah instanceof THREE.MeshFaceColorStrokeMaterial){A.beginPath();A.moveTo(p,r);A.lineTo(m,q);A.lineTo(ad,ag);A.lineTo(aj,ak);A.lineTo(p,r);A.closePath();A.lineWidth=ah.lineWidth;A.lineJoin="round";A.lineCap="round";A.strokeStyle=X.color.__styleString;A.stroke();y.inflate(A.lineWidth)}else{if(ah instanceof THREE.MeshBitmapUVMappingMaterial){a=ah.bitmap;ai=a.width-1;W=a.height-1;u.copy(X.uvs[0]);v.copy(X.uvs[1]);w.copy(X.uvs[2]);x.copy(X.uvs[3]);u.u*=ai;u.v*=W;v.u*=ai;v.v*=W;w.u*=ai;w.v*=W;x.u*=ai;x.v*=W;z(a,p,r,m,q,aj,ak,u.u,u.v,v.u,v.v,x.u,x.v);z(a,l,n,ad,ag,Y,af,v.u,v.v,w.u,w.v,x.u,x.v)}}}}}}}}}}D.addRectangle(y)}A.setTransform(1,0,0,1,0,0)};function z(a,Q,c,l,n,p,M,h,j,k,m,q,N){var r,b,e,f,g,O,P;A.beginPath();A.moveTo(Q,c);A.lineTo(l,n);A.lineTo(p,M);A.lineTo(Q,c);A.closePath();A.save();A.clip();r=h*(N-m)-k*N+q*m+(k-q)*j;b=-(j*(p-l)-m*p+N*l+(m-N)*Q)/r;e=(m*M+j*(n-M)-N*n+(N-m)*c)/r;f=(h*(p-l)-k*p+q*l+(k-q)*Q)/r;g=-(k*M+h*(n-M)-q*n+(q-k)*c)/r;O=(h*(N*l-m*p)+j*(k*p-q*l)+(q*m-k*N)*Q)/r;P=(h*(N*n-m*M)+j*(k*M-q*n)+(q*m-k*N)*c)/r;A.transform(b,e,f,g,O,P);A.drawImage(a,0,0);A.restore()}function I(a,b){F.sub(b,a);F.unit();b.addSelf(F);a.subSelf(F)}};THREE.CanvasRenderer.prototype=new THREE.Renderer();THREE.CanvasRenderer.prototype.constructor=THREE.CanvasRenderer;THREE.SVGRenderer=function(){THREE.Renderer.call(this);var s=document.createElementNS("http://www.w3.org/2000/svg","svg"),x,v,m,q,t=new THREE.Rectangle(),w=new THREE.Rectangle(),p=[],u=[],r=1;this.domElement=s;this.autoClear=true;this.setQuality=function(a){switch(a){case"high":r=1;break;case"low":r=0;break}};this.setSize=function(b,a){x=b;v=a;m=x/2;q=v/2;s.setAttribute("viewBox",(-m)+" "+(-q)+" "+x+" "+v);s.setAttribute("width",x);s.setAttribute("height",v);t.set(-m,-q,m,q)};this.clear=function(){while(s.childNodes.length>0){s.removeChild(s.childNodes[0])}};this.render=function(g,I){var h,O,N,l,M,e,a=0,K=0,c,j,H,J,L,P,Q,f,k,b;if(this.autoClear){this.clear()}this.project(g,I);for(h=0,O=this.renderList.length;h<O;h++){M=this.renderList[h];for(N=0,l=M.material.length;N<l;N++){e=M.material[N];w.empty();if(M instanceof THREE.RenderableParticle){j=M.x*m;H=M.y*-q;b=M.size*m;w.set(j-b,H-b,j+b,H+b);if(!t.instersects(w)){continue}c=n(K++);c.setAttribute("cx",j);c.setAttribute("cy",H);c.setAttribute("r",b)}else{if(M instanceof THREE.RenderableFace3){j=M.v1.x*m;H=M.v1.y*-q;J=M.v2.x*m;L=M.v2.y*-q;P=M.v3.x*m;Q=M.v3.y*-q;w.addPoint(j,H);w.addPoint(J,L);w.addPoint(P,Q);if(!t.instersects(w)){continue}c=y(a++);c.setAttribute("d","M "+j+" "+H+" L "+J+" "+L+" L "+P+","+Q+"z")}else{if(M instanceof THREE.RenderableFace4){j=M.v1.x*m;H=M.v1.y*-q;J=M.v2.x*m;L=M.v2.y*-q;P=M.v3.x*m;Q=M.v3.y*-q;f=M.v4.x*m;k=M.v4.y*-q;w.addPoint(j,H);w.addPoint(J,L);w.addPoint(P,Q);w.addPoint(f,k);if(!t.instersects(w)){continue}c=y(a++);c.setAttribute("d","M "+j+" "+H+" L "+J+" "+L+" L "+P+","+Q+" L "+f+","+k+"z")}}}if(e instanceof THREE.MeshColorFillMaterial){c.setAttribute("style","fill: "+e.color.__styleString)}else{if(e instanceof THREE.MeshFaceColorFillMaterial){c.setAttribute("style","fill: "+M.color.__styleString)}else{if(e instanceof THREE.MeshColorStrokeMaterial){c.setAttribute("style","fill: none; stroke: "+e.color.__styleString+"; stroke-width: "+e.lineWidth+"; stroke-linecap: round; stroke-linejoin: round")}else{if(e instanceof THREE.MeshFaceColorStrokeMaterial){c.setAttribute("style","fill: none; stroke: "+M.color.__styleString+"; stroke-width: "+e.lineWidth+"; stroke-linecap: round; stroke-linejoin: round")}}}}s.appendChild(c)}}};function y(a){if(p[a]==null){p[a]=document.createElementNS("http://www.w3.org/2000/svg","path");if(r==0){p[a].setAttribute("shape-rendering","crispEdges")}return p[a]}return p[a]}function n(a){if(u[a]==null){u[a]=document.createElementNS("http://www.w3.org/2000/svg","circle");if(r==0){u[a].setAttribute("shape-rendering","crispEdges")}return u[a]}return u[a]}};THREE.SVGRenderer.prototype=new THREE.Renderer();THREE.SVGRenderer.prototype.constructor=THREE.CanvasRenderer;THREE.WebGLRenderer=function(){var p=document.createElement("canvas"),k,l,q=new THREE.Matrix4();this.domElement=p;this.autoClear=true;n();r();this.setSize=function(a,b){p.width=a;p.height=b;k.viewport(0,0,p.width,p.height)};this.clear=function(){k.clear(k.COLOR_BUFFER_BIT|k.DEPTH_BUFFER_BIT)};this.render=function(J,O){var N,G,g,f,h,e,P,I,c,H,K,L,b,M,a,Q,R,S,T;if(this.autoClear){this.clear()}for(c=0,H=J.objects.length;c<H;c++){g=J.objects[c];if(g instanceof THREE.Mesh){if(!g.__webGLVertexBuffer){h=[];e=[];P=[];I=0;for(K=0,L=g.geometry.faces.length;K<L;K++){N=g.geometry.faces[K];G=N.color;if(N instanceof THREE.Face3){Q=g.geometry.vertices[N.a].position;R=g.geometry.vertices[N.b].position;S=g.geometry.vertices[N.c].position;h.push(Q.x,Q.y,Q.z);h.push(R.x,R.y,R.z);h.push(S.x,S.y,S.z);P.push(G.r,G.g,G.b,G.a);P.push(G.r,G.g,G.b,G.a);P.push(G.r,G.g,G.b,G.a);e.push(I,I+1,I+2);I+=3}else{if(N instanceof THREE.Face4){Q=g.geometry.vertices[N.a].position;R=g.geometry.vertices[N.b].position;S=g.geometry.vertices[N.c].position;T=g.geometry.vertices[N.d].position;h.push(Q.x,Q.y,Q.z);h.push(R.x,R.y,R.z);h.push(S.x,S.y,S.z);h.push(T.x,T.y,T.z);P.push(G.r,G.g,G.b,G.a);P.push(G.r,G.g,G.b,G.a);P.push(G.r,G.g,G.b,G.a);P.push(G.r,G.g,G.b,G.a);e.push(I,I+1,I+2);e.push(I,I+2,I+3);I+=4}}}if(!h.length){continue}g.__webGLVertexBuffer=k.createBuffer();k.bindBuffer(k.ARRAY_BUFFER,g.__webGLVertexBuffer);k.bufferData(k.ARRAY_BUFFER,new WebGLFloatArray(h),k.STATIC_DRAW);g.__webGLColorBuffer=k.createBuffer();k.bindBuffer(k.ARRAY_BUFFER,g.__webGLColorBuffer);k.bufferData(k.ARRAY_BUFFER,new WebGLFloatArray(P),k.STATIC_DRAW);g.__webGLFaceBuffer=k.createBuffer();k.bindBuffer(k.ELEMENT_ARRAY_BUFFER,g.__webGLFaceBuffer);k.bufferData(k.ELEMENT_ARRAY_BUFFER,new WebGLUnsignedShortArray(e),k.STATIC_DRAW);g.__webGLFaceCount=e.length}q.multiply(O.matrix,g.matrix);m(q,l.viewMatrixArray);m(O.projectionMatrix,l.projectionMatrixArray);k.uniformMatrix4fv(l.viewMatrix,false,l.viewMatrixArray);k.uniformMatrix4fv(l.projectionMatrix,false,l.projectionMatrixArray);k.bindBuffer(k.ARRAY_BUFFER,g.__webGLVertexBuffer);k.vertexAttribPointer(l.position,3,k.FLOAT,false,0,0);for(b=0,M=g.material.length;b<M;b++){f=g.material[b];if(f instanceof THREE.MeshColorFillMaterial){if(!f.__webGLColorBuffer){P=[];for(a=0;a<g.__webGLFaceCount;a++){P.push(f.color.r,f.color.g,f.color.b,f.color.a)}f.__webGLColorBuffer=k.createBuffer();k.bindBuffer(k.ARRAY_BUFFER,f.__webGLColorBuffer);k.bufferData(k.ARRAY_BUFFER,new WebGLFloatArray(P),k.STATIC_DRAW)}k.bindBuffer(k.ARRAY_BUFFER,f.__webGLColorBuffer);k.vertexAttribPointer(l.color,4,k.FLOAT,false,0,0)}else{if(f instanceof THREE.MeshFaceColorFillMaterial){k.bindBuffer(k.ARRAY_BUFFER,g.__webGLColorBuffer);k.enableVertexAttribArray(l.color);k.vertexAttribPointer(l.color,4,k.FLOAT,false,0,0)}}}k.bindBuffer(k.ELEMENT_ARRAY_BUFFER,g.__webGLFaceBuffer);k.drawElements(k.TRIANGLES,g.__webGLFaceCount,k.UNSIGNED_SHORT,0)}}};function n(){try{k=p.getContext("experimental-webgl")}catch(a){}if(!k){alert("WebGL not supported");throw"cannot create webgl context"}k.clearColor(0,0,0,1);k.clearDepth(1);k.enable(k.DEPTH_TEST);k.depthFunc(k.LEQUAL);k.enable(k.BLEND);k.blendFunc(k.SRC_ALPHA,k.ONE_MINUS_SRC_ALPHA);k.clearColor(0,0,0,0)}function r(){l=k.createProgram();k.attachShader(l,j("fragment",["varying vec4 vcolor;","void main(){","gl_FragColor = vcolor;","}"].join("")));k.attachShader(l,j("vertex",["attribute vec3 position;","attribute vec4 color;","uniform mat4 viewMatrix;","uniform mat4 projectionMatrix;","varying vec4 vcolor;","void main(void) {","vcolor = color;","gl_Position = projectionMatrix * viewMatrix * vec4( position, 1 );","}"].join("")));k.linkProgram(l);if(!k.getProgramParameter(l,k.LINK_STATUS)){alert("Could not initialise shaders")}k.useProgram(l);l.viewMatrix=k.getUniformLocation(l,"viewMatrix");l.projectionMatrix=k.getUniformLocation(l,"projectionMatrix");l.color=k.getAttribLocation(l,"color");k.enableVertexAttribArray(l.color);l.position=k.getAttribLocation(l,"position");k.enableVertexAttribArray(l.position);l.viewMatrixArray=new WebGLFloatArray(16);l.projectionMatrixArray=new WebGLFloatArray(16)}function j(b,c){var a;if(b=="fragment"){a=k.createShader(k.FRAGMENT_SHADER)}else{if(b=="vertex"){a=k.createShader(k.VERTEX_SHADER)}}k.shaderSource(a,c);k.compileShader(a);if(!k.getShaderParameter(a,k.COMPILE_STATUS)){alert(k.getShaderInfoLog(a));return null}return a}function m(b,a){a[0]=b.n11;a[1]=b.n21;a[2]=b.n31;a[3]=b.n41;a[4]=b.n12;a[5]=b.n22;a[6]=b.n32;a[7]=b.n42;a[8]=b.n13;a[9]=b.n23;a[10]=b.n33;a[11]=b.n43;a[12]=b.n14;a[13]=b.n24;a[14]=b.n34;a[15]=b.n44}};THREE.RenderableFace3=function(){this.v1=new THREE.Vector2();this.v2=new THREE.Vector2();this.v3=new THREE.Vector2();this.z=null;this.color=null;this.material=null};THREE.RenderableFace4=function(){this.v1=new THREE.Vector2();this.v2=new THREE.Vector2();this.v3=new THREE.Vector2();this.v4=new THREE.Vector2();this.z=null;this.color=null;this.material=null};THREE.RenderableParticle=function(){this.x=null;this.y=null;this.z=null;this.rotation=null;this.scale=new THREE.Vector2();this.color=null;this.material=null};THREE.RenderableLine=function(){this.v1=new THREE.Vector2();this.v2=new THREE.Vector2();this.z=null;this.color=null;this.material=null};var TWEEN_MANAGER=TWEEN_MANAGER||(function(){var a,c,b=[];this.add=function(e){b.push(e)};this.remove=function(g){for(var f=0,e=b.length;f<e;f++){if(g==b[f]){b.splice(f,1);return}}};this.update=function(){a=0;c=new Date().getTime();while(a<b.length){b[a].update(c)?a++:b.splice(a,1)}};return this})(),TWEEN=TWEEN||{};TWEEN.Tween=function(b){TWEEN_MANAGER.add(this);var h=b,g={},c={},e=1000,a=new Date().getTime(),j=TWEEN.Easing.Elastic.EaseInOut,k=null,f=null;this.to=function(n,l){e=n*1000;for(var m in l){if(h[m]===null){continue}g[m]=h[m];c[m]=l[m]-h[m]}return this};this.delay=function(l){a+=l*1000;return this};this.easing=function(l){j=l;return this};this.onUpdate=function(l){k=l;return this};this.onComplete=function(l){f=l;return this};this.update=function(n){var m,l;if(n<a){return true}l=n-a;if(l>e){if(f!==null){f()}return false}for(m in c){h[m]=j(l,g[m],c[m],e)}if(k!==null){k()}return true};this.destroy=function(){TWEEN_MANAGER.remove(this)}};TWEEN.Easing={Back:{},Elastic:{},Expo:{},Linear:{},Sine:{}};TWEEN.Easing.Back.EaseIn=function(e,a,h,g){var f=1.70158;return h*(e/=g)*e*((f+1)*e-f)+a};TWEEN.Easing.Back.EaseOut=function(e,a,h,g){var f=1.70158;return h*((e=e/g-1)*e*((f+1)*e+f)+1)+a};TWEEN.Easing.Back.EaseInOut=function(e,a,h,g){var f=1.70158;if((e/=g/2)<1){return h/2*(e*e*(((f*=(1.525))+1)*e-f))+a}return h/2*((e-=2)*e*(((f*=(1.525))+1)*e+f)+2)+a};TWEEN.Easing.Elastic.EaseIn=function(g,e,l,k){if(g==0){return e}if((g/=k)==1){return e+l}var j=k*0.3;var f=l;var h=j/4;return -(f*Math.pow(2,10*(g-=1))*Math.sin((g*k-h)*(2*Math.PI)/j))+e};TWEEN.Easing.Elastic.EaseOut=function(g,e,l,k){if(g==0){return e}if((g/=k)==1){return e+l}var j=k*0.3;var f=l;var h=j/4;return(f*Math.pow(2,-10*g)*Math.sin((g*k-h)*(2*Math.PI)/j)+l+e)};TWEEN.Easing.Elastic.EaseInOut=function(g,e,l,k){if(g==0){return e}if((g/=k/2)==2){return e+l}var j=k*(0.3*1.5);var f=l;var h=j/4;if(g<1){return -0.5*(f*Math.pow(2,10*(g-=1))*Math.sin((g*k-h)*(2*Math.PI)/j))+e}return f*Math.pow(2,-10*(g-=1))*Math.sin((g*k-h)*(2*Math.PI)/j)*0.5+l+e};TWEEN.Easing.Expo.EaseIn=function(e,a,g,f){return(e==0)?a:g*Math.pow(2,10*(e/f-1))+a};TWEEN.Easing.Expo.EaseOut=function(e,a,g,f){return(e==f)?a+g:g*(-Math.pow(2,-10*e/f)+1)+a};TWEEN.Easing.Expo.EaseInOut=function(e,a,g,f){if(e==0){return a}if(e==f){return a+g}if((e/=f/2)<1){return g/2*Math.pow(2,10*(e-1))+a}return g/2*(-Math.pow(2,-10*--e)+2)+a};TWEEN.Easing.Linear.EaseNone=function(e,a,g,f){return g*e/f+a};TWEEN.Easing.Linear.EaseIn=function(e,a,g,f){return g*e/f+a};TWEEN.Easing.Linear.EaseOut=function(e,a,g,f){return g*e/f+a};TWEEN.Easing.Linear.EaseInOut=function(e,a,g,f){return g*e/f+a};TWEEN.Easing.Sine.EaseIn=function(e,a,g,f){return -g*Math.cos(e/f*(Math.PI/2))+g+a};TWEEN.Easing.Sine.EaseInOutSine=function(e,a,g,f){return -g/2*(Math.cos(Math.PI*e/f)-1)+a};TWEEN.Easing.Sine.EaseOut=function(e,a,g,f){return g*Math.sin(e/f*(Math.PI/2))+a};var MANUAL_TWEEN=MANUAL_TWEEN||{};MANUAL_TWEEN.Manager=function(){var a=[];this.add=function(b){a.push(b)};this.remove=function(e){for(var c=0,b=a.length;c<b;c++){if(e==a[c]){a.splice(c,1);return}}};this.update=function(e){for(var c=0,b=a.length;c<b;c++){a[c].update(e)}}};MANUAL_TWEEN.Tween=function(b,k){var j=b,h={},c={},f={},e=1000,a=0,l=TWEEN.Easing.Linear.EaseNone,m=null,g=null;this.to=function(q,n){e=q*1000;for(var p in n){if(j[p]===null){continue}h[p]=j[p];c[p]=n[p]-j[p];f[p]=n[p]}return this};this.delay=function(n){a+=n*1000;return this};this.easing=function(n){l=n;return this};this.update=function(q){var p,n;if(q<a){for(p in h){j[p]=h[p]}return}n=q-a;if(n>=e){for(p in f){j[p]=f[p]}return}for(p in c){j[p]=l(n,h[p],c[p],e)}}};function styleElement(c,f){var b=f.split(";");for(var a=0;a<b.length;a++){var e=b[a].split(":");if(e.length==2){c.style[e[0].replace(" ","")]=e[1].replace(" ","")}}}function disableButton(a){a.disabled=true;a.style.cursor="default";a.style.background=a.style.backgroundColor="#aaa"}function enableButton(a){a.disabled=false;a.style.cursor="pointer";a.style.background=a.style.backgroundColor="#000"}var Boid=function(){var c=new THREE.Vector3(),g,f,h,k,j,e=100,a=3,b=0.1,l=false;this.position=new THREE.Vector3();this.velocity=new THREE.Vector3();g=new THREE.Vector3();this.setGoal=function(m){j=m};this.setAvoidWalls=function(m){l=m};this.setWorldSize=function(n,m,p){f=n;h=m;c;k=p};this.run=function(m){if(l){c.set(-f,this.position.y,this.position.z);c=this.avoid(c);c.multiplyScalar(5);g.addSelf(c);c.set(f,this.position.y,this.position.z);c=this.avoid(c);c.multiplyScalar(5);g.addSelf(c);c.set(this.position.x,-h,this.position.z);c=this.avoid(c);c.multiplyScalar(5);g.addSelf(c);c.set(this.position.x,h,this.position.z);c=this.avoid(c);c.multiplyScalar(5);g.addSelf(c);c.set(this.position.x,this.position.y,-k);c=this.avoid(c);c.multiplyScalar(5);g.addSelf(c);c.set(this.position.x,this.position.y,k);c=this.avoid(c);c.multiplyScalar(5);g.addSelf(c)}if(Math.random()>0.5){this.flock(m)}this.move()};this.flock=function(m){if(j){g.addSelf(this.reach(j,0.005))}g.addSelf(this.alignment(m));g.addSelf(this.cohesion(m));g.addSelf(this.separation(m))};this.move=function(){this.velocity.addSelf(g);var m=this.velocity.length();if(m>a){this.velocity.divideScalar(m/a)}this.position.addSelf(this.velocity);g.set(0,0,0)};this.checkBounds=function(){if(this.position.x>f){this.position.x=-f}if(this.position.x<-f){this.position.x=f}if(this.position.y>h){this.position.y=-h}if(this.position.y<-h){this.position.y=h}if(this.position.z>k){this.position.z=-k}if(this.position.z<-k){this.position.z=k}};this.avoid=function(n){var m=new THREE.Vector3();m.copy(this.position);m.subSelf(n);m.multiplyScalar(1/this.position.distanceToSquared(n));return m};this.repulse=function(n){var p=this.position.distanceTo(n);if(p<150){var m=new THREE.Vector3();m.copy(this.position);m.subSelf(n);m.multiplyScalar(0.5/this.position.distanceTo(n));g.addSelf(m)}};this.reach=function(p,n){var m=new THREE.Vector3();m.copy(p);m.subSelf(this.position);m.multiplyScalar(n);return m};this.alignment=function(s){var t,p=new THREE.Vector3(),r=0;for(var q=0,n=s.length;q<n;q++){if(Math.random()>0.6){continue}t=s[q];distance=t.position.distanceTo(this.position);if(distance>0&&distance<=e){p.addSelf(t.velocity);r++}}if(r>0){p.divideScalar(r);var m=p.length();if(m>b){p.divideScalar(m/b)}}return p};this.cohesion=function(r){var u,m,p=new THREE.Vector3(),t=new THREE.Vector3(),s=0;for(var q=0,v=r.length;q<v;q++){if(Math.random()>0.6){continue}u=r[q];m=u.position.distanceTo(this.position);if(m>0&&m<=e){p.addSelf(u.position);s++}}if(s>0){p.divideScalar(s)}t.copy(p);t.subSelf(this.position);var n=t.length();if(n>b){t.divideScalar(n/b)}return t};this.separation=function(q){var s,t,n=new THREE.Vector3(),r=new THREE.Vector3();for(var p=0,m=q.length;p<m;p++){if(Math.random()>0.6){continue}s=q[p];t=s.position.distanceTo(this.position);if(t>0&&t<=e){r.copy(this.position);r.subSelf(s.position);r.normalize();r.divideScalar(t);n.addSelf(r)}}return n}};var ImprovedNoise=function(){var c=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180];for(var b=0;b<256;b++){c[256+b]=c[b]}function e(g){return g*g*g*(g*(g*6-15)+10)}function a(j,h,g){return h+j*(g-h)}function f(m,g,p,n){var l=m&15;var k=l<8?g:p,j=l<4?p:l==12||l==14?g:n;return((l&1)==0?k:-k)+((l&2)==0?j:-j)}return{noise:function(r,p,n){var K=Math.floor(r),J=Math.floor(p),I=Math.floor(n);var m=K&255,l=J&255,k=I&255;r-=K;p-=J;n-=I;var h=r-1,s=p-1,q=n-1;var D=e(r),C=e(p),t=e(n);var F=c[m]+l,H=c[F]+k,G=c[F+1]+k,E=c[m+1]+l,j=c[E]+k,g=c[E+1]+k;return a(t,a(C,a(D,f(c[H],r,p,n),f(c[j],h,p,n)),a(D,f(c[G],r,s,n),f(c[g],h,s,n))),a(C,a(D,f(c[H+1],r,p,q),f(c[j+1],h,p,n-1)),a(D,f(c[G+1],r,s,q),f(c[g+1],h,s,q))))}}};shuffle=function(e){for(var b,a,c=e.length;c;b=parseInt(Math.random()*c),a=e[--c],e[c]=e[b],e[b]=a){}return e};function unique(c){var f=new Array();o:for(var e=0,g=c.length;e<g;e++){for(var b=e+1;b<g;b++){if(c[b]==c[e]){continue o}}f[f.length]=c[e]}return f}function sprite(){}sprite.prototype={create:function(c,b,f){this.image=new Image();var a=this;this.image.onload=function(){a.onImage()};var e=new Date();this.image.src=c+"?"+e.getTime();this.step=0;this.running=true;this.framerate=f;this.size=b;this.off_x=0;this.off_y=0;this.loop=true;this.offset=0},onImage:function(){this.steps=this.image.height/this.size},blit:function(a,c,b,f){if(!this.image.complete){return}if(this.loop){var e=((f+this.offset)%1);this.step=Math.floor(e*this.framerate)%this.steps}else{this.step=Math.floor(f*this.framerate);if(this.step>(this.steps-1)){this.step=this.steps-1}}a.drawImage(this.image,0,this.step*this.size,this.image.width,this.size,c-this.image.width/2+this.off_x,b-this.size/2+this.off_y,this.image.width,this.size)},start:function(){this.running=true},stop:function(){this.running=false;this.step=0}};function calculateDistance(e,b){var c=b.lat()-e.lat();var a=b.lng()-e.lng();return Math.sqrt(c*c+a*a)}function ProjMap(a,b){this.scale=1;this.deviation=0;this.poff=null;this.copyrights=[];this.invalidate_c=false;this.copyright_str="";this.canvas=null;this.ctx=null;this.logo=new Image();this.vignette=new Image();this.cloud=new Image();this.logo.src="http://cdn.thewildernessdowntown.com/files/img/poweredby.png";this.vignette.src="http://cdn.thewildernessdowntown.com/files/img/vignette.png";this.cloud.src="http://cdn.thewildernessdowntown.com/files/img/PerlinNoise2d.png";this.birds1=false;this.birds2=false;this.birds3=false;this.perspective=0.35;this.debug=false;this.map_version=94;this.tweener=new MANUAL_TWEEN.Manager();this.tween_zoom=0;this.tween_zoom2=0;this.tween_angle1=0;this.tween_angle2=0;this.tween_angle3=0;this.tween_perspective=0;this.tween_alpha=0;this.tilemap=[];this.zoom=null;this.int_zoom=null;this.tile_zoom=null;this.real_zoom=null;this.zoom_factor=null;this.starting_zoom=19;this.start_time=0;this.projection=null;this.map_type=1;this.extent=3;this.tileorigin=null;this.bird=null;this.bird2=null;this.runner=null;this.standing=null;this.load_failed=false;this.tint_alpha=0.5;this.tint_colour="#704214";this.running=false;this.rotating=false;this.clouds=false;this.zooming=false;this.clouds_alpha=0;this.white_alpha=0;this.texture_angle=0;this.position=null;this.runner_position=null;this.pos_offset=null;this.current_position=null;this.final_coordinates=null;this.original_coordinates=null;this.position_offset={x:0,y:0};this.angle=0;this.runner_angle=0;this.trees=false;this.tree=null;this.trees_array=[];this.birds_array=[];this.birds2_array=[];this.birds3_array=[];this.last_time=null;this.spans=null}ProjMap.prototype={create:function(a){this.locationObject=a;this.projection=new MercatorProjection();this.canvas=document.createElement("canvas");this.canvas.style.position="absolute";this.ctx=this.canvas.getContext("2d");this.texture=document.createElement("canvas");this.texture.width=320;this.texture.height=240;this.texture_ctx=this.texture.getContext("2d");this.runner=new sprite();this.standing=new sprite();this.tree=new sprite();this.bird=new sprite();this.bird2=new sprite();this.runner.create("http://cdn.thewildernessdowntown.com/files/img/running.png",15,24);this.standing.create("http://cdn.thewildernessdowntown.com/files/img/runner_static.png",7,1);this.tree.create("http://cdn.thewildernessdowntown.com/files/img/treeSprite_2.png",64,30);this.bird.create("http://cdn.thewildernessdowntown.com/files/img/bird3.png",16,22);this.bird2.create("http://cdn.thewildernessdowntown.com/files/img/birdb.png",64,22);this.tree.loop=false;this.init();this.addTrees();this.addBirds1();this.addBirds2();this.addBirds3()},init:function(){this.perspective=0.35;this.default_zoom=19;this.deviation=0;this.tween_zoom=0;this.tween_zoom2=0;this.tween_angle1=0;this.tween_angle2=0;this.tween_angle3=0;this.tween_perspective=0;this.tween_alpha=0;this.angle=0;this.runner_angle=0;this.running=false;this.rotating=false;this.clouds=false;this.zooming=false;this.clouds_alpha=0;this.white_alpha=0;this.texture_angle=0;this.precalc();this.setZoom(this.default_zoom,true);this.preloadImages()},setScene:function(a){if(a==1){this.tint_alpha=0.4;this.tint_colour="#85622a"}if(a==2){this.tint_alpha=0;this.tint_colour="#704214"}},addTrees:function(){var h=[];for(var f=0;f<50;f++){var n={pos:this.locationObject.getPosition(f/50),d:0.0001};h.push(n)}h.push({pos:this.locationObject.getLocation(),d:0.0001});for(var f=0;f<50;f++){var n=this.locationObject.getPosition(f/100);var p,l;do{p=n.lat()+0.0005-Math.random()*0.001;l=n.lng()+0.0005-Math.random()*0.001;var q=true;for(var e=0;e<h.length;e++){var B=p-h[e].pos.lat();var z=l-h[e].pos.lng();var c=Math.sqrt(B*B+z*z);if(c<h[e].d){q=false;break}}}while(!q);this.trees_array.push({pos:new google.maps.LatLng(p,l),a:Math.random()*(2*Math.PI),scale:0.75+1.25*Math.random(),offset:12.562+Math.random()*21})}var b=0.0006;var A=0.00025;var h=[];h.push({pos:this.locationObject.getLocation(),d:0.0005});var n=this.locationObject.getLocation();for(var f=0;f<150;f++){var p,l;do{p=n.lat()+0.00075-Math.random()*0.0015;l=n.lng()+0.00075-Math.random()*0.0015;var q=true;for(var e=0;e<h.length;e++){var B=p-h[e].pos.lat();var z=l-h[e].pos.lng();var c=Math.sqrt(B*B+z*z);if(c<h[e].d){q=false;break}}}while(!q);this.trees_array.push({pos:new google.maps.LatLng(p,l),a:Math.random()*(2*Math.PI),scale:0.75+1.5*Math.random(),offset:31.875-Math.random()*6})}b=0.00035;A=0.00015;for(var v=-b;v<b;v+=A){for(var m=-b;m<b;m+=A){var p=n.lat()+v+(0.00001-Math.random()*0.00005);var l=n.lng()+m+(0.00001-Math.random()*0.00005);this.trees_array.push({pos:new google.maps.LatLng(p,l),a:Math.random()*(2*Math.PI),scale:0.75+1.5*Math.random(),offset:33.875-Math.random()*2})}}for(var f=0;f<this.trees_array.length;f++){var u=Math.random()*2*Math.PI;var b=300+Math.random()*300;var w=3+Math.random()*2;var g={x:(b*Math.cos(u))/w,y:(b*Math.sin(u))/w};this.trees_array[f].bird={a:u,r:b,d:g,t:w,s:null,o:Math.random()}}this.trees_array.sort(function(j,a){return j.scale-a.scale})},addBirds1:function(){for(var e=0;e<100;e++){var c=-1-Math.random()*0.5;var h=1-Math.random()*2;var b=1+Math.random()*0.5;var f=1-Math.random()*2-Math.random()*0.5;var k=1.5*(0.025+Math.random()*0.05);var m=(b-c)/k;var l=(f-h)/k;var g=Math.atan2(l,m);this.birds_array.push({start:{x:c,y:h},end:{x:b,y:f},d:{x:m,y:l},a:g,t:k,o:Math.random(),scale:0.4+0.4*Math.random()})}},addBirds2:function(){for(var e=0;e<50;e++){var c=1-Math.random()*2;var h=1+Math.random()*0.5;var b=1-Math.random()*2;var f=-1-Math.random()*0.5;var k=3*(0.025+Math.random()*0.05);var m=(b-c)/k;var l=(f-h)/k;var g=Math.atan2(l,m);this.birds2_array.push({start:{x:c,y:h},end:{x:b,y:f},d:{x:m,y:l},a:g,t:k,o:Math.random(),scale:0.5+0.3*Math.random()})}},addBirds3:function(){for(var e=0;e<10;e++){var c=1.5-Math.random()*3;var h=1+Math.random()*0.5;var b=0;var f=-3;var k=3*(0.025+Math.random()*0.05);var m=(b-c)/k;var l=(f-h)/k;var g=Math.atan2(l,m);this.birds3_array.push({start:{x:c,y:h},end:{x:b,y:f},d:{x:m,y:l},a:g,t:k,o:Math.random(),scale:0.75+0.25*Math.random()})}},addCopyright:function(a){if(a!=""){this.copyrights.push(a);this.invalidate_c=true}},fixCopyrights:function(){if(this.invalidate_c){this.copyrights=unique(this.copyrights);this.copyright_str="© 2010 Google, "+this.copyrights.join(", ");this.copyright_str=this.copyright_str.replace(/&amp;/ig,"&");this.canvas.title=this.copyright_str;this.invalidate_c=false}},getCopyrights:function(){return this.copyright_str},loadCopyright:function(a,b){var e="http://maps.google.com/maps/vp?spn=1.2,1.2&t=h&z="+b+"&vp="+a.lat()+","+a.lng()+"&ev=mh&hl=en&country=us";var f=document.getElementsByTagName("head").item(0);var c=document.createElement("script");c.setAttribute("type","text/javascript");c.setAttribute("src",e);f.appendChild(c)},preloadImages:function(){this.tilemap=[];this.load_failed=false;this.setZoom(this.default_zoom,true);var k=this.locationObject.getPosition(0);var b=this.locationObject.getLocation();var e=b.lat()-k.lat();var a=b.lng()-k.lng();for(var c=0;c<1;c+=0.01){var g=new google.maps.LatLng(k.lat()+c*e,k.lng()+c*a);this.loadCopyright(g,this.int_zoom);var f=this.calculateTileFromLatLng(g);this.enableTile(f.x,f.y,true)}var g=this.locationObject.getLocation();for(var h=13;h<20;h++){this.setZoom(h);var f=this.calculateTileFromLatLng(g);this.enableTile(f.x,f.y,true)}this.setZoom(this.default_zoom);this.updateCamera(0)},isPreloaded:function(){for(var c in this.tilemap){var b=this.tilemap[c];for(var a in b){if(!b[a].complete){return false}}}if(!this.tree.image.complete){return false}if(!this.bird.image.complete){return false}return true},setZoom:function(l,g){if(l==this.zoom&&!g){return}if(l>21.99){l=21.99}this.zoom=l;this.int_zoom=Math.floor(l);this.zoom2=Math.pow(2,this.int_zoom);this.tile_zoom=(1+(this.zoom-this.int_zoom))/this.scale;var c=(1+this.int_zoom)/this.scale;this.real_zoom=1/(20-this.zoom);var a=this.projection.fromLatLngToPoint(gLocation.getLocation());var m=new google.maps.Point(a.x*this.zoom2,a.y*this.zoom2);var s=new google.maps.Point(Math.floor(m.x/MERCATOR_RANGE),Math.floor(m.y/MERCATOR_RANGE));this.tileorigin=s;var n=new google.maps.Point((s.x+0.5)*MERCATOR_RANGE,(s.y+0.5)*MERCATOR_RANGE);var e=new google.maps.Point(n.x/this.zoom2,n.y/this.zoom2);var p=this.projection.fromPointToLatLng(e);this.offset=new google.maps.LatLng(p.lat(),p.lng());var f=this.projection.fromLatLngToPoint(this.offset);this.poff=new google.maps.Point(f.x*this.zoom2,f.y*this.zoom2);if(this.last_time!=null){this.updateCamera(this.last_time)}var a=new google.maps.Point(0.00001,0.00001);this.zoom_factor=new google.maps.Point(a.x*this.zoom2,a.y*this.zoom2);this.final_coordinates=this.getWorldPosition(this.locationObject.getPosition(1));this.original_coordinates=this.getWorldPosition(this.locationObject.getPosition(0));var h=this.locationObject.getPosition(0);var j=this.locationObject.getPosition(1);var b=this.getWorldPosition(h);var k=this.getWorldPosition(j);var r=k.x-b.x;var q=k.y-b.y;this.angle=-Math.atan2(q,r)},setSize:function(a,b){this.canvas.width=a/this.scale;this.canvas.height=b/this.scale;this.canvas.style.width=a+"px";this.canvas.style.height=b+"px";this.texture.width=a/this.scale;this.texture.height=b/this.scale;this.precalc()},precalc:function(){this.spans=[];var t=-0.5*this.texture.width;var s=0.5*this.texture.width;var b=-0.5*this.texture.height;var a=0.5*this.texture.height-1;var p=-this.perspective*this.texture.width;var h=this.perspective*this.texture.width;var r=180*Math.PI/180;var n=-t/Math.tan(0.5*r);var m=-p/Math.tan(0.5*r);var q=((a/m)-(b/n))/this.canvas.height;var k=((1/m)-(1/n))/this.canvas.height;var w=(p-t)/this.canvas.height;var g=0.5*this.canvas.height;var f=b/n;var e=1/n;var u=0;for(var j=g;j>-g;j--){f+=q;e+=k;var l=(f/e)+0.5*this.texture.height;u=(g-j)*w;this.spans.push({x:0,y:this.canvas.height-(j+g),w:this.canvas.width,h:1,u1:t+u+0.5*this.texture.width,u2:s-u+0.5*this.texture.width,v1:l,v2:l+1});u+=w}},getWorldPosition:function(b){var a=this.projection.fromLatLngToPoint(b);var c=new google.maps.Point(a.x*this.zoom2,a.y*this.zoom2);c.x-=this.poff.x;c.y-=this.poff.y;return c},render:function(f,c){var w=0.5*this.texture.width;var b=0.5*this.texture.height;if(this.running){this.updateCamera(c,f)}var h=this.angle+this.texture_angle-0.5*Math.PI;if(this.rotating){h=this.texture_angle}this.texture_ctx.save();this.texture_ctx.translate(w,b);this.texture_ctx.scale(this.tile_zoom,this.tile_zoom);this.texture_ctx.rotate(h);this.texture_ctx.translate(this.position_offset.x,this.position_offset.y);this.texture_ctx.fillStyle="#000";if(this.debug){this.texture_ctx.strokeStyle="#f0f";this.texture_ctx.beginPath()}var e=this.earthquake?257:256;for(var u in this.tilemap[this.int_zoom]){var y=this.tilemap[this.int_zoom][u];var r=y.x*y.w-128-this.position.x;var n=y.y*y.h-128-this.position.y;if((r+y.w)>=-this.texture.width&&(n+y.h)>=-this.texture.height&&r<=2*this.texture.width&&n<=2*this.texture.height){if(y.complete){this.texture_ctx.drawImage(y.image,0,0,255,255,r,n,e,e)}else{this.texture_ctx.fillRect(r,r,y.w,y.h)}if(this.debug){this.texture_ctx.moveTo(r,n);this.texture_ctx.lineTo(r+y.w,n);this.texture_ctx.lineTo(r+y.w,n+y.h);this.texture_ctx.lineTo(r,n+y.h);this.texture_ctx.lineTo(r,n)}}}if(this.debug){this.texture_ctx.stroke()}this.texture_ctx.restore();this.texture_ctx.save();this.texture_ctx.translate(w,b);this.texture_ctx.translate(this.position_offset.x,this.position_offset.y);this.texture_ctx.scale(this.tile_zoom,this.tile_zoom);this.texture_ctx.rotate(h);this.texture_ctx.globalAlpha=0.7;var l=this.runner_position.x-this.position.x;var k=this.runner_position.y-this.position.y;this.texture_ctx.translate(l,k);this.texture_ctx.scale(this.zoom_factor.x,this.zoom_factor.y);this.texture_ctx.scale(0.2,0.2);if(this.running){this.texture_ctx.rotate(this.runner_angle+0.5*Math.PI);if(this.debug){this.texture_ctx.globalAlpha=1;this.texture_ctx.fillStyle="#f0f";this.texture_ctx.fillRect(-5,-5,10,10);this.texture_ctx.globalAlpha=0.5}this.runner.blit(this.texture_ctx,0,0,f)}else{this.standing.blit(this.texture_ctx,0,0,f)}this.texture_ctx.restore();if(this.birds1){this.texture_ctx.save();this.texture_ctx.translate(w,b);for(var u=0;u<this.birds_array.length;u++){var g=this.birds_array[u];var a=f-this.start_time;var l=g.start.x*w+g.d.x*a;var k=g.start.y*b+g.d.y*a;this.texture_ctx.save();this.texture_ctx.translate(l,k);this.texture_ctx.scale(g.scale,g.scale);this.texture_ctx.rotate(g.a+0.5*Math.PI);this.texture_ctx.globalAlpha=0.6+(g.scale-0.4);this.bird.blit(this.texture_ctx,0,0,a+20*g.o);this.texture_ctx.restore()}this.texture_ctx.restore()}if(this.birds2){this.texture_ctx.save();this.texture_ctx.translate(w,b);for(var u=0;u<this.birds2_array.length;u++){var g=this.birds2_array[u];var a=f-this.start_time;var l=g.start.x*w+g.d.x*a;var k=g.start.y*b+g.d.y*a;this.texture_ctx.save();this.texture_ctx.translate(l,k);this.texture_ctx.globalAlpha=0.6+(g.scale-0.3);this.texture_ctx.scale(g.scale,g.scale);this.texture_ctx.rotate(g.a+0.5*Math.PI);this.bird.blit(this.texture_ctx,0,0,a+20*g.o);this.texture_ctx.restore()}this.texture_ctx.restore()}if(this.birds3){this.texture_ctx.save();this.texture_ctx.translate(w,b);for(var u=0;u<this.birds3_array.length;u++){var g=this.birds3_array[u];var a=f-this.start_time;var l=g.start.x*w+g.d.x*a;var k=g.start.y*b+g.d.y*a;this.texture_ctx.save();this.texture_ctx.translate(l,k);var m=g.scale-0.1*a;if(m<0.5){m=0.5}this.texture_ctx.scale(m,m);this.texture_ctx.rotate(g.a+0.5*Math.PI);this.bird2.blit(this.texture_ctx,0,0,a+20*g.o);this.texture_ctx.restore()}this.texture_ctx.restore()}if(this.trees){this.texture_ctx.save();this.texture_ctx.translate(w,b);this.texture_ctx.translate(this.position_offset.x,this.position_offset.y);this.texture_ctx.scale(this.tile_zoom,this.tile_zoom);for(var u=0;u<this.trees_array.length;u++){var q=this.trees_array[u];var a=(f-this.start_time)-q.offset;if(a>0){var v=this.getWorldPosition(q.pos);var l=v.x-this.position.x;var k=v.y-this.position.y;this.texture_ctx.save();this.texture_ctx.rotate(h);this.texture_ctx.translate(l,k);this.texture_ctx.scale(q.scale*1.1,q.scale*1.1);this.texture_ctx.rotate(q.a);this.tree.blit(this.texture_ctx,0,0,a);this.texture_ctx.restore()}else{if(a>-(q.bird.t)){if(q.bird.s==null){q.bird.s=f}var a=(f-q.bird.s);var t=1-(a/q.bird.t);a=q.bird.t-a;var v=this.getWorldPosition(q.pos);var l=v.x-this.position.x;var k=v.y-this.position.y;this.texture_ctx.save();this.texture_ctx.translate(l,k);this.texture_ctx.rotate(h);l=q.bird.d.x*a;k=q.bird.d.y*a;this.texture_ctx.translate(l,k);this.texture_ctx.rotate(q.bird.a-0.5*Math.PI);this.texture_ctx.scale(t,t);this.bird.blit(this.texture_ctx,0,0,f+20*q.bird.o);this.texture_ctx.restore()}}}this.texture_ctx.restore()}if(this.clouds&&this.cloud.complete){this.texture_ctx.save();this.texture_ctx.translate(w,b);this.texture_ctx.globalAlpha=this.clouds_alpha;this.texture_ctx.scale(2,2);this.texture_ctx.rotate(0.25*h);this.texture_ctx.drawImage(this.cloud,-0.5*this.cloud.width,-0.5*this.cloud.height);this.texture_ctx.restore();this.texture_ctx.save();this.texture_ctx.globalAlpha=this.white_alpha;this.texture_ctx.fillStyle="#fff";this.texture_ctx.fillRect(0,0,this.texture.width,this.texture.height);this.texture_ctx.restore()}if(this.debug){this.texture_ctx.save();this.texture_ctx.translate(w,b);this.texture_ctx.translate(this.position_offset.x,this.position_offset.y);this.texture_ctx.scale(this.tile_zoom,this.tile_zoom);this.texture_ctx.rotate(h);var v=this.getWorldPosition(this.locationObject.getLocation());var l=v.x-this.position.x;var k=v.y-this.position.y;this.texture_ctx.save();this.texture_ctx.translate(l,k);this.texture_ctx.scale(this.zoom_factor.x,this.zoom_factor.y);this.texture_ctx.scale(0.1,0.1);this.texture_ctx.fillStyle="#f0f";this.texture_ctx.fillRect(-5,-5,10,10);this.texture_ctx.restore();this.texture_ctx.save();this.texture_ctx.translate(l,k);this.texture_ctx.scale(this.zoom_factor.x,this.zoom_factor.y);this.texture_ctx.scale(0.1,0.1);this.texture_ctx.fillStyle="#f0f";this.texture_ctx.fillRect(-5,-5,10,10);this.texture_ctx.restore();this.texture_ctx.save();this.texture_ctx.strokeStyle="#f0f";this.texture_ctx.beginPath();for(var u=0;u<1;u+=0.1){var v=this.getWorldPosition(this.locationObject.getPosition(u));var l=v.x-this.position.x;var k=v.y-this.position.y;this.texture_ctx.lineTo(l,k);this.texture_ctx.arc(l,k,5,0,2*Math.PI);this.texture_ctx.moveTo(l,k)}this.texture_ctx.stroke();this.texture_ctx.restore();this.texture_ctx.save();this.texture_ctx.fillStyle="#f0f";this.texture_ctx.beginPath();var x=this.locationObject.getRoute();for(var u=0;u<x.length;u++){var v=this.getWorldPosition(x[u]);var l=v.x-this.position.x;var k=v.y-this.position.y;this.texture_ctx.arc(l,k,5,0,2*Math.PI)}this.texture_ctx.fill();this.texture_ctx.restore();this.texture_ctx.restore()}for(var u=0;u<this.spans.length;u++){var m=this.spans[u];this.ctx.drawImage(this.texture,m.u1,m.v1,m.u2-m.u1,m.v2-m.v1,m.x,m.y,m.w,m.h)}if(this.vignette.complete){this.ctx.save();this.ctx.globalAlpha=1*(1-this.white_alpha);this.ctx.drawImage(this.vignette,0,0,this.vignette.width,this.vignette.height,0,0,this.canvas.width,this.canvas.height);this.ctx.restore()}this.frameCount++},updateCamera:function(f,v){var p,n,w;var r=null;if(this.runner_position){r=this.runner_position}var m;var t;var h;var j=this.trees?1.35:1;if(this.trees){var g=34.409/45.409;var e=(1-g);var b=e+((v-244.5931396484375)/34.409)*g;h=this.locationObject.getPosition(e);m=this.locationObject.getPosition(b);t=this.locationObject.getPosition(b+0.005)}else{h=this.locationObject.getPosition(0);m=this.locationObject.getPosition(f);t=this.locationObject.getPosition(f+0.005)}var l=this.locationObject.getLocation();var q=new google.maps.LatLng(l.lat()-h.lat(),l.lng()-h.lng());var x=new google.maps.LatLng(h.lat()+f*j*q.lat(),h.lng()+f*j*q.lng());var k=this.getWorldPosition(m);var u=this.getWorldPosition(x);var s=this.getWorldPosition(t);this.fpos=this.getWorldPosition(l);if(!r){r=k}p=s.x-r.x;n=s.y-r.y;w=Math.atan2(n,p);p=s.x-k.x;n=s.y-k.y;w=Math.atan2(n,p);this.runner_angle=w;var c=this.calculateTileFromLatLng(x);this.position={x:u.x,y:u.y,tile_x:c.x,tile_y:c.y};this.runner_position=k;this.last_time=f;this.enableTile(c.x,c.y,false)},enableTile:function(h,f,k){for(var g=-this.extent;g<=this.extent;g++){for(var j=-this.extent;j<=this.extent;j++){var l=(h+j)+"."+(f+g);if(!this.tilemap[this.int_zoom]){this.tilemap[this.int_zoom]=[]}if(!this.tilemap[this.int_zoom][l]){var c=h+j;var b=f+g;var a;switch(this.map_type){case 1:a="http://khm0.google.com/kh/v="+this.map_version+"&x="+c+"&s=&y="+b+"&z="+this.int_zoom+"&s=Galil";break;case 2:a="http://mt1.google.com/vt/lyrs=m@129&hl=en&x="+c+"&y="+b+"&z="+this.int_zoom+"&s=Gal";break}var e={x:(c-this.tileorigin.x),y:(b-this.tileorigin.y),w:256,h:256,is_critical:k,image:new Image(),complete:false};this.attachImage(e,a);this.tilemap[this.int_zoom][c+"."+b]=e}}}},attachImage:function(b,c){var a=this;b.image.onerror=function(){if(b.is_critical&&!a.load_failed){a.load_failed=true}};b.image.onload=function(){if(RegExp(" AppleWebKit/").test(navigator.userAgent)){var f=document.createElement("canvas");f.width=256;f.height=256;var e=f.getContext("2d");e.drawImage(this,0,0);e.globalAlpha=0.5;e.globalCompositeOperation="darker";e.fillStyle="#704214";e.fillRect(0,0,256,256);e.globalCompositeOperation="lighter";e.drawImage(this,0,0);b.image=f}b.complete=true};b.image.src=c},calculateTileFromLatLng:function(c){var a=this.projection.fromLatLngToPoint(c);var b=new google.maps.Point(a.x*this.zoom2,a.y*this.zoom2);var e=new google.maps.Point(Math.floor(b.x/MERCATOR_RANGE),Math.floor(b.y/MERCATOR_RANGE));return{x:e.x,y:e.y}}};var BitmapSequence=function(c){var b=c;var a=c.length-1;this.position=0;this.get=function(){return b[Math.floor(this.position*a)]}};var Crow=function(){var b=this;THREE.Geometry.call(this);a(5,0,0);a(-5,-2,1);a(-5,0,0);a(-5,-2,-1);a(0,2,-6);a(0,2,6);a(2,0,0);a(-3,0,0);c(0,2,1);c(4,7,6);c(5,6,7);function a(e,g,f){b.vertices.push(new THREE.Vertex(new THREE.Vector3(e,g,f)))}function c(f,e,g){b.faces.push(new THREE.Face3(f,e,g))}};Crow.prototype=new THREE.Geometry();Crow.prototype.constructor=Crow;var Sphere=function(k,m,s,u,t){THREE.Geometry.call(this);var D=m||8,z=s||6;var A,y;var J=Math.max(3,D);var g=Math.max(2,z);var q=[];for(y=0;y<(g+1);y++){var F=y/g;var G=k*Math.cos(F*Math.PI);var f=k*Math.sin(F*Math.PI);var b=[];var a=0;for(A=0;A<J;A++){var C=2*A/J;var M=f*Math.sin(C*Math.PI);var I=f*Math.cos(C*Math.PI);if(!((y==0||y==g)&&A>0)){a=this.vertices.push(new THREE.Vertex(new THREE.Vector3(I,G,M)))-1}b.push(a)}q.push(b)}var e=q.length;for(y=0;y<e;y++){var r=q[y].length;if(y>0){for(A=0;A<r;A++){var c=A==(r-1);var L=q[y][c?0:A+1];var H=q[y][(c?r-1:A)];var E=q[y-1][(c?r-1:A)];var B=q[y-1][c?0:A+1];var w=y/(e-1);var v=(y-1)/(e-1);var n=(A+1)/r;var l=A/r;var h=new THREE.UV(!u?1-n:n,t?1-w:w);var x=new THREE.UV(!u?1-l:l,t?1-w:w);var p=new THREE.UV(!u?1-l:l,t?1-v:v);var K=new THREE.UV(!u?1-n:n,t?1-v:v);if(y<(q.length-1)){this.faces.push(new THREE.Face3(L,H,E));this.uvs.push([h,x,p])}if(y>1){this.faces.push(new THREE.Face3(L,E,B));this.uvs.push([h,p,K])}}}}};Sphere.prototype=new THREE.Geometry();Sphere.prototype.constructor=Sphere;var SeededRandom=function(){var a=0;var b=[0.855,0.075,0.33,0.715,0.165,0.45,0.905,0.25,0.665,0.335,0.0115,0.41,0.895,0.735,0.86,0.54,0.94,0.725,0.815,0.37,0.545,0.31,0.15,0.485,0.635,0.765,0.28,0.195,0.34,0.475,0.18,0.285,0.47,0.95,0.7,0.135,0.995,0.755,0.575,0.04,0.315,0.87,0.885,0.59,0.13,0.125,0.48,0.75,0.43,0.42,0.045,0.215,0.64,0.66,0.63,0.9,0.555,0.1,0.84,0.175,0.73,0.11,0.495,0.415,0.71,0.99,0.405,0.455,0.395,0.645,0.275,0.52,0.65,0.235,0.825,0.58,0.8,0.775,0.305,0.17,0.435,0.03,0.62,0.68,0.74,0.505,0.685,0.36,0.96,0.56,0.225,0.035,0.98,0.865,0.155,0.27,0.12,0.83,0.345,0.61,0.08,0.745,0.365,0.845,0.065,0.965,0.16,0.67,0.535,0.51,0.705,0.3,0.2,0.085,0.24,0.565,0.09,0.465,0.875,0.82,0.055,0.265,0.88,0.29,0.79,0.22,0.02,0.605,0.93,0.92,0.935,0.5,0.185,0.785,0.85,0.625,0.78,0.06,0.46,0.89,0.21,0.26,0.325,0.91,0.23,0.05,0.32,0.145,0.945,0.97,0.425,0.205,0.39,0.805,0.77,0.075,0.675,0.025,0.245,0.35,0.015,0,0.4,0.655,0.53,0.975,0.295,0.005,0.49,0.07,0.69,0.955,0.595,0.57,0.615,0.81,0.14,0.445,0.985,0.695,0.795,0.255,0.19,0.55,0.915,0.44,0.385,0.76,0.515,0.01,0.925,0.585,0.72,0.375,0.6,0.525,0.835,0.355,0.38,0.105];this.next=function(){var c=b[a];a=a+1;a%=b.length;return c};this.reset=function(){a=0}};var __seed=new SeededRandom();function Memory(c){this.content=c;this.context=c.context;this.isRecording=false;this.isPlaying=false;this.actions=[];var e=0;var a=0;var b=0;var f="";this.onCompleteFunction=null;this.play=function(g){this.isPlaying=true;this.onCompleteFunction=g;c.isRedrawing=true;c.loadMessage(f);c.randomizer.reset();a=0;b=0};this.add=function(j,h,g){if(this.actions.length<1&&j==2){return}this.actions.push(new Action(a,j,h,g))};this.save=function(){var g="";var k;var j="";for(var h=0;h<this.actions.length;h++){k=this.actions[h];if(k!=null){g=k.str()}else{g=""}j+=g+"|"}return this.content.messageContents+"$"+j};this.read=function(p){if(p==undefined||p==""){console.log(arguments.callee.caller.toString());return}this.forget();var m=p.split("$");var n=m[1];f=m[0];var h=n.split("|");var k=0;for(var j=0;j<h.length-1;j++){var g=h[j];var l=g.split(" ");if(j==0){k=parseInt(l[0])}if(j==h.length-2){e=parseInt(l[0])-k}this.actions[j]=ActionFromString(g,k)}};this.stop=function(){this.isPlaying=false};this.forget=function(){this.actions=[];e=0};this.step=function(){if(this.isPlaying){if(a>=e){this.stop();if(this.onCompleteFunction!=null){this.onCompleteFunction()}c.isRedrawing=false;return}var g=this.actions[b];while(g!=null&&g.stepNumber==a){if(g.type==0){this.content.brush.strokeStart(g.mouseX,g.mouseY)}else{if(g.type==1){this.content.brush.stroke(g.mouseX,g.mouseY)}else{this.content.brush.strokeEnd()}}b++;g=this.actions[b]}a++}else{if(this.isRecording){e++;a++}}};this.beginRecord=function(){this.isRecording=true};this.endRecord=function(){this.isRecording=false}}function ActionFromString(c,a){var b=c.split(" ");return new Action(parseInt(b[0])-a,parseInt(b[1]),parseInt(b[2]),parseInt(b[3]))}function Action(a,e,c,b){this.stepNumber=a;this.type=e;this.mouseX=c;this.mouseY=b;this.str=function(){return this.stepNumber+" "+this.type+" "+this.mouseX+" "+this.mouseY}}function Brush(c,a){this.clearPointsOnMouseUp=false;this.drawShaded=true;this.context=a;this.content=c;this.wasStroking=false;this.stroking=false;this.randomizer=(c&&c.randomizer)?c.randomizer:__seed;this.mouseX;this.mouseY;this.prevMouseX;this.prevMouseY;this.points=[];this.allPoints=[];this.angle=0;this.velocity=0;this.pvelocity=0;this.curCount=0;this.defaultLineWidth=1;this.defaultStrokeOpacity=0.95;this.pointsEvery=50;this.getStrokeOpacity=function(){return this.defaultStrokeOpacity};this.getLineWidth=function(){return this.defaultLineWidth};var b=function(h){for(var f,e,g=h.length;g;f=parseInt(Math.random()*g),e=h[--g],h[g]=h[f],h[f]=e){}return h}}Brush.prototype.strokeStart=function(b,a){this.wasStroking=false;this.stroking=true;this.mouseX=this.prevMouseX=b;this.mouseY=this.prevMouseY=a;this.velocity=0;this.curCount=0};Brush.prototype.stroke=function(f,b){if(f==this.prevMouseX&&b==this.prevMouseY){return false}this.prevMouseX=this.mouseX;this.prevMouseY=this.mouseY;this.mouseX=f;this.mouseY=b;if(!this.bornFrom){this.points.push([f,b])}if(!this.bornFrom){this.allPoints.push([f,b])}this.pvelocity=this.velocity;this.velocity=this.dist(this.mouseX,this.mouseY,this.prevMouseX,this.prevMouseY);var j=Math.atan2(this.mouseY-this.prevMouseY,this.mouseX-this.prevMouseX);if(this.velocity>0){this.angle=j}if(!this.bornFrom&&this.velocity>this.pointsEvery){var g=this.pointsEvery/this.velocity;var e=0;for(var c=0;c<=1;c+=g){var a=this.lerp(this.prevMouseX,this.mouseX,c);var h=this.lerp(this.prevMouseY,this.mouseY,c);this.points.push([a,h]);e++}}this.opa(this.getStrokeOpacity());this.context.lineWidth=this.getLineWidth();this.line(this.prevMouseX,this.prevMouseY,this.mouseX,this.mouseY);this.curCount++;return true};Brush.prototype.strokeEnd=function(){this.wasStroking=true;this.stroking=false;this.curCount=0;if(this.clearPointsOnMouseUp){this.points=[]}};Brush.prototype.destroy=function(){this.points=[];this.allPoints=[]};Brush.prototype.chance=function(a){return(this.randomizer.next()<a)};Brush.prototype.lerp=function(e,c,f){return(c-e)*f+e};Brush.prototype.constrain=function(b,c,a){if(b<c){b=c}if(b>a){b=a}return b};Brush.prototype.randomSpread=function(a){return(this.randomizer.next()*a)*(this.randomizer.next()<0.5?1:-1)};Brush.prototype.random=function(b,a){return this.randomizer.next()*(a+b)-b};Brush.prototype.map=function(a,e,b,f,c){return f+(c-f)*((a-e)/(b-e))};Brush.prototype.dist=function(a,e,b,c){return Math.sqrt((a-b)*(a-b)+(e-c)*(e-c))};Brush.prototype.line=function(a,e,b,c){this.context.beginPath();this.context.moveTo(a,e);this.context.lineTo(b,c);this.context.stroke()};Brush.prototype.opa=function(a){this.context.strokeStyle="rgba(0, 0, 0, "+a+")"};function BranchingBrush(b,a){Brush.call(this,b,a);this.branchChance=0.08;this.firstChildChance=0.41;this.speedToBranch=1.5;this.branchChanceDecay=0.36;this.velocityDampening=0.33;this.minAngleTurn=Math.PI/12;this.maxAngleTurn=Math.PI/9;this.throwVelocity=3;this.minBranchVelocity=2.25;this.maxBranchVelocity=7.5;this.minThrownBranchVelocity=2.25;this.maxBranchWidth=1;this.velocityToBranchWidth=0.4;this.angleJitter=Math.PI*0.059;this.growthDecay=0.95;this.drawShading=true;this.shadeConnectionLineWidth=0.3;this.branchOpacity=0.8;this.shadeConnectionDistanceSquared=3700;this.shadeConnectionOpacityDampening=0.045;this.shadeSkip=1;this.minPointsToBranch=3;this.throwTimeoutDelay=10;this.shouldThrow=false;this.throwTimeout}BranchingBrush.prototype=new Brush();BranchingBrush.prototype.constructor=BranchingBrush;BranchingBrush.prototype.stroke=function(e,b){if(!Brush.prototype.stroke.call(this,e,b)){if(this.shouldThrow&&this.curCount>1){var g=this.branch();if(g.growthVelocity<this.minThrownBranchVelocity){g.growthVelocity=this.minThrownBranchVelocity}}this.shouldThrow=false}else{if(this.drawShading){for(var c=0;c<this.points.length;c+=this.shadeSkip){var a=this.points[c];var h=this.dist(e,b,a[0],a[1]);dx=a[0]-e;dy=a[1]-b;d=dx*dx+dy*dy;this.context.lineWidth=this.shadeConnectionLineWidth;if(d<this.shadeConnectionDistanceSquared){this.opa(((1-(d/this.shadeConnectionDistanceSquared))*this.shadeConnectionOpacityDampening));this.line(e,b,a[0],a[1])}}}if(!this.bornFrom&&this.curCount>this.minPointsToBranch&&this.pvelocity>=this.throwVelocity){this.shouldThrow=true;var j=this}if(this.shouldBranch()){this.branch()}}};BranchingBrush.prototype.shouldBranch=function(){if(this.bornFrom){return(this.chance(this.branchChance)&&this.velocity>1)}else{return this.curCount>this.minPointsToBranch&&(this.chance(this.branchChance)&&this.velocity>this.speedToBranch)}};BranchingBrush.prototype.strokeEnd=function(){if(this.stroking){Brush.prototype.strokeEnd.call(this);if(this.velocity>=this.throwVelocity){this.branch()}this.shouldThrow=false}};BranchingBrush.prototype.branch=function(){return new Branch(this)};function Branch(b){BranchingBrush.call(this,b.content,b.context);this.content.branches.push(this);this.growthVelocity=b.growthVelocity||this.constrain(b.pvelocity*b.velocityDampening,b.minBranchVelocity,b.maxBranchVelocity);this.angleJitter=b.angleJitter;this.maxBranchVelocity=b.maxBranchVelocity;this.minBranchVelocity=b.minBranchVelocity;this.maxBranchWidth=b.maxBranchWidth;this.branchChanceDecay=b.branchChanceDecay;this.velocityToBranchWidth=b.velocityToBranchWidth;this.growthDecay=b.growthDecay;this.minAngleTurn=b.minAngleTurn;this.maxAngleTurn=b.maxAngleTurn;this.branchOpacity=b.branchOpacity;var a=this.random(b.minAngleTurn,b.maxAngleTurn)*(this.randomizer.next()<0.5?-1:1);this.angle=b.bornFrom?b.angle+a:b.angle;var e;if(b.bornFrom){e=b.branchChance}else{e=b.firstChildChance}this.bornFrom=b;this.ix=b.mouseX;this.iy=b.mouseY;this.branchChance=e*b.branchChanceDecay;this.drawShading=false;this.strokeStart(this.ix,this.iy);this.getLineWidth=function(){return this.constrain(this.growthVelocity*this.velocityToBranchWidth,0,this.maxBranchWidth)};this.getStrokeOpacity=function(){return this.branchOpacity}}Branch.prototype=new BranchingBrush();Branch.prototype.constructor=Branch;Branch.prototype.isDead=function(){return this.growthVelocity<0.5};Branch.prototype.update=function(){this.angle+=this.randomSpread(this.angleJitter);this.ix+=Math.cos(this.angle)*this.growthVelocity;this.iy+=Math.sin(this.angle)*this.growthVelocity;this.growthVelocity*=this.growthDecay;this.stroke(this.ix,this.iy);if(this.isDead()){this.content.branches.splice(this.content.branches.indexOf(this),1)}};function CanvasSprite(glyph){var _canvas=document.createElement("canvas");_canvas.width=glyph.width;_canvas.height=glyph.height;this.width=glyph.width;var _g=_canvas.getContext("2d");this.character=glyph.character;this.__defineGetter__("g",function(){return _g});this.__defineGetter__("canvas",function(){return _canvas});this.svgData=glyph.svgData;this.svg=createSVG(this.svgData);this.branches=[];this.brushes=[];while(this.brushes.length<this.svg.children.length){var brush=new BranchingBrush(this,this.g);this.brushes.push(brush);with(brush){velocityDampening=0.29;throwVelocity=0.3;firstChildChance=0.5;branchChance=0.8;angleJitter=Math.PI*0.1;defaultLineWidth=1;minBranchVelocity=0;velocityToBranchWidth=0.8;branchOpacity=0.7;minPointsToBranch=1;growthDecay=0.965}}this.left=glyph.left||0;this.right=glyph.right||0;this.right-=2;this.left-=2;_canvas.style.marginTop="-30px";_canvas.style.marginBottom="-30px";_canvas.style.marginLeft=this.left+"px";_canvas.style.marginRight=this.right+"px";this.speed=glyph.speed;var _t=0;this.update=function(){this.g.save();for(var i in this.branches){this.branches[i].update()}for(var i=0;i<this.svg.children.length;i++){var path=this.svg.children[i];var brush=this.brushes[i];if(!brush.ended){try{var point=path.at(_t,this.g);if(_t==0){brush.strokeStart(point.x,point.y)}else{if(_t>=1){}else{brush.stroke(point.x,point.y)}}_t+=this.speed}catch(err){if(!brush.ended){brush.ended=true;brush.strokeEnd()}}}}this.g.restore()}}var glyphs={NO_GLYPH:{character:"NO_GLYPH",svgData:'<path d="M0,0V0"/>',speed:0.08,width:0,height:100,left:0,right:0}," ":{character:" ",svgData:'<path d="M0,0V0"/>',speed:0.08,width:100,height:100,left:-35,right:-34},A:{character:"A",svgData:'<path d="M43.917,57.479c0.1-1.356,5.364-15.577,5.994-16.592c3.093,6.399,5.207,13.092,7.773,19.858"></path><path d="M40.65,52.578c4.66-1.009,14.233-2.566,14.233-2.566"></path>',speed:0.045,width:100,height:100,left:-40,right:-33,},B:{character:"B",svgData:'<path d="M44.434,44.033c-0.206,4.864,1.365,10.883,1.633,16.1"></path><path d="M40.934,48.467C43.639,44.174,50.5,40.5,52.75,44.5s-5.703,6.9-8.593,7.232c2.739-3.653,13.55-4.009,11.601,2.549c-0.919,3.094-4.25,5.053-7.547,5.447"></path>',speed:0.037,width:100,height:100,left:-39,right:-34},C:{character:"C",svgData:'<path d="M53.066,46.133c-1.689-2.732-3.345-6.051-6.519-2.609c-2.467,2.674-5.234,9.768-2.069,12.851c3.389,3.302,11.275,1.229,13.255-2.775"/>',speed:0.09,width:100,height:100,left:-38,right:-34},D:{character:"D",svgData:'<path d="M44.2,44.033c-0.015,4.662,0.234,7.467-0.233,13.067"></path><path d="M43.267,42.4c5.65,0.015,10.5,1.4,11.667,7.467s-5.141,7.971-11.9,7.467"></path>',speed:0.06,width:100,height:100,left:-40,right:-36},E:{character:"E",svgData:'<path d="M46.534,41.933c-1.699,2.655-3.714,8.763-2.805,11.906c1.427,4.935,9.845,1.554,13.304,1.627"></path><path d="M42.567,49.4c3.092-0.602,6.408-1.773,9.567-1.633"></path><path d="M43.967,43.1c3.388-0.317,6.544-1.634,10.033-1.633"></path>',speed:0.04,width:100,height:100,left:-40,right:-36},F:{character:"F",svgData:'<path d="M41.512,44.54c0-0.519-0.006-0.55-0.02-0.095c0.188,5.119,2.236,10.008,2.048,15.16"></path><path d="M41.222,43.09c0.396,0.765,13.764-2.124,16.222-2.028"></path><path d="M42.091,50.623c0.411,0.479,6.53-0.504,8.113-0.869"></path>',speed:0.066,width:100,height:100,left:-40,right:-38},G:{character:"G",svgData:'<path d="M50.25,52.75c2.5-0.5,5.36-1.278,10.223-1.732"></path><path d="M54.09,43.769c-1.432-1.068-2.445-2.59-4.462-2.339c-4.494,0.561-11.25,12.218-7.041,15.616c2.292,1.851,14.496,5.787,12.746-5.713"></path>',speed:0.035,width:100,height:100,left:-36,right:-30,},H:{character:"H",svgData:'<path d="M44.526,41.295c0.481,1.44,0.327,5.899,0.276,6.417c-0.314,3.181-1.18,6.353-1.194,9.556"></path><path d="M53.875,39.767c-1.02,6.904-2.086,14.284-0.7,21.233"></path><path d="M42.441,49.567c4.66,0.568,9.312,0.465,14,0.467"></path>',speed:0.05,width:100,height:100,left:-39,right:-34,},I:{character:"I",svgData:'<path d="M49.677,40.654c-0.07,6.42-0.234,12.8,0.401,19.201"/>',speed:0.15,width:100,height:100,left:-43,right:-40,},J:{character:"J",svgData:'<path d="M42.205,53.108c0.003-0.45-0.009-0.467-0.041-0.055c0.295,4.685,6.75,6.375,9.516,2.765c3.309-4.323,0.13-8.687-0.965-12.679"></path><path d="M44.617,44.519c1.246-0.375,8.545-1.306,13.033-1.75"></path>',speed:0.055,width:100,height:100,left:-39,right:-34,},K:{character:"K",svgData:'<path d="M43.142,42.567c1.616,4.896,0.967,11.478,0.933,16.567"></path><path d="M49.459,42.018c0.175,2.59-1.907,8.962-4.58,10.322c3.638-1.477,10.807-0.074,11.796,4.461"></path>',speed:0.07,width:100,height:100,left:-39,right:-34,},L:{character:"L",svgData:'<path d="M44.542,42.801c0,4.759-0.337,9.559-0.463,14.196c3.048,0.095,9.096-0.196,11.896-0.896"/>',speed:0.11,width:100,height:100,left:-39,right:-34,},M:{character:"M",svgData:'<path d="M43.142,57.734c-0.085,0.218-0.174,0.434-0.268,0.646c0.961-5.161,2.573-10.754,2.611-15.994c-0.04,2.397-0.583,9.317,2.825,9.984c3.462,0.677,6.394-8.415,6.28-10.935c-0.479,2.799,1.118,14.27,2.318,17.23"/>',speed:0.055,width:100,height:100,left:-39,right:-34,},N:{character:"N",svgData:'<path d="M45.061,56.533c-0.362-4.166,0.317-8.441,1.314-12.467c2.341,3.694,5.867,8.301,8.63,12.469c0.362-4.721,0.708-9.464,0.737-14.201"/>',speed:0.072,width:100,height:100,left:-39,right:-34,},O:{character:"O",svgData:'<path d="M49.441,45.133c-0.142-0.862-0.571-1.58-1.401-1.93c-2.579-1.087-4.65,2.956-5.6,4.729c-1.519,2.831-2.758,7.216,0.903,8.902c3.513,1.619,8.691-0.239,11.219-2.857c6-6.213-4.703-10.504-9.789-10.243"/>',speed:0.065,width:100,height:100,left:-39,right:-34,},P:{character:"P",svgData:'<path d="M47.808,43.034c0.006-0.467,0.001-0.548-0.016-0.243c0.218,5.45,0.839,11.39,2.583,16.576"></path><path d="M42.397,43.738c3.022-1.277,10.122-2.069,13.085-0.287c1.596,0.959,2.04,2.44,0.762,3.991c-1.754,2.128-5.825,1.868-8.203,1.892"></path>',speed:0.05,width:100,height:100,left:-39,right:-34,},Q:{character:"Q",svgData:'<path d="M54.348,46.347c0.411-1.815-0.982-3.375-2.71-3.678c-4.723-0.831-10.482,8.46-7.765,12.323c3.027,4.302,13.685,1.812,13.659-3.774c-0.026-5.366-7.393-8.693-12.015-6.685"></path><path d="M52.05,53.867c-0.383-0.23-0.419-0.237-0.106-0.02c1.375,1.072,2.74,2.162,4.073,3.285"></path>',speed:0.03,width:100,height:100,left:-39,right:-34,},R:{character:"R",svgData:'<path d="M44.117,44.533c-0.002,4.456,0.234,8.401-0.233,13.301"></path><path d="M41.783,42.221c2.52-0.105,11.812-0.59,12.632,2.78c0.783,3.218-11.582,4.06-13.569,3.971c2.21-0.047,4.283-0.281,6.517-0.059c2.984,0.297,9.146,3.687,10.986,6.588"></path>',speed:0.03,width:100,height:100,left:-39,right:-34,},S:{character:"S",svgData:'<path d="M54.384,45c0.585-5.4-9.261-2.55-8.145,1.161c0.465,1.548,4.597,2.486,5.809,3.135c1.86,0.997,3.728,2.209,3.577,4.57c-0.436,6.845-9.642,5.834-11.741,2.567"/>',speed:0.07,width:100,height:100,left:-39,right:-34,},T:{character:"T",svgData:'<path d="M42.483,43.6c3.714-0.057,14.7,0.234,14.7,0.234"></path><path d="M49.717,43.6c0,4.356,0,8.71,0,13.067"></path>',speed:0.1,width:100,height:100,left:-39,right:-34,},U:{character:"U",svgData:'<path d="M45.284,42.667c-1.78,5.364-3.395,14.686,5.833,13.767c6.807-0.678,5.336-9.574,3.732-14"/>',speed:0.08,width:100,height:100,left:-39,right:-34,},V:{character:"V",svgData:'<path d="M45.682,41.172c0.001,5.218,1.369,12.031,4.408,16.318c2.459-5.725,4.055-10.345,4.836-15.831"/>',speed:0.08,width:100,height:100,left:-39,right:-34,},W:{character:"W",svgData:'<path d="M44,43.075c-2.474,4.699-3.216,11.625,0.496,12.857c2.164,0.719,4.451-1.975,5.193-4.942c0.248,3.215,2.275,6.051,5.096,5.375c2.819-0.676,4.552-6.612,3.066-10.817"/>',speed:0.065,width:100,height:100,left:-39,right:-34,},X:{character:"X",svgData:'<path d="M43.802,42.911c3.093,4.157,8.042,10.134,12.681,12.731"></path><path d="M54.962,43.368c-1.251,4.495-6.52,8.898-11.779,13.055"></path>',speed:0.08,width:100,height:100,left:-39,right:-34,},Y:{character:"Y",svgData:'<path d="M55.449,39.5c0.471,0.122-2.462,6.636-2.744,7.378c-1.912,5.068-3.587,10.363-5.062,15.569c-0.159,0.561-1.182,5.646-1.439,5.646"></path><path d="M50.006,54.795c-0.091,0.156-0.022,0.458-0.207,0.258c-4.567-3.26-5.39-8.967-6.379-14.733"></path>',speed:0.05,width:100,height:100,left:-39,right:-34,},Z:{character:"Z",svgData:'<path d="M44.013,44.263c2.367,1.201,12.081,0.755,13.372-0.037c-3.932,3.267-9.373,8.112-13.372,11.167c4.658,0,9.835-0.259,13.976,0"></path>',speed:0.08,width:100,height:100,left:-39,right:-34,},".":{character:".",svgData:'<path d="M49.449,61.053c0.847,0.102,1.312-1.135,0.688-1.748c-0.717-0.705-1.877-0.084-1.407,1.043"/>',speed:0.4,width:100,height:100,left:-45,right:-45,},"\r":{character:"\r",svgData:'<path d="M0,0V0"/>',speed:0.08,width:2000,height:10,left:0,right:0,},};function loadSVG(e,c,a){var b=new XMLHttpRequest();b.onreadystatechange=function(){if(b.readyState==4){if(b.status==200){if(b.responseXML==null){if(a!=undefined){a.call(this,e)}}else{var g=b.responseXML.getElementsByTagName("svg").item(0);var f=new SVG(g);f.filename=e;c.call(this,f,e)}}else{if(a!=undefined){a.call(this,e)}}}};b.open("GET",e,true);b.send(null)}function createSVG(b){var a=document.createElement("svg");a.innerHTML=b;return new SVG(a)}var SVG=function(f){this.filename="";this.children=[];var a=f.getAttribute("width");var e=f.getAttribute("height");this.width=a==null?0:parseFloat(a.replace("px",""));this.height=e==null?0:parseFloat(e.replace("px",""));for(var c=0;c<f.childNodes.length;c++){if(!f.childNodes.item(c).getAttribute){continue}var b;if(f.childNodes.item(c).nodeName=="g"){b=new SVG(f.childNodes.item(c))}else{b=new Path(f.childNodes.item(c))}this.children.push(b)}this.draw=function(h){for(var g=0;g<this.children.length;g++){this.children[g].draw(h)}}};var Path=function(a){this.element=a;this.commands=commands(a);this.lineWidth=parseLineWidth(a);this.strokeStyle=parseStrokeStyle(a);this.fillStyle=parseFillStyle(a);this.totalLength=0;this.lengths=[];this.tlengths=[];var b=function(){this.x;this.y;this.x1;this.y1;this.x2;this.y2;this.reset=function(){this.x=this.y=this.x1=this.y1=this.x2=this.y2=0};this.reset()};this.draw=function(c){this.style(c);c.beginPath();this.shape(c);this.end(c)};this.shape=function(e){for(var c=0;c<this.commands.length;c++){this.commands[c].shape(b,e)}};this.lerp=function(f,e,k,j,g){var h=1-g;return f*h*h*h+3*e*g*h*h+3*k*g*g*h+j*g*g*g};this.at=function(q,m){var f,e;if(this.lengths.length==0){this.calcLengths(m)}var l=this.tlengths[0];var k=0;while(q>l){k++;l+=this.tlengths[k]}pt=l-this.tlengths[k];var h=this.map(q,pt,l,0,1);for(var g=0;g<=k;g++){this.commands[g].shape(b,m)}var p=b.x;var n=b.y;this.commands[k+1].shape(b,m);f=this.lerp(p,b.x1,b.x2,b.x,h);e=this.lerp(n,b.y1,b.y2,b.y,h);return{x:f,y:e}};this.map=function(c,g,e,h,f){return h+(f-h)*((c-g)/(e-g))};this.calcLengths=function(p){var f,e;var l,k;var s=0;var n=0.001;this.commands[0].shape(b,p);var r=l=b.x;var q=k=b.y;for(var h=1;h<this.commands.length;h++){s=0;r=b.x;q=b.y;this.commands[h].shape(b,p);for(var m=0;m<=1;m+=n){f=this.lerp(r,b.x1,b.x2,b.x,m);e=this.lerp(q,b.y1,b.y2,b.y,m);s+=this.dist(f,e,l,k);l=f;k=e}this.lengths.push(s);this.totalLength+=s}for(var g=0;g<this.lengths.length;g++){this.tlengths.push(this.lengths[g]/this.totalLength)}};this.dist=function(c,g,e,f){return Math.sqrt((c-e)*(c-e)+(g-f)*(g-f))};this.style=function(c){if(this.lineWidth!=null){c.lineWidth=this.lineWidth}if(this.strokeStyle!=null){c.strokeStyle=this.strokeStyle;if(this.lineWidth==undefined){c.lineWidth=1}}if(this.fillStyle!=null){c.fillStyle=this.fillStyle}};this.end=function(c){if(this.fillStyle!=null){c.fill()}if(this.strokeStyle!=null){c.stroke()}}};var parseLineWidth=function(c){var b=c.attributes.getNamedItem("stroke-width");return b==null?null:parseFloat(b.nodeValue)};var parseStrokeStyle=function(c){var b=c.attributes.getNamedItem("stroke");return b==null?null:b.nodeValue};var parseFillStyle=function(c){var b=c.attributes.getNamedItem("fill");if(b==null){var e=c.attributes.getNamedItem("stroke");if(e!=null){return null}else{return"#000000"}}else{if(b.nodeValue=="none"){return null}return b.nodeValue}};var Command=function(a,b){this.type=a;this.data=b;this.debug=false;this.shape=function(j,k){var h=j.x;var g=j.y;if(this.type=="M"){j.x=this.data[0];j.y=this.data[1];if(k){k.moveTo(j.x,j.y)}}else{if(this.type=="C"){j.x=this.data[4];j.y=this.data[5];if(k){k.bezierCurveTo(j.x1=this.data[0],j.y1=this.data[1],j.x2=this.data[2],j.y2=this.data[3],j.x,j.y)}}else{if(this.type=="c"){if(k){k.bezierCurveTo(j.x1=j.x+this.data[0],j.y1=j.y+this.data[1],j.x2=j.x+this.data[2],j.y2=j.y+this.data[3],j.x+=this.data[4],j.y+=this.data[5])}}else{if(this.type=="S"){j.x=this.data[2];j.y=this.data[3];var f=j.x-j.x2;var e=j.y-j.y2;if(k){k.bezierCurveTo(j.x1=j.x+f,j.y1=j.y+e,j.x2=this.data[0],j.y2=this.data[1],j.x,j.y)}}else{if(this.type=="s"){var f=j.x-j.x2;var e=j.y-j.y2;if(k){k.bezierCurveTo(j.x1=j.x+f,j.y1=j.y+e,j.x2=j.x+this.data[0],j.y2=j.y+this.data[1],j.x+=this.data[2],j.y+=this.data[3])}}else{if(this.type=="L"){j.x1=j.x;j.y1=j.y;if(k){k.lineTo(j.x=this.data[0],j.y=this.data[1])}j.x2=j.x;j.y2=j.y}else{if(this.type=="l"){j.x1=j.x;j.y1=j.y;if(k){k.lineTo(j.x+=this.data[0],j.y+=this.data[1])}j.x2=j.x;j.y2=j.y}else{if(this.type=="H"){j.x1=j.x;j.y1=j.y;if(k){k.lineTo(j.x=this.data[0],j.y)}j.x2=j.x;j.y2=j.y}else{if(this.type=="h"){j.x1=j.x;j.y1=j.y;if(k){k.lineTo(j.x+=this.data[0],j.y)}j.x2=j.x;j.y2=j.y}else{if(this.type=="V"){j.x1=j.x;j.y1=j.y;if(k){k.lineTo(j.x,j.y=this.data[0])}j.x2=j.x;j.y2=j.y}else{if(this.type=="v"){j.x1=j.x;j.y1=j.y;if(k){k.lineTo(j.x,j.y+=this.data[0])}j.x2=j.x;j.y2=j.y}else{if(this.type=="z"){k.closePath()}else{alert("unrecognized command "+this.type)}}}}}}}}}}}}if(k){k.strokeStyle="#000000";k.lineWidth=1;if(this.debug){k.strokeRect(j.x-1.5,j.y-1.5,3,3);k.beginPath();k.moveTo(j.px,j.py);k.lineTo(j.x1,j.y1);k.closePath();k.stroke()}}}};var commands=function(a){if(a.nodeName.toLowerCase()=="path"){return commandsFromD(a.getAttribute("d"))}if(a.nodeName.toLowerCase()=="polygon"){return commandsFromPoints(a.getAttribute("points"))}if(a.nodeName.toLowerCase()=="line"){return commandsFromLine(a)}if(a.nodeName.toLowerCase()=="rect"){return commandsFromRect(a)}return[]};var commandsFromD=function(h){var g=[];var a=h.match(/[a-zA-Z][0-9\.\-\,]+/g);for(var c=0;c<a.length;c++){var e=a[c].charAt(0);var f=a[c].substr(1);f=f.replace(/\-/g,",-");if(f.charAt(0)==","){f=f.substr(1)}f=f.split(",");for(var b=0;b<f.length;b++){f[b]=parseFloat(f[b])}g.push(new Command(e,f))}return g};var commandsFromLine=function(e){var g=[];var b=parseFloat(e.getAttribute("x1"));var a=parseFloat(e.getAttribute("x2"));var f=parseFloat(e.getAttribute("y1"));var c=parseFloat(e.getAttribute("y2"));g.push(new Command("M",[b,f]));g.push(new Command("L",[a,c]));return g};var commandsFromPoints=function(f){var e=true;if(f.indexOf(",")==-1){for(var a=0;a<f.length;a++){var g=f.charAt(a);if(g==" "){if(e){f=f.setCharAt(a,",")}e=!e}}}f="M"+f;f=f.replace(/ /g,"L")+"z";var b=commandsFromD(f);return b};String.prototype.setCharAt=function(a,b){if(a>this.length-1){return str}return this.substr(0,a)+b+this.substr(a+1)};var commandsFromRect=function(c){var f=[];var a=parseFloat(c.getAttribute("x"));var g=parseFloat(c.getAttribute("y"));var b=parseFloat(c.getAttribute("width"));var e=parseFloat(c.getAttribute("height"));f.push(new Command("M",[a,g]));f.push(new Command("h",[b]));f.push(new Command("v",[e]));f.push(new Command("h",[-b]));f.push(new Command("v",[-e]));return f};var Sequencer=function(){var c=[],b=[],a=[],g=0,e=0,f=0;this.add=function(h,k,j){h.__active=false;h.__start_time=k;h.__end_time=k+j;c.push(h);c.sort(function(m,l){return m.__start_time-l.__start_time});a.push(h);a.sort(function(m,l){return m.__end_time-l.__end_time})};this.update=function(n,j){var m;if(n<f){return}while(a[e]){m=a[e];if(m.__end_time>n){break}if(m.__active){m.__active=false;m.hide();for(var k=0,h=b.length;k<h;k++){if(m==b[k]){b.splice(k,1)}}}e+=1}while(c[g]){m=c[g];if(m.__start_time>n){break}if(!m.__active&&m.__end_time>n){m.show();m.__active=true;b.push(m)}g+=1}for(var k=0,h=b.length;k<h;k++){b[k].update(n,(n-b[k].__start_time)/(b[k].__end_time-b[k].__start_time),j)}f=n};this.clear=function(){g=0;e=0;while(b.length){var h=b[0];h.__active=false;h.hide();b.splice(0,1)}};this.reset=function(){c=new Array();b=new Array();a=new Array();g=0;e=0;f=0};this.pause=function(){for(var j=0,h=b.length;j<h;j++){b[j].pause()}};this.resume=function(){for(var j=0,h=b.length;j<h;j++){b[j].resume()}}};var Effect=function(){this.load=function(){};this.show=function(){};this.hide=function(){};this.update=function(c,b,a){};this.pause=function(){};this.resume=function(){}};var PopupEffect=function(b,e,c){Effect.call(this);var j=b,h=e.x+win_offset_x,f=e.y+win_offset_y,g=e.width,a=e.height+50;if((e.x==10)&&(e.y==1024)&&(e.width==100)&&(e.height==60)){h=0;f=screen.availHeight-110;a=110}this.tween=null;this.hasTween=c;this.show=function(){var m=j.settings.x,l=j.settings.y,k=j.settings.width,n=j.settings.height;j.settings={x:h,y:f,width:g,height:a};j.resizeTo(g,a);if(j.innerHeight>e.height){j.resizeTo(g,a-50)}j.moveTo(h,f)};this.hide=function(){if(this.tween!=null){this.tween.destroy()}};this.update=function(m,l,k){}};PopupEffect.prototype=new Effect();PopupEffect.prototype.constructor=PopupEffect;var PopupTween=function(a,b,c){this.popup=a;this.x=this.popup.settings.x;this.y=this.popup.settings.y;this.tween=null;var e=this;this.show=function(){this.tween=new TWEEN.Tween(this.popup.settings);this.tween.easing(TWEEN.Easing.Linear.EaseNone);this.tween.onUpdate(function(){e.popup.moveTo(a.settings.x,a.settings.y);e.popup.resizeTo(a.settings.width,a.settings.height)});this.tween.to(c,b)};this.hide=function(){if(this.tween!=null){this.tween.destroy()}};this.update=function(h,g,f){}};PopupTween.prototype=new Effect();PopupTween.prototype.constructor=PopupTween;var PopupShaker=function(a){this.popup=a;this.noise=10;this.x=0;this.y=0;this.show=function(){this.x=this.popup.screenX;this.y=this.popup.screenY};this.hide=function(){};this.update=function(e,c,b){this.popup.moveTo(this.x+this.noise*(Math.random()-Math.random()),this.y+this.noise*(Math.random()-Math.random()))}};PopupShaker.prototype=new Effect();PopupShaker.prototype.constructor=PopupShaker;var PopupZoomOut=function(a,b){this.popup=a;this.width=b.width;this.height=b.height;this.x=this.popup.settings.x;this.y=b.y;this.tween=null;this.decay=4;var c=this;this.show=function(){this.tween=new TWEEN.Tween(this.popup.settings);this.tween.easing(TWEEN.Easing.Expo.EaseOut);this.tween.onUpdate(function(){c.popup.moveTo(a.settings.x,a.settings.y)});this.tween.to(b.duration,{x:screen.availWidth,y:0})};this.hide=function(){if(this.tween!=null){this.tween.destroy()}this.popup.resizeTo(10,10);this.popup.moveTo(0,2100)};this.update=function(g,f,e){}};PopupZoomOut.prototype=new Effect();PopupZoomOut.prototype.constructor=PopupZoomOut;function createWindowSequence(){sequencer.add(new PopupEffect(popup1,{x:-54,y:153,width:1126,height:406},false),0,59.5);sequencer.add(new PopupEffect(popup1,{x:10,y:1024,width:100,height:60},false),59.5,20.86699676513672);sequencer.add(new PopupEffect(popup1,{x:600,y:566,width:650,height:234},false),80.36699676513672,26.333335876464844);sequencer.add(new PopupEffect(popup1,{x:19,y:390,width:1000,height:360},false),106.70033264160156,25.666671752929688);sequencer.add(new PopupEffect(popup1,{x:10,y:1024,width:100,height:60},false),132.36700439453125,112.2239990234375);sequencer.add(new PopupEffect(popup1,{x:692,y:-40,width:600,height:350},false),244.59100341796875,45.40899658203125);sequencer.add(new PopupEffect(popup1,{x:10,y:1024,width:100,height:60},false),290,-0.485321044921875);sequencer.add(new PopupEffect(popup2,{x:10,y:1024,width:100,height:60},false),0,31.117000579833984);sequencer.add(new PopupEffect(popup2,{x:-220,y:-165,width:600,height:350},false),31.117000579833984,27.549999237060547);sequencer.add(new PopupEffect(popup2,{x:-40,y:25,width:700,height:450},false),58.66699981689453,0.8330001831054688);sequencer.add(new PopupEffect(popup2,{x:131,y:139,width:800,height:400},false),59.5,47.20033264160156);sequencer.add(new PopupEffect(popup2,{x:82,y:76,width:800,height:400},false),106.70033264160156,1.7996673583984375);sequencer.add(new PopupEffect(popup2,{x:-55,y:1,width:800,height:400},false),108.5,0.9000015258789062);sequencer.add(new PopupEffect(popup2,{x:-228,y:-45,width:710,height:400},false),109.4000015258789,22.967002868652344);sequencer.add(new PopupEffect(popup2,{x:73,y:89,width:900,height:500},false),132.36700439453125,23.7659912109375);sequencer.add(new PopupEffect(popup2,{x:135,y:163,width:550,height:300},false),156.13299560546875,0.25);sequencer.add(new PopupEffect(popup2,{x:90,y:90,width:400,height:200},false),156.38299560546875,0.214019775390625);sequencer.add(new PopupEffect(popup2,{x:144,y:156,width:250,height:100},false),156.59701538085938,0.2029876708984375);sequencer.add(new PopupEffect(popup2,{x:10,y:1024,width:100,height:60},false),156.8000030517578,3.9810028076171875);sequencer.add(new PopupEffect(popup2,{x:-171,y:484,width:320,height:240},false),160.781005859375,95.41000366210938);sequencer.add(new PopupEffect(popup2,{x:10,y:1024,width:100,height:60},false),256.1910095214844,0.98199462890625);sequencer.add(new PopupEffect(popup2,{x:-270,y:276,width:900,height:510},false),257.1730041503906,4.8800048828125);sequencer.add(new PopupEffect(popup2,{x:10,y:1024,width:100,height:60},false),262.0530090332031,5.920013427734375);sequencer.add(new PopupEffect(popup2,{x:-276,y:271,width:900,height:510},false),267.9730224609375,11.20001220703125);sequencer.add(new PopupEffect(popup2,{x:10,y:1024,width:100,height:60},false),279.17303466796875,10.341644287109375);sequencer.add(new PopupEffect(popup3,{x:10,y:1024,width:100,height:60},false),0,63);sequencer.add(new PopupEffect(popup3,{x:-68,y:44,width:234,height:650},false),63,3.9583358764648438);sequencer.add(new PopupEffect(popup3,{x:657,y:553,width:650,height:234},false),66.95833587646484,4.041664123535156);sequencer.add(new PopupEffect(popup3,{x:662,y:-48,width:650,height:234},false),71,8.791664123535156);sequencer.add(new PopupEffect(popup3,{x:10,y:1024,width:100,height:60},false),79.79166412353516,0.5753326416015625);sequencer.add(new PopupEffect(popup3,{x:10,y:1024,width:100,height:60},false),80.36699676513672,26.333335876464844);sequencer.add(new PopupEffect(popup3,{x:10,y:1024,width:100,height:60},false),106.70033264160156,25.666671752929688);sequencer.add(new PopupEffect(popup3,{x:10,y:1024,width:100,height:60},false),132.36700439453125,24.432998657226562);sequencer.add(new PopupEffect(popup3,{x:10,y:1024,width:100,height:60},false),156.8000030517578,4.9810028076171875);sequencer.add(new PopupEffect(popup3,{x:463,y:459,width:320,height:240},false),161.781005859375,94.89300537109375);sequencer.add(new PopupEffect(popup3,{x:10,y:1024,width:100,height:60},false),256.67401123046875,3.41900634765625);sequencer.add(new PopupEffect(popup3,{x:178,y:323,width:799,height:449},false),260.093017578125,4.959991455078125);sequencer.add(new PopupEffect(popup3,{x:10,y:1024,width:100,height:60},false),265.0530090332031,2.920013427734375);sequencer.add(new PopupEffect(popup3,{x:10,y:1024,width:100,height:60},false),267.9730224609375,11.20001220703125);sequencer.add(new PopupEffect(popup3,{x:10,y:1024,width:100,height:60},false),279.17303466796875,10.341644287109375);sequencer.add(new PopupEffect(popup4,{x:10,y:1024,width:100,height:60},false),0,83.76699829101562);sequencer.add(new PopupEffect(popup4,{x:-239,y:197,width:400,height:300},false),83.76699829101562,3.9329986572265625);sequencer.add(new PopupEffect(popup4,{x:10,y:1024,width:100,height:60},false),87.69999694824219,4.967002868652344);sequencer.add(new PopupEffect(popup4,{x:911,y:192,width:400,height:300},false),92.66699981689453,3.0670013427734375);sequencer.add(new PopupEffect(popup4,{x:10,y:1024,width:100,height:60},false),95.73400115966797,0.5540008544921875);sequencer.add(new PopupEffect(popup4,{x:-99,y:25,width:234,height:650},false),96.28800201416016,2.4583358764648438);sequencer.add(new PopupEffect(popup4,{x:10,y:1024,width:100,height:60},false),98.746337890625,0.8206634521484375);sequencer.add(new PopupEffect(popup4,{x:-235,y:196,width:400,height:300},false),99.56700134277344,2.8759994506835938);sequencer.add(new PopupEffect(popup4,{x:10,y:1024,width:100,height:60},false),102.44300079345703,13.457000732421875);sequencer.add(new PopupEffect(popup4,{x:650,y:-46,width:710,height:400},false),115.9000015258789,16.467002868652344);sequencer.add(new PopupEffect(popup4,{x:10,y:1024,width:100,height:60},false),132.36700439453125,24.432998657226562);sequencer.add(new PopupEffect(popup4,{x:10,y:1024,width:100,height:60},false),156.8000030517578,5.9810028076171875);sequencer.add(new PopupEffect(popup4,{x:145,y:527,width:320,height:240},false),162.781005859375,92.89799499511719);sequencer.add(new PopupEffect(popup4,{x:10,y:1024,width:100,height:60},false),255.6790008544922,6.3740081787109375);sequencer.add(new PopupEffect(popup4,{x:-202,y:87,width:800,height:450},false),262.0530090332031,5.920013427734375);sequencer.add(new PopupEffect(popup4,{x:10,y:1024,width:100,height:60},false),267.9730224609375,21.541656494140625);sequencer.add(new PopupEffect(popup5,{x:10,y:1024,width:100,height:60},undefined),0,156.8000030517578);sequencer.add(new PopupEffect(popup5,{x:-102,y:-80,width:770,height:520},false),156.8000030517578,100.37300109863281);sequencer.add(new PopupEffect(popup5,{x:10,y:1024,width:100,height:60},false),257.1730041503906,32.3416748046875);sequencer.add(new PopupEffect(popup6,{x:10,y:1024,width:100,height:60},undefined),0,192.46400451660156);sequencer.add(new PopupEffect(popup6,{x:944,y:585,width:304,height:176},false),216.1320037841797,13.867996215820312);sequencer.add(new PopupEffect(popup6,{x:10,y:1024,width:100,height:60},false),230,6.9730072021484375);sequencer.add(new PopupEffect(popup6,{x:803,y:384,width:512,height:288},false),236.97300720214844,7.6179962158203125);sequencer.add(new PopupEffect(popup6,{x:10,y:1024,width:100,height:60},false),257.1730041503906,7.8800048828125);sequencer.add(new PopupEffect(popup6,{x:790,y:390,width:450,height:300},false),265.0530090332031,2.0469970703125);sequencer.add(new PopupEffect(popup6,{x:10,y:1024,width:100,height:60},false),267.1000061035156,0.873016357421875);sequencer.add(new PopupEffect(popup6,{x:10,y:1024,width:100,height:60},false),267.9730224609375,3.95196533203125);sequencer.add(new PopupEffect(popup6,{x:23,y:-181,width:450,height:299},false),271.92498779296875,2.07501220703125);sequencer.add(new PopupEffect(popup6,{x:10,y:1024,width:100,height:60},false),274,1.80999755859375);sequencer.add(new PopupEffect(popup6,{x:790,y:390,width:450,height:300},false),275.80999755859375,2.397003173828125);sequencer.add(new PopupEffect(popup6,{x:10,y:1024,width:100,height:60},false),278.2070007324219,11.30767822265625)}function addContents(){addContent(new VideoContent(1126,406,"http://media.thewildernessdowntown.com/01.ogv","http://media.thewildernessdowntown.com/01.mp4"));addContent(new BirdsSky(600,350));addContent(new FlyingNeighborhood(800,400));addContent(new VideoContent(234,650,"http://media.thewildernessdowntown.com/02.ogv","http://media.thewildernessdowntown.com/02.mp4"));addContent(new VideoContent(650,234,"http://media.thewildernessdowntown.com/03.ogv","http://media.thewildernessdowntown.com/03.mp4"));addContent(new VideoContent(650,234,"http://media.thewildernessdowntown.com/04.ogv","http://media.thewildernessdowntown.com/04.mp4"));addContent(new VideoContent(650,234,"http://media.thewildernessdowntown.com/05.ogv","http://media.thewildernessdowntown.com/05.mp4"));addContent(new StreetviewPan(400,300,0.48,-1));addContent(new VideoContent(650,234,"http://media.thewildernessdowntown.com/07.ogv","http://media.thewildernessdowntown.com/07.mp4"));addContent(new StreetviewPan(400,300,0.66,1));addContent(new VideoContent(234,650,"http://media.thewildernessdowntown.com/06.ogv","http://media.thewildernessdowntown.com/06.mp4"));addContent(new StreetviewPan(400,300,0.8,-1));addContent(new VideoContent(1000,360,"http://media.thewildernessdowntown.com/08.ogv","http://media.thewildernessdowntown.com/08.mp4"));addContent(new AerialHouse360(710,400));addContent(new Streetview360(710,400));addContent(new ZoomOut(900,500));addContent(main_drawingTool=new DrawingTool(750,500));addContent(new VideoMachine(320,240,"http://media.thewildernessdowntown.com/55.ogv","http://media.thewildernessdowntown.com/55.mp4"));addContent(new VideoMachine(320,240,"http://media.thewildernessdowntown.com/52.ogv","http://media.thewildernessdowntown.com/52.mp4"));addContent(new VideoMachine(320,240,"http://media.thewildernessdowntown.com/73.ogv","http://media.thewildernessdowntown.com/73.mp4","http://media.thewildernessdowntown.com/73idle.ogv","http://media.thewildernessdowntown.com/73idle.mp4"));addContent(new VideoContent(304,176,"http://media.thewildernessdowntown.com/Act3_01.ogv","http://media.thewildernessdowntown.com/Act3_01.mp4"));addContent(new BirdsMap(770,520));addContent(new VideoContent(512,288,"http://media.thewildernessdowntown.com/Act3_02.ogv","http://media.thewildernessdowntown.com/Act3_02.mp4"));addContent(new FlyingNeighborhood2(600,350));addContent(new VideoContent(900,510,"http://media.thewildernessdowntown.com/attack_01.ogv","http://media.thewildernessdowntown.com/attack_01.mp4"));addContent(new VideoContent(800,450,"http://media.thewildernessdowntown.com/attack_02.ogv","http://media.thewildernessdowntown.com/attack_02.mp4"));addContent(new VideoContent(800,450,"http://media.thewildernessdowntown.com/attack_03.ogv","http://media.thewildernessdowntown.com/attack_03.mp4"));addContent(new StreetViewTrees(450,300,90,0.1,0.7));addContent(new VideoContent(900,510,"http://media.thewildernessdowntown.com/attack_04.ogv","http://media.thewildernessdowntown.com/attack_04.mp4"));addContent(new StreetViewTrees(450,300,-90,0.2,0.8));addContent(new VideoContent(900,510,"http://media.thewildernessdowntown.com/attack_05.ogv","http://media.thewildernessdowntown.com/attack_05.mp4"));addContent(new StreetViewTrees(450,300,0,0.3,1))}var mapContents=[2,7,9,11,13,14,15,23,27,29,31];function createContentSequence(){addContentToSequence(0,popup1,0,59.5);addContentToSequence(1,popup2,31.117,28.383);addContentToSequence(2,popup2,59.5,49.900001525879);addContentToSequence(3,popup3,63,3.9583330154419);addContentToSequence(4,popup3,66.95833587646484,4.0416669845581);addContentToSequence(5,popup3,71,8.7916669845581);addContentToSequence(6,popup1,80.36699676513672,8.5);addContentToSequence(7,popup4,83.76699829101562,3.9329986572266);addContentToSequence(8,popup1,88.86699676513672,17.833332061768);addContentToSequence(9,popup4,92.66699981689453,3.0670013427734);addContentToSequence(10,popup4,96.28800201416016,2.4583330154419);addContentToSequence(11,popup4,99.56700134277344,2.8759994506836);addContentToSequence(12,popup1,106.70033264160156,25.666667938232);addContentToSequence(13,popup2,109.4000015258789,22.967002868652);addContentToSequence(14,popup4,115.9000015258789,16.466998474121);addContentToSequence(15,popup2,132.36700439453125,24.230010986328);addContentToSequence(16,popup5,156.8000030517578,100.37299694824);addContentToSequence(17,popup2,160.781005859375,95.409994140625);addContentToSequence(18,popup3,161.781005859375,94.892994140625);addContentToSequence(19,popup4,162.781005859375,92.897994140625);addContentToSequence(20,popup6,216.1320037841797,14.39999961853);addContentToSequence(21,popup5,229.74400329589844,27.428996704102);addContentToSequence(22,popup6,236.97300720214844,20.199992797852);addContentToSequence(23,popup1,244.591,45.409);addContentToSequence(24,popup2,257.1730041503906,4.8800001144409);addContentToSequence(25,popup3,260.093017578125,4.960000038147);addContentToSequence(26,popup4,262.0530090332031,5.9200000762939);addContentToSequence(27,popup6,265.0530090332031,2.0469909667969);addContentToSequence(28,popup2,267.9730224609375,4.1999998092651);addContentToSequence(29,popup6,271.92498779296875,2.0750122070312);addContentToSequence(30,popup2,272.17303466796875,7);addContentToSequence(31,popup6,275.80999755859375,2.3970031738281)}var DEFAULT_POPUP_PROPERTIES="menubar=0, resizable=0, location=0, toolbar=0, status=0, scrollbars=0, titlebar=0, left=0, top=0, width=100, height=100",windows=[];var nWindows=6;var windowsReady;var controller;var win_offset_x=(screen.availWidth>1024)?(screen.availWidth-1024)*0.5:0;var win_offset_y=(screen.availHeight>768)?(screen.availHeight-768)*0.5:0;function launchWindowManager(){windows=new Array();windowsReady=0;for(var a=1;a<nWindows+1;a++){addWindow("popup"+a)}controller=window.open("controller.html","controller",DEFAULT_POPUP_PROPERTIES);windows.push(controller)}function addWindow(a){var b=window.open("container.html",a,DEFAULT_POPUP_PROPERTIES);b.settings={x:0,y:0,width:100,height:100};windows.push(b);this[a]=b}function popupWindowReady(){windowsReady++;if(windowsReady==nWindows+1){launch()}}function onWindowUnload(a){exitSequencer(a);pausedByClose()}function exitSequencer(b){closeWindows();try{if(audio!=undefined){audio.pause()}sequencer.clear();sequencer.reset();delete sequencer;sequencer=new Sequencer()}catch(a){}}function closeWindows(){for(var b=0;b<windows.length;b++){if(windows[b]!=undefined){try{windows[b].removeListeners();windows[b].close()}catch(a){}}}try{controller.removeListeners()}catch(a){}try{final_drawing.close()}catch(a){}}function createWindowEffects(){sequencer.add(new PopupShaker(popup1),268,1);sequencer.add(new PopupShaker(popup3),269,0.5);sequencer.add(new PopupShaker(popup3),270,0.5);sequencer.add(new PopupShaker(popup1),271,1);sequencer.add(new PopupShaker(popup4),272,1);sequencer.add(new PopupShaker(popup3),272,0.5);sequencer.add(new PopupShaker(popup3),273,1);sequencer.add(new PopupShaker(popup1),273,1);sequencer.add(new PopupShaker(popup4),274.5,0.5);sequencer.add(new PopupShaker(popup3),275.5,0.5);sequencer.add(new PopupZoomOut(popup1,{x:0,y:2000,width:400,height:300,duration:10}),134.5,10);sequencer.add(new PopupZoomOut(popup3,{x:500,y:2000,width:400,height:300,duration:12}),135.5,12);sequencer.add(new PopupZoomOut(popup4,{x:800,y:2000,width:400,height:300,duration:15}),136.5,15);sequencer.add(new PopupTween(popup3,{x:300},9),82.1,8.9)}var _contents=new Array();var main_drawingTool,drawingTool;function addContent(a){_contents.push(a)}function loadContents(){for(var a=0;a<_contents.length;a++){if(!isMapContent(a)){_contents[a].load()}}}function loadMapContents(){for(var a=0;a<mapContents.length;a++){_contents[mapContents[a]].load()}}function isMapContent(a){var b=false;for(var c=0;c<mapContents.length;c++){if(mapContents[c]===a){b=true;break}}return b}function getLoadedContents(){var a=0;for(var b=0;b<_contents.length;b++){if(_contents[b].preloaded){a++}}return a}function checkIfPreloaded(c){var a=true;for(var b=0;b<_contents.length;b++){if(c){a&=(_contents[b].preloaded||_contents[b].loadingfailed)}else{a&=_contents[b].preloaded}}return a}function loadDataFailed(){var a=false;for(var b=0;b<mapContents.length;b++){if(_contents[mapContents[b]].loadingfailed){a=true;break}}return a}function addContentToSequence(a,e,b,c){_contents[a].target=e;sequencer.add(_contents[a],b,c)}function appendFinalDrawingTool(b){var a=main_drawingTool;drawingTool=new DrawingTool(a.canvas.width,a.canvas.height);drawingTool.target=b;drawingTool.show(true);isDrawing=true;fadeBlocker(100);return drawingTool}function drawingToolClosed(){isDrawing=false;fadeBlocker(0)}function resetContents(){for(var a=0;a<_contents.length;a++){delete _contents[a]}delete _contents;_contents=new Array();addContents()}function resetMapContents(){for(var a=0;a<mapContents.length;a++){_contents[mapContents[a]].loadingfailed=false;_contents[mapContents[a]].preloaded=false}}var Content=function(){Effect.call(this);this.target=null;this.preloaded=false;this.loadingfailed=false;this.load=function(){this.preloaded=true};this.setTarget=function(a){if(this.target!=null){}this.target=a};this.__defineGetter__("container",function(){return this.target.document.body});this.update=function(c,b,a){}};Content.prototype=new Effect();Content.prototype.constructor=Content;var VideoContent=function(a,m,c,h){Content.call(this);var j=this;var l,g,k;var f;this.ratio=0;this.video=document.createElement("video");this.video.appendChild(k=document.createElement("source"));this.video.appendChild(g=document.createElement("source"));this.load=function(){if(BrowserDetect.browser!="Chrome"){l=document.createElement("div");styleElement(l,"position: absolute; top: -1000px; left: -1000px; width: 0px; height: 0px; overflow: hidden; visibility: visible");l.appendChild(this.video);document.body.appendChild(l)}k.src=h;g.src=c;f=setInterval(b,500)};function b(){if(j.video.readyState>=2){j.ratio=j.video.videoWidth/j.video.videoHeight;j.video.width=a;j.video.height=a/j.ratio;if(j.video.height<m){j.video.height=m;j.video.width=m*j.ratio}j.preloaded=true;if(BrowserDetect.browser!="Chrome"){document.body.removeChild(l)}clearInterval(f)}}this.show=function(){styleElement(this.video,"position: absolute; left: "+(a-this.video.width)*0.5+"px; top: "+(m-this.video.height)*0.5+"px");this.container.appendChild(this.video);this.video.play();this.target.window.addEventListener("resize",e,false)};this.hide=function(){this.video.pause();this.container.removeChild(this.video);this.target.window.removeEventListener("resize",e,false)};this.update=function(q,p,n){};this.pause=function(){this.video.pause()};this.resume=function(){this.video.play()};function e(q){var n=q.target.innerWidth;var p=q.target.innerHeight;j.video.style.left=(n-j.video.width)*0.5+"px";j.video.style.top=(p-j.video.height)*0.5+"px"}};VideoContent.prototype=new Content();VideoContent.prototype.constructor=VideoContent;var FigureRunning=function(b,a,c){Content.call(this);this.canvas=document.createElement("canvas");this.canvas.width=b;this.canvas.height=a;styleElement(this.canvas,"background: #000");this.context=this.canvas.getContext("2d");var e=this;this.img=new Image();this.img.onload=function(){e.preloaded=true};this.img.src=c;this.show=function(){this.container.appendChild(this.canvas);this.context.drawImage(this.img,0,0)};this.hide=function(){this.container.removeChild(this.canvas)};this.update=function(h,g,f){}};FigureRunning.prototype=new Content();FigureRunning.prototype.constructor=FigureRunning;var FigureRunningVideo=function(e,b,f,j){Content.call(this);var h=this;var c,g,a;this.ratio=0;this.video=document.createElement("video");this.video.appendChild(a=document.createElement("source"));this.video.appendChild(g=document.createElement("source"));this.video.loop="loop";a.src=j;g.src=f;c=document.createElement("div");styleElement(c,"position: absolute; top: -1000px; left: -1000px; width: 0px; height: 0px; overflow: hidden; visibility: hidden");c.appendChild(this.video);document.body.appendChild(c);this.video.addEventListener("canplaythrough",function(k){console.log("can play through");h.ratio=h.video.videoWidth/h.video.videoHeight;h.video.width=e;h.video.height=e/h.ratio;h.preloaded=true},false);this.preloaded=true;this.show=function(){this.container.appendChild(this.video);this.video.play()};this.hide=function(){this.container.removeChild(this.video)};this.update=function(m,l,k){}};FigureRunningVideo.prototype=new Content();FigureRunningVideo.prototype.constructor=FigureRunningVideo;function BirdsSky(s,p){Content.call(this);var b=s,x=p,C=b/2,j=x/2;var y,B,u,l,a,h,c,f,A;var q,v;var n,t;var e;var m=[31,32,33,35,39,40,41,44,48,49,50,53,58,59,60,100],r=0;var k=[new THREE.Vector3(100,100,100),new THREE.Vector3(-50,50,100),new THREE.Vector3(50,100,50),new THREE.Vector3(-100,-50,50),new THREE.Vector3(0,0,0),new THREE.Vector3(100,100,100),new THREE.Vector3(-50,50,100),new THREE.Vector3(50,100,50),new THREE.Vector3(-100,-50,50),new THREE.Vector3(0,0,0),new THREE.Vector3(100,100,100),new THREE.Vector3(-50,-100,50),new THREE.Vector3(50,-400,50),new THREE.Vector3(-100,-800,-50),new THREE.Vector3(0,-800,0),new THREE.Vector3(0,-800,0),];var g;this.load=function(){g=new MANUAL_TWEEN.Manager();c=new THREE.Vector3();f=new THREE.Vector3();A=new THREE.Vector3();n=document.createElement("img");n.src="http://cdn.thewildernessdowntown.com/files/img/clouds.png";t=document.createElement("img");t.src="http://cdn.thewildernessdowntown.com/files/img/vignette2.png";y=new THREE.Camera(75,b/x,1,10000);y.position.z=400;B=new THREE.Scene();l=[];v=[];for(var E=0;E<100;E++){q=v[E]=new Boid();q.position.x=Math.random()*200-100;q.position.y=Math.random()*200-100;q.position.z=Math.random()*200-100;q.velocity.x=Math.random()*4-2;q.velocity.y=Math.random()*4-2;q.velocity.z=Math.random()*4-2;a=l[E]=new THREE.Mesh(new Crow(),new THREE.MeshColorFillMaterial(0));a.phase=Math.floor(Math.random()*62.83);a.position=q.position;a.doubleSided=true;B.addObject(a)}u=new THREE.CanvasRenderer();u.domElement.style.position="absolute";u.autoClear=false;u.setSize(b,x);var D=new MANUAL_TWEEN.Tween(A).to(2,{y:-1200}).easing(TWEEN.Easing.Expo.EaseIn);g.add(D);e=u.domElement.getContext("2d");this.preloaded=true};function z(D){b=D.target.innerWidth;x=D.target.innerHeight;C=b/2;j=x/2;y.projectionMatrix=THREE.Matrix4.makePerspective(75,b/x,1,10000);u.setSize(b,x)}this.show=function(){sendStat("/50-Birds");this.container.appendChild(u.domElement);this.container.addEventListener("mousemove",w,false);this.target.window.addEventListener("resize",z,false)};this.hide=function(){this.container.removeChild(u.domElement);this.container.removeEventListener("mousemove",w,false);this.target.window.removeEventListener("resize",z,false)};function w(F){f.x=F.clientX-C;f.y=-F.clientY+j+y.position.y;for(var E=0,D=v.length;E<D;E++){q=v[E];f.z=q.position.z;q.repulse(f)}}this.update=function(J,H,G){var E,K;if(J>m[r]){c=k[r];for(var I=0,D=v.length;I<D;I++){q=v[I];var F=new THREE.Vector3();F.copy(c);F.x+=(Math.random()*300-150)*(H+0.2);F.y+=(Math.random()*300-150)*(H+0.2);F.z+=(Math.random()*300-150)*(H+0.2);q.setGoal(F)}r++}y.position.y=-(H*300)+200;y.target.position.y=y.position.y;if(H>0.6){g.update((H-0.6)*5000);y.target.position.addSelf(A);A.divideScalar(80)}e.drawImage(n,0,-(y.target.position.y-200),600,x,0,0,b,x);for(var I=0,D=l.length;I<D;I++){q=v[I];q.run(v);a=l[I];E=a.material[0].color;K=(500-a.position.z)/10000;E.r=K*0.9;E.g=K*0.67;E.b=K*0.37;E.updateStyleString();a.position.y+=A.y;a.position.z-=A.y;a.rotation.y=Math.atan2(-q.velocity.z,q.velocity.x);a.rotation.z=Math.asin(q.velocity.y/q.velocity.length());a.phase+=Math.max(0,a.rotation.z-0.5)+0.1;a.geometry.vertices[5].position.y=a.geometry.vertices[4].position.y=Math.sin(a.phase%62.83)*5}u.render(B,y);if(H>0.96){e.fillStyle="rgba(255, 255, 255, "+((H-0.96)/0.04)+")";e.fillRect(0,0,b,x)}e.drawImage(t,0,0,b,x)}}BirdsSky.prototype=new Content();BirdsSky.prototype.constructor=BirdsSky;function GAddCopyright(l,k,j,h,g,f,e,c,b,a){map.addCopyright(c)}function GVerify(){}var map=new ProjMap();var FlyingNeighborhood=function(e,a){Content.call(this);this.preloaded=false;var b=this;var g;var f,h;function c(l){var j=l.target.innerWidth;var k=l.target.innerHeight;map.canvas.style.left=(j-map.canvas.width)*0.5+"px";map.canvas.style.top=(k-map.canvas.height)*0.5+"px"}this.checkPreloaded=function(){b.loadingfailed=map.load_failed;if(map.isPreloaded()){b.preloaded=true}else{setTimeout(b.checkPreloaded,1000)}};this.load=function(){map.scale=1;map.create(gLocation);this.checkPreloaded()};this.init=function(){this.frameCount=0};this.show=function(){sendStat("/60-Street-view");this.target.window.addEventListener("resize",c,false);map.setSize(e,a);map.running=true;map.deviation=0;map.birds1=false;map.birds2=true;map.birds3=true;map.start_time=59.5;map.setScene(1);map.trees=false;map.rotate_angle=0;map.earthquake=true;map.tween_perspective=0;map.tween_alpha=0;f=new MANUAL_TWEEN.Tween(map).to(4,{tween_perspective:0.15}).easing(TWEEN.Easing.Sine.EaseOut);map.tweener.add(f);h=new MANUAL_TWEEN.Tween(map).to(1,{tween_alpha:1}).easing(TWEEN.Easing.Sine.EaseOut);map.tweener.add(h);g=this.target.document.title;this.container.appendChild(map.canvas)};this.hide=function(){map.tweener.remove(f);map.tweener.remove(h);this.target.window.removeEventListener("resize",c,false);this.target.document.title=g;this.container.removeChild(map.canvas)};this.update=function(m,k,j){map.fixCopyrights();this.target.document.title=map.getCopyrights();var l=49.900001525879;map.initial_angle=map.angle-0.5*Math.PI+map.texture_angle;map.clouds_alpha=0;map.white_alpha=0;map.clouds=false;if(k<0.025){map.white_alpha=1-(k/0.025)}if(k<0.05){map.clouds=true;map.clouds_alpha=1-(k/0.05)}var n=map.perspective;map.tweener.update(k*l*1000);map.perspective=0.5-map.tween_perspective;if(n!=map.perspective){map.precalc()}if(k>0.5){map.deviation=(k-0.5)/0.5}map.render(m,k)}};FlyingNeighborhood.prototype=new Content();FlyingNeighborhood.prototype.constructor=FlyingNeighborhood;var StreetviewPan=function(C,y,J,I){Content.call(this);var f=this,h,r;var j=1,p=C,B=y,g=C/2,D=y/2,e=1664,z=832,F=z/2,A=p/B;var H=Math.PI,n=[],v=[],u,c,x,w,m,b,q,t,s,l,k=new ImprovedNoise(),J=J?J:Math.random(),I=I?I:1;this.load=function(){s=0;l=8;u=document.createElement("canvas");u.style.position="absolute";u.width=p;u.height=B;c=u.getContext("2d");c.fillStyle="#000";c.fillRect(0,0,p,B);x=document.createElement("canvas");x.width=e;x.height=z;w=document.createElement("canvas");w.width=e;w.height=z;w.getContext("2d").fillStyle="rgb(0,0,0)";w.getContext("2d").fillRect(0,0,e,z);for(var K=0;K<p;K++){n[K]=(Math.sin(((K-p/2)/p*A))*p)/1.75;v[K]=Math.abs(Math.cos(((K-p/2)/p)*A*0.5))*0.35}b=gLocation.getPosition(J);q=gLocation.getPosition(J+0.1);t=new google.maps.StreetViewService();t.getPanoramaByLocation(b,50,function(M,N){if(N==google.maps.StreetViewStatus.OK){var Q=M.location.pano;a(x,Q,0,0);a(x,Q,1,0);a(x,Q,2,0);a(x,Q,3,0);a(x,Q,0,1);a(x,Q,1,1);a(x,Q,2,1);a(x,Q,3,1);var P=180-M.tiles.centerHeading;var L=E(M.location.latLng.lat(),M.location.latLng.lng(),1000000000,1000000000);var O=E(q.lat(),q.lng(),1000000000,1000000000);O.x-=L.x;O.y-=L.y;m=P+Math.atan2(O.x,-O.y)*57.2957795;h=M.copyright;f.preloaded=true}else{f.loadingfailed=true}})};function E(N,L,M,K){return{x:((L+180)/360)*M,y:((90-N)/180)*K}}function a(M,O,K,N){var L=document.createElement("img");L.addEventListener("load",function(){M.getContext("2d").drawImage(this,K*512,N*512);s++;if(s==l){var P=w.getContext("2d");if(RegExp(" AppleWebKit/").test(navigator.userAgent)){P.drawImage(M,0,0);P.globalAlpha=0.5;P.globalCompositeOperation="darker";P.fillStyle="#704214";P.fillRect(0,0,e,z);P.globalCompositeOperation="lighter"}P.drawImage(M,0,0)}},false);L.addEventListener("error",function(){f.loadingfailed=true},false);L.src="http://cbk0.google.com/cbk?output=tile&panoid="+O+"&zoom=2&x="+K+"&y="+N}function G(K){u.style.left=(K.target.innerWidth-C)*0.5+"px";u.style.top=(K.target.innerHeight-y)*0.5+"px"}this.show=function(){this.container.appendChild(u);if(h){r=this.target.document.title;this.target.document.title=h}this.target.window.addEventListener("resize",G,false)};this.hide=function(){this.container.removeChild(u);if(h){this.target.document.title=r}this.target.window.removeEventListener("resize",G,false)};this.update=function(M,K,O){if(f.loadingfailed){return}var R,N,S,L=(m+(K*140*I))*0.0174532925,Q=k.noise(0,K,M)*75;for(var P=0;P<p;P+=j){R=n[P]+(L*270);N=R%(e-j);N=N<0?N+e-j:N;S=z*v[P];c.drawImage(w,N,F-(v[P]*(F+Q)),j,S,P,0,j,B)}}};StreetviewPan.prototype=new Content();StreetviewPan.prototype.constructor=StreetviewPan;var AerialHouse360=function(b,l){Content.call(this);var m=this;var g;var h=[];var k;var c,f,j,a;map.tween_angle1=0;map.tween_angle2=0;map.tween_angle3=0;map.tween_zoom=0;a=new MANUAL_TWEEN.Tween(map).delay(20.767002868652).to(7,{tween_angle3:2*Math.PI}).easing(TWEEN.Easing.Linear.EaseNone);j=new MANUAL_TWEEN.Tween(map).delay(12.967002868652).to(7.8,{tween_angle2:2*Math.PI}).easing(TWEEN.Easing.Linear.EaseNone);f=new MANUAL_TWEEN.Tween(map).to(12.967002868652,{tween_angle1:2*Math.PI}).easing(TWEEN.Easing.Sine.EaseIn);c=new MANUAL_TWEEN.Tween(map).to(22.967002868652,{tween_zoom:0.6}).easing(TWEEN.Easing.Sine.EaseIn);function e(q){var n=q.target.innerWidth;var p=q.target.innerHeight;map.canvas.style.left=(n-map.canvas.width)*0.5+"px";map.canvas.style.top=(p-map.canvas.height)*0.5+"px"}this.load=function(){map.setSize(b,l);this.preloaded=true};this.init=function(){this.frameCount=0};this.show=function(){this.target.window.addEventListener("resize",e,false);g=this.target.document.title;k=map.texture_angle;map.setSize(b,l);map.running=false;map.deviation=1;map.rotating=true;map.zooming=true;map.perspective=0.35;map.precalc();map.birds1=false;map.birds2=false;map.birds3=false;map.tween_angle1=0;map.tween_angle2=0;map.tween_angle3=0;map.tween_zoom=0;map.setScene(1);map.earthquake=true;map.rotating=true;map.tweener.add(a);map.tweener.add(j);map.tweener.add(f);map.tweener.add(c);this.container.appendChild(map.canvas)};this.hide=function(){this.target.window.removeEventListener("resize",e,false);this.target.document.title=g;this.container.removeChild(map.canvas);map.tweener.remove(a);map.tweener.remove(j);map.tweener.remove(f);map.tweener.remove(c)};this.update=function(r,p,n){map.fixCopyrights();this.target.document.title=map.getCopyrights();var q=22.967002868652;map.rotating=true;map.zooming=true;map.deviation=1;map.updateCamera(1);map.tweener.update(p*q*1000);map.texture_angle=map.initial_angle+map.tween_angle1+map.tween_angle2+map.tween_angle3;map.setZoom(19+map.tween_zoom);map.render(r,p)}};AerialHouse360.prototype=new Content();AerialHouse360.prototype.constructor=AerialHouse360;var Streetview360=function(B,x){Content.call(this);var f=this,h,r;var j=1,p=B,A=x,g=B/2,C=x/2,e=1664,y=832,E=y/2,z=p/A;var G=Math.PI,q=[],v=[],u,c,w,m,n,b,t,s,l,k=new ImprovedNoise();this.load=function(){s=0;l=8;u=document.createElement("canvas");u.style.position="absolute";u.width=p;u.height=A;c=u.getContext("2d");c.fillStyle="#000";c.fillRect(0,0,p,A);w=document.createElement("canvas");w.width=e;w.height=y;texture_mod=document.createElement("canvas");texture_mod.width=e;texture_mod.height=y;texture_mod.getContext("2d").fillStyle="rgb(0,0,0)";texture_mod.getContext("2d").fillRect(0,0,e,y);for(var H=0;H<p;H++){q[H]=(Math.sin(((H-p/2)/p*z))*p)/2.5;v[H]=Math.abs(Math.cos(((H-p/2)/p)*z*0.75))*0.35}b=gLocation.getPosition(1);t=new google.maps.StreetViewService();t.getPanoramaByLocation(b,50,function(J,K){if(K==google.maps.StreetViewStatus.OK){var N=J.location.pano;a(w,N,0,0);a(w,N,1,0);a(w,N,2,0);a(w,N,3,0);a(w,N,0,1);a(w,N,1,1);a(w,N,2,1);a(w,N,3,1);var M=180-J.tiles.centerHeading;var I=D(J.location.latLng.lat(),J.location.latLng.lng(),1000000000,1000000000);var L=D(gLocation.getLocation().lat(),gLocation.getLocation().lng(),1000000000,1000000000);L.x-=I.x;L.y-=I.y;n=M+Math.atan2(L.x,-L.y)*57.2957795;n+=35;h=J.copyright;f.preloaded=true}else{f.loadingfailed=true}})};function D(K,I,J,H){return{x:((I+180)/360)*J,y:((90-K)/180)*H}}function a(J,L,H,K){var I=document.createElement("img");I.addEventListener("load",function(){J.getContext("2d").drawImage(this,H*512,K*512);s++;if(s==l){var M=texture_mod.getContext("2d");if(RegExp(" AppleWebKit/").test(navigator.userAgent)){M.drawImage(J,0,0);M.globalAlpha=0.5;M.globalCompositeOperation="darker";M.fillStyle="#704214";M.fillRect(0,0,e,y);M.globalCompositeOperation="lighter"}M.drawImage(J,0,0)}},false);I.addEventListener("error",function(){f.loadingfailed=true},false);I.src="http://cbk0.google.com/cbk?output=tile&panoid="+L+"&zoom=2&x="+H+"&y="+K}function F(H){u.style.left=(H.target.innerWidth-B)*0.5+"px";u.style.top=(H.target.innerHeight-x)*0.5+"px"}this.show=function(){this.container.appendChild(u);if(h){r=this.target.document.title;this.target.document.title=h}w;this.target.window.addEventListener("resize",F,false)};this.hide=function(){this.container.removeChild(u);if(h){this.target.document.title=r}this.target.window.removeEventListener("resize",F,false)};this.update=function(J,H,L){if(f.loadingfailed){return}var O,K,Q,I=(n-H*450)*0.0174532925,P=k.noise(-H*10,0,H*10)*60,N=k.noise(0,-H*10,H*10)*60;for(var M=0;M<p;M+=j){O=q[M]+(I*270)+P;K=O%(e-j);K=K<0?K+e-j:K;Q=y*v[M];c.drawImage(texture_mod,K,E-(v[M]*(E+N)),j,Q,M,0,j,A)}}};Streetview360.prototype=new Content();Streetview360.prototype.constructor=Streetview360;var ZoomOut=function(e,a){Content.call(this);var b=this;var f;function c(j){var g=j.target.innerWidth;var h=j.target.innerHeight;map.canvas.style.left=(g-map.canvas.width)*0.5+"px";map.canvas.style.top=(h-map.canvas.height)*0.5+"px"}this.show=function(){this.target.window.addEventListener("resize",c,false);f=this.target.document.title;map.setSize(e,a);map.running=false;map.rotating=true;map.updateCamera(1);map.perspective=0.35;map.precalc();map.birds1=false;map.birds2=false;map.birds3=false;map.setScene(1);map.earthquake=false;this.container.appendChild(map.canvas)};this.hide=function(){this.target.window.removeEventListener("resize",c,false);this.target.document.title=f;this.container.removeChild(map.canvas)};this.update=function(k,h,g){map.fixCopyrights();this.target.document.title=map.getCopyrights();var j=24.230010986328;map.rotating=true;map.zooming=true;map.deviation=1;map.updateCamera(1);map.setZoom(19.6-4.4*h);map.texture_angle=map.initial_angle+map.tween_angle1+map.tween_angle2+map.tween_angle3+1.35*h*(2*Math.PI);map.render(k,h)}};ZoomOut.prototype=new Content();ZoomOut.prototype.constructor=ZoomOut;var currentCode=undefined;var DrawingTool=function(c,a){Content.call(this);var h=this;this.mousePressed=false;this.mouseX;this.mouseY;this.randomizer=new SeededRandom();this.canvas=document.createElement("canvas");this.canvas.width=c;this.canvas.height=a;this.context=this.canvas.getContext("2d");this.megaContainer=document.createElement("div");this.messageContainer=document.createElement("div");this.memory=new Memory(this);this.brush=new BranchingBrush(this,this.context);this.branches=[];this.activeGlyphs=[];this.blockKeyboard=false;this.dontCenterMe=false;this.getOffset=function(){var l=this.canvas;var k=0;var j=0;while(l&&!isNaN(l.offsetLeft)&&!isNaN(l.offsetTop)){k+=l.offsetLeft-l.scrollLeft;j+=l.offsetTop-l.scrollTop;l=l.parentNode}return{top:j,left:k}};this.introStr="Write a postcard of advice to the younger you that lived there then.";this.aIntroString=this.introStr.split("");this.userStartedDrawing=false;this.introStep=0;this.introDelay=0;this.intro=document.createElement("div");var g=document.createElement("div");var f=document.createElement("div");var e=document.createElement("div");g.innerHTML="to write or draw";styleElement(g,"position: absolute; top: 212px; left: 397px;");f.innerHTML="for smaller letters";styleElement(f,"position: absolute; top: 325px; left: 397px;");e.innerHTML="(double click to start)";styleElement(e,"position: absolute; top: 420px; left: 305px;");this.introExtra=document.createElement("div");styleElement(this.introExtra,"position: absolute; top: -10px; left: 0px; width: 100%; height: 100%; background: url(img/prompt.gif) 180px 162px no-repeat;");this.introExtra.appendChild(g);this.introExtra.appendChild(f);this.introExtra.appendChild(e);styleElement(this.intro,"text-align: left; padding-left: 135px; padding-top: 90px; width: 100%; height: 100%; ");this.introText=document.createElement("span");this.intro.appendChild(this.introText);this.ox=0;this.oy=0;this.messageContents="";SharedObject.data.drawingX=0;SharedObject.data.drawingPressed=0;SharedObject.data.drawingReleased=0;SharedObject.data.dt_canvas=this.canvas;SharedObject.data.dt_points=[];var b=SharedObject.data.dt_canvas.getContext("2d");b.globalCompositeOperation="source-over";this.canvas.style.cursor="crosshair";this.canvas.style.border="1px solid #CCC";this.canvas.style.position="absolute";this.canvas.style.zIndex="2";this.megaContainer.style.position="absolute";this.megaContainer.style.cursor="crosshair";this.megaContainer.style.border="1px solid #CCC";this.megaContainer.style.padding="8px";this.megaContainer.style.width=this.canvas.width+3+"px";this.megaContainer.style.height=this.canvas.height+3+"px";this.megaContainer.style.overflow="hidden";this.megaContainer.style.background="url(/img/pattern.jpg)";this.megaContainer.appendChild(this.messageContainer);this.megaContainer.appendChild(this.canvas);this.makeWordContainer=function(){var j=document.createElement("div");j.style.border="1px solid #000";return j};this.waitForExtra=0;this.timeToWaitForExtra=90;this.activeWordContainer=this.makeWordContainer();this.isRedrawing=false;this.show=function(l){SharedObject.data.drawingPressed=0;SharedObject.data.drawingReleased=0;SharedObject.data.dt_points=this.brush.allPoints;this.addListeners();this.container.appendChild(this.megaContainer);var k=15;this.messageContainer.style.width=this.canvas.width-k*2+1+"px";this.messageContainer.width=this.canvas.width-k*2+1;this.messageContainer.style.height=this.canvas.height-k*2+1+"px";this.messageContainer.height=this.canvas.height-k*2+1;this.messageContainer.style.padding=k+"px";this.messageContainer.style.position="absolute";this.messageContainer.style.overflow="hidden";if(l){this.userStartedDrawing=true;this.dontCenterMe=true}else{if(!l){try{sendStat("/70-Drawing")}catch(j){}this.megaContainer.appendChild(this.intro);this.startRecording()}}this.container.style.backgroundColor="#FFF";this.onWindowResize(null);this.randomizer.reset();this.canvas.focus()};this.hide=function(){b.drawImage(this.canvas,0,0);this.stopRecording();this.container.removeChild(this.megaContainer);try{clearTimeout(this.introKillInterval);this.introTween.destroy();this.megaContainer.removeChild(this.intro)}catch(j){}this.container.style.backgroundColor="#000";this.removeListeners()};this.update=function(r,n,m){var k=this.isRedrawing&&(currentCode==undefined)?40:1;for(var l=0;l<k;l++){if(this.memory.isPlaying||this.memory.isRecording){this.memory.step()}for(var p=0;p<this.branches.length;p++){this.branches[p].update()}for(var q in this.activeGlyphs){this.activeGlyphs[q].update()}if(!this.userStartedDrawing){if(this.introStep<this.aIntroString.length){if(this.introDelay==1){this.introText.innerHTML+=this.aIntroString[this.introStep];if(this.aIntroString[this.introStep]=="."){this.introText.innerHTML+="<br/>"}this.introStep++;this.introDelay=0}else{this.introDelay++}}else{if(this.waitForExtra<this.timeToWaitForExtra){this.waitForExtra++}else{this.intro.appendChild(this.introExtra)}}}if(this.mousePressed){if(this.memory.isRecording){this.memory.add(1,this.mouseX-this.ox,this.mouseY-this.oy)}this.brush.stroke(this.mouseX-this.ox,this.mouseY-this.oy)}}};this.clear=function(){this.context.clearRect(0,0,this.canvas.width,this.canvas.height);this.brush.destroy();this.memory.forget();this.clearMessage()};this.clearMessage=function(){this.messageContents="";while(this.messageContainer.children.length>0){this.messageContainer.removeChild(this.messageContainer.firstChild)}};this.addListeners=function(){this.addDrawingListeners();this.target.window.addEventListener("resize",this.onWindowResize,false);this.target.window.addEventListener("blur",this.blurHandler,false);this.onWindowResize(null)};this.removeListeners=function(){this.removeDrawingListeners();this.target.window.removeEventListener("resize",this.onWindowResize,false);this.target.window.removeEventListener("blur",this.blurHandler,false)};this.blurHandler=function(j){SharedObject.data.drawingPressed=0;SharedObject.data.drawingReleased=3};this.onWindowResize=function(m){var p=h.getOffset();h.ox=p.left;h.oy=p.top;var j=h.target.window.innerWidth;var l=h.target.window.innerHeight;var n=h.megaContainer.offsetWidth||771;var k=h.megaContainer.offsetHeight||521;if(!h.dontCenterMe){h.megaContainer.style.left=(j-n)*0.5+"px";h.megaContainer.style.top=(l-k)*0.5+"px"}else{h.megaContainer.style.left="0px";h.megaContainer.style.top="0px"}};this.onDocumentMouseOut=function(j){h.onCanvasMouseUp();return false};this.removeIntro=function(){if(!h.userStartedDrawing){h.userStartedDrawing=true;try{h.megaContainer.removeChild(h.intro)}catch(j){}}};this.fadeIntroOut=function(){h.introTween=new TWEEN.Tween(h.introOpacity);h.introTween.easing(TWEEN.Easing.Linear.EaseOut);h.introTween.onUpdate(h.fadeIntroUpdate);h.introTween.onComplete(h.killIntro);h.introTween.to(1,{alpha:0})};this.fadeIntroUpdate=function(){var k=parseInt(h.introOpacity.alpha);var j=k/100;h.intro.style.filter="alpha(opacity="+k+")";h.intro.style.opacity=j+"";h.intro.style["-moz-opacity"]=j+"";h.intro.style.visibility=(j>0.1)?"visible":"hidden"};this.killIntro=function(){h.megaContainer.removeChild(h.intro)};this.onCanvasMouseDown=function(k){k.preventDefault();var l,j;h.removeIntro();h.mousePressed=true;h.brush.strokeStart(k.clientX-h.ox,k.clientY-h.oy);if(h.memory.isRecording){h.memory.add(0,k.clientX-h.ox,k.clientY-h.oy)}SharedObject.data.drawingPressed=3;h.canvas.addEventListener("mouseup",h.onCanvasMouseUp,false);return false};this.onCanvasMouseMove=function(j){h.mouseX=j.clientX;h.mouseY=j.clientY};this.onCanvasMouseUp=function(j){h.mousePressed=false;if(h.memory.isRecording){h.memory.add(2,-1,-1)}SharedObject.data.drawingReleased=3;SharedObject.data.drawingPressed=0;h.brush.strokeEnd();h.canvas.removeEventListener("mouseup",h.onCanvasMouseUp,false)};this.addDrawingListeners=function(){this.target.window.addEventListener("keyup",this.onKeyUp,false);this.target.window.addEventListener("keydown",this.onKeyDown,false);this.canvas.addEventListener("mouseout",this.onCanvasMouseUp,false);this.canvas.addEventListener("mousemove",this.onCanvasMouseMove,false);this.canvas.addEventListener("mousedown",this.onCanvasMouseDown,false);this.canvas.style.cursor="crosshair"};this.removeDrawingListeners=function(){this.target.window.removeEventListener("keyup",this.onKeyUp,false);this.target.window.removeEventListener("keydown",this.onKeyDown,false);this.canvas.removeEventListener("mouseout",this.onCanvasMouseDown,false);this.canvas.removeEventListener("mousemove",this.onCanvasMouseMove,false);this.canvas.removeEventListener("mousedown",this.onCanvasMouseDown,false);this.canvas.style.cursor="default";try{this.canvas.removeEventListener("mouseup",h.onCanvasMouseUp,false)}catch(j){}};this.getFinalImage=function(r){var t=10;var v=function(y,z){var x=0;var w=0;while(y&&y!=z&&!isNaN(y.offsetLeft)&&!isNaN(y.offsetTop)){x+=y.offsetLeft-y.scrollLeft;w+=y.offsetTop-y.scrollTop;y=y.parentNode}return{top:w,left:x}};var u=document.createElement("canvas");u.width=this.canvas.width+t*2;u.height=this.canvas.height+t*2;var s=document.createElement("canvas");s.width=this.canvas.width;s.height=this.canvas.height;var j=s.getContext("2d");var k=u.getContext("2d");var n,q;for(var p in this.messageContainer.children){n=this.messageContainer.children[p];if(n.nodeName=="CANVAS"||n.nodeName=="canvas"){var m=v(n,this.messageContainer);j.drawImage(n,m.left,m.top)}}j.drawImage(this.canvas,0,0);var l=new Image();l.src="/img/pattern.jpg";l.onload=function(){var w=k.createPattern(l,"repeat");k.fillStyle=w;k.fillRect(Math.round(u.width/2-s.width/2-t)+0.5,Math.round(u.height/2-t-s.height/2)+0.5,s.width+t*2,s.height+t*2);k.strokeStyle="#ccc";k.lineWidth=1;k.strokeRect(Math.round(u.width/2-s.width/2-t)+0.5,Math.round(u.height/2-t-s.height/2)+0.5,s.width+t*2-1,s.height+t*2-1);k.strokeRect(Math.round(u.width/2-s.width/2)-0.5,Math.round(u.height/2-s.height/2)-0.5,s.width+1,s.height+1);k.drawImage(s,u.width/2-s.width/2,u.height/2-s.height/2);r(u.toDataURL("image/png"))}};this.loadMessage=function(k){this.clearMessage();for(var j=0;j<k.length;j++){var l=k.charAt(j);this.addGlyph(l)}};this.onKeyUp=function(j){if(!h.blockKeyboard){h.removeIntro();SharedObject.data.drawingReleased=3;SharedObject.data.drawingPressed=0;if(j.keyCode==8){h.backspace()}else{if(j.keyCode==190){h.addGlyph(".")}else{var k=String.fromCharCode(j.keyCode);h.addGlyph(k)}}}};this.onKeyDown=function(j){if(!h.blockKeyboard){SharedObject.data.drawingPressed=3}};this.backspace=function(){if(this.messageContainer.children.length>0){var j=this.activeGlyphs.pop();this.messageContainer.removeChild(j.canvas);this.messageContents=this.messageContents.substring(0,this.messageContents.length-1)}};this.addGlyph=function(m){var l=this.getGlyph(m);if(!l){return}this.activeGlyphs.push(l);this.messageContainer.appendChild(l.canvas);this.messageContents+=""+l.character;var k=0;for(var j=0;j<this.activeGlyphs.length;j++){var l=this.activeGlyphs[j];k+=l.left+l.width+l.right}};this.getGlyph=function(j){if(!glyphs[j]){return false}var l=glyphs[j];var k=new CanvasSprite(l);k.character=j;return k};this.isEmpty=function(){return(this.memory.actions.length==0&&this.messageContents.length==0)};this.startRecording=function(){this.memory.beginRecord()};this.stopRecording=function(){this.memory.endRecord()};this.getSavedMemory=function(){return this.memory.save()};this.loadMemory=function(j,k){this.clear();this.memory.read(j)}};DrawingTool.prototype=new Content();DrawingTool.prototype.constructor=DrawingTool;var VideoMachine=function(c,s,f,l,r,k){Content.call(this);var n=this;var q,j,p,b,m,a;var h;this.MAX_SPEED=1;this.playbackRate=0;this.videoState="idle";this.playbackStep=0.03;this.ratio=0;this.video=document.createElement("video");this.video.appendChild(p=document.createElement("source"));this.video.appendChild(j=document.createElement("source"));this.video.loop=true;if(r!=undefined){this.idleLoop=document.createElement("video");this.idleLoop.appendChild(m=document.createElement("source"));this.idleLoop.appendChild(b=document.createElement("source"));this.idleLoop.loop=true}else{this.idleLoop=null}this.load=function(){if(BrowserDetect.browser!="Chrome"){q=document.createElement("div");styleElement(q,"position: absolute; top: -1000px; left: -1000px; width: 0px; height: 0px; overflow: hidden; visibility: hidden");q.appendChild(this.video);document.body.appendChild(q)}p.src=l;j.src=f;if(this.idleLoop!=null){if(BrowserDetect.browser!="Chrome"){a=document.createElement("div");styleElement(a,"position: absolute; top: -1000px; left: -1000px; width: 0px; height: 0px; overflow: hidden; visibility: hidden");a.appendChild(this.idleLoop);document.body.appendChild(a)}m.src=k;b.src=r}h=setInterval(e,500)};function e(){var t=(n.video.readyState>=3);if(n.idleLoop!=null){t&=(n.idleLoop.readyState>=3)}if(t){n.ratio=n.video.videoWidth/n.video.videoHeight;n.video.width=c;n.video.height=c/n.ratio;if(n.video.height<s){n.video.height=s;n.video.width=s*n.ratio}if(BrowserDetect.browser!="Chrome"){document.body.removeChild(q)}if(n.idleLoop!=null){n.idleLoop.width=n.video.width;n.idleLoop.height=n.video.height;if(BrowserDetect.browser!="Chrome"){document.body.removeChild(a)}}n.preloaded=true;clearInterval(h)}}this.show=function(){this.container.appendChild(this.video);styleElement(this.video,"position: absolute; left: "+(c-this.video.width)*0.5+"px; top: "+(s-this.video.height)*0.5+"px");if(this.idleLoop!=null){this.container.appendChild(this.idleLoop);styleElement(this.idleLoop,"position: absolute; left: "+(c-this.idleLoop.width)*0.5+"px; top: "+(s-this.idleLoop.height)*0.5+"px");this.idleLoop.play()}this.video.play();this.target.window.addEventListener("resize",g,false)};this.hide=function(){this.container.removeChild(this.video);this.target.window.removeEventListener("resize",g,false)};this.update=function(w,u,t){var v=(SharedObject.data.drawingX==undefined)?0:SharedObject.data.drawingX;if((SharedObject.data.drawingPressed>0)&&(this.videoState!="speedUp")){if(this.idleLoop!=null){this.idleLoop.style.visibility="hidden"}SharedObject.data.drawingPressed--;this.videoState="speedUp"}else{if((SharedObject.data.drawingReleased>0)&&(this.videoState!="speedDown")){SharedObject.data.drawingReleased--;this.videoState="speedDown"}}if(this.videoState=="speedUp"){if(this.playbackRate<this.MAX_SPEED){this.playbackRate+=this.playbackStep}}else{if(this.videoState=="speedDown"){if(this.playbackRate>0){this.playbackRate-=this.playbackStep}else{this.playbackRate=0;this.videoState="idle";if(this.idleLoop!=null){this.idleLoop.style.visibility="visible"}}}}this.video.playbackRate=this.playbackRate};function g(v){var t=(v.target.innerWidth>c)?v.target.innerWidth:c;var u=(v.target.innerHeight>s)?v.target.innerHeight:s;n.video.style.left=(t-n.video.width)*0.5+"px";n.video.style.top=(u-n.video.height)*0.5+"px";if(n.idleLoop!=null){n.idleLoop.style.left=(t-n.idleLoop.width)*0.5+"px";n.idleLoop.style.top=(u-n.idleLoop.height)*0.5+"px"}}};VideoMachine.prototype=new Content();VideoMachine.prototype.constructor=VideoMachine;function BirdsMap(k,j){var c=k,m=j,u=c/2,f=m/2;var p,q;var r,t,l,h,a;var b,g,e,v;this.load=function(){b=new MANUAL_TWEEN.Manager();g=new MANUAL_TWEEN.Manager();h=[];r=new THREE.Camera(75,c/m,1,10000);r.position.z=340;t=new THREE.Scene();l=new THREE.CanvasRenderer();l.domElement.style.position="absolute";l.domElement.style.left="0px";l.domElement.style.top="0px";l.setSize(c,m);this.preloaded=true};function n(){if(q){return}q=true;p=SharedObject.data.dt_points.slice(0);if(!p.length){for(var y=0;y<250;y++){p.push([Math.random()*700,Math.random()*400])}}p.sort(function(){return Math.random()>0.5?-1:1});var x=p.length>250?250:p.length;for(var y=0;y<x;y++){a=h[y]=new THREE.Mesh(new Crow(),new THREE.MeshColorFillMaterial(0));a.scale.x=a.scale.y=a.scale.z=Math.random()+0.5;a.doubleSided=true;t.addObject(a);a.phase=Math.floor(Math.random()*62.83);if(Math.random()>0.5){a.position.x=Math.random()*-2000;a.position.y=Math.random()*1000;a.position.z=Math.random()*-1000-1000}else{a.position.x=Math.random()*-0-1000;a.position.y=Math.random()*1000;a.position.z=Math.random()*1000-500}a.rotation.y=(Math.random()*90-45)*Math.PI/180;a.rotation.z=-5*Math.PI/180;var w=Math.random()*5;var z=Math.random()*2+3;e=new MANUAL_TWEEN.Tween(a.position).delay(w).to(z-0.5,{x:p[y][0]-(k/2),y:-p[y][1]+(j/2),z:0}).easing(TWEEN.Easing.Sine.EaseOut);b.add(e);e=new MANUAL_TWEEN.Tween(a.rotation).delay(w).to(z,{z:20*Math.PI/180}).easing(TWEEN.Easing.Sine.EaseOut);b.add(e);e=new MANUAL_TWEEN.Tween(a).delay(w).to(z,{phase:200}).easing(TWEEN.Easing.Expo.EaseIn);b.add(e);a.phase=200;a.position.x=p[y][0]-(k/2);a.position.y=-p[y][1]+(j/2);a.position.z=0;w=Math.random()*5;e=new MANUAL_TWEEN.Tween(a.position).delay(w).to(4,{x:Math.random()*700+750,y:Math.random()*1000-500,z:Math.random()*1000-400}).easing(TWEEN.Easing.Sine.EaseIn);g.add(e);e=new MANUAL_TWEEN.Tween(a).delay(w).to(4,{phase:400}).easing(TWEEN.Easing.Back.EaseIn);g.add(e)}}function s(w){SharedObject.data.dt_canvas.style.left=(w.target.innerWidth-SharedObject.data.dt_canvas.width)*0.5-1+"px";SharedObject.data.dt_canvas.style.top=(w.target.innerHeight-SharedObject.data.dt_canvas.height)*0.5-1+"px";l.domElement.style.left=(w.target.innerWidth-k)*0.5+10+"px";l.domElement.style.top=(w.target.innerHeight-j)*0.5+10+"px"}this.show=function(){n();this.container.appendChild(l.domElement);this.container.appendChild(SharedObject.data.dt_canvas);SharedObject.data.dt_canvas.style.left=(this.target.innerWidth-SharedObject.data.dt_canvas.width)*0.5-1+"px";SharedObject.data.dt_canvas.style.top=(this.target.innerHeight-SharedObject.data.dt_canvas.height)*0.5-1+"px";l.domElement.style.left=(this.target.innerWidth-k)*0.5+10+"px";l.domElement.style.top=(this.target.innerHeight-j)*0.5+10+"px";this.target.window.addEventListener("resize",s,false)};this.hide=function(){this.container.removeChild(l.domElement);this.container.removeChild(SharedObject.data.dt_canvas);this.target.window.removeEventListener("resize",s,false)};this.update=function(C,A,y){var x,D;if(A<0.5){b.update(A*20000)}else{g.update((A-0.5)*20000)}for(var B=0,w=h.length;B<w;B++){a=h[B];x=a.material[0].color;D=(500-a.position.z)/1500;x.r=D;x.g=D;x.b=D;x.updateStyleString();a.geometry.vertices[5].position.y=a.geometry.vertices[4].position.y=Math.sin(a.phase%62.83)*5}l.render(t,r)}}BirdsMap.prototype=new Content();BirdsMap.prototype.constructor=BirdsMap;var FlyingNeighborhood2=function(e,a){Content.call(this);var b=this;var f;function c(j){var g=(j.target.innerWidth>e)?j.target.innerWidth:e;var h=(j.target.innerHeight>a)?j.target.innerHeight:a;map.canvas.style.left=(g-map.canvas.width)*0.5+"px";map.canvas.style.top=(h-map.canvas.height)*0.5+"px"}this.show=function(){this.target.window.addEventListener("resize",c,false);f=this.target.document.title;map.setSize(e,a);map.clouds=false;map.running=true;map.rotating=false;map.zooming=false;map.trees=true;map.angle=0;map.texture_angle=0;map.start_time=244.591;map.birds1=true;map.birds2=false;map.birds3=false;map.perspective=0.35;map.precalc();map.setScene(2);map.setZoom(19,true);this.container.appendChild(map.canvas)};this.hide=function(){this.target.window.removeEventListener("resize",c,false);this.target.document.title=f;this.container.removeChild(map.canvas)};this.update=function(j,h,g){map.fixCopyrights();this.target.document.title=map.getCopyrights();map.updateCamera(1);map.rotating=false;map.texture_angle=0;map.running=true;map.zooming=false;map.deviation=0;map.trees=true;map.render(j,h)}};FlyingNeighborhood2.prototype=new Content();FlyingNeighborhood2.prototype.constructor=FlyingNeighborhood2;var StreetViewTrees=function(a,b,I,z,n){Content.call(this);var H=this,M=1664,D=832,v,C,E,k;var p,l,y,s,g,q,f,j,t,A,u,h,G,e,m,B,F,I=I|0;var r,w,c,N,K;this.load=function(){E=0;k=8;m=gLocation.getPosition(1);B=new google.maps.StreetViewService();p=new THREE.Camera(60,a/b,1,10000);A=new THREE.Scene();u=new THREE.Scene();h=new THREE.Scene();r=document.createElement("canvas");r.width=M;r.height=D;r.getContext("2d").fillStyle="rgb(0,0,0)";r.getContext("2d").fillRect(0,0,1664,832);w=document.createElement("canvas");w.width=M;w.height=D;c=[];for(var O=0;O<63;O++){var Q=document.createElement("canvas");Q.width=256;Q.height=256;c[O]=Q}var P=document.createElement("img");P.addEventListener("load",function(){for(var S=0;S<63;S++){var R=(S*256)%2048;var T=Math.floor((S*256)/2048)*256;c[S].getContext("2d").drawImage(this,R,T,256,256,0,0,256,256)}},false);P.src="files/img/tree_front.png";B.getPanoramaByLocation(m,50,function(ag,U){if(U==google.maps.StreetViewStatus.OK){v=ag.copyright;var S=ag.location.pano;x(r,S,0,0);x(r,S,1,0);x(r,S,2,0);x(r,S,3,0);x(r,S,0,1);x(r,S,1,1);x(r,S,2,1);x(r,S,3,1);var Y=L(ag.location.latLng.lat(),ag.location.latLng.lng(),1000000000,1000000000);var aa=L(gLocation.getLocation().lat(),gLocation.getLocation().lng(),1000000000,1000000000);aa.x-=Y.x;aa.y-=Y.y;var af=(Math.atan2(aa.x,-aa.y)*57.2957795)+I;q=I+180-ag.tiles.centerHeading+af;if(I!=0){var R,T=1000,X;for(var W=0;W<ag.links.length;W++){R=Math.min(Math.abs(af-ag.links[W].heading),Math.abs((af+360)-ag.links[W].heading));if(R<T){closest_heading=ag.links[W].heading;T=R}}q=closest_heading+180-ag.tiles.centerHeading}p.target.position.x=10000*Math.cos(q*Math.PI/180);p.target.position.z=10000*Math.sin(q*Math.PI/180);y=new THREE.Mesh(new Sphere(400,30,20,true),new THREE.MeshBitmapUVMappingMaterial(w));y.overdraw=true;y.flipSided=true;A.addObject(y);g=[];N=[];j=[];K=new MANUAL_TWEEN.Manager();var ac=document.createElement("canvas");ac.width=256;ac.height=256;var ae=ac.getContext("2d");var ab=ae.createRadialGradient(128,128,0,128,128,128);ab.addColorStop(0.1,"rgba(0, 0, 0, 0.5)");ab.addColorStop(0.5,"rgba(0, 0, 0, 0.2)");ab.addColorStop(0.7,"rgba(0, 0, 0, 0.1)");ab.addColorStop(1,"rgba(0, 0, 0, 0)");ae.fillStyle=ab;ae.fillRect(0,0,256,256);t=new THREE.ParticleBitmapMaterial(ac);for(var W=0;W<5;W++){var Z=new THREE.ParticleBitmapMaterial(c[0]);Z.offset.y=110;s=g[W]=new THREE.Particle(Z);if(I==0){s.position.copy(p.position);s.position.multiplyScalar(3);s.position.x+=Math.random()*2000-1000;s.position.y=-500;s.position.z+=Math.random()*2000-1000;s.scale.x=s.scale.y=Math.random()*5+5}else{s.position.copy(p.target.position);s.position.multiplyScalar(1-((W*2)/9));s.position.x+=Math.random()*2000-1000;s.position.y=-700;s.position.z+=Math.random()*2000-1000;s.scale.x=s.scale.y=Math.random()*5+10}h.addObject(s);N[W]=new BitmapSequence(c);f=j[W]=new THREE.Particle(t);f.position=s.position;f.scale.x=f.scale.y=0;u.addObject(f);var V=W*2;var ad=new MANUAL_TWEEN.Tween(N[W]).delay(V).to(10,{position:1});K.add(ad);ad=new MANUAL_TWEEN.Tween(f.scale).delay(V).to(10,{x:8,y:2}).easing(TWEEN.Easing.Expo.EaseOut);K.add(ad)}H.preloaded=true}else{H.loadingfailed=true}});G=new THREE.CanvasRenderer();G.domElement.style.position="absolute";G.autoClear=false;G.setSize(a,b);e=new THREE.CanvasRenderer();e.autoClear=false;e.setSize(a,b);e.domElement.style.position="absolute";e.domElement.style.left="0px";e.domElement.style.top="0px";F=e.domElement.getContext("2d")};function L(R,P,Q,O){return{x:((P+180)/360)*Q,y:((90-R)/180)*O}}function x(Q,S,O,R){var P=document.createElement("img");P.addEventListener("load",function(){Q.getContext("2d").drawImage(this,O*512,R*512);E++;if(E==k){var T=w.getContext("2d");if(RegExp(" AppleWebKit/").test(navigator.userAgent)){T.drawImage(Q,0,0);T.globalAlpha=0.5;T.globalCompositeOperation="darker";T.fillStyle="#000010";T.fillRect(0,0,M,D);T.globalCompositeOperation="lighter"}T.drawImage(Q,0,0);G.render(A,p)}},false);P.addEventListener("error",function(){H.loadingfailed=true},false);P.src="http://cbk0.google.com/cbk?output=tile&panoid="+S+"&zoom=2&x="+O+"&y="+R}function J(O){G.domElement.style.left=(O.target.innerWidth-a)*0.5+"px";G.domElement.style.top=(O.target.innerHeight-b)*0.5+"px";e.domElement.style.left=(O.target.innerWidth-a)*0.5+"px";e.domElement.style.top=(O.target.innerHeight-b)*0.5+"px"}this.show=function(){this.container.appendChild(G.domElement);this.container.appendChild(e.domElement);if(v){C=this.target.document.title;this.target.document.title=v}this.target.window.addEventListener("resize",J,false)};this.hide=function(){this.container.removeChild(G.domElement);this.container.removeChild(e.domElement);if(v){this.target.document.title=C}this.target.window.removeEventListener("resize",J,false)};this.update=function(R,P,O){if(H.loadingfailed){return}if(K){K.update(((P*n)+z)*10000);for(var Q=0;Q<g.length;Q++){s=g[Q];s.material[0].bitmap=N[Q].get()}F.clearRect(0,0,a,b);e.render(u,p);e.render(h,p)}}};StreetViewTrees.prototype=new Content();StreetViewTrees.prototype.constructor=StreetViewTrees;var BirdsAttackFigure=function(b,a){Content.call(this);this.canvas=document.createElement("canvas");this.canvas.width=b;this.canvas.height=a;styleElement(this.canvas,"background: #FC0");this.context=this.canvas.getContext("2d");this.show=function(){this.container.appendChild(this.canvas)};this.hide=function(){this.container.removeChild(this.canvas)};this.update=function(f,e,c){}};BirdsAttackFigure.prototype=new Content();BirdsAttackFigure.prototype.constructor=BirdsAttackFigure;function CanvasBirds(f,k,h){var b=k,p=h,v=b/2,c=p/2,s=100;var r,t,l,g,a,e;var j,m,u;this.container=f;q();function q(){e=new THREE.Vector3(0,1000,0);r=new THREE.Camera(75,b/p,1,10000);r.position.z=500;t=new THREE.Scene();g=[];m=[];l=new THREE.CanvasRenderer();l.domElement.style.position="absolute";l.domElement.style.left="0px";l.domElement.style.top="0px";l.setSize(b,p);f.style.left="0px";f.appendChild(l.domElement);document.addEventListener("mousemove",n,false);u=setInterval(w,100)}function w(){j=m[m.length]=new Boid();j.position.x=Math.random()*100+900;j.position.y=Math.random()*600-300;j.position.z=Math.random()*200-100;j.velocity.x=Math.random()*2+1;j.velocity.y=Math.random()*2+1;j.velocity.z=Math.random()*2+1;j.setAvoidWalls(true);j.setWorldSize(1000,800,300);a=g[g.length]=new THREE.Mesh(new Crow(),new THREE.MeshColorFillMaterial(0));a.phase=Math.floor(Math.random()*62.83);a.position=j.position;a.doubleSided=true;t.addObject(a);if(m.length>s){clearInterval(u)}}function n(x){e.x=x.clientX-v;e.y=-x.clientY+c}this.update=function(){var y;for(var z=0,x=g.length;z<x;z++){j=m[z];j.run(m);e.z=j.position.z;j.repulse(e);a=g[z];y=a.material[0].color;y.r=y.g=y.b=(500-a.position.z)/1000;y.updateStyleString();a.rotation.y=Math.atan2(-j.velocity.z,j.velocity.x);a.rotation.z=Math.asin(j.velocity.y/j.velocity.length());a.phase+=Math.max(0,a.rotation.z-0.5)+0.1;a.geometry.vertices[5].position.y=a.geometry.vertices[4].position.y=Math.sin(a.phase%62.83)*5}l.render(t,r)}}var BrowserDetect={init:function(){this.browser=this.searchString(this.dataBrowser)||"An unknown browser";this.version=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion)||"an unknown version";this.OS=this.searchString(this.dataOS)||"an unknown OS"},searchString:function(e){for(var a=0;a<e.length;a++){var b=e[a].string;var c=e[a].prop;this.versionSearchString=e[a].versionSearch||e[a].identity;if(b){if(b.indexOf(e[a].subString)!=-1){return e[a].identity}}else{if(c){return e[a].identity}}}},searchVersion:function(b){var a=b.indexOf(this.versionSearchString);if(a==-1){return}return parseFloat(b.substring(a+this.versionSearchString.length+1))},dataBrowser:[{string:navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:navigator.vendor,subString:"Apple",identity:"Safari",versionSearch:"Version"},{prop:window.opera,versionSearch:"Version",identity:"Opera"},{string:navigator.vendor,subString:"iCab",identity:"iCab"},{string:navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:navigator.vendor,subString:"Camino",identity:"Camino"},{string:navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],dataOS:[{string:navigator.platform,subString:"Win",identity:"Windows"},{string:navigator.platform,subString:"Mac",identity:"Mac"},{string:navigator.userAgent,subString:"iPhone",identity:"iPhone/iPod"},{string:navigator.platform,subString:"Linux",identity:"Linux"}]};BrowserDetect.init();var bg,sequencer,lInterval,audio,audioOGG,audioMP3,stats,counter;var link,inputTime;var searchField,aSearch,searchBtn,searchHlp,searchLoaded=false;var defaultSearchString="Enter the address of the home where you grew up";var layoutTopContainer;var canvasBirds,titleWriter;var launched=false;var playing=true;var resuming=false;aSearch=document.createElement("input");aSearch.type="text";aSearch.id="aSearch";aSearch.addEventListener("keypress",handleKeyPress,false);aSearch.addEventListener("focus",checkAddressInputText,false);aSearch.addEventListener("blur",restoreAddressInputText,false);aSearch.value=defaultSearchString;var addressFeedback,storedAddress;var warning;var final_drawing,isDrawing=false;var codeHelper;var subtitle=document.getElementById("sub-text");var buttonsArea=document.getElementById("buttons-area");var blocker=document.createElement("div");blocker.id="blocker";var blockerSettings={opacity:0};var blockerTween=new TWEEN.Tween(blockerSettings);document.body.appendChild(blocker);try{var console=console||{log:function(a){}}}catch(error){}window.addEventListener("unload",exitSequencer,false);bg=document.getElementById("bg");audio=document.createElement("audio");audio.preload="auto";audio.appendChild(audioOGG=document.createElement("source"));audio.appendChild(audioMP3=document.createElement("source"));audioOGG.src="http://cdn.thewildernessdowntown.com/files/wutw.ogg";audioOGG.type="audio/ogg; codecs=vorbis";audioMP3.src="http://cdn.thewildernessdowntown.com/files/wutw.mp3";audioMP3.type="audio/mpeg";document.body.appendChild(audio);if(BrowserDetect.browser=="Firefox"&&BrowserDetect.version<3.5){createWarning('This site will not work with your <a href="http://www.whatbrowser.org">browser</a>. It was designed with Google Chrome in mind, you may need to download <a href="http://www.google.com/chrome">Google Chrome</a> and try launching this site again.')}else{if(BrowserDetect.browser=="Firefox"&&BrowserDetect.version<4){createWarning('This site was designed with Google Chrome in mind and is unable to render properly in your <a href="http://www.whatbrowser.org">browser</a>.<br />For the best viewing experience, we recommend downloading <a href="http://www.google.com/chrome">Google Chrome</a> and trying this site again.');createTryAnywayButton()}else{if(BrowserDetect.browser=="Safari"&&BrowserDetect.version<=3){createWarning('This site was designed for modern browsers like <a href="http://www.google.com/chrome">Google Chrome</a>, please download it or update to the <a href="http://www.apple.com/safari/download/">newest version</a> of your current browser.');createTryAnywayButton()}else{if(BrowserDetect.browser=="Opera"){createWarning('This site may not work with your <a href="http://www.whatbrowser.org">browser</a>. It was designed with Google Chrome in mind, you may need to download <a href="http://www.google.com/chrome">Google Chrome</a> and try launching this site again.');createTryAnywayButton()}else{if(BrowserDetect.browser=="Chrome"&&BrowserDetect.version<=4){createWarning('Please update your browser for the best viewing experience. For instructions on updating Chrome, please refer to the <a href="http://www.google.com/support/chrome/bin/answer.py?hl=en&answer=95414">Google Chrome Help Center</a>.');createTryAnywayButton()}else{if(BrowserDetect.browser=="Explorer"&&BrowserDetect.version<=8){createWarning('This site may not work with your <a href="http://www.whatbrowser.org">browser</a>. It was designed with Google Chrome in mind, you may need to download <a href="http://www.google.com/chrome">Google Chrome</a> and try launching this site again.')}else{if(BrowserDetect.browser=="Explorer"&&BrowserDetect.version>8){createWarning('This site may not work with your <a href="http://www.whatbrowser.org">browser</a>. It was designed with Google Chrome in mind, you may need to download <a href="http://www.google.com/chrome">Google Chrome</a> and try launching this site again.');createTryAnywayButton()}else{createSearchField();createPreloader()}}}}}}}layoutTopContainer=document.getElementById("top");if(window.location.hash){aSearch.value=window.location.hash.replace("#","")}window.addEventListener("resize",resizeHandler,false);resizeHandler(null);lInterval=setInterval(init,500);function init(){if((audio.readyState>=3)&&(searchLoaded)){clearInterval(lInterval);totalTime=audio.duration;canvasBirds=new CanvasBirds(bg,window.innerWidth,window.innerHeight);lInterval=setInterval(loop,100/6);addContents();loadContents();if(aSearch.value!=defaultSearchString){checkAddress()}else{appendSearchField()}}}function preload(){createPreloader();loadMapContents();loadInterval=setInterval(function(){addToPreloader(Math.round(100*getLoadedContents()/_contents.length));if(checkIfPreloaded()){clearInterval(loadInterval);preloaded()}else{if(loadDataFailed()){clearInterval(loadInterval);onNotEnoughTileData()}}},100);addToPreloader(Math.round(100*getLoadedContents()/_contents.length));createTip()}function continuePreloading(){createPreloader();loadInterval=setInterval(function(){addToPreloader(Math.round(100*getLoadedContents()/_contents.length));if(checkIfPreloaded(true)){clearInterval(loadInterval);preloaded()}},100);addToPreloader(Math.round(100*getLoadedContents()/_contents.length));createTip()}function preloaded(){createLauncher();createTip();sendStat("/30-End-loading")}function checkAddress(){clearButtonsArea();removeAddressFeedback();removeSuggestionListeners();gLocation.checkAddress(aSearch.value,64);sendStat("/10-Address-search")}function checkAddressInputText(a){if(aSearch.value===defaultSearchString){aSearch.value=""}}function restoreAddressInputText(a){if(aSearch.value===""){aSearch.value=defaultSearchString}}function handleKeyPress(b){var a=b.keyCode||b.which;if(a==13){checkAddress()}}function onSuccess(){launchSequencer();preload();sendStat("/20-Loading")}function onInvalidAddress(){removeAddressFeedback();appendSearchField();addressFeedback=document.createElement("div");addressFeedback.id="gc_as";addressFeedback.innerHTML="We're having difficulty finding this address. Please try again.";searchField.appendChild(addressFeedback);addSuggestionListeners()}function onNotEnoughData(){removeAddressFeedback();appendSearchField();addressFeedback=document.createElement("div");addressFeedback.id="gc_as";addressFeedback.innerHTML="The entered address does not contain enough data for this experiment to run.";searchField.appendChild(addressFeedback);addSuggestionListeners()}function onNotEnoughTileData(){removeAddressFeedback();onSuggestionBlur(null);clearButtonsArea();clearInterval(loadInterval);createNotEnoughDataLayout()}function removeAddressFeedback(){try{if(addressFeedback!=undefined){searchField.removeChild(addressFeedback)}}catch(a){}}function start(){clearButtonsArea();launchWindowManager();createWindowSequence();createContentSequence();audio.addEventListener("ended",audioEnded,false);sendStat("/40-Launch-film")}function launch(){launched=true;audio.play();clearButtonsArea();fadeBlocker(90)}function launchSequencer(){sequencer=new Sequencer()}function loop(){TWEEN_MANAGER.update();if(launched){if(playing){sequencer.update(audio.currentTime,0);if(audio.currentTime>287){controller.kill()}}}else{if(!isDrawing){canvasBirds.update()}else{drawingTool.update()}}}function toggleMute(){audio.muted=!audio.muted}function togglePlayPause(){audio.paused?audio.play():audio.pause();playing=!audio.paused;if(audio.paused){sequencer.pause()}else{sequencer.resume()}}function audioEnded(a){exitSequencer();createEndButtons();launched=false;resuming=true;fadeBlocker(0);sendStat("/80-End-film")}function pausedByClose(){launched=false;resuming=true;createPausedState();fadeBlocker(0)}function resumeAfterClose(a){windowsReady=0;audio.muted=false;resetContents();loadContents();loadMapContents();continuePreloading()}function replayVideo(a){audio.pause();audio.currentTime=0;resumeAfterClose(a);sendStat("/Click-on-Replay-your-film");sendStat("/20-Loading")}function showShareVideo(f){if(!document.getElementById("shareVideo")){var g=document.getElementById("buttons-area");var b=document.createElement("div");b.id="shareVideo";g.appendChild(b);var e=document.createElement("p");e.innerHTML="Copy and paste the link below to send this film <br />to someone with your address built in: ";b.appendChild(e);var c=document.createElement("input");c.id="aSearch";c.value="http://www.thewildernessdowntown.com/#"+storedAddress.replace(/\ /gi,"+");c.setAttribute("readonly","readonly");b.appendChild(c);c.focus();c.select();var a=document.createElement("span");a.innerHTML="<b>[x]</b>";a.style.cursor="pointer";a.style.marginLeft="10px";b.appendChild(a);a.addEventListener("click",closeShareVideo,false);sendStat("/Click-on-Share-your-film")}}function closeShareVideo(c){try{var e=document.getElementById("buttons-area");var a=document.getElementById("shareVideo");e.removeChild(a)}catch(b){}}function createSearchField(){searchField=document.createElement("div");searchField.id="search-form";searchField.appendChild(aSearch);searchBtn=document.createElement("img");searchBtn.width=77;searchBtn.height=20;searchBtn.src="img/search.png";searchBtn.onload=function(){searchLoaded=true};searchBtn.id="search-img";searchBtn.addEventListener("click",checkAddress,false);searchField.appendChild(searchBtn);searchHlp=document.createElement("span");searchHlp.innerHTML="<b>[?]</b>";searchHlp.style.cursor="pointer";searchHlp.addEventListener("mouseover",showSearchHelp,false);searchHlp.addEventListener("mouseout",hideHelp,false);searchField.appendChild(searchHlp)}function createWarning(c){var a=document.createElement("div");a.id="warning";a.innerHTML="<p>"+c+"</p>";var b=document.getElementById("top");b.appendChild(a)}function createTryAnywayButton(){var a=document.createElement("input");a.setAttribute("class","button");a.id="tryanyway";a.type="button";a.value="Try Anyway";a.addEventListener("click",function(){var e=document.getElementById("top");var c=document.getElementById("warning");e.removeChild(c);createSearchField();createPreloader()},false);var b=document.getElementById("warning");b.appendChild(a)}function downloadChrome(a){window.location="http://www.google.com/chrome/";sendStat("/Click-on-Downlod-Chrome")}function appendSearchField(){clearButtonsArea();buttonsArea.appendChild(searchField)}function clearButtonsArea(){buttonsArea.innerHTML="";while(buttonsArea.lastChild){buttonsArea.removeChild(buttonsArea.lastChild)}}function createPreloader(){var b=document.createElement("div");var a=document.createElement("div");var c=new Image();b.id="preloader";clearButtonsArea();buttonsArea.appendChild(b);c.src="http://cdn.thewildernessdowntown.com/img/preloader.gif";b.appendChild(c);b.appendChild(a);a.id="preloaderText";styleElement(a,"paddingTop: 5px")}function addToPreloader(b){var a=document.getElementById("preloaderText");a.innerHTML="PLEASE WAIT... LOADING "+b+" <span id='percentage'>%</span>"}function createNotEnoughDataLayout(){var b,a;clearButtonsArea();a=document.createElement("div");a.setAttribute("class","centered");a.innerHTML="Your address doesn't contain enough Street-View and/or Google Maps data to 100% enjoy this experience. You may want to try another address, or the name of your school and its town could work as well.<br/><br/>";buttonsArea.appendChild(a);b=document.createElement("input");b.type=b.className="button";b.id="continueAnywayButton";b.value="Continue Anyway";a.appendChild(b);b.addEventListener("click",continueAnyway,false);b=document.createElement("input");b.type=b.className="button";b.id="trySearchAgainButton";b.value="Search Again";a.appendChild(b);b.addEventListener("click",trySearchAgain,false)}function trySearchAgain(a){resetMapContents();appendSearchField();addSuggestionListeners()}function continueAnyway(a){continuePreloading()}function createTip(){if(!document.getElementById("tipText")){var a=document.createElement("div");a.setAttribute("class","subtitle-inside");a.id="tipText";a.innerHTML="This film is processor intensive. <br />Please shut down other programs and close unnecessary browser tabs. Doing this will enhance your viewing experience. Thanks.";buttonsArea.appendChild(a)}}function createLauncher(){var b=document.createElement("div");var a=document.createElement("input");a.setAttribute("class","button");a.type="button";a.value="Play Film";a.id="launcherButton";a.addEventListener("click",start,false);clearButtonsArea();b.innerHTML="We're ready. Please turn your speakers on.<br/><br/>";b.appendChild(a);buttonsArea.appendChild(b)}function createEndButtons(){var j=document.createElement("div");var e=document.createElement("input");var g=document.createElement("input");var f=document.createElement("input");var b=document.createElement("input");var c=document.createElement("span");var h=document.createElement("span");var k=document.createElement("div");styleElement(j,"textAlign: center;");var a="210px";e.setAttribute("class","button");e.type="button";e.value="Replay Your Film";e.style.marginRight="15px";e.style.width=a;e.addEventListener("click",replayVideo,false);g.setAttribute("class","button");g.type="button";g.value="Send your postcard downtown";g.style.marginRight="10px";g.style.width=a;g.addEventListener("click",continueDrawing,false);c.innerHTML="<b>[?]</b>";c.style.cursor="pointer";c.addEventListener("mouseover",showCodeHelp,false);c.addEventListener("mouseout",hideHelp,false);b.setAttribute("class","button");b.type="button";b.value="Share your film";b.style.marginRight="15px";b.style.marginTop="20px";b.style.width=a;b.addEventListener("click",showShareVideo,false);f.setAttribute("class","button");f.type="button";f.value="Respond to a postcard";f.style.marginRight="10px";f.style.marginTop="20px";f.style.width=a;f.addEventListener("click",respondPostcard,false);h.innerHTML="<b>[?]</b>";h.style.cursor="pointer";h.addEventListener("mouseover",showCodeHelp2,false);h.addEventListener("mouseout",hideHelp,false);clearButtonsArea();j.appendChild(e);j.appendChild(g);j.appendChild(c);j.appendChild(b);j.appendChild(f);j.appendChild(h);buttonsArea.appendChild(j)}function createPausedState(){var b=document.createElement("div");var a=document.createElement("input");a.setAttribute("class","button");a.type="button";a.value="Resume";a.addEventListener("click",resumeAfterClose,false);styleElement(b,"textAlign: center;");clearButtonsArea();b.innerHTML="We Used To Wait has paused because you have closed a window.<br/><br/>";b.appendChild(a);buttonsArea.appendChild(b)}function continueDrawing(e){try{final_drawing.close()}catch(b){}var c=1000;var a=770;var g=(screen.width-c)/2;var f=(screen.height-a)/2;final_drawing=window.open("drawingtool.html","final_drawing","width="+c+", height="+a+", left="+g+", top="+f);sendStat("/Click-on-Send-your-postcard-downton")}function respondPostcard(e){try{final_drawing.close()}catch(b){}var c=1000;var a=770;var g=(screen.width-c)/2;var f=(screen.height-a)/2;final_drawing=window.open("respond.html","final_drawing","width="+c+", height="+a+", left="+g+", top="+f);sendStat("/Click-on-Respond-to-a-postcard")}function resizeHandler(a){var b=document.getElementById("top");var c=(window.innerHeight>700)?100:100*((window.innerHeight-550)/(700-550));if(c<0){c=0}if((!launched)&&(canvasBirds!=undefined)){}b.style.top=c+"px"}function fadeBlocker(b){blockerTween.destroy();blockerTween=new TWEEN.Tween(blockerSettings);blockerTween.easing(TWEEN.Easing.Linear.EaseOut);blockerTween.onUpdate(fadeBlockerUpdate);blockerTween.onComplete(checkBlockerVisibility);blockerTween.to(1,{opacity:b})}function fadeBlockerUpdate(){var b=parseInt(blockerSettings.opacity);var a=blockerSettings.opacity/100;blocker.style.filter="alpha(opacity="+b+")";blocker.style.opacity=a+"";blocker.style["-moz-opacity"]=a+"";blocker.style.visibility=(a>0.1)?"visible":"hidden"}function checkBlockerVisibility(){var a=(blockerSettings.opacity>50)?90:0;blockerSettings.opacity=a;fadeBlockerUpdate()}function showCodeHelp(a){showHelp(a,"Continue your postcard and send it downtown. It could go to the Wilderness Machine, the Arcade Fire tour visuals, or another Wilderness Downtown user.")}function showCodeHelp2(a){showHelp(a,"If you’ve found a postcard you can respond to it here. You’ll need the code in its lower right hand corner to do so.")}function showSearchHelp(a){showHelp(a,"This can be the home you grew up in or another place from your childhood. Entering the name of a school and the town will work as well.")}function showHelp(a,b){hideHelp(a);codeHelper=document.createElement("div");codeHelper.id="help";codeHelper.innerHTML=b;document.body.appendChild(codeHelper);repositionCodeHelper(a);a.target.addEventListener("mousemove",repositionCodeHelper,false)}function repositionCodeHelper(a){codeHelper.style.top=(a.clientY-codeHelper.offsetHeight-10)+"px";codeHelper.style.left=(a.clientX-codeHelper.offsetWidth/2)+"px"}function hideHelp(b){try{document.body.removeChild(codeHelper)}catch(a){}}function hideWarning(b){try{document.body.removeChild(warning)}catch(a){}}function refresh(a){window.location="/"}function openCredits(){var b=465;var a=600;var e=(screen.width-b)/2;var c=(screen.height-a)/2;window.open("credits.html","credits","width="+b+", height="+a+", left="+e+", top="+c+", location=0, menubar=0, toolbar=0, scrollbars=1");sendStat("/Click-on-Credits")}function openTerms(){var b=400;var a=600;var e=(screen.width-b)/2;var c=(screen.height-a)/2;window.open("terms.html","terms","width="+b+", height="+a+", left="+e+", top="+c+", location=0, menubar=0, toolbar=0, scrollbars=1");sendStat("/Click-on-Terms")}function openPrivacyPolicy(){var b=400;var a=600;var e=(screen.width-b)/2;var c=(screen.height-a)/2;window.open("privacy-policy.html","privacyPolicy","width="+b+", height="+a+", left="+e+", top="+c+", location=0, menubar=0, toolbar=0, scrollbars=1");sendStat("/Click-on-Privacy-Policy")}function openTheWildernessMachine(){var b=465;var a=600;var e=(screen.width-b)/2;var c=(screen.height-a)/2;window.open("the-wilderness-machine.html","theWildernessMachine","width="+b+", height="+a+", left="+e+", top="+c+", location=0, menubar=0, toolbar=0, scrollbars=1");sendStat("/Click-on-The-Wilderness-Machine")}function sendStat(a){try{pageTracker._trackPageview(a)}catch(b){}}var autoSuggestions,suggestionResults;var suggestionsGeocoder=new google.maps.Geocoder();var suggestionsRequest=new XMLHttpRequest();var suggestURL="http://maps.google.com/maps/suggest?output=json&oe=utf8&sensor=true&q=";var suggestInterval;var storedAddress=aSearch.value;var searchFocus=false;addSuggestionListeners();suggestionsRequest.onreadystatechange=function(){if(suggestionsRequest.readyState==4){if(suggestionsRequest.status==200){console.log("Received:"+suggestionsRequest.responseText)}else{console.log("Error code "+suggestionsRequest.status)}}};function addSuggestionListeners(){document.addEventListener("keydown",onSuggestionKeyDown,false);document.addEventListener("blur",onSuggestionBlur,false);aSearch.addEventListener("focus",startSuggestionsLookup,false);aSearch.addEventListener("blur",stopSuggestionsLookup,false);suggestInterval=setInterval(checkAsYouType,100)}function removeSuggestionListeners(){document.removeEventListener("keydown",onSuggestionKeyDown,false);document.removeEventListener("blur",onSuggestionBlur,false);aSearch.removeEventListener("focus",startSuggestionsLookup,false);aSearch.removeEventListener("blur",stopSuggestionsLookup,false);clearInterval(suggestInterval)}function startSuggestionsLookup(a){searchFocus=true;storedAddress=""}function stopSuggestionsLookup(a){searchFocus=false;onSuggestionBlur(a)}function checkAsYouType(a){if((storedAddress!=aSearch.value)&&(searchFocus)){storedAddress=aSearch.value;suggestionsGeocoder.geocode({address:storedAddress},function(c,b){if(b==google.maps.GeocoderStatus.OK){renderSuggestions(c)}else{}})}}function renderSuggestions(b){var g;var e=document.getElementById("top");var f=parseFloat(e.style.top.replace("px",""));var a=(window.innerHeight>600)?window.innerHeight:600;var c=a-f-440;removeAddressFeedback();if(autoSuggestions!=undefined){onSuggestionBlur(null)}autoSuggestions=document.createElement("div");autoSuggestions.id="gc_as";suggestionResults={results:new Array(),selectedIndex:-1};for(i in b){g=document.createElement("div");styleElement(g,"padding: 4px; overflow:hidden; z-index:"+suggestionResults.results.length+"; cursor: pointer");g.innerHTML=b[i].formatted_address;g.addEventListener("mousedown",selectResultByMouse,false);g.addEventListener("mouseover",rollOverItem,false);g.addEventListener("mouseout",rollOutItem,false);autoSuggestions.appendChild(g);suggestionResults.results.push(g)}if(autoSuggestions.offsetHeight>c){autoSuggestions.style.height=c+"px"}searchField.appendChild(autoSuggestions)}function onSuggestionKeyDown(a){if(a.keyCode==40){selectSuggestionResult(1)}else{if(a.keyCode==38){selectSuggestionResult(-1)}else{if(a.keyCode==13){selectCurrentSuggestion();onSuggestionBlur(a)}else{if(a.keyCode==27){onSuggestionBlur(a);aSearch.blur()}}}}}function onSuggestionBlur(b){try{searchField.removeChild(autoSuggestions);suggestionResults={results:new Array(),selectedIndex:-1}}catch(a){}}function selectSuggestionResult(c){var b=0;if(suggestionResults!=undefined){suggestionResults.selectedIndex+=c;if(suggestionResults.selectedIndex<0){suggestionResults.selectedIndex=suggestionResults.results.length-1}else{if(suggestionResults.selectedIndex>=suggestionResults.results.length){suggestionResults.selectedIndex=0}}for(var a=0;a<suggestionResults.results.length;a++){if(a<=suggestionResults.selectedIndex){b+=suggestionResults.results[a].offsetHeight}suggestionResults.results[a].style.color=(a==suggestionResults.selectedIndex)?"#212121":"#666";suggestionResults.results[a].style.fontWeight=(a==suggestionResults.selectedIndex)?"bold":"normal"}if(b>autoSuggestions.offsetHeight+autoSuggestions.scrollTop){autoSuggestions.scrollTop=b-autoSuggestions.offsetHeight}else{if(b-suggestionResults.results[suggestionResults.selectedIndex].offsetHeight<Math.abs(autoSuggestions.scrollTop)){autoSuggestions.scrollTop=b-suggestionResults.results[suggestionResults.selectedIndex].offsetHeight}}}}function selectCurrentSuggestion(){if(suggestionResults!=undefined){if((suggestionResults.selectedIndex>-1)&&(suggestionResults.selectedIndex<suggestionResults.results.length)){selectAddress(suggestionResults.results[suggestionResults.selectedIndex].innerHTML)}}}function selectAddress(a){aSearch.value=a;storedAddress=aSearch.value;aSearch.blur();onSuggestionBlur(null);checkAddress()}function rollOverItem(a){var b=a.target;b.style.fontWeight="bold"}function rollOutItem(a){var b=a.target;b.style.fontWeight=(parseInt(b.style.zIndex)!=suggestionResults.selectedIndex)?"normal":"bold"}function selectResultByMouse(a){var b=a.target;console.log("item click");selectAddress(b.innerHTML)};
