addLoadEvent(bodyLoaded);var viewer=null,isFullScreen=false,viewerMinimumHeight=240,viewerMaximumHeight=600,viewerMinimumWidth=320,viewerLowerPaddingAmount=100,headerHeight=55,_tagsModule=null,_commentModule={};function bodyLoaded(){viewer=new Microsoft.Photosynth.Viewer("silverlightDiv");Microsoft.Photosynth.Config.backgroundTexture="/api/slbackground_black.png";Microsoft.Photosynth.Config.clickToViewImageUrl="/inc/images/view_embed_btn.png";Microsoft.Photosynth.Config.xapSource=BuildUrl("Photosynth.xap","silverlight");Microsoft.Photosynth.Config.psWebService=location.protocol+"//"+location.host;Microsoft.Photosynth.Config.analyticsWebServiceBase=cosmosServiceUrl;viewer.loadCollectionCompleted=viewerLoaded;viewer.beforeToggleFullScreen=beforeToggleFullScreen;if(_loadViewer){viewer.loadCollectionAsync(loadParameters);!Silverlight.isInstalled()&&loadDelayedItems()}else loadDelayedItems();window.onresize=adjustSilverlightViewerSize;adjustSilverlightViewerSize();viewerPageInit()}function hideBox(){var a=$get("cardTemplate");a&&Sys.UI.DomElement.addCssClass(a,"collapsed")}function showBox(c){var b=$get("cardTemplate");if(b&&c){var e=c.id,a=window[e];if(a){$get("cardTitle").firstChild.nodeValue=a.Name;$get("cardAuthor").firstChild.nodeValue="by: "+a.AuthorName;$get("cardViews").firstChild.nodeValue=a.Viewings;if(a.CollectionType=="Synth")$get("cardMP").firstChild.nodeValue=a.ImageCount+" Photos - "+a.Synthiness+"% Synthy";else if(a.Megapixels>1e3)$get("cardMP").firstChild.nodeValue="Panorama - "+(a.Megapixels/1e3).toFixed(2)+" Gigapixels";else $get("cardMP").firstChild.nodeValue="Panorama - "+a.Megapixels+" Megapixels";b.style.position="absolute";var d=findPosition(c);b.style.left=d[0]+100+"px";b.style.top=d[1]+"px";Sys.UI.DomElement.removeCssClass(b,"collapsed")}}}function viewerPageInit(){$addHandler($get("shareIconSelect"),"click",showShareLink);$addHandler($get("embedIconSelect"),"click",showEmbedLink);$addHandler($get("reportIconSelect"),"click",showReport);$addHandler($get("favoriteAddIconSelect"),"click",addFavorite);$addHandler($get("favoriteRemoveIconSelect"),"click",deleteFavorite);$addHandler($get("facebookIconSelect"),"click",facebookShareLink);_tagsModule=new Tags;_commentModule=new Comments}function facebookShareLink(){window.open("http://www.facebook.com/sharer.php?u="+encodeURIComponent(window.location.href)+"&t="+encodeURIComponent(_collectionInfo.Name))}function addFavorite(){if(_currentUserGuid){var b="cmd=addfavorite&collectionId="+_collectionInfo.Id,a=new LLO.Util.XmlHttp;a.Open("POST","/PhotosynthHandler.ashx",true);a.SetContentHeader("Content-Type","application/x-www-form-urlencoded");a.SetContentHeader("Content-Length",b.length);a.Send(b,function(a){if(a.status==200){LLO.GetElementById("favoriteAddIcon").style.display="none";LLO.GetElementById("favoriteRemoveIcon").style.display="block"}})}else alert("Please sign in to add to your favorites.")}function deleteFavorite(){var b="cmd=deletefavorite&collectionId="+_collectionInfo.Id,a=new LLO.Util.XmlHttp;a.Open("POST","/PhotosynthHandler.ashx",true);a.SetContentHeader("Content-Type","application/x-www-form-urlencoded");a.SetContentHeader("Content-Length",b.length);a.Send(b,function(a){if(a.status==200){LLO.GetElementById("favoriteRemoveIcon").style.display="none";LLO.GetElementById("favoriteAddIcon").style.display="block"}})}function showShareLink(){var b=$get("shareLinkPanel");if(b){Sys.UI.DomElement.removeCssClass(b,"collapsed");var a=$get("shareLinkTextarea");a.value=createCameraPose();a.select();a.focus();var d=$get("iconArea");if(d){var c=Sys.UI.DomElement.getBounds(d);b.style.left=c.x+"px";b.style.top=c.y+"px";$addHandler(a,"click",function(a){a.target.select();a.target.focus()});$addHandler(a,"blur",function(){Sys.UI.DomElement.addCssClass($get("shareLinkPanel"),"collapsed")})}return}}function showEmbedLink(){var b=$get("embedLinkPanel");if(b){Sys.UI.DomElement.removeCssClass(b,"collapsed");var e=$get("iconArea");if(e){var d=Sys.UI.DomElement.getBounds(e);b.style.left=d.x+"px";b.style.top=d.y+"px";var a=$get("embedLinkTextarea"),c=window.location.href;c='<iframe frameborder="0" src="'+c.replace("view.aspx","embed.aspx")+'&delayLoad=true&slideShowPlaying=false" width="500" height="300"></iframe>';a.value=c;a.select();a.focus();$addHandler(a,"click",function(a){a.target.select();a.target.focus()});$addHandler(a,"blur",function(){Sys.UI.DomElement.addCssClass($get("embedLinkPanel"),"collapsed")})}return}}function showReport(){window.open(_abuseUrl+escape(createCameraPose()).replace(/&/g,"%26"),"","menubar=no, toolbar=no, height=660px, width=680px, scrollbars=yes, resizable=yes")}function beforeToggleFullScreen(b,a){a.cancel=true;if(isFullScreen==true){viewerExitFullScreen();isFullScreen=false}else{viewerEnterFullScreen();isFullScreen=true}}function viewerEnterFullScreen(){setElementDisplayState("HeaderForm","none");setElementDisplayState("titleBar","none");setElementDisplayState("content","none");setElementDisplayState("footer","none");setElementDisplayState("editSynthBar","none");if(isFirefox()==false)document.body.style.overflow="hidden";adjustFullScreenSilverlightViewerSize();window.onresize=adjustFullScreenSilverlightViewerSize}function viewerExitFullScreen(){setElementDisplayState("HeaderForm","block");setElementDisplayState("titleBar","block");setElementDisplayState("content","block");setElementDisplayState("footer","block");setElementDisplayState("editSynthBar","block");document.body.style.overflow="visible";adjustSilverlightViewerSize();window.onresize=adjustSilverlightViewerSize}function adjustFullScreenSilverlightViewerSize(){var b=LLO.Util.GetBrowserDimension(),a=$get("silverlightDiv");a.style.height=b.y-1+"px";a.style.width=b.x+"px"}function adjustSilverlightViewerSize(){var d=LLO.Util.GetBrowserDimension(),c=$get("silverlightDiv"),a=d.y-viewerLowerPaddingAmount-headerHeight;a=a<viewerMinimumHeight?viewerMinimumHeight:a;a=a>viewerMaximumHeight?viewerMaximumHeight:a;var b=document.body.offsetWidth;b=b<viewerMinimumWidth?viewerMinimumWidth:b;c.style.height=a+"px";c.style.width=b+"px";document.body.style.height="auto"}function viewerLoaded(){viewer.setFromPoseState(location.search);var b=$get(viewer.id);if(b&&_collectionInfo){b.focus();var a=new LLO.Util.XmlHttp;a.Open("GET","/photosynthws/photosynthservice.asmx/IncrementSynthViewCount?collectionid="+_collectionInfo.Id+"&type=0",true);a.Send("",function(){})}loadDelayedItems()}function loadDelayedItems(){loadRelatedSynths();loadMap()}function loadMap(){var c=$get("mapLat"),b=$get("mapLong");if(c&&b){var a=$get("mapImgTag");if(a&&c.firstChild&&b.firstChild){a.src=getMapTile(c.firstChild.nodeValue,b.firstChild.nodeValue);Sys.UI.DomElement.removeCssClass(a,"collapsed")}}}function loadBusiness(c){var b=$get("approvalStateBlock");if(c&&c.SearchResponse&&c.SearchResponse.Phonebook){var a=c.SearchResponse.Phonebook.Results[0],e='<a href="'+a.Url+'">'+a.Title+"</a>",f=$get("bingMapsLink");if(f)f.innerHTML=e;var d=$get("mapImgTag");if(d&&(!$get("mapLat").firstChild||!$get("mapLong").firstChild)&&a.Latitude&&a.Longitude){d.src=getMapTile(a.Latitude,a.Longitude);Sys.UI.DomElement.removeCssClass(d,"collapsed")}if(b)b.innerHTML=b.innerHTML.replace("$link$",e)}else if(b)b.innerHTML="You associated this panorama with a business that is no longer valid. Edit this panorama to try again."}function getMapTile(b,a){return "http://api.tiles.virtualearth.net/api/GetMap.ashx?ppl="+b+","+a+"&dcl=1&w=300&h=98&z=4&b=h"}function loadRelatedSynths(){var b=LLO.GetElementById("relatedSynthBlocks");if(b)for(var c=b.getElementsByTagName("div"),h=c.length,a=0;a<h;a++){var f=c[a],g=f.id,d=window[g];if(d){var e=f.getElementsByTagName("img")[0];e.src=d.ThumbnailUrl;Sys.UI.DomElement.removeCssClass(e,"collapsed")}}}function setElementDisplayState(b,c){var a=$get(b);if(a==null)a=LLO.GetElementById(b);if(a!=null)a.style.display=c}function createCameraPose(){if(viewer&&_collectionInfo)return location.protocol+"//"+location.hostname+location.pathname+"?cid="+_collectionInfo.Id+"&"+viewer.getPoseState();return ""}function isCollectionOwner(){if(_currentUserGuid&&_collectionInfo&&_collectionInfo.AuthorGuid&&_currentUserGuid==_collectionInfo.AuthorGuid)return true;return false}function Tags(){e();function e(){var e=$get("addTagsButton");e&&$addHandler(e,"click",b);e=$get("cancelTag");e&&$addHandler(e,"click",d);e=$get("submitTag");e&&$addHandler(e,"click",a);e=$get("tagInput");e&&$addHandler(e,"keypress",c)}function a(){if(modifyTagCloud("add")){var a=$get("addTagsInputBlock");Sys.UI.DomElement.addCssClass(a,"collapsed");var b=$get("addTagsButton");Sys.UI.DomElement.removeCssClass(b,"collapsed")}}function c(b){b.charCode==13&&a()}function b(){var b=$get("addTagsInputBlock");Sys.UI.DomElement.removeCssClass(b,"collapsed");var c=$get("addTagsButton");Sys.UI.DomElement.addCssClass(c,"collapsed");var a=$get("tagInput");a&&a.focus()}function d(){$get("tagInput").value="";var a=$get("addTagsInputBlock");Sys.UI.DomElement.addCssClass(a,"collapsed");var b=$get("addTagsButton");Sys.UI.DomElement.removeCssClass(b,"collapsed")}}function WriteTagCloud(a){for(var d=$get("tagCloud"),c="",b=0;a.TagValues!=null&&b<a.TagValues.length;b++)c+=a.TagValues[b].HtmlTagModeratorValue;d.innerHTML=c}function modifyTagCloud(b,g){if(b=="add"){var c=$get("tagInput");if(c){var a=LLO.Util.Trim(c.value);if(a.length==0)return false;var d=a.replace(/[\r\n\t\x21\x23\x24\x25\x26\x28\x29\x2a\x2b\x2e\x2f\x3b\x3c\x3e\x3f\x40\x5b\x5c\x5d\x5e\x5f\x60\x7b\x7c\x7d\x7e]/g,"");if(d.length==0){alert("Sorry, none of the input characters are allowed to be posted inside of a tag. Please try again.");c.value="";return false}if(d!=a)if(window.confirm("Input contained some invalid characters.\r\nClick OK to post: ["+d+"]"))a=d;else return false}else return false;c.value="";c.blur();b="addtag"}else if(b=="remove"){a=g;a=LLO.Util.Trim(a);if(a.length==0)return false;b="removetag"}else return false;a="cmd="+b+"&text="+a.toLowerCase();var f=_collectionInfo.Id;if(f)a="collectionId="+f+"&"+a;var e=new LLO.Util.XmlHttp;e.Open("POST","/PhotosynthHandler.ashx",true);e.SetContentHeader("Content-Type","application/x-www-form-urlencoded");e.SetContentHeader("Content-Length",a.length);e.Send(a,function(a){a.status==200&&a.responseText!=""&&WriteTagCloud(Sys.Serialization.JavaScriptSerializer.deserialize(a.responseText))});return true}function Comments(){c();function c(){var c=$get("addCommentLink");c&&$addHandler(c,"click",b);c=$get("submitCommentButton");if(c){$addHandler(c,"keypress",a);$addHandler(c,"click",a)}c=$get("commentBox");if(c){$addHandler(c,"keypress",commentBoxLimiter);$addHandler(c,"keyup",commentBoxHandler)}}function b(){var a=$get("commentBox");if(a){window.location.href="#comment";a.focus()}}function a(c){var e=getKeyPressed(c);if(c.type=="click"||c.type=="keypress"&&e==13){var b=$get("commentBox");if(b){var a=b.value;a=a.replace(/<(.|\n)*?>/gi,"");a=LLO.Util.Trim(a);_commentModule.submitComment(a);b.value="";var d=$get("charLeft");d.firstChild.nodeValue=maxCommentCharacters}}}this.submitComment=function(a){if(a.toString().length<=0)return;a=a.replace(/\+/g,"&#43;").replace(/&/g,"%26");a="cmd=addComment&text="+a;var c=_collectionInfo.Id;if(c)a="collectionId="+c+"&"+a;a="lcts="+$get("lastCommentTimestamp").value+"&"+a;var b=new LLO.Util.XmlHttp;b.Open("POST","/PhotosynthHandler.ashx",true);b.SetContentHeader("Content-Type","application/x-www-form-urlencoded");b.SetContentHeader("Content-Length",a.length);b.Send(a,function(g){if(g.status==200){var h=$get("commentBox"),a=Sys.Serialization.JavaScriptSerializer.deserialize(g.responseText);if(a){for(var e=$get("lastCommentTimestamp"),f=$get("commentItems"),d=0;d<a.CommentValues.length;d++){var b=a.CommentValues[d];if(parseInt(e.value)<b.DatePostedInTicks)e.value=b.DatePostedInTicks.toString();var c=document.createElement("div");if(isCollectionOwner()||_hasModeratorAccess)c.innerHTML=b.HtmlCommentModeratorValue;else c.innerHTML=b.HtmlCommentValue;f.appendChild(c)}Sys.UI.DomElement.removeCssClass(f,"collapsed");_collectionInfo.CommentsCount+=a.CommentValues.length;setCommentCount()}}})}}function setCommentCount(){var a=$get("commentCount");if(a)a.firstChild.nodeValue="("+_collectionInfo.CommentsCount+")"}function deleteComment(c){var d="Are you sure that you want to delete this comment?";if(!isCollectionOwner()&&!_hasModeratorAccess)return;if(confirm(d)==false)return;var a=new LLO.Util.XmlHttp,b=["collectionId=",_collectionInfo.Id,"&cmd=removeComment","&text=",c.substring(3)].join("");a.Open("POST","/PhotosynthHandler.ashx",true);a.SetContentHeader("Content-Type","application/x-www-form-urlencoded");a.SetContentHeader("Content-Length",b.length);a.Send(b,function(d){if(d.status==200){var a=$get(c);if(a){Sys.UI.DomEvent.clearHandlers(a);a=a.parentNode;a.parentNode.removeChild(a);_collectionInfo.CommentsCount-=1;setCommentCount();var b=$get("commentItems");b&&_collectionInfo.CommentsCount==0&&Sys.UI.DomElement.addCssClass(b,"collapsed")}}})};
