var gTotalImagesLoaded=0;var gTotalImagesToLoad=8;var gImageParkingGarage=null;var gStripToBeDisplayed=null;var gLoadingTimeStart=0;var gLoadingTimeEnd=0;var gLoadingTimeTotalStrips=0;var gLoadingTimeTotalTime=0;var gLoadingTimeAverage=0;var gTimeStartLock=false;function DisplayStripChecker(){__streetviewer.ShowFromCache3(gStripToBeDisplayed);}function onImageLoad(){gTotalImagesLoaded++;if(gTotalImagesToLoad==gTotalImagesLoaded){PrintInfo("");gLoadingTimeEnd=new Date().getTime();gTimeStartLock=false;}}function OnStripTileCachedImageLoad(b,c,e){var stripEntry=stripDB[b][c];if(stripEntry==null)return;stripEntry.TotalImagesLoaded++;if(stripEntry.TotalImagesToLoad==stripEntry.TotalImagesLoaded){stripEntry.LoadComplete=true;stripEntry.LoadEndTime=new Date().getTime();}}function StreetViewer(){var baseurl="http://%5."+basehost+"/Striptiles/%1/%2_%3_%4.jpg";var infoImageDiv=null;var imageDivHolder=null;var imageDivsArray=null;var currentStripEntry=null;var totalStripsCached=0;this.maxStripsCached=50;var cachedStripEntries=null;this.ShowInfoImage=function(){infoImageDiv.style.display="block";infoImageDiv.style.zIndex=300;for(var i=0;i<imageDivsArray.length;i++){imageDivsArray[i].style.display="none";}};this.HideInfoImage=function(){infoImageDiv.style.display="none";for(var i=0;i<imageDivsArray.length;i++){imageDivsArray[i].style.display="block";}};this.ChangeInfoImage=function(g){infoImageDiv.style.backgroundImage="url("+g+")";};this.Init=function(h,j,k,l){infoImageDiv=document.createElement("div");infoImageDiv.id="infoImage";infoImageDiv.style.backgroundImage="url(i/NoImagePanorama.jpg)";infoImageDiv.style.display="block";infoImageDiv.style.top=h+"px";infoImageDiv.style.left=j+"px";infoImageDiv.position="absolute";infoImageDiv.style.width="1024px";infoImageDiv.style.height="256px";infoImageDiv.style.zIndex=500;imageDivHolder=document.createElement("div");imageDivHolder.id="imageDivHolder";imageDivHolder.style.top=h+"px";imageDivHolder.style.left=j+"px";imageDivHolder.style.width="1024px";imageDivHolder.style.height="256px";imageDivHolder.style.overflow="hidden";imageDivHolder.style.position="absolute";imageDivHolder.style.display="block";imageDivHolder.style.zIndex=201;cachedStripEntries=new Array();imageDivsArray=new Array();for(var i=0;i<8;++i){imageDivsArray[i]=document.createElement("div");imageDivsArray[i].style.width="256px";imageDivsArray[i].style.height="256px";imageDivsArray[i].style.position="absolute";imageDivsArray[i].style.overflow="hidden";imageDivsArray[i].style.top="0px";imageDivsArray[i].style.left=256*i+"px";imageDivsArray[i].style.zIndex=201;imageDivsArray[i].style.display="block";var tempImage=new Image();tempImage.width=256;tempImage.height=256;tempImage.onload=onImageLoad;imageDivsArray[i].appendChild(tempImage);imageDivHolder.appendChild(imageDivsArray[i]);}document.body.appendChild(imageDivHolder);imageDivHolder.appendChild(infoImageDiv);};this.ShowFromCache=function(m){gTotalImagesLoaded=0;PrintInfo("Loading images");for(var i=0;i<8;++i){imageDivsArray[i].childNodes[0].src=m[i].src;}};this.ShowFromCache2=function(n){gTotalImagesLoaded=0;PrintInfo("Loading images");for(var i=0;i<8;++i){imageDivsArray[i].appendChild(n[i]);if(imageDivsArray[i].childNodes[1]!=null){child=imageDivsArray[i].childNodes[0];imageDivsArray[i].removeChild(imageDivsArray[i].childNodes[0]);child=null;}}};this.ShowFromCache3=function(o){PrintInfo("Loading images");if(gTimeStartLock==false){gLoadingTimeStart=new Date().getTime();gTimeStartLock=true;}gStripToBeDisplayed=o;if(o.LoadComplete==false){window.setTimeout("DisplayStripChecker();",1);return;}var stripTilesCache=o.stripTilesCache;gTotalImagesLoaded=0;for(var i=0;i<8;++i){imageDivsArray[i].childNodes[0].src=stripTilesCache[i].src;}};this.CreateStripTilesCacheArray=function(p,q){var imageArray=new Array();for(var i=0;i<8;i++){var tileServer="tiles"+i%4;var imageURL=baseurl.replace("%5",tileServer).replace("%1",p).replace("%2",q).replace("%3","0").replace("%4",i);var imageEl=new Image();imageEl.width=256;imageEl.height=256;imageEl.src=imageURL;imageEl.style.zIndex=201;imageArray[i]=imageEl;}return imageArray;};this.CreateStripTilesCacheArray2=function(r,s){var stripEntry=stripDB[r][s];var basename=stripEntry.BaseFileName;if(stripEntry.stripTilesCache!=null)return;stripEntry.stripTilesCache=new Array();for(var i=0;i<8;i++){var tileServer="tiles"+i%4;var imageURL=baseurl.replace("%5",tileServer).replace("%1",r).replace("%2",basename).replace("%3","0").replace("%4",i);var imageEl=new Image();imageEl.width=256;imageEl.height=256;gImageParkingGarage=imageEl;var onLoadCode="gImageParkingGarage.onload = function(){ OnStripTileCachedImageLoad(\""+r+"\","+s+","+i+")};";eval(onLoadCode);stripEntry.LoadStartTime=new Date().getTime();imageEl.src=imageURL;imageEl.style.zIndex=201;stripEntry.stripTilesCache[i]=imageEl;}return stripEntry.stripTilesCache;};this.CacheImagesForQuadKey=function(t){var quadArray=stripDB[t];if(quadArray!=null&&quadArray.length>0)for(var i=0;i<quadArray.length;++i){if(quadArray[i].stripTilesCache==null){if(totalStripsCached<this.maxStripsCached){quadArray[i].stripTilesCache=this.CreateStripTilesCacheArray(t,quadArray[i].BaseFileName);totalStripsCached++;cachedStripEntries.push(quadArray[i]);}}}};this.UnCacheImagesForQuadKey=function(u){var quadArray=stripDB[u];if(quadArray!=null&&quadArray.length>0)for(var i=0;i<quadArray.length;++i){if(quadArray[i].stripTilesCache!=null){var index=0;var found=false;for(index=0;index<cachedStripEntries.length;index++){if(quadArray==cachedStripEntries[index]){found=true;break;}}if(quadArray.stripTilesCache!=null){this.DeleteStrip(quadArray.stripTilesCache);quadArray.stripTilesCache=null;}if(found==true){cachedStripEntries.splice(index,1);totalStripsCached--;}}}};this.SetImageShift=function(v){for(var i=0;i<8;++i){imageDivsArray[i].style.left=i*256+v+"px";}};this.SnapTo90RelativeToRoad=function(w){var newCarAngle=0;var relativeAngle=90-currentStripEntry.Angle-w;var adjustedRelAngle=relativeAngle;while(adjustedRelAngle<0){adjustedRelAngle+=360;}while(adjustedRelAngle>360){adjustedRelAngle-=360;}if(adjustedRelAngle<45||adjustedRelAngle>=315){newCarAngle=90-currentStripEntry.Angle;imageDivsArray[6].style.left="-256px";imageDivsArray[7].style.left="0px";imageDivsArray[0].style.left="256px";imageDivsArray[1].style.left="512px";imageDivsArray[2].style.left="768px";imageDivsArray[3].style.left="1024px";imageDivsArray[4].style.left="1280px";imageDivsArray[5].style.left="1536px";}else{if(adjustedRelAngle>=45&&adjustedRelAngle<135){newCarAngle=90-currentStripEntry.Angle-90;imageDivsArray[0].style.left="-256px";imageDivsArray[1].style.left="0px";imageDivsArray[2].style.left="256px";imageDivsArray[3].style.left="512px";imageDivsArray[4].style.left="768px";imageDivsArray[5].style.left="1024px";imageDivsArray[6].style.left="1280px";imageDivsArray[7].style.left="1536px";}else{if(adjustedRelAngle>=135&&adjustedRelAngle<225){newCarAngle=90-currentStripEntry.Angle-180;imageDivsArray[2].style.left="-256px";imageDivsArray[3].style.left="0px";imageDivsArray[4].style.left="256px";imageDivsArray[5].style.left="512px";imageDivsArray[6].style.left="768px";imageDivsArray[7].style.left="1024px";imageDivsArray[0].style.left="1280px";imageDivsArray[1].style.left="1536px";}else{if(adjustedRelAngle>=225&&adjustedRelAngle<315){newCarAngle=90-currentStripEntry.Angle-270;imageDivsArray[4].style.left="-256px";imageDivsArray[5].style.left="0px";imageDivsArray[6].style.left="256px";imageDivsArray[7].style.left="512px";imageDivsArray[0].style.left="768px";imageDivsArray[1].style.left="1024px";imageDivsArray[2].style.left="1280px";imageDivsArray[3].style.left="1536px";}}}}while(newCarAngle<0){newCarAngle+=360;}while(newCarAngle>360){newCarAngle-=360;}return newCarAngle;};this.Rotate=function(x){var relativeAngle=90-currentStripEntry.Angle-x;var shift=-3840;var multiplyConstant=5.68888888888889;this.SetImageShift(shift-relativeAngle*multiplyConstant);};this.DeleteStrip=function(y){if(y==null)alert("null strip!!");if(y!=null){for(var i=0;i<y.length;++i){var image=y.pop();image.onload=null;image.src=null;image=null;}y=null;}};this.ShowImage=function(z,A){var quadArray=stripDB[z];if(quadArray==null)return;currentStripEntry=quadArray[A];if(currentStripEntry==null)return;var imageArray=currentStripEntry.stripTilesCache;if(imageArray!=null){this.ShowFromCache3(currentStripEntry);return;}else{if(totalStripsCached<this.maxStripsCached){imageArray=this.CreateStripTilesCacheArray2(z,A);currentStripEntry.stripTilesCache=imageArray;totalStripsCached++;cachedStripEntries.push(currentStripEntry);}else{for(var i=0;i<totalStripsCached/4;++i){var tempEntry=cachedStripEntries.shift();this.DeleteStrip(tempEntry.stripTilesCache);tempEntry.stripTilesCache=null;totalStripsCached--;}imageArray=this.CreateStripTilesCacheArray2(z,A);currentStripEntry.stripTilesCache=imageArray;totalStripsCached++;cachedStripEntries.push(currentStripEntry);}this.ShowFromCache3(currentStripEntry);}};this.ComputeSurroundingQuadKeys=function(B,C){var basequad=B.substring(0,B.length-(C+1));var quadList=new Array();};}