var kStageSizeDidChangeEvent="DisplayManager:StageSizeDidChangeEvent";var kWidthOfHUD=420;var kHeightOfHUD=59;var kMinGapBetweenStageAndHUD=8;var kTimeoutValueForHUD=2000;var kMobilePortraitModeHorizontalMargin=8;var kMobilePortraitModeTopMargin=47;var kMobilePortraitModeVerticalCenterLine=161;var kMobilePortraitModeMaxStageHeight=228;var kMobilePortraitMaxStageHeight=0;var kMobilePortraitMaxStageWidth=0;var kMobileLandscapeModeVerticalMargin=7;var kMobileLandscapeModeHorizontallMargin=15;var kBottomButtonHeight=50;var kNavigationArrowSize=27;var kInfoPanelIconSize=16;var kNavigationAreaHeight=kNavigationArrowSize;var kHelpAreaHeight=16;var kMobilePortraitModeVerticalCenterLineToNavigationAreaGap=148;var kStageToNavigationAreaGap=31;var kNavigationAreaToHelpAreaGap=52;var kHelpAreaToBottomGap=12;var kMobilePortraitModeNavigationAreaSideMargin=32;var kMobilePortraitModeHelpAreaSideMargin=16;var kMobileLandscapeModeMinSideSpacerWidth=kNavigationArrowSize+10;var kInfoPanelIconSize=17;var kInfoPanelIconToSideGap=16;var kInfoPanelButtonWidth=kInfoPanelIconSize+2*kInfoPanelIconToSideGap;var kInfoPanelButtonHeight=kInfoPanelIconSize+2*kHelpAreaToBottomGap;var kInfoPanelWidth=304;var kInfoPanelHeight=228;var kEmbeddedShow_BorderWidth=1;var kEmbeddeControlBar_EndCapWidth=10;var kEmbeddeControlBar_GapBelowShow=0;var kEmbeddedControlBar_Height=30;var kEmbeddedControlBar_ButtonWidth=35;var kEmbeddedControlBar_iWorkLogoWidth=95;var kEmbeddedControlBar_LinkToPresentationWidth=250;var kEmbeddedControlBar_SlideCounterWidth=80;var kPadPortraitModeHorizontalMargin=8;var kPadPortraitModeMaxStageHeight=540;var kPadPortraitModeVerticalCenterLine=400;var kPadLandscapeModeHorizontallMargin=15;var kPadLandscapeModeVerticalMargin=7;var kMuteButtonState_Disabled=1;var kMuteButtonState_Enabled=2;var kMuteButtonState_Muted=4;var kMuteButtonState_NotMuted=8;var DisplayManager=Class.create({initialize:function(){debugMessage(kDebugDisplayManager_Initialize,"adding event listener for orientation change events...");var a=this;document.observe(kShowSizeDidChangeEvent,function(b){a.handleShowSizeDidChangeEvent(b)},false);document.observe(kOrientationChangedEvent,function(b){a.handleOrientationDidChangeEvent(b)},false);this.body=document.getElementById("body");this.stageArea=document.getElementById("stageArea");this.stage=document.getElementById("stage");this.hyperlinkPlane=document.getElementById("hyperlinkPlane");this.waitingIndicator=document.getElementById("waitingIndicator");this.helpText=document.getElementById("helpText");this.previousButton=document.getElementById("previousButton");this.nextButton=document.getElementById("nextButton");this.slideCounter=document.getElementById("slideCounter");this.hudSlideCounter=document.getElementById("hudSlideCounter");this.waitingIndicatorTimeout=null;this.orientation=kOrientationUnknown;this.showWidth=0;this.showHeight=0;this.stageAreaWidth=0;this.stageAreaHeight=0;this.stageAreaTop=0;this.stageAreaLeft=0;this.usableDisplayWidth=0;this.usableDisplayHeight=0;this.inLaunchMode=true;this.initialAddressBarScrollPerformed=false;this.updateUsableDisplayArea();this.positionWaitingIndicator();this.showWaitingIndicator();this.infoPanelIsShowing=false;this.hyperlinksOnly=false;this.showStatisticsDisplay=gIpad&&getUrlParameter("statistics")=="1";this.hasCacheEverGoneOverPixelLimit=false;this.hhasStageEverGoneOverPixelLimit=false;this.cacheHighWaterMark=0;this.stageHighWaterMark=0;if(gMode==kModeMobile){this.infoPanel=document.getElementById("infoPanel");this.infoPanelIcon=document.getElementById("infoPanelIcon");this.infoPanelButton=document.getElementById("infoPanelButton");this.avatar=document.getElementById("avatar");if(window.devicePixelRatio>=2){this.infoPanel.style.backgroundSize="304px 228px";this.infoPanel.style.backgroundImage="url("+static_url("bg_info_panel-hd.png")+")"}else{this.infoPanel.style.backgroundImage="url("+static_url("doc_info_mobile_bg.png")+")"}this.stageArea.style.backgroundColor="black";this.helpText.innerHTML=kTapOrSwipeToAdvance;this.helpText.onclick=function(){gShowController.debugToggleMobileDebugging()};this.slideCounter.onclick=function(){gShowController.debugDiagnosticDump()};document.getElementById("documentPublisherLabel").innerHTML=kDocumentPublisherLabel;document.getElementById("documentNameLabel").innerHTML=kDocumentNameLabel;document.getElementById("publishDateLabel").innerHTML=kLastPublishedLabel;document.getElementById("termsOfServiceLinkText").innerHTML="     "+kTermsOfServiceLinkLabel+"   ";document.getElementById("privacyLinkText").innerHTML="   "+kPrivacyLinkLabel+"   ";document.getElementById("feedbackLinkText").innerHTML="   "+kFeedbackLinkLabel;document.getElementById("closeInfoPanelButton").innerHTML=kCloseInfoPanelButtonText;this.preloadImage(static_url("left_arrow_mobile_d.png"));this.preloadImage(static_url("left_arrow_mobile_n.png"));this.preloadImage(static_url("right_arrow_mobile_d.png"));this.preloadImage(static_url("right_arrow_mobile_n.png"))}else{$(this.body).observe("click",function(b){gShowController.handleClickEvent(b)});if(gEmbedded){this.embeddedControlBar=document.getElementById("embeddedControlBar");this.embeddedControlBarBezel_LeftEndCap=document.getElementById("embeddedControlBarBezel_LeftEndCap");this.embeddedControlBarBezel_Filler=document.getElementById("embeddedControlBarBezel_Filler");this.embeddedControlBarBezel_RightEndCap=document.getElementById("embeddedControlBarBezel_RightEndCap");this.embeddedRestartButton=document.getElementById("embeddedControls_Restart");this.embeddedPreviousButton=document.getElementById("embeddedControls_Previous");this.embeddedNextButton=document.getElementById("embeddedControls_Next");this.embeddedMuteButton=document.getElementById("embeddedControls_Mute");this.embeddedLinkButton=document.getElementById("embeddedControls_Link");this.embeddedSlideCounter=document.getElementById("embeddedSlideCounter");this.embeddedSlideCounterSection=document.getElementById("embeddedSlideCounterSection");$(this.embeddedRestartButton).observe("click",function(b){debugMessage("embeddedRestartButton_onClick","we've been pressed");gShowController.gotoSlide(1);b.stop()});$(this.embeddedNextButton).observe("click",function(b){debugMessage("embeddedNextButton_onClick","we've been pressed");gShowController.advanceToNextBuild("hud");b.stop()});$(this.embeddedPreviousButton).observe("click",function(b){debugMessage("embeddedPreviousButton_onClick","we've been pressed");gShowController.goBackToPreviousSlide("hud");b.stop()});$(this.embeddedMuteButton).observe("click",function(b){debugMessage("embeddedMuteButton_onClick","we've been pressed");gShowController.toggleMute();b.stop()});$(this.embeddedLinkButton).observe("click",function(b){debugMessage("embeddedLinkButton_onClick","we've been pressed");gShowController.handleLinkControl();b.stop()})}else{this.hud=document.getElementById("hud");this.hudMuteButton=document.getElementById("hudMuteButton");this.hudPreviousButton=document.getElementById("hudPreviousButton");this.hudNextButton=document.getElementById("hudNextButton");$(this.hud).observe("click",function(b){debugMessage("hud_on!Click","we've been pressed");gShowController.textureManager.debugDumpCache();b.stop()});$(this.hudNextButton).observe("click",function(b){debugMessage("hudNextButton_!onClick","we've been pressed");gShowController.advanceToNextBuild("hud");b.stop()});$(this.hudPreviousButton).observe("click",function(b){debugMessage("hudPreviousButton_!onClick","we've been pressed");gShowController.goBackToPreviousSlide("hud");b.stop()});$(this.hudMuteButton).observe("click",function(b){debugMessage("hudMuteButton_!onClick","we've been pressed");gShowController.toggleMute();b.stop()});var a=this;this.body.onmousemove=function(b){a.handleMouseMove(b)};$(this.body).observe("mouseleave",function(b){a.handleMouseOut(b)});this.hud.onmouseover=function(b){a.handleMouseOverHUD(b)};$(this.hud).observe("mouseleave",function(b){a.handleMouseOutHUD(b)});this.hudIsShowing=false;this.mouseIsOverHUD=false;this.hudTimeout=null;this.lastMouseX=-1;this.lastMouseY=-1;this.preloadImage(static_url("snd_on_d.png"));this.preloadImage(static_url("snd_on_n.png"));this.preloadImage(static_url("snd_on_p.png"));this.preloadImage(static_url("snd_off_d.png"));this.preloadImage(static_url("snd_off_n.png"));this.preloadImage(static_url("snd_off_p.png"));this.preloadImage(static_url("left_arrow_d.png"));this.preloadImage(static_url("left_arrow_n.png"));this.preloadImage(static_url("left_arrow_p.png"));this.preloadImage(static_url("right_arrow_d.png"));this.preloadImage(static_url("right_arrow_n.png"));this.preloadImage(static_url("right_arrow_p.png"));this.preloadImage(static_url("close_d.png"));this.preloadImage(static_url("close_n.png"));this.preloadImage(static_url("close_p.png"))}}},updateStatisticsDisplay:function(){if(this.showStatisticsDisplay==false){return}var k=document.getElementById("statisticsDisplay");var j=gShowController.textureManager.getCacheStatistics();var a=gShowController.scriptManager.degradeStatistics;var h=gShowController.stageManager.debugGetStageStatistics();var d=gShowController.textureManager.numLoadFailures;var c=gShowController.textureManager.numOutstandingLoadRequests;var i=1024*1024;var b=gSafeMaxPixelCount/i;b=Math.floor(b*100)/100;j.numPixels/=i;h.numPixels/=i;j.numPixels=Math.floor(j.numPixels*100)/100;h.numPixels=Math.floor(h.numPixels*100)/100;var e=false;var g=false;if(j.numPixels>b){e=true;this.hasCacheEverGoneOverPixelLimit=true}if(h.numPixels>b){g=true;this.hasStageEverGoneOverPixelLimit=true}if(j.numPixels>this.cacheHighWaterMark){this.cacheHighWaterMark=j.numPixels}if(h.numPixels>this.stageHighWaterMark){this.stageHighWaterMark=h.numPixels}var f="
Cache Statistics:
- Scenes: "+j.numScenes+"
- Textures: "+j.numTextures+"
- Pixels: "+j.numPixels+" MP
- Peak Pixels: "+this.cacheHighWaterMark+" MP
%nbsp
Limits:
- Max Pixels: "+b+" MP
Scene Statistics:
- Scene Index: "+gShowController.currentSceneIndex+"
- Textures: "+h.numTextures+"
- Total Pixels: "+h.numPixels+" MP
- Peak Pixels: "+this.stageHighWaterMark+" MP
Texture Loader:
- Num Load Requests: "+(c>0?(""+c+""):"0")+"
- Num Load Failures: "+(d>0?(""+d+""):"0")+"
Degrade Statistics:
- Scenes w/Degrades: "+a.numDegradedSlides+"
- Total Textures Degraded: "+a.numDegradedTextures+"
- Max Textures/Scene: "+a.maxNumDegradedTexturesPerSlide+"
- Textures in Current: "+(h.numDegraded>0?(""+h.numDegraded+""):"0")+"
Summary:
- Cache:
- Over Pixel Limit Now: "+(e?"YES":"NO")+"
- Ever Over Pixel Limit: "+(this.hasCacheEverGoneOverPixelLimit?"YES":"NO")+"
- Stage:
- Over Pixel Limit Now: "+(g?"YES":"NO")+"
- Ever Over Pixel Limit: "+(this.hasStageEverGoneOverPixelLimit?"YES":"NO")+"
";k.innerHTML=f},preloadImage:function(b){debugMessage(kDebugDisplayManager_PreloadImage,"fileName: "+b);var a=new Image();a.src=b},setHyperlinksOnlyMode:function(){this.hyperlinksOnly=true;this.setPreviousButtonEnabled(false);this.setNextButtonEnabled(false);this.helpText.style.display="none"},handleMouseOverHUD:function(a){debugMessage(kDebugDisplayManager_HandleMouseOverHUD," mouse is now over HUD");this.mouseIsOverHUD=true},handleMouseOutHUD:function(a){debugMessage(kDebugDisplayManager_HandleMouseOutHUD," mouse is no longer over HUD");this.mouseIsOverHUD=false},handleMouseMove:function(a){if(gEmbedded){return}var b=Math.abs(this.lastMouseX-a.clientX)+Math.abs(this.lastMouseY-a.clientY);if(b>10){debugMessage(kDebugDisplayManager_HandleMouseMove,"mousemove event received, check to see if the HUD showing...");if(this.hudIsShowing==false){this.showHUD()}else{this.setTimeoutForHUD()}}else{debugMessage(kDebugDisplayManager_HandleMouseMove,"mousemove event received, but mouse hasn't moved far enough, ignoring...")}this.lastMouseX=a.clientX;this.lastMouseY=a.clientY},handleMouseOut:function(a){debugMessage(kDebugDisplayManager_HandleMouseOut,"mouse has left the building, hide the HUD...");this.hideHUD()},updateSlideNumber:function(b,a){var d="";var c=null;if(gMode==kModeDesktop){if(gEmbedded){d=b+" / "+a;c=this.embeddedSlideCounter}else{d=""+kSlideLabel+" "+b+" / "+a+"";c=this.hudSlideCounter}}else{d=kSlideLabel+" "+b+"/"+a;c=this.slideCounter}debugMessage(kDebugDisplayManager_UpdateSlideNumber,"updating slide number text to: "+d);c.innerHTML=d},setEmbeddedRestartButtonEnabled:function(a){if(gEmbedded==false){return}var b="";if(a){debugMessage(kDebugDisplayManager_SetEmbeddedRestartButtonEnabled,"enabling restart button...");b="embeddedControls_Restart_Enabled"}else{debugMessage(kDebugDisplayManager_SetEmbeddedRestartButtonEnabled,"disabling restart button...");b="embeddedControls_Restart_Disabled"}this.embeddedRestartButton.setAttribute("class",b)},setHudMuteButtonState:function(d){if(gMode==kModeMobile){return}debugMessage(kDebugDisplayManager_SetHudMuteButtonState,"determining cursor and icon based on state...");var c="";var a="";if(d&kMuteButtonState_Muted){if(gEmbedded){c=static_url("control_sound-off_N.png")}else{c=static_url("snd_off_n.png")}}else{if(gEmbedded){c=static_url("control_sound-on_N.png")}else{c=static_url("snd_on_n.png")}}a="pointer";debugMessage(kDebugDisplayManager_SetHudMuteButtonState,"cursorStyle: "+a+" iconUrl: "+c);var b=(gEmbedded?this.embeddedMuteButton:this.hudMuteButton);b.style.cursor=a;b.style.backgroundImage="url("+c+")"},isInfoPanelShowing:function(){return this.infoPanelIsShowing},handleShowSizeDidChangeEvent:function(a){this.showWidth=a.memo.width;this.showHeight=a.memo.height;debugMessage(kDebugDisplayManager_HandleShowSizeDidChangeEvent,"width: "+this.showWidth+" height: "+this.showHeight);this.layoutDisplay()},handleOrientationDidChangeEvent:function(b){debugMessage(kDebugDisplayManager_HandleOrientationDidChangeEvent,"now: "+b.memo.orientation);this.orientation=b.memo.orientation;if(this.infoPanelIsShowing&&this.orientation==kOrientationLandscape){this.hideInfoPanel()}var a=this;setTimeout(function(){a.handleOrientationDidChangeEvent_partTwo()},300)},handleOrientationDidChangeEvent_partTwo:function(){this.layoutDisplay();if(this.inLaunchMode==false){debugMessage(kDebugDisplayManager_LayoutDisplay,"- now that all controls are in position, show applicable ones...");this.showApplicableControls()}else{debugMessage(kDebugDisplayManager_LayoutDisplay,"- all controls are in position, but we're still starting up, so keep them hidden")}if(gMode==kModeDesktop){this.positionHUD()}},positionHUD:function(){if(gEmbedded){return}var d=(this.usableDisplayWidth-kWidthOfHUD)/2;var a=this.usableDisplayHeight-this.stageAreaHeight-this.stageAreaTop;var b=(a-kHeightOfHUD)/2;var c=this.stageAreaTop+this.stageAreaHeight+b;debugMessage(kDebugDisplayManager_PositionHUD,"left: "+d+" top: "+c);this.hud.style.left=d+"px";this.hud.style.top=c+"px"},setTimeoutForHUD:function(){if(this.hudTimeout){clearTimeout(this.hudTimeout)}var a=this;this.hudTimeout=setTimeout(function(){a.handleTimeoutForHUD()},kTimeoutValueForHUD)},handleTimeoutForHUD:function(){if(this.mouseIsOverHUD){debugMessage(kDebugDisplayManager_HandleTimeoutForHUD,"no mouse movement, but mouse is over HUD, so don't hide it...")}else{debugMessage(kDebugDisplayManager_HandleTimeoutForHUD,"no mouse movement, hiding HUD...");this.hideHUD()}},showHUD:function(){if(gEmbedded){debugMessage(kDebugDisplayManager_ShowHUD,"in embedded mode, do NOT display HUD...");return}if(this.inLaunchMode){debugMessage(kDebugDisplayManager_ShowHUD,"in launch mode, do NOT display HUD...");return}debugMessage(kDebugDisplayManager_ShowHUD);this.positionHUD();this.hud.style.setProperty(kTransitionPropertyName,kOpacityPropertyName);this.hud.style.setProperty(kTransitionDurationName,"500ms");this.hud.style.opacity="1";this.hudIsShowing=true;this.setTimeoutForHUD()},hideHUD:function(){debugMessage(kDebugDisplayManager_HideHUD);this.hud.style.opacity="0";this.hudIsShowing=false},updateUsableDisplayArea:function(){if(gMode==kModeMobile){var a=gIpad;if(this.orientation==kOrientationLandscape){this.usableDisplayWidth=(a?kiPadDeviceHeight:kiPhoneDeviceHeight);this.usableDisplayHeight=(a?kiPadDeviceWidth:kiPhoneDeviceWidth)-kiPhoneStatusBarHeight-kiPhoneLandscapeButtonBarHeight-(a?(kiPadAddressBarHeight+kiPadBookmarksBarHeight):0)}else{this.usableDisplayWidth=(a?kiPadDeviceWidth:kiPhoneDeviceWidth);this.usableDisplayHeight=(a?kiPadDeviceHeight:kiPhoneDeviceHeight)-kiPhoneStatusBarHeight-kiPhonePortraitButtonBarHeight-(a?kiPadBookmarksBarHeight+10:0)}}else{this.usableDisplayWidth=window.innerWidth;this.usableDisplayHeight=window.innerHeight}},clearLaunchMode:function(){debugMessage(kDebugDisplayManager_ClearLaunchMode);this.inLaunchMode=false;debugMessage(kDebugDisplayManager_ClearLaunchMode,"- Add/remove border and shadow on stage area based on platform");var a=this;runInNextEventLoop(function(){a.showAll()})},positionWaitingIndicator:function(){var c=110;var b=32;var a;var d;if(gMode==kModeMobile&&this.orientation==kOrientationUnknown){debugMessage(kDebugDisplayManager_PositionWaitingIndicator,"we're in unknown orientation mode, hiding waiting bezel...");a=1000;d=1000}else{if(gMode==kModeMobile&&this.orientation==kOrientationPortrait){debugMessage(kDebugDisplayManager_PositionWaitingIndicator,"we're in portrait mode, centering waiting bezel over vertical center line...");a=(this.usableDisplayWidth-c)/2;if(gIpad==false){d=kMobilePortraitModeVerticalCenterLine-(c/2)}else{d=kPadPortraitModeVerticalCenterLine-(c/2)}}else{debugMessage(kDebugDisplayManager_PositionWaitingIndicator,"we're in landscape mode, centering waiting bezel over display...");a=(this.usableDisplayWidth-c)/2;d=(this.usableDisplayHeight-c)/2}}debugMessage(kDebugDisplayManager_PositionWaitingIndicator,"y = "+d);setElementPosition(this.waitingIndicator,d,a,c,c)},hideWaitingIndicator:function(){debugMessage(kDebugDisplayManager_HideWaitingIndicator);this.waitingIndicator.style.display="none"},showWaitingIndicator:function(){debugMessage(kDebugDisplayManager_ShowWaitingIndicator);this.waitingIndicator.style.display="block"},showInfoPanel:function(){debugMessage(kDebugDisplayManager_ShowInfoPanel,"url: "+window.location.href);var e=getUrlParameter("a");var f=decodeURIComponent(getUrlParameter("d"));var g=getUrlParameter("u");var d=getUrlParameter("p");debugMessage(kDebugDisplayManager_ShowInfoPanel,"authorId: '"+e+"', documentName: "+f+"', username: '"+g+"', password: '"+d+"'");debugMessage(kDebugDisplayManager_ShowInfoPanel,"issuing aync request for document info...");var a=this;var c=new DocumentInfo(e,f,g,d);var b={onSuccess:function(h){a.documentInfoDidLoad(h)},onError:function(h){a.documentInfoDidNotLoad(h)}};c.getInfo(b)},documentInfoDidLoad:function(a){debugMessage(kDebugDisplayManager_DocumentInfoDidLoad);debugMessage(kDebugDisplayManager_DocumentInfoDidLoad,"- authorImage: "+a.authorImage);debugMessage(kDebugDisplayManager_DocumentInfoDidLoad,"- authorFirstName: "+a.authorFirstName);debugMessage(kDebugDisplayManager_DocumentInfoDidLoad,"- authorLastName: "+a.authorLastName);debugMessage(kDebugDisplayManager_DocumentInfoDidLoad,"- documentName: "+a.documentTitle);debugMessage(kDebugDisplayManager_DocumentInfoDidLoad,"- publishDate: "+a.date);this.showInfoPanel_partTwo(a)},documentInfoDidNotLoad:function(a){debugWarning(kDebugDisplayManager_DocumentInfoDidNotLoad)},showInfoPanel_partTwo:function(c){if(this.infoPanelIsShowing){debugMessage(kDebugDisplayManager_ShowInfoPanel,"already showing, nothing to do");return}if(kIsPublicViewer){debugMessage(kDebugDisplayManager_ShowInfoPanel,"kIsPublicViewer is true")}else{debugMessage(kDebugDisplayManager_ShowInfoPanel,"kIsPublicViewer is false")}debugMessage(kDebugDisplayManager_ShowInfoPanel);debugMessage(kDebugDisplayManager_ShowInfoPanel,"- generating url for avatar image....");this.avatar.src=c.authorImage;var d=document.getElementById("documentName");d.innerHTML=c.documentTitle;var b=c.documentTitle.length;while(d.offsetWidth>264){b--;debugMessage(kDebugDisplayManager_ShowInfoPanel,"truncating document name to "+b+" chars because it too long...");c.documentTitle=c.documentTitle.substring(0,b)+"...";d.innerHTML=c.documentTitle}debugMessage(kDebugDisplayManager_ShowInfoPanel,"assigning values to info panel elements...");document.getElementById("documentPublisherName").innerHTML=c.authorFirstName+" "+c.authorLastName;document.getElementById("documentPublisherEmailLink").href="mailto:"+c.authorEmail;document.getElementById("documentPublisherEmailText").innerHTML=c.authorEmail;document.getElementById("publishDate").innerHTML=c.date;this.infoPanelIsShowing=true;debugMessage(kDebugDisplayManager_ShowInfoPanel,"start the animation...");showElement(this.infoPanel);this.infoPanel.style.opacity=1;this.infoPanel.style.setProperty(kAnimationNamePropertyName,"moveInfoPanelIn");this.infoPanel.style.setProperty(kAnimationDurationPropertyName,"5s");this.infoPanel.style.setProperty("-webkit-animation-iteration-count","5");hideElement(this.stageArea);setElementTransparent(this.helpText);setElementTransparent(this.previousButton);setElementTransparent(this.nextButton);setElementTransparent(this.slideCounter);setElementTransparent(this.infoPanelIcon);var a=this;runInNextEventLoop(function(){a.showInfoPanel_partThree()})},showInfoPanel_partThree:function(){this.savedStageAreaWidth=this.stageArea.style.width;this.stageArea.style.width=0},hideInfoPanel:function(){if(this.infoPanelIsShowing==false){debugMessage(kDebugDisplayManager_HideInfoPanel,"not currently showing, nothing to do");return}debugMessage(kDebugDisplayManager_HideInfoPanel);this.infoPanelIsShowing=false;if(this.stageArea==null){debugMessage(kDebugDisplayManager_HideInfoPanel,"- ACK! the stageArea is null")}debugMessage(kDebugDisplayManager_HideInfoPanel,"- show the stageArea");showElement(this.stageArea);this.stageArea.style.width=this.savedStageAreaWidth;hideElement(this.infoPanel);setElementOpaque(this.helpText);setElementOpaque(this.previousButton);setElementOpaque(this.nextButton);setElementOpaque(this.slideCounter);setElementOpaque(this.infoPanelIcon)},convertDisplayCoOrdsToShowCoOrds:function(d){var b={};debugMessage(kDebugDisplayManager_ConvertDisplayCoOrdsToShowCoOrds," displayCoOrds: ("+d.pointX+","+d.pointY+")");var c=this.stageAreaLeft+this.stageAreaWidth;var a=this.stageAreaTop+this.stageAreaHeight;if((d.pointXc)||(d.pointYa)){b.pointX=-1;b.pointY=-1}else{b.pointX=((d.pointX-this.stageAreaLeft)/this.stageAreaWidth)*this.showWidth;b.pointY=((d.pointY-this.stageAreaTop)/this.stageAreaHeight)*this.showHeight}debugMessage(kDebugDisplayManager_ConvertDisplayCoOrdsToShowCoOrds," showCoOrds: ("+b.pointX+","+b.pointY+")");return b},layoutDisplay:function(){debugMessage(kDebugDisplayManager_LayoutDisplay);debugMessage(kDebugDisplayManager_LayoutDisplay,"Step 1: Determine display area dimensions...");this.updateUsableDisplayArea();debugMessage(kDebugDisplayManager_LayoutDisplay,"- this.usableDisplayWidth: "+this.usableDisplayWidth);debugMessage(kDebugDisplayManager_LayoutDisplay,"- this.usableDisplayHeight: "+this.usableDisplayHeight);debugMessage(kDebugDisplayManager_LayoutDisplay,"Step 2: Determine maximum stage size within display area based on platform and orientation...");var r;var l;if(gMode==kModeDesktop){r=this.usableDisplayWidth;if(gEmbedded){r-=2*kEmbeddedShow_BorderWidth;l=this.usableDisplayHeight-kEmbeddeControlBar_GapBelowShow-kEmbeddedControlBar_Height}else{l=this.usableDisplayHeight-kHeightOfHUD-2*kMinGapBetweenStageAndHUD;if(r>this.showWidth||l>l){r=this.showWidth;l=l}}}else{if(gIpad==false){if(this.orientation==kOrientationPortrait){r=this.usableDisplayWidth-2*kMobilePortraitModeHorizontalMargin;l=kMobilePortraitModeMaxStageHeight}else{r=this.usableDisplayWidth-2*kMobileLandscapeModeHorizontallMargin;l=this.usableDisplayHeight-2*kMobileLandscapeModeVerticalMargin}}else{if(this.orientation==kOrientationPortrait){r=this.usableDisplayWidth-2*kPadPortraitModeHorizontalMargin;l=kPadPortraitModeMaxStageHeight}else{r=this.usableDisplayWidth-2*kPadLandscapeModeHorizontallMargin;l=this.usableDisplayHeight-2*kPadLandscapeModeVerticalMargin}}}if((gMode==kModeDesktop)&&(gEmbedded)){this.stageAreaWidth=Math.ceil(r);this.stageAreaHeight=Math.ceil(r*this.showHeight/this.showWidth)}else{var p=scaleSizeWithinSize(this.showWidth,this.showHeight,r,l);this.stageAreaWidth=Math.ceil(p.width);this.stageAreaHeight=Math.ceil(p.height)}debugMessage(kDebugDisplayManager_LayoutDisplay,"- maxStageWidth: "+r);debugMessage(kDebugDisplayManager_LayoutDisplay,"- maxStageHeight: "+l);debugMessage(kDebugDisplayManager_LayoutDisplay,"- this.stageAreaWidth: "+this.stageAreaWidth);debugMessage(kDebugDisplayManager_LayoutDisplay,"- this.stageAreaHeight: "+this.stageAreaHeight);debugMessage(kDebugDisplayManager_LayoutDisplay,"Step 3: Position the stage...");this.stageAreaLeft=(this.usableDisplayWidth-this.stageAreaWidth)/2;if(gMode==kModeDesktop){if(gEmbedded){this.stageAreaTop=kEmbeddedShow_BorderWidth}else{this.stageAreaTop=(l-this.stageAreaHeight)/2}}else{if(this.orientation==kOrientationPortrait){if(gIpad==false){this.stageAreaTop=Math.max(10,kMobilePortraitModeVerticalCenterLine-(this.stageAreaHeight/2))}else{this.stageAreaTop=Math.max(10,kPadPortraitModeVerticalCenterLine-(this.stageAreaHeight/2))}}else{this.stageAreaTop=(this.usableDisplayHeight-this.stageAreaHeight)/2}}setElementPosition(this.stageArea,this.stageAreaTop,this.stageAreaLeft,this.stageAreaWidth,this.stageAreaHeight);var e=-1;var b=-1;var q=-1;var h=-1;var a=null;if(gMode==kModeDesktop){a=false;if(gEmbedded){e=this.stageAreaWidth-0;b=this.stageAreaHeight-0;q=1;h=1}else{e=-1;b=-1;q=-1;h=-1}}else{a=true;q=0;h=0;if(gIpad){b=kiPadDeviceHeight}else{b=kiPhoneDeviceHeight}e=b}var t=document.getElementById("background");t.style.top=q;t.style.left=h;t.style.width=e;t.style.height=b;if(a===true){t.style.visibility="visible"}debugMessage(kDebugDisplayManager_LayoutDisplay,"- this.stageAreaTop: "+this.stageAreaTop);debugMessage(kDebugDisplayManager_LayoutDisplay,"- this.stageAreaLeft: "+this.stageAreaLeft);debugMessage(kDebugDisplayManager_LayoutDisplay,"Step 4: Calculate size and position of 'spacers'...");var g={x:0,y:0,width:this.usableDisplayWidth,height:this.stageAreaTop};var d={x:0,y:this.stageAreaTop+this.stageAreaHeight,width:this.usableDisplayWidth,height:this.usableDisplayHeight-this.stageAreaTop-this.stageAreaHeight};var o={x:0,y:this.stageAreaTop,width:this.stageAreaLeft,height:this.stageAreaHeight};var i={x:this.stageAreaLeft+this.stageAreaWidth,y:this.stageAreaTop,width:this.usableDisplayWidth-this.stageAreaWidth-o.width,height:this.stageAreaHeight};debugMessage(kDebugDisplayManager_LayoutDisplay,"Step 5: Position controls...");var m=document.getElementById("statisticsDisplay");if(this.showStatisticsDisplay&&gIpad&&this.orientation==kOrientationPortrait){setElementPosition(m,d.y+70,0,this.usableDisplayWidth,d.height-105);m.style.visibility="visible"}else{}if(gMode==kModeDesktop){if(gEmbedded){debugMessage(kDebugDisplayManager_LayoutDisplay,"- we're embedded, all controls are hidden, we use the control bar instead...");this.embeddedControlBar.style.top=this.stageAreaHeight+kEmbeddedShow_BorderWidth+kEmbeddeControlBar_GapBelowShow;this.embeddedControlBar.style.left=0;this.embeddedControlBar.style.width=this.usableDisplayWidth;this.embeddedControlBar.style.height=kEmbeddedControlBar_Height;this.embeddedControlBarBezel_Filler.style.width=this.usableDisplayWidth-2*kEmbeddeControlBar_EndCapWidth;this.embeddedControlBarBezel_RightEndCap.style.left=this.usableDisplayWidth-kEmbeddeControlBar_EndCapWidth;var k=this.stageAreaWidth/2;this.embeddedPreviousButton.style.left=k-kEmbeddedControlBar_SlideCounterWidth/2-kEmbeddedControlBar_ButtonWidth;this.embeddedNextButton.style.left=k+kEmbeddedControlBar_SlideCounterWidth/2;this.embeddedSlideCounterSection.style.left=k-kEmbeddedControlBar_SlideCounterWidth/2;this.embeddedMuteButton.style.left=this.stageAreaWidth-(kEmbeddedControlBar_ButtonWidth*2)}else{debugMessage(kDebugDisplayManager_LayoutDisplay,"- we're on the desktop, all controls are hidden, we use the HUD instead, so nothing to position")}}else{if(this.orientation==kOrientationPortrait){debugMessage(kDebugDisplayManager_LayoutDisplay,"- we're on the iPhone in portrait mode, position all controls below stage...");var n=kNavigationArrowSize+2*kMobilePortraitModeNavigationAreaSideMargin;var f=kNavigationArrowSize+2*kStageToNavigationAreaGap;var s=this.usableDisplayWidth-2*n;var c=d.y+7;setElementPosition(this.previousButton,c,0,n,f);setElementPosition(this.slideCounter,c+kStageToNavigationAreaGap,n,s,f);setElementPosition(this.nextButton,c,n+s-5,n,f);setElementPosition(this.helpText,d.y+d.height-kHelpAreaToBottomGap-kHelpAreaHeight,0,this.usableDisplayWidth,kHelpAreaHeight);setElementPosition(this.infoPanelIcon,this.usableDisplayHeight-kInfoPanelButtonHeight,this.usableDisplayWidth-kInfoPanelButtonWidth-5,kInfoPanelButtonWidth,kInfoPanelButtonHeight)}else{var j={x:0,y:0,width:0,height:0};if(o.width>kMobileLandscapeModeMinSideSpacerWidth){debugMessage(kDebugDisplayManager_LayoutDisplay,"- we're on the iPhone in landscape mode, position next/prev controls to left/right of stage...");setElementRect(this.previousButton,o);setElementRect(this.nextButton,i)}else{debugMessage(kDebugDisplayManager_LayoutDisplay,"- we're on the iPhone in landscape mode, but there is no room for next/prev controls to left/right of stage...");setElementRect(this.previousButton,j);setElementRect(this.nextButton,j)}setElementRect(this.slideCounter,j);setElementRect(this.helpText,j);setElementRect(this.infoPanelIcon,j)}}debugMessage(kDebugDisplayManager_LayoutDisplay,"Step 7: Position info panel");setElementPosition(this.infoPanel,(gIpad?kPadPortraitModeVerticalCenterLine:kMobilePortraitModeVerticalCenterLine)-(kInfoPanelHeight/2),(this.usableDisplayWidth-kInfoPanelWidth)/2,kInfoPanelWidth,kInfoPanelHeight);this.positionWaitingIndicator();this.hideAddressBar();document.fire(kStageSizeDidChangeEvent,{left:this.stageAreaLeft,top:this.stageAreaTop,width:this.stageAreaWidth,height:this.stageAreaHeight})},showApplicableControls:function(){if(this.inLaunchMode==true){debugMessage(kDebugDisplayManager_ShowApplicableControls,"- we're still starting up, hide all controls until we're ready to start the show...");hideElement(this.previousButton);hideElement(this.nextButton);hideElement(this.slideCounter);hideElement(this.helpText);hideElement(this.infoPanelIcon)}else{if(gMode==kModeDesktop){debugMessage(kDebugDisplayManager_ShowApplicableControls,"- we're on the desktop, hide all controls, we use the HUD instead...");hideElement(this.previousButton);hideElement(this.nextButton);hideElement(this.slideCounter);hideElement(this.helpText);hideElement(this.infoPanelIcon);if(gEmbedded){debugMessage(kDebugDisplayManager_ShowApplicableControls,"- we're in embed mode, show the control bar...");this.embeddedControlBar.style.display="block"}}else{if(this.orientation==kOrientationPortrait){debugMessage(kDebugDisplayManager_ShowApplicableControls,"- we're on the iPhone in portrait mode, show all controls...");showElement(this.previousButton);showElement(this.nextButton);showElement(this.slideCounter);showElement(this.helpText);showElement(this.infoPanelIcon)}else{hideElement(this.slideCounter);hideElement(this.helpText);hideElement(this.infoPanelIcon);if(this.stageAreaLeft>kMobileLandscapeModeMinSideSpacerWidth){debugMessage(kDebugDisplayManager_ShowApplicableControls,"- we're on the iPhone in landscape mode, only show next/prev controls...");showElement(this.previousButton);showElement(this.nextButton)}else{debugMessage(kDebugDisplayManager_ShowApplicableControls,"- we're on the iPhone in landscape mode, but there's no room for next/prev controls");hideElement(this.previousButton);hideElement(this.nextButton)}}}}this.hideAddressBar()},showAll:function(){this.hideWaitingIndicator();var a=this;setTimeout(function(){a.showAll_partTwo()},100)},showAll_partTwo:function(){if(gDevice==kDeviceMobile){window.scrollTo(0,1);var a=this;setTimeout(function(){a.showAll_partThree()},100)}else{this.showAll_partThree()}},showAll_partThree:function(){if(this.inLaunchMode==false){this.showApplicableControls()}showElement(this.stageArea);var a=navigator.userAgent.match(/Windows/);if(a){if(gEmbedded){window.parent.EmbedController.triggerReflow()}else{gShowController.delegate.triggerReflow()}}showElement(this.hyperlinkPlane);if(gMode==kModeMobile){showElement(this.infoPanelIcon)}},setPreviousButtonEnabled:function(a){if(this.hyperlinksOnly){return}if(gMode==kModeDesktop){if(a){if(gEmbedded){debugMessage(kDebugDisplayManager_SetPreviousButtonEnabled,"enabling previous button on embedded control bar...");this.embeddedPreviousButton.setAttribute("class","embeddedControls_Previous_Enabled")}else{debugMessage(kDebugDisplayManager_SetPreviousButtonEnabled,"enabling previous button on hud...");this.hudPreviousButton.setAttribute("class","hudPreviousButtonEnabled")}}else{if(gEmbedded){debugMessage(kDebugDisplayManager_SetPreviousButtonEnabled,"disabling previous button on embedded control bar...");this.embeddedPreviousButton.setAttribute("class","embeddedControls_Previous_Disabled")}else{debugMessage(kDebugDisplayManager_SetPreviousButtonEnabled,"disabling previous button on hud...");this.hudPreviousButton.setAttribute("class","hudPreviousButtonDisabled")}}}else{if(a){debugMessage(kDebugDisplayManager_SetPreviousButtonEnabled,"enabling previous button on iphone...");this.previousButton.setAttribute("class","previousButtonEnabled")}else{debugMessage(kDebugDisplayManager_SetPreviousButtonEnabled,"disabling previous button on iphone...");this.previousButton.setAttribute("class","previousButtonDisabled")}}},setNextButtonEnabled:function(a){if(this.hyperlinksOnly){return}if(gMode==kModeDesktop){if(a){if(gEmbedded){debugMessage(kDebugDisplayManager_SetNextButtonEnabled,"enabling next button on embedded control bar...");this.embeddedNextButton.setAttribute("class","embeddedControls_Next_Enabled")}else{debugMessage(kDebugDisplayManager_SetNextButtonEnabled,"enabling next button on hud...");this.hudNextButton.setAttribute("class","hudNextButtonEnabled")}}else{if(gEmbedded){debugMessage(kDebugDisplayManager_SetNextButtonEnabled,"disabling next button on embedded control bar...");this.embeddedNextButton.setAttribute("class","embeddedControls_Next_Disabled")}else{debugMessage(kDebugDisplayManager_SetNextButtonEnabled,"disabling next button on hud...");this.hudNextButton.setAttribute("class","hudNextButtonDisabled")}}}else{if(a){debugMessage(kDebugDisplayManager_SetNextButtonEnabled,"enabling next button on iphone...");this.nextButton.setAttribute("class","nextButtonEnabled")}else{debugMessage(kDebugDisplayManager_SetNextButtonEnabled,"disabling next button on iphone...");this.nextButton.setAttribute("class","nextButtonDisabled")}}},hideAddressBar:function(){if(this.inLaunchMode){return}if(gDevice==kDeviceMobile){var a=this;setTimeout("window.scrollTo( 0,1 );",this.initialAddressBarScrollPerformed?0:kHideAddressBarDelay);this.initialAddressBarScrollPerformed=true}}});