var BACKGROUND_WIDTH=1692*2;var BACKGROUND_HEIGHT=400*2;var VIEWING_DISTANCE=20;var cameraPosition={x:0,y:0,z:100};var spriteLookup={};var selectedID=null;$(document).ready(function(){viewportHalfWidth=$("#viewport").width()/2;viewportHalfHeight=$("#viewport").height()/2;$(".sprite").each(function(G,H){var F={id:H.id,x:H.offsetLeft,y:H.offsetTop,z:parseInt(H.style.zIndex),w:H.offsetWidth,h:H.offsetHeight,fontSize:H.style.fontSize};spriteLookup[H.id]=F});var D=spriteLookup["background"];var C=(cameraPosition.z-D.z)/VIEWING_DISTANCE;D.x=-viewportHalfWidth;D.y=-viewportHalfHeight;D.w=BACKGROUND_WIDTH*C;D.h=BACKGROUND_HEIGHT*C;var B=D.w/BACKGROUND_WIDTH;var A=D.h/BACKGROUND_HEIGHT;$(".sprite").each(function(G,H){var F=spriteLookup[H.id];F.x*=B;F.y*=A});jQuery.fx.step.camera=function(F){if(F.state==0){F.start={x:cameraPosition.x,y:cameraPosition.y,z:cameraPosition.z};F.vector={x:F.end.x-F.start.x,y:F.end.y-F.start.y,z:F.end.z-F.start.z}}F.now={x:F.start.x+F.vector.x*F.pos,y:F.start.y+F.vector.y*F.pos,z:F.start.z+F.vector.z*F.pos};cameraPosition=F.now;updateView()};updateView();var E;if(window.location.hash){E=window.location.hash.substring(window.location.hash.indexOf("#")+1,window.location.hash.indexOf("_"))}else{E="interactive"}moveCamera(E)});function moveCamera(E){if(selectedID){$("#"+selectedID+" .copy").hide()}selectedID=E;var A=spriteLookup[E];var D=getCameraPositionForSprite(A);var B={x:cameraPosition.x+(D.x-cameraPosition.x)/2,y:cameraPosition.y+(D.y-cameraPosition.y)/2,z:Math.max(cameraPosition.z,D.z)+20};$("#viewport").animate({camera:B},{duration:300,queue:true,easing:"easeInQuad"});$("#viewport").animate({camera:D},{duration:300,queue:true,easing:"easeOutQuad",complete:function(){if($("#viewport").queue("fx").length==0){$("#"+selectedID+" .copy").fadeIn("slow")}}});var C=E+"_state";window.location.hash=C;$("#"+E+"_link").focus();urchinTracker("#"+C)}function getCameraPositionForSprite(A){var B=150;return{x:A.x+A.w/2+(Math.random()*B*2-B),y:A.y+A.h/2,z:A.z+VIEWING_DISTANCE}}function updateView(){jQuery.each(spriteLookup,function(B,A){var D=cameraPosition.z-A.z;var E=VIEWING_DISTANCE/D;if(D>1){var C={left:viewportHalfWidth+(A.x-cameraPosition.x)*E,top:viewportHalfHeight+(A.y-cameraPosition.y)*E,width:E*A.w+"px",height:E*A.h+"px",fontSize:E*100+"%",display:"block"};$("#"+A.id).css(C)}else{$("#"+A.id).css("display","none")}})}