var ClientLogger=function(a){this.logToConsole=a};ClientLogger.prototype.Log=function(a){if(typeof console!=="undefined"){if(console.log&&this.logToConsole){console.log(a)}}};var LogToConsole=function(a){if(window.clientLogger){window.clientLogger.Log(a)}};var CreateLogger=function(){window.clientLogger=new ClientLogger(true)};var SearchOptionContentFilter={unknown:0,allContent:1,justEditorial:2,justAdvertisement:3};var EnuDialogType={unknown:0,search:1,contents:2,share:3,archives:4,settings:5,login:6,thumbnails:7};var EnuOrientation={horizontal:0,vertical:1};var EnuFitDimension={unknown:0,width:1,height:2,screen:3};var EnuAutoBookmarkLocation={unknown:0,cover:1,toc:2,lastPage:3};var EnuLinkType={unknown:0,intraIssue:1,interIssue:2,external:3};var EnuContentItemType={Unknown:0,Link_External:1,Editorial:2,Advertising:3,Media:4,Link_Internal:5};var EnuViewsEnabled={Unknown:0,SingleAndMultiple:1,SingleOnly:2,MultipleOnly:3};var EnuViewMode={Unknown:0,SinglePage:1,MultiplePage:2};var EnuZoomBehavior={Unknown:0,RetainPositionOnPageChange:1,MoveToUpperLeftOnPageChange:2};var MediaType={Unknown:0,Flash:1,InternalMovie:2,Image:3,YouTubeMovie:4,VimeoMovie:5,Audio:6};var EnuReaderEnvironment={Unknown:0,Desktop:1,Mobile:2};var EnuMobileDevice={Unknown:0,IPhone:1,IPad:2,Android:3};var EnuEditionType={Unknown:0,Regular:1,SuperToc:2};var EnuReaderTouchEventType={Unknown:0,Tap:1,DoubleTap:2,SwipeLeft:3,SwipeRight:4,Pinch:5,Spread:6,DragStart:7,DragEnd:8};var EnuPagePlacement={Unknown:0,Center:1,Left:2,Right:3};var DocumentMetadata=function(g,f){var d=null;if(g.EditionID==null){d=new Error('"serverDocument.EditionID" may not be null in DocumentMetadata().')}if(g.RevisionOrder==null){d=new Error('"serverDocument.RevisionOrder" may not be null in DocumentMetadata().')}if(g.HttpChronology==null){d=new Error('"serverDocument.Chronology" may not be null in DocumentMetadata().')}if(g.JSDateValue==null){d=new Error('"serverDocument.JSDateValue" may not be null in DocumentMetadata().')}if(g.HttpEnumeration==null){d=new Error('"serverDocument.Enumeration" may not be null in DocumentMetadata().')}if(g.HttpName==null){d=new Error('"serverDocument.Name" may not be null in DocumentMetadata().')}if(g.UrlFriendlyName==null){d=new Error('"serverDocument.UrlFriendlyName" may not be null in DocumentMetadata().')}if(g.DefaultDisplayStyle==null){d=new Error('"serverDocument.DefaultDisplayStyle" may not be null in DocumentMetadata().')}if(g.PageSetCollection==null){d=new Error('"serverDocument.PageSetCollection" may not be null in DocumentMetadata().')}if(g.PageSetCollection.length===0){d=new Error('"PageSetCollection" has length of zero in Edition with ID='+g.EditionID+".")}if(g.PageCount==null){d=new Error('"serverDocument.PageCount" may not be null in DocumentMetadata().')}if(g.StylesheetUri==null){d=new Error('"serverDocument.StylesheetUri" may not be null in DocumentMetadata().')}if(g.BlowInContainers==null){d=new Error('"serverDocument.BlowInContainers" may not be null in DocumentMetadata().')}if(f==null){d=new Error('"readerText" may not be null in DocumentMetadata().')}if(d!==null){var c='An error occurred on "'+d.fileName+'" (line #'+d.lineNumber+"). "+d.message;throw new Error(c)}this.id=g.EditionID;this.revisionOrder=g.RevisionOrder;this.chronology=g.HttpChronology;this.date=CreateJSDateFromString(g.JSDateValue);this.enumeration=g.HttpEnumeration;this.name=g.HttpName;this.groupUrlEncodedName=g.GroupUrlFriendlyName;this.urlEncodedName=g.UrlFriendlyName;this.defaultDisplayStyle=g.DefaultDisplayStyle;this.stylesheetPath=g.StylesheetUri;this.leaderboardHtml=g.LeaderboardHtml;this.extraOpenPageIDs=g.AccessibleExceptionPageIDs;this.editionType=g.EditionType;this.featureSettings=new FeatureSettings(g.FeatureSettings);this.backgroundColor=g.BackgroundColor;this.editionPrintURL=g.FullEditionPrintURL;this.readerText=f;this.firstPageSetIndexWithViewablePage=null;this.pageSetMetadataArray=[];for(var e=0;e<g.PageSetCollection.length;e++){var a=new PageSetMetadata(g.PageSetCollection[e],this.readerText);this.pageSetMetadataArray.push(a);if((this.firstPageSetIndexWithViewablePage===null)&&a.containsViewablePages){this.firstPageSetIndexWithViewablePage=e}}this.blowInMetadataArray=[];for(var b=0;b<g.BlowInContainers.length;b++){this.blowInMetadataArray.push(new BlowInMetadata(g.BlowInContainers[b]))}this.SortPageSets();this.RenumberPageSetIndexes();this.pageCount=g.PageCount;this.zoomMagnificationIndexes=this.pageSetMetadataArray[0].pageMetadataArray[0].imageryInfo.zoomMagnificationIndexes;this.thumbnailMagnificationIndexes=this.pageSetMetadataArray[0].pageMetadataArray[0].imageryInfo.thumbnailMagnificationIndexes;this.magnificationMin=0;this.magnificationMax=this.pageSetMetadataArray[0].pageMetadataArray[0].imageryInfo.magnifications.length-1};DocumentMetadata.prototype.RefreshUrlsFromServerEdition=function(d){this.editionPrintURL=d.FullEditionPrintURL;for(var c=0;c<d.PageSetCollection.length;c++){var b=d.PageSetCollection[c];var a=this.GetPageSetByID(b.ID);a.RefreshUrlsFromServerPageSet(b)}};DocumentMetadata.prototype.SetFullAccess=function(){this.firstPageSetIndexWithViewablePage=0;for(var a=0;a<this.pageSetMetadataArray.length;a++){this.pageSetMetadataArray[a].SetFullAccess()}};DocumentMetadata.prototype.HasFullAccess=function(){var b=true;for(var a=0;a<this.pageSetMetadataArray.length;a++){if(!this.pageSetMetadataArray[a].HasFullAccess()){b=false;break}}return b};DocumentMetadata.prototype.GetFirstViewablePage=function(){return{pageSetIndex:this.firstPageSetIndexWithViewablePage,pageIndex:this.pageSetMetadataArray[this.firstPageSetIndexWithViewablePage].firstViewablePageIndex}};DocumentMetadata.prototype.GetMetadataIndexesFromPageIdentifier=function(c){var a={pageSetMetadataIndex:null,pageMetadataIndex:null};for(var b=0;b<this.pageSetMetadataArray.length;b++){var d=this.pageSetMetadataArray[b].GetMetadataIndexFromPageIdentifier(c);if(d!=-1){a.pageSetMetadataIndex=b;a.pageMetadataIndex=d;break}}return a};DocumentMetadata.prototype.SortPageSets=function(){var a=function(c,b){return c.index-b.index};this.pageSetMetadataArray.sort(a)};DocumentMetadata.prototype.RenumberPageSetIndexes=function(){for(var a=0;a<this.pageSetMetadataArray.length;a++){this.pageSetMetadataArray[a].index=a}};DocumentMetadata.prototype.RemoveHighlighting=function(){for(var a=0;a<this.pageSetMetadataArray.length;a++){this.pageSetMetadataArray[a].RemoveHighlightsFromImagePages()}};DocumentMetadata.prototype.GetFirstCoverPageLocation=function(){var a={pageSetIndex:0,pageIndex:0};for(var b=0;b<this.pageSetMetadataArray.length;b++){if(this.pageSetMetadataArray[b].containsCover){a.pageSetIndex=b;a.pageIndex=this.pageSetMetadataArray[b].GetFirstCoverPageLocation();break}}return a};DocumentMetadata.prototype.GetFirstTocPageLocation=function(){var b={pageSetIndex:0,pageIndex:0};for(var a=0;a<this.pageSetMetadataArray.length;a++){if(this.pageSetMetadataArray[a].containsTocPage){b.pageSetIndex=a;b.pageIndex=this.pageSetMetadataArray[a].GetFirstTocPageLocation();break}}return b};DocumentMetadata.prototype.GetPageSetByID=function(c){var a=null;for(var b=0;b<this.pageSetMetadataArray.length;b++){if(this.pageSetMetadataArray[b].id==c){a=this.pageSetMetadataArray[b];break}}return a};DocumentMetadata.prototype.GetImagePagesByID=function(b){var a=[];for(var c=0;c<this.pageSetMetadataArray.length;c++){var d=this.pageSetMetadataArray[c].GetImagePageByID(b);if(d!=null){a.push(d)}}return a};DocumentMetadata.prototype.GetPageSetMetadataByIndex=function(b){var a=null;if(this.pageSetMetadataArray[b]){a=this.pageSetMetadataArray[b]}return a};DocumentMetadata.prototype.GetPageMetadataByIndexes=function(c,a){var b=null;if(this.pageSetMetadataArray[c]){if(this.pageSetMetadataArray[c].pageMetadataArray[a]){b=this.pageSetMetadataArray[c].pageMetadataArray[a]}}return b};var PageSetMetadata=function(b,f){var d=null;if(b.ID==null){d=new Error('"serverPublicationPageSet.ID" may not be null in PageSetMetadata().')}if(b.Index==null){d=new Error('"serverPublicationPageSet.Index" may not be null in PageSetMetadata().')}if(b.ImagePageCollection==null){d=new Error('"serverPublicationPageSet.ImagePageCollection" may not be null in PageSetMetadata().')}if(b.ImagePageCollection.length===0){d=new Error('"ImagePageCollection" has length of zero in PageSet with ID='+b.ID+".")}if(b.Orientation==null){d=new Error('"serverPublicationPageSet.Orientation" may not be null in PageSetMetadata().')}if(b.PrintUrl==null){d=new Error('"serverPublicationPageSet.PrintUrl" may not be null in PageSetMetadata().')}if(b.ContainsCover==null){d=new Error('"serverPublicationPageSet.ContainsCover" may not be null in PageSetMetadata().')}if(b.ContainsTocPage==null){d=new Error('"serverPublicationPageSet.ContainsTocPage" may not be null in PageSetMetadata().')}if(b.HttpLabel==null){d=new Error('"serverPublicationPageSet.Label" may not be null in PageSetMetadata().')}if(f==null){d=new Error('"readerText" may not be null in PageSetMetadata().')}if(d!==null){var c='An error occurred on "'+d.fileName+'" (line #'+d.lineNumber+"). "+d.message;throw new Error(c)}this.id=b.ID;this.index=b.Index;this.readerText=f;this.accessDeniedImagePageIDs=[];this.containsViewablePages=false;this.firstViewablePageIndex=null;this.containsCover=b.ContainsCover;this.containsTocPage=b.ContainsTocPage;this.label=b.HttpLabel;this.sourceEditionID=b.SourceEditionID;this.sourceEditionUrl=b.SourceEditionUrl;this.pageMetadataArray=[];for(var e=0;e<b.ImagePageCollection.length;e++){var a=new ImagePageMetadata(b.ImagePageCollection[e],this.readerText);this.pageMetadataArray.push(a);if(a.accessDenied){this.accessDeniedImagePageIDs.push(a.id)}else{if(this.firstViewablePageIndex===null){this.firstViewablePageIndex=e}this.containsViewablePages=true}}this.SortPages();this.orientation=Orientation(b.Orientation);this.printUrl=b.PrintUrl};PageSetMetadata.prototype.RefreshUrlsFromServerPageSet=function(c){this.printUrl=c.PrintUrl;for(var b=0;b<c.ImagePageCollection.length;b++){var a=c.ImagePageCollection[b];var d=this.GetImagePageByID(a.ID);d.RefreshUrlsFromServerImagePage(a)}};PageSetMetadata.prototype.SetFullAccess=function(){this.containsViewablePages=true;this.firstViewablePageIndex=0;for(var a=0;a<this.pageMetadataArray.length;a++){this.pageMetadataArray[a].SetAccess(false)}};PageSetMetadata.prototype.HasFullAccess=function(){var b=true;for(var a=0;a<this.pageMetadataArray.length;a++){if(this.pageMetadataArray[a].accessDenied){b=false;break}}return b};PageSetMetadata.prototype.GetCombinedDimensions=function(a){var c={width:0,height:0};for(var b=0;b<this.pageMetadataArray.length;b++){var d=this.pageMetadataArray[b].GetDimensions(a);if(this.orientation===0){c.width+=d.width;if(d.height>c.height){c.height=d.height}}else{c.height+=d.height;if(d.width>c.width){c.width=d.width}}}return c};PageSetMetadata.prototype.GetConstrainedDimensionsIndex=function(g,f,b){var e=0;for(var c=0;c<this.pageMetadataArray[0].imageryInfo.magnifications.length;c++){var a=null;if((b===undefined)||(b===null)){a=this.GetCombinedDimensions(c)}else{a=this.pageMetadataArray[b].GetDimensions(c)}var d=true;if(g!==null){if(a.width>g){d=false}}if(f!==null){if(a.height>f){d=false}}if(d){e=c}}return e};PageSetMetadata.prototype.GetMetadataIndexFromPageIdentifier=function(b){var d=-1;for(var a=0;a<this.pageMetadataArray.length;a++){var c=this.pageMetadataArray[a].id;if(typeof(b)=="string"){c=this.pageMetadataArray[a].label}if(c==b){d=a;break}}return d};PageSetMetadata.prototype.SortPages=function(){var a=function(c,b){return c.index-b.index};this.pageMetadataArray.sort(a)};PageSetMetadata.prototype.GetPageIDs=function(){var a=new Array(this.pageMetadataArray.length);for(var b=0;b<this.pageMetadataArray.length;b++){a[b]=this.pageMetadataArray[b].id}return a};PageSetMetadata.prototype.AddHighlightsToImagePages=function(c){for(var b=0;b<this.pageMetadataArray.length;b++){this.pageMetadataArray[b].RemoveHighlights();for(var a=0;a<c.length;a++){if(this.pageMetadataArray[b].id==c[a].imagePageID){this.pageMetadataArray[b].AddHighlight(c[a])}}}};PageSetMetadata.prototype.RemoveHighlightsFromImagePages=function(){for(var a=0;a<this.pageMetadataArray.length;a++){this.pageMetadataArray[a].RemoveHighlights()}};PageSetMetadata.prototype.GetFirstCoverPageLocation=function(){var a=0;for(var b=0;b<this.pageMetadataArray.length;b++){if(this.pageMetadataArray[b].isCover){a=b;break}}return a};PageSetMetadata.prototype.GetFirstTocPageLocation=function(){var b=0;for(var a=0;a<this.pageMetadataArray.length;a++){if(this.pageMetadataArray[a].isTocPage){b=a;break}}return b};PageSetMetadata.prototype.GetUrls=function(a){var b=[];for(var c=0;c<this.pageMetadataArray.length;c++){var d=this.pageMetadataArray[c].GetUrls(a);if(d.foreground){b.push(d.foreground)}if(d.background){b.push(d.background)}}return b};PageSetMetadata.prototype.GetImagePageByID=function(a){var c=null;for(var b=0;b<this.pageMetadataArray.length;b++){if(this.pageMetadataArray[b].id==a){c=this.pageMetadataArray[b];break}}return c};var ImagePageMetadata=function(d,f){var c=null;if(d.ID==null){c=new Error('"serverPublicationPage.ID" may not be null in ImagePageMetadata().')}if(d.PageSetIndex==null){c=new Error('"serverPublicationPage.PageSetIndex" may not be null in ImagePageMetadata().')}if(d.PageLabel.HttpFullPageLabel==null){c=new Error('"serverPublicationPage.PageLabel.HttpFullPageLabel" may not be null in ImagePageMetadata().')}if(d.ContentBoxCollection==null){c=new Error('"serverPublicationPage.ContentBoxCollection" may not be null in ImagePageMetadata().')}if(d.ImageInformation==null){c=new Error('"serverPublicationPage.ImageInformation" may not be null in ImagePageMetadata().')}if(d.AccessDenied==null){c=new Error('"serverPublicationPage.AccessDenied" may not be null in ImagePageMetadata().')}if(d.IsCover==null){c=new Error('"serverPublicationPage.IsCover" may not be null in ImagePageMetadata().')}if(d.IsTocPage==null){c=new Error('"serverPublicationPage.IsTocPage" may not be null in ImagePageMetadata().')}if(c!==null){var b='An error occurred on "'+c.fileName+'" (line #'+c.lineNumber+"). "+c.message;throw new Error(b)}this.id=d.ID;this.index=d.PageSetIndex;this.label=d.PageLabel.HttpFullPageLabel;if(this.label===null){this.label="[No Page Label]"}this.readerText=f;this.accessDenied=d.AccessDenied;this.isCover=d.IsCover;this.isTocPage=d.IsTocPage;this.imageryInfo=new ImageInformation(d.ImageInformation,this.accessDenied);this.linkMetadataArray=[];this.mediaMetadataArray=[];for(var e=0;e<d.ContentBoxCollection.length;e++){var a=d.ContentBoxCollection[e];var g=null;if((a.ContentItem.Type==EnuContentItemType.Link_External)||(a.ContentItem.Type==EnuContentItemType.Link_Internal)){g=new LinkMetadata(a,this.readerText);this.linkMetadataArray.push(g)}else{if(a.ContentItem.Type==EnuContentItemType.Media){g=new MediaMetadata(a);this.mediaMetadataArray.push(g)}}}this.highlights=[]};ImagePageMetadata.prototype.RefreshUrlsFromServerImagePage=function(a){this.imageryInfo=new ImageInformation(a.ImageInformation,this.accessDenied);for(var c=0;c<a.ContentBoxCollection.length;c++){var b=a.ContentBoxCollection[c];if(b.ContentItem.Type==EnuContentItemType.Media){var d=this.GetMediaByID(b.ID);d.RefreshUrlsFromServerMediaContentBox(b)}}};ImagePageMetadata.prototype.GetMediaByID=function(c){var a=null;for(var b=0;b<this.mediaMetadataArray.length;b++){if(this.mediaMetadataArray[b].id==c){a=this.mediaMetadataArray[b];break}}return a};ImagePageMetadata.prototype.GetUrls=function(a){return this.imageryInfo.GetUrls(a)};ImagePageMetadata.prototype.GetDimensions=function(a){return this.imageryInfo.GetDimensions(a)};ImagePageMetadata.prototype.AddHighlight=function(a){this.highlights.push(a)};ImagePageMetadata.prototype.RemoveHighlights=function(){this.highlights=[]};ImagePageMetadata.prototype.SetAccess=function(a){this.accessDenied=a;this.imageryInfo.accessDenied=a};ImagePageMetadata.prototype.GetAspectRatio=function(){return this.imageryInfo.GetAspectRatio()};var ImageInformation=function(c,f){var b=null;if(c.Magnifications==null){b=new Error('"serverImageInformation.Magnifications" may not be null in ImageInformation().')}if(f==null){b=new Error('"accessDenied" may not be null in ImageInformation().')}if(b!==null){var a='An error occurred on "'+b.fileName+'" (line #'+b.lineNumber+"). "+b.message;throw new Error(a)}this.accessDenied=f;this.magnifications=[];this.zoomMagnificationIndexes=[];this.thumbnailMagnificationIndexes=[];for(var d=0;d<c.Magnifications.length;d++){var e=new ImageMagnification(c.Magnifications[d]);this.magnifications.push(e);if(e.isZoomSize){this.zoomMagnificationIndexes.push(d)}if(e.isThumbnailSize){this.thumbnailMagnificationIndexes.push(d)}}};ImageInformation.prototype.GetUrls=function(a){if(a>this.magnifications.length){throw new Error("The magnificationIndex parameter value of ImageInformation.GetUrls() is invalid. The value("+a+") does not exist.")}var b={background:this.magnifications[a].backgroundUrl,foreground:this.magnifications[a].foregroundUrl};return b};ImageInformation.prototype.GetDimensions=function(c){if(c>this.magnifications.length){throw new Error("The magnificationIndex parameter value of ImageInformation.GetDimensions() is invalid. The value("+c+") does not exist.")}var a=(this.magnifications[c].width/this.magnifications[0].width);var e=this.magnifications[c].left;var d=this.magnifications[c].top;if(this.accessDenied){e=e*a;d=d*a}var b={width:this.magnifications[c].width,height:this.magnifications[c].height,left:e,top:d};return b};ImageInformation.prototype.GetAspectRatio=function(){var a=this.GetDimensions(this.magnifications.length-1);return a.width/a.height};var ImageMagnification=function(c){var b=null;if(c.Dimensions==null){b=new Error('"serverImageMagnification.Dimensions" may not be null in ImageMagnification().')}if(c.LeftPosition==null){b=new Error('"serverImageMagnification.LeftPosition" may not be null in ImageMagnification().')}if(c.TopPosition==null){b=new Error('"serverImageMagnification.RightPosition" may not be null in ImageMagnification().')}if(c.Uris==null){b=new Error('"serverImageMagnification.Uris" may not be null in ImageMagnification().')}if(b!==null){var a='An error occurred on "'+b.fileName+'" (line #'+b.lineNumber+"). "+b.message;throw new Error(a)}this.width=c.Dimensions.Width;this.height=c.Dimensions.Height;this.left=c.LeftPosition;this.top=c.TopPosition;this.backgroundUrl=c.Uris[0];this.foregroundUrl=c.Uris[1];this.isThumbnailSize=c.IsThumbnailSize;this.isZoomSize=c.IsZoomSize};var ContentMetadata=function(a){if(a){this.id=a.ID;this.content=a.ContentItem;this.contentItemID=a.ContentItemID;this.topLeftX=a.TopLeftX;this.topLeftY=a.TopLeftY;this.bottomRightX=a.BottomRightX;this.bottomRightY=a.BottomRightY}};ContentMetadata.prototype.GetType=function(){return"ContentMetadata"};var LinkMetadata=function(d,c){var b=null;if(d.ID==null){b=new Error('"serverLinkContainer.ID" may not be null in LinkMetadata().')}if(d.ContentItem==null){b=new Error('"serverLinkContainer.ContentItem" may not be null in LinkMetadata().')}if(d.TopLeftX==null){b=new Error('"serverLinkContainer.TopLeftX" may not be null in LinkMetadata().')}if(d.TopLeftY==null){b=new Error('"serverLinkContainer.TopLeftY" may not be null in LinkMetadata().')}if(d.BottomRightX==null){b=new Error('"serverLinkContainer.BottomRightX" may not be null in LinkMetadata().')}if(d.BottomRightY==null){b=new Error('"serverLinkContainer.BottomRightY" may not be null in LinkMetadata().')}if(c==null){b=new Error('"readerText" may not be null in LinkMetadata().')}if(b!==null){var a='An error occurred on "'+b.fileName+'" (line #'+b.lineNumber+"). "+b.message;throw new Error(a)}ContentMetadata.call(this,d);if(d.ContentItem.MailToUrl){this.url=this.AssembleObfuscatedMailToUrl(d.ContentItem.MailToUrl)}else{this.url=$("<div/>").html(d.ContentItem.HttpUrl).text()}this.isTextLink=d.ContentItem.IsText;this.label=d.ContentItem.HtmlLabel;this.linkType=d.ContentItem.LinkType;if(this.linkType==EnuLinkType.intraIssue){this.targetPageSetIndex=d.ContentItem.InternalLinkTargetInfo.PageSetIndex;this.targetPageIndex=d.ContentItem.InternalLinkTargetInfo.PageIndex}if((this.label===null)||(this.label==="")){this.label=this.url}this.url=$("<div/>").html(this.url).text();this.readerText=c};LinkMetadata.prototype=new ContentMetadata();LinkMetadata.prototype.constructor=LinkMetadata;LinkMetadata.prototype.GetType=function(){return"LinkMetadata"};LinkMetadata.prototype.GetTooltipLabel=function(b){var a=this.readerText.LinkTooltipPrefix_HTTP;if(b.indexOf("mailto:")!=-1){a=this.readerText.LinkTooltipPrefix_Mailto;b=b.substr(7)}return a+" "+b};LinkMetadata.prototype.AssembleObfuscatedMailToUrl=function(a){return"mailto:"+a.Username+"@"+a.DomainName};var MediaMetadata=function(c){var b=null;if(c.ID==null){b=new Error('"serverMediaContainer.ID" may not be null in MediaMetadata().')}if(c.ContentItem==null){b=new Error('"serverMediaContainer.ContentItem" may not be null in MediaMetadata().')}if(c.TopLeftX==null){b=new Error('"serverMediaContainer.TopLeftX" may not be null in MediaMetadata().')}if(c.TopLeftY==null){b=new Error('"serverMediaContainer.TopLeftY" may not be null in MediaMetadata().')}if(c.BottomRightX==null){b=new Error('"serverMediaContainer.BottomRightX" may not be null in MediaMetadata().')}if(c.BottomRightY==null){b=new Error('"serverMediaContainer.BottomRightY" may not be null in MediaMetadata().')}if(b!==null){var a='An error occurred on "'+b.fileName+'" (line #'+b.lineNumber+"). "+b.message;throw new Error(a)}ContentMetadata.call(this,c);this.title=c.HttpTitle;this.displayHeight=c.HeightInPixels;this.displayWidth=c.WidthInPixels;this.mediaContent=new MediaContent(c.ContentItem.Media)};MediaMetadata.prototype=new ContentMetadata();MediaMetadata.prototype.constructor=MediaMetadata;MediaMetadata.prototype.GetType=function(){return"MediaMetadata"};MediaMetadata.prototype.RefreshUrlsFromServerMediaContentBox=function(a){this.mediaContent.sourceUrl=a.ContentItem.Media.URL};var MediaContent=function(c){var b=null;if(c.MediaID==null){b=new Error('"serverMediaItem.MediaID" may not be null in MediaMetadata().')}if(c.MediaType==null){b=new Error('"serverMediaItem.MediaType" may not be null in MediaMetadata().')}if(c.URL==null){b=new Error('"serverMediaItem.URL" may not be null in MediaMetadata().')}if(b!==null){var a='An error occurred on "'+b.fileName+'" (line #'+b.lineNumber+"). "+b.message;throw new Error(a)}this.mediaID=c.MediaID;this.mediaType=c.MediaType;this.sourceUrl=c.URL;this.mediaHeight=c.HeightInPixels;this.mediaWidth=c.WidthInPixels;this.duration=c.DurationSeconds;this.autoPlay=c.AutoPlay;this.allowClose=c.AllowClose;this.state={closed:false,position:0,stopped:true,volume:100}};var Orientation=function(d){var c=null;var a=null;switch(d){case 0:throw new Error('"serverOrientation" may not be zero in Orientation().');case 1:a=EnuOrientation.horizontal;break;case 2:a=EnuOrientation.vertical;break;default:throw new Error('"serverOrientation" has an unknown value in Orientation().')}if(c!==null){var b='An error occurred on "'+c.fileName+'" (line #'+c.lineNumber+"). "+c.message;throw new Error(b)}return a};var ImagePageRectangle=function(d,c){var b=null;if(d.Id==null){b=new Error('"serverPagePosition.Id" may not be null in PagePosition().')}if(d.TopLeftX==null){b=new Error('"serverPagePosition.TopLeftX" may not be null in PagePosition().')}if(d.TopLeftY==null){b=new Error('"serverPagePosition.TopLeftY" may not be null in PagePosition().')}if(d.BottomRightX==null){b=new Error('"serverPagePosition.BottomRightX" may not be null in PagePosition().')}if(d.BottomRightY==null){b=new Error('"serverPagePosition.BottomRightY" may not be null in PagePosition().')}if(d.ImagePageID==null){b=new Error('"serverPagePosition.ImagePageID" may not be null in PagePosition().')}if(d.Ordinal==null){b=new Error('"serverPagePosition.Ordinal" may not be null in PagePosition().')}if(b!==null){var a='An error occurred on "'+b.fileName+'" (line #'+b.lineNumber+"). "+b.message;throw new Error(a)}this.id=d.Id;this.left=d.TopLeftX;this.top=d.TopLeftY;this.width=d.BottomRightX-d.TopLeftX;this.height=d.BottomRightY-d.TopLeftY;this.imagePageID=d.ImagePageID;this.ordinal=d.Ordinal;this.className=(c===undefined)?"":c};var BlowInMetadata=function(a){var d=null;if(a.AppearEveryNPages==null){d=new Error('"blowInContainer.AppearEveryNPages" may not be null in BlowInMetadata().')}if(a.AppearMaxOfNTimes==null){d=new Error('"blowInContainer.AppearMaxOfNTimes" may not be null in BlowInMetadata().')}if(a.AppearOnPages==null){d=new Error('"blowInContainer.AppearOnPages" may not be null in BlowInMetadata().')}if(a.ID==null){d=new Error('"blowInContainer.ID" may not be null in BlowInMetadata().')}if(a.Content==null){d=new Error('"blowInContainer.Content" may not be null in BlowInMetadata().')}if(a.PositionX==null){d=new Error('"blowInContainer.PositionX" may not be null in BlowInMetadata().')}if(a.PositionY==null){d=new Error('"blowInContainer.PositionY" may not be null in BlowInMetadata().')}if(a.ReappearIfDismissed==null){d=new Error('"blowInContainer.ReappearIfDismissed" may not be null in BlowInMetadata().')}if(a.ReappearIfUsed==null){d=new Error('"blowInContainer.ReappearIfUsed" may not be null in BlowInMetadata().')}if(a.HttpTitle==null){d=new Error('"blowInContainer.HttpTitle" may not be null in BlowInMetadata().')}if(a.ObscureReader==null){d=new Error('"blowInContainer.ObscureReader" may not be null in BlowInMetadata().')}if(a.Width==null){d=new Error('"blowInContainer.Width" may not be null in BlowInMetadata().')}if(a.Height==null){d=new Error('"blowInContainer.Height" may not be null in BlowInMetadata().')}if(d!==null){var c='An error occurred on "'+d.fileName+'" (line #'+d.lineNumber+"). "+d.message;throw new Error(c)}this.appearEveryNPages=a.AppearEveryNPages;this.appearMaxOfNTimes=a.AppearMaxOfNTimes;if(this.appearMaxOfNTimes<1){this.appearMaxOfNTimes=Infinity}this.appearOnPageIDArray=[];var b=a.AppearOnPages.split(",");for(var e=0;e<b.length;e++){if(b[e]!==""){this.appearOnPageIDArray.push(parseInt(b[e],10))}}this.id=a.ID;this.contentID=a.Content.ID;this.mediaContent=new MediaContent(a.Content.Media);this.linkUrl=a.Content.LinkUrl;this.contentType=a.Content.ContentType;this.positionX=a.PositionX;this.positionY=a.PositionY;this.reappearIfDismissed=a.ReappearIfDismissed;this.reappearIfUsed=a.ReappearIfUsed;this.title=a.HttpTitle;this.obscureReader=a.ObscureReader;this.width=a.Width;this.height=a.Height};var FeatureSettings=function(a){this.enableSearch=a.EnableSearch;this.enableThumbnails=a.EnableThumbnails;this.enableDigitalContents=a.EnableDigitalContents;this.shareSettings={enableLinkSharing:a.ShareSettings.EnableLinkSharing,enableEmailSharing:a.ShareSettings.EnableEmailSharing,enableSocialNetworkSharing:a.ShareSettings.EnableSocialNetworkSharing,enableCodeEmbedSharing:a.ShareSettings.EnableCodeEmbedSharing,enabled:a.ShareSettings.Enabled};this.enablePrint=a.EnablePrint;this.enableFullEditionPrint=!a.RestrictPrintToPagesInView;this.enableArchives=a.EnableArchives;this.enableUserSettings=a.EnableUserSettings;this.enableFeedbackForm=a.EnableFeedbackForm};var ClientStorage=function(a,c){this.issueName=a;this.sessionID=c;this.autoBookmarkKey="AutoBookmark"+this.issueName;this.zoomLevelKey="ZoomLevel";this.settingsKey="UserSettings";this.sessionStateKey="SessionState";this.temporaryPositionKey="TempPosition"+this.issueName;var b=2;this.cookieExpirationDate=new Date();this.cookieExpirationDate.setYear(this.cookieExpirationDate.getFullYear()+b);this.cookieOptions={expires:this.cookieExpirationDate}};ClientStorage.prototype.SaveAutoBookmark=function(b,a){if(a===undefined){a=0}$.cookie(this.autoBookmarkKey,b+","+a)};ClientStorage.prototype.RetrieveAutoBookmark=function(){var b=null;var a=null;var d=$.cookie(this.autoBookmarkKey);if(d!==null){var c=d.split(",");b=parseInt(c[0],10);a=parseInt(c[1],10);if(isNaN(b)){b=null}if(isNaN(a)){a=null}}return{pageSetIndex:b,pageIndex:a}};ClientStorage.prototype.SaveZoomLevel=function(a){$.cookie(this.zoomLevelKey,a,this.cookieOptions)};ClientStorage.prototype.RetrieveZoomLevel=function(){var a=parseInt($.cookie(this.zoomLevelKey),10);if(isNaN(a)){a=null}return a};ClientStorage.prototype.SaveSettings=function(c){var a=Object.removeFunctions(c);var b=$.toJSON(a);$.cookie(this.settingsKey,b,this.cookieOptions)};ClientStorage.prototype.RetrieveSettings=function(){var a=$.cookie(this.settingsKey);var b;try{b=$.evalJSON(a)}catch(c){this.SaveSettings(null);b=null}return b};ClientStorage.prototype.SaveSessionState=function(c){var a=Object.removeFunctions(c);var d=$.toJSON(a);var b={domain:GetTopLevelDomains()};$.cookie(this.sessionStateKey,d,b)};ClientStorage.prototype.RetrieveSessionState=function(){var b=null;var e=$.cookie(this.sessionStateKey);var a=this;var d=function(){b=new SessionState(a.sessionID);a.SaveSessionState(b)};try{b=$.evalJSON(e);if((b===null)||(b.sessionID!=this.sessionID)){d()}else{b=$.extend(new SessionState(),b)}}catch(c){d()}return b};ClientStorage.prototype.SaveTemporaryLocationInfo=function(b,a){var c=this.cookieOptions;if(a===undefined){a=0}$.cookie(this.temporaryPositionKey,b+","+a)};ClientStorage.prototype.RetrieveTemporaryLocationInfo=function(){var b=null;var a=null;var d=$.cookie(this.temporaryPositionKey);if(d!==null){var c=d.split(",");b=parseInt(c[0],10);a=parseInt(c[1],10);if(isNaN(b)){b=null}if(isNaN(a)){a=null}}return{pageSetIndex:b,pageIndex:a}};var SessionState=function(a){this.sessionID=a;this.disabledBlowIns=[]};SessionState.prototype.AddDisabledBlowIn=function(a){if(!this.BlowInDisabled(a)){this.disabledBlowIns.push(a)}};SessionState.prototype.BlowInDisabled=function(a){var b=false;if(this.disabledBlowIns.indexOf(a)>=0){b=true}return b};var HtmlContentEndpointController=function(l,m,f,c,g,h,n,b,e,d,a,j){var k=null;if(l===null){k=new Error('"hostEditionID" may not be null in HtmlContentEndpointController().')}if(m===null){k=new Error('"userToken" may not be null in HtmlContentEndpointController().')}if(f===null){k=new Error('"dialogContentsEndpointUrl" may not be null in HtmlContentEndpointController().')}if(c===null){k=new Error('"lookInsideEndpointUrl" may not be null in HtmlContentEndpointController().')}if(g===null){k=new Error('"archivesEditionMetadataEndpointUrl" may not be null in HtmlContentEndpointController().')}if(h===null){k=new Error('"searchEndpointUrl" may not be null in HtmlContentEndpointController().')}if(n===null){k=new Error('"emailEndpointUrl" may not be null in HtmlContentEndpointController().')}if(b===null){k=new Error('"loginEndpointUrl" may not be null in HtmlContentEndpointController().')}if(e===null){k=new Error('"textLocationEndpointUrl" may not be null in HtmlContentEndpointController().')}if(d===null){k=new Error('"blowInContentsEndpointUrl" may not be null in HtmlContentEndpointController().')}if(a===null){k=new Error('"turnawayEndpointUri" may not be null in HtmlContentEndpointController().')}if(k!==null){var i='An error occurred on "'+k.fileName+'" (line #'+k.lineNumber+"). "+k.message;throw new Error(i)}this.hostEditionID=l;this.userToken=(m=="")?null:m;this.dialogEndpointUrl=f;this.lookInsideEndpointUrl=c;this.archivesMetadataEndpointUrl=g;this.searchEndpointUrl=h;this.emailEndpointUrl=n;this.loginEndpointUrl=b;this.textLocationEndpointUrl=e;this.blowInContentsEndpointUrl=d;this.turnawayEndpointUri=a;this.flowplayerLicenseKey=(j)?j:"";this.TurnawayControllerCache=null};HtmlContentEndpointController.prototype.LoadDialogContents=function(d,b,c){var a=this.dialogEndpointUrl+"/"+this.hostEditionID+"/"+b+"/"+EnuReaderEnvironment.Desktop+"/"+this.userToken;d.load(a,null,c)};HtmlContentEndpointController.prototype.LoadLookInside=function(e,b,c,d){var a=this.lookInsideEndpointUrl+"/"+b+"/"+c+"/"+this.userToken;e.load(a,null,d)};HtmlContentEndpointController.prototype.GetArchivesMetadata=function(c,b,d){var a=this.archivesMetadataEndpointUrl+"/"+c+"/"+this.hostEditionID;var e={type:"GET",url:a,success:b,error:d};$.ajax(e)};HtmlContentEndpointController.prototype.LoadSearchResults=function(i,k,e,b,a,d,g,j){var h={editionIDKey:"editionID",searchTextKey:"searchText",stemmingKey:"useStemming",entirePublicationSearchKey:"enableEntirePublicationSearch",contentFilterKey:"contentFilter",requestedResultsPageKey:"requestedResultsPage",parentSearchIDKey:"parentSearchID",readerEnvironmentKey:"readerEnvironment",editionID:this.hostEditionID,searchText:escape(k),stemming:e,entirePublicationSearch:b,contentFilter:a,resultsPage:d,searchEventID:g,readerEnvironment:EnuReaderEnvironment.Desktop};var f=this.searchEndpointUrl+"?{editionIDKey}={editionID}&{searchTextKey}={searchText}&{stemmingKey}={stemming}&{entirePublicationSearchKey}={entirePublicationSearch}&{contentFilterKey}={contentFilter}&{requestedResultsPageKey}={resultsPage}&{parentSearchIDKey}={searchEventID}&{readerEnvironmentKey}={readerEnvironment}";var c=String.extendedReplace(f,h);i.load(c,null,j)};HtmlContentEndpointController.prototype.SendShareEmail=function(j,e,a,c,f,h,b,d){var g={editionID:j,pageSetIndex:e,toText:a,fromText:c,subjectText:f,messageText:h,userToken:this.userToken,readerEnvironment:EnuReaderEnvironment.Desktop};var i={type:"POST",url:this.emailEndpointUrl,data:g,success:b,error:d,dataType:"json"};$.ajax(i)};HtmlContentEndpointController.prototype.RequestLogin=function(d,e){var c={editionIDKey:"editionID",userNameKey:"userName",readerEnvironmentKey:"readerEnvironment",editionID:this.hostEditionID,userName:d,readerEnvironment:EnuReaderEnvironment.Desktop};var b=this.loginEndpointUrl+"?{editionIDKey}={editionID}&{userNameKey}={userName}&{readerEnvironmentKey}={readerEnvironment}";var a=String.extendedReplace(b,c);$.getJSON(a,e)};HtmlContentEndpointController.prototype.RequestTextLocations=function(d,f,a,b){if(d===null){throw new Error('The "imagePageIDs" parameter cannot be null in HtmlContentEndpointController.RequestTextLocations().')}if(f===null){throw new Error('The "words" parameter cannot be null in HtmlContentEndpointController.RequestTextLocations().')}var c={EditionID:this.hostEditionID,ImagePageIDs:d,Text:f,ReaderEnvironment:EnuReaderEnvironment.Desktop};var e=$.toJSON(c);var g={type:"POST",url:this.textLocationEndpointUrl,data:e,success:a,error:b,dataType:"json"};$.ajax(g)};HtmlContentEndpointController.prototype.LoadBlowIn=function(d,b,c){var a=this.blowInContentsEndpointUrl+"/"+b;d.load(a,null,c)};HtmlContentEndpointController.prototype.LoadTurnaway=function(c,b){var a=this.turnawayEndpointUri+"/"+this.hostEditionID;c.load(a,null,b)};var EditionUrlsEndpointController=function(b,a,f){var e=null;if(b===null){e=new Error('"editionMetadata" may not be null in EditionUrlsEndpointController().')}if(a===null){e=new Error('"editionUrlsEndpointUrl" may not be null in EditionUrlsEndpointController().')}if(f===null){e=new Error('"urlFreshnessInMinutes" may not be null in EditionUrlsEndpointController().')}if(e!==null){var d='An error occurred on "'+e.fileName+'" (line #'+e.lineNumber+"). "+e.message;throw new Error(d)}this.editionMetadata=b;this.endpointUrl=a;this.urlFreshnessInMinutes=f;this.urlExpirationDate=null;this.urlRefreshHeadstart=1;this.urlRequestInProgress=false;this.urlUpdateComplete=new CustomEvent("urlUpdateComplete",this);var c=(this.urlRefreshHeadstart<this.urlFreshnessInMinutes)?(this.urlFreshnessInMinutes-this.urlRefreshHeadstart):this.urlFreshnessInMinutes;if((c)<0){throw new Error('The value for urlFreshnessInMinutes "'+f+'" cannot be less than '+this.urlRefreshHeadstart+" minutes.")}this.urlRefreshIntervalMilliseconds=c*60*1000;this.SetUrlRefreshTimeout()};EditionUrlsEndpointController.prototype.GetUrlExpiration=function(){var a=new Date();a.setMinutes(a.getMinutes()+this.urlFreshnessInMinutes);return a};EditionUrlsEndpointController.prototype.RefreshExpiredUrls=function(){var a=new Date();if(a>this.urlExpirationDate){this.SendUrlBatchRequest()}};EditionUrlsEndpointController.prototype.SetUrlRefreshTimeout=function(){var a=this;this.urlExpirationDate=this.GetUrlExpiration();if(this.urlRefreshTimeout){clearTimeout(this.urlRefreshTimeout)}this.urlRefreshTimeout=setTimeout(function(){a.SendUrlBatchRequest()},a.urlRefreshIntervalMilliseconds)};EditionUrlsEndpointController.prototype.SendUrlBatchRequest=function(){if(!this.urlRequestInProgress){var b=this;var c=this.editionMetadata.extraOpenPageIDs.join();var a=this.endpointUrl+"/"+this.editionMetadata.id+"/"+c;var d={type:"GET",url:a,success:function(e){b.UrlBatchRequestHandler(e)},error:function(e){b.UrlBatchRequestFailHandler(e)},dataType:"json"};this.urlRequestInProgress=true;$.ajax(d)}};EditionUrlsEndpointController.prototype.UrlBatchRequestHandler=function(a){var b=a;this.urlRequestInProgress=false;if((a==null)||(this.editionMetadata.id!=b.EditionID)){this.UrlBatchRequestFailHandler(a)}else{this.UpdateEditionMetadata(b);this.SetUrlRefreshTimeout();this.urlUpdateComplete.Fire()}};EditionUrlsEndpointController.prototype.UrlBatchRequestFailHandler=function(a){this.urlRequestInProgress=false;window.location.reload(true)};EditionUrlsEndpointController.prototype.UpdateEditionMetadata=function(a){this.editionMetadata.RefreshUrlsFromServerEdition(a)};var LoggingEndpointController=function(d,a){var c=null;if(d===null){c=new Error('"loggingEndpointUrl" may not be null in LoggingEndpointController().')}if(a===null){c=new Error('"sendUsageIntervalSeconds" may not be null in LoggingEndpointController().')}if(c!==null){var b='An error occurred on "'+c.fileName+'" (line #'+c.lineNumber+"). "+c.message;throw new Error(b)}this.endpointUrl=d;this.sendUsageDelay=a*1000;this.logsSent=new CustomEvent("logsSent",this);this.logsFailed=new CustomEvent("logsFailed",this);this.usageArray=[];this.usageSendPackage=null;this.usageSendInterval=null;this.awaitingResponse=false;this.lastSendFailed=false;this.numberOfConsecutiveFailures=0;this.maxNumberOfConsecutiveFailures=5};LoggingEndpointController.prototype.StartSendUsageInterval=function(){if(this.usageSendInterval===null){var a=this;this.usageSendInterval=setInterval(function(){a.SendUsage()},a.sendUsageDelay)}};LoggingEndpointController.prototype.StopSendUsageInterval=function(){clearInterval(this.usageSendInterval);this.usageSendInterval=null};LoggingEndpointController.prototype.LogUsage=function(a){this.usageArray.push(a)};LoggingEndpointController.prototype.SendUsage=function(){if((!this.awaitingResponse)&&(this.usageArray.length>0)&&(this.numberOfConsecutiveFailures<this.maxNumberOfConsecutiveFailures)){var a=this;this.usageSendPackage=this.usageArray.slice();this.usageArray=[];var b=$.toJSON(this.usageSendPackage);this.awaitingResponse=true;var c={type:"POST",url:this.endpointUrl,data:b,success:function(d){a.LogUsageResponseHandler(d)},error:function(d){a.LogUsageResponseHandler({Success:false})},dataType:"json"};$.ajax(c)}};LoggingEndpointController.prototype.ForceLogSend=function(){this.awaitingResponse=false;this.SendUsage()};LoggingEndpointController.prototype.LogUsageResponseHandler=function(a){var b=false;if(a){if(a.Success){b=a.Success;this.lastSendFailed=false;this.numberOfConsecutiveFailures=0}}if(b){this.logsSent.Fire(this.usageSendPackage.length);this.usageSendPackage=null}else{this.logsFailed.Fire(this.usageSendPackage.length);this.usageArray=this.usageSendPackage.concat(this.usageArray);this.usageSendPackage=null;if(this.lastSendFailed){this.numberOfConsecutiveFailures++}this.lastSendFailed=true}this.awaitingResponse=false};var UrlHelper=function(a){this.pageSetKey="&pageSet";this.pageKey="&page";this.wordFindKey="&wordFind";this.documentMetadata=a;this.parsedAddressBar=this.ParseAddressBar()};UrlHelper.prototype.GetRequestedPageSet=function(){return this.parsedAddressBar.pageSet};UrlHelper.prototype.GetRequestedPage=function(){return this.parsedAddressBar.page};UrlHelper.prototype.GetRequestedFindWords=function(){return this.parsedAddressBar.findWords};UrlHelper.prototype.UpdateAddressBar=function(c,e){var b="{baseUrl}#"+this.pageSetKey+"={pageSet}";if(e!==null){b+=this.pageKey+"={page}"}var a={baseUrl:this.parsedAddressBar.base,pageSet:c,page:e};var d=String.extendedReplace(b,a);window.location.href=d;this.parsedAddressBar=this.ParseAddressBar()};UrlHelper.prototype.ParseAddressBar=function(){return this.ParseUrl(window.location.href)};UrlHelper.prototype.GetAddressBarHashChanges=function(){var a=this.ParseAddressBar();var b={pageSet:null,page:null};if(this.parsedAddressBar.pageSet!=a.pageSet){if((typeof a.pageSet)=="number"){b.pageSet=a.pageSet}}if(this.parsedAddressBar.page!=a.page){if((typeof a.page)=="number"){b.page=a.page}}this.parsedAddressBar=a;return b};UrlHelper.prototype.ParseUrl=function(c){var e=null;var d=c.indexOf("#");e=(d==-1)?c:c.slice(0,d);var b=c.slice(d);var g=this.ParseAddressBase(e);var f=this.ParseHashValues(b);var a=EnuLinkType.unknown;if(!this.parsedAddressBar){a=EnuLinkType.external}else{if((c.indexOf("#")===0)||(e.toLowerCase()==this.parsedAddressBar.base.toLowerCase())){a=EnuLinkType.intraIssue}else{if(g.domain.toLowerCase()==this.parsedAddressBar.domain.toLowerCase()){a=EnuLinkType.interIssue}}}return{base:e,pageSet:(f.pageSet!==undefined)?f.pageSet:null,page:(f.page!==undefined)?f.page:null,findWords:f.findWords,linkType:a,domain:g.domain,edition:g.edition,version:g.version}};UrlHelper.prototype.ParseAddressBase=function(b){var f=b.slice(7);var e=f.split("/");var d=e[0];var c=(e[1])?e[1]:null;var a=(e[2])?e[2]:null;return{domain:d,edition:c,version:a}};UrlHelper.prototype.ParseHashValues=function(c){var e={pageSet:null,page:null,findWords:null};var b=this.FindKeyValueInHash(c,this.pageSetKey);if(b!==null){if(b=="last"){e.pageSet=this.documentMetadata.pageSetMetadataArray.length-1}else{e.pageSet=parseInt(b,10)}}var a=this.FindKeyValueInHash(c,this.pageKey);if(a!==null){if(a=="last"&&this.documentMetadata.pageSetMetadataArray[b]){e.page=this.documentMetadata.pageSetMetadataArray[b].pageMetadataArray.length-1}else{e.page=parseInt(a,10)}}var d=this.FindKeyValueInHash(c,this.wordFindKey);if(d!==null){e.findWords=d.split(",")}return e};UrlHelper.prototype.FindKeyValueInHash=function(e,c){var a=c+"=([^&]*)";var d=new RegExp(a);var b=d.exec(e);if(b===null){return null}else{return b[1]}};UrlHelper.prototype.RedirectToUrl=function(a,b){if(b){window.location=a}else{window.open(a)}};var ViewComponentController=function(g,b,d,f,e,c,a){if(arguments.length>0){this.ViewComponentControllerConstructor(g,b,d,f,e,c,a)}};ViewComponentController.prototype.ViewComponentControllerConstructor=function(a,d,f,c,h,b,i){var g=null;if(a==null){g=new Error('"id" may not be null in ViewComponentController().')}if(d==null){g=new Error('"baseID" may not be null in ViewComponentController().')}if(f==null){g=new Error('"className" may not be null in ViewComponentController().')}if(g!=null){var e='An error occurred on "'+g.fileName+'" (line #'+g.lineNumber+"). "+g.message;throw new Error(e)}this.id=a;this.baseID=d;this.fullID=this.baseID+"Component"+this.id;this.className=f;this.left=c;this.top=h;this.width=b;this.height=i;this.mouseClick=null;this.mouseOver=null;this.mouseOut=null;this.componentLoad=null;this.componentLoadError=null;this.componentLoaded=false;this.componentJQObject=null};ViewComponentController.prototype.BuildComponent=function(){if(this.componentJQObject==null){this.componentJQObject=$(document.createElement("div")).attr("id",this.fullID).addClass(this.className);if(this.left!=null){this.componentJQObject.css({left:this.left})}if(this.top!=null){this.componentJQObject.css({top:this.top})}if(this.width!=null){this.componentJQObject.width(this.width)}if(this.height!=null){this.componentJQObject.height(this.height)}}};ViewComponentController.prototype.AppendToElement=function(a){a.append(this.componentJQObject)};ViewComponentController.prototype.InitializeBaseCustomEvents=function(){this.mouseClick=new CustomEvent("mouseClick",this);this.mouseOver=new CustomEvent("mouseOver",this);this.mouseOut=new CustomEvent("mouseOut",this);this.componentLoad=new CustomEvent("componentLoad",this);this.componentLoadError=new CustomEvent("componentLoadError",this)};ViewComponentController.prototype.RemoveCustomEvents=function(){delete this.mouseClick;delete this.mouseOver;delete this.mouseOut;delete this.componentLoad;delete this.componentLoadError};ViewComponentController.prototype.DestroyComponent=function(){};ViewComponentController.prototype.GetComponentType=function(){return"ViewComponentController"};ViewComponentController.prototype.CheckAllComponentsLoaded=function(){};ViewComponentController.prototype.Width=function(a){if(a){this.componentJQObject.width(a);this.width=a}else{return this.componentJQObject.width()}};ViewComponentController.prototype.Height=function(a){if(a){this.componentJQObject.height(a);this.height=a}else{return this.componentJQObject.height()}};ViewComponentController.prototype.Left=function(a){if(a){this.componentJQObject.css({left:a});this.left=a}else{return this.left}};ViewComponentController.prototype.Top=function(a){if(a){this.componentJQObject.css({top:a});this.top=a}else{return this.top}};ViewComponentController.prototype.Hide=function(a){if(a){this.componentJQObject.css({visibility:"hidden"})}else{this.componentJQObject.css("display","none")}};ViewComponentController.prototype.FadeOut=function(a,b){this.componentJQObject.fadeOut(a,b)};ViewComponentController.prototype.Show=function(){if(this.componentJQObject){this.componentJQObject.css("display","block");this.componentJQObject.css({visibility:"visible"})}};ViewComponentController.prototype.AddTooltip=function(b,a){this.componentJQObject.attr("title",b);if(!a){a={track:true,delay:500,showBody:" -/"}}this.componentJQObject.tooltip(a)};ViewComponentController.prototype.Scroll=function(a,b){if(a!=null){this.componentJQObject.scrollLeft(a)}if(b!=null){this.componentJQObject.scrollTop(b)}};ViewComponentController.prototype.IsHidden=function(){return this.componentJQObject.is(":hidden")};ViewComponentController.prototype.DestroyJQObject=function(){if(this.componentJQObject){this.componentJQObject.discard();delete this.componentJQObject}};var LinkContentBoxController=function(e,a,c,b,d){if(arguments.length>0){this.LinkContentBoxControllerConstructor(e,a,c,b,d)}};LinkContentBoxController.prototype=new ViewComponentController();LinkContentBoxController.prototype.constructor=LinkContentBoxController;LinkContentBoxController.prototype.LinkContentBoxControllerConstructor=function(b,e,c,j,f){var h=null;if(b==null){h=new Error('"id" may not be null in LinkContentBoxController().')}if(e==null){h=new Error('"baseID" may not be null in LinkContentBoxController().')}if(c==null){h=new Error('"linkMetadata" may not be null in LinkContentBoxController().')}if(j==null){h=new Error('"pageWidth" may not be null in LinkContentBoxController().')}if(f==null){h=new Error('"pageHeight" may not be null in LinkContentBoxController().')}if(h!=null){var g='An error occurred on "'+h.fileName+'" (line #'+h.lineNumber+"). "+h.message;throw new Error(g)}var d=Math.floor(c.topLeftX*j);var i=Math.floor(c.topLeftY*f);var a=Math.floor((c.bottomRightX-c.topLeftX)*j);var k=Math.floor((c.bottomRightY-c.topLeftY)*f);ViewComponentController.call(this,b,e+"LinkContentBox","LinkContentBox",d,i,a,k);this.linkMetadata=c;this.pageWidth=j;this.pageHeight=f;this.frameDiv=null;this.BuildComponent();this.InitializeBaseCustomEvents();this.AddEventHandlers();this.SetTooltip()};LinkContentBoxController.prototype.GetComponentType=function(){return"LinkContentBoxController"};LinkContentBoxController.prototype.BuildComponent=function(){if(this.componentJQObject==null){this.componentJQObject=$(document.createElement("a")).attr("id",this.fullID).attr("href",this.linkMetadata.url).addClass(this.className);this.frameDiv=$(document.createElement("img")).addClass(this.className+"Frame").attr("src","/Content/images/1TransparentPixel.gif");this.highlightDiv=$(document.createElement("div")).addClass("LinkHighlight").hide();if(this.linkMetadata.isTextLink){this.frameDiv.addClass("LinkText")}this.componentJQObject.append(this.frameDiv);this.componentJQObject.append(this.highlightDiv);if(this.left!=null){this.componentJQObject.css({left:this.left})}if(this.top!=null){this.componentJQObject.css({top:this.top})}if(this.width!=null){this.componentJQObject.width(this.width)}if(this.height!=null){this.componentJQObject.height(this.height)}}this.componentLoaded=true};LinkContentBoxController.prototype.DestroyComponent=function(){this.RemoveCustomEvents();this.DestroyJQObject()};LinkContentBoxController.prototype.AddEventHandlers=function(){var a=this;var b=function(c){c.preventDefault();a.mouseClick.Fire({eventObject:c,linkMetadata:a.linkMetadata});return false};this.componentJQObject.click(b);this.componentJQObject.mouseover(function(){a.mouseOver.Fire()});this.componentJQObject.mouseout(function(){a.mouseOut.Fire()})};LinkContentBoxController.prototype.SetTooltip=function(d,b){var c=this.linkMetadata.label;if(!d){d=this.linkMetadata.GetTooltipLabel(c)}var a=(this.linkMetadata.linkType==EnuLinkType.external)?"ExternalLink":"";if(!b){b={track:true,delay:100,showBody:" -/ ",showURL:false,extraClass:a}}this.AddTooltip(d,b)};LinkContentBoxController.prototype.Highlight=function(){this.highlightDiv.stop(true,true);this.highlightDiv.css("filter","alpha(opacity=30)");this.highlightDiv.show()};LinkContentBoxController.prototype.RemoveHighlight=function(){this.highlightDiv.hide()};LinkContentBoxController.prototype.FadeOut=function(a){this.highlightDiv.fadeOut(a)};var ImagePageController=function(a,d,c,h,e,k,b,g,i,f,j){if(arguments.length>0){this.ImagePageControllerConstructor(a,d,c,h,e,k,b,g,i,f,j)}};ImagePageController.prototype=new ViewComponentController();ImagePageController.prototype.constructor=ImagePageController;ImagePageController.prototype.ImagePageControllerConstructor=function(a,d,c,i,e,m,b,h,k,g,l){var n=null;if(a==null){n=new Error('"id" may not be null in ImagePageController().')}if(d==null){n=new Error('"baseID" may not be null in ImagePageController().')}if(c==null){n=new Error('"pageMetadata" may not be null in ImagePageController().')}if(m==null){n=new Error('"createChildrenComponents" may not be null in ImagePageController().')}if(b==null){n=new Error('"showChildrenComponents" may not be null in ImagePageController().')}if(h==null){n=new Error('"displayRestrictedMessage" may not be null in ImagePageController().')}if(k==null){n=new Error('"renderHighlighting" may not be null in ImagePageController().')}if(g==null){n=new Error('"endpointController" may not be null in ImagePageController().')}if(n!=null){var j='An error occurred on "'+n.fileName+'" (line #'+n.lineNumber+"). "+n.message;throw new Error(j)}var f="ImagePage";if(l!=null){f+=" "+l}this.imagePageDimensions=c.GetDimensions(i);ViewComponentController.call(this,a,d+"ImagePage",f,0,0,this.imagePageDimensions.width,this.imagePageDimensions.height);this.pageMetadata=c;this.pageDimensionIndex=i;this.tempDimensionIndex=e;this.showChildrenComponents=b;this.createChildrenComponents=m;this.displayRestrictedMessage=h;this.renderHighlighting=k;this.endpointController=g;this.imageUrls=this.pageMetadata.GetUrls(this.pageDimensionIndex);this.tempUrls=(this.tempDimensionIndex!=null)?this.pageMetadata.GetUrls(this.tempDimensionIndex):null;this.imageLoad=new CustomEvent("imageLoad",this);this.imageError=new CustomEvent("imageError",this);this.linkClick=new CustomEvent("linkClick",this);this.buttonClick=new CustomEvent("buttonClick",this);this.logInSuccess=new CustomEvent("logInSuccess",this);this.linkControllers=[];this.BuildComponent();this.InitializeBaseCustomEvents();this.AddEventHandlers();this.CreateChildren();this.temporaryBackgroundImageJQObject=null;this.temporaryForegroundImageJQObject=null;this.backgroundImageJQObject=null;this.foregroundImageJQObject=null;this.restrictedDialogJQObject=null;this.restrictedDialogShadowJQObject=null;this.backgroundStartTime=null;this.foregroundStartTime=null;this.backgroundImageLoaded=false;this.foregroundImageLoaded=false;this.backgroundImageLoadTries=0;this.foregroundImageLoadTries=0;this.maxImageLoadTries=Infinity;this.imageRetryTime_ms=1000;this.highlightingJQObjects=null};ImagePageController.prototype.GetComponentType=function(){return"ImagePageController"};ImagePageController.prototype.DestroyComponent=function(){this.RemoveContent();this.RemoveCustomEvents();this.DestroyJQObject()};ImagePageController.prototype.RemoveContent=function(){this.RemoveImages();this.RemoveLinks()};ImagePageController.prototype.RemoveCustomEvents=function(){delete this.mouseClick;delete this.mouseOver;delete this.mouseOut;delete this.componentLoad;delete this.componentLoadError;delete this.imageLoad;delete this.imageError};ImagePageController.prototype.CreateChildren=function(){if(this.createChildrenComponents){this.AddLinks();this.ListenToChildren()}};ImagePageController.prototype.CreateOverlay=function(){this.componentJQObject.addDivToElement("Overlay"+this.id,"ImagePageOverlay")};ImagePageController.prototype.CreateRestrictedContentControl=function(){if(this.displayRestrictedMessage){this.turnawayController=new TurnawayController("RestrictedContentControl"+this.pageMetadata.id,this.endpointController,this.componentJQObject);var a=this;this.turnawayController.callToActionClick.Subscribe(function(b){a.buttonClick.Fire({buttonName:"Subscribe",uiComponent:"Turnaway",url:b.paramObject})},this);this.turnawayController.callForHelpClick.Subscribe(function(b){a.buttonClick.Fire({buttonName:"CallForHelp",uiComponent:"Turnaway",url:b.paramObject})},this);this.turnawayController.viewFreePagesClick.Subscribe(function(){a.buttonClick.Fire({buttonName:"Preview",uiComponent:"Turnaway"})},this);this.turnawayController.loginClick.Subscribe(function(){a.buttonClick.Fire({buttonName:"Login",uiComponent:"Turnaway"})},this);this.turnawayController.logInSuccess.Subscribe(function(){a.logInSuccess.Fire()},this)}};ImagePageController.prototype.CreateImages=function(){if(this.pageMetadata.accessDenied){this.CreateBackgroundImage(null,"RestrictedBackgroundImage");this.componentJQObject.addClass("RestrictedImagePage");this.CreateOverlay()}else{this.CreateTemporaryImages();this.CreateBackgroundImage();this.CreateForegroundImage()}};ImagePageController.prototype.CreateTemporaryImages=function(){if(this.tempDimensionIndex!=null){this.temporaryBackgroundImageJQObject=$(document.createElement("img")).attr("id","TempBackgroundImage"+this.pageMetadata.id).addClass("TempBackgroundImage").attr("src",this.tempUrls.background).attr("alt","").width(this.width).height(this.height);this.temporaryForegroundImageJQObject=$(document.createElement("img")).attr("id","TempForegroundImage"+this.pageMetadata.id).addClass("TempForegroundImage").attr("src",this.tempUrls.foreground).attr("alt","").width(this.width).height(this.height);this.componentJQObject.prepend(this.temporaryBackgroundImageJQObject);this.componentJQObject.append(this.temporaryForegroundImageJQObject)}};ImagePageController.prototype.CreateBackgroundImage=function(d,b){if(this.imageUrls.background){if(!d){d=""}if(!b){b="BackgroundImage"}var c=AddQueryStringToUrl(this.imageUrls.background,d);this.backgroundImageJQObject=$(document.createElement("img")).attr("id","BackgroundImage"+this.pageMetadata.id).addClass(b).attr("src",c).attr("alt","").css("left",-this.imagePageDimensions.left+"px").css("top",-this.imagePageDimensions.top+"px");if(this.temporaryBackgroundImageJQObject!=null){this.backgroundImageJQObject.hide()}this.componentJQObject.prepend(this.backgroundImageJQObject);this.backgroundImageLoadTries++;if(this.backgroundStartTime==null){this.backgroundStartTime=new Date()}if(this.backgroundImageJQObject.get(0).complete){this.OnBackgroundLoad()}else{var a=this;this.backgroundImageJQObject.load(function(e){a.OnBackgroundLoad(e)});this.backgroundImageJQObject.error(function(e){a.OnBackgroundError(e)})}}};ImagePageController.prototype.CreateForegroundImage=function(d){if(this.imageUrls.foreground){if(!d){d=""}var b=AddQueryStringToUrl(this.imageUrls.foreground,d);var c=document.createElement("img");this.foregroundImageJQObject=$(c).attr("id","ForegroundImage"+this.pageMetadata.id).addClass("ForegroundImage").attr("src",b).attr("alt","");if(this.temporaryForegroundImageJQObject!=null){this.foregroundImageJQObject.hide()}if(this.backgroundImageJQObject){this.backgroundImageJQObject.after(this.foregroundImageJQObject)}else{this.componentJQObject.append(this.foregroundImageJQObject)}this.foregroundImageLoadTries++;if(this.foregroundStartTime==null){this.foregroundStartTime=new Date()}if(this.foregroundImageJQObject.get(0).complete){this.OnForegroundLoad()}else{var a=this;this.foregroundImageJQObject.load(function(e){a.OnForegroundLoad(e)});this.foregroundImageJQObject.error(function(e){a.OnForegroundError(e)})}}};ImagePageController.prototype.RemoveImages=function(){this.RemoveTemporaryBackgroundImage();this.RemoveTemporaryForegroundImage();this.RemoveBackgroundImage();this.RemoveForegroundImage()};ImagePageController.prototype.RemoveTemporaryBackgroundImage=function(){if(this.temporaryBackgroundImageJQObject!=null){this.temporaryBackgroundImageJQObject.discard();delete this.temporaryBackgroundImageJQObject}};ImagePageController.prototype.RemoveTemporaryForegroundImage=function(){if(this.temporaryForegroundImageJQObject!=null){this.temporaryForegroundImageJQObject.discard();delete this.temporaryForegroundImageJQObject}};ImagePageController.prototype.RemoveBackgroundImage=function(){if(this.backgroundImageJQObject!=null){this.backgroundImageJQObject.discard();delete this.backgroundImageJQObject;this.backgroundImageLoaded=false}};ImagePageController.prototype.RemoveForegroundImage=function(){if(this.foregroundImageJQObject!=null){this.foregroundImageJQObject.discard();delete this.foregroundImageJQObject;this.foregroundImageLoaded=false}};ImagePageController.prototype.OnBackgroundLoad=function(){if(this.backgroundImageJQObject!=null){var a=new Date();var b=new Date(a-this.backgroundStartTime);this.backgroundImageJQObject.show();this.RemoveTemporaryBackgroundImage();var c=new ImageLoadMetadata(true,true,b,this.pageMetadata,this.backgroundImageJQObject.attr("src"),this.pageDimensionIndex);this.imageLoad.Fire(c);this.backgroundImageLoaded=true;this.CheckAllComponentsLoaded()}};ImagePageController.prototype.OnForegroundLoad=function(){if(this.foregroundImageJQObject!=null){var c=new Date();var a=new Date(c-this.foregroundStartTime);this.foregroundImageJQObject.show();this.RemoveTemporaryForegroundImage();var b=new ImageLoadMetadata(false,true,a,this.pageMetadata,this.foregroundImageJQObject.attr("src"),this.pageDimensionIndex);this.imageLoad.Fire(b);this.foregroundImageLoaded=true;this.CheckAllComponentsLoaded()}};ImagePageController.prototype.OnBackgroundError=function(c){var b=new Date();var a=new Date(b-this.backgroundStartTime);var d=new ImageLoadMetadata(true,false,a,this.pageMetadata,this.backgroundImageJQObject.attr("src"));this.imageError.Fire(d);this.RemoveBackgroundImage();this.RetryBackgroundLoad()};ImagePageController.prototype.OnForegroundError=function(a){var d=new Date();var c=new Date(d-this.foregroundStartTime);var b=new ImageLoadMetadata(false,false,c,this.pageMetadata,this.foregroundImageJQObject.attr("src"));this.imageError.Fire(b);this.RemoveForegroundImage();this.RetryForegroundLoad()};ImagePageController.prototype.RetryBackgroundLoad=function(){if(this.backgroundImageLoadTries<=this.maxImageLoadTries){var a=this;setTimeout(function(){if(a.componentJQObject){a.CreateBackgroundImage("Error="+a.backgroundImageLoadTries)}},a.imageRetryTime_ms)}else{}};ImagePageController.prototype.RetryForegroundLoad=function(){if(this.foregroundImageLoadTries<=this.maxImageLoadTries){var a=this;setTimeout(function(){if(a.componentJQObject){a.CreateForegroundImage("Error="+a.foregroundImageLoadTries)}},a.imageRetryTime_ms)}else{}};ImagePageController.prototype.CheckAllComponentsLoaded=function(){if(this.pageMetadata.accessDenied){if(this.backgroundImageLoaded){this.componentLoaded=true;this.componentLoad.Fire()}}else{if(this.backgroundImageLoaded&&this.foregroundImageLoaded){this.componentLoaded=true;this.OnImagePageLoaded();this.componentLoad.Fire()}}};ImagePageController.prototype.OnImagePageLoaded=function(){if(this.showChildrenComponents){this.ShowComponentChildren()}if(this.renderHighlighting){this.RenderHighlighting()}};ImagePageController.prototype.OnPageClick=function(e,b){var a=mouseCoords(e);var d=FindElementDocumentPosition(this.componentJQObject.get(0));var c={mousePos:a,pagePos:d,page:this,internalControlClicked:b};this.mouseClick.Fire(c)};ImagePageController.prototype.AddEventHandlers=function(){var b=this;var c=function(){b.mouseOver.Fire(b)};var d=function(){b.mouseOut.Fire(b)};var a=function(g){var f=$(g.target);var e=false;if(f.parents(".RestrictedContentControl").length>0){e=true}b.OnPageClick(g,e)};this.componentJQObject.click(a);this.componentJQObject.mouseover(c);this.componentJQObject.mouseout(d)};ImagePageController.prototype.AddLinks=function(){for(var b=0;b<this.pageMetadata.linkMetadataArray.length;b++){var c=this.pageMetadata.linkMetadataArray[b];var a=new LinkContentBoxController(c.id,this.fullID,c,this.width,this.height);a.AppendToElement(this.componentJQObject);this.linkControllers.push(a);a.Hide()}};ImagePageController.prototype.RemoveLinks=function(){for(var a=0;a<this.linkControllers.length;a++){this.linkControllers[a].DestroyComponent();delete this.linkControllers[a]}this.linkControllers=[]};ImagePageController.prototype.ShowComponentChildren=function(){if(!this.pageMetadata.accessDenied){this.showChildrenComponents=true;this.ShowComponents(this.linkControllers)}};ImagePageController.prototype.ShowComponentChildrenOnLoad=function(){if(this.componentLoaded){this.ShowComponentChildren()}else{this.showChildrenComponents=true}};ImagePageController.prototype.HideComponentChildren=function(){this.HideComponents(this.linkControllers);this.showChildrenComponents=false};ImagePageController.prototype.ShowComponents=function(b){for(var a=0;a<b.length;a++){b[a].Show()}};ImagePageController.prototype.HideComponents=function(b){for(var a=0;a<b.length;a++){b[a].Hide()}};ImagePageController.prototype.ListenToChildren=function(){var b=this;var e=function(g){var f={uiComponent:"Page",linkMetadata:g.paramObject.linkMetadata,imagePageID:b.id};b.OnPageClick(g.paramObject.eventObject,true);b.linkClick.Fire(f)};var a=function(h){var g=b.GetLinksFromContentItemID(h.scope.linkMetadata.contentItemID);g.push(h.scope);for(var f=0;f<g.length;f++){g[f].Highlight()}};var d=function(h){var f=b.GetLinksFromContentItemID(h.scope.linkMetadata.contentItemID);f.push(h.scope);for(var g=0;g<f.length;g++){f[g].FadeOut(500)}};for(var c=0;c<this.linkControllers.length;c++){if(this.linkControllers[c].mouseClick){this.linkControllers[c].mouseClick.Subscribe(e,this)}if(this.linkControllers[c].mouseOver){this.linkControllers[c].mouseOver.Subscribe(a,this)}if(this.linkControllers[c].mouseOut){this.linkControllers[c].mouseOut.Subscribe(d,this)}}};ImagePageController.prototype.GetLinksFromContentItemID=function(b){var a=[];for(var c=0;c<this.linkControllers.length;c++){if(this.linkControllers[c].linkMetadata.contentItemID==b){a.push(this.linkControllers[c])}}return a};ImagePageController.prototype.ShowLinksBriefly=function(){var a=this;this.ShowLinks();setTimeout(function(){a.FadeLinks()},1000)};ImagePageController.prototype.ShowLinks=function(){for(var a=0;a<this.linkControllers.length;a++){this.linkControllers[a].Highlight()}};ImagePageController.prototype.HideLinks=function(){for(var a=0;a<this.linkControllers.length;a++){this.linkControllers[a].RemoveHighlight()}};ImagePageController.prototype.FadeLinks=function(){for(var a=0;a<this.linkControllers.length;a++){var b=this.linkControllers[a];b.FadeOut(500)}};ImagePageController.prototype.RenderHighlighting=function(){if(this.highlightingJQObjects==null){this.highlightingJQObjects=[]}for(var b=0;b<this.pageMetadata.highlights.length;b++){var g=this.pageMetadata.highlights[b];var f=$(document.createElement("img")).addClass(g.className).attr("src","/Content/images/1TransparentPixel.gif");var e=Math.floor(g.left*this.imagePageDimensions.width);var d=Math.floor(g.top*this.imagePageDimensions.height);var c=Math.floor(g.width*this.imagePageDimensions.width);var a=Math.floor(g.height*this.imagePageDimensions.height);f.css({left:e,top:d,width:c,height:a});this.componentJQObject.append(f);this.highlightingJQObjects.push(f)}};ImagePageController.prototype.RemoveHighlighting=function(){if(this.highlightingJQObjects!=null){for(var a=0;a<this.highlightingJQObjects.length;a++){if(this.highlightingJQObjects[a]){this.highlightingJQObjects[a].discard()}}}};var PageSetController=function(a,c,g,f,k,d,i,j,h,e,b){if(arguments.length>0){this.PageSetControllerConstructor(a,c,g,f,k,d,i,j,h,e,b)}};PageSetController.prototype=new ViewComponentController();PageSetController.prototype.constructor=PageSetController;PageSetController.prototype.PageSetControllerConstructor=function(a,c,h,g,n,e,l,m,j,f,b){var k=null;if(a==null){k=new Error('"id" may not be null in PageSetController().')}if(c==null){k=new Error('"baseID" may not be null in PageSetController().')}if(h==null){k=new Error('"pageSetMetadata" may not be null in PageSetController().')}if(g==null){k=new Error('"pageDimensionIndex" may not be null in PageSetController().')}if(e==null){k=new Error('"createImagePageChildrenComponents" may not be null in PageSetController().')}if(l==null){k=new Error('"showImagePageChildrenComponents" may not be null in PageSetController().')}if(m==null){k=new Error('"displayRestrictedMessages" may not be null in PageSetController().')}if(j==null){k=new Error('"renderHighlighting" may not be null in PageSetController().')}if(f==null){k=new Error('"endpointController" may not be null in PageSetController().')}if(k!=null){var i='An error occurred on "'+k.fileName+'" (line #'+k.lineNumber+"). "+k.message;throw new Error(i)}var d={width:0,height:0};if(h){if((b===null)||(b===undefined)){d=h.GetCombinedDimensions(g)}else{d=h.pageMetadataArray[b].GetDimensions(g)}}ViewComponentController.call(this,a,c+"PageSet","PageSet",0,0,d.width,d.height);this.pageSetMetadata=h;this.pageDimensionIndex=g;this.tempDimensionIndexArray=n;this.createImagePageChildrenComponents=e;this.showImagePageChildrenComponents=l;this.displayRestrictedMessages=m;this.renderHighlighting=j;this.endpointController=f;this.singlePageIndex=(b===undefined)?null:b;this.pageControllers=[];this.BuildComponent();this.InitializeBaseCustomEvents();this.AddPages();this.PositionPages();this.pageClick=new CustomEvent("pageClick",this);this.pageImageLoad=new CustomEvent("pageImageLoad",this);this.pageImageError=new CustomEvent("pageImageError",this);this.linkClick=new CustomEvent("linkClick",this);this.buttonClick=new CustomEvent("buttonClick",this);this.logInSuccess=new CustomEvent("logInSuccess",this);this.imagesCreated=false;this.AddEventHandlers()};PageSetController.prototype.GetComponentType=function(){return"PageSetController"};PageSetController.prototype.DestroyComponent=function(){this.RemovePages();this.RemoveCustomEvents();this.DestroyJQObject()};PageSetController.prototype.RemoveCustomEvents=function(){delete this.mouseClick;delete this.mouseOver;delete this.mouseOut;delete this.componentLoad;delete this.componentLoadError;delete this.pageClick;delete this.pageImageLoad;delete this.pageImageError};PageSetController.prototype.AddEventHandlers=function(){var a=this;var c=function(d){a.mouseOver.Fire(a)};var b=function(d){a.mouseOut.Fire(a)};this.componentJQObject.mouseover(c);this.componentJQObject.mouseleave(b)};PageSetController.prototype.ListenToChildren=function(){var e=this;var f=function(l){var k=FindElementDocumentPosition(e.componentJQObject.get(0));var i=l.paramObject;i.pageSet=e;i.pageSetPos=k;e.pageClick.Fire(i)};var c=function(i){e.pageImageLoad.Fire(i.paramObject)};var g=function(i){e.pageImageError.Fire(i.paramObject)};var b=function(i){e.CheckAllComponentsLoaded()};var j=function(k){var i=k.paramObject;i.pageSetID=e.id;e.linkClick.Fire(i)};var h=function(i){e.buttonClick.Fire(i.paramObject)};var a=function(){e.OnLogInSuccess()};for(var d=0;d<this.pageControllers.length;d++){this.pageControllers[d].linkClick.Subscribe(j,this);this.pageControllers[d].mouseClick.Subscribe(f,this);this.pageControllers[d].imageLoad.Subscribe(c,this);this.pageControllers[d].imageError.Subscribe(g,this);this.pageControllers[d].componentLoad.Subscribe(b,this);this.pageControllers[d].buttonClick.Subscribe(h,this);this.pageControllers[d].logInSuccess.Subscribe(a,this)}};PageSetController.prototype.OnLogInSuccess=function(){this.logInSuccess.Fire()};PageSetController.prototype.GetBestTempDimensionIndex=function(a){var d=null;if(this.tempDimensionIndexArray!=null){var c=this.tempDimensionIndexArray[a];if(c){if(!c[this.pageDimensionIndex]){for(var b=0;b<c.length;b++){if(c[b]){d=b}}}}}return d};PageSetController.prototype.AddPages=function(){if(this.singlePageIndex!==null){var e=this.GetBestTempDimensionIndex(this.pageSetMetadata.pageMetadataArray[this.singlePageIndex].id);var a=this.pageSetMetadata.pageMetadataArray[this.singlePageIndex];var c=new ImagePageController(a.id,this.fullID,a,this.pageDimensionIndex,e,this.createImagePageChildrenComponents,this.showImagePageChildrenComponents,this.displayRestrictedMessages,this.renderHighlighting,this.endpointController,"ImagePageSingle");c.AppendToElement(this.componentJQObject);this.pageControllers.push(c)}else{for(var b=0;b<this.pageSetMetadata.pageMetadataArray.length;b++){var e=this.GetBestTempDimensionIndex(this.pageSetMetadata.pageMetadataArray[b].id);var a=this.pageSetMetadata.pageMetadataArray[b];var d=null;if(this.pageSetMetadata.pageMetadataArray.length==1){d="ImagePageSingle"}else{if(b==0){d="ImagePageLeft"}else{if(b==(this.pageSetMetadata.pageMetadataArray.length-1)){d="ImagePageRight"}else{d="ImagePageMiddle"}}}var c=new ImagePageController(a.id,this.fullID,a,this.pageDimensionIndex,e,this.createImagePageChildrenComponents,this.showImagePageChildrenComponents,this.displayRestrictedMessages,this.renderHighlighting,this.endpointController,d);c.AppendToElement(this.componentJQObject);this.pageControllers.push(c)}}this.ListenToChildren()};PageSetController.prototype.CreateRestrictedContentControl=function(){if(this.displayRestrictedMessages){this.turnawayController=new TurnawayController("RestrictedContentControl"+this.pageSetMetadata.id,this.endpointController,this.componentJQObject);var a=this;this.turnawayController.callToActionClick.Subscribe(function(b){a.buttonClick.Fire({buttonName:"Subscribe",uiComponent:"Turnaway",url:b.paramObject})},this);this.turnawayController.callForHelpClick.Subscribe(function(b){a.buttonClick.Fire({buttonName:"CallForHelp",uiComponent:"Turnaway",url:b.paramObject})},this);this.turnawayController.viewFreePagesClick.Subscribe(function(){a.buttonClick.Fire({buttonName:"Preview",uiComponent:"Turnaway"})},this);this.turnawayController.loginClick.Subscribe(function(){a.buttonClick.Fire({buttonName:"Login",uiComponent:"Turnaway"})},this);this.turnawayController.logInSuccess.Subscribe(function(){a.logInSuccess.Fire()},this)}};PageSetController.prototype.CreateImages=function(){if(!this.imagesCreated){for(var a=0;a<this.pageControllers.length;a++){if(this.pageControllers[a].CreateImages){this.pageControllers[a].CreateImages()}}if(!this.pageSetMetadata.containsViewablePages&&(this.pageControllers.length>1)){this.CreateRestrictedContentControl()}else{for(var a=0;a<this.pageControllers.length;a++){if(this.pageControllers[a].pageMetadata.accessDenied){this.pageControllers[a].CreateRestrictedContentControl()}}}}this.imagesCreated=true};PageSetController.prototype.RemoveImages=function(){for(var a=0;a<this.pageControllers.length;a++){if(this.pageControllers[a].RemoveImages){this.pageControllers[a].RemoveImages()}}this.imagesCreated=false};PageSetController.prototype.RemovePages=function(){for(var a=0;a<this.pageControllers.length;a++){this.pageControllers[a].DestroyComponent();delete this.pageControllers[a]}this.pageControllers=[]};PageSetController.prototype.PositionPages=function(){var c=0;var b=0;for(var a=0;a<this.pageControllers.length;a++){var d=this.pageSetMetadata.pageMetadataArray[a].GetDimensions(this.pageDimensionIndex);this.pageControllers[a].Left(c);this.pageControllers[a].Top(b);if(this.pageSetMetadata.orientation===0){c+=d.width}else{b+=d.height}}};PageSetController.prototype.GetPageSpace=function(b){var a={left:0,top:0,width:0,height:0};if(this.pageControllers[b]){a.left=this.pageControllers[b].left;a.top=this.pageControllers[b].top;a.width=this.pageControllers[b].width;a.height=this.pageControllers[b].height}return a};PageSetController.prototype.GetPageSpaces=function(){var b=[];for(var a=0;a<this.pageControllers.length;a++){b.push(this.GetPageSpace(a))}return b};PageSetController.prototype.CheckAllComponentsLoaded=function(){var b=0;for(var a=0;a<this.pageControllers.length;a++){if(this.pageControllers[a].componentLoaded){b++}}if(b==this.pageControllers.length){this.componentLoaded=true;this.componentLoad.Fire()}};PageSetController.prototype.ChangeCursorClass=function(a){switch(a.toLowerCase()){case"default":this.componentJQObject.removeClass("ZoomInAble");this.componentJQObject.removeClass("ZoomOutAble");break;case"zoominable":this.componentJQObject.addClass("ZoomInAble");this.componentJQObject.removeClass("ZoomOutAble");break;case"zoomoutable":this.componentJQObject.addClass("ZoomOutAble");this.componentJQObject.removeClass("ZoomInAble");break;default:this.componentJQObject.removeClass("ZoomInAble");this.componentJQObject.removeClass("ZoomOutAble");break}};PageSetController.prototype.AddTooltipsToPages=function(){for(var a=0;a<this.pageControllers.length;a++){var b=this.pageControllers[a].pageMetadata.label;this.pageControllers[a].AddTooltip(b)}};PageSetController.prototype.RenderHighlightingOnPages=function(){this.renderHighlighting=true;for(var a=0;a<this.pageControllers.length;a++){this.pageControllers[a].RenderHighlighting()}};PageSetController.prototype.RemoveHighlightingOnPages=function(){this.renderHighlighting=false;for(var a=0;a<this.pageControllers.length;a++){this.pageControllers[a].RemoveHighlighting()}};PageSetController.prototype.HidePageChildren=function(){this.showImagePageChildrenComponents=false;for(var a=0;a<this.pageControllers.length;a++){this.pageControllers[a].HideComponentChildren()}};PageSetController.prototype.ShowPageChildren=function(){this.showImagePageChildrenComponents=true;for(var a=0;a<this.pageControllers.length;a++){this.pageControllers[a].ShowComponentChildren()}};PageSetController.prototype.ShowPageChildrenOnLoad=function(){this.showImagePageChildrenComponents=true;for(var a=0;a<this.pageControllers.length;a++){this.pageControllers[a].ShowComponentChildrenOnLoad()}};var ViewStageController=function(e,b,a,c,d){if(arguments.length>0){this.ViewStageControllerConstructor(e,b,a,c,d)}};ViewStageController.prototype=new ViewComponentController();ViewStageController.prototype.constructor=ViewStageController;ViewStageController.prototype.ViewStageControllerConstructor=function(g,b,a,c,f){var e=null;if(g==null){e=new Error('"id" may not be null in ViewStageController().')}if(b==null){e=new Error('"baseID" may not be null in ViewStageController().')}if(a==null){e=new Error('"stagePadding" may not be null in ViewStageController().')}if(c==null){e=new Error('"displayRestrictedMessages" may not be null in ViewStageController().')}if(f==null){e=new Error('"endpointController" may not be null in ViewStageController().')}if(e!=null){var d='An error occurred on "'+e.fileName+'" (line #'+e.lineNumber+"). "+e.message;throw new Error(d)}ViewComponentController.call(this,g,b+"Stage","ViewStage",0,0,"100%","100%");this.stagePadding={left:15,top:15,right:15,bottom:15};this.SetPadding(a);this.displayRestrictedMessages=c;this.parentWidth=0;this.parentHeight=0;this.pageSetMetadata=null;this.pageMetadata=null;this.pageDimensionIndex=null;this.tempDimensionIndexArray=null;this.endpointController=f;this.pageSetController=null;this.BuildComponent();this.InitializeBaseCustomEvents();this.pageSetClick=new CustomEvent("pageClick",this);this.pageSetImageLoad=new CustomEvent("pageImageLoad",this);this.pageSetImageError=new CustomEvent("pageImageError",this);this.pageSetLoad=new CustomEvent("pageSetLoad",this);this.linkClick=new CustomEvent("linkClick",this);this.pageSetMouseOver=new CustomEvent("pageSetMouseOver",this);this.pageSetMouseOut=new CustomEvent("pageSetMouseOut",this);this.buttonClick=new CustomEvent("buttonClick",this);this.logInSuccess=new CustomEvent("logInSuccess",this);this.pageSetCursorClass="Default";this.renderHighlighting=false;this.showPageChildren=true;this.pageSetLoadStartTime=null};ViewStageController.prototype.GetComponentType=function(){return"ViewStageController"};ViewStageController.prototype.DestroyComponent=function(){this.DestroyPageSet();this.DestroyJQObject()};ViewStageController.prototype.FillParent=function(){this.Width("100%");this.Height("100%")};ViewStageController.prototype.ResizeStageToPageSet=function(){var a=this.GetPageSetDimensions(this.pageDimensionIndex);var c=a.width+this.stagePadding.left+this.stagePadding.right;var b=a.height+this.stagePadding.top+this.stagePadding.bottom;if(c<this.parentWidth){c="100%"}if(b<this.parentHeight){b="100%"}this.Width(c);this.Height(b)};ViewStageController.prototype.GetDimensions=function(){var a={width:this.Width(),height:this.Height()};return a};ViewStageController.prototype.GetPageSetDimensions=function(b){var a=null;if(this.pageMetadata){a=this.pageMetadata.GetDimensions(b)}else{a=this.pageSetMetadata.GetCombinedDimensions(this.pageDimensionIndex)}return a};ViewStageController.prototype.CreatePageSet=function(){if((this.pageSetMetadata!=null)&&(this.pageDimensionIndex!=null)){this.pageSetLoadStartTime=new Date().valueOf();this.DestroyPageSet();var a=(this.pageMetadata)?this.pageMetadata.index:null;this.pageSetController=new PageSetController(this.pageSetMetadata.index,this.fullID,this.pageSetMetadata,this.pageDimensionIndex,this.tempDimensionIndexArray,true,this.showPageChildren,this.displayRestrictedMessages,this.renderHighlighting,this.endpointController,a);if(this.pageSetHidden){this.pageSetController.Hide()}this.pageSetController.AppendToElement(this.componentJQObject);this.ListenToChildren();this.pageSetController.CreateImages();this.ResizeStageToPageSet();this.PositionPageSet();this.pageSetController.ChangeCursorClass(this.pageSetCursorClass)}};ViewStageController.prototype.DestroyPageSet=function(){if(this.pageSetController!=null){this.pageSetController.DestroyComponent();this.pageSetController=null}};ViewStageController.prototype.PositionPageSet=function(){if(this.pageSetController!=null){var a=this.GetPageSetDimensions(this.pageDimensionIndex);var d=this.stagePadding.top/(this.stagePadding.top+this.stagePadding.bottom);if(d>0.6){d=0.6}var c=(this.Width()-a.width)*0.5;var b=(this.Height()-a.height)*d;if(b<this.stagePadding.top){b=this.stagePadding.top}this.pageSetController.Left(c);this.pageSetController.Top(b)}};ViewStageController.prototype.SetPageSet=function(b,a,c){this.DestroyPageSet();this.pageSetMetadata=b;this.pageMetadata=c;if((a!=null)||(a!=null)){this.pageDimensionIndex=a}this.tempDimensionIndexArray=null;this.CreatePageSet()};ViewStageController.prototype.SetPageDimensionIndex=function(a){this.DestroyPageSet();this.pageDimensionIndex=a;this.CreatePageSet(true)};ViewStageController.prototype.SetPageSetTemporaryIndexes=function(a){this.tempDimensionIndexArray=a};ViewStageController.prototype.GetPageRectangle=function(b){var a={left:0,top:0,width:0,height:0};if(this.pageSetController!=null){a=this.pageSetController.GetPageSpace(b);a.left+=this.pageSetController.Left();a.top+=this.pageSetController.Top()}return a};ViewStageController.prototype.GetPageSetRectangle=function(){var d=0;var c=0;var b=0;var a=0;if(this.pageSetController!=null){d=this.pageSetController.Left();c=this.pageSetController.Top();b=this.pageSetController.Width();a=this.pageSetController.Height()}return new RectangleDimensions(d,c,b,a)};ViewStageController.prototype.GetPageSetPageRectangles=function(){return this.pageSetController.GetPageSpaces()};ViewStageController.prototype.ChangeCursorClass=function(a){switch(a.toLowerCase()){case"default":this.componentJQObject.removeClass("Draggable");this.componentJQObject.removeClass("Dragging");break;case"draggable":this.componentJQObject.addClass("Draggable");this.componentJQObject.removeClass("Dragging");if(this.pageSetController!=null){this.pageSetController.ChangeCursorClass("Default")}this.pageSetCursorClass="Default";break;case"dragging":this.componentJQObject.addClass("Dragging");this.componentJQObject.removeClass("Draggable");break;case"zoominable":this.componentJQObject.removeClass("Draggable");this.componentJQObject.removeClass("Dragging");if(this.pageSetController!=null){this.pageSetController.ChangeCursorClass("ZoomInAble")}this.pageSetCursorClass="ZoomInAble";break;case"zoomoutable":if(this.pageSetController!=null){this.pageSetController.ChangeCursorClass("ZoomOutAble")}this.pageSetCursorClass="ZoomOutAble";break;default:this.componentJQObject.removeClass("Draggable");this.componentJQObject.removeClass("Dragging");break}};ViewStageController.prototype.TransitionPageSet=function(){};ViewStageController.prototype.HidePageSet=function(){if(this.pageSetController!=null){this.pageSetController.Hide(true)}this.pageSetHidden=true};ViewStageController.prototype.ShowPageSet=function(){if(this.pageSetController!=null){this.pageSetController.Show()}this.pageSetHidden=false};ViewStageController.prototype.ListenToChildren=function(){var d=this;var e=function(j){d.pageSetClick.Fire(j.paramObject)};var a=function(j){d.pageSetImageLoad.Fire(j.paramObject)};var g=function(j){d.pageSetImageError.Fire(j.paramObject)};var b=function(l){var j=new Date().valueOf()-this.pageSetLoadStartTime;var k={loadTime:j,pageSetID:this.pageSetMetadata.id};d.pageSetLoad.Fire(k)};var i=function(k){var j=k.paramObject;d.linkClick.Fire(j)};var f=function(){d.pageSetMouseOver.Fire()};var c=function(){d.pageSetMouseOut.Fire()};var h=function(j){d.buttonClick.Fire(j.paramObject)};this.pageSetController.linkClick.Subscribe(i,this);this.pageSetController.pageClick.Subscribe(e,this);this.pageSetController.pageImageLoad.Subscribe(a,this);this.pageSetController.pageImageError.Subscribe(g,this);this.pageSetController.componentLoad.Subscribe(b,this);this.pageSetController.mouseOver.Subscribe(f,this);this.pageSetController.mouseOut.Subscribe(c,this);this.pageSetController.buttonClick.Subscribe(h,this);this.pageSetController.logInSuccess.Subscribe(function(){d.logInSuccess.Fire()},this)};ViewStageController.prototype.UpdateParentWidth=function(a){this.parentWidth=a};ViewStageController.prototype.UpdateParentHeight=function(a){this.parentHeight=a};ViewStageController.prototype.RenderHighlightingOnPageSet=function(){this.renderHighlighting=true;if(this.pageSetController){this.pageSetController.RenderHighlightingOnPages()}};ViewStageController.prototype.RemoveHighlightingOnPageSet=function(){this.renderHighlighting=false;if(this.pageSetController){this.pageSetController.RemoveHighlightingOnPages()}};ViewStageController.prototype.Hide=function(){this.HidePageChildren();this.componentJQObject.css("display","none")};ViewStageController.prototype.Show=function(){this.componentJQObject.css("display","block");this.ShowPageChildren()};ViewStageController.prototype.HidePageChildren=function(){this.showPageChildren=false;if(this.pageSetController!=null){this.pageSetController.HidePageChildren()}};ViewStageController.prototype.ShowPageChildren=function(){this.showPageChildren=true;if(this.pageSetController!=null&&this.pageSetController.componentLoaded){this.pageSetController.ShowPageChildren()}else{this.pageSetController.ShowPageChildrenOnLoad()}};ViewStageController.prototype.SetPadding=function(a){if(a.left!==undefined){this.stagePadding.left=a.left}if(a.top!==undefined){this.stagePadding.top=a.top}if(a.right!==undefined){this.stagePadding.right=a.right}if(a.bottom!==undefined){this.stagePadding.bottom=a.bottom}};ViewStageController.prototype.SetSinglePageViewMode=function(a){a=(a)?a:null;this.pageMetadata=a};ViewStageController.prototype.SetMultiPageViewMode=function(){this.pageMetadata=null};var TurnawayController=function(c,b,a){this.endpointController=b;this.turnawayJQObject=$(document.createElement("div")).attr("id",c).addClass("RestrictedContentControl");this.usernameInput=null;this.spinner=null;this.loginFailureMessage=null;this.loginErrorMessage=null;this.callToActionLink=null;this.callForHelpLink=null;this.viewFreePagesLink=null;this.callToActionClick=new CustomEvent("callToActionClick",this);this.callForHelpClick=new CustomEvent("callForHelpClick",this);this.viewFreePagesClick=new CustomEvent("viewFreePagesClick",this);this.loginClick=new CustomEvent("loginClick",this);this.logInSuccess=new CustomEvent("logInSuccess",this);this.mouseClick=new CustomEvent("mouseClick",this);this.LoadContents();a.append(this.turnawayJQObject)};TurnawayController.prototype.LoadContents=function(){var a=this;if(this.endpointController.TurnawayControllerCache){this.turnawayJQObject.html(this.endpointController.TurnawayControllerCache);this.Initialize()}else{this.endpointController.LoadTurnaway(this.turnawayJQObject,function(c,d,b){if(d=="error"){a.codeError.Fire("An error occurred on turnaway component load for edition="+a.endpointController.hostEditionID+'. ResponseText="'+c+'".')}else{a.endpointController.TurnawayControllerCache=c;a.Initialize()}})}};TurnawayController.prototype.Initialize=function(){this.FindComponents();this.AttachEventHandlersToContents()};TurnawayController.prototype.FindComponents=function(){this.usernameInput=this.turnawayJQObject.explicitFind(".LoginUsernameInput");var a=this.usernameInput.get(0);a.defaultValue=a.value;this.loginButton=this.turnawayJQObject.explicitFind(".LoginButton");this.spinner=this.turnawayJQObject.explicitFind(".LoginSpinner");this.loginFailureMessage=this.turnawayJQObject.explicitFind(".LoginFailureMessage");this.loginErrorMessage=this.turnawayJQObject.explicitFind(".LoginErrorMessage");this.callToActionLink=this.turnawayJQObject.find(".RestrictedContentCallToAction");this.viewFreePagesLink=this.turnawayJQObject.explicitFind(".RestrictedContentFreePages");this.callForHelpLink=this.turnawayJQObject.find(".CallForHelpLink")};TurnawayController.prototype.AttachEventHandlersToContents=function(){var b=this;this.loginButton.click(function(){b.Authenticate()});this.turnawayJQObject.keydown(function(d){b.OnKeyPress(d)});var a=function(){if(this.value==this.defaultValue){this.value="";var d=$(this);d.removeClass("InactiveText");d.addClass("ActiveText")}};var c=function(){if(this.value===""){this.value=this.defaultValue;var d=$(this);d.removeClass("ActiveText");d.addClass("InactiveText")}};this.usernameInput.focus(a);this.usernameInput.blur(c);this.callToActionLink.click(function(d){d.preventDefault();b.callToActionClick.Fire($(this).attr("href"))});this.viewFreePagesLink.click(function(d){d.preventDefault();b.viewFreePagesClick.Fire()});this.callForHelpLink.click(function(d){d.preventDefault();b.callForHelpClick.Fire($(this).attr("href"))})};TurnawayController.prototype.OnKeyPress=function(a){if(a.keyCode==13){this.Authenticate()}};TurnawayController.prototype.Authenticate=function(){var b=this.usernameInput.val();this.loginErrorMessage.hide();if((b==="")||(b==this.usernameInput.get(0).defaultValue)){this.loginFailureMessage.show()}else{this.loginFailureMessage.hide();this.spinner.show();var a=this;this.endpointController.RequestLogin(b,function(c){a.OnLoginResponse(c)})}};TurnawayController.prototype.OnLoginResponse=function(a){this.spinner.hide();if(a.Error){this.loginErrorMessage.show()}else{if(a.AccessGranted===false){this.loginFailureMessage.show()}else{this.logInSuccess.Fire()}}};var ImageLoadMetadata=function(c,b,f,a,e,d){this.isBackground=c;this.loadSucceeded=b;this.responseTime=f;this.pageMetadata=a;this.url=e;this.dimensionIndex=d};var MediaContentBoxController=function(h,c,b,e,a,d,f,g){if(arguments.length>0){this.MediaContentBoxControllerConstructor(h,c,b,e,a,d,f,g)}};MediaContentBoxController.prototype=new ViewComponentController();MediaContentBoxController.prototype.constructor=MediaContentBoxController;MediaContentBoxController.prototype.MediaContentBoxControllerConstructor=function(a,b,c,j,k,i,d,f){var h=null;if(a==null){h=new Error('"id" may not be null in MediaContentBoxController().')}if(b==null){h=new Error('"baseID" may not be null in MediaContentBoxController().')}if(c==null){h=new Error('"mediaMetadata" may not be null in MediaContentBoxController().')}if(i==null){h=new Error('"pageWidth" may not be null in MediaContentBoxController().')}if(d==null){h=new Error('"pageHeight" may not be null in MediaContentBoxController().')}if(f==null){h=new Error('"endpointController" may not be null in MediaContentBoxController().')}if(h!=null){var g='An error occurred on "'+h.fileName+'" (line #'+h.lineNumber+"). "+h.message;throw new Error(g)}this.mediaMetadata=c;var e=this.GetPositionRelativeToContainingPage(j,k,i,d);ViewComponentController.call(this,a,b+"MediaContentBox","MediaContentBox",e.left,e.top,e.width,e.height);this.mediaEvent=new CustomEvent("mediaEvent",this);this.pageWidth=i;this.pageHeight=d;this.endpointController=f;this.hasCloseButton=false;this.loadingMessage=null;this.BuildComponent();this.InitializeBaseCustomEvents();this.mediaController=new MediaController(this.fullID,this.mediaMetadata.mediaContent,e.width,e.height,f);this.AddEventHandlers();this.ListenToChildren();this.disabled=false;if((e.height<=0)||(e.width<=0)){this.disabled=true}};MediaContentBoxController.prototype.GetComponentType=function(){return"MediaContentBoxController"};MediaContentBoxController.prototype.BuildComponent=function(){if(this.componentJQObject==null){this.componentJQObject=$(document.createElement("div")).attr("id",this.fullID).addClass(this.className).css({position:"absolute",width:this.width,height:this.height,left:this.left,top:this.top})}};MediaContentBoxController.prototype.GetPositionRelativeToContainingPage=function(c,a,b,d){return{left:Math.floor(this.mediaMetadata.topLeftX*b)+c,top:Math.floor(this.mediaMetadata.topLeftY*d)+a,width:Math.floor((this.mediaMetadata.bottomRightX-this.mediaMetadata.topLeftX)*b),height:Math.floor((this.mediaMetadata.bottomRightY-this.mediaMetadata.topLeftY)*d)}};MediaContentBoxController.prototype.SetPositionRelativeToContainingPage=function(d,a,b,e){var c=this.GetPositionRelativeToContainingPage(d,a,b,e);if(this.componentJQObject){this.Left(c.left);this.Top(c.top);this.Width(c.width);this.Height(c.height);this.mediaController.Width(c.width);this.mediaController.Height(c.height)}};MediaContentBoxController.prototype.DestroyComponent=function(){this.RemoveCustomEvents();if(this.mediaController){this.mediaController.DestroyComponent();this.mediaController=null}this.DestroyJQObject()};MediaContentBoxController.prototype.LoadMedia=function(){if(!this.componentLoaded&&!this.disabled){this.mediaController.Load(this.componentJQObject);this.componentLoaded=true;if(this.mediaMetadata.mediaContent.allowClose){this.AddCloseButton()}}};MediaContentBoxController.prototype.Show=function(){if(!this.disabled){this.componentJQObject.css("display","block");this.componentJQObject.css({visibility:"visible"})}};MediaContentBoxController.prototype.AddEventHandlers=function(){if(this.mediaMetadata.mediaContent.mediaType!=MediaType.Image){var a=function(b){b.stopPropagation();b.stopImmediatePropagation()};this.componentJQObject.click(a);this.componentJQObject.mousedown(a)}};MediaContentBoxController.prototype.ListenToChildren=function(){var b=this;var d=function(e){b.DestroyComponent();b.disabled=true};var a=function(e){if(e.paramObject.eventType=="flashNotInstalled"){d(e)}else{e.paramObject.contentBoxID=this.mediaMetadata.id;b.mediaEvent.Fire(e.paramObject)}};var c=function(){if(b.mediaMetadata.mediaType!=MediaType.Flash){b.componentJQObject.addClass("MediaContentBox_Border")}};this.mediaController.mediaEvent.Subscribe(a,this);this.mediaController.componentLoad.Subscribe(c,this);this.mediaController.loadFailure.Subscribe(d,this)};MediaContentBoxController.prototype.Hide=function(a){if(this.componentJQObject){if(this.mediaController){this.mediaController.Unload()}if(a){this.componentJQObject.css({visibility:"hidden"})}else{this.componentJQObject.css("display","none")}}this.componentLoaded=false};MediaContentBoxController.prototype.AddCloseButton=function(){if(this.componentJQObject){if(!this.hasCloseButton){var a=this;var b=function(d){d.preventDefault();d.stopPropagation();a.DestroyComponent()};var c={attachedButtonContainerClass:"MediaButtonContainer",attachedButtonClass:"MediaCloseButton",hideTimeout:1000,hideSpeed:500,showSpeed:0,buttonClickCallback:b,hideButtons:true};this.componentJQObject.attachButton(c)}this.hasCloseButton=true}};var MediaController=function(b,c,d,a,e){if(arguments.length>0){this.MediaControllerConstructor(b,c,d,a,e)}};MediaController.prototype=new ViewComponentController();MediaController.prototype.constructor=MediaController;MediaController.prototype.MediaControllerConstructor=function(b,e,f,a,g){var d=null;if(b==null){d=new Error('"baseID" may not be null in MediaController().')}if(e==null){d=new Error('"mediaContent" may not be null in MediaController().')}if(f==null){d=new Error('"width" may not be null in MediaController().')}if(a==null){d=new Error('"height" may not be null in MediaController().')}if(g==null){d=new Error('"endpointController" may not be null in MediaController().')}if(d!=null){var c='An error occurred on "'+d.fileName+'" (line #'+d.lineNumber+"). "+d.message;throw new Error(c)}ViewComponentController.call(this,e.mediaID,b+"Media","Media",0,0,f,a);this.mediaContent=e;this.endpointController=g;this.mediaEvent=new CustomEvent("mediaEvent",this);this.loadFailure=new CustomEvent("loadFailure",this);this.player=null;this.totalPlayTime=0;this.lastEventPosition=0;this.playTimeCounterStart=null;this.initialStartYouTube=true;this.minFlashVersion="9.0.0";this.embedID=null;this.embedJQElement=null;this.dynamicYouTubeApiReadyHandlerName=null;this.dynamicYouTubeApiErrorHandlerName=null;this.dynamicVimeoApiReadyHandlerName=null;this.loadAttempts=0;this.maxLoadAttempts=3;this.InitializeBaseCustomEvents()};MediaController.prototype.DestroyComponent=function(){this.Unload();this.RemoveCustomEvents();this.DestroyJQObject()};MediaController.prototype.Unload=function(){if(this.componentLoaded){switch(this.mediaContent.mediaType){case MediaType.Unknown:throw new Error("Media with ID "+this.mediaContent.MediaID+" has an unknown type.");case MediaType.Image:this.componentJQObject.discard();break;case MediaType.InternalMovie:if(this.player){this.player.stop();this.player.unload()}break;case MediaType.Flash:break;case MediaType.YouTubeMovie:if(this.player&&this.player.stopVideo){this.player.stopVideo()}this.componentJQObject.discard();window[this.dynamicYouTubeApiReadyHandlerName]=null;window[this.dynamicYouTubeApiErrorHandlerName]=null;break;case MediaType.VimeoMovie:if(this.player&&this.player.api_pause){this.player.api_pause()}window[this.dynamicVimeoApiReadyHandlerName]=null;window[this.onVimeoFinishHandlerName]=null;window[this.onVimeoPlayHandlerName]=null;window[this.onVimeoPauseHandlerName]=null;window[this.onVimeoSeekHandlerName]=null;window[this.onVimeoLoadingHandlerName]=null;break;default:throw new Error("Media with ID "+this.mediaContent.MediaID+" has an unknown type.")}delete this.componentJQObject}this.componentLoaded=false};MediaController.prototype.Load=function(a){if(a){this.containerJQElement=a}if(!this.componentLoaded){try{switch(this.mediaContent.mediaType){case MediaType.Unknown:throw new Error("Media with ID "+this.mediaContent.MediaID+" has an unknown type.");case MediaType.Image:this.BuildImageComponent(this.containerJQElement);break;case MediaType.InternalMovie:this.LoadMovieViaFlowplayer(this.containerJQElement);break;case MediaType.Flash:this.BuildFlashComponent(this.containerJQElement.attr("id")+"_Flash",this.mediaContent.sourceUrl,this.containerJQElement);this.OnLoad();break;case MediaType.YouTubeMovie:this.LoadYouTubeMovie(this.containerJQElement);break;case MediaType.VimeoMovie:this.LoadVimeoMovie(this.containerJQElement);break;default:throw new Error("Media with ID "+this.mediaContent.mediaID+" has an unknown type.")}this.loadAttempts++;this.AddEventHandlers()}catch(b){}}};MediaController.prototype.OnLoad=function(){this.componentLoaded=true;this.componentLoad.Fire()};MediaController.prototype.BuildFlashComponent=function(j,e,c,a){if(swfobject.hasFlashPlayerVersion(this.minFlashVersion)){this.componentJQObject=$(document.createElement("div")).attr("id",j).addClass(this.className+"FlashEmbed");c.append(this.componentJQObject);var i=this;var b=function(k){if(k.success){i.componentJQObject=$(k.ref);i.AddFlashEventHandlers()}else{i.OnFlashNotInstalled()}};var f=null;var d={allowScriptAccess:"always",allowFullScreen:"true",wmode:"opaque"};var g={id:j};var h=(a)?a:null;swfobject.embedSWF(e,this.componentJQObject.attr("id"),this.width,this.height,this.minFlashVersion,f,h,d,g,b)}else{this.OnFlashNotInstalled()}};MediaController.prototype.StartPlayTimeCounter=function(){if(this.playTimeCounterStart==null){this.playTimeCounterStart=new Date()}};MediaController.prototype.StopPlayTimeCounter=function(){if(this.playTimeCounterStart!=null){this.totalPlayTime+=this.GetCurrentPlayTime();this.playTimeCounterStart=null}};MediaController.prototype.GetCurrentPlayTime=function(){var b=0;if(this.playTimeCounterStart!=null){var a=new Date();var c=a-this.playTimeCounterStart;b=c/1000}return b};MediaController.prototype.GetTotalPlayTime=function(){var a=this.totalPlayTime+this.GetCurrentPlayTime();return a};MediaController.prototype.OnFlashNotInstalled=function(){this.mediaEvent.Fire(this.CreateMediaEventParamObject("flashNotInstalled",null,null,null,null))};MediaController.prototype.LoadVimeoMovie=function(c){var e=c.attr("id")+"VimeoEmbed";var d=this.mediaContent.sourceUrl.replace("http://vimeo.com/","");this.dynamicVimeoApiReadyHandlerName="dynamicVimeoApiReadyHandler"+e;var a=this;window[this.dynamicVimeoApiReadyHandlerName]=function(){a.OnVimeoAPIReady()};var b={clip_id:d,server:"vimeo.com",show_portrait:0,show_byline:1,show_title:1,js_api:1,js_onLoad:this.dynamicVimeoApiReadyHandlerName,js_swf_id:e};this.BuildFlashComponent(e,"http://vimeo.com/moogaloop.swf",c,b);c.data("mediaController",a)};MediaController.prototype.OnVimeoAPIReady=function(){this.AttachVimeoEventHandlers()};MediaController.prototype.AttachVimeoEventHandlers=function(){var a=this;var b=this.componentJQObject.attr("id");this.player=document.getElementById(b);this.onVimeoFinishHandlerName="onVimeoFinish"+b;this.onVimeoPlayHandlerName="onVimeoPlay"+b;this.onVimeoPauseHandlerName="onVimeoPause"+b;this.onVimeoSeekHandlerName="onVimeoSeek"+b;this.onVimeoLoadingHandlerName="onLoading"+b;window[this.onVimeoFinishHandlerName]=function(){a.OnVimeoPlayerStateChange("finish")};window[this.onVimeoPlayHandlerName]=function(){a.OnVimeoPlayerStateChange("start")};window[this.onVimeoPauseHandlerName]=function(){a.OnVimeoPlayerStateChange("pause")};window[this.onVimeoSeekHandlerName]=function(){a.OnVimeoPlayerStateChange("seek")};window[this.onVimeoLoadingHandlerName]=function(){a.OnVimeoPlayerStateChange("loading")};this.player.api_addEventListener("onFinish",this.onVimeoFinishHandlerName);this.player.api_addEventListener("onPlay",this.onVimeoPlayHandlerName);this.player.api_addEventListener("onPause",this.onVimeoPauseHandlerName);this.player.api_addEventListener("onSeek",this.onVimeoSeekHandlerName);this.player.api_addEventListener("onLoading",this.onVimeoLoadingHandlerName);if(this.mediaContent.autoPlay){this.player.api_play()}var d=this.player.api_getCurrentTime();var c=null;this.mediaEvent.Fire(this.CreateMediaEventParamObject("load",d,c,this.GetTotalPlayTime(),null))};MediaController.prototype.OnVimeoPlayerStateChange=function(c){var b=this.player.api_getCurrentTime();var a=null;if(!this.componentLoaded){this.OnLoad()}switch(c){case"loading":break;case"start":this.StartPlayTimeCounter();break;case"pause":this.StopPlayTimeCounter();break;case"finish":this.StopPlayTimeCounter();break;default:break}if(c!="loading"){this.mediaEvent.Fire(this.CreateMediaEventParamObject(c,b,a,this.GetTotalPlayTime(),null))}};MediaController.prototype.LoadYouTubeMovie=function(c){var d=c.attr("id")+"YouTubeEmbed";var b=this.mediaContent.sourceUrl.replace("playerapiidplaceholder",d);this.BuildFlashComponent(d,b,c);var a=this;c.data("mediaController",a)};MediaController.prototype.OnYouTubeAPIReady=function(){this.AttachYouTubeEventHandlers()};MediaController.prototype.AttachYouTubeEventHandlers=function(){var b=this.componentJQObject.attr("id");this.player=document.getElementById(b);var a=this;this.dynamicYouTubeApiReadyHandlerName="dynamicYouTubeApiReadyHandler"+b;this.dynamicYouTubeApiErrorHandlerName="dynamicYouTubeApiErrorHandler"+b;window[this.dynamicYouTubeApiReadyHandlerName]=function(c){a.OnYouTubePlayerStateChange(c)};window[this.dynamicYouTubeApiErrorHandlerName]=function(c){a.OnYouTubePlayerStateChange(-2,c)};this.player.addEventListener("onStateChange",this.dynamicYouTubeApiReadyHandlerName);this.player.addEventListener("onError",this.dynamicYouTubeApiErrorHandlerName)};MediaController.prototype.OnYouTubePlayerStateChange=function(a,f){var b={error:-2,unstarted:-1,ended:0,playing:1,paused:2,buffering:3,videoCued:5};var e=this.player.getCurrentTime();var c=this.player.getVolume();var d="unknown";if(!this.componentLoaded){this.OnLoad()}switch(a){case b.playing:this.StartPlayTimeCounter();d="start";break;case b.paused:this.StopPlayTimeCounter();d="pause";break;case b.ended:this.StopPlayTimeCounter();d="finish";break;case b.error:d="error";break;case b.videoCued:this.OnLoad();default:return}console.log(d);this.mediaEvent.Fire(this.CreateMediaEventParamObject(d,e,c,this.GetTotalPlayTime(),null));if(d=="error"&&(f!=101&&f!=150)){this.OnError()}};MediaController.prototype.BuildImageComponent=function(b){this.containerJQElement.html("");this.componentJQObject=$(document.createElement("img")).attr("id",this.fullID+"_image").attr("src",this.mediaContent.sourceUrl).addClass(this.className+"_image").css({width:this.width+"px",height:this.height+"px"});var a=this;this.componentJQObject.error(function(){a.OnError()});this.componentJQObject.load(function(){a.OnLoad()});b.append(this.componentJQObject)};MediaController.prototype.LoadMovieViaVideo=function(a){this.componentJQObject=$(document.createElement("video")).attr("id",this.fullID+"_video").attr("controls","controls").attr("autoplay","autoplay").attr("src",this.mediaContent.sourceUrl).addClass(this.className).css({width:this.width,height:this.height});a.append(this.componentJQObject)};MediaController.prototype.OnFlowPlayerEvent=function(b,d,f){if(this.lastEventType!="fullscreenExit"&&!((this.lastEventType=="load")&&(b=="start")&&!this.mediaContent.autoPlay)){var e=this.player.getTime();var c=this.player.getVolume();var a=this.player.isFullscreen();switch(b){case"start":case"resume":this.StartPlayTimeCounter();break;case"stop":case"pause":case"finish":case"load":this.OnLoad();break;case"unload":this.StopPlayTimeCounter();break}this.mediaEvent.Fire(this.CreateMediaEventParamObject(b,e,c,this.GetTotalPlayTime(),a))}if(b=="error"){this.OnError()}this.lastEventType=b};MediaController.prototype.CreateMediaEventParamObject=function(c,a,d,f,b){var e={mediaID:this.mediaContent.mediaID,eventType:c,position:a,volume:d,totalPlayTime:f,isFullscreen:b};return e};MediaController.prototype.LoadMovieViaFlowplayer=function(f){if(swfobject.hasFlashPlayerVersion(this.minFlashVersion)){this.defaultControlDefinitionObject=this.GetFlowplayerControlsLarge();if(this.width<300){if(this.width<200){this.defaultControlDefinitionObject=this.GetFlowplayerControlsSmall()}else{this.defaultControlDefinitionObject=this.GetFlowplayerControlsMedium()}}var e=encodeURIComponent(this.mediaContent.sourceUrl);var d={url:"/Content/Flash/flowplayer.controls-3.2.2.swf"};var b=$.extend({},d,this.defaultControlDefinitionObject);var c=this.mediaContent.autoPlay;var a=this;this.player=flowplayer(f.get(0),{src:"/Content/Flash/flowplayer.commercial-3.2.4.swf",wmode:"opaque",width:this.width,height:this.height},{key:this.endpointController.flowplayerLicenseKey,clip:{url:e,scaling:"fit",autoBuffering:true,autoPlay:c,onStart:function(g,h){a.OnFlowPlayerEvent("start",g,h)},onFinish:function(g,h){a.OnFlowPlayerEvent("finish",g,h)},onPause:function(g,h){a.OnFlowPlayerEvent("pause",g,h)},onResume:function(g,h){a.OnFlowPlayerEvent("resume",g,h)},onSeek:function(g,h){a.OnFlowPlayerEvent("seek",g,h)},onStop:function(g,h){a.OnFlowPlayerEvent("stop",g,h)}},plugins:{controls:b},onLoad:function(g,h){a.OnFlowPlayerEvent("load",g,h)},onError:function(g,h){a.OnFlowPlayerEvent("error",g,h)},onVolume:function(g,h){a.OnFlowPlayerEvent("volume",g,h)},onMute:function(g,h){a.OnFlowPlayerEvent("mute",g,h)},onUnmute:function(g,h){a.OnFlowPlayerEvent("unmute",g,h)},onFullscreen:function(g,h){a.SetControls(a.GetFlowplayerControlsLarge());a.OnFlowPlayerEvent("fullscreen",g,h)},onFullscreenExit:function(g,h){a.SetControls();a.OnFlowPlayerEvent("fullscreenExit",g,h)}});this.componentJQObject=f.find("object")}else{this.OnFlashNotInstalled()}};MediaController.prototype.SetControls=function(b){if(!b){b=this.defaultControlDefinitionObject}var a=$f().getControls();a.setWidgets(b)};MediaController.prototype.GetFlowplayerControlsSmall=function(){var a={all:false,play:true,volume:true,mute:false,time:false,stop:false,playlist:false,fastBackward:false,fastForward:false,slowBackward:false,slowForward:false,fullscreen:true,scrubber:false};return a};MediaController.prototype.GetFlowplayerControlsMedium=function(){var a={all:false,play:true,volume:true,mute:false,time:false,stop:false,playlist:false,fastBackward:false,fastForward:false,slowBackward:false,slowForward:false,fullscreen:true,scrubber:true};return a};MediaController.prototype.GetFlowplayerControlsLarge=function(){var a={all:false,play:true,volume:true,mute:true,time:true,stop:true,playlist:false,fastBackward:false,fastForward:false,slowBackward:false,slowForward:false,fullscreen:true,scrubber:true};return a};MediaController.prototype.OnError=function(){this.Unload();if(this.loadAttempts<this.maxLoadAttempts){this.Load()}else{this.loadFailure.Fire()}};MediaController.prototype.AddEventHandlers=function(){};MediaController.prototype.AddFlashEventHandlers=function(){};function GetMediaControllerFromYouTubeEmbedID(c){var a=c.replace("YouTubeEmbed","");var b=$("#"+a);return b.data("mediaController")}function onYouTubePlayerReady(a){var b=GetMediaControllerFromYouTubeEmbedID(a);b.OnYouTubeAPIReady()}var ViewController=function(f,j,d,e,a,k,n,b,o,m,g,i){var l=null;if(f===null){l=new Error('"foundationElementID" may not be null in ViewController().')}if(j===null){l=new Error('"pageSetMetadataArray" may not be null in ViewController().')}if(d===null){l=new Error('"pageCount" may not be null in ViewController().')}if(e===null){l=new Error('"userSettings" may not be null in ViewController().')}if(a===null){l=new Error('"secondaryPageDimensionIndex" may not be null in ViewController().')}if(n===null){l=new Error('"maxDimensionIndex" may not be null in ViewController().')}if(b===null){l=new Error('"primaryViewStagePadding" may not be null in ViewController().')}if(o===null){l=new Error('"secondaryViewStagePadding" may not be null in ViewController().')}if(g===null){l=new Error('"endpointController" may not be null in ViewController().')}if(l!==null){var h='An error occurred on "'+l.fileName+'" (line #'+l.lineNumber+"). "+l.message;throw new Error(h)}this.id=f+"View";this.endpointController=g;this.viewPaneJQObject=this.CreateViewPane();this.premiumAdPadding=100;this.leaderboardHtml=(i)?i:null;this.leaderboardController=null;var c=CloneObject(b);if(this.leaderboardHtml!=null){c.top+=this.premiumAdPadding}this.primaryViewStageController=this.CreateViewStage(0,c,true);this.secondaryViewStageController=this.CreateViewStage(1,o,false);this.pageSetMetadataArray=j;this.pageCount=d;this.fitPageSetMethod=e.fitDimension;this.viewMode=e.viewMode;this.minPageDimensionIndex=k;this.maxPageDimensionIndex=n;this.primaryPageDimensionIndex=null;this.secondaryPageDimensionIndex=a;this.currentPageSetIndex=(m)?m.pageSetIndex:0;this.currentPageIndex=(this.viewMode==EnuViewMode.SinglePage)?m.pageIndex:null;this.createPageSetTimeout=null;this.mouseClick=new CustomEvent("mouseClick",this);this.mouseOver=new CustomEvent("mouseOver",this);this.mouseOut=new CustomEvent("mouseOut",this);this.pageClick=new CustomEvent("pageClick",this);this.pageSetImageLoad=new CustomEvent("pageSetImageLoad",this);this.pageSetImageError=new CustomEvent("pageSetImageError",this);this.pageSetLoad=new CustomEvent("pageSetLoad",this);this.beforePageSetChange=new CustomEvent("beforePageSetChange",this);this.pageSetChange=new CustomEvent("pageSetChange",this);this.viewDraw=new CustomEvent("viewDraw",this);this.endViewDrag=new CustomEvent("endViewDrag",this);this.startViewDrag=new CustomEvent("startViewDrag",this);this.viewDrag=new CustomEvent("viewDrag",this);this.linkClick=new CustomEvent("linkClick",this);this.pageSetMouseOver=new CustomEvent("pageSetMouseOver",this);this.pageSetMouseOut=new CustomEvent("pageSetMouseOut",this);this.viewChange=new CustomEvent("viewChange",this);this.buttonClick=new CustomEvent("buttonClick",this);this.mediaEvent=new CustomEvent("mediaEvent",this);this.leaderboardMouseOver=new CustomEvent("leaderboardMouseOver",this);this.leaderboardMouseOut=new CustomEvent("leaderboardMouseOut",this);this.logInSuccess=new CustomEvent("logInSuccess",this);this.loadedPagesDimensionIndexDictionary={};this.mediaContainerControllerList=[];this.mediaContainerPageIndexList=[];this.CreateView();this.ListenToChildren();this.AddEventHandlers();this.isDraggable=false;this.secondaryViewHidden=true;this.isDragging=false;this.lastScrollTime=new Date();this.minimumTimeBetweenScrolls=1000;this.mediaHidden=false;this.mediaIsStale=true};ViewController.prototype.AppendToElement=function(a){a.append(this.viewPaneJQObject)};ViewController.prototype.CreateViewPane=function(){return $(document.createElement("div")).attr("id",this.id+"Pane").addClass("ViewPane").css({top:"0px",left:"0px",width:"100%",height:"100%",overflow:"auto",position:"relative"})};ViewController.prototype.DestroyViewPane=function(){this.viewPaneJQObject.discard();this.viewPaneJQObject=null};ViewController.prototype.AttachEventListeners=function(){var a=this;this.viewPaneJQObject.scroll(function(){a.PositionMedia()})};ViewController.prototype.VerticalScrollbarWidth=function(){var b=this.viewPaneJQObject.get(0);var a=0;var c=b.scrollHeight>b.clientHeight;if(c){if(!this.browserScrollbarWidth){this.browserScrollbarWidth=this.viewPaneJQObject.scrollbarWidth();if(this.browserScrollbarWidth===0){this.browserScrollbarWidth=17}}a=this.browserScrollbarWidth}return a};ViewController.prototype.HorizontalScrollbarHeight=function(){var a=this.viewPaneJQObject.get(0);var c=0;var b=a.scrollWidth>a.clientWidth;if(b){if(!this.browserScrollbarHeight){this.browserScrollbarHeight=this.viewPaneJQObject.scrollbarWidth();if(this.browserScrollbarHeight===0){this.browserScrollbarHeight=17}}c=this.browserScrollbarHeight}return c};ViewController.prototype.CreateViewStage=function(b,c,a){return new ViewStageController(b,this.id,c,a,this.endpointController)};ViewController.prototype.SetPrimaryViewStagePadding=function(b){var a=CloneObject(b);if(this.leaderboardController!=null){this.leaderboardController.Top(b.top+5);a.top+=this.premiumAdPadding}this.primaryViewStageController.SetPadding(a);this.UpdateView()};ViewController.prototype.DestroyPrimaryViewStage=function(){if(this.primaryViewStageController!==null){this.primaryViewStageController.DestroyComponent();this.primaryViewStageController=null}};ViewController.prototype.DestroySecondaryViewStage=function(){if(this.secondaryViewStageController!==null){this.secondaryViewStageController.DestroyComponent();this.secondaryViewStageController=null}};ViewController.prototype.Destroy=function(){this.DestroyPrimaryViewStage();this.DestroySecondaryViewStage();this.DestroyViewPane()};ViewController.prototype.AddEventHandlers=function(){var a=this;this.viewPaneJQObject.mousedown(function(e){if(a.IsScrollable()){a.ChangeCursorClass("Dragging")}if(e.target.tagName!="INPUT"){a.viewPaneJQObject.focus()}});this.viewPaneJQObject.mouseup(function(){if(a.IsScrollable()){a.ChangeCursorClass("Draggable")}else{a.ChangeCursorClass("Default")}});this.viewPaneJQObject.click(function(e){a.mouseClick.Fire()});this.viewPaneJQObject.scroll(function(){if(!a.isDragging){var e=new Date();var f=e-a.lastScrollTime;if(f>a.minimumTimeBetweenScrolls){a.viewChange.Fire()}a.lastScrollTime=e}});var c=this.viewPaneJQObject.get(0);StopElementSelection(c);var d=function(){a.viewChange.Fire()};var b={startDrag:d,endDrag:d};this.viewPaneJQObject.dragscroll(b)};ViewController.prototype.ListenToChildren=function(){var e=this;var f=function(k){if(!e.viewPaneJQObject.wasDragStarted()){e.pageClick.Fire(k.paramObject)}};var b=function(k){e.RecordLoadedImageInfo(k.paramObject);e.pageSetImageLoad.Fire(k.paramObject)};var h=function(k){e.pageSetImageError.Fire(k.paramObject)};var a=function(k){k.paramObject.isInView=(this.secondaryViewHidden)?true:false;if(this.secondaryViewHidden){e.CreateEmbeddedMediaWithDelay()}e.pageSetLoad.Fire(k.paramObject)};var d=function(k){k.paramObject.isInView=(this.secondaryViewHidden)?false:true;if(!this.secondaryViewHidden){e.CreateEmbeddedMediaWithDelay()}e.pageSetLoad.Fire(k.paramObject)};var j=function(l){if(!e.viewPaneJQObject.wasDragStarted()){var k=l.paramObject;e.linkClick.Fire(k)}};var g=function(){e.pageSetMouseOver.Fire()};var c=function(){e.pageSetMouseOut.Fire()};var i=function(k){e.buttonClick.Fire(k.paramObject)};this.primaryViewStageController.pageSetClick.Subscribe(f,this);this.primaryViewStageController.pageSetImageLoad.Subscribe(b,this);this.primaryViewStageController.pageSetImageError.Subscribe(h,this);this.primaryViewStageController.pageSetLoad.Subscribe(a,this);this.primaryViewStageController.linkClick.Subscribe(j,this);this.primaryViewStageController.pageSetMouseOver.Subscribe(g,this);this.primaryViewStageController.pageSetMouseOut.Subscribe(c,this);this.primaryViewStageController.buttonClick.Subscribe(i,this);this.primaryViewStageController.logInSuccess.Subscribe(function(){e.logInSuccess.Fire()},this);this.secondaryViewStageController.pageSetClick.Subscribe(f,this);this.secondaryViewStageController.pageSetImageLoad.Subscribe(b,this);this.secondaryViewStageController.pageSetImageError.Subscribe(h,this);this.secondaryViewStageController.pageSetLoad.Subscribe(d,this);this.secondaryViewStageController.linkClick.Subscribe(j,this);this.secondaryViewStageController.pageSetMouseOver.Subscribe(g,this);this.secondaryViewStageController.pageSetMouseOut.Subscribe(c,this);this.secondaryViewStageController.buttonClick.Subscribe(i,this);if(this.leaderboardController){this.leaderboardController.linkClick.Subscribe(j,this);this.leaderboardController.mouseOver.Subscribe(function(){e.leaderboardMouseOver.Fire()},this);this.leaderboardController.mouseOut.Subscribe(function(){e.leaderboardMouseOut.Fire()},this)}};ViewController.prototype.RecordLoadedImageInfo=function(a){if(!this.loadedPagesDimensionIndexDictionary[a.pageMetadata.id]){this.loadedPagesDimensionIndexDictionary[a.pageMetadata.id]={}}this.loadedPagesDimensionIndexDictionary[a.pageMetadata.id][a.dimensionIndex]=true};ViewController.prototype.GetLoadedImageInfoArray=function(a){var c=[];if(this.loadedPagesDimensionIndexDictionary!==null){for(var b=0;b<a.length;b++){if(this.loadedPagesDimensionIndexDictionary[a[b]]){c.push(this.loadedPagesDimensionIndexDictionary[a[b]])}}}return c};ViewController.prototype.GetPageSetLoadedImageIndexes=function(b){var c=this.pageSetMetadataArray[b];var a=new Array(c.pageMetadataArray.length);for(var d=0;d<c.pageMetadataArray.length;d++){a.push(c.pageMetadataArray[d].id)}return this.GetLoadedImageInfoArray(a)};ViewController.prototype.ViewHeight=function(a){if(this.viewPaneJQObject!==null){if(a){this.viewPaneJQObject.height(a);this.primaryViewStageController.UpdateParentHeight(a);this.secondaryViewStageController.UpdateParentHeight(a);this.PositionMediaWithDelay()}else{a=this.viewPaneJQObject.height();this.primaryViewStageController.UpdateParentHeight(a);this.secondaryViewStageController.UpdateParentHeight(a);return a}}else{throw new Error("The viewPaneJQObject is null in ViewController.ViewHeight().")}};ViewController.prototype.ViewWidth=function(a){if(this.viewPaneJQObject!==null){if(a){this.viewPaneJQObject.width(a);this.primaryViewStageController.UpdateParentWidth(a);this.secondaryViewStageController.UpdateParentWidth(a);this.PositionMediaWithDelay()}else{a=this.viewPaneJQObject.width();this.primaryViewStageController.UpdateParentWidth(a);this.secondaryViewStageController.UpdateParentWidth(a);return a}}else{throw new Error("The viewPaneJQObject is null in ViewController.ViewWidth().")}};ViewController.prototype.GetViewDimensions=function(){var a={width:this.ViewWidth(),height:this.ViewHeight()};return a};ViewController.prototype.ViewStageLeft=function(){if(this.viewPaneJQObject!==null){return this.viewPaneJQObject.scrollLeft()*(-1)}else{throw new Error("The viewPaneJQObject is null in ViewController.ViewStageLeft().")}};ViewController.prototype.ViewStageTop=function(){if(this.viewPaneJQObject!==null){return this.viewPaneJQObject.scrollTop()*(-1)}else{throw new Error("The viewPaneJQObject is null in ViewController.ViewStageTop().")}};ViewController.prototype.GetPageSetCenterViewPercentages=function(){var b=this.GetPageSetViewedPercentages();var a={left:b.width/2+b.left,top:b.height/2+b.top};return a};ViewController.prototype.GetBestFitDimensionIndex=function(){var c;var b=this.GetViewDimensions();var d=this.primaryViewStageController.stagePadding.left+this.primaryViewStageController.stagePadding.right;var e=this.primaryViewStageController.stagePadding.top+this.primaryViewStageController.stagePadding.bottom;var a=null;if(this.viewMode==EnuViewMode.SinglePage){a=this.currentPageIndex}switch(this.fitPageSetMethod){case EnuFitDimension.width:c=this.pageSetMetadataArray[this.currentPageSetIndex].GetConstrainedDimensionsIndex(b.width-d,null,a);break;case EnuFitDimension.height:c=this.pageSetMetadataArray[this.currentPageSetIndex].GetConstrainedDimensionsIndex(null,b.height-e,a);break;case EnuFitDimension.screen:c=this.pageSetMetadataArray[this.currentPageSetIndex].GetConstrainedDimensionsIndex(b.width-d,b.height-e,a);break;default:throw new Error("The fitPageSetMethod property is not set in ViewController.")}return c};ViewController.prototype.CreateView=function(){this.secondaryViewStageController.Hide();this.primaryViewStageController.AppendToElement(this.viewPaneJQObject);this.secondaryViewStageController.AppendToElement(this.viewPaneJQObject);if(this.leaderboardHtml){this.leaderboardController=new LeaderboardController(this.leaderboardHtml);this.leaderboardController.AppendToElement(this.primaryViewStageController.componentJQObject)}};ViewController.prototype.SyncViewStageDimensionsToView=function(){this.primaryViewStageController.UpdateParentHeight(this.ViewHeight());this.secondaryViewStageController.UpdateParentHeight(this.ViewHeight());this.primaryViewStageController.UpdateParentWidth(this.ViewWidth());this.secondaryViewStageController.UpdateParentWidth(this.ViewWidth())};ViewController.prototype.UpdateView=function(){if(this.secondaryViewHidden){this.UpdatePrimaryViewStage()}else{this.UpdateSecondaryViewStage()}this.UpdateViewTemporaryIndexes();this.PositionMediaWithDelay();this.viewDraw.Fire();this.viewChange.Fire()};ViewController.prototype.UpdatePrimaryViewStage=function(){var c=this;var b=this.GetBestFitDimensionIndex();if(b<this.minPageDimensionIndex){this.primaryPageDimensionIndex=this.minPageDimensionIndex}else{if(b>this.maxPageDimensionIndex){this.primaryPageDimensionIndex=this.maxPageDimensionIndex}else{this.primaryPageDimensionIndex=b}}var a=this.GetCurrentPageSetMetadata();var d=this.GetCurrentPageMetadata();this.primaryViewStageController.SetPageSet(a,this.primaryPageDimensionIndex,d)};ViewController.prototype.UpdateSecondaryViewStage=function(){var b=this;var a=this.GetCurrentPageSetMetadata();var c=this.GetCurrentPageMetadata();this.secondaryViewStageController.SetPageSet(a,this.secondaryPageDimensionIndex,c)};ViewController.prototype.UpdateViewTemporaryIndexes=function(){var a=this.GetPageSetLoadedImageIndexes(this.currentPageSetIndex);this.primaryViewStageController.SetPageSetTemporaryIndexes(a);this.secondaryViewStageController.SetPageSetTemporaryIndexes(a)};ViewController.prototype.GetCurrentViewStageController=function(){var a=this.primaryViewStageController;if(!this.secondaryViewHidden){a=this.secondaryViewStageController}return a};ViewController.prototype.SwapViews=function(){if(this.secondaryViewHidden){this.UpdateSecondaryViewStage();this.ShowSecondaryView()}else{this.UpdatePrimaryViewStage();this.ShowPrimaryView()}this.PositionMediaWithDelay()};ViewController.prototype.ShowPrimaryView=function(){this.secondaryViewStageController.Hide();this.primaryViewStageController.Show();this.secondaryViewHidden=true};ViewController.prototype.ShowSecondaryView=function(){this.primaryViewStageController.Hide();this.secondaryViewStageController.Show();this.secondaryViewHidden=false};ViewController.prototype.HidePageSets=function(){this.primaryViewStageController.HidePageSet();this.secondaryViewStageController.HidePageSet()};ViewController.prototype.ShowPageSets=function(){this.primaryViewStageController.ShowPageSet();this.secondaryViewStageController.ShowPageSet()};ViewController.prototype.ResizeSecondaryPageSet=function(b){var a=this.GetPageSetLoadedImageIndexes(this.currentPageSetIndex);this.secondaryViewStageController.SetPageSetTemporaryIndexes(a);this.secondaryPageDimensionIndex=b;this.secondaryViewStageController.SetPageDimensionIndex(b);if(!this.secondaryViewHidden){this.PositionMediaWithDelay()}};ViewController.prototype.PositionViewStage=function(a,b){if(a!==null){this.viewPaneJQObject.scrollLeft(a)}if(b!==null){this.viewPaneJQObject.scrollTop(b)}};ViewController.prototype.PositionViewStageMax=function(c,b){var a=null;var e=null;var d=this.GetCurrentViewStageController();if(c){a=d.Width()}if(b){e=d.Height()}this.PositionViewStage(a,e)};ViewController.prototype.SlideViewStage=function(b,a){if(b){this.viewPaneJQObject.scrollLeft(this.viewPaneJQObject.scrollLeft()+b)}if(a){this.viewPaneJQObject.scrollTop(this.viewPaneJQObject.scrollTop()+a)}};ViewController.prototype.SlideViewHeight=function(a){var b=(a)?-this.ViewHeight():this.ViewHeight();this.viewPaneJQObject.scrollTop(this.viewPaneJQObject.scrollTop()+b)};ViewController.prototype.SlideViewWidth=function(b){var a=(b)?-this.ViewWidth():this.ViewWidth();this.viewPaneJQObject.scrollLeft(this.viewPaneJQObject.scrollLeft()+a)};ViewController.prototype.CenterViewStage=function(){var b=this.primaryViewStageController;if(!this.secondaryViewHidden){b=this.secondaryViewStageController}var a=b.Width()/2-this.ViewWidth()/2;var c=b.Height()/2-this.ViewHeight()/2;this.PositionViewStage(a,c)};ViewController.prototype.GetViewPaneRectangle=function(){var b=this.ViewWidth();var a=this.ViewHeight();return new RectangleDimensions(0,0,b,a)};ViewController.prototype.GetViewStageRectangle=function(){var d=this.ViewStageLeft();var c=this.ViewStageTop();var b=this.primaryViewStageController.Width();var a=this.primaryViewStageController.Height();if(!this.secondaryViewHidden){b=this.secondaryViewStageController.Width();a=this.secondaryViewStageController.Height()}return new RectangleDimensions(d,c,b,a)};ViewController.prototype.GetPageSetRectangle=function(){return this.GetCurrentViewStageController().GetPageSetRectangle()};ViewController.prototype.GetPageSetViewedPercentages=function(b){if(!b){b=this.GetAllViewRectangles()}var d=(Math.abs(b.viewStage.left)-b.pageSet.left)/b.pageSet.width;var a=(Math.abs(b.viewStage.top)-b.pageSet.top)/b.pageSet.height;var e=b.viewPane.width/b.pageSet.width;var c=b.viewPane.height/b.pageSet.height;return new RectangleDimensions(d,a,e,c)};ViewController.prototype.GetPageViewedPercentages=function(b){var d=[];if(!b){b=this.GetAllViewRectangles()}b.pages=this.GetCurrentViewStageController().GetPageSetPageRectangles();for(var f=0;f<b.pages.length;f++){var h=b.pages[f];var e=(Math.abs(b.viewStage.left)-b.pageSet.left-h.left)/h.width;var a=(Math.abs(b.viewStage.top)-b.pageSet.top-h.top)/h.height;var g=b.viewPane.width/h.width;var c=b.viewPane.height/h.height;d.push(new RectangleDimensions(e,a,g,c))}return d};ViewController.prototype.GetAllViewRectangles=function(){var a={viewPane:this.GetViewPaneRectangle(),viewStage:this.GetViewStageRectangle(),pageSet:this.GetPageSetRectangle()};return a};ViewController.prototype.GetPageIndexesInView=function(){var d=[];var c=this.GetPageViewedPercentages();var a=function(e){var h=false;var f=e.left+e.width;var g=e.top+e.height;if((e.left<=0)&&(e.top<=0)&&(f>=1)&&(g>=1)){h=true}return h};for(var b=0;b<c.length;b++){if(a(c[b])){d.push(b)}}return d};ViewController.prototype.GoToPageSetPosition=function(f,e){var c=this.GetPageSetRectangle();var d=f*c.width-this.ViewWidth()/2;var b=e*c.height-this.ViewHeight()/2;var a=c.left+d;var g=c.top+b;this.PositionViewStage(a,g)};ViewController.prototype.GoToPagePosition=function(c,b,a){if(c!==null){if(b===undefined){b=0.5}if(a===undefined){a=0.5}var h=this.GetCurrentViewStageController();var i=h.GetPageRectangle(c);var g=this.ViewWidth()/2;var e=this.ViewHeight()/2;if((i.width!==0)&&(i.height!==0)){var f=b*i.width-this.ViewWidth()/2;var d=a*i.height-this.ViewHeight()/2;g=i.left+f;e=i.top+d}this.PositionViewStage(g,e)}};ViewController.prototype.GoToPageView=function(c,a,f,e){if(c!==null){var b=a;var d=0;if(this.viewMode!=EnuViewMode.SinglePage){b=null;d=a}this.GoToPageSetView(c,b);this.GoToPagePosition(d,f,e)}};ViewController.prototype.LoadInitialView=function(){this.beforePageSetChange.Fire(this.pageSetMetadataArray[this.currentPageSetIndex]);var d=new Date();this.mediaIsStale=true;this.UpdateView();var a=this;var b=new Date();var e=this.GetCurrentPageMetadata();var c={fromPageSetID:null,toPageSetID:this.GetCurrentPageSetMetadata().id,fromPageID:null,toPageID:(e)?e.id:null,changeTime:b-d};this.pageSetChange.Fire(c)};ViewController.prototype.GoToPageSetView=function(d,a){if(d===Infinity){d=this.pageSetMetadataArray.length-1}var j=this.pageSetMetadataArray[d];if(a===Infinity){a=j.pageMetadataArray.length-1}if(j){var e=(this.currentPageSetIndex!=d);var c=false;var k=null;if(!e&&(a!==null)&&(a!==undefined)&&(this.currentPageIndex!=a)){k=j.pageMetadataArray[a];c=true}if(e||c){var b=new Date();var l=this.pageSetMetadataArray[this.currentPageSetIndex];var g=l.pageMetadataArray[this.currentPageIndex];this.currentPageSetIndex=parseInt(d,10);this.currentPageIndex=((a!=null)&&(a!=undefined))?parseInt(a,10):null;this.beforePageSetChange.Fire(j);this.DestroyEmbeddedMedia();this.mediaIsStale=true;this.UpdateView();var f=this;this.UpdateViewTemporaryIndexes();var i=new Date();var h={fromPageSetID:l.id,toPageSetID:j.id,fromPageID:(g)?g.id:null,toPageID:(k)?k.id:null,changeTime:i-b};this.pageSetChange.Fire(h)}}};ViewController.prototype.GoToNextView=function(a){var b=false;if(this.viewMode==EnuViewMode.SinglePage){b=this.GoToNextPageView(a)}else{b=this.GoToNextPageSetView(a)}return b};ViewController.prototype.GoToPreviousView=function(a){var b=false;if(this.viewMode==EnuViewMode.SinglePage){b=this.GoToPreviousPageView(a)}else{b=this.GoToPreviousPageSetView(a)}return b};ViewController.prototype.GoToNextPageView=function(b){var e=false;var c=this.GetCurrentPageSetMetadata();var a=this.currentPageIndex+1;if(a<c.pageMetadataArray.length){this.GoToPageSetView(this.currentPageSetIndex,a);if(!this.secondaryViewHidden&&b){this.PositionViewStage(0,0)}e=true}else{var d=this.currentPageSetIndex+1;if(d<this.pageSetMetadataArray.length){this.GoToPageSetView(d,0);if(!this.secondaryViewHidden&&b){this.PositionViewStage(0,0)}e=true}}return e};ViewController.prototype.GoToPreviousPageView=function(a){var c=false;var b=this.currentPageIndex-1;if(b>=0){this.GoToPageSetView(this.currentPageSetIndex,b);if(!this.secondaryViewHidden&&a){this.PositionViewStageMax(true,true)}c=true}else{var d=this.currentPageSetIndex-1;if(d>=0){this.GoToPageSetView(d,Infinity);if(!this.secondaryViewHidden&&a){this.PositionViewStageMax(true,true)}c=true}}return c};ViewController.prototype.GoToNextPageSetView=function(a){var c=false;var b=this.currentPageSetIndex+1;if(b<this.pageSetMetadataArray.length){this.GoToPageSetView(b);if(!this.secondaryViewHidden&&a){this.PositionViewStage(0,0)}c=true}return c};ViewController.prototype.GoToPreviousPageSetView=function(a){var b=false;var c=this.currentPageSetIndex-1;if(c>=0){this.GoToPageSetView(c);if(!this.secondaryViewHidden&&a){this.PositionViewStageMax(true,true)}b=true}return b};ViewController.prototype.GoToFirstPageSet=function(){var a=null;if(this.viewMode==EnuViewMode.SinglePage){a=0}this.GoToPageSetView(0,a)};ViewController.prototype.GoToLastPageSet=function(){var a=null;if(this.viewMode==EnuViewMode.SinglePage){a=Infinity}this.GoToPageSetView(Infinity,a)};ViewController.prototype.ChangeCursorClass=function(a){this.primaryViewStageController.ChangeCursorClass(a);this.secondaryViewStageController.ChangeCursorClass(a)};ViewController.prototype.IsScrollable=function(){var a=this.GetCurrentViewStageController();if((a.Width()>this.ViewWidth())||(a.Height()>this.ViewHeight())){this.isDraggable=true}else{this.isDraggable=false}return this.isDraggable};ViewController.prototype.GetCurrentPageSetMetadata=function(){return this.pageSetMetadataArray[this.currentPageSetIndex]};ViewController.prototype.GetCurrentPageMetadata=function(){var a=null;if(this.viewMode==EnuViewMode.SinglePage){a=this.GetCurrentPageSetMetadata().pageMetadataArray[this.currentPageIndex]}return a};ViewController.prototype.SetPageSetFitMethod=function(a){this.fitPageSetMethod=a};ViewController.prototype.RenderHighlightingOnPages=function(){this.primaryViewStageController.RenderHighlightingOnPageSet();this.secondaryViewStageController.RenderHighlightingOnPageSet()};ViewController.prototype.RemoveHighlightingOnPages=function(){this.primaryViewStageController.RemoveHighlightingOnPageSet();this.secondaryViewStageController.RemoveHighlightingOnPageSet()};ViewController.prototype.HidePageChildren=function(){this.GetCurrentViewStageController().HidePageChildren();this.HideMedia()};ViewController.prototype.ShowPageChildren=function(){this.GetCurrentViewStageController().ShowPageChildren();this.ShowMedia()};ViewController.prototype.HideMedia=function(){this.mediaHidden=true;this.DestroyEmbeddedMedia()};ViewController.prototype.ShowMedia=function(){this.mediaHidden=false;this.CreateEmbeddedMedia()};ViewController.prototype.CreateEmbeddedMediaWithDelay=function(b){var a=this;b=(b)?b:10;setTimeout(function(){a.CreateEmbeddedMedia()},b)};ViewController.prototype.CreateEmbeddedMedia=function(){if(!this.mediaHidden&&this.mediaIsStale){this.DestroyEmbeddedMedia();var d=this.GetViewStageRectangle();var b=this.GetCurrentViewStageController();var c=b.pageSetController;for(var a=0;a<c.pageControllers.length;a++){var e=c.pageControllers[a];if(!e.pageMetadata.accessDenied){this.CreatePageMedia(e,a,b.left+c.Left(),b.top+c.Top())}}this.mediaIsStale=false}};ViewController.prototype.CreatePageMedia=function(d,a,c,b){for(var e=0;e<d.pageMetadata.mediaMetadataArray.length;e++){this.CreateMedia(d,d.pageMetadata.mediaMetadataArray[e],a,c,b)}};ViewController.prototype.CreateMedia=function(f,d,b,e,c){var h=new MediaContentBoxController(d.id,"MediaContainer",d,e+f.Left(),c+f.Top(),f.Width(),f.Height(),this.endpointController);this.mediaContainerControllerList.push(h);this.mediaContainerPageIndexList.push(b);h.AppendToElement(this.viewPaneJQObject);h.LoadMedia();var a=this;var g=function(i){a.mediaEvent.Fire(i.paramObject)};h.mediaEvent.Subscribe(g,this)};ViewController.prototype.DestroyEmbeddedMedia=function(){for(var a=0;a<this.mediaContainerControllerList.length;a++){this.mediaContainerControllerList[a].DestroyComponent()}this.mediaContainerControllerList=[];this.mediaContainerPageIndexList=[];this.mediaIsStale=true};ViewController.prototype.PositionMediaWithDelay=function(b){var a=this;if(this.positionMediaTimeout){clearTimeout(this.positionMediaTimeout);this.positionMediaTimeout=null}this.positionMediaTimeout=setTimeout(function(){a.PositionMedia();a.positionMediaTimeout=null},b)};ViewController.prototype.PositionMedia=function(){var e=this.GetViewStageRectangle();var d=this.GetPageSetRectangle();var b=this.GetCurrentViewStageController();var c=b.pageSetController;for(var f=0;f<this.mediaContainerControllerList.length;f++){var h=c.pageControllers[this.mediaContainerPageIndexList[f]];var g=d.left+h.Left();var a=d.top+h.Top();this.mediaContainerControllerList[f].SetPositionRelativeToContainingPage(g,a,h.Width(),h.Height())}};ViewController.prototype.SetViewMode=function(a){if(this.viewMode!=a){switch(a){case EnuViewMode.SinglePage:this.SetSinglePageView();break;case EnuViewMode.MultiplePage:this.SetMultiPageView();break}}};ViewController.prototype.SetSinglePageView=function(){this.viewMode=EnuViewMode.SinglePage;this.currentPageIndex=0;this.primaryViewStageController.SetSinglePageViewMode(this.GetCurrentPageMetadata());this.secondaryViewStageController.SetSinglePageViewMode(this.GetCurrentPageMetadata());this.UpdateView();this.DestroyEmbeddedMedia();this.CreateEmbeddedMedia()};ViewController.prototype.SetMultiPageView=function(){this.viewMode=EnuViewMode.MultiplePage;this.currentPageIndex=null;this.primaryViewStageController.SetMultiPageViewMode();this.secondaryViewStageController.SetMultiPageViewMode();this.UpdateView();this.DestroyEmbeddedMedia();this.CreateEmbeddedMedia()};var LeaderboardController=function(a){this.type="Leaderboard";this.leaderboardJQObject=$(document.createElement("div")).attr("id","LeaderboardAd");this.leaderboardPositioningJQObject=$(document.createElement("div")).html(a).attr("id","LeaderboardAdPositioning");this.leaderboardJQObject.append(this.leaderboardPositioningJQObject);this.linkClick=new CustomEvent("linkClick",this);this.mouseOver=new CustomEvent("mouseOver",this);this.mouseOut=new CustomEvent("mouseOut",this);this.AttachEventHandlers()};LeaderboardController.prototype.AppendToElement=function(a){a.append(this.leaderboardJQObject)};LeaderboardController.prototype.Top=function(a){this.leaderboardJQObject.css("top",a)};LeaderboardController.prototype.AttachEventHandlers=function(){var a=this;var d=function(e){e.preventDefault();a.OnLinkClick($(this).attr("href"))};var c=function(e){a.mouseOut.Fire()};this.leaderboardJQObject.find("a").click(d);var b=this.leaderboardJQObject.find("#Leaderboard");b.mouseenter(function(){a.mouseOver.Fire()});b.mouseleave(c);this.RegisterFlash();this.AddTooltips()};LeaderboardController.prototype.AddTooltips=function(){var b={track:true,delay:500,showBody:" -/"};var a=this.leaderboardJQObject.find(".LeaderboardLink");a.attr("title","Go to: -/");a.tooltip(b)};LeaderboardController.prototype.RegisterFlash=function(){var b=this.leaderboardPositioningJQObject.find(".LeaderboardFlashOutter");swfobject.switchOffAutoHideShow();for(var a=1;a<=b.length;a++){swfobject.registerObject("LeaderboardFlashContainer"+a,"9.0.115","/Content/Flash/expressInstall.swf")}};LeaderboardController.prototype.OnLinkClick=function(b){var a={url:b,uiComponent:this.type};this.linkClick.Fire(a)};LeaderboardController.prototype.Hide=function(){this.leaderboardJQObject.hide()};LeaderboardController.prototype.Show=function(){this.leaderboardJQObject.show()};var PageImageUrlInfo=function(a,d,b,c){this.backgroundUrl=a;this.backgroundDimensionIndex=d;this.foregroundUrl=b;this.foregroundDimensionIndex=c};var RectangleDimensions=function(d,c,b,a){this.left=d;this.top=c;this.width=b;this.height=a};var DialogController=function(e,a,f,d,h,b,j,i,g,c){if(arguments.length>0){this.DialogControllerConstructor(e,a,f,d,h,b,j,i,g,c)}};DialogController.prototype.DialogControllerConstructor=function(f,a,h,d,k,b,m,l,j,c){var i=null;if(f===null){i=new Error('"foundationElementID" may not be null in DialogController().')}if(a===null){i=new Error('"id" may not be null in DialogController().')}if(h===null){i=new Error('"className" may not be null in DialogController().')}if(d===null){i=new Error('"left" may not be null in DialogController().')}if(k===null){i=new Error('"top" may not be null in DialogController().')}if(b===null){i=new Error('"width" may not be null in DialogController().')}if(m===null){i=new Error('"height" may not be null in DialogController().')}if(l===null){i=new Error('"title" may not be null in DialogController().')}if(j===null){i=new Error('"type" may not be null in DialogController().')}if(i!==null){var g='An error occurred on "'+i.fileName+'" (line #'+i.lineNumber+"). "+i.message;throw new Error(g)}this.foundationElementID=f;this.id=a;this.className=h;this.left=d;this.top=k;this.width=b;this.height=m;this.title=l;this.type=j;this.dialogJQObject=null;this.loadingSpinner=null;this.open=new CustomEvent("open",this);this.close=new CustomEvent("close",this);this.buttonClick=new CustomEvent("buttonClick",this);this.linkClick=new CustomEvent("linkClick",this);this.codeError=new CustomEvent("codeError",this);this.dialogSectionClassConst="ToolbarDialogSection";var e={title:this.title,position:[this.left,this.top],width:this.width,height:this.height,draggable:true,resizable:false,autoOpen:false,showLoadingSpinner:true};this.dialogOptions=$.extend({},e,c);this.BuildDialog(this.dialogOptions);this.titlebar=this.dialogJQObject.siblings(".ui-dialog-titlebar");this.closeButton=this.titlebar.children(".ui-dialog-titlebar-close");this.effectTimeout=null};DialogController.prototype.BuildDialog=function(b){if(this.dialogJQObject===null){this.dialogJQObject=$(document.createElement("div")).attr("id",this.id).addClass(this.className);if(this.dialogOptions.showLoadingSpinner){this.loadingSpinner=$(document.createElement("div")).addClass("ActiveSpinner DialogLoadingSpinner");this.dialogJQObject.append(this.loadingSpinner)}var c=$("#"+this.foundationElementID);c.append(this.dialogJQObject);this.dialogJQObject.dialog(b);if(!b.autoOpen){this.dialogJQObject.parent().hide()}var a=this;this.dialogJQObject.bind("dialogopen",function(d,e){a.open.Fire()});this.dialogJQObject.bind("dialogclose",function(d,e){a.close.Fire()})}};DialogController.prototype.Open=function(){if(this.dialogJQObject!==null&&(!this.dialogJQObject.dialog("isOpen"))){this.dialogJQObject.dialog("open");if(this.dialogOptions.modal){var a=this;$(".ui-widget-overlay").click(function(){a.Bounce()})}if($.browser.msie&&$.browser.version.substr(0,1)<8){this.dialogJQObject.dialog("option","width",this.dialogJQObject.parent().width())}}};DialogController.prototype.Effect=function(c,b,e,d){if(this.effectTimeout===null){var a=this;this.effectTimeout=setTimeout(function(){a.effectTimeout=null},2000+e);this.dialogJQObject.parent().effect(c,b,e,d)}};DialogController.prototype.Bounce=function(){if(this.effectTimeout===null){var a=20;var b=3;var e=300;var g=this;var c=this.dialogJQObject.parent();this.effectTimeout=setTimeout(function(){g.effectTimeout=null},2000+e);var d="top";var k="pos";var j={},h={};for(var f=0;f<b;f++){j[d]=(k=="pos"?"-=":"+=")+a;h[d]=(k=="pos"?"+=":"-=")+a;c.animate(j,e/2).animate(h,e/2)}j[d]=(k=="pos"?"-=":"+=")+a;h[d]=(k=="pos"?"+=":"-=")+a;c.animate(j,e/2).animate(h,e/2)}};DialogController.prototype.Pulsate=function(){this.Effect("pulsate",{times:3},300)};DialogController.prototype.Close=function(){if((this.dialogJQObject!==null)&&(this.dialogJQObject.dialog("isOpen"))){this.dialogJQObject.dialog("close")}};DialogController.prototype.IsOpen=function(){var a=false;if(this.dialogJQObject!==null){a=this.dialogJQObject.dialog("isOpen")}return a};DialogController.prototype.Destroy=function(){if(this.dialogJQObject!==null){this.dialogJQObject.dialog("destroy")}};DialogController.prototype.Center=function(c){var a=(isNaN(this.width))?this.dialogJQObject.width():this.width;var b=($("#"+this.foundationElementID).width()-a)/2;if(c===undefined){c=this.top}this.dialogJQObject.dialog("option","position",[b,c])};DialogController.prototype.Position=function(a,b){if(!a){a=this.left}if(!b){b=this.top}this.dialogJQObject.dialog("option","position",[a,b])};DialogController.prototype.SetCloseButtonTooltip=function(b,a){this.closeButton.attr("title",b);if(!a){a={track:true,delay:500,showBody:" - ",showURL:false}}this.closeButton.tooltip(a)};DialogController.prototype.AttachEventHandlersToDialog=function(b){var a=this;this.closeButton.click(function(){a.OnButtonClick("Close")});if(!b){b=function(c){c.preventDefault();a.OnLinkClick($(this).attr("href"))}}this.dialogJQObject.find("a").click(b)};DialogController.prototype.OnButtonClick=function(a){var b={buttonName:a,uiComponent:this.type};this.buttonClick.Fire(b)};DialogController.prototype.OnLinkClick=function(d,b,c){if(!this.UrlIsTabLink(d)){if(!b){b=null}var a={url:d,uiComponent:this.type,hitResultID:b,contentItemID:c};this.Close();this.linkClick.Fire(a)}};DialogController.prototype.UrlIsTabLink=function(a){return((a=="#TocDialogTableOfContents")||(a=="#TocDialogLinkIndex")||(a=="#ShareDialogLinkSection")||(a=="#ShareDialogEmailSection")||(a=="#ShareDialogSocialSection")||(a=="#ShareDialogLookInsideSection"))};DialogController.prototype.Width=function(a){if(a===undefined){a=this.dialogJQObject.dialog("option","width")}else{this.dialogJQObject.dialog("option","width",a)}return a};DialogController.prototype.Height=function(a){if(a===undefined){a=this.dialogJQObject.dialog("option","height")}else{this.dialogJQObject.dialog("option","height",a)}return a};var PrintDialogController=function(e,d){var b=null;if(e===null){b=new Error('"foundationElementID" may not be null in IncorrectFlashVersionDialogController().')}if(d===null){b=new Error('"readerText" may not be null in IncorrectFlashVersionDialogController().')}if(b!==null){var a='An error occurred on "'+b.fileName+'" (line #'+b.lineNumber+"). "+b.message;throw new Error(a)}this.readerText=d;this.printPageSetClick=new CustomEvent("printPageSetClick",this);this.printEditionClick=new CustomEvent("printEditionClick",this);var c={draggable:false,resizable:false,autoOpen:false,modal:false,showLoadingSpinner:false,minHeight:0};DialogController.call(this,e,"DigitalEditionReaderPrintDialog","PrintDialog","center","center",225,"auto","","PrintDialog",c);this.LoadContents();this.Initialize()};PrintDialogController.prototype=new DialogController();PrintDialogController.prototype.constructor=PrintDialogController;PrintDialogController.prototype.LoadContents=function(){this.printPageSetButton=$("<button>").html("Print pages in view").addClass("PrintDialogButton Clickable");this.printEditionButton=$("<button>").html("Print all pages").addClass("PrintDialogButton Clickable");this.pointerBack=$("<div>").addClass("PrintDialogPointerBack");this.pointerFront=$("<div>").addClass("PrintDialogPointerFront");this.dialogJQObject.append(this.printPageSetButton);this.dialogJQObject.append(this.printEditionButton);var a=this.dialogJQObject.parent();a.addClass("PrintDialogParent");a.css({overflow:"visible"});a.append(this.pointerBack);a.append(this.pointerFront);var b=a.explicitFind(".ui-dialog-titlebar");b.remove()};PrintDialogController.prototype.Initialize=function(){this.AttachEventHandlersToDialog();var a=this;this.printPageSetButton.click(function(){a.Close();a.printPageSetClick.Fire();a.OnButtonClick("PrintPageSet")});this.printEditionButton.click(function(){a.Close();a.printEditionClick.Fire();a.OnButtonClick("PrintEdition")});this.pointerFront.click(function(){a.Close()});this.pointerBack.click(function(){a.Close()})};var IncorrectFlashVersionDialogController=function(f,e,d){var b=null;if(f===null){b=new Error('"foundationElementID" may not be null in IncorrectFlashVersionDialogController().')}if(e===null){b=new Error('"readerText" may not be null in IncorrectFlashVersionDialogController().')}if(d===null){b=new Error('"getFlashUrl" may not be null in IncorrectFlashVersionDialogController().')}if(b!==null){var a='An error occurred on "'+b.fileName+'" (line #'+b.lineNumber+"). "+b.message;throw new Error(a)}this.readerText=e;this.getFlashUrl=d;var c={draggable:true,resizable:false,autoOpen:false,modal:true,height:"auto",width:400,showLoadingSpinner:false};DialogController.call(this,f,"DigitalEditionReaderIncorrectFlashVersionDialog","IncorrectFlashVersion","center","center","auto","auto",this.readerText.IncorrectFlashVersionDialogTitle,"IncorrectFlashVersion",c);this.LoadContents();this.Initialize()};IncorrectFlashVersionDialogController.prototype=new DialogController();IncorrectFlashVersionDialogController.prototype.constructor=IncorrectFlashVersionDialogController;IncorrectFlashVersionDialogController.prototype.LoadContents=function(){var d=$(document.createElement("div")).html(this.readerText.IncorrectFlashVersionDialogMessage).addClass("IncorrectFlashVersionMessage");var c=$(document.createElement("a")).html(this.readerText.IncorrectFlashVersionDialogGetFlashLink).attr("href",this.getFlashUrl).addClass("GetFlashLink");var a=$(document.createElement("span")).attr("id","IncorrectFlashVersionDialogDoNoShowAgainSection");this.doNotShowAgainCheckbox=$(document.createElement("input")).attr("type","checkbox").attr("id","IncorrectFlashVersionDialogDoNoShowAgainCheckbox");var b=$(document.createElement("label")).attr("for","IncorrectFlashVersionDialogDoNoShowAgainCheckbox").attr("id","IncorrectFlashVersionDialogDoNoShowAgainLabel").html(this.readerText.IncorrectFlashVersionDialogNoNotShowAgainLabel);a.append(this.doNotShowAgainCheckbox);a.append(b);this.dialogJQObject.append(d);this.dialogJQObject.append(c);this.dialogJQObject.append(a)};IncorrectFlashVersionDialogController.prototype.DoNotShowAgainValue=function(a){if(a===undefined){a=this.doNotShowAgainCheckbox.attr("checked")}else{this.doNotShowAgainCheckbox.attr("checked",a)}return a};IncorrectFlashVersionDialogController.prototype.Initialize=function(){this.SetCloseButtonTooltip(this.readerText.CloseButtonTooltip);this.DoNotShowAgainValue(false)};IncorrectFlashVersionDialogController.prototype.ConditionalOpen=function(){if(!this.DoNotShowAgainValue()){this.Open()}};var TechnicalDifficultyDialogController=function(e,d){var b=null;if(e===null){b=new Error('"foundationElementID" may not be null in TechnicalDifficultyDialogController().')}if(d===null){b=new Error('"readerText" may not be null in TechnicalDifficultyDialogController().')}if(b!==null){var a='An error occurred on "'+b.fileName+'" (line #'+b.lineNumber+"). "+b.message;throw new Error(a)}this.readerText=d;var c={draggable:true,resizable:false,autoOpen:false,modal:true,minHeight:50,width:400,zIndex:3000,showLoadingSpinner:false};DialogController.call(this,e,"DigitalEditionTechnicalDifficultyDialog","TechnicalDifficulty","center","center","auto","auto",this.readerText.TechnicalDifficultyDialogTitle,"TechnicalDifficulty",c);this.LoadContents();this.Initialize()};TechnicalDifficultyDialogController.prototype=new DialogController();TechnicalDifficultyDialogController.prototype.constructor=TechnicalDifficultyDialogController;TechnicalDifficultyDialogController.prototype.LoadContents=function(){var a=$(document.createElement("span")).html(this.readerText.TechnicalDifficultyDialogMessage).addClass("TechnicalDifficultyMessage");this.dialogJQObject.append(a)};TechnicalDifficultyDialogController.prototype.Initialize=function(){this.SetCloseButtonTooltip(this.readerText.CloseButtonTooltip)};var WordFindDialogController=function(e,d){var b=null;if(e===null){b=new Error('"foundationElementID" may not be null in WordFindDialogController().')}if(d===null){b=new Error('"readerText" may not be null in WordFindDialogController().')}if(b!==null){var a='An error occurred on "'+b.fileName+'" (line #'+b.lineNumber+"). "+b.message;throw new Error(a)}this.readerText=d;this.workingMessage=null;this.workingSpinner=null;this.toggleHighlightingMessage=null;this.toggleHighlightingCheckbox=null;this.highlightingOff=new CustomEvent("highlightingOff",this);this.highlightingOn=new CustomEvent("highlightingOn",this);var c={draggable:true,resizable:false,autoOpen:false,modal:false,minHeight:50,width:250,showLoadingSpinner:false};DialogController.call(this,e,"DigitalEditionReaderWordFindDialog","WordFind","left","bottom","auto","auto",this.readerText.WordFindDialogTitle,"WordFind",c);this.LoadContents();this.Initialize()};WordFindDialogController.prototype=new DialogController();WordFindDialogController.prototype.constructor=WordFindDialogController;WordFindDialogController.prototype.LoadContents=function(){this.workingMessage=$(document.createElement("span")).html(this.readerText.WordFindDialogWorkingMessage).addClass("WordFindDialogWorkingMessage");this.workingSpinner=$(document.createElement("div")).attr("id","WordFindSpinner").addClass("ActiveSpinner");this.toggleHighlightingCheckbox=$(document.createElement("input")).attr("id","WordHighlightingToggle").attr("type","checkbox");this.toggleHighlightingMessage=$(document.createElement("label")).attr("for","WordHighlightingToggle").html(this.readerText.WordFindDialogToggleHighlightingMessage);this.dialogJQObject.append(this.workingMessage);this.dialogJQObject.append(this.workingSpinner);this.dialogJQObject.append(this.toggleHighlightingCheckbox);this.dialogJQObject.append(this.toggleHighlightingMessage)};WordFindDialogController.prototype.HighlightWordsValue=function(a){if(a===undefined){a=this.toggleHighlightingCheckbox.attr("checked")}else{this.toggleHighlightingCheckbox.attr("checked",a)}return a};WordFindDialogController.prototype.Initialize=function(){this.SetWorkingMode();this.SetCloseButtonTooltip(this.readerText.CloseButtonTooltip);this.AttachEventHandlersToContents()};WordFindDialogController.prototype.AttachEventHandlersToContents=function(){var a=this;var b=function(c){if(a.HighlightWordsValue()){a.highlightingOn.Fire()}else{a.highlightingOff.Fire()}};this.toggleHighlightingMessage.click(b);this.toggleHighlightingCheckbox.click(b);this.open.Subscribe(function(){a.SetWorkingMode();a.Position("left","bottom")},this)};WordFindDialogController.prototype.SetWorkingMode=function(){this.toggleHighlightingCheckbox.hide();this.toggleHighlightingMessage.hide();this.workingMessage.show();this.workingSpinner.show()};WordFindDialogController.prototype.SetOptionMode=function(){this.workingMessage.hide();this.workingSpinner.hide();this.toggleHighlightingCheckbox.show();this.toggleHighlightingMessage.show()};var BlowInDialogController=function(c,f,i,d){var h=null;if(c===null){h=new Error('"foundationElementID" may not be null in BlowInDialogController().')}if(f===null){h=new Error('"blowInMetadata" may not be null in BlowInDialogController().')}if(i===null){h=new Error('"readerText" may not be null in BlowInDialogController().')}if(d===null){h=new Error('"endpointController" may not be null in BlowInDialogController().')}if(h!==null){var e='An error occurred on "'+h.fileName+'" (line #'+h.lineNumber+"). "+h.message;throw new Error(e)}this.readerText=i;this.blowInMetadata=f;this.endpointController=d;this.numberOfAppearances=0;this.showable=true;this.maxAutoWidth=600;this.maxAutoHeight=600;var b={draggable:true,resizable:false,autoOpen:false,modal:true};var a=(this.blowInMetadata.mediaContent.mediaWidth)?this.blowInMetadata.mediaContent.mediaWidth:400;var j=(this.blowInMetadata.mediaContent.mediaHeight)?this.blowInMetadata.mediaContent.mediaHeight:300;if(this.blowInMetadata.width=="auto"){if(a>this.maxAutoWidth){this.blowInMetadata.width=this.maxAutoWidth+36;a=this.maxAutoWidth}else{this.blowInMetadata.width=a+36}}if(this.blowInMetadata.height=="auto"){if(j>this.maxAutoHeight){this.blowInMetadata.height=this.maxAutoHeight+62;j=this.maxAutoHeight}else{this.blowInMetadata.height=j+62}}this.mediaContainer=null;DialogController.call(this,c,"DigitalEditionReaderBlowInDialog","BlowIn",this.blowInMetadata.positionX,this.blowInMetadata.positionY,this.blowInMetadata.width,this.blowInMetadata.height,this.blowInMetadata.title,"BlowIn",b);this.mediaEvent=new CustomEvent("mediaEvent",this);this.mediaController=this.CreateMediaController(a,j);this.LoadContents();var g=this;this.open.Subscribe(g.OnOpen,this);this.close.Subscribe(g.OnClose,this)};BlowInDialogController.prototype=new DialogController();BlowInDialogController.prototype.constructor=BlowInDialogController;BlowInDialogController.prototype.LoadContents=function(){var a=this;this.endpointController.LoadBlowIn(this.dialogJQObject,this.blowInMetadata.contentID,function(c,d,b){if(d=="error"){a.Close();a.blowInMetadata.appearMaxOfNTimes=0;a.codeError.Fire("Blow-in with ID="+a.blowInMetadata.contentID+' failed to load. ResponseText="'+c+'".')}else{a.FindDialogComponents();a.Initialize();a.AttachEventHandlersToContents()}})};BlowInDialogController.prototype.CreateMediaController=function(e,c){var d=new MediaController(this.id,this.blowInMetadata.mediaContent,e,c,this.endpointController);var b=this;var a=function(f){f.paramObject.blowInID=this.blowInMetadata.id;if(f.paramObject.eventType=="flashNotInstalled"){b.showable=false}b.mediaEvent.Fire(f.paramObject)};d.mediaEvent.Subscribe(a,this);return d};BlowInDialogController.prototype.FindDialogComponents=function(){this.mediaContainer=this.dialogJQObject.explicitFind(".BlowInMediaContainer");this.link=this.dialogJQObject.find(".BlowInLink")};BlowInDialogController.prototype.Initialize=function(){this.SetCloseButtonTooltip(this.readerText.CloseButtonTooltip);var a=this;var b=function(d){d.preventDefault();var c={url:$(this).attr("href"),uiComponent:a.type,blowInID:a.blowInMetadata.id};a.linkClick.Fire(c)};if((this.blowInMetadata.linkUrl)&&(this.blowInMetadata.linkUrl!=="")){this.AttachEventHandlersToDialog(b)}};BlowInDialogController.prototype.AttachEventHandlersToContents=function(){this.link.attr("title",this.readerText.LinkTooltipPrefix_HTTP);var a={track:true,delay:500,showBody:"-/",showURL:true};this.link.tooltip(a)};BlowInDialogController.prototype.OnOpen=function(){var a=this;this.mediaLoadInterval=setInterval(function(){if(a.mediaContainer!=null){a.mediaController.Load(a.mediaContainer);clearInterval(a.mediaLoadInterval)}},100)};BlowInDialogController.prototype.OnClose=function(){this.mediaController.Unload(this.mediaContainer)};var TocDialogController=function(c,b,g,a,i,h,d){var f=null;if(c===null){f=new Error('"foundationElementID" may not be null in TocDialogController().')}if(h===null){f=new Error('"readerText" may not be null in TocDialogController().')}if(d===null){f=new Error('"endpointController" may not be null in TocDialogController().')}if(f!==null){var e='An error occurred on "'+f.fileName+'" (line #'+f.lineNumber+"). "+f.message;throw new Error(e)}this.readerText=h;this.endpointController=d;DialogController.call(this,c,"DigitalEditionReaderTocDialog","TocDialog",b,g,a,i,"Table of Contents","TocDialog");this.contentsSection=null;this.linkIndexSection=null;this.linkIndexFilterSection=null;this.LoadContents()};TocDialogController.prototype=new DialogController();TocDialogController.prototype.constructor=TocDialogController;TocDialogController.prototype.LoadContents=function(){var a=this;this.endpointController.LoadDialogContents(this.dialogJQObject,EnuDialogType.contents,function(c,d,b){if(d=="error"){a.codeError.Fire("An error occurred on ToC dialog load for edition="+a.endpointController.hostEditionID+'. ResponseText="'+c+'".')}else{a.FindDialogComponents();a.Initialize();a.FormTabs();a.SetupLinkIndex();a.AttachEventHandlersToContents()}})};TocDialogController.prototype.FindDialogComponents=function(){this.contentsSection=this.dialogJQObject.explicitFind("#TocDialogTableOfContents");this.linkIndexSection=this.dialogJQObject.explicitFind("#TocDialogLinkIndex");this.linkIndexFilterSection=this.linkIndexSection.explicitFind("#LinkIndexFilters");this.linkIndexTable=this.linkIndexSection.explicitFind("#LinkIndexTable");this.dialogTitleBar=this.dialogJQObject.parent().explicitFind(".ui-dialog-titlebar");this.dialogCloseButton=this.dialogTitleBar.explicitFind(".ui-dialog-titlebar-close");this.linkIndexTab=this.dialogJQObject.explicitFind("#LinkIndexTab");this.tocTab=this.dialogJQObject.explicitFind("#TocTab");this.LinkIndexContainer=this.dialogJQObject.explicitFind("#LinkIndexTableContainer");this.LinkIndexHeaderTable=this.dialogJQObject.explicitFind("#LinkIndexHeaderTable");this.linkIndexPageHeader=this.dialogJQObject.explicitFind("#LinkIndexPageHeader");this.linkIndexTypeHeader=this.dialogJQObject.explicitFind("#LinkIndexTypeHeader");this.linkIndexTitleHeader=this.dialogJQObject.explicitFind("#LinkIndexTitleHeader");this.linkIndexLinkHeader=this.dialogJQObject.explicitFind("#LinkIndexLinkHeader");this.superTocSection=this.dialogJQObject.find("#TocDialogSuperTocLinkSection")};TocDialogController.prototype.Initialize=function(){this.SetCloseButtonTooltip(this.readerText.CloseButtonTooltip);if(this.superTocSection.length>0){this.contentsSection.css({"padding-top":"50px"})}};TocDialogController.prototype.FormTabs=function(){this.dialogJQObject.tabs();this.dialogTitleBar.css({position:"absolute",width:"795px",height:"40px",padding:"0",visibility:"hidden"});this.dialogCloseButton.css({"z-index":"300",visibility:"visible",right:3})};TocDialogController.prototype.SetupLinkIndex=function(){this.UpdateZebraStripingClasses(true);if($.browser.msie&&$.browser.version.substr(0,1)<8){this.LinkIndexHeaderTable.find(".SortIndicator").css({display:"inline"})}var b=this.linkIndexTable.find("tbody tr");if(b.length>0){var a=this;this.linkIndexTable.tablesorter({headerTable:this.LinkIndexHeaderTable.get(0),sortList:[[0,0]]});this.linkIndexTable.bind("sortEnd",function(c){a.UpdateZebraStripingClasses(false)});a.UpdateZebraStripingClasses(true)}this.linkIndexTable.ResolveObfuscatedMailToLinks()};TocDialogController.prototype.SortIndexTable=function(c,b){var a=(b)?0:1;this.linkIndexTable.tablesorter({sortList:[[c,a]]})};TocDialogController.prototype.UpdateZebraStripingClasses=function(a){var b=":visible";if(a){b=""}this.linkIndexTable.find("tr"+b+":odd").addClass("OddRow");this.linkIndexTable.find("tr"+b+":even").removeClass("OddRow")};TocDialogController.prototype.AttachEventHandlersToContents=function(){var a=this;this.linkIndexFilterSection.click(function(g){var f=$(this).find("input:radio:checked").val();switch(f){case"AllContent":a.RemoveFilter();if(g.target.tagName=="INPUT"){a.OnButtonClick("RemoveLinkFilter")}break;case"Advertisement":a.FilterContent();if(g.target.tagName=="INPUT"){a.OnButtonClick("AdOnlyLinkFilter")}break;case"Editorial":a.FilterAds();if(g.target.tagName=="INPUT"){a.OnButtonClick("EditorialOnlyLinkFilter")}break;default:a.RemoveFilter()}});this.linkIndexTab.click(function(){a.OnButtonClick("LinkIndexTab")});this.tocTab.click(function(){a.OnButtonClick("TocTab")});this.linkIndexPageHeader.click(function(){a.OnButtonClick("LinkIndexPageSort")});this.linkIndexTypeHeader.click(function(){a.OnButtonClick("LinkIndexTypeSort")});this.linkIndexTitleHeader.click(function(){a.OnButtonClick("LinkIndexInfoSort")});this.linkIndexLinkHeader.click(function(){a.OnButtonClick("LinkIndexLinkSort")});var e=function(i){i.preventDefault();var f=$(this);var h=f.attr("href");var g=f.find(".ContentItemID").html();a.OnLinkClick(h,null,g)};if(this.superTocSection.length>0){var d=this.superTocSection.height();var b=function(){if(a.mouseOutSuperTocTimeout){clearTimeout(a.mouseOutSuperTocTimeout)}a.mouseOverSuperTocTimeout=setTimeout(function(){a.superTocSection.animate({height:225},500)},300)};var c=function(){if(a.mouseOverSuperTocTimeout){clearTimeout(a.mouseOverSuperTocTimeout)}a.mouseOutSuperTocTimeout=setTimeout(function(){a.superTocSection.animate({height:30},500)},300)};this.superTocSection.mouseover(b);this.superTocSection.mouseout(c)}this.AttachEventHandlersToDialog(e)};TocDialogController.prototype.RemoveFilter=function(){this.linkIndexTable.find("tr").show();this.UpdateZebraStripingClasses()};TocDialogController.prototype.FilterAds=function(){this.RemoveFilter();this.linkIndexTable.find("tr.ad").hide();this.UpdateZebraStripingClasses()};TocDialogController.prototype.FilterContent=function(){this.RemoveFilter();this.linkIndexTable.find("tr.content").hide();this.UpdateZebraStripingClasses()};var SearchDialogController=function(c,b,g,a,i,h,d){var f=null;if(c===null){f=new Error('"foundationElementID" may not be null in SearchDialogController().')}if(h===null){f=new Error('"readerText" may not be null in SearchDialogController().')}if(d===null){f=new Error('"endpointController" may not be null in SearchDialogController().')}if(f!==null){var e='An error occurred on "'+f.fileName+'" (line #'+f.lineNumber+"). "+f.message;throw new Error(e)}this.readerText=h;this.endpointController=d;DialogController.call(this,c,"DigitalEditionReaderSearchDialog","SearchDialog",b,g,a,i,h.SearchDialogTitle,"SearchDialog");this.searchInput=null;this.searchButton=null;this.searchOptionsButton=null;this.searchOptionsSection=null;this.stemmingCheckbox=null;this.editionFilterDropDown=null;this.contentFilterDropDown=null;this.searchResultsSection=null;this.SearchEventID=null;this.searchResultsTotalHits=0;this.searchResultsTotalResultsPages=0;this.searchResultsPerPage=0;this.searchResultsRequestedPage=1;this.LoadContents()};SearchDialogController.prototype=new DialogController();SearchDialogController.prototype.constructor=SearchDialogController;SearchDialogController.prototype.LoadContents=function(){var a=this;this.endpointController.LoadDialogContents(this.dialogJQObject,EnuDialogType.search,function(c,d,b){if(d=="error"){a.codeError.Fire("An error occurred on Search dialog load for edition="+a.endpointController.hostEditionID+'. ResponseText="'+c+'".')}else{a.FindDialogComponents();a.Initialize();a.SetDefaultSearchOptionsOnUI();a.AttachEventHandlersToContents()}})};SearchDialogController.prototype.FindDialogComponents=function(){this.searchInput=this.dialogJQObject.explicitFind("#SearchTextBox");this.searchButton=this.dialogJQObject.explicitFind("#SearchButton");this.searchOptionsSection=this.dialogJQObject.explicitFind("#AdvancedSearch");this.searchOptionsButton=this.dialogJQObject.explicitFind("#AdvancedSearchUnderButton");this.stemmingCheckbox=this.dialogJQObject.explicitFind("#FindSynonymsOption");var a=this.dialogJQObject.find("#IssueFilterAllIssuesOnly");if(a.length==0){this.editionFilterDropDown=this.dialogJQObject.explicitFind("#IssueFilterOption")}this.contentFilterDropDown=this.dialogJQObject.explicitFind("#ContentFilterOption");this.searchResultsSection=this.dialogJQObject.explicitFind("#SearchResults");this.searchResultsSummary=this.dialogJQObject.explicitFind("#SearchResultsSummary");this.searchResultsSummaryTotalHits=this.dialogJQObject.explicitFind("#SearchResultsSummaryTotalHits");this.searchResultsSummaryTotalPagesContainingHits=this.dialogJQObject.explicitFind("#SearchResultsSummaryTotalPagesContainingHits");this.searchResultsPager=this.dialogJQObject.explicitFind("#SearchResultsPager");this.searchSpinner=this.dialogJQObject.explicitFind("#SearchSpinner")};SearchDialogController.prototype.Initialize=function(){this.SetCloseButtonTooltip(this.readerText.CloseButtonTooltip)};SearchDialogController.prototype.SetStemmingAndSynonymsOption=function(a){this.stemmingCheckbox.attr("checked",a)};SearchDialogController.prototype.SetEditionFilterOption=function(a){if(this.editionFilterDropDown){if(a){this.editionFilterDropDown.val("AllIssues")}else{this.editionFilterDropDown.val("ThisIssue")}}};SearchDialogController.prototype.SetContentFilterOption=function(a){switch(a){case SearchOptionContentFilter.allContent:this.contentFilterDropDown.val("AllContent");break;case SearchOptionContentFilter.justEditorial:this.contentFilterDropDown.val("Articles");break;case SearchOptionContentFilter.justAdvertisement:this.contentFilterDropDown.val("Advertisement");break;default:throw new Error('Invalid "contentFilter" setting value: ['+a+"]")}};SearchDialogController.prototype.GetSearchText=function(){return this.searchInput.val()};SearchDialogController.prototype.GetStemmingOption=function(){return this.stemmingCheckbox.attr("checked")};SearchDialogController.prototype.GetEditionFilterOption=function(){var b;if(this.editionFilterDropDown){var a=this.editionFilterDropDown.val();switch(a){case"ThisIssue":b=false;break;case"AllIssues":b=true;break;default:throw new Error('Invalid "enableEntirePublicationSearch" setting value: ['+a+"]")}}else{b=true}return b};SearchDialogController.prototype.GetContentFilterOption=function(){var a=this.contentFilterDropDown.val();var b;switch(a){case"AllContent":b=SearchOptionContentFilter.allContent;break;case"Articles":b=SearchOptionContentFilter.justEditorial;break;case"Advertisements":b=SearchOptionContentFilter.justAdvertisement;break;default:throw new Error('Invalid "contentFilter" setting value: ['+a+"]")}return b};SearchDialogController.prototype.GetDefaultSearchOptions=function(){var a={searchText:"",stemmingOption:true,editionFilterOption:false,contentFilterOption:SearchOptionContentFilter.allContent,resultsPage:1,searchEventID:null};return a};SearchDialogController.prototype.SetDefaultSearchOptionsOnUI=function(){var a=this.GetDefaultSearchOptions();this.SetStemmingAndSynonymsOption(a.stemmingOption);this.SetEditionFilterOption(a.editionFilterOption);this.SetContentFilterOption(a.contentFilterOption)};SearchDialogController.prototype.GetSearchOptionsFromUI=function(){var a={searchText:this.GetSearchText(),stemmingOption:this.GetStemmingOption(),editionFilterOption:this.GetEditionFilterOption(),contentFilterOption:this.GetContentFilterOption(),resultsPage:1,searchEventID:null};return a};SearchDialogController.prototype.Search=function(b){var d=$.extend({},this.GetDefaultSearchOptions(),b);if(d.searchEventID===null){this.SearchEventID=null}var a=this;var c=function(f,g,e){if(g=="error"){a.searchSpinner.hide();a.ShowSearchResults();throw new Error("An error occurred on Search Result load: "+f)}else{a.searchSpinner.hide();a.searchResultsSection.scrollTop(0);a.FindSearchResultsValues();a.BuildPagingElements();a.AttachEventHandlersToSearchResults();a.ShowSearchResults()}};if(b.searchText!==""){this.searchSpinner.show();this.endpointController.LoadSearchResults(a.searchResultsSection,b.searchText,b.stemmingOption,b.editionFilterOption,b.contentFilterOption,b.resultsPage,b.searchEventID,c)}};SearchDialogController.prototype.AttachEventHandlersToContents=function(){var a=this;var b=function(c){if(c.which==13){a.Search(a.GetSearchOptionsFromUI())}};this.searchButton.click(function(){a.OnButtonClick("Search");a.Search(a.GetSearchOptionsFromUI())});this.searchOptionsButton.click(function(){a.OnButtonClick("Options");a.ShowAdvancedOptions()});this.open.Subscribe(function(){a.searchInput.focus()},this);this.dialogJQObject.keypress(b)};SearchDialogController.prototype.ShowSearchResults=function(){this.searchOptionsSection.hide();this.searchOptionsButton.show();this.searchResultsSection.show();this.searchResultsSummary.show()};SearchDialogController.prototype.ShowAdvancedOptions=function(){this.searchResultsSection.hide();this.searchOptionsButton.hide();this.searchOptionsSection.show();this.searchResultsSummary.hide()};SearchDialogController.prototype.FindSearchResultsValues=function(){this.SearchEventID=this.searchResultsSection.explicitFind("#SearchEventID").html();this.searchResultsTotalHits=this.searchResultsSection.explicitFind("#SearchResultsTotalHits").html();this.searchResultsTotalPagesContainingHits=this.searchResultsSection.explicitFind("#SearchResultsTotalPagesContainingHits").html();this.searchResultsTotalResultsPages=this.searchResultsSection.explicitFind("#SearchResultsTotalResultsPages").html();this.searchResultsPerPage=this.searchResultsSection.explicitFind("#SearchResultsPerPage").html();this.searchResultsRequestedPage=this.searchResultsSection.explicitFind("#SearchResultsRequestedPage").html()};SearchDialogController.prototype.BuildPagingElements=function(){this.searchResultsSummaryTotalHits.html(this.searchResultsTotalHits);this.searchResultsSummaryTotalPagesContainingHits.html(this.searchResultsTotalPagesContainingHits);var a=this;var c=function(d){var e=a.GetSearchOptionsFromUI();e.resultsPage=d;e.searchEventID=a.SearchEventID;a.Search(e)};var b={currentPageNumber:this.searchResultsRequestedPage,totalPageCount:this.searchResultsTotalResultsPages,numberPagesShown:5,buttonClickCallback:c,firstLabel:"first",previousLabel:"previous",nextLabel:"next",lastLabel:"last",ulClass:"SearchResultsPages",liClass:"SearchResultPage",currentClass:"CurrentSearchResultPage"};this.searchResultsPager.pager(b)};SearchDialogController.prototype.AttachEventHandlersToSearchResults=function(){var a=this;var b=function(f){f.preventDefault();var c=$(this);var d=c.attr("href");var e=c.find(".HitResultID").html();a.OnLinkClick(d,e)};this.searchResultsSection.find("a").click(b)};var ArchivesDialogController=function(c,b,g,a,i,h,d){var f=null;if(c===null){f=new Error('"foundationElementID" may not be null in ArchivesDialogController().')}if(h===null){f=new Error('"readerText" may not be null in ArchivesDialogController().')}if(d===null){f=new Error('"endpointController" may not be null in ArchivesDialogController().')}if(f!==null){var e='An error occurred on "'+f.fileName+'" (line #'+f.lineNumber+"). "+f.message;throw new Error(e)}this.readerText=h;this.endpointController=d;this.selectedCoverChange=new CustomEvent("selectedCoverChange",this);DialogController.call(this,c,"DigitalEditionReaderArchivesDialog","ArchivesDialog",b,g,a,i,h.ArchivesDialogTitle,"ArchivesDialog");this.carousel=null;this.selectedEditionID=null;this.editionMetadata=null;this.editionMetadataHtmlBucket=[];this.LoadContents();this.hasBackIssues=false};ArchivesDialogController.prototype=new DialogController();ArchivesDialogController.prototype.constructor=ArchivesDialogController;ArchivesDialogController.prototype.LoadContents=function(){var a=this;this.endpointController.LoadDialogContents(this.dialogJQObject,EnuDialogType.archives,function(c,d,b){if(d=="error"){a.codeError.Fire("An error occurred on Archives dialog load for edition="+a.endpointController.hostEditionID+'. ResponseText="'+c+'".')}else{a.FindDialogComponents();a.Initialize();if(a.hasBackIssues){a.InitializeCarousel();a.AttachEventHandlersToContents();a.ChangeSelectedCover(a.currentlySelectedCover)}}})};ArchivesDialogController.prototype.FindDialogComponents=function(){this.noBackIssuesMessage=this.dialogJQObject.find("#ArchivesNoBackIssuesMessage");if(this.noBackIssuesMessage.length>0){this.hasBackIssues=false}else{this.hasBackIssues=true}if(this.hasBackIssues){this.carousel=this.dialogJQObject.explicitFind("#ArchivesCarousel");this.editionMetadata=this.dialogJQObject.explicitFind("#ArchivesIssueInfoSection");this.carouselNext=this.dialogJQObject.explicitFind(".CarouselNextButton");this.carouselPrevious=this.dialogJQObject.explicitFind(".CarouselPreviousButton");this.spinner=this.dialogJQObject.explicitFind("#ArchivesMetadataSpinner");this.superTocSection=this.dialogJQObject.find("#ArchivesSuperTocLinkSection")}};ArchivesDialogController.prototype.Initialize=function(){this.SetCloseButtonTooltip(this.readerText.CloseButtonTooltip);if(this.hasBackIssues&&(this.superTocSection.length>0)){this.dialogJQObject.explicitFind("#ArchivesCarouselSection").css({"margin-top":"50px"})}};ArchivesDialogController.prototype.LoadEditionMetadata=function(){var a=this;var c=function(d,h,f){var e=$("<div></div>").html(d).addClass("ArchivesIssueInfo").css("display","none");var g=e.find(".ArchivesMetadataEditionID").html();if(!a.editionMetadataHtmlBucket[g]){e.attr("id","ArchivesMetadata"+g);a.editionMetadata.append(e);a.editionMetadataHtmlBucket[g]=e;a.AttachEventHandlersToEditionMetadata(e.attr("id"))}if(a.editionMetadataHtmlBucket[a.selectedEditionID]){a.HideLoadingSpinner()}};var b=function(d,f,e){a.editionMetadata.html("An error occurred loading issue information.");a.HideLoadingSpinner();throw new Error("An error occurred on Archives Edition Metadata load: "+d)};this.endpointController.GetArchivesMetadata(a.selectedEditionID,c,b)};ArchivesDialogController.prototype.InitializeCarousel=function(){this.dialogJQObject.parent().css("visibility","hidden");var b=this.IsOpen();if(!b){this.Open()}var c=this.carousel.find("li").outerWidth(true);var d=this.carousel.width()/c;var a={btnNext:".CarouselNextButton",btnPrev:".CarouselPreviousButton",visible:d,scroll:Math.floor(d),circular:false};this.carousel.jCarouselLite(a);if(!b){this.Close()}this.dialogJQObject.parent().css("visibility","visible");this.currentlySelectedCover=this.carousel.find("li:nth-child(1)")};ArchivesDialogController.prototype.ChangeSelectedCover=function(b){this.currentlySelectedCover.removeClass("SelectedArchivesCover");this.currentlySelectedCover=b;this.currentlySelectedCover.addClass("SelectedArchivesCover");this.selectedEditionID=b.explicitFind(".CarouselEditionID").html();var a=this;setTimeout(function(){a.ShowLoadingSpinner();a.UpdateEditionMetadata()},0);this.selectedCoverChange.Fire(this.selectedEditionID)};ArchivesDialogController.prototype.ShowLoadingSpinner=function(){this.spinner.show();this.editionMetadata.find(".ArchivesIssueInfo").hide()};ArchivesDialogController.prototype.HideLoadingSpinner=function(){this.spinner.hide();this.editionMetadata.find("#ArchivesMetadata"+this.selectedEditionID).show()};ArchivesDialogController.prototype.UpdateEditionMetadata=function(){if(this.editionMetadataHtmlBucket[this.selectedEditionID]){this.HideLoadingSpinner()}else{this.LoadEditionMetadata()}};ArchivesDialogController.prototype.AttachEventHandlersToContents=function(){var a=this;this.carousel.find(".ArchivesCarouselItem").hover(function(){a.ChangeSelectedCover($(this))});this.carouselNext.click(function(){a.OnButtonClick("CarouselNext")});this.carouselPrevious.click(function(){a.OnButtonClick("CarouselPrevious")});if(this.superTocSection.length>0){var d=this.superTocSection.height();var b=function(){if(a.mouseOutSuperTocTimeout){clearTimeout(a.mouseOutSuperTocTimeout)}a.mouseOverSuperTocTimeout=setTimeout(function(){a.superTocSection.animate({height:225},500)},300)};var c=function(){if(a.mouseOverSuperTocTimeout){clearTimeout(a.mouseOverSuperTocTimeout)}a.mouseOutSuperTocTimeout=setTimeout(function(){a.superTocSection.animate({height:30},500)},300)};this.superTocSection.mouseover(b);this.superTocSection.mouseout(c)}this.AttachEventHandlersToDialog()};ArchivesDialogController.prototype.AttachEventHandlersToEditionMetadata=function(e){var a=this;var d=function(i){i.preventDefault();var f=$(this);var h=f.attr("href");var g=f.find(".ContentItemID").html();a.OnLinkClick(h,null,g)};var b=this.editionMetadata.find("#"+e);var c=b.find("a");c.click(d)};var ShareDialogController=function(d,b,i,a,k,j,f,c,l,e){var h=null;if(d===null){h=new Error('"foundationElementID" may not be null in ShareDialogController().')}if(j===null){h=new Error('"readerText" may not be null in ShareDialogController().')}if(e===null){h=new Error('"endpointController" may not be null in ShareDialogController().')}if(h!==null){var g='An error occurred on "'+h.fileName+'" (line #'+h.lineNumber+"). "+h.message;throw new Error(g)}this.readerText=j;this.pageSetIndex=(f)?f:0;this.pageIndex=(c)?c:0;this.editionInfoArray=[];this.currentPageSetEditionInfo=null;this.endpointController=e;DialogController.call(this,d,"DigitalEditionReaderShareDialog","ShareDialog",b,i,a,k,j.ShareDialogTitle,"ShareDialog");this.emailSend=new CustomEvent("emailSend",this);this.bookmarkUrl=null;this.toEmailAddressInput=null;this.fromEmailAddressInput=null;this.emailSubjectInput=null;this.emailMessageInput=null;this.emailSendButton=null;this.lookInsideContainer=null;this.lookInsideInput=null;this.isShareDialogCurrent=false;this.firstLookInsideLoaded=false;this.LoadContents(l);this.bookmarkUrlValue=""};ShareDialogController.prototype=new DialogController();ShareDialogController.prototype.constructor=ShareDialogController;ShareDialogController.prototype.LoadContents=function(b){var a=this;this.endpointController.LoadDialogContents(this.dialogJQObject,EnuDialogType.share,function(d,e,c){if(e=="error"){a.codeError.Fire("An error occurred on Share dialog load for edition="+a.endpointController.hostEditionID+'. ResponseText="'+d+'".')}else{a.FindDialogComponents();a.Initialize();a.UpdatePageSet(a.pageSetIndex,a.pageIndex);if(a.IsOpen()){a.UpdateDialogContents()}a.AttachEventHandlersToContents()}})};ShareDialogController.prototype.FindDialogComponents=function(){this.bookmarkUrl=this.dialogJQObject.explicitFind("#BookmarkUrl");this.toEmailAddressInput=this.dialogJQObject.explicitFind("#ToEmailAddress");this.fromEmailAddressInput=this.dialogJQObject.explicitFind("#FromEmailAddress");this.emailSubjectInput=this.dialogJQObject.explicitFind("#EmailSubject");this.emailMessageInput=this.dialogJQObject.explicitFind("#EmailMessage");this.emailMessageFormatString=this.emailMessageInput.val();this.emailSendButton=this.dialogJQObject.explicitFind("#EmailSendButton");this.lookInsideContainer=this.dialogJQObject.explicitFind("#LookInsideContainer");this.lookInsideInput=this.dialogJQObject.explicitFind("#LookInsideCode");this.emailResultMessage=this.dialogJQObject.explicitFind("#EmailResultMessage");this.emailSentMessage=this.dialogJQObject.explicitFind("#EmailSentMessage");this.emailFormatErrorMessage=this.dialogJQObject.explicitFind("#EmailFormatErrorMessage");this.emailLimitErrorMessage=this.dialogJQObject.explicitFind("#EmailLimitErrorMessage");this.emailSendFailureMessage=this.dialogJQObject.explicitFind("#EmailSendFailureMessage");this.emailSendSpinner=this.dialogJQObject.explicitFind("#EmailSendSpinner");this.lookInsideColorInput=this.dialogJQObject.explicitFind("#LookInsideColorInput");this.lookInsideBorderInput=this.dialogJQObject.explicitFind("#LookInsideBorderInput");this.lookInsideCustomizeSection=this.dialogJQObject.explicitFind("#LookInsideCustomizeSection");this.lookInsideCodeSection=this.dialogJQObject.explicitFind("#LookInsideCodeSection");this.lookInsideColorPicker=this.dialogJQObject.explicitFind("#LookInsideColorPicker");this.editionMetadataList=this.dialogJQObject.explicitFind("#ShareDialogEditionMetadataList")};ShareDialogController.prototype.FindLookInsideComponents=function(){this.lookInside=this.lookInsideContainer.explicitFind("#MozaicLookInside");this.lookInsideViewPane=this.lookInsideContainer.explicitFind("#MozaicLookInsideViewPane")};ShareDialogController.prototype.Initialize=function(){this.ParseEditionMetadata();this.dialogJQObject.tabs();this.bookmarkUrlValue=this.bookmarkUrl.val();if($.browser.msie&&$.browser.version.substr(0,1)<8){this.emailResultMessage.css({display:"inline"});this.emailSendSpinner.css({display:"inline"});this.emailSendButton.css({display:"inline"});this.emailSendSpinner.hide()}this.SetCloseButtonTooltip(this.readerText.CloseButtonTooltip);var a=this;var b=function(f){f.preventDefault();var d=$(this).attr("href");var g=a.currentPageSetEditionInfo.editionUrls[a.pageIndex];var c={url:encodeURIComponent(g),title:encodeURIComponent(a.currentPageSetEditionInfo.editionName)};var e=String.extendedReplace(d,c);a.OnLinkClick(e)};this.AttachEventHandlersToDialog(b)};ShareDialogController.prototype.ParseEditionMetadata=function(){this.editionInfoArray=[];var c=this.editionMetadataList.find(".ShareDialogEditionMetadataListItem");var a=this;var b=function(){var i=$(this);var e=i.find(".EditionID").text();var j=i.find(".EditionName").text();var d=i.find(".EditionChronology").text();var h=i.find(".EditionUrls");var k=h.find(".EditionUrl");var g=[];k.each(function(){g.push($(this).text())});var f={editionID:e,editionName:j,editionChronology:d,editionUrls:g};a.editionInfoArray.push(f)};c.each(b);this.currentPageSetEditionInfo=this.editionInfoArray[this.pageSetIndex]};ShareDialogController.prototype.LoadLookInside=function(){if(this.pageSetIndex!==null){var a=this;this.lookInsideContainer.html("");this.endpointController.LoadLookInside(this.lookInsideContainer,this.currentPageSetEditionInfo.editionID,this.pageSetIndex,function(c,d,b){if(d=="error"){throw new Error("An error occurred on Share look inside load: "+c)}else{a.FindLookInsideComponents();if(!a.firstLookInsideLoaded){a.CopyLookInsideToLookInsideInput();a.AttachLookInsideToCustomization()}else{a.lookInsideViewPane.css({"background-color":a.lookInsideColorInput.val()});a.CopyLookInsideToLookInsideInput()}a.firstLookInsideLoaded=true}})}};ShareDialogController.prototype.AttachLookInsideToCustomization=function(){var c=this;var d=function(f){c.lookInsideViewPane.css({"background-color":f});c.CopyLookInsideToLookInsideInput()};var b=this.lookInsideViewPane.css("background-color");if((b!=null)&&(b.substr[0,1]!="#")){b=RGB2Hex(b)}if(b==null){b="#808080"}this.lookInsideColorInput.val(b);var e={inputElement:this.lookInsideColorInput,callback:d};this.lookInsideColorPicker.farbtastic(e);this.lookInsideColorInput.focus(function(){c.lookInsideColorPicker.show()});this.initialLookInsideBorder=this.lookInside.css("border");this.lookInsideBorderInput.attr("checked",true);var a=function(){if(c.lookInsideBorderInput.attr("checked")){c.lookInside.css({border:c.initialLookInsideBorder})}else{c.lookInside.css({border:"none"})}c.CopyLookInsideToLookInsideInput()};this.lookInsideCustomizeSection.click(a)};ShareDialogController.prototype.UpdatePageSet=function(b,a){if((this.pageSetIndex!=b)||(this.pageIndex!=a)){this.isShareDialogCurrent=false;this.pageSetIndex=b;this.pageIndex=a;this.currentPageSetEditionInfo=this.editionInfoArray[b]}};ShareDialogController.prototype.AttachEventHandlersToContents=function(){var a=this;this.open.Subscribe(a.OnOpen,this);this.emailSendButton.click(function(){a.OnSendEmailClick()});var h=function(){if(this.value==this.defaultValue){this.value="";var i=$(this);i.removeClass("InactiveText");i.addClass("ActiveText")}};var f=function(){if(this.value==this.defaultValue){var i=$(this);i.removeClass("InactiveText");i.addClass("ActiveText")}};var b=function(){if(this.value===""){this.value=this.defaultValue;var i=$(this);i.removeClass("ActiveText");i.addClass("InactiveText")}};var d=function(){$(this).select().mouseup(function(i){i.preventDefault();$(this).unbind("mouseup")})};var g=function(i){if(i.length){i.focus(h);i.blur(b)}else{throw new Error("Required input element does not exist in Share dialog.")}};var e=function(i){if(i.length){i.focus(f);i.blur(b)}else{throw new Error("Required input element does not exist in Share dialog.")}};var c=function(i){if(i.length){i.focus(d)}else{throw new Error("Look inside input does not exist in Share dialog.")}};g(this.toEmailAddressInput);g(this.fromEmailAddressInput);e(this.emailSubjectInput);e(this.emailMessageInput);this.lookInsideContainer.click(function(i){i.preventDefault()});c(this.lookInsideInput);c(this.bookmarkUrl)};ShareDialogController.prototype.OnOpen=function(){this.UpdateDialogContents()};ShareDialogController.prototype.UpdateDialogContents=function(){if(!this.isShareDialogCurrent){this.UpdateBookmarkUrl();this.UpdateEmailMessage();this.UpdateSocialNetworkingLinks();this.LoadLookInside();this.isShareDialogCurrent=true}};ShareDialogController.prototype.UpdateBookmarkUrl=function(){var a=(this.pageIndex)?this.pageIndex:0;var b=this.currentPageSetEditionInfo.editionUrls[a];this.bookmarkUrl.val(b)};ShareDialogController.prototype.UpdateEmailMessage=function(){var a=this.emailMessageFormatString.replace("{0}",this.currentPageSetEditionInfo.editionChronology);this.emailMessageInput.val(a)};ShareDialogController.prototype.UpdateSocialNetworkingLinks=function(){};ShareDialogController.prototype.OnSendEmailClick=function(){var d={toAddress:this.toEmailAddressInput.val(),fromAddress:this.fromEmailAddressInput.val(),subject:this.emailSubjectInput.val(),message:this.emailMessageInput.val()};var a=this;var c=function(e){a.emailSendSpinner.hide();if(e.incorrectFormat){a.emailFormatErrorMessage.show()}else{if(e.limitExceeded){a.emailLimitErrorMessage.show()}else{a.emailSendFailureMessage.show()}}};var b=function(e){a.emailSendSpinner.hide();if(e.sendSucceeded){a.emailSentMessage.show()}else{c(e)}};this.HideAllEmailSendMessages();this.emailSendSpinner.show();this.endpointController.SendShareEmail(this.currentPageSetEditionInfo.editionID,this.pageSetIndex,d.toAddress,d.fromAddress,d.subject,d.message,b,c);this.emailSend.Fire(d);this.OnButtonClick("EmailSend")};ShareDialogController.prototype.HideAllEmailSendMessages=function(){this.emailFormatErrorMessage.hide();this.emailLimitErrorMessage.hide();this.emailSendFailureMessage.hide();this.emailSentMessage.hide()};ShareDialogController.prototype.CopyLookInsideToLookInsideInput=function(){var a=this.lookInsideContainer.html().trim();this.lookInsideInput.val(a);this.lookInsideInput.get(0).defaultValue=a;this.lookInsideInput.blur()};var SettingsDialogController=function(d,b,h,a,j,i,c,e){var g=null;if(d===null){g=new Error('"foundationElementID" may not be null in SettingsDialogController().')}if(i===null){g=new Error('"readerText" may not be null in SettingsDialogController().')}if(c===null){g=new Error('"settings" may not be null in SettingsDialogController().')}if(e===null){g=new Error('"endpointController" may not be null in SettingsDialogController().')}if(g!==null){var f='An error occurred on "'+g.fileName+'" (line #'+g.lineNumber+"). "+g.message;throw new Error(f)}this.readerText=i;this.settings=c;this.endpointController=e;DialogController.call(this,d,"DigitalEditionReaderSettingsDialog","SettingsDialog",b,h,a,j,i.SettingsDialogTitle,"SettingsDialog");this.fitToChange=new CustomEvent("fitToChange",this);this.superZoomChange=new CustomEvent("superZoomChange",this);this.autoBookmarkChange=new CustomEvent("autoBookmarkChange",this);this.autoZoomChange=new CustomEvent("autoZoomChange",this);this.autoToolbarHideChange=new CustomEvent("autoToolbarHideChange",this);this.viewModeChange=new CustomEvent("viewModeChange",this);this.settingsSave=new CustomEvent("settingsSave",this);this.fitToRadios=null;this.superZoomCheckbox=null;this.autoBookmarkingRadios=null;this.autoZoomCheckbox=null;this.autoHideToolbarsCheckbox=null;this.singlePageViewCheckbox=null;this.cancelButton=null;this.saveButton=null;this.LoadContents()};SettingsDialogController.prototype=new DialogController();SettingsDialogController.prototype.constructor=SettingsDialogController;SettingsDialogController.prototype.LoadContents=function(){var a=this;this.endpointController.LoadDialogContents(this.dialogJQObject,EnuDialogType.settings,function(c,d,b){if(d=="error"){a.codeError.Fire("An error occurred on Settings dialog load for edition="+a.endpointController.hostEditionID+'. ResponseText="'+c+'".')}else{a.FindDialogComponents();a.Initialize();a.SetValues();a.AttachEventHandlersToContents()}})};SettingsDialogController.prototype.FindDialogComponents=function(){this.fitToRadios=this.dialogJQObject.explicitFind("input:radio[name=FitToRadio]");this.superZoomCheckbox=this.dialogJQObject.explicitFind("#SuperZoom");this.superZoomExplanation=this.dialogJQObject.explicitFind("#SuperZoomInfo");this.autoBookmarkingRadios=this.dialogJQObject.explicitFind("input:radio[name=ABRadio]");this.autoZoomCheckbox=this.dialogJQObject.explicitFind("#AutoZoom");this.autoHideToolbarsCheckbox=this.dialogJQObject.explicitFind("#AutoHideToolbar");this.singlePageViewCheckbox=this.dialogJQObject.find("#SinglePageView");this.cancelButton=this.dialogJQObject.explicitFind("#SettingsCancelButton");this.saveButton=this.dialogJQObject.explicitFind("#SettingsSaveButton")};SettingsDialogController.prototype.Initialize=function(){var a={track:true,delay:0,showBody:" - ",showURL:false};this.SetCloseButtonTooltip(this.readerText.SettingsDialogCloseButtonTooltip);this.superZoomExplanation.attr("title",this.readerText.SettingsDialogSuperZoomTooltip);this.superZoomExplanation.tooltip(a);this.AttachEventHandlersToDialog()};SettingsDialogController.prototype.SetValues=function(){this.SetFitToRadioButtons();this.SetSuperZoomCheckbox();this.SetAutoBookmarkingRadioButtons();this.SetAutoZoomCheckbox();this.SetAutoToolbarHideCheckbox();this.SetViewModeCheckbox()};SettingsDialogController.prototype.AttachEventHandlersToContents=function(){var a=this;this.close.Subscribe(a.OnClose,this);this.cancelButton.click(function(){a.OnCancelClick()});this.saveButton.click(function(){a.OnSaveClick()})};SettingsDialogController.prototype.OnCancelClick=function(){this.Close();this.OnButtonClick("Cancel")};SettingsDialogController.prototype.OnClose=function(){this.SetValues()};SettingsDialogController.prototype.OnSaveClick=function(){this.SaveValues();this.Close();this.settingsSave.Fire(this.settings);this.OnButtonClick("Save")};SettingsDialogController.prototype.SetFitToRadioButtons=function(){var a;switch(this.settings.fitDimension){case EnuFitDimension.width:a=this.fitToRadios.filter("#FitToWidthRadio");break;case EnuFitDimension.height:a=this.fitToRadios.filter("#FitToHeightRadio");break;case EnuFitDimension.screen:a=this.fitToRadios.filter("#FitToScreenRadio");break;default:throw new Error('Invalid "fitDimension" setting value: ['+this.settings.fitDimension+"]")}a.attr("checked",true);a.attr("defaultChecked",true)};SettingsDialogController.prototype.SetSuperZoomCheckbox=function(){this.superZoomCheckbox.attr("checked",this.settings.enableSuperZoom)};SettingsDialogController.prototype.SetAutoBookmarkingRadioButtons=function(){var a;switch(this.settings.autoBookmarkLocation){case EnuAutoBookmarkLocation.cover:a=this.autoBookmarkingRadios.filter("#ABCoverRadio");break;case EnuAutoBookmarkLocation.toc:a=this.autoBookmarkingRadios.filter("#ABContentsRadio");break;case EnuAutoBookmarkLocation.lastPage:a=this.autoBookmarkingRadios.filter("#ABLastPageRadio");break;default:throw new Error('Invalid "autoBookmarkLocation" setting value: ['+this.settings.autoBookmarkLocation+"]")}a.attr("checked",true);a.attr("defaultChecked",true)};SettingsDialogController.prototype.SetAutoZoomCheckbox=function(){this.autoZoomCheckbox.attr("checked",this.settings.enableAutoZoom)};SettingsDialogController.prototype.SetAutoToolbarHideCheckbox=function(){this.autoHideToolbarsCheckbox.attr("checked",this.settings.enableAutoToolbarHide)};SettingsDialogController.prototype.SetViewModeCheckbox=function(){var a=(this.settings.viewMode==EnuViewMode.SinglePage);if(this.singlePageViewCheckbox.length>0){this.singlePageViewCheckbox.attr("checked",a)}};SettingsDialogController.prototype.SaveValues=function(){this.SaveFitToValue();this.SaveSuperZoomValue();this.SaveAutoBookmarkValue();this.SaveAutoZoomValue();this.SaveAutoToolbarHideValue();this.SaveViewModeValue()};SettingsDialogController.prototype.SaveFitToValue=function(){var b=this.fitToRadios.filter(":checked").attr("id");var a=this.settings.fitDimension;switch(b){case"FitToWidthRadio":this.settings.fitDimension=EnuFitDimension.width;break;case"FitToHeightRadio":this.settings.fitDimension=EnuFitDimension.height;break;case"FitToScreenRadio":this.settings.fitDimension=EnuFitDimension.screen;break;default:throw new Error('Unknown "FitToRadio" element id found: ['+b+"]")}if(a!=this.settings.fitDimension){this.fitToChange.Fire(this.settings.fitDimension)}};SettingsDialogController.prototype.SaveSuperZoomValue=function(){var a=this.settings.enableSuperZoom;this.settings.enableSuperZoom=this.superZoomCheckbox.attr("checked");if(a!=this.settings.enableSuperZoom){this.superZoomChange.Fire(this.settings.enableSuperZoom)}};SettingsDialogController.prototype.SaveAutoBookmarkValue=function(){var a=this.autoBookmarkingRadios.filter(":checked").attr("id");var b=this.settings.autoBookmarkLocation;switch(a){case"ABCoverRadio":this.settings.autoBookmarkLocation=EnuAutoBookmarkLocation.cover;break;case"ABContentsRadio":this.settings.autoBookmarkLocation=EnuAutoBookmarkLocation.toc;break;case"ABLastPageRadio":this.settings.autoBookmarkLocation=EnuAutoBookmarkLocation.lastPage;break;default:throw new Error('Unknown "ABRadio" element ID found: ['+a+"]")}if(b!=this.settings.autoBookmarkLocation){this.autoBookmarkChange.Fire(this.settings.autoBookmarkLocation)}};SettingsDialogController.prototype.SaveAutoZoomValue=function(){var a=this.settings.enableAutoZoom;this.settings.enableAutoZoom=this.autoZoomCheckbox.attr("checked");if(a!=this.settings.enableAutoZoom){this.autoZoomChange.Fire(this.settings.enableAutoZoom)}};SettingsDialogController.prototype.SaveAutoToolbarHideValue=function(){var a=this.settings.enableAutoToolbarHide;this.settings.enableAutoToolbarHide=this.autoHideToolbarsCheckbox.attr("checked");if(a!=this.settings.enableAutoToolbarHide){this.autoToolbarHideChange.Fire(this.settings.enableAutoToolbarHide)}};SettingsDialogController.prototype.SaveViewModeValue=function(){if(this.singlePageViewCheckbox.length>0){var a=(this.settings.viewMode==EnuViewMode.SinglePage);if(this.singlePageViewCheckbox.attr("checked")){this.settings.viewMode=EnuViewMode.SinglePage}else{this.settings.viewMode=EnuViewMode.MultiplePage}if(a!=this.settings.viewMode){this.viewModeChange.Fire(this.settings.viewMode)}}};var ThumbnailsViewController=function(h,b,e,c,f,a,d,g){if(arguments.length>0){this.ThumbnailsViewControllerConstructor(h,b,e,c,f,a,d,g)}};ThumbnailsViewController.prototype=new ViewComponentController();ThumbnailsViewController.prototype.constructor=ThumbnailsViewController;ThumbnailsViewController.prototype.ThumbnailsViewControllerConstructor=function(a,c,g,e,j,b,i,d){var h=null;if(a===null){h=new Error('"id" may not be null in ThumbnailsViewController().')}if(c===null){h=new Error('"baseID" may not be null in ThumbnailsViewController().')}if(g===null){h=new Error('"pageSetMetadataArray" may not be null in ViewController().')}if(e===null){h=new Error('"pageDimensionIndex" may not be null in ThumbnailsViewController().')}if(i===null){h=new Error('"readerText" may not be null in ThumbnailsViewController().')}if(d===null){h=new Error('"endpointController" may not be null in ThumbnailsViewController().')}if(h!==null){var f='An error occurred on "'+h.fileName+'" (line #'+h.lineNumber+"). "+h.message;throw new Error(f)}ViewComponentController.call(this,a,c,"ThumbnailsView",0,0,"100%","100%");this.pageSetMetadataArray=g;this.pageDimensionIndex=e;this.thumbnailPadding=j;this.stagePadding=b;this.readerText=i;this.endpointController=d;this.thumbnailStageController=null;this.closeButton=null;this.pageSetControllerArray=[];this.BuildComponent();this.InitializeBaseCustomEvents();this.BuildStage();this.BuildCloseButton();this.MakeDraggable();this.pageClick=new CustomEvent("pageClick",this);this.pageImageLoad=new CustomEvent("pageImageLoad",this);this.pageImageError=new CustomEvent("pageImageError",this);this.closeButtonClick=new CustomEvent("closeButtonClick",this);this.stageDrag=new CustomEvent("stageDrag",this);this.endStageDrag=new CustomEvent("endStageDrag",this);this.imagesCreated=false;this.currentBorder=null;this.currentTarget=null;this.AddEventHandlers()};ThumbnailsViewController.prototype.GetComponentType=function(){return"ThumbnailsViewController"};ThumbnailsViewController.prototype.DestroyComponent=function(){this.componentJQObject.discard();this.componentJQObject=null};ThumbnailsViewController.prototype.RemoveCustomEvents=function(){delete this.mouseClick;delete this.mouseOver;delete this.mouseOut;delete this.componentLoad;delete this.componentLoadError;delete this.pageClick;delete this.pageImageLoad;delete this.pageImageError};ThumbnailsViewController.prototype.ListenToChildren=function(){var b=this;var f=function(i){if(!this.componentJQObject.wasDragStarted()){b.pageClick.Fire(i.paramObject)}};var h=function(i){b.SelectPageSet(i.paramObject.id)};var e=function(i){b.DeselectPageSet()};var g=function(i){b.pageImageLoad.Fire(i.paramObject)};var d=function(i){b.pageImageError.Fire(i.paramObject)};var a=function(i){b.CheckAllComponentsLoaded()};for(var c=0;c<this.pageSetControllerArray.length;c++){this.pageSetControllerArray[c].pageClick.Subscribe(f,this);this.pageSetControllerArray[c].labelClick.Subscribe(f,this);this.pageSetControllerArray[c].mouseOver.Subscribe(h,this);this.pageSetControllerArray[c].mouseOut.Subscribe(e,this);this.pageSetControllerArray[c].pageImageLoad.Subscribe(g,this);this.pageSetControllerArray[c].pageImageError.Subscribe(d,this);this.pageSetControllerArray[c].componentLoad.Subscribe(a,this)}};ThumbnailsViewController.prototype.BuildStage=function(){this.thumbnailStageController=new ViewComponentController(0,this.baseID,"ThumbnailStage",0,0,"100%","100%");this.thumbnailStageController.BuildComponent();this.thumbnailStageController.InitializeBaseCustomEvents();this.thumbnailStageController.AppendToElement(this.componentJQObject)};ThumbnailsViewController.prototype.BuildCloseButton=function(){this.closeButton=new ViewComponentController(0,this.baseID,"ThumbnailCloseIcon",null,null,null,null);this.closeButton.BuildComponent();this.closeButton.InitializeBaseCustomEvents();this.closeButton.AppendToElement(this.componentJQObject);this.closeButton.AddTooltip(this.readerText.ThumbnailsCloseButtonTooltip)};ThumbnailsViewController.prototype.MakeDraggable=function(){var a={dragDelay:5};this.componentJQObject.dragscroll(a).addClass("Draggable")};ThumbnailsViewController.prototype.AddPages=function(){for(var a=0;a<this.pageSetMetadataArray.length;a++){var b=new ThumbnailPageSetController(this.pageSetMetadataArray[a].index,this.baseID,this.pageSetMetadataArray[a],this.pageDimensionIndex,30,this.endpointController);this.pageSetControllerArray.push(b);this.pageSetControllerArray[a].AppendToElement(this.thumbnailStageController.componentJQObject);this.pageSetControllerArray[a].AddTooltipsToPages()}this.ListenToChildren();this.PositionPageSets()};ThumbnailsViewController.prototype.CreateImages=function(b){if(!this.imagesCreated){if(!b||(b>this.pageSetControllerArray.length)){b=this.pageSetControllerArray.length}for(var a=0;a<b;a++){this.pageSetControllerArray[a].CreateImages()}if(b==this.pageSetControllerArray.length){this.imagesCreated=true}}};ThumbnailsViewController.prototype.RemoveImages=function(){for(var a=0;a<this.pageSetControllerArray.length;a++){this.pageSetControllerArray[a].RemoveImages()}this.imagesCreated=false};ThumbnailsViewController.prototype.RemovePages=function(){for(var a=0;a<this.pageSetControllerArray.length;a++){this.pageSetControllerArray[a].DestroyComponent();delete this.pageSetControllerArray[a]}this.pageSetControllerArray=[];this.imagesCreated=false};ThumbnailsViewController.prototype.UpdatePages=function(){this.RemovePages();this.AddPages();this.CreateImages()};ThumbnailsViewController.prototype.PositionPageSets=function(){var o=this.Width();var n=0;var l=this.stagePadding;var b=this.stagePadding;var a=0;var c=[];var m=[];var d=function(i,k,j){this.index=i;this.left=k;this.top=j};var p=[];var q=0;for(var g=0;g<this.pageSetControllerArray.length;g++){if((b+this.pageSetControllerArray[g].width)>o){q=o-(b-this.thumbnailPadding)-this.stagePadding;b=this.stagePadding;l+=a+this.thumbnailPadding;a=0;c.push(m);m=[];p.push(q/2)}m.push(new d(g,b,l));b+=this.pageSetControllerArray[g].width+this.thumbnailPadding;if(a<this.pageSetControllerArray[g].HeightWithLabel()){a=this.pageSetControllerArray[g].HeightWithLabel()}}q=o-(b-this.thumbnailPadding)-this.stagePadding;p.push(q/2);c.push(m);n=l+a+this.stagePadding;this.thumbnailStageController.Height(n);for(var f=0;f<c.length;f++){m=c[f];for(var e=0;e<m.length;e++){var h=m[e];this.pageSetControllerArray[h.index].Left(h.left+p[f]);this.pageSetControllerArray[h.index].Top(h.top)}}};ThumbnailsViewController.prototype.AddEventHandlers=function(){var a=this;var b=function(){a.closeButtonClick.Fire({buttonName:"Close",uiComponent:"ThumbnailsView"})};this.closeButton.componentJQObject.click(b);this.componentJQObject.mousedown(function(){a.ChangeCursorClass("Dragging")});this.componentJQObject.mouseup(function(){a.ChangeCursorClass("Draggable")})};ThumbnailsViewController.prototype.ChangeCursorClass=function(a){switch(a.toLowerCase()){case"default":this.componentJQObject.removeClass("Draggable");this.componentJQObject.removeClass("Dragging");break;case"draggable":this.componentJQObject.addClass("Draggable");this.componentJQObject.removeClass("Dragging");if(this.pageSetController){this.pageSetController.ChangeCursorClass("Default")}this.pageSetCursorClass="Default";break;case"dragging":this.componentJQObject.addClass("Dragging");this.componentJQObject.removeClass("Draggable");break;default:this.componentJQObject.removeClass("Draggable");this.componentJQObject.removeClass("Dragging");break}};ThumbnailsViewController.prototype.TargetPageSet=function(a){var b=null;if(this.pageSetControllerArray[a]){b=this.pageSetControllerArray[a].componentJQObject;if(this.currentTarget!=b){this.DetargetPageSet();this.currentTarget=b;this.currentTarget.addDivToElement(this.id+"CurrentThumbnailBorder","CurrentThumbnailBorder")}}else{this.DetargetPageSet()}};ThumbnailsViewController.prototype.DetargetPageSet=function(){if(this.currentTarget!==null){this.currentTarget.removeDivFromElement(this.id+"CurrentThumbnailBorder")}};ThumbnailsViewController.prototype.SelectPageSet=function(a){var b=null;if(this.pageSetControllerArray[a]){b=this.pageSetControllerArray[a].componentJQObject;if(this.selectedTarget!=b){this.DeselectPageSet();this.selectedTarget=b;this.selectedTarget.addDivToElement(this.id+"SelectedThumbnailBorder","SelectedThumbnailBorder")}}else{this.DeselectPageSet()}};ThumbnailsViewController.prototype.DeselectPageSet=function(){if(this.selectedTarget){this.selectedTarget.removeDivFromElement(this.id+"SelectedThumbnailBorder")}};ThumbnailsViewController.prototype.Summon=function(a){this.Show();this.TargetPageSet(a);this.PositionStageOnPageSet(a);this.CreateImages()};ThumbnailsViewController.prototype.Dismiss=function(){this.Hide();this.DeselectPageSet()};ThumbnailsViewController.prototype.PositionStageOnPageSet=function(b){var c=this.pageSetControllerArray[b];if(c){var e=this.Width();var a=this.Height();var f=c.left+c.width/2-e/2;var d=c.top+c.height/2-a/2;this.Scroll(f,d)}};var ThumbnailPageSetController=function(h,b,a,e,g,f){if(arguments.length>0){var d=null;if(h===null){d=new Error('"id" may not be null in ThumbnailPageSetController().')}if(b===null){d=new Error('"baseID" may not be null in ThumbnailPageSetController().')}if(a===null){d=new Error('"pageSetMetadata" may not be null in ThumbnailPageSetController().')}if(e===null){d=new Error('"pageDimensionIndex" may not be null in ThumbnailPageSetController().')}if(g===null){d=new Error('"labelHeight" may not be null in ThumbnailPageSetController().')}if(f===null){d=new Error('"endpointController" may not be null in ThumbnailPageSetController().')}if(d!==null){var c='An error occurred on "'+d.fileName+'" (line #'+d.lineNumber+"). "+d.message;throw new Error(c)}}PageSetController.call(this,h,b+"Thumbnail",a,e,null,false,false,false,false,f);this.labelClick=new CustomEvent("labelClick",this);this.labelJQObject=null;this.labelHeight=g;this.CreateLabel();this.ListenToLabel()};ThumbnailPageSetController.prototype=new PageSetController();ThumbnailPageSetController.prototype.constructor=ThumbnailPageSetController;ThumbnailPageSetController.prototype.CreateLabel=function(){var a=this.pageSetMetadata.label;if(a.length>15){a=a.slice(0,12)+"..."}this.labelJQObject=$(document.createElement("div")).attr("id",this.baseID+"ThumbnailPageSetLabel"+this.id).addClass("ThumbnailPageSetLabel").html(a);this.componentJQObject.append(this.labelJQObject)};ThumbnailPageSetController.prototype.HeightWithLabel=function(){return this.height+this.labelHeight};ThumbnailPageSetController.prototype.ListenToLabel=function(){var a=this;this.labelJQObject.click(function(){var b={pageSet:a};a.labelClick.Fire(b)})};var BlowInController=function(g,f,e,b,a){var d=null;if(g===null){d=new Error('"foundationElementID" may not be null in BlowInController().')}if(f===null){d=new Error('"blowInMetadataArray" may not be null in BlowInController().')}if(e===null){d=new Error('"readerText" may not be null in BlowInController().')}if(b===null){d=new Error('"endpointsController" may not be null in BlowInController().')}if(a===null){d=new Error('"clientStorage" may not be null in BlowInController().')}if(d!==null){var c='An error occurred on "'+d.fileName+'" (line #'+d.lineNumber+"). "+d.message;throw new Error(c)}this.foundationElement=g;this.blowInMetadataArray=f;this.readerText=e;this.endpointsController=b;this.clientStorage=a;this.blowInOpen=new CustomEvent("blowInOpen",this);this.blowInClose=new CustomEvent("blowInClose",this);this.linkClick=new CustomEvent("linkClick",this);this.mediaEvent=new CustomEvent("mediaEvent",this);this.blowIns=[];this.Initialize()};BlowInController.prototype.Initialize=function(){this.CreateBlowIns();this.AttachEventHandlers()};BlowInController.prototype.CreateBlowIns=function(){for(var a=0;a<this.blowInMetadataArray.length;a++){var b=new BlowInDialogController(this.foundationElement,this.blowInMetadataArray[a],this.readerText,this.endpointsController);b.pageChangeCounter=0;this.blowIns.push(b)}};BlowInController.prototype.AttachEventHandlers=function(){var a=this;var f=function(g){a.OnBlowInLinkClick(g.scope);a.linkClick.Fire(g.paramObject)};var d=function(g){a.OnBlowInClose(g.scope);a.blowInClose.Fire(g.scope.blowInMetadata.id)};var e=function(g){a.blowInOpen.Fire(g.scope.blowInMetadata.id)};var c=function(g){a.mediaEvent.Fire(g.paramObject)};for(var b=0;b<this.blowIns.length;b++){this.blowIns[b].open.Subscribe(e,this);this.blowIns[b].close.Subscribe(d,this);this.blowIns[b].linkClick.Subscribe(f,this);this.blowIns[b].mediaEvent.Subscribe(c,this)}};BlowInController.prototype.OnBlowInClose=function(a){if(!a.blowInMetadata.reappearIfDismissed){this.DisableBlowIn(a)}};BlowInController.prototype.OnBlowInLinkClick=function(a){if(!a.blowInMetadata.reappearIfUsed){this.DisableBlowIn(a)}};BlowInController.prototype.OnPageChange=function(a){this.IncrementBlowInPageChangeCounters();var b=this.DetermineBlowInsAppearanceFromPageIDs(a);if(b===null){b=this.DetermineBlowInsAppearanceFromCounters()}if(b!==null){this.ShowBlowIn(b)}};BlowInController.prototype.DetermineBlowInsAppearanceFromCounters=function(){var b=null;for(var a=0;a<this.blowIns.length;a++){if((this.blowIns[a].blowInMetadata.appearEveryNPages>0)&&(this.blowIns[a].pageChangeCounter>=this.blowIns[a].blowInMetadata.appearEveryNPages)){if(this.IsShowable(this.blowIns[a])){b=a}}}return b};BlowInController.prototype.DetermineBlowInsAppearanceFromPageIDs=function(f){var e=null;for(var d=0;d<this.blowIns.length;d++){var g=this.blowIns[d];if(this.IsShowable(g)){for(var c=0;c<f.length;c++){var a=f[c];for(var b=0;b<g.blowInMetadata.appearOnPageIDArray.length;b++){if(a==g.blowInMetadata.appearOnPageIDArray[b]){e=d}}}}}return e};BlowInController.prototype.IncrementBlowInPageChangeCounters=function(){for(var a=0;a<this.blowIns.length;a++){this.blowIns[a].pageChangeCounter++}};BlowInController.prototype.ShowBlowIn=function(b){var c=this.blowIns[b];if(c.blowInMetadata.appearMaxOfNTimes>c.numberOfAppearances){this.CloseAllBlowIns();c.Open();if(!c.blowInMetadata.obscureReader){$(".ui-widget-overlay").addClass("TransparentOverlay")}c.pageChangeCounter=0;var a=this;setTimeout(function(){a.blowIns[b].Position()},500);c.numberOfAppearances++}else{this.DisableBlowIn(c)}};BlowInController.prototype.CloseAllBlowIns=function(){for(var a=0;a<this.blowIns.length;a++){this.blowIns[a].Close()}};BlowInController.prototype.IsShowable=function(b){var a=this.clientStorage.RetrieveSessionState();return !a.BlowInDisabled(b.blowInMetadata.id)&&b.showable};BlowInController.prototype.DisableBlowIn=function(b){b.showable=false;var a=this.clientStorage.RetrieveSessionState();a.AddDisabledBlowIn(b.blowInMetadata.id);this.clientStorage.SaveSessionState(a)};BlowInController.prototype.BlowInOpen=function(){var b=false;for(var a=0;a<this.blowIns.length;a++){if(this.blowIns[a].IsOpen()){b=true;break}}return b};var ToolbarController=function(d,b,j,f,c,i,a,h,k){var g=null;if(d===null){g=new Error('"foundationElementID" may not be null in ToolbarController().')}if(b===null){g=new Error('"zoomLevels" may not be null in ToolbarController().')}if(j===null){g=new Error('"readerText" may not be null in ToolbarController().')}if(f===null){g=new Error('"dialogContentsEndpointController" may not be null in ToolbarController().')}if(c===null){g=new Error('"userSettings" may not be null in ToolbarController().')}if(i===null){g=new Error('"leftPublicationImageUrl" may not be null in ToolbarController().')}if(a===null){g=new Error('"rightPublicationImageUrl" may not be null in ToolbarController().')}if(h===null){g=new Error('"featureSettings" may not be null in ToolbarController().')}if(k===null){g=new Error('"userHasFullAccess" may not be null in ToolbarController().')}if(g!==null){var e='An error occurred on "'+g.fileName+'" (line #'+g.lineNumber+"). "+g.message;throw new Error(e)}this.foundationElementID=d;this.zoomLevels=b;this.readerText=j;this.dialogContentsEndpointController=f;this.userSettings=c;this.publicationImageLeftUrl=i;this.publicationImageRightUrl=a;this.featureSettings=h;this.userHasFullAccess=k;this.id=d+"Toolbar";this.toolbarJQObject=$(document.createElement("div")).attr("id",this.id);this.leftSidebarID=d+"LeftSidebar";this.rightSidebarID=d+"RightSidebar";this.leftSidebarJQObject=$(document.createElement("div")).attr("id",this.leftSidebarID).addClass(d+"Sidebar");this.rightSidebarJQObject=$(document.createElement("div")).attr("id",this.rightSidebarID).addClass(d+"Sidebar");this.publicationButtonLeftClick=new CustomEvent("publicationButtonLeftClick",this);this.tocClick=new CustomEvent("tocClick",this);this.searchClick=new CustomEvent("searchClick",this);this.shareClick=new CustomEvent("shareClick",this);this.archivesClick=new CustomEvent("archivesClick",this);this.settingsClick=new CustomEvent("settingsClick",this);this.thumbnailsClick=new CustomEvent("thumbnailsClick",this);this.zoomClick=new CustomEvent("zoomClick",this);this.nextPageClick=new CustomEvent("nextPageClick",this);this.previousPageClick=new CustomEvent("previousPageClick",this);this.publicationButtonRightClick=new CustomEvent("publicationButtonRightClick",this);this.zoomSliderChange=new CustomEvent("zoomSliderChange",this);this.firstPageClick=new CustomEvent("firstPageClick",this);this.lastPageClick=new CustomEvent("lastPageClick",this);this.printDialogClick=new CustomEvent("printDialogClick",this);this.printPageSetClick=new CustomEvent("printPageSetClick",this);this.printEditionClick=new CustomEvent("printEditionClick",this);this.helpClick=new CustomEvent("helpClick",this);this.dialogOpen=new CustomEvent("dialogOpen",this);this.dialogClose=new CustomEvent("dialogClose",this);this.dialogButtonClick=new CustomEvent("dialogButtonClick",this);this.fitToSettingChange=new CustomEvent("fitToSettingChange",this);this.superZoomSettingChange=new CustomEvent("superZoomSettingChange",this);this.autoBookmarkSettingChange=new CustomEvent("automBookmarkSettingChange",this);this.autoZoomSettingChange=new CustomEvent("autoZoomSettingChange",this);this.autoToolbarHideSettingChange=new CustomEvent("autoToolbarHideSettingChange",this);this.viewModeChange=new CustomEvent("viewModeChange",this);this.settingsSave=new CustomEvent("settingsSave",this);this.shareEmailSend=new CustomEvent("shareEmailSend",this);this.archivesSelectedCoverChange=new CustomEvent("archivesSelectedCoverChange",this);this.linkClick=new CustomEvent("linkClick",this);this.codeError=new CustomEvent("codeError",this);this.settingsDialogController=null;this.shareDialogController=null;this.archivesDialogController=null;this.searchDialogController=null;this.tocDialogController=null;this.printDialogController=null;this.dialogArray=[];this.section0JQObject=null;this.section1JQObject=null;this.section2JQObject=null;this.publicationButtonLeft=null;this.tocButtonJQObject=null;this.thumbnailsButtonJQObject=null;this.zoomButtonJQObject=null;this.searchButtonJQObject=null;this.shareButtonJQObject=null;this.archivesButtonJQObject=null;this.settingsButtonJQObject=null;this.nextPageButtonJQObject=null;this.previousPageButtonJQObject=null;this.publicationButtonRight=null;this.leftSidebarPreviousPageButtonJQObject=null;this.leftSidebarNextPageButtonJQObject=null;this.leftSidebarFirstPageButtonJQObject=null;this.leftSidebarLastPageButtonJQObject=null;this.rightSidebarNextPageButtonJQObject=null;this.rightSidebarPreviousPageButtonJQObject=null;this.rightSidebarLastPageButtonJQObject=null;this.rightSidebarFirstPageButtonJQObject=null;this.leftSidebarPreviousPageIconJQObject=null;this.leftSidebarNextPageIconJQObject=null;this.leftSidebarFirstPageIconJQObject=null;this.leftSidebarLastPageIconJQObject=null;this.rightSidebarNextPageIconJQObject=null;this.rightSidebarPreviousPageIconJQObject=null;this.rightSidebarFirstPageIconJQObject=null;this.rightSidebarLastPageIconJQObject=null;this.zoomSizeJQObject=null;this.zoomSliderHidden=true;this.zoomInButtonDisplayed=true;this.AddGui();this.AddEventHandlers();this.slideHideTimeout=null;this.toolbarIsHidden=false;this.leftSidebarSlideHideTimeout=null;this.leftSidebarIsHidden=false;this.rightSidebarSlideHideTimeout=null;this.rightSidebarIsHidden=false;this.allowMainToolbarDynamicHide=true;this.allowMainToolbarShow=true;this.allowSidebarDynamicHide=true;this.allowSidebarShow=true;this.autoHideOn=this.userSettings.enableAutoToolbarHide;this.hideDelay=1000;this.mainToolbarHeight=null;this.leftSidebarWidth=null;this.rightSidebarWidth=null;this.currentPageSetIndex=0;this.currentPageIndex=0};ToolbarController.prototype.CreateDialogs=function(e){var d=800;var c="auto";var a="center";var b=this.Height();this.settingsDialogController=new SettingsDialogController(this.foundationElementID,a,b,d,c,this.readerText,this.userSettings,this.dialogContentsEndpointController);this.shareDialogController=new ShareDialogController(this.foundationElementID,a,b,d,c,this.readerText,this.currentPageSetIndex,this.currentPageIndex,e,this.dialogContentsEndpointController);this.archivesDialogController=new ArchivesDialogController(this.foundationElementID,a,b,d,c,this.readerText,this.dialogContentsEndpointController);this.searchDialogController=new SearchDialogController(this.foundationElementID,a,b,d,c,this.readerText,this.dialogContentsEndpointController);this.tocDialogController=new TocDialogController(this.foundationElementID,a,b,d,c,this.readerText,this.dialogContentsEndpointController);this.printDialogController=new PrintDialogController(this.foundationElementID,this.readerText);this.dialogArray.push(this.settingsDialogController);this.dialogArray.push(this.shareDialogController);this.dialogArray.push(this.archivesDialogController);this.dialogArray.push(this.searchDialogController);this.dialogArray.push(this.tocDialogController);this.dialogArray.push(this.printDialogController);this.ListenToDialogs()};ToolbarController.prototype.UpdateSharePageSet=function(b,a){this.currentPageSetIndex=b;this.currentPageIndex=a;if(this.shareDialogController!==null){this.shareDialogController.UpdatePageSet(b,a)}};ToolbarController.prototype.ListenToDialogs=function(){this.ListenToSettingsDialog();this.ListenToShareDialog();this.ListenToArchivesDialog();this.ListenToPrintDialog();var b=this;var a=function(f){b.FireButtonClickEvent(b.dialogButtonClick,f.paramObject.buttonName,f.paramObject.uiComponent)};var e=function(f){b.linkClick.Fire(f.paramObject)};var c=function(f){b.codeError.Fire(f.paramObject)};for(var d=0;d<this.dialogArray.length;d++){this.dialogArray[d].buttonClick.Subscribe(a,this);this.dialogArray[d].linkClick.Subscribe(e,this);this.dialogArray[d].close.Subscribe(b.OnDialogClose,this);this.dialogArray[d].codeError.Subscribe(c,this)}};ToolbarController.prototype.ListenToSettingsDialog=function(){var a=this;this.settingsDialogController.settingsSave.Subscribe(function(b){a.settingsSave.Fire(b.paramObject)},this);this.settingsDialogController.fitToChange.Subscribe(function(b){a.fitToSettingChange.Fire(b.paramObject)},this);this.settingsDialogController.superZoomChange.Subscribe(function(b){a.superZoomSettingChange.Fire(b.paramObject)},this);this.settingsDialogController.autoBookmarkChange.Subscribe(function(b){a.autoBookmarkSettingChange.Fire(b.paramObject)},this);this.settingsDialogController.autoZoomChange.Subscribe(function(b){a.autoZoomSettingChange.Fire(b.paramObject)},this);this.settingsDialogController.autoToolbarHideChange.Subscribe(a.OnAutoToolbarHideChange,this);this.settingsDialogController.viewModeChange.Subscribe(function(b){a.viewModeChange.Fire(b.paramObject)},this)};ToolbarController.prototype.ListenToShareDialog=function(){var a=this;this.shareDialogController.emailSend.Subscribe(a.OnShareEmailSend,this)};ToolbarController.prototype.ListenToArchivesDialog=function(){var a=this;this.archivesDialogController.selectedCoverChange.Subscribe(a.OnArchivesSelectedCoverChange,this)};ToolbarController.prototype.ListenToPrintDialog=function(){var a=this;this.printDialogController.printPageSetClick.Subscribe(function(b){a.FireButtonClickEvent(a.printPageSetClick,"PrintPageSet","PrintDialog")},this);this.printDialogController.printEditionClick.Subscribe(function(b){a.FireButtonClickEvent(a.printEditionClick,"PrintEdition","PrintDialog")},this)};ToolbarController.prototype.OnArchivesSelectedCoverChange=function(a){this.archivesSelectedCoverChange.Fire(a.paramObject)};ToolbarController.prototype.OnShareEmailSend=function(a){this.shareEmailSend.Fire(a.paramObject)};ToolbarController.prototype.OnDialogClose=function(a){this.popupInView=false;this.dialogClose.Fire()};ToolbarController.prototype.OnAutoToolbarHideChange=function(a){this.autoHideOn=a.paramObject;if(!this.allowSidebarDynamicHide){if(!this.autoHideOn){this.LeftSidebarShow();this.RightSidebarShow();this.SlideShowLeftSidebar();this.SlideShowRightSidebar()}}this.SlideShow();this.SlideShowLeftSidebar();this.SlideShowRightSidebar();this.autoToolbarHideSettingChange.Fire(this.autoHideOn)};ToolbarController.prototype.CloseAllDialogs=function(){for(var a=0;a<this.dialogArray.length;a++){this.dialogArray[a].Close()}};ToolbarController.prototype.CenterDialogs=function(){for(var a=0;a<this.dialogArray.length;a++){if(this.dialogArray[a].type=="PrintDialog"){this.PositionPrintDialog()}else{this.dialogArray[a].Center()}}};ToolbarController.prototype.PositionPrintDialog=function(){var a=this.printButtonJQObject.position().left+($("#"+this.foundationElementID).width()-this.section1JQObject.width()-this.printDialogController.width+this.printButtonJQObject.width())/2;this.printDialogController.Position(a,this.Height()+7)};ToolbarController.prototype.Destroy=function(){this.toolbarJQObject.discard();this.toolbarJQObject=null};ToolbarController.prototype.AddGui=function(){this.AddSection0();this.AddSection1();this.AddSection2();this.AddSection3();this.AddLeftSidebarSections();this.AddRightSidebarSections()};ToolbarController.prototype.AddTooltip=function(b,c,a){b.attr("title",c);if(!a){a={track:true,delay:500,showBody:" - ",showURL:false}}b.tooltip(a)};ToolbarController.prototype.AddSection=function(b,a,e,c){if(!c){c=this.toolbarJQObject}if(!a){a=""}var d=$(document.createElement("div")).attr("id",this.id+b).addClass(a);if(e){this.AddTooltip(d,e)}c.append(d);return d};ToolbarController.prototype.AddImage=function(a,b,f,c,e){if(!c){c=this.toolbarJQObject}if(!b){b=""}var d=$(document.createElement("img")).attr("id",this.id+a).addClass(b).attr("src",e);if(f){this.AddTooltip(d,f)}c.append(d);return d};ToolbarController.prototype.AddSection0=function(){this.section0JQObject=this.AddSection("Section0","ToolbarSection");this.section0InnerJQObject=this.AddSection("Section0Inner","ToolbarColumnLayout",null,this.section0JQObject);this.publicationButtonLeft=this.AddImage("PublicationImageLeft","PublicationImageLeft",this.readerText.ToolbarButtonLeftTooltip,this.section0InnerJQObject,this.publicationImageLeftUrl)};ToolbarController.prototype.AddToolbarButton=function(d,c,h,f,g){var e=(g)?"ToolbarGui":"ToolbarGui DisabledToolbarGui";var b=(g)?"Clickable":"";var a=(g)?h:this.readerText.DisabledButtonTooltipText;return this.AddSection(d,c+" "+e+" "+b,a,f)};ToolbarController.prototype.AddSection1=function(){this.section1JQObject=this.AddSection("Section1","ToolbarSection");this.nextPageButtonJQObject=this.AddToolbarButton("NextPageIcon","NextPageIcon",this.readerText.NextPageButtonTooltip,this.section1JQObject,true);this.previousPageButtonJQObject=this.AddToolbarButton("PreviousPageIcon","PreviousPageIcon",this.readerText.PreviousPageButtonTooltip,this.section1JQObject,true);this.zoomButtonJQObject=this.AddToolbarButton("ZoomIcon","ZoomInIcon",this.readerText.ZoomInButtonTooltip,this.section1JQObject,true);this.tocButtonJQObject=this.AddToolbarButton("TocIcon","TocIcon",this.readerText.TableOfContentsButtonTooltip,this.section1JQObject,this.featureSettings.enableDigitalContents);this.thumbnailsButtonJQObject=this.AddToolbarButton("ThumbnailsIcon","ThumbnailsIcon",this.readerText.ThumbnailsButtonTooltip,this.section1JQObject,this.featureSettings.enableThumbnails);this.searchButtonJQObject=this.AddToolbarButton("SearchIcon","SearchIcon",this.readerText.SearchButtonTooltip,this.section1JQObject,this.featureSettings.enableSearch);this.shareButtonJQObject=this.AddToolbarButton("ShareIcon","ShareIcon",this.readerText.ShareButtonTooltip,this.section1JQObject,this.featureSettings.shareSettings.enabled);this.archivesButtonJQObject=this.AddToolbarButton("ArchivesIcon","ArchivesIcon",this.readerText.ArchivesButtonTooltip,this.section1JQObject,this.featureSettings.enableArchives);this.settingsButtonJQObject=this.AddToolbarButton("SettingsIcon","SettingsIcon",this.readerText.SettingsButtonTooltip,this.section1JQObject,this.featureSettings.enableUserSettings);var a=this.userHasFullAccess&&this.featureSettings.enablePrint;this.printButtonJQObject=this.AddToolbarButton("PrintIcon","PrintIcon",this.readerText.PrintButtonTooltip,this.section1JQObject,a);this.helpButtonJQObject=this.AddToolbarButton("HelpIcon","HelpIcon",this.readerText.HelpButtonTooltip,this.section1JQObject,this.featureSettings.enableFeedbackForm)};ToolbarController.prototype.EnablePrint=function(){this.printButtonJQObject.remove();this.printButtonJQObject=this.AddToolbarButton("PrintIcon","PrintIcon",this.readerText.PrintButtonTooltip,this.section1JQObject,true);this.AttachHandlersToPrintButton()};ToolbarController.prototype.AddSection2=function(){this.section2JQObject=this.AddSection("Section2","ToolbarSection");this.section2InnerJQObject=this.AddSection("Section2Inner","ToolbarColumnLayout",null,this.section2JQObject);this.publicationButtonRight=this.AddImage("PublicationImageRight","PublicationImageRight",this.readerText.ToolbarButtonRightTooltip,this.section2InnerJQObject,this.publicationImageRightUrl)};ToolbarController.prototype.AddSection3=function(){this.section3JQObject=this.AddSection("Section3","ToolbarSection");var a=this;var c=function(d){a.zoomSliderChange.Fire(d)};var b={optionIDBase:"ZoomOption",optionClass:"ZoomOption",selectedOptionClass:"SelectedZoomOption",numberOfOptions:3,defaultOption:0,optionSelectCallback:c};this.zoomSizeJQObject=this.AddSection("ZoomSizeOptions","ZoomSizeOptions",this.readerText.ZoomSliderTooltip,this.section3JQObject);this.zoomSizeJQObject.OptionButtons(b);$("."+b.optionClass).addClass("Clickable");this.section3JQObject.hide()};ToolbarController.prototype.AddLeftSidebarSections=function(){this.leftSidebarFirstPageButtonJQObject=this.AddSection("LeftSidebarFirstPageSection","LeftSidebarSection LeftSidebarSection1",this.readerText.FirstPageButtonTooltip,this.leftSidebarJQObject);this.leftSidebarPreviousPageButtonJQObject=this.AddSection("LeftSidebarPreviousPageSection","LeftSidebarSection LeftSidebarSection2",this.readerText.PreviousPageButtonTooltip,this.leftSidebarJQObject);this.leftSidebarNextPageButtonJQObject=this.AddSection("LeftSidebarNextPageSection","LeftSidebarSection LeftSidebarSection3",this.readerText.NextPageButtonTooltip,this.leftSidebarJQObject);this.leftSidebarLastPageButtonJQObject=this.AddSection("LeftSidebarLastPageSection","LeftSidebarSection LeftSidebarSection4",this.readerText.LastPageButtonTooltip,this.leftSidebarJQObject);this.leftSidebarFirstPageIconJQObject=this.AddSection("LeftSidebarFirstPageIcon","LeftSidebarIcon LeftSidebarFirstPageIcon",null,this.leftSidebarFirstPageButtonJQObject);this.leftSidebarPreviousPageIconJQObject=this.AddSection("LeftSidebarPreviousPageIcon","LeftSidebarIcon LeftSidebarPreviousPageIcon",null,this.leftSidebarPreviousPageButtonJQObject);this.leftSidebarNextPageIconJQObject=this.AddSection("LeftSidebarNextPageIcon","LeftSidebarIcon LeftSidebarNextPageIcon",null,this.leftSidebarNextPageButtonJQObject);this.leftSidebarLastPageIconJQObject=this.AddSection("LeftSidebarLastPageIcon","LeftSidebarIcon LeftSidebarLastPageIcon",null,this.leftSidebarLastPageButtonJQObject)};ToolbarController.prototype.AddRightSidebarSections=function(){this.rightSidebarLastPageButtonJQObject=this.AddSection("RightSidebarLastPageSection","RightSidebarSection RightSidebarSection1",this.readerText.LastPageButtonTooltip,this.rightSidebarJQObject);this.rightSidebarNextPageButtonJQObject=this.AddSection("RightSidebarNextPageSection","RightSidebarSection RightSidebarSection2",this.readerText.NextPageButtonTooltip,this.rightSidebarJQObject);this.rightSidebarPreviousPageButtonJQObject=this.AddSection("RightSidebarPreviousPageSection","RightSidebarSection RightSidebarSection3",this.readerText.PreviousPageButtonTooltip,this.rightSidebarJQObject);this.rightSidebarFirstPageButtonJQObject=this.AddSection("RightSidebarFirstPageSection","RightSidebarSection RightSidebarSection4",this.readerText.FirstPageButtonTooltip,this.rightSidebarJQObject);this.rightSidebarLastPageIconJQObject=this.AddSection("RightSidebarLastPageIcon","RightSidebarIcon RightSidebarLastPageIcon",null,this.rightSidebarLastPageButtonJQObject);this.rightSidebarNextPageIconJQObject=this.AddSection("RightSidebarNextPageIcon","RightSidebarIcon RightSidebarNextPageIcon",null,this.rightSidebarNextPageButtonJQObject);this.rightSidebarPreviousPageIconJQObject=this.AddSection("RightSidebarPreviousPageIcon","RightSidebarIcon RightSidebarPreviousPageIcon",null,this.rightSidebarPreviousPageButtonJQObject);this.rightSidebarFirstPageIconJQObject=this.AddSection("RightSidebarFirstPageIcon","RightSidebarIcon RightSidebarFirstPageIcon",null,this.rightSidebarFirstPageButtonJQObject)};ToolbarController.prototype.ToggleZoomButton=function(){if(this.zoomInButtonDisplayed){this.zoomButtonJQObject.addClass("ZoomOutIcon");this.zoomButtonJQObject.removeClass("ZoomInIcon");this.AddTooltip(this.zoomButtonJQObject,this.readerText.ZoomOutButtonTooltip)}else{this.zoomButtonJQObject.addClass("ZoomInIcon");this.zoomButtonJQObject.removeClass("ZoomOutIcon");this.AddTooltip(this.zoomButtonJQObject,this.readerText.ZoomInButtonTooltip)}this.zoomInButtonDisplayed=!this.zoomInButtonDisplayed};ToolbarController.prototype.ToggleZoomSlider=function(){if(this.zoomSliderHidden){if(!this.zoomSliderHasNoOptions){this.ShowZoomSlider("fast")}}else{this.HideZoomSlider("fast")}};ToolbarController.prototype.HideZoomSlider=function(a){if(a){this.section3JQObject.fadeOut(a)}else{this.section3JQObject.hide()}this.zoomSliderHidden=true};ToolbarController.prototype.ShowZoomSlider=function(a){if(a){this.section3JQObject.fadeIn(a)}else{this.section3JQObject.show()}this.zoomSliderHidden=false};ToolbarController.prototype.SetZoomSliderLevels=function(a,c){var d=0;var f=0;for(var b=0;b<this.zoomLevels.length;b++){if(this.zoomLevels[b]==c){f=b;break}}if(a>this.zoomLevels[0]){for(var b=0;b<this.zoomLevels.length;b++){if(this.zoomLevels[b]>=a){d=b;break}}}else{if(a<this.zoomLevels[0]){d=0}}if(a>=this.zoomLevels[this.zoomLevels.length-1]){this.zoomSliderHasNoOptions=true;this.HideZoomSlider()}else{this.zoomSliderHasNoOptions=false;var e=[];for(var b=0;b<d;b++){e.push(b)}this.zoomSizeJQObject.OptionButtons("disabled",e);this.zoomSizeJQObject.OptionButtons("set",f)}};ToolbarController.prototype.AddEventHandlers=function(){var a=this;this.publicationButtonLeft.click(function(){a.CloseAllDialogs();a.FireButtonClickEvent(a.publicationButtonLeftClick,"Publication","Toolbar")});if(this.featureSettings.enableDigitalContents){this.tocButtonJQObject.click(function(){a.OnDialogButtonClick(a.tocDialogController);a.FireButtonClickEvent(a.tocClick,"Toc","Toolbar")})}if(this.featureSettings.enableSearch){this.searchButtonJQObject.click(function(){a.OnDialogButtonClick(a.searchDialogController);a.FireButtonClickEvent(a.searchClick,"Search","Toolbar")})}if(this.featureSettings.shareSettings.enabled){this.shareButtonJQObject.click(function(){a.OnDialogButtonClick(a.shareDialogController);a.FireButtonClickEvent(a.shareClick,"Share","Toolbar")})}if(this.featureSettings.enableArchives){this.archivesButtonJQObject.click(function(){a.OnDialogButtonClick(a.archivesDialogController);a.FireButtonClickEvent(a.archivesClick,"Archives","Toolbar")})}if(this.featureSettings.enableUserSettings){this.settingsButtonJQObject.click(function(){a.OnDialogButtonClick(a.settingsDialogController);a.FireButtonClickEvent(a.settingsClick,"Settings","Toolbar")})}if(this.featureSettings.enableThumbnails){this.thumbnailsButtonJQObject.click(function(){a.CloseAllDialogs();a.FireButtonClickEvent(a.thumbnailsClick,"Thumbnails","Toolbar")})}if(this.userHasFullAccess&&this.featureSettings.enablePrint){this.AttachHandlersToPrintButton()}if(this.featureSettings.enableFeedbackForm){this.helpButtonJQObject.click(function(){a.FireButtonClickEvent(a.helpClick,"Help","Toolbar")})}this.zoomButtonJQObject.click(function(){a.CloseAllDialogs();var b="ZoomOut";if(a.zoomInButtonDisplayed){b="ZoomIn"}a.FireButtonClickEvent(a.zoomClick,b,"Toolbar")});this.nextPageButtonJQObject.click(function(){a.CloseAllDialogs();a.FireButtonClickEvent(a.nextPageClick,"NextPage","Toolbar")});this.previousPageButtonJQObject.click(function(){a.CloseAllDialogs();a.FireButtonClickEvent(a.previousPageClick,"PreviousPage","Toolbar")});this.publicationButtonRight.click(function(){a.CloseAllDialogs();a.FireButtonClickEvent(a.publicationButtonRightClick,"Subscribe","Toolbar")});this.leftSidebarPreviousPageButtonJQObject.click(function(){a.CloseAllDialogs();a.FireButtonClickEvent(a.previousPageClick,"PreviousPage","LeftSidebar")});this.leftSidebarNextPageButtonJQObject.click(function(){a.CloseAllDialogs();a.FireButtonClickEvent(a.nextPageClick,"NextPage","LeftSidebar")});this.leftSidebarFirstPageButtonJQObject.click(function(){a.CloseAllDialogs();a.FireButtonClickEvent(a.firstPageClick,"FirstPage","LeftSidebar")});this.leftSidebarLastPageButtonJQObject.click(function(){a.CloseAllDialogs();a.FireButtonClickEvent(a.lastPageClick,"LastPage","LeftSidebar")});this.rightSidebarNextPageButtonJQObject.click(function(){a.CloseAllDialogs();a.FireButtonClickEvent(a.nextPageClick,"NextPage","RightSidebar")});this.rightSidebarPreviousPageButtonJQObject.click(function(){a.CloseAllDialogs();a.FireButtonClickEvent(a.previousPageClick,"PreviousPage","RightSidebar")});this.rightSidebarFirstPageButtonJQObject.click(function(){a.CloseAllDialogs();a.FireButtonClickEvent(a.firstPageClick,"FirstPage","RightSidebar")});this.rightSidebarLastPageButtonJQObject.click(function(){a.CloseAllDialogs();a.FireButtonClickEvent(a.lastPageClick,"LastPage","RightSidebar")})};ToolbarController.prototype.AttachHandlersToPrintButton=function(){var a=this;if(this.featureSettings.enablePrint){var b=function(){a.FireButtonClickEvent(a.printPageSetClick,"PrintPageSet","Toolbar")};if(this.featureSettings.enableFullEditionPrint){b=function(){a.OnDialogButtonClick(a.printDialogController);a.FireButtonClickEvent(a.printDialogClick,"PrintDialog","Toolbar")}}this.printButtonJQObject.click(b)}};ToolbarController.prototype.FireButtonClickEvent=function(b,a,c){var d={buttonName:a,uiComponent:c};b.Fire(d)};ToolbarController.prototype.OnDialogButtonClick=function(a){this.OpenDialog(a)};ToolbarController.prototype.GetDialogControllerFromName=function(b){var a=null;switch(b.toLowerCase()){case"searchdialog":a=this.searchDialogController;break;case"tocdialog":a=this.tocDialogController;break;case"sharedialog":a=this.shareDialogController;break;case"archivesdialog":a=this.archivesDialogController;break;case"settingsdialog":a=this.settingsDialogController;break;case"printdialog":a=this.printDialogController;break}return a};ToolbarController.prototype.OpenDialog=function(a){if((typeof a)=="string"){a=this.GetDialogControllerFromName(a)}if((a===null)||a.IsOpen()){a.Close()}else{this.CloseAllDialogs();this.popupInView=true;if(a.type=="PrintDialog"){this.PositionPrintDialog()}else{a.Center(this.Height())}a.Open();this.dialogOpen.Fire()}};ToolbarController.prototype.DialogIsOpen=function(){var b=false;for(var a=0;a<this.dialogArray.length;a++){if(this.dialogArray[a].IsOpen()){b=true;break}}return b};ToolbarController.prototype.AppendToElement=function(a){a.append(this.toolbarJQObject);a.append(this.leftSidebarJQObject);a.append(this.rightSidebarJQObject)};ToolbarController.prototype.GetStandardTotalHeight=function(){var a=Math.max(this.Height(),this.publicationButtonLeft.height());a=Math.max(a,this.publicationButtonRight.height());return a};ToolbarController.prototype.Height=function(){if((this.mainToolbarHeight===null)||(this.mainToolbarHeight===0)){this.mainToolbarHeight=this.section1JQObject.height()}return this.mainToolbarHeight};ToolbarController.prototype.Width=function(){return this.toolbarJQObject.width()};ToolbarController.prototype.GetLeftSidebarWidth=function(){return this.leftSidebarJQObject.width()};ToolbarController.prototype.GetRightSidebarWidth=function(){return this.rightSidebarJQObject.width()};ToolbarController.prototype.AllowDynamicHiding=function(){this.allowMainToolbarDynamicHide=true;this.LeftSidebarShow();this.RightSidebarShow();this.allowSidebarDynamicHide=true};ToolbarController.prototype.DisallowDynamicHiding=function(){this.allowMainToolbarDynamicHide=false;this.SlideShow();this.LeftSidebarShow();this.RightSidebarShow();this.SlideShowLeftSidebar();this.SlideShowRightSidebar();this.allowSidebarDynamicHide=false};ToolbarController.prototype.ToggleShowPermissions=function(){this.allowMainToolbarShow=!this.allowMainToolbarShow;this.allowSidebarShow=!this.allowSidebarShow;this.allowSidebarDynamicHide=!this.allowSidebarDynamicHide;if(!this.allowMainToolbarShow){this.SlideHide("fast")}};ToolbarController.prototype.SlideHide=function(a){if(!a){a="slow"}if(!this.toolbarIsHidden){this.SlideHideMainToolbar(a);this.SlideHideLeftPublicationButton(a);this.SlideHideRightPublicationButton(a);this.toolbarIsHidden=true}};ToolbarController.prototype.SlideHideMainToolbar=function(b){this.startStyle_MainToolbar={top:this.toolbarJQObject.css("top")};var a=10-this.Height();this.toolbarJQObject.animate({top:a+"px"},b)};ToolbarController.prototype.SlideHideLeftPublicationButton=function(b){this.startStyle_LeftPublicationButton={top:this.publicationButtonLeft.css("top")};var a=this.Height()-this.publicationButtonLeft.height();this.publicationButtonLeft.animate({top:a+"px"},b)};ToolbarController.prototype.SlideHideRightPublicationButton=function(b){this.startStyle_RightPublicationButton={top:this.publicationButtonRight.css("top")};var a=this.Height()-this.publicationButtonRight.height();this.publicationButtonRight.animate({top:a+"px"},b)};ToolbarController.prototype.LeftSidebarSlideHide=function(b){if(!this.leftSidebarIsHidden){if(!b){b="slow"}this.leftSidebarStartStyle={left:this.leftSidebarJQObject.css("left")};var a=10-this.GetLeftSidebarWidth();this.leftSidebarJQObject.animate({left:a+"px"},b);this.leftSidebarIsHidden=true}};ToolbarController.prototype.RightSidebarSlideHide=function(b){if(!this.rightSidebarIsHidden){if(!b){b="slow"}this.rightSidebarStartStyle={right:this.rightSidebarJQObject.css("right")};var a=10-this.GetRightSidebarWidth();this.rightSidebarJQObject.animate({right:a+"px"},b);this.rightSidebarIsHidden=true}};ToolbarController.prototype.UpdateRightSidebarLocation=function(b){if(this.rightSidebarIsHidden){var a=10-this.GetRightSidebarWidth();this.rightSidebarJQObject.css("right",b+a)}else{this.rightSidebarJQObject.css("right",b)}this.rightSidebarStartStyle={right:b}};ToolbarController.prototype.SlideShow=function(a){this.ClearSlideHideTimeout();if(this.toolbarIsHidden){if(!a){a="fast"}this.SlideShowMainToolbar(a);this.SlideShowLeftPublicationButton(a);this.SlideShowRightPublicationButton(a);this.toolbarIsHidden=false}};ToolbarController.prototype.SlideShowMainToolbar=function(a){this.toolbarJQObject.animate({top:this.startStyle_MainToolbar.top},a)};ToolbarController.prototype.SlideShowLeftPublicationButton=function(a){if(this.startStyle_LeftPublicationButton){this.publicationButtonLeft.animate({top:this.startStyle_LeftPublicationButton.top},a)}};ToolbarController.prototype.SlideShowRightPublicationButton=function(a){if(this.startStyle_RightPublicationButton){this.publicationButtonRight.animate({top:this.startStyle_RightPublicationButton.top},a)}};ToolbarController.prototype.SlideShowLeftSidebar=function(a){this.ClearLeftSidebarSlideHideTimeout();if(this.leftSidebarIsHidden){if(!a){a="fast"}this.leftSidebarJQObject.animate({left:this.leftSidebarStartStyle.left},a);this.leftSidebarIsHidden=false}};ToolbarController.prototype.SlideShowRightSidebar=function(a){this.ClearRightSidebarSlideHideTimeout();if(this.rightSidebarIsHidden){if(!a){a="fast"}this.rightSidebarJQObject.animate({right:this.rightSidebarStartStyle.right},a);this.rightSidebarIsHidden=false}};ToolbarController.prototype.SetSlideHideTimeout=function(){if((this.slideHideTimeout===null)&&(!this.toolbarIsHidden)){var a=this;this.slideHideTimeout=setTimeout(function(){a.SlideHide();a.slideHideTimeout=null},this.hideDelay)}};ToolbarController.prototype.SetLeftSidebarSlideHideTimeout=function(){if((this.leftSidebarSlideHideTimeout===null)&&(!this.leftSidebarIsHidden)){var a=this;this.leftSidebarSlideHideTimeout=setTimeout(function(){a.LeftSidebarSlideHide();a.leftSidebarSlideHideTimeout=null},this.hideDelay)}};ToolbarController.prototype.SetRightSidebarSlideHideTimeout=function(){if((this.rightSidebarSlideHideTimeout===null)&&(!this.rightSidebarIsHidden)){var a=this;this.rightSidebarSlideHideTimeout=setTimeout(function(){a.RightSidebarSlideHide();a.rightSidebarSlideHideTimeout=null},this.hideDelay)}};ToolbarController.prototype.ClearSlideHideTimeout=function(){if(this.slideHideTimeout!==null){clearTimeout(this.slideHideTimeout);this.slideHideTimeout=null}};ToolbarController.prototype.ClearLeftSidebarSlideHideTimeout=function(){if(this.leftSidebarSlideHideTimeout!==null){clearTimeout(this.leftSidebarSlideHideTimeout);this.leftSidebarSlideHideTimeout=null}};ToolbarController.prototype.ClearRightSidebarSlideHideTimeout=function(){if(this.rightSidebarSlideHideTimeout!==null){clearTimeout(this.rightSidebarSlideHideTimeout);this.rightSidebarSlideHideTimeout=null}};ToolbarController.prototype.DetermineVisibility=function(b,a,c){this.DetermineMainToolbarVisibility(a,c);this.DetermineLeftSidebarVisibility(b,c);this.DetermineRightSidebarVisibility(b,c)};ToolbarController.prototype.DetermineMainToolbarVisibility=function(c,b){var a=this.Height()*1;if((c>a)||(c<0)){if(this.allowMainToolbarDynamicHide&&!this.popupInView&&this.autoHideOn){this.SetSlideHideTimeout()}}else{if(this.allowMainToolbarShow&&b){this.SlideShow()}}};ToolbarController.prototype.DetermineLeftSidebarVisibility=function(c,a){var b=this.GetLeftSidebarWidth()*1;if((c>b)||(c<0)){if(this.allowSidebarDynamicHide&&this.autoHideOn){this.SetLeftSidebarSlideHideTimeout()}}else{if(this.allowSidebarShow&&a){this.SlideShowLeftSidebar()}}};ToolbarController.prototype.DetermineRightSidebarVisibility=function(c,a){var b=this.rightSidebarJQObject.position().left-this.GetRightSidebarWidth()*1;if((c<b)||(c<0)){if(this.allowSidebarDynamicHide&&this.autoHideOn){this.SetRightSidebarSlideHideTimeout()}}else{if(this.allowSidebarShow&&a){this.SlideShowRightSidebar()}}};ToolbarController.prototype.LeftSidebarHide=function(){this.leftSidebarJQObject.hide()};ToolbarController.prototype.RightSidebarHide=function(){this.rightSidebarJQObject.hide()};ToolbarController.prototype.LeftSidebarShow=function(){this.leftSidebarJQObject.show()};ToolbarController.prototype.RightSidebarShow=function(){this.rightSidebarJQObject.show()};var ImagePreloadController=function(i,e,a,f,g,c,j,h,b){this.documentMetadata=i;this.currentPageSetIndex=e;this.unpeekedMagnificationIndex=a;this.peekedMagnificationIndex=f;this.isPeeked=g;this.maxConcurrentPreloadRequests=c;this.succeedingPageSetPreloadBuffer=j;this.precedingPageSetPreloadBuffer=h;var d=j+h;this.opposingZoomLevelPosition=(b<=d)?b:d;this.imagePreloader=new ImagePreloader(this.maxConcurrentPreloadRequests);this.isOn=false};ImagePreloadController.prototype.Start=function(){if(!this.isOn){this.isOn=true}this.UpdatePreload()};ImagePreloadController.prototype.Stop=function(){if(this.isOn){this.isOn=false;this.imagePreloader.Stop()}};ImagePreloadController.prototype.UpdateState=function(b,d,a,c){this.currentPageSetIndex=b;this.isPeeked=c;this.unpeekedMagnificationIndex=d;this.peekedMagnificationIndex=a};ImagePreloadController.prototype.UpdatePreload=function(){if(this.isOn){this.imagePreloader.ClearJobs();var b=this.GetPageSetIndexesToPreload();var a=this.GetPageSetsFromIndexes(b);var c=this.GetPageSetUrls(a);this.LogPreloadingUrlsToConsole(c);this.imagePreloader.AddJobs(c)}};ImagePreloadController.prototype.LogPreloadingUrlsToConsole=function(d){var a=[];for(var b=0;b<d.length;b++){var c=d[b].split("amazonaws.com")[1];a.push(c.split("?")[0])}LogToConsole(a)};ImagePreloadController.prototype.GetPageSetsFromIndexes=function(b){var a=[];for(var c=0;c<b.length;c++){a.push(this.documentMetadata.pageSetMetadataArray[b[c]])}return a};ImagePreloadController.prototype.PreloadThumbnails=function(f){if(f>this.documentMetadata.pageSetMetadataArray.length){f=this.documentMetadata.pageSetMetadataArray.length}var g=[];for(var d=0;d<f;d++){g.push(d)}var a=this.GetPageSetsFromIndexes(g);var e=[];var h=function(i){if(e.indexOf(i)==-1){e.push(i)}};for(var c=0;c<a.length;c++){var l=a[c].GetUrls(0);for(var b=0;b<l.length;b++){h(l[b])}}this.imagePreloader.AddJobs(e)};ImagePreloadController.prototype.GetPageSetUrls=function(e){var a=[];var d=null;var c=null;if(this.isPeeked){d=this.peekedMagnificationIndex;c=this.unpeekedMagnificationIndex}else{d=this.unpeekedMagnificationIndex;c=this.peekedMagnificationIndex}if(d!==null){for(var b=0;b<e.length;b++){if(e[b]){if(e[b].id==this.documentMetadata.pageSetMetadataArray[this.currentPageSetIndex].id){a=a.concat(e[b].GetUrls(c))}else{a=a.concat(e[b].GetUrls(d))}}}}return a};ImagePreloadController.prototype.GetPageSetIndexesToPreload=function(){var e=[];var f=0;var d=0;var a=this;var c=function(g){if((g)==a.opposingZoomLevelPosition){e.push(a.currentPageSetIndex)}};while((f<=this.succeedingPageSetPreloadBuffer)||(d<=this.precedingPageSetPreloadBuffer)){var b;c(f+d);f++;if(f<=this.succeedingPageSetPreloadBuffer){b=this.currentPageSetIndex+f;if(b<this.documentMetadata.pageSetMetadataArray.length){e.push(b)}}c(f+d);d++;if(d<=this.precedingPageSetPreloadBuffer){b=this.currentPageSetIndex-d;if(b>=0){e.push(b)}}}return e};var ImagePreloader=function(a){this.maxConcurrentPreloads=(a)?a:4;this.imageSourcesToPreload=[];this.numberOfConcurrentPreloads=0;this.preloadingOn=false;this.preloadedImageSources=[]};ImagePreloader.prototype.Start=function(){if(!this.preloadingOn){this.preloadingOn=true;this.StartPreloadingBatch()}};ImagePreloader.prototype.Stop=function(){this.preloadingOn=false};ImagePreloader.prototype.ClearJobs=function(){this.imageSourcesToPreload=[];this.Stop()};ImagePreloader.prototype.AddJobs=function(b){if(b.length){for(var a=0;a<b.length;a++){this.imageSourcesToPreload.push(b[a])}}else{this.imageSourcesToPreload.push(b)}this.Start()};ImagePreloader.prototype.LogLoadStartToConsole=function(b){var a=b.split("?")[0];LogToConsole("PreLoading = "+a)};ImagePreloader.prototype.LogLoadSuccessfulToConsole=function(b){var a=b.split("?")[0];LogToConsole("Load Successful= "+a)};ImagePreloader.prototype.LogLoadFailedToConsole=function(b){var a=b.split("?")[0];LogToConsole("Load Failed = "+a)};ImagePreloader.prototype.PreloadImage=function(e){if(this.preloadedImageSources.indexOf(e)===-1){var a=this;this.numberOfConcurrentPreloads++;var c=function(f){a.LogLoadStartToConsole(f);return $("<img/>").attr("src",f).css({display:"none",left:"-5000px",top:"-5000px"})};var b=function(i){var g=function(){i.remove()};var f=function(){a.numberOfConcurrentPreloads--;g();a.PreloadNextImage()};var j=function(){a.preloadedImageSources.push(e);a.LogLoadSuccessfulToConsole(e);f()};var h=function(){a.LogLoadFailedToConsole(e);f()};i.load(j);i.error(h);$(document.body).append(i)};var d=c(e);b(d);return true}else{return false}};ImagePreloader.prototype.StartPreloadingBatch=function(){var b=this.maxConcurrentPreloads-this.numberOfConcurrentPreloads;for(var a=0;a<b;a++){this.PreloadNextImage()}};ImagePreloader.prototype.PreloadNextImage=function(){if(this.preloadingOn){var a=this.imageSourcesToPreload.shift();if(!a){this.Stop()}else{if(a.length==0){this.Stop()}else{if(!this.PreloadImage(a)){this.PreloadNextImage()}}}}};var ReaderController=function(a){var d=null;if(a.FoundationElementID===null){d=new Error('"readerProperties.FoundationElementID" may not be null in ReaderController().')}if(a.StyleSheetUrl===null){d=new Error('"readerProperties.StyleSheetUrl" may not be null in ReaderController().')}if(a.LoggingEndpointUri===null){d=new Error('"readerProperties.LoggingEndpointUri" may not be null in ReaderController().')}if(a.PublicationName===null){d=new Error('"readerProperties.PublicationName" may not be null in ReaderController().')}if(a.Edition===null){d=new Error('"readerProperties.Edition" may not be null in ReaderController().')}if(a.ReaderText===null){d=new Error('"readerProperties.ReaderText" may not be null in ReaderController().')}if(a.DialogContentsEndpointUri===null){d=new Error('"readerProperties.DialogContentsEndpointUri" may not be null in ReaderController().')}if(a.EditionUrlsEndpointUri===null){d=new Error('"readerProperties.EditionUrlsEndpointUri" may not be null in ReaderController().')}if(a.UrlFreshnessInMinutes===null){d=new Error('"readerProperties.UrlFreshnessInMinutes" may not be null in ReaderController().')}if(a.FeedbackFormUrl===null){d=new Error('"readerProperties.FeedbackFormUrl" may not be null in ReaderController().')}if(d!==null){var c='An error occurred on "'+d.fileName+'" (line #'+d.lineNumber+"). "+d.message;throw new Error(c)}this.loadStartTime=new Date();this.foundationElementID=a.FoundationElementID;this.stylesheetPath=a.StyleSheetUrl;this.skinStyleSheetPath=a.SkinStyleSheetUrl;this.jQueryUIStyleSheetPath=a.JQueryUIStyleSheetUrl;this.publicationCustomStylesheet=a.PublicationCustomStylesheet;this.publicationDynamicStylesheetPath=a.PublicationDynamicStylesheet;this.loggingEndpointUrl=a.LoggingEndpointUri;this.publicationName=a.PublicationName;this.uiText=a.ReaderText;this.rightPublicationButtonUrl=a.ToolbarPublicationLinkRightUrl;this.leftPublicationButtonUrl=a.ToolbarPublicationLinkLeftUrl;this.toolbarPublicationImageLeftUrl=a.ToolbarPublicationImageLeftUrl;this.toolbarPublicationImageRightUrl=a.ToolbarPublicationImageRightUrl;this.publicationWebsiteUrl=a.PublicationWebsiteUrl;this.publicationSubscribeUrl=a.PublicationSubscribeUrl;this.feedbackFormUrl=a.FeedbackFormUrl;this.customizationSettings=a.CustomizationSettings;this.flowPlayerLicenseKey=(a.FlowPlayerLicenseKey)?a.FlowPlayerLicenseKey:"";this.RejectUnsupportedBrowsers();try{this.documentMetadata=new DocumentMetadata(a.Edition,this.uiText)}catch(e){var b='There was an error mapping edition data. The data is most likely malformed. The error occurred on "'+e.fileName+'" (line #'+e.lineNumber+"). "+e.message;throw new Error(b)}this.clientStorage=new ClientStorage(this.documentMetadata.urlEncodedName,a.SessionID);this.urlEndpointController=new EditionUrlsEndpointController(this.documentMetadata,a.EditionUrlsEndpointUri,a.UrlFreshnessInMinutes);this.endpointsController=new HtmlContentEndpointController(this.documentMetadata.id,a.UserToken,a.DialogContentsEndpointUri,a.LookInsideEndpointUri,a.ArchivesEditionMetadataEndpointUri,a.SearchEndpointUri,a.EmailEndpointUri,a.LoginEndpointUri,a.TextLocationEndpointUri,a.BlowInContentsEndpointUri,a.TurnawayEndpointUri,this.flowPlayerLicenseKey);this.blowInController=new BlowInController(this.foundationElementID,this.documentMetadata.blowInMetadataArray,this.uiText,this.endpointsController,this.clientStorage);this.wordFindDialog=new WordFindDialogController(this.foundationElementID,this.uiText);this.technicalDifficultyDialog=new TechnicalDifficultyDialogController(this.foundationElementID,this.uiText);this.viewedTechnicalDifficultyDialogOnThisPageSet=false;this.incorrectFlashVersionDialog=new IncorrectFlashVersionDialogController(this.foundationElementID,this.uiText,a.GetFlashUrl);this.pageLabelController=null;this.urlHelper=new UrlHelper(this.documentMetadata);this.findWords=this.urlHelper.GetRequestedFindWords();this.foundationJQObject=this.GetFoundationElement();this.SetBackgroundColor(this.documentMetadata.backgroundColor);this.toolbarController=null;this.viewShieldJQObject=null;this.lastHeight=this.foundationJQObject.height();this.lastWidth=this.foundationJQObject.width();this.minZoomDimensionIndex=this.documentMetadata.magnificationMin+1;this.maxZoomDimensionIndex=this.documentMetadata.magnificationMax;this.thumbnailDimensionIndex=this.documentMetadata.thumbnailMagnificationIndexes[0];this.zoomDimensionIndexes=this.documentMetadata.zoomMagnificationIndexes;this.zoomInPageDimensionIndex=(this.clientStorage.RetrieveZoomLevel()===null)?this.zoomDimensionIndexes[0]:this.clientStorage.RetrieveZoomLevel();if(this.zoomInPageDimensionIndex>this.maxZoomDimensionIndex){this.zoomInPageDimensionIndex=this.maxZoomDimensionIndex}else{if(this.zoomInPageDimensionIndex<this.minZoomDimensionIndex){this.zoomInPageDimensionIndex=this.minZoomDimensionIndex}}this.isZoomedIn=false;this.possibleInternetDisruption=false;this.resize=new CustomEvent("resize",this);this.pageClick=new CustomEvent("pageClick",this);this.pageImageLoad=new CustomEvent("pageImageLoad",this);this.pageImageError=new CustomEvent("pageImageError",this);this.pageSetLoad=new CustomEvent("pageSetLoad",this);this.pageSetChange=new CustomEvent("pageSetChange",this);this.viewChange=new CustomEvent("viewChange",this);this.zoom=new CustomEvent("zoom",this);this.startViewDrag=new CustomEvent("startViewDrag",this);this.endViewDrag=new CustomEvent("endViewDrag",this);this.initialLoad=new CustomEvent("initialLoad",this);this.settingSave=new CustomEvent("settingSave",this);this.shortcutKeyPress=new CustomEvent("shortcutKeyPress",this);this.buttonClick=new CustomEvent("buttonClick",this);this.linkClick=new CustomEvent("linkClick",this);this.blowInOpen=new CustomEvent("blowInOpen",this);this.blowInClose=new CustomEvent("blowInClose",this);this.zoomSliderChange=new CustomEvent("zoomSliderChange",this);this.archivesMetadataTrigger=new CustomEvent("archivesMetadataTrigger",this);this.thumbnailClick=new CustomEvent("thumbnailClick",this);this.thumbnailCloseButtonClick=new CustomEvent("thumbnailCloseButtonClick",this);this.startThumbnailViewDrag=new CustomEvent("startThumbnailViewDrag",this);this.endThumbnailViewDrag=new CustomEvent("endThumbnailViewDrag",this);this.readerResized=new CustomEvent("readerResized",this);this.keyPress=new CustomEvent("keyPress",this);this.mediaEvent=new CustomEvent("mediaEvent",this);this.beforeUnload=new CustomEvent("beforeUnload",this);this.addressBarChange=new CustomEvent("addressBarChange",this);this.pageSetImageErrorExceeded=new CustomEvent("pageSetImageErrorExceeded",this);this.codeError=new CustomEvent("codeError",this);this.touchEvent=new CustomEvent("touchEvent",this);this.mouseX=null;this.mouseY=null;this.defaultPrimaryViewStagePadding={left:15,right:15,top:15,bottom:15};this.defaultSecondaryViewStagePadding={left:150,right:150,top:150,bottom:150};this.mouseOutPageSet=true;this.mouseOutLeaderboard=true;this.userSettings=this.GetUserSettings();this.imagePageLoadErrorCount=0;this.pageSetImageErrorLimit=12;this.pageSetLoaded=false;this.loadingSpinner=null;this.initialPageSetLoaded=false;this.uiVerificationChecksInterval=null;this.initialViewLocation={pageSetIndex:0,pageIndex:0};if(a.RequestedPageSetIndex){this.initialViewLocation.pageSetIndex=a.RequestedPageSetIndex;if(a.RequestedPageIndex){this.initialViewLocation.pageIndex=a.RequestedPageIndex}}else{this.initialViewLocation=this.GetInitialViewLocation()}this.imagePreloadController=new ImagePreloadController(this.documentMetadata,this.initialViewLocation.pageSetIndex,null,this.zoomInPageDimensionIndex,false,a.ImagePreloading_MaxConcurrentPreloadRequests,a.ImagePreloading_SucceedingPageSetPreloadBuffer,a.ImagePreloading_PrecedingPageSetPreloadBuffer,a.ImagePreloading_OpposingZoomLevelPosition);CreateLogger(a.LogToConsole)};ReaderController.prototype.Initialize=function(){this.BuildToolbarController();if(this.documentMetadata.editionType==EnuEditionType.SuperToc){this.BuildPageLabelController()}this.BuildViewController(this.initialViewLocation);this.ResizeView();this.CreateThumbnailController();this.viewController.preloadPageSet=this.zoomInPageDimensionIndex;this.InjectToolbar();this.InjectView();this.CreateViewShield();this.InjectThumbnails();this.AddEventHandlers();this.ListenToChildren();this.urlHelper.UpdateAddressBar(this.viewController.currentPageSetIndex,this.viewController.currentPageIndex);this.CreateLoadingSpinner();this.baseTitleHeader=window.document.title;var a=this;setTimeout(function(){a.viewController.SyncViewStageDimensionsToView();a.viewController.LoadInitialView();a.viewController.ChangeCursorClass("ZoomInAble");var b=a.viewController.GetCurrentPageSetMetadata();a.toolbarController.UpdateSharePageSet(a.viewController.currentPageSetIndex,a.viewController.currentPageIndex);a.HighlightText(a.findWords,true);if(a.userSettings.enableAutoToolbarHide){a.SetPrimaryViewStagePadding(a.defaultPrimaryViewStagePadding)}else{a.SetPrimaryViewStagePaddingWithinToolbars()}a.StartUIVerificationChecksInterval();var c=new Date();a.initialLoad.Fire(c-a.loadStartTime)},300)};ReaderController.prototype.Destroy=function(){if(this.toolbarController){this.toolbarController.Destroy()}if(this.viewController){this.viewController.Destroy()}this.toolbarController=null;this.viewController=null};ReaderController.prototype.SetTitleHeader=function(a){var a=$("<div/>").html(a).text();setTimeout(function(){window.document.title=a},0)};ReaderController.prototype.UpdateTitleHeader=function(){this.SetTitleHeader(this.baseTitleHeader+" ("+this.GetCurrentPageSetMetadata().label+")")};ReaderController.prototype.AppendToFoundation=function(a){this.foundationJQObject.append(a)};ReaderController.prototype.StartUIVerificationChecksInterval=function(){var a=this;this.uiVerificationChecksInterval=setInterval(function(){a.UpdateScrollbarContentionControls();a.CheckForAddressBarChange()},200)};ReaderController.prototype.AddEventHandlers=function(){var a=this;$(window).resize(function(){a.OnWindowResize()});$(window).mouseout(function(){a.toolbarController.DetermineVisibility(-1,-1)});this.foundationJQObject.resize(function(){a.OnFoundationResize()});if($.browser.mozilla){$(document).keypress(function(b){a.OnKeyPress(b)})}else{$(document).keydown(function(b){a.OnKeyPress(b)})}setTimeout(function(){a.foundationJQObject.mousemove(function(b){if(!a.isZoomedIn){a.mouseX=b.pageX;a.mouseY=b.pageY;if(a.toolbarController){var c=a.mouseOutPageSet&&a.mouseOutLeaderboard;a.toolbarController.DetermineVisibility(a.mouseX,a.mouseY,c)}}})},1000)};ReaderController.prototype.ListenToChildren=function(){var a=this;this.addressBarChange.Subscribe(a.OnAddressBarChange,this);this.viewController.pageClick.Subscribe(a.OnPageClick,this);this.viewController.pageSetImageLoad.Subscribe(a.OnPageSetImageLoad,this);this.viewController.pageSetImageError.Subscribe(a.OnPageSetImageError,this);this.viewController.pageSetLoad.Subscribe(a.OnPageSetLoad,this);this.viewController.beforePageSetChange.Subscribe(a.OnBeforePageSetChange,this);this.viewController.pageSetChange.Subscribe(a.OnPageSetChange,this);this.viewController.viewDraw.Subscribe(a.OnViewDraw,this);this.viewController.startViewDrag.Subscribe(function(){a.startViewDrag.Fire()},this);this.viewController.endViewDrag.Subscribe(function(){a.endViewDrag.Fire()},this);this.viewController.linkClick.Subscribe(a.OnLinkClick,this);this.viewController.pageSetMouseOver.Subscribe(a.OnPageSetMouseOver,this);this.viewController.pageSetMouseOut.Subscribe(a.OnPageSetMouseOut,this);this.viewController.viewChange.Subscribe(a.OnViewChange,this);this.viewController.buttonClick.Subscribe(a.OnViewButtonClick,this);this.viewController.mediaEvent.Subscribe(a.OnMediaEvent,this);this.viewController.leaderboardMouseOver.Subscribe(a.OnLeaderboardMouseOver,this);this.viewController.leaderboardMouseOut.Subscribe(a.OnLeaderboardMouseOut,this);this.viewController.logInSuccess.Subscribe(a.OnLogInSuccess,this);this.toolbarController.publicationButtonLeftClick.Subscribe(a.OnLeftPublicationButtonClick,this);this.toolbarController.tocClick.Subscribe(a.OnTocClick,this);this.toolbarController.thumbnailsClick.Subscribe(a.OnThumbnailsButtonClick,this);this.toolbarController.zoomClick.Subscribe(a.OnZoomButtonClick,this);this.toolbarController.nextPageClick.Subscribe(a.OnNextPageClick,this);this.toolbarController.previousPageClick.Subscribe(a.OnPreviousPageClick,this);this.toolbarController.publicationButtonRightClick.Subscribe(a.OnRightPublicationButtonClick,this);this.toolbarController.zoomSliderChange.Subscribe(a.OnZoomSliderChange,this);this.toolbarController.firstPageClick.Subscribe(a.OnFirstPageClick,this);this.toolbarController.lastPageClick.Subscribe(a.OnLastPageClick,this);this.toolbarController.searchClick.Subscribe(a.OnSearchClick,this);this.toolbarController.shareClick.Subscribe(a.OnShareClick,this);this.toolbarController.settingsClick.Subscribe(a.OnSettingsClick,this);this.toolbarController.archivesClick.Subscribe(a.OnArchivesClick,this);this.toolbarController.dialogOpen.Subscribe(a.OnDialogOpen,this);this.toolbarController.dialogClose.Subscribe(a.OnDialogClose,this);this.toolbarController.fitToSettingChange.Subscribe(a.OnFitToSettingChange,this);this.toolbarController.superZoomSettingChange.Subscribe(a.OnSuperZoomSettingChange,this);this.toolbarController.autoZoomSettingChange.Subscribe(a.OnAutoZoomSettingChange,this);this.toolbarController.autoToolbarHideSettingChange.Subscribe(a.OnAutoHideToolbarSettingChange,this);this.toolbarController.viewModeChange.Subscribe(a.OnViewModeSettingChange,this);this.toolbarController.settingsSave.Subscribe(a.OnSettingsSave,this);this.toolbarController.shareEmailSend.Subscribe(a.OnShareEmailSend,this);this.toolbarController.dialogButtonClick.Subscribe(a.OnDialogButtonClick,this);this.toolbarController.linkClick.Subscribe(a.OnLinkClick,this);this.toolbarController.printDialogClick.Subscribe(a.OnPrintDialogClick,this);this.toolbarController.printPageSetClick.Subscribe(a.OnPrintPageSetClick,this);this.toolbarController.printEditionClick.Subscribe(a.OnPrintEditionClick,this);this.toolbarController.helpClick.Subscribe(a.OnHelpClick,this);this.toolbarController.codeError.Subscribe(a.OnCodeError,this);this.toolbarController.archivesSelectedCoverChange.Subscribe(a.OnArchivesSelectedCoverChange,this);this.thumbnailController.pageClick.Subscribe(a.OnThumbnailClick,this);this.thumbnailController.closeButtonClick.Subscribe(a.OnThumbnailCloseButtonClick,this);this.thumbnailController.stageDrag.Subscribe(function(){a.startThumbnailViewDrag.Fire()},this);this.thumbnailController.endStageDrag.Subscribe(function(){a.endThumbnailViewDrag.Fire()},this);this.viewShieldJQObject.click(function(){a.OnViewShieldClick()},this);this.blowInController.linkClick.Subscribe(a.OnLinkClick,this);this.blowInController.blowInOpen.Subscribe(a.OnBlowInOpen,this);this.blowInController.blowInClose.Subscribe(a.OnBlowInClose,this);this.blowInController.mediaEvent.Subscribe(a.OnMediaEvent,this);this.wordFindDialog.highlightingOff.Subscribe(a.HideSearchResultHighlights,this);this.wordFindDialog.highlightingOn.Subscribe(a.ShowSearchResultHighlights,this);this.wordFindDialog.close.Subscribe(a.HideSearchResultHighlights,this);this.urlEndpointController.urlUpdateComplete.Subscribe(a.OnUrlUpdateComplete,this);if(this.pageLabelController){this.pageLabelController.click.Subscribe(a.OnPageLabelControllerClick,this)}};ReaderController.prototype.OnCodeError=function(a){this.codeError.Fire(a.paramObject)};ReaderController.prototype.OnArchivesSelectedCoverChange=function(a){this.archivesMetadataTrigger.Fire(a.paramObject)};ReaderController.prototype.OnButtonClick=function(a){this.buttonClick.Fire(a.paramObject)};ReaderController.prototype.OnLogInSuccess=function(a){this.documentMetadata.SetFullAccess();this.toolbarController.EnablePrint();this.urlEndpointController.SendUrlBatchRequest()};ReaderController.prototype.OnUrlUpdateComplete=function(a){this.viewController.mediaIsStale=true;this.possibleInternetDisruption=false;this.viewController.UpdateView();this.thumbnailController.UpdatePages()};ReaderController.prototype.OnPageLabelControllerClick=function(a){this.GoToUrl(a.paramObject,true)};ReaderController.prototype.OnViewChange=function(){if(this.ImagePreloaderStateIsDirty()){this.imagePreloadController.Stop()}this.UpdateImagePreloaderState();this.viewChange.Fire()};ReaderController.prototype.UpdateImagePreloaderState=function(){this.imagePreloadController.UpdateState(this.viewController.currentPageSetIndex,this.viewController.primaryPageDimensionIndex,this.viewController.secondaryPageDimensionIndex,this.isZoomedIn)};ReaderController.prototype.ImagePreloaderStateIsDirty=function(){var a=false;if(this.imagePreloadController.currentPageSetIndex!=this.viewController.currentPageSetIndex){return true}if(this.imagePreloadController.isPeeked!=this.isZoomedIn){return true}if(!this.imagePreloadController.isPeeked&&(this.imagePreloadController.unpeekedMagnificationIndex!=this.viewController.primaryPageDimensionIndex)){return true}if(this.imagePreloadController.isPeeked&&(this.imagePreloadController.peekedMagnificationIndex!=this.viewController.secondaryPageDimensionIndex)){return true}return a};ReaderController.prototype.OnViewButtonClick=function(a){switch(a.paramObject.buttonName){case"Subscribe":this.GoToUrl(a.paramObject.url);break;case"Preview":this.GoToFirstVisiblePage();break;case"Login":break;case"CallForHelp":this.GoToUrl(a.paramObject.url);break;default:throw new Error('Button name "'+a.paramObject.buttonName+'" not recognized in OnViewButtonClick().')}this.OnButtonClick(a)};ReaderController.prototype.OnMediaEvent=function(a){if(a.paramObject.eventType=="flashNotInstalled"){this.incorrectFlashVersionDialog.ConditionalOpen()}this.mediaEvent.Fire(a.paramObject)};ReaderController.prototype.OnShareEmailSend=function(a){};ReaderController.prototype.OnDialogButtonClick=function(a){this.OnButtonClick(a)};ReaderController.prototype.OnDialogOpen=function(){this.viewShieldJQObject.show()};ReaderController.prototype.OnDialogClose=function(){this.viewShieldJQObject.hide()};ReaderController.prototype.OnViewShieldClick=function(){this.toolbarController.CloseAllDialogs()};ReaderController.prototype.OnFitToSettingChange=function(a){this.PassZoomLevelToToolbar();this.SetViewFitType(a.paramObject)};ReaderController.prototype.OnSuperZoomSettingChange=function(a){};ReaderController.prototype.OnAutoZoomSettingChange=function(a){};ReaderController.prototype.OnAutoHideToolbarSettingChange=function(b){var a=b.paramObject;if(a){this.SetPrimaryViewStagePadding(this.defaultPrimaryViewStagePadding)}else{this.SetPrimaryViewStagePaddingWithinToolbars()}};ReaderController.prototype.OnViewModeSettingChange=function(b){var a=b.paramObject;if(a==EnuViewMode.SinglePage){this.viewController.SetSinglePageView()}else{this.viewController.SetMultiPageView()}};ReaderController.prototype.SetPrimaryViewStagePaddingWithinToolbars=function(){var a={left:this.toolbarController.GetLeftSidebarWidth(),right:this.toolbarController.GetRightSidebarWidth(),top:this.toolbarController.GetStandardTotalHeight(),bottom:this.defaultPrimaryViewStagePadding.bottom};this.SetPrimaryViewStagePadding(a)};ReaderController.prototype.OnSettingsSave=function(b){var a=b.paramObject;this.userSettings=a;this.SaveUserSettings(a);this.settingSave.Fire(a)};ReaderController.prototype.OnPageSetMouseOver=function(){this.mouseOutPageSet=false};ReaderController.prototype.OnPageSetMouseOut=function(){this.mouseOutPageSet=true};ReaderController.prototype.OnLeaderboardMouseOver=function(){this.mouseOutLeaderboard=false};ReaderController.prototype.OnLeaderboardMouseOut=function(){this.mouseOutLeaderboard=true};ReaderController.prototype.OnBeforePageSetChange=function(d){var b=d.paramObject;var a=[];var c=this.viewController.GetCurrentPageMetadata();if(c==null){a=b.GetPageIDs()}else{a.push(c.id)}this.blowInController.OnPageChange(a)};ReaderController.prototype.OnPageSetChange=function(b){$("#tooltip").hide();this.pageSetLoaded=false;this.viewedTechnicalDifficultyDialogOnThisPageSet=false;this.loadingSpinner.fadeIn("slow");this.pageSetChange.Fire(b.paramObject);this.urlHelper.UpdateAddressBar(this.viewController.currentPageSetIndex,this.viewController.currentPageIndex);this.UpdateAutobookmarkSetting(this.viewController.currentPageSetIndex,this.viewController.currentPageIndex);var a=this.viewController.GetCurrentPageSetMetadata();this.toolbarController.UpdateSharePageSet(this.viewController.currentPageSetIndex,this.viewController.currentPageIndex);if(this.findWords!==null&&this.wordFindDialog.IsOpen()){this.HighlightText(this.findWords,false)}if(this.userSettings.enableAutoZoom){this.ZoomOut()}this.UpdateTitleHeader();this.UpdatePageLabelController();this.mouseOutPageSet=true;if(this.blowInController.BlowInOpen()){this.viewController.HidePageChildren()}};ReaderController.prototype.OnLeftPublicationButtonClick=function(a){this.GoToUrl(this.leftPublicationButtonUrl);this.OnButtonClick(a)};ReaderController.prototype.OnTocClick=function(a){this.OnButtonClick(a)};ReaderController.prototype.OnSearchClick=function(a){this.OnButtonClick(a)};ReaderController.prototype.OnShareClick=function(a){this.OnButtonClick(a)};ReaderController.prototype.OnSettingsClick=function(a){this.OnButtonClick(a)};ReaderController.prototype.OnArchivesClick=function(a){this.OnButtonClick(a)};ReaderController.prototype.OnPrintDialogClick=function(a){this.OnButtonClick(a)};ReaderController.prototype.OnPrintPageSetClick=function(a){this.PrintPageSet();this.OnButtonClick(a)};ReaderController.prototype.OnPrintEditionClick=function(a){this.PrintEdition();this.OnButtonClick(a)};ReaderController.prototype.OnHelpClick=function(a){this.GoToFeedbackForm();this.OnButtonClick(a)};ReaderController.prototype.OnThumbnailsButtonClick=function(a){this.toolbarController.DisallowDynamicHiding();this.thumbnailController.Summon(this.viewController.currentPageSetIndex);this.OnButtonClick(a)};ReaderController.prototype.OnRightPublicationButtonClick=function(a){this.GoToUrl(this.rightPublicationButtonUrl);this.OnButtonClick(a)};ReaderController.prototype.OnZoomButtonClick=function(b){if(this.viewController.primaryPageDimensionIndex!=this.viewController.secondaryPageDimensionIndex){var a=this.viewController.GetPageSetCenterViewPercentages();this.viewController.HidePageSets();this.ToggleZoomView();this.viewController.GoToPageSetPosition(a.left,a.top);this.viewController.ShowPageSets();this.zoom.Fire(this.isZoomedIn)}this.OnButtonClick(b)};ReaderController.prototype.OnNextPageClick=function(a){this.GoToNextPage();this.OnButtonClick(a)};ReaderController.prototype.OnFirstPageClick=function(a){this.GoToFirstPage();this.OnButtonClick(a)};ReaderController.prototype.OnLastPageClick=function(a){this.GoToLastPage();this.OnButtonClick(a)};ReaderController.prototype.OnPageSetImageLoad=function(a){this.pageImageLoad.Fire(a.paramObject)};ReaderController.prototype.OnPageSetImageError=function(b){this.imagePageLoadErrorCount++;if(this.imagePageLoadErrorCount>this.pageSetImageErrorLimit){this.possibleInternetDisruption=true;if(!this.viewedTechnicalDifficultyDialogOnThisPageSet){this.viewedTechnicalDifficultyDialogOnThisPageSet=true;this.technicalDifficultyDialog.Open();var a={pageSetImageErrorLimit:this.pageSetImageErrorLimit,pageSetImageErrorCount:this.imagePageLoadErrorCount,lastErroredUrl:b.paramObject.url};this.pageSetImageErrorExceeded.Fire(a)}}if(this.possibleInternetDisruption){this.urlEndpointController.RefreshExpiredUrls()}else{this.pageImageError.Fire(b.paramObject)}};ReaderController.prototype.OnPageSetLoad=function(c){this.imagePageLoadErrorCount=0;this.pageSetLoaded=true;var d=false;if(c.paramObject.isInView){var b=this.loadingSpinner;if(!this.initialPageSetLoaded){this.OnInitialPageSetLoad();d=true}setTimeout(function(){b.fadeOut("slow")},100)}this.technicalDifficultyDialog.Close();var a=this;setTimeout(function(){a.imagePreloadController.Start()},100);c.paramObject.isInitialLoad=d;this.pageSetLoad.Fire(c.paramObject)};ReaderController.prototype.OnInitialPageSetLoad=function(c){this.initialPageSetLoaded=true;$("#InitialLoadingScreen").hide();var b=this.viewController.GetCurrentPageSetMetadata().sourceEditionID;this.toolbarController.CreateDialogs(b);var a=this;setTimeout(function(){a.imagePreloadController.PreloadThumbnails(20)},200)};ReaderController.prototype.OnPreviousPageClick=function(a){this.GoToPreviousPage();this.OnButtonClick(a)};ReaderController.prototype.OnPageClick=function(g){var f=g.paramObject;var a=f.page;var d=f.mousePos.x-f.pagePos.x;var e=f.mousePos.y-f.pagePos.y;var c=d/a.width;var b=e/a.height;if(this.viewController.primaryPageDimensionIndex!=this.viewController.secondaryPageDimensionIndex){if(!g.paramObject.internalControlClicked){this.ToggleZoomView();this.GoToPage(f.pageSet.pageSetMetadata.index,f.page.pageMetadata.index,c,b);this.viewController.ShowPageSets();this.zoom.Fire(this.isZoomedIn);this.viewChange.Fire()}}this.pageClick.Fire({left:c,top:b,pageID:a.pageMetadata.id})};ReaderController.prototype.UpdateScrollbarContentionControls=function(){var a=this.viewController.VerticalScrollbarWidth();this.toolbarController.UpdateRightSidebarLocation(a);if(this.pageLabelController){var b=this.viewController.HorizontalScrollbarHeight();this.pageLabelController.SetBottomLocation(b)}};ReaderController.prototype.CheckForAddressBarChange=function(){var a=this.urlHelper.GetAddressBarHashChanges();if((a.pageSet!==null)||(a.page!==null)){this.addressBarChange.Fire(a)}};ReaderController.prototype.OnAddressBarChange=function(a){var b=a.paramObject;this.toolbarController.CloseAllDialogs();this.blowInController.CloseAllBlowIns();this.GoToPage(b.pageSet,b.page)};ReaderController.prototype.OnWindowResize=function(){this.CheckForFoundationResize()};ReaderController.prototype.CheckForFoundationResize=function(){var b=this.foundationJQObject.width();var a=this.foundationJQObject.height();if((this.lastWidth!=b)||(this.lastHeight!=a)){this.readerResized.Fire();this.OnFoundationResize();this.lastWidth=b;this.lastHeight=a}};ReaderController.prototype.OnFoundationResize=function(){var a=this;if(((this.foundationJQObject.width()>this.viewController.ViewWidth())||(this.foundationJQObject.height()>this.viewController.ViewHeight()))&&(this.isZoomedIn)){a.ZoomOut()}clearTimeout(this.resizeTimeout);this.resizeTimeout=setTimeout(function(){a.ResizeView();a.viewController.SyncViewStageDimensionsToView();if(a.thumbnailController.IsHidden()){a.viewController.viewNeedsUpdate=true;a.viewController.UpdateView();a.toolbarController.CenterDialogs()}a.thumbnailController.PositionPageSets()},200);this.resize.Fire()};ReaderController.prototype.OnKeyPress=function(a){var d=a.target||a.srcElement;if(d.nodeName!="INPUT"){var b=a.keyCode||a.which;if(b==27){this.toolbarController.CloseAllDialogs();this.blowInController.CloseAllBlowIns();if(!this.thumbnailController.IsHidden()){this.thumbnailController.Dismiss()}a.stopPropagation();a.preventDefault()}else{if(!this.toolbarController.DialogIsOpen()&&!this.BlowInOpen()){var c=this.ActOnKey(b,a.shiftKey,a.ctrlKey);if(c!==null){a.stopPropagation();a.preventDefault();$(".DigitalEditionReaderSidebar").css("display","none");setTimeout(function(){$(".DigitalEditionReaderSidebar").css("display","block")},500)}}}this.keyPress.Fire(b)}};ReaderController.prototype.OnSpacePress=function(){if(!this.viewController.IsScrollable()){this.GoToNextPage()}else{this.viewController.SlideViewHeight(false)}};ReaderController.prototype.OnShiftSpacePress=function(){if(!this.viewController.IsScrollable()){this.GoToPreviousPage()}else{this.viewController.SlideViewHeight(true)}};ReaderController.prototype.OnHomePress=function(){if(!this.viewController.IsScrollable()){this.GoToFirstPage()}else{this.viewController.PositionViewStage(null,0)}};ReaderController.prototype.OnEndPress=function(){if(!this.viewController.IsScrollable()){this.GoToLastPage()}else{this.viewController.PositionViewStageMax(false,true)}};ReaderController.prototype.OnPageUpPress=function(){if(!this.viewController.IsScrollable()){this.GoToPreviousPage()}else{this.viewController.SlideViewHeight(true)}};ReaderController.prototype.OnPageDownPress=function(){if(!this.viewController.IsScrollable()){this.GoToNextPage()}else{this.viewController.SlideViewHeight(false)}};ReaderController.prototype.OnUpArrowPress=function(){if(!this.viewController.IsScrollable()){this.GoToPreviousPage()}else{this.viewController.SlideViewStage(0,-20)}};ReaderController.prototype.OnRightArrowPress=function(){if(!this.viewController.IsScrollable()){this.GoToNextPage()}else{this.viewController.SlideViewStage(20,0)}};ReaderController.prototype.OnLeftArrowPress=function(){if(!this.viewController.IsScrollable()){this.GoToPreviousPage()}else{this.viewController.SlideViewStage(-20,0)}};ReaderController.prototype.OnDownArrowPress=function(){if(!this.viewController.IsScrollable()){this.GoToNextPage()}else{this.viewController.SlideViewStage(0,20)}};ReaderController.prototype.OnEnterPress=function(){var a=this.viewController.GetPageSetCenterViewPercentages();this.viewController.HidePageSets();this.ToggleZoomView();this.viewController.GoToPageSetPosition(a.left,a.top);this.viewController.ShowPageSets();this.zoom.Fire(this.isZoomedIn);this.viewChange.Fire()};ReaderController.prototype.OnCtrlZPress=function(){};ReaderController.prototype.OnViewDraw=function(){this.PassZoomLevelToToolbar();this.UpdateZoomLevel()};ReaderController.prototype.OnLinkClick=function(d){$("#tooltip").hide();var a=d.paramObject;var c={linkType:EnuLinkType.external,uiComponent:a.uiComponent,url:null,contentBoxID:null,contentItemID:(a.contentItemID)?a.contentItemID:null,imagePageID:null,pageSetID:null,blowInID:(a.blowInID)?a.blowInID:null,hitResultID:(a.hitResultID)?a.hitResultID:null};c.url=a.url;if(a.linkMetadata){var b=a.linkMetadata;if(b.linkType==EnuLinkType.intraIssue){this.GoToPage(b.targetPageSetIndex,b.targetPageIndex)}c.url=b.url;c.linkType=b.linkType;c.contentBoxID=b.id;c.contentItemID=b.contentItemID;c.imagePageID=a.imagePageID;c.pageSetID=a.pageSetID}else{if(c.url.indexOf("#")===0){c.linkType=EnuLinkType.intraIssue}}this.linkClick.Fire(c);if(c.url!==null){this.GoToUrl(c.url,null,a.linkMetadata)}};ReaderController.prototype.OnBlowInOpen=function(a){this.blowInOpen.Fire(a.paramObject)};ReaderController.prototype.OnBlowInClose=function(a){this.viewController.ShowPageChildren();this.blowInClose.Fire(a.paramObject);this.viewChange.Fire()};ReaderController.prototype.OnZoomSliderChange=function(c){var b=this.viewController.GetPageSetCenterViewPercentages();this.viewController.HidePageSets();var a={newZoomLevel:this.zoomDimensionIndexes[c.paramObject],oldZoomLevel:this.zoomInPageDimensionIndex};this.SetZoomViewSize(a.newZoomLevel);this.viewController.GoToPageSetPosition(b.left,b.top);this.viewController.ShowPageSets();this.zoomSliderChange.Fire(a)};ReaderController.prototype.OnThumbnailClick=function(f){var d=null;var e=null;var a=null;var b=null;if(f.paramObject.pageSet){d=f.paramObject.pageSet.pageSetMetadata.index;e=f.paramObject.pageSet.pageSetMetadata.id}if(f.paramObject.page){a=f.paramObject.page.pageMetadata.index;b=f.paramObject.page.pageMetadata.id}this.GoToPage(d,a);this.toolbarController.AllowDynamicHiding();this.viewController.viewNeedsUpdate=true;this.thumbnailController.Dismiss();var c={pageSetID:e,pageID:b};this.thumbnailClick.Fire(c)};ReaderController.prototype.OnThumbnailCloseButtonClick=function(a){this.toolbarController.AllowDynamicHiding();this.viewController.viewNeedsUpdate=true;this.viewController.UpdateView();this.thumbnailController.Dismiss();this.thumbnailCloseButtonClick.Fire();this.OnButtonClick(a)};ReaderController.prototype.GetFoundationElement=function(){return $("#"+this.foundationElementID)};ReaderController.prototype.InsertStyleSheet=function(b){if((b!=="")&&(b!=="unknown")){if(document.createStyleSheet){document.createStyleSheet(b)}else{var a=$(document.createElement("link")).attr("type","text/css").attr("rel","stylesheet").attr("href",b);$("head").append(a)}}};ReaderController.prototype.InsertStyleSheetReferences=function(){this.InsertStyleSheet(this.jQueryUIStyleSheetPath);this.InsertStyleSheet(this.stylesheetPath);this.InsertStyleSheet(this.publicationDynamicStylesheetPath);this.InsertStyleSheet(this.skinStyleSheetPath);this.InsertStyleSheet(this.publicationCustomStylesheet);this.InsertStyleSheet(this.documentMetadata.stylesheetPath)};ReaderController.prototype.BuildToolbarController=function(){this.toolbarController=new ToolbarController(this.foundationElementID,this.zoomDimensionIndexes,this.uiText,this.endpointsController,this.userSettings,this.toolbarPublicationImageLeftUrl,this.toolbarPublicationImageRightUrl,this.documentMetadata.featureSettings,this.documentMetadata.HasFullAccess())};ReaderController.prototype.BuildViewController=function(a){this.viewController=new ViewController(this.foundationElementID,this.documentMetadata.pageSetMetadataArray,this.documentMetadata.pageCount,this.userSettings,this.zoomInPageDimensionIndex,this.minZoomDimensionIndex,this.maxZoomDimensionIndex,this.defaultPrimaryViewStagePadding,this.defaultSecondaryViewStagePadding,a,this.endpointsController,this.documentMetadata.leaderboardHtml)};ReaderController.prototype.BuildPageLabelController=function(){this.defaultPrimaryViewStagePadding.bottom+=30;this.pageLabelController=new ViewPageLabelController(this.uiText.SuperTocBottomBarLabel,this.uiText.BottomBarPageLabelFormat);this.pageLabelController.AppendToParent(this.foundationJQObject)};ReaderController.prototype.UpdatePageLabelController=function(){if(this.pageLabelController){var a=this.GetCurrentPageSetMetadata();this.pageLabelController.Set(a.label,a.sourceEditionUrl)}};ReaderController.prototype.SetPrimaryViewStagePadding=function(a){this.viewController.SetPrimaryViewStagePadding(a)};ReaderController.prototype.CreateViewShield=function(){this.viewShieldJQObject=$(document.createElement("div")).addClass("ViewShield");this.viewShieldJQObject.hide();this.foundationJQObject.append(this.viewShieldJQObject)};ReaderController.prototype.CreateThumbnailController=function(){this.thumbnailController=new ThumbnailsViewController("ThumbnailsView",this.foundationElementID,this.documentMetadata.pageSetMetadataArray,this.thumbnailDimensionIndex,10,40,this.uiText,this.endpointsController)};ReaderController.prototype.InjectToolbar=function(){this.toolbarController.AppendToElement(this.foundationJQObject)};ReaderController.prototype.InjectView=function(){this.viewController.AppendToElement(this.foundationJQObject)};ReaderController.prototype.InjectThumbnails=function(){this.thumbnailController.AppendToElement(this.foundationJQObject);this.thumbnailController.Hide();this.thumbnailController.AddPages()};ReaderController.prototype.ResizeView=function(){this.viewController.ViewWidth(this.foundationJQObject.width());this.viewController.ViewHeight(this.foundationJQObject.height())};ReaderController.prototype.PassZoomLevelToToolbar=function(){var a=this.viewController.primaryPageDimensionIndex+1;this.toolbarController.SetZoomSliderLevels(a,this.viewController.secondaryPageDimensionIndex)};ReaderController.prototype.UpdateZoomLevel=function(){if(this.viewController.primaryPageDimensionIndex>=this.viewController.secondaryPageDimensionIndex){if(this.viewController.secondaryViewHidden){this.SetZoomViewSize(this.viewController.primaryPageDimensionIndex+1)}}};ReaderController.prototype.ZoomOut=function(){if(this.isZoomedIn){this.ToggleZoomView();this.viewChange.Fire()}};ReaderController.prototype.ZoomIn=function(){if(!this.isZoomedIn&&(this.viewController.primaryPageDimensionIndex!=this.viewController.secondaryPageDimensionIndex)){this.ToggleZoomView();this.viewChange.Fire()}};ReaderController.prototype.ToggleZoomView=function(){this.viewController.SwapViews();this.toolbarController.ToggleZoomButton();this.toolbarController.ToggleZoomSlider();if(this.viewController.secondaryViewHidden){this.viewController.ChangeCursorClass("ZoomInAble")}else{this.viewController.ChangeCursorClass("Draggable")}if(this.isZoomedIn){this.toolbarController.AllowDynamicHiding()}else{this.toolbarController.DisallowDynamicHiding()}this.toolbarController.DetermineVisibility(this.mouseX,this.mouseY);this.isZoomedIn=!this.isZoomedIn};ReaderController.prototype.SetZoomViewSize=function(a){if(a>this.maxZoomDimensionIndex){a=this.maxZoomDimensionIndex}this.zoomInPageDimensionIndex=a;this.viewController.ResizeSecondaryPageSet(a);this.clientStorage.SaveZoomLevel(a)};ReaderController.prototype.GoToPage=function(b,a,d,c){this.viewController.GoToPageView(b,a,d,c)};ReaderController.prototype.GoToNextPage=function(){var a=false;if(this.userSettings.zoomedInBehavior==EnuZoomBehavior.MoveToUpperLeftOnPageChange){a=true}return this.viewController.GoToNextView(a)};ReaderController.prototype.GoToPreviousPage=function(){var a=false;if(this.userSettings.zoomedInBehavior==EnuZoomBehavior.MoveToUpperLeftOnPageChange){a=true}return this.viewController.GoToPreviousView(a)};ReaderController.prototype.GoToFirstPage=function(){this.viewController.GoToFirstPageSet()};ReaderController.prototype.GoToLastPage=function(){this.viewController.GoToLastPageSet()};ReaderController.prototype.GoToFirstVisiblePage=function(){var a=this.documentMetadata.GetFirstViewablePage();this.GoToPage(a.pageSetIndex,a.pageIndex)};ReaderController.prototype.GetViewRectangles=function(){return this.viewController.GetAllViewRectangles()};ReaderController.prototype.GetDocumentID=function(){return this.documentMetadata.id};ReaderController.prototype.GetCurrentPageSetID=function(){return this.GetCurrentPageSetMetadata().id};ReaderController.prototype.GetCurrentImagePageIDs=function(){var a=[];var b=this.GetCurrentPageMetadata();if(b){a.push(b.id)}else{a=this.GetCurrentPageSetMetadata().GetPageIDs()}return a};ReaderController.prototype.GetCurrentPageSetMetadata=function(){return this.viewController.GetCurrentPageSetMetadata()};ReaderController.prototype.GetCurrentPageMetadata=function(){return this.viewController.GetCurrentPageMetadata()};ReaderController.prototype.GetInitialViewLocation=function(){var a={pageSetIndex:0,pageIndex:0};if(this.urlHelper.GetRequestedPageSet()!==null){a.pageSetIndex=this.urlHelper.GetRequestedPageSet();a.pageIndex=this.urlHelper.GetRequestedPage()}else{var b=this.GetAutoBookmarkLocation();a.pageSetIndex=b.pageSetIndex;a.pageIndex=b.pageIndex}if((a.pageSetIndex===null)||isNaN(a.pageSetIndex)){a.pageSetIndex=0}if((a.pageIndex===null)||isNaN(a.pageIndex)){a.pageIndex=0}if(a.pageSetIndex<0){a.pageSetIndex=0}if(a.pageIndex<0){a.pageIndex=0}if(a.pageSetIndex>(this.documentMetadata.pageSetMetadataArray.length-1)){a.pageSetIndex=this.documentMetadata.pageSetMetadataArray.length-1}if(a.pageIndex>(this.documentMetadata.pageSetMetadataArray[a.pageSetIndex].pageMetadataArray.length-1)){a.pageIndex=this.documentMetadata.pageSetMetadataArray[a.pageSetIndex].pageMetadataArray.length-1}return a};ReaderController.prototype.GoToUrl=function(d,f,c){if(d!==""){var e=false;var a=true;if(f===false){e=false;a=false}if(f===true){e=true;a=true}var b=this.ParseUrlDestination(d,c);if(b.destinationType==EnuLinkType.intraIssue){this.GoToPage(b.pageSet,b.page);this.HighlightText(b.findWords,true)}else{if(b.destinationType==EnuLinkType.interIssue){if(a){this.beforeUnload.Fire()}this.urlHelper.RedirectToUrl(d,a)}else{if(e){this.beforeUnload.Fire()}this.urlHelper.RedirectToUrl(d,e)}}}};ReaderController.prototype.ParseUrlDestination=function(c,b){var a={destinationType:EnuLinkType.unknown,pageSet:null,page:null,findWords:null};if(b){a.destinationType=b.linkType;a.pageSet=b.targetPageSetIndex;a.page=b.targetPageIndex}else{var d=this.urlHelper.ParseUrl(c);a.destinationType=d.linkType;a.pageSet=d.pageSet;a.page=d.page;a.findWords=d.findWords}return a};ReaderController.prototype.UpdateAutobookmarkSetting=function(b,a){var c={pageSetIndex:0,pageIndex:0};switch(this.userSettings.autoBookmarkLocation){case EnuAutoBookmarkLocation.cover:c=this.documentMetadata.GetFirstCoverPageLocation();break;case EnuAutoBookmarkLocation.toc:c=this.documentMetadata.GetFirstTocPageLocation();break;case EnuAutoBookmarkLocation.lastPage:c={pageSetIndex:b,pageIndex:a};break;default:}this.clientStorage.SaveAutoBookmark(c.pageSetIndex,c.pageIndex)};ReaderController.prototype.GetAutoBookmarkLocation=function(){var b={pageSetIndex:0,pageIndex:0};var a=this.clientStorage.RetrieveAutoBookmark();if((a.pageSetIndex!=null)&&(a.pageIndex!=null)){b.pageSetIndex=a.pageSetIndex;b.pageIndex=a.pageIndex}return b};ReaderController.prototype.SetViewFitType=function(a){this.viewController.SetPageSetFitMethod(a);this.viewController.UpdateView()};ReaderController.prototype.SetViewFitToWidth=function(){this.SetViewFitType(EnuFitDimension.width)};ReaderController.prototype.SetViewFitToHeight=function(){this.SetViewFitType(EnuFitDimension.height)};ReaderController.prototype.SetViewFitToScreen=function(){this.SetViewFitType(EnuFitDimension.screen)};ReaderController.prototype.GetUserSettings=function(){var b=new UserSettings(this.customizationSettings);var a=this.clientStorage.RetrieveSettings();if(a!==null){$.extend(b,a)}return b};ReaderController.prototype.SaveUserSettings=function(a){this.clientStorage.SaveSettings(a)};ReaderController.prototype.ActOnKey=function(c,a,b){var d=null;switch(c){case 87:case 119:this.SetViewFitToWidth();d="w";break;case 72:case 104:this.SetViewFitToHeight();d="h";break;case 83:case 115:this.SetViewFitToScreen();d="s";break;case 32:if(a){this.OnShiftSpacePress();d="shiftSpace"}else{this.OnSpacePress();d="space"}break;case 36:this.OnHomePress();d="home";break;case 35:this.OnEndPress();d="end";break;case 33:this.OnPageUpPress();d="pageUp";break;case 34:this.OnPageDownPress();d="pageDown";break;case 37:this.OnLeftArrowPress();d="leftArrow";break;case 38:this.OnUpArrowPress();d="upArrow";break;case 39:this.OnRightArrowPress();d="rightArrow";break;case 40:this.OnDownArrowPress();d="downArrow";break;case 13:this.OnEnterPress();d="enter";break;case 80:case 112:if(b){this.PrintPageSet();d="ctrlP"}break;default:break}if(d!==null){this.shortcutKeyPress.Fire(d)}return d};ReaderController.prototype.GetCurrentPageIDs=function(){var a=this.viewController.GetCurrentPageSetMetadata();return a.GetPageIDs()};ReaderController.prototype.HighlightText=function(d,c){if(d!==null){this.RemoveTextHighlighting();this.findWords=d;if(c){this.wordFindDialog.Open();this.wordFindDialog.HighlightWordsValue(true)}else{this.wordFindDialog.SetWorkingMode()}var b=this.GetCurrentPageIDs();var a=this;this.endpointsController.RequestTextLocations(b,d,function(e){a.HighlightPositionsFromServer(e);if(a.wordFindDialog.HighlightWordsValue()){a.ShowSearchResultHighlights()}else{a.HideSearchResultHighlights()}a.wordFindDialog.SetOptionMode()})}};ReaderController.prototype.RemoveTextHighlighting=function(){this.findWords=null;this.documentMetadata.RemoveHighlighting();this.viewController.RemoveHighlightingOnPages()};ReaderController.prototype.HighlightPositionsFromServer=function(b){var a=new Array(b.length);for(var c=0;c<b.length;c++){a[c]=new ImagePageRectangle(b[c],"SearchResultHighlight")}this.HighlightPositions(a)};ReaderController.prototype.SetHighlightPositions=function(b){var a=this.viewController.GetCurrentPageSetMetadata();a.AddHighlightsToImagePages(b)};ReaderController.prototype.HighlightPositions=function(a){this.SetHighlightPositions(a);this.viewController.RenderHighlightingOnPages()};ReaderController.prototype.HideSearchResultHighlights=function(){$(".SearchResultHighlight").hide()};ReaderController.prototype.ShowSearchResultHighlights=function(){$(".SearchResultHighlight").show()};ReaderController.prototype.RejectUnsupportedBrowsers=function(){var a={reject:{msie5:true,msie6:true,konqueror:true,opera:true},header:this.uiText.UnsupportedBrowserDialogHeading,paragraph1:this.uiText.UnsupportedBrowserDialogParagraph1,paragraph2:this.uiText.UnsupportedBrowserDialogParagraph2,closeMessage:this.uiText.UnsupportedBrowserDialogCloseMessage,display:["firefox","chrome","msie","safari"],imagePath:"/content/images/"};if($.reject){$.reject(a)}else{setTimeout($.reject(a),1000)}};ReaderController.prototype.PrintEdition=function(){if(this.documentMetadata.editionPrintURL){this.GoToUrl(this.documentMetadata.editionPrintURL,false)}};ReaderController.prototype.PrintPageSet=function(b){var a=null;if(b===undefined){a=this.GetCurrentPageSetMetadata()}else{a=this.documentMetadata.pageSetMetadataArray[b]}this.GoToUrl(a.printUrl,false)};ReaderController.prototype.GoToFeedbackForm=function(){this.GoToUrl(this.feedbackFormUrl)};ReaderController.prototype.CreateLoadingSpinner=function(){this.loadingSpinner=$(document.createElement("div")).attr("id","PageSetLoadSpinner").addClass("ActiveSpinner");$("#"+this.foundationElementID).after(this.loadingSpinner)};ReaderController.prototype.GetPageIndexesInView=function(){return this.viewController.GetPageIndexesInView()};ReaderController.prototype.BlowInOpen=function(){return this.blowInController.BlowInOpen()};ReaderController.prototype.GetEditionMetadata=function(){return this.documentMetadata};ReaderController.prototype.SetBackgroundColor=function(a){this.foundationJQObject.css("background-color","#"+a)};var UserSettings=function(a){var c=null;if(a.ViewsEnabled===null){c=new Error('"serverCustomizationSettings.ViewsEnabled" may not be null in UserSettings().')}if(a.DefaultView===null){c=new Error('"serverCustomizationSettings.DefaultView" may not be null in UserSettings().')}if(a.ReturnVisitBehavior===null){c=new Error('"serverCustomizationSettings.ReturnVisitBehavior" may not be null in UserSettings().')}if(a.DefaultZoomLevel===null){c=new Error('"serverCustomizationSettings.DefaultZoomLevel" may not be null in UserSettings().')}if(a.ZoomBehavior===null){c=new Error('"serverCustomizationSettings.ZoomBehavior" may not be null in UserSettings().')}if(a.DefaultAutoHideToolbar===null){c=new Error('"serverCustomizationSettings.DefaultAutoHideToolbar" may not be null in UserSettings().')}if(c!==null){var b='An error occurred on "'+c.fileName+'" (line #'+c.lineNumber+"). "+c.message;throw new Error(b)}this.fitDimension=this.ConvertServer_DefaultZoomLevel_To_EnuFitDimension(a.DefaultZoomLevel);this.enableSuperZoom=true;this.autoBookmarkLocation=this.ConvertServer_EnuReturnVisitBehavior_To_EnuAutoBookmarkLocation(a.ReturnVisitBehavior);this.enableAutoZoom=false;this.zoomedInBehavior=a.ZoomBehavior;this.enableAutoToolbarHide=a.DefaultAutoHideToolbar;this.viewMode=this.ConvertServer_DefaultView_To_EnuViewMode(a.DefaultView)};UserSettings.prototype.ConvertServer_DefaultZoomLevel_To_EnuFitDimension=function(b){var a=EnuFitDimension.unknown;switch(b){case 0:a=EnuFitDimension.unknown;break;case 1:a=EnuFitDimension.screen;break;case 2:a=EnuFitDimension.width;break;case 3:a=EnuFitDimension.height;break}return a};UserSettings.prototype.ConvertServer_EnuReturnVisitBehavior_To_EnuAutoBookmarkLocation=function(a){var b=EnuAutoBookmarkLocation.unknown;switch(a){case 0:b=EnuAutoBookmarkLocation.unknown;break;case 1:b=EnuAutoBookmarkLocation.cover;break;case 2:b=EnuAutoBookmarkLocation.toc;break;case 3:b=EnuAutoBookmarkLocation.lastPage;break}return b};UserSettings.prototype.ConvertServer_DefaultView_To_EnuViewMode=function(b){var a=EnuViewMode.unknown;switch(b){case 0:a=EnuViewMode.unknown;break;case 1:a=EnuViewMode.SinglePage;break;case 2:a=EnuViewMode.MultiplePage;break}return a};var ViewPageLabelController=function(d,b,a,f){this.bottomBarJQObject=$(document.createElement("div")).addClass("ViewPageBottomBar");this.descriptionJQObject=$(document.createElement("div")).addClass("ViewPageBottomBarDescription").html('<img src="/Content/images/Badge_NEW_Angled.png" alt="New feature" class="NewFeatureIcon" />'+d);this.labelJQObject=$(document.createElement("div")).addClass("ViewPageBottomBarPageLabel TextButton");this.bottomBarJQObject.append(this.labelJQObject);this.bottomBarJQObject.append(this.descriptionJQObject);this.click=new CustomEvent("click",this);this.pageLabelFormat=b;this.pageLabel=null;this.sourceEditionUrl=null;this.Set(a,f);this.AddEventHandlers();var e={contentSelector:'$("#SuperTocDescriptionTooltip")',positions:"top",width:675,cornerRadius:15,trigger:"hover",padding:5,fill:"white",cornerRadius:10,shadow:true,shadowOffsetX:3,shadowOffsetY:3,shadowBlur:3,shadowColor:"rgba(0,0,0,.9)",shadowOverlap:false,noShadowOpts:{strokeStyle:"#999",strokeWidth:2}};this.descriptionJQObject.bt(e);this.bottomBarJQObject.css({bottom:-60});var c=this.bottomBarJQObject;setTimeout(function(){c.animate({bottom:0},2000)},1000)};ViewPageLabelController.prototype.Set=function(a,b){this.pageLabel=(a)?this.pageLabelFormat.replace("{0}",a):"";this.sourceEditionUrl=(b)?b:null;this.Update()};ViewPageLabelController.prototype.Update=function(){this.labelJQObject.html(this.pageLabel);if(this.sourceEditionUrl){this.labelJQObject.addClass("Clickable")}else{this.labelJQObject.removeClass("Clickable")}};ViewPageLabelController.prototype.AddEventHandlers=function(){var a=this;var b=function(){if(a.sourceEditionUrl){a.click.Fire(a.sourceEditionUrl)}};this.labelJQObject.click(b)};ViewPageLabelController.prototype.AppendToParent=function(a){a.append(this.bottomBarJQObject)};ViewPageLabelController.prototype.SetBottomLocation=function(a){if(parseInt(this.bottomBarJQObject.css("bottom"),10)>=0){this.bottomBarJQObject.css("bottom",a)}};ViewPageLabelController.prototype.AddTooltip=function(b,c,a){b.attr("title",c);if(!a){a={track:true,delay:500,showBody:" - ",showURL:false}}b.tooltip(a)};var UsageController=function(d,c){var b=null;if(d.LoggingEndpointUri==null){b=new Error('"readerStartupParams.LoggingEndpointUri" may not be null in UsageController().')}if(d.LoggingIntervalSeconds==null){b=new Error('"readerStartupParams.LoggingIntervalSeconds" may not be null in UsageController().')}if(d.GoogleAnalyticsUrlSchema==null){b=new Error('"readerStartupParams.GoogleAnalyticsUrlSchema" may not be null in UsageController().')}if(d.UserToken==null){b=new Error('"readerStartupParams.UserToken" may not be null in UsageController().')}if(d.SessionID==null){b=new Error('"readerStartupParams.SessionID" may not be null in UsageController().')}if(c==null){b=new Error('"readerEnvironment" may not be null in UsageController().')}if(b!==null){var a='An error occurred on "'+b.fileName+'" (line #'+b.lineNumber+"). "+b.message;throw new Error(a)}this.serverValueMappingObject=new UsageValueClientServerMappings(UsageRecordValueConstants);Object.checkProperties(this.serverValueMappingObject,"UsageController.serverValueMappingObject");this.loggingController=new LoggingEndpointController(d.LoggingEndpointUri,d.LoggingIntervalSeconds);this.userToken=d.UserToken;this.userTokenIsPrivileged=d.UserTokenIsPrivileged;this.sessionID=d.SessionID;UsageRecordValueConstants.UsageRecordSharedInfo={};UsageRecordValueConstants.UsageRecordSharedInfo.sessionID=this.sessionID;UsageRecordValueConstants.UsageRecordSharedInfo.editionID=d.Edition.EditionID;UsageRecordValueConstants.UsageRecordSharedInfo.environment=c;this.publicationGATracker=null;this.internalGATracker=null;this.gaUrlSchema=d.GoogleAnalyticsUrlSchema;this.publicationName=d.PublicationName;if((d.PublicationGoogleAnalyticsID!="Disabled")&&(d.PublicationGoogleAnalyticsID!=="")&&(d.PublicationGoogleAnalyticsID!==null)){this.publicationGATracker=_gat._createTracker(d.PublicationGoogleAnalyticsID,"publicationGATrackerTracker");this.publicationGATracker._setAllowHash(false);LogToConsole("GA visit tracked.")}if((d.MetaPressGoogleAnalyticsID!="Disabled")&&(d.MetaPressGoogleAnalyticsID!=="")&&(d.MetaPressGoogleAnalyticsID!==null)){this.internalGATracker=_gat._createTracker(d.MetaPressGoogleAnalyticsID,"internalGATracker");this.internalGATracker._setAllowHash(false)}this.GoogleAnalytics_SetSessionCustomVariables();this.readerLoaded=false;this.storedGAEvents=[];this.ListenToLoggingEndpointController();this.loggingSuccesses=0;this.loggingFailures=0;this.usageCount=0;this.usageLoggedCount=0;this.currentBlowInEvent=null;this.previousViewChangeEventJson=null;this.readerController=null};UsageController.prototype.HookToReader=function(a){this.readerController=a;this.ListenToReader()};UsageController.prototype.RecordCodeError=function(b){var a=new ReaderClientCodeError(b);this.LogEvent(a);this.loggingController.ForceLogSend()};UsageController.prototype.OnCodeError=function(a){this.RecordCodeError(a.paramObject)};UsageController.prototype.OnInitialLoad=function(g){try{var e=new InitialLoadEvent(g.paramObject.valueOf());this.LogEvent(e);var a=document.body.getBoundingClientRect();var f=null;if(($.browser.name=="msie")&&($.browser.versionNumber>=8)){f=window.screen.deviceYDPI/96}var c=new SessionClientInfoUpdateEvent(screen.colorDepth,screen.width,screen.height,f);this.LogEvent(c);this.loggingController.ForceLogSend();this.readerLoaded=true;this.GoogleAnalytics_TrackStoredEvents()}catch(d){this.RecordCodeError(d.message)}};UsageController.prototype.OnPageImageLoad=function(d){try{var a=d.paramObject.url.substring(0,d.paramObject.url.indexOf("?"));var c=new ImagePageResponseEvent(a,d.paramObject.responseTime.valueOf(),false);this.LogEvent(c);this.GoogleAnalytics_LogDiagnostics("Image Load",a,d.paramObject.responseTime.valueOf())}catch(b){this.RecordCodeError(b.message)}};UsageController.prototype.OnPageImageError=function(d){try{var a=d.paramObject.url.substring(0,d.paramObject.url.indexOf("?"));var c=new ImagePageResponseEvent(a,d.paramObject.responseTime.valueOf(),true);this.LogEvent(c);this.GoogleAnalytics_LogDiagnostics("Image Error",a,d.paramObject.responseTime.valueOf())}catch(b){this.RecordCodeError(b.message)}};UsageController.prototype.OnPageSetImageErrorExceeded=function(c){try{var b=new PageSetImageErrorExceededEvent(c.paramObject.lastErroredUrl,c.paramObject.pageSetImageErrorCount,c.paramObject.pageSetImageErrorLimit);this.LogEvent(b)}catch(a){this.RecordCodeError(a.message)}};UsageController.prototype.OnPageSetLoad=function(c){try{this.loggingController.StartSendUsageInterval();var b=new PageSetLoadEvent(c.paramObject.pageSetID,c.paramObject.loadTime,c.paramObject.isInView,c.paramObject.isInitialLoad);this.LogEvent(b)}catch(a){this.RecordCodeError(a.message)}};UsageController.prototype.OnViewChange=function(){try{var a=this;clearTimeout(this.onViewChangeTimeout);var b=function(){var d=a.readerController.GetViewRectangles();if(d.pageSet){var g=a.readerController.GetCurrentImagePageIDs();var f=(g.length==1)?g[0]:null;var e=a.readerController.BlowInOpen();var h=new ViewChangeEvent(a.readerController.GetCurrentPageSetID(),f,a.GetCurrentAccessDeniedImagePageIDs(),(f!=null),d.viewPane,d.viewStage,d.pageSet,e);a.LogEvent(h);a.GoogleAnalytics_TrackPageSetView(h)}};this.onViewChangeTimeout=setTimeout(b,100)}catch(c){this.RecordCodeError(c.message)}};UsageController.prototype.JsonizeViewChangeEvent=function(b){var a=CloneObject(b);a.ClientTimeStampUTC=null;var c=Object.removeFunctions(a);var d=$.toJSON(c);return d};UsageController.prototype.OnStartViewDrag=function(c){try{var b=new DragEvent(true);this.LogEvent(b)}catch(a){this.RecordCodeError(a.message)}};UsageController.prototype.OnEndViewDrag=function(c){try{var b=new DragEvent(false);this.LogEvent(b)}catch(a){this.RecordCodeError(a.message)}};UsageController.prototype.OnZoom=function(c){try{var b=new ZoomEvent(c.paramObject);this.LogEvent(b)}catch(a){this.RecordCodeError(a.message)}};UsageController.prototype.OnButtonClick=function(d){try{var a=this.serverValueMappingObject.Button[d.paramObject.uiComponent][d.paramObject.buttonName];if(a===null){throw new Error('Server ID for button "'+d.paramObject.buttonName+'" in component "'+d.paramObject.uiComponent+'" was not found in client server mappings.')}var c=new ButtonTriggerEvent(a,this.readerController.GetCurrentPageSetID());this.LogEvent(c)}catch(b){this.RecordCodeError(b.message)}};UsageController.prototype.OnLinkClick=function(e){try{var a=this.serverValueMappingObject.UIComponent[e.paramObject.uiComponent];if(a===null){throw new Error('Server ID for uiComponent "'+e.paramObject.uiComponent+'" was not found in client server mappings.')}var c=e.paramObject.linkType;var d=new LinkTriggerEvent(c,e.paramObject.url,a,e.paramObject.contentItemID,e.paramObject.contentBoxID,e.paramObject.pageSetID,e.paramObject.imagePageID,e.paramObject.blowInID,e.paramObject.hitResultID);this.LogEvent(d)}catch(b){this.RecordCodeError(b.message)}};UsageController.prototype.OnPageClick=function(c){try{var b=new PageClickEvent(c.paramObject.left,c.paramObject.top,c.paramObject.pageID);this.LogEvent(b)}catch(a){this.RecordCodeError(a.message)}};UsageController.prototype.OnPageSetChange=function(c){try{var b=new PageSetChangeEvent(c.paramObject.fromPageSetID,c.paramObject.toPageSetID,c.paramObject.changeTime.valueOf());this.LogEvent(b)}catch(a){this.RecordCodeError(a.message)}};UsageController.prototype.OnSettingsSave=function(f){try{var a=Object.getPropertiesFromValue(EnuFitDimension,f.paramObject.fitDimension);var g=this.serverValueMappingObject.SettingsFitToOption[a];var c=Object.getPropertiesFromValue(EnuAutoBookmarkLocation,f.paramObject.autoBookmarkLocation);var b=this.serverValueMappingObject.SettingsAutoBookmarkingOption[c];var e=new SettingSaveEvent(g,f.paramObject.enableSuperZoom,b,f.paramObject.enableAutoZoom,f.paramObject.enableAutoToolbarHide);this.LogEvent(e)}catch(d){this.RecordCodeError(d.message)}};UsageController.prototype.OnShortcutKeyPress=function(d){try{var b=this.serverValueMappingObject.ShortcutKey[d.paramObject];var c=new ShortcutKeyEvent(b);this.LogEvent(c)}catch(a){this.RecordCodeError(a.message)}};UsageController.prototype.OnThumbnailTrigger=function(c){try{var b=new ThumbnailViewThumbnailTriggerEvent(c.paramObject.pageSetID,c.paramObject.pageID);this.LogEvent(b)}catch(a){this.RecordCodeError(a.message)}};UsageController.prototype.OnBlowInOpen=function(b){try{this.currentBlowInEvent=new BlowInViewEvent(b.paramObject,this.readerController.GetCurrentPageSetID());this.LogEvent(this.currentBlowInEvent)}catch(a){this.RecordCodeError(a.message)}};UsageController.prototype.OnBlowInClose=function(b){try{if(this.currentBlowInEvent!==null){this.currentBlowInEvent.MarkBlowInClose();this.LogEvent(this.currentBlowInEvent);this.currentBlowInEvent=null}}catch(a){this.RecordCodeError(a.message)}};UsageController.prototype.OnMediaEvent=function(e){try{var b=e.paramObject;var a=this.serverValueMappingObject.MediaEventTypes[b.eventType];var d=new MediaEvent(b.mediaID,b.blowInID,b.contentBoxID,a,b.position,b.totalPlayTime,b.volume,b.isFullscreen,this.readerController.GetCurrentPageSetID());this.LogEvent(d)}catch(c){this.RecordCodeError(c.message)}};UsageController.prototype.OnBeforeUnload=function(){try{var b=new UnloadEvent();this.LogEvent(b);this.loggingController.ForceLogSend()}catch(a){this.RecordCodeError(a.message)}};UsageController.prototype.OnArchivesMetadataTrigger=function(c){try{var d=c.paramObject;var b=new ArchivesMetadataTriggerEvent(d);this.LogEvent(b)}catch(a){this.RecordCodeError(a)}};UsageController.prototype.OnZoomSliderChange=function(d){try{var a=d.paramObject;var c=new ZoomSliderChangeEvent(a.oldZoomLevel,a.newZoomLevel);this.LogEvent(c)}catch(b){this.RecordCodeError(b)}};UsageController.prototype.OnTouchEvent=function(d){try{var a=d.paramObject;var c=new TouchEvent(a.touchType,a.touchLocation);this.LogEvent(c)}catch(b){this.RecordCodeError(b)}};UsageController.prototype.ListenToReader=function(){var a=this;this.readerController.pageImageLoad.Subscribe(a.OnPageImageLoad,this);this.readerController.pageImageError.Subscribe(a.OnPageImageError,this);this.readerController.initialLoad.Subscribe(a.OnInitialLoad,this);this.readerController.viewChange.Subscribe(a.OnViewChange,this);this.readerController.startViewDrag.Subscribe(a.OnStartViewDrag,this);this.readerController.endViewDrag.Subscribe(a.OnEndViewDrag,this);this.readerController.zoom.Subscribe(a.OnZoom,this);this.readerController.buttonClick.Subscribe(a.OnButtonClick,this);this.readerController.linkClick.Subscribe(a.OnLinkClick,this);this.readerController.pageClick.Subscribe(a.OnPageClick,this);this.readerController.pageSetChange.Subscribe(a.OnPageSetChange,this);this.readerController.settingSave.Subscribe(a.OnSettingsSave,this);this.readerController.shortcutKeyPress.Subscribe(a.OnShortcutKeyPress,this);this.readerController.thumbnailClick.Subscribe(a.OnThumbnailTrigger,this);this.readerController.blowInOpen.Subscribe(a.OnBlowInOpen,this);this.readerController.blowInClose.Subscribe(a.OnBlowInClose,this);this.readerController.mediaEvent.Subscribe(a.OnMediaEvent,this);this.readerController.beforeUnload.Subscribe(a.OnBeforeUnload,this);this.readerController.pageSetImageErrorExceeded.Subscribe(a.OnPageSetImageErrorExceeded,this);this.readerController.pageSetLoad.Subscribe(a.OnPageSetLoad,this);this.readerController.codeError.Subscribe(a.OnCodeError,this);this.readerController.archivesMetadataTrigger.Subscribe(a.OnArchivesMetadataTrigger,this);this.readerController.zoomSliderChange.Subscribe(a.OnZoomSliderChange,this);this.readerController.touchEvent.Subscribe(a.OnTouchEvent,this)};UsageController.prototype.GetCurrentAccessDeniedImagePageIDs=function(){var a=this.readerController.GetCurrentPageSetMetadata();return a.accessDeniedImagePageIDs};UsageController.prototype.OnLoggingSuccess=function(b){var a=b.paramObject;this.usageLoggedCount+=a;this.loggingSuccesses++};UsageController.prototype.OnLoggingFail=function(a){this.loggingFailures++};UsageController.prototype.ListenToLoggingEndpointController=function(){var a=this;this.loggingController.logsSent.Subscribe(a.OnLoggingSuccess,this);this.loggingController.logsFailed.Subscribe(a.OnLoggingFail,this)};UsageController.prototype.LogEvent=function(b){var a=Object.removeFunctions(b);this.usageCount++;this.loggingController.LogUsage(a)};UsageController.prototype.GoogleAnalytics_CreatePageUrls=function(b){var j=this.readerController.GetEditionMetadata();var e=[];var h={publication:this.readerController.publicationName,year:j.date.getFullYear(),quarter:"Quarter"+Math.ceil((j.date.getMonth()+1)/3),month:MonthArray[j.date.getMonth()],day:"Day"+j.date.getDate(),groupName:j.groupUrlEncodedName,name:j.urlEncodedName,revision:j.revisionOrder,pages:""};var g=this.readerController.GetCurrentPageSetMetadata();for(var d=0;d<b.length;d++){var c=b[d];var f=g.pageMetadataArray[c].label.replace(" ","");if(f===""){f="NoLabel"}h.pages=f;var a=String.extendedReplace(this.gaUrlSchema,h);e.push(a)}return e};UsageController.prototype.GoogleAnalytics_TrackPageSetView=function(){var c=this.readerController.GetPageIndexesInView();var a=this.GoogleAnalytics_CreatePageUrls(c);for(var b=0;b<a.length;b++){this.GoogleAnalytics_TrackPageView(a[b])}};UsageController.prototype.GoogleAnalytics_TrackPageView=function(a){if(this.publicationGATracker!==null){this.publicationGATracker._trackPageview(a);LogToConsole("GA page view tracked ("+a+").")}if(this.internalGATracker!==null){this.internalGATracker._trackPageview("/"+this.publicationName+a)}};UsageController.prototype.GoogleAnalytics_LogDiagnostics=function(d,a,c){if(this.internalGATracker!==null){var b="Diagnostics";this.GoogleAnalytics_TrackEvent(new GoogleAnalyticsTrackEventObject(this.internalGATracker,b,d,a,c))}};UsageController.prototype.GoogleAnalytics_TrackEvent=function(a){if(a.gaObject!==null){if(this.readerLoaded){if(!a.gaObject._trackEvent(a.category,a.action,a.label,a.value)){throw new Error("Google Analytics track event failed.")}}else{this.storedGAEvents.push(a)}}};UsageController.prototype.GoogleAnalytics_TrackStoredEvents=function(){while(this.storedGAEvents.length>1){this.GoogleAnalytics_TrackEvent(this.storedGAEvents.pop())}};UsageController.prototype.GoogleAnalytics_SetSessionCustomVariables=function(){var d=1;var a="TokenStatus";var c="none";if(this.userToken){c=(this.userTokenIsPrivileged)?"privileged":"regular"}var b=2;if(this.publicationGATracker!==null){this.publicationGATracker._setCustomVar(d,a,c,b)}if(this.internalGATracker!==null){this.internalGATracker._setCustomVar(d,a,c,b)}};var GoogleAnalyticsTrackEventObject=function(b,c,e,a,d){this.gaObject=b;this.category=c;this.action=e;this.label=a;this.value=d};var UsageRecord=function(c,b,d,a){if(arguments.length>0){this.UsageRecordConstructor(c,b,d,a)}};UsageRecord.prototype.UsageRecordConstructor=function(d,b,e,a){this.EventTypeID=d;this.EditionID=b;var c=new Date();this.ClientTimeStampUTC=c.valueOf();this.SessionID=e;this.ReaderEnvironment=a};var ReaderClientCodeError=function(a){this.ErrorMessage=a;UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.ClientCodeError,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);Object.checkProperties(this,"ReaderClientCodeError")};ReaderClientCodeError.prototype=new UsageRecord();ReaderClientCodeError.constructor=ReaderClientCodeError;var PageSetLoadEvent=function(d,c,a,b){this.PageSetID=d;this.LoadTimeMilliseconds=c;this.IsInView=a;this.IsInitialLoad=b;UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.PageSetLoad,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);Object.checkProperties(this,"PageSetLoadEvent")};PageSetLoadEvent.prototype=new UsageRecord();PageSetLoadEvent.constructor=PageSetLoadEvent;var PageSetImageErrorExceededEvent=function(a,b,c){this.LastErroredUrl=a;this.PageSetImageErrorCount=b;this.PageSetImageErrorLimit=c;this.S3ErrorMessage="";UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.PageSetImageErrorExceeded,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);Object.checkProperties(this,"PageSetImageErrorExceededEvent")};PageSetImageErrorExceededEvent.prototype=new UsageRecord();PageSetImageErrorExceededEvent.constructor=PageSetImageErrorExceededEvent;var UnloadEvent=function(){UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.Unload,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);Object.checkProperties(this,"UnloadEvent")};UnloadEvent.prototype=new UsageRecord();UnloadEvent.prototype.constructor=UnloadEvent;var ButtonTriggerEvent=function(a,b){this.ButtonID=a;this.PageSetID=b;UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.ButtonTrigger,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);Object.checkProperties(this,"ButtonTriggerEvent")};ButtonTriggerEvent.prototype=new UsageRecord();ButtonTriggerEvent.prototype.constructor=ButtonTriggerEvent;var ImagePageResponseEvent=function(a,c,b){this.Url=a;this.ResponseTimeMilliseconds=c;this.WasError=b;UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.ImagePageResponse,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);Object.checkProperties(this,"ImagePageResponseEvent")};ImagePageResponseEvent.prototype=new UsageRecord();ImagePageResponseEvent.prototype.constructor=ImagePageResponseEvent;var InitialLoadEvent=function(a){this.LoadTimeMilliseconds=a;UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.InitialLoad,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);Object.checkProperties(this,"InitialLoadEvent")};InitialLoadEvent.prototype=new UsageRecord();InitialLoadEvent.prototype.constructor=InitialLoadEvent;var SessionClientInfoUpdateEvent=function(a,c,d,b){this.ScreenWidth=c;this.ScreenHeight=d;this.ScreenColorDepth=a;this.BrowserZoomLevel=b;this.ClientTimeStampUTC=new Date().valueOf();UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.SessionClientInfoUpdate,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);Object.checkProperties(this,"SessionClientInfoUpdateEvent")};SessionClientInfoUpdateEvent.prototype=new UsageRecord();SessionClientInfoUpdateEvent.prototype.constructor=SessionClientInfoUpdateEvent;var BlowInViewEvent=function(a,b){this.BlowInID=a;this.PageSetID=b;this.ClientTimeStampUTC_END=null;UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.BlowInView,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);Object.checkProperties(this,"BlowInViewEvent",["ContentItemID"])};BlowInViewEvent.prototype=new UsageRecord();BlowInViewEvent.prototype.constructor=BlowInViewEvent;BlowInViewEvent.prototype.MarkBlowInClose=function(){this.ClientTimeStampUTC_END=new Date().valueOf()};var LinkTriggerEvent=function(g,b,d,a,e,f,h,c,i){this.UrlTypeID=g;this.Url=b;this.UIComponentID=d;this.ContentItemID=(a==undefined)?null:a;this.ContentBoxID=(e==undefined)?null:e;this.PageSetID=(f==undefined)?null:f;this.ImagePageID=(h==undefined)?null:h;this.BlowInID=(c==undefined)?null:c;this.HitResultID=(i==undefined)?null:i;UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.LinkTrigger,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);Object.checkProperties(this,"LinkTriggerEvent",["ContentItemID"])};LinkTriggerEvent.prototype=new UsageRecord();LinkTriggerEvent.prototype.constructor=LinkTriggerEvent;var PageClickEvent=function(c,b,a){this.MouseLeft=c;this.MouseTop=b;this.ImagePageID=a;UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.PageClick,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);Object.checkProperties(this,"PageClickEvent")};PageClickEvent.prototype=new UsageRecord();PageClickEvent.prototype.constructor=PageClickEvent;var PageSetChangeEvent=function(c,a,b){this.FromPageSetID=c;this.ToPageSetID=a;this.ChangeTimeMilliseconds=b;UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.PageSetChange,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);Object.checkProperties(this,"PageSetChangeEvent")};PageSetChangeEvent.prototype=new UsageRecord();PageSetChangeEvent.prototype.constructor=PageSetChangeEvent;var DragEvent=function(a){this.IsDragStart=a;UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.Drag,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);Object.checkProperties(this,"DragEvent")};DragEvent.prototype=new UsageRecord();DragEvent.prototype.constructor=DragEvent;var ZoomEvent=function(a){this.IsZoomIn=a;UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.Zoom,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);Object.checkProperties(this,"ZoomEvent")};ZoomEvent.prototype=new UsageRecord();ZoomEvent.prototype.constructor=ZoomEvent;var SettingSaveEvent=function(e,c,b,d,a){this.FitToID=e;this.EnableSuperZoom=c;this.AutoBookmarkingID=b;this.EnableAutoZoom=d;this.EnableAutoToolbarHide=a;UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.SettingsSave,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);Object.checkProperties(this,"SettingSaveEvent")};SettingSaveEvent.prototype=new UsageRecord();SettingSaveEvent.prototype.constructor=SettingSaveEvent;var ShortcutKeyEvent=function(a){this.ShortcutKeyID=a;UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.ShortcutKeyPress,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);Object.checkProperties(this,"ShortcutKeyEvent")};ShortcutKeyEvent.prototype=new UsageRecord();ShortcutKeyEvent.prototype.constructor=ShortcutKeyEvent;var ThumbnailViewThumbnailTriggerEvent=function(b,a){this.PageSetID=b;this.ImagePageID=a;UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.ThumbnailViewThumbnailTrigger,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);Object.checkProperties(this,"ThumbnailViewThumbnailTriggerEvent")};ThumbnailViewThumbnailTriggerEvent.prototype=new UsageRecord();ThumbnailViewThumbnailTriggerEvent.prototype.constructor=ThumbnailViewThumbnailTriggerEvent;var ViewChangeEvent=function(a,c,h,e,d,i,f,b){this.PageSetID=a;this.ImagePageID=(c==undefined)?null:c;this.AccessDeniedImagePageIDs=h;this.IsOneUpView=e;this.ViewPaneWidthPX=Math.round(d.width);this.ViewPaneHeightPX=Math.round(d.height);this.ViewStageLeftPX=Math.round(i.left);this.ViewStageTopPX=Math.round(i.top);this.ViewStageWidthPX=Math.round(i.width);this.ViewStageHeightPX=Math.round(i.height);this.PageSetLeftPX=Math.round(f.left);this.PageSetTopPX=Math.round(f.top);this.PageSetWidthPX=Math.round(f.width);this.PageSetHeightPX=Math.round(f.height);this.ViewWidthPercentage=0;this.ViewHeightPercentage=0;this.ViewLeftPercentage=0;this.ViewTopPercentage=0;this.IsObscured=b;UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.ViewChange,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);var g=["ImagePageID"];Object.checkProperties(this,"ViewChangeEvent",g)};ViewChangeEvent.prototype=new UsageRecord();ViewChangeEvent.prototype.constructor=ViewChangeEvent;var MediaEvent=function(i,a,b,j,g,d,f,h,c){this.MediaID=i;this.BlowInID=(a==undefined)?null:a;this.ContentBoxID=(b==undefined)?null:b;this.ReaderMediaEventTypeID=j;this.Position_Seconds=(g==undefined)?null:g;if(isNaN(d)){throw new Error("The totalTimePlayed parameter in MediaEvent() is NaN.")}this.TotalTimePlayed_Seconds=(d==undefined)?null:d;this.Volume=(f==undefined)?null:f;this.IsFullscreen=(h==undefined)?null:h;this.PageSetID=c;UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.Media,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);var e=["BlowInID","ContentBoxID","Position_Seconds","TotalTimePlayed_Seconds","Volume","IsFullscreen"];Object.checkProperties(this,"MediaEvent",[undefined,null],e)};MediaEvent.prototype=new UsageRecord();MediaEvent.prototype.constructor=MediaEvent;var ArchivesMetadataTriggerEvent=function(a){this.RequestedMetadataEditionID=a;UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.ArchivesMetadataTrigger,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);Object.checkProperties(this,"ArchivesMetadataTriggerEvent")};ArchivesMetadataTriggerEvent.prototype=new UsageRecord();ArchivesMetadataTriggerEvent.prototype.constructor=ArchivesMetadataTriggerEvent;var ZoomSliderChangeEvent=function(b,a){this.PreviousZoomLevel=b;this.NewZoomLevel=a;UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.ZoomSliderChange,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);Object.checkProperties(this,"ZoomSliderChangeEvent")};ZoomSliderChangeEvent.prototype=new UsageRecord();ZoomSliderChangeEvent.prototype.constructor=ZoomSliderChangeEvent;var TouchEvent=function(b,a){this.TouchType=b;this.TouchLeft=(a===undefined)?null:a.left;this.TouchTop=(a===undefined)?null:a.top;UsageRecord.call(this,UsageRecordValueConstants.UsageEventTypes.ViewTouch,UsageRecordValueConstants.UsageRecordSharedInfo.editionID,UsageRecordValueConstants.UsageRecordSharedInfo.sessionID,UsageRecordValueConstants.UsageRecordSharedInfo.environment);var c=["TouchLeft","TouchTop"];Object.checkProperties(this,"TouchEvent",[undefined,null],c)};TouchEvent.prototype=new UsageRecord();TouchEvent.prototype.constructor=TouchEvent;var UsageValueClientServerMappings=function(a){this.SearchFilterContentOption=new SearchFilterContentOptionClientServerMapping(UsageRecordValueConstants.SearchFilterContentOptions);this.SettingsFitToOption=new FitToOptionClientServerMapping(UsageRecordValueConstants.SettingsFitToOptions);this.SettingsAutoBookmarkingOption=new AutoBookmarkingOptionClientServerMapping(UsageRecordValueConstants.SettingsAutoBookmarkingOptions);this.ShortcutKey=new ShortCutKeyClientServerMapping(UsageRecordValueConstants.ShortcutKeys);this.UIComponent=new UIComponentClientServerMapping(UsageRecordValueConstants.UIComponents);this.UrlType=new UrlTypeClientServerMapping(UsageRecordValueConstants.UrlTypes);this.Button=new ButtonClientServerMapping(UsageRecordValueConstants.Buttons,this.UIComponent);this.MediaEventTypes=new MediaEventTypeServerMapping(UsageRecordValueConstants.MediaEventTypes)};var SearchFilterContentOptionClientServerMapping=function(a){this.adOnly=a.AdOnly;this.allContent=a.AllContent;this.editorialOnly=a.EditorialOnly};var UrlTypeClientServerMapping=function(a){this.sameIssue=a.SameIssue;this.unknown=a.Unknown};var UIComponentClientServerMapping=function(a){this.Toolbar=a.Toolbar;this.LeftSidebar=a.LeftSidebar;this.RightSidebar=a.RightSidebar;this.PageSet=a.PageSet;this.Page=a.Page;this.SearchDialog=a.SearchDialog;this.ThumbnailsView=a.ThumbnailsView;this.TocDialog=a.TocDialog;this.ShareDialog=a.ShareDialog;this.ArchivesDialog=a.ArchivesDialog;this.SettingsDialog=a.SettingsDialog;this.Media=a.Media;this.BlowIn=a.BlowIn;this.LoginDialog=a.LoginDialog;this.MobileToolbar=a.MobileToolbar;this.Leaderboard=a.Leaderboard;this.Turnaway=a.Turnaway;this.PrintDialog=a.PrintDialog};var FitToOptionClientServerMapping=function(a){this.width=a.Width;this.height=a.Height;this.screen=a.View};var AutoBookmarkingOptionClientServerMapping=function(a){this.cover=a.Cover;this.toc=a.TableOfContents;this.lastPage=a.LastPage};var ShortCutKeyClientServerMapping=function(a){this.pageDown=a.PageDown;this.pageUp=a.PageUp;this.space=a.Space;this.shiftSpace=a["Shift + Space"];this.home=a.Home;this.end=a.End;this.leftArrow=a.LeftArrow;this.rightArrow=a.RightArrow;this.upArrow=a.UpArrow;this.downArrow=a.DownArrow;this.enter=a.Enter;this.w=a.W;this.h=a.H;this.s=a.S;this.escape=a.Escape;this.ctrlP=a["Ctrl + P"]};var MediaEventTypeServerMapping=function(a){this.unknown=a.Unknown;this.load=a.Load;this.unload=a.Unload;this.error=a.Error;this.flashNotInstalled=a.FlashNotInstalled;this.start=a.Start;this.resume=a.Resume;this.seek=a.Seek;this.pause=a.Pause;this.stop=a.Stop;this.finish=a.Finish;this.fullscreen=a.Fullscreen;this.fullscreenExit=a.FullscreenExit;this.volumeChange=a.VolumeChange;this.mute=a.Mute;this.unmute=a.Unmute};var ButtonClientServerMapping=function(a,b){this.Toolbar=new ToolbarButtonClientServerMapping(a[b.Toolbar]);this.MobileToolbar=new MobileToolbarButtonClientServerMapping(a[b.MobileToolbar]);this.LeftSidebar=new LeftSidebarButtonClientServerMapping(a[b.LeftSidebar]);this.PageSet=new PageSetButtonClientServerMapping(a[b.PageSet]);this.Page=new PageButtonClientServerMapping(a[b.Page]);this.RightSidebar=new RightSidebarButtonClientServerMapping(a[b.RightSidebar]);this.SearchDialog=new SearchDialogButtonClientServerMapping(a[b.SearchDialog]);this.ThumbnailsView=new ThumbnailsViewButtonClientServerMapping(a[b.ThumbnailsView]);this.TocDialog=new TocDialogButtonClientServerMapping(a[b.TocDialog]);this.ShareDialog=new ShareDialogButtonClientServerMapping(a[b.ShareDialog]);this.ArchivesDialog=new ArchivesDialogButtonClientServerMapping(a[b.ArchivesDialog]);this.SettingsDialog=new SettingsDialogButtonClientServerMapping(a[b.SettingsDialog]);this.Media=new MediaButtonClientServerMapping(a[b.Media]);this.BlowIn=new BlowInButtonClientServerMapping(a[b.BlowIn]);this.LoginDialog=new LoginDialogButtonClientServerMapping(a[b.LoginDialog]);this.Turnaway=new TurnawayButtonClientServerMapping(a[b.Turnaway]);this.PrintDialog=new PrintDialogButtonClientServerMapping(a[b.PrintDialog])};var ArchivesDialogButtonClientServerMapping=function(a){this.CarouselNext=a.CarouselNext;this.CarouselPrevious=a.CarouselPrevious;this.Close=a.Close};var BlowInButtonClientServerMapping=function(a){};var LeftSidebarButtonClientServerMapping=function(a){this.FirstPage=a.FirstPage;this.LastPage=a.LastPage;this.NextPage=a.NextPage;this.PreviousPage=a.PreviousPage};var MediaButtonClientServerMapping=function(a){};var PageButtonClientServerMapping=function(a){};var PageSetButtonClientServerMapping=function(a){};var RightSidebarButtonClientServerMapping=function(a){this.FirstPage=a.FirstPage;this.LastPage=a.LastPage;this.NextPage=a.NextPage;this.PreviousPage=a.PreviousPage};var SearchDialogButtonClientServerMapping=function(a){this.Close=a.Close;this.Options=a.Options;this.ResultsPage=a.ResultsPage;this.Search=a.Search};var SettingsDialogButtonClientServerMapping=function(a){this.Cancel=a.Cancel;this.Close=a.Close;this.Save=a.Save};var ShareDialogButtonClientServerMapping=function(a){this.Close=a.Close;this.EmailSend=a.EmailSend};var ThumbnailsViewButtonClientServerMapping=function(a){this.Close=a.Close};var TocDialogButtonClientServerMapping=function(a){this.AdOnlyLinkFilter=a.AdOnlyLinkFilter;this.Close=a.Close;this.EditorialOnlyLinkFilter=a.EditorialOnlyLinkFilter;this.LinkIndexInfoSort=a.LinkIndexInfoSort;this.LinkIndexLinkSort=a.LinkIndexLinkSort;this.LinkIndexPageSort=a.LinkIndexPageSort;this.LinkIndexTab=a.LinkIndexTab;this.LinkIndexTypeSort=a.LinkIndexTypeSort;this.RemoveLinkFilter=a.RemoveLinkFilter;this.TocTab=a.TocTab};var ToolbarButtonClientServerMapping=function(a){this.Archives=a.Archives;this.NextPage=a.NextPage;this.PreviousPage=a.PreviousPage;this.Publication=a.Publication;this.Search=a.Search;this.Settings=a.Settings;this.Share=a.Share;this.Subscribe=a.Subscribe;this.Thumbnails=a.Thumbnails;this.Toc=a.ToC;this.ZoomIn=a.ZoomIn;this.ZoomOut=a.ZoomOut;this.Help=a.Help;this.PrintDialog=a.PrintDialog;this.PrintPageSet=a.PrintPageSet};var LoginDialogButtonClientServerMapping=function(a){this.Close=a.Close;this.Login=a.Login;this.Cancel=a.Cancel};var MobileToolbarButtonClientServerMapping=function(a){this.Archives=a.Archives;this.NextPage=a.NextPage;this.PreviousPage=a.PreviousPage;this.Search=a.Search;this.Share=a.Share;this.Thumbnails=a.Thumbnails;this.Toc=a.ToC;this.ZoomIn=a.ZoomIn;this.ZoomOut=a.ZoomOut;this.Dialog=a.Dialog;this.PageView=a.PageView};var TurnawayButtonClientServerMapping=function(a){this.Subscribe=a.Subscribe;this.Preview=a.Preview;this.Login=a.Login;this.CallForHelp=a.CallForHelp};var PrintDialogButtonClientServerMapping=function(a){this.PrintPageSet=a.PrintPageSet;this.PrintEdition=a.PrintEdition};
