var PageController=(function(){var autoPlay;
var autoPlayFlag=0;
var changePageCallbacks=new Array();
var $=jQuery;
return{currentPage:1,pageLock:0,title:"",folioLabel:function(folio,first){var label;
if(folio){if(folio=="Cover"){label="Front Cover"
}else{if(folio=="IFC"){label="Inside Front Cover"
}else{if(folio=="BC"){label="Back Cover"
}else{if(folio=="IBC"){label="Inside Back Cover"
}else{if(folio.indexOf("Insert")==0){label=folio
}else{if(first){label="Page "+folio
}else{label=folio
}}}}}}}return label
},initPages:function(page){this.currentPage=page||1;
PageModel.normalPagesDiv.empty();
PageView.fitWindow();
PageModel.getPages(this.currentPage,PageView.initPage);
if(document.location.hash.indexOf("article_id")==-1){this.updateButtons()
}if(PageModel.zoomIndex>=(PageModel.zoomLevels.length-1)){PageModel.documentContainerDiv.addClass("max_zoom")
}var params=$("object param[name='wmode']");
$(params).attr("value","transparent");
$("embed").attr("wmode","transparent");
$(params).each(function(){var obj=$(this).parent();
var p=$(obj).parent();
$(obj).wrap("<div></div>");
var h=$(obj).parent().html();
h=h.replace(/value="window"/i,'value="transparent"');
$(obj).remove();
$(p).append(h)
});
if($("#leaderboard").html()){$("#leaderboard").show()
}if($("#skyscraper").html()){$("#skyscraper").show()
}else{$("#skyscraper").css("visibility","hidden")
}},initPageStates:function(){},addChangePageCallback:function(callback){for(x in changePageCallbacks){if(callback==changePageCallbacks[x]){return 
}}changePageCallbacks.push(callback)
},clearChangePageCallbacks:function(){if(changePageCallbacks.length){changePageCallbacks=new Array()
}},applyChangePageCallbacks:function(){for(x in changePageCallbacks){if(typeof changePageCallbacks[x]=="string"){eval(changePageCallbacks[x])
}else{if(typeof changePageCallbacks[x]=="function"){changePageCallbacks[x]()
}}}PageController.clearChangePageCallbacks()
},handleNextPage:function(){if(PageController.pageLock==0){PageController.pageLock=1;
clearTimeout(window.buttonFlashTimer);
var nextPage=PageModel.normalPagesFolioDiv().attr("nextPage");
if(nextPage&&parseInt(nextPage,10)){this.currentPage=parseInt(nextPage,10)
}else{if(this.currentPage==1){this.currentPage+=PageModel.normalPagesPageDivs().size()
}else{this.currentPage+=PageModel.pageMode
}}if(this.currentPage>=PageModel.lastPage){this.currentPage=PageModel.lastPage
}PageModel.getPages(this.currentPage,PageView.changePage)
}else{if(typeof PageElements.dialogs.access_denied=="undefined"){setTimeout(function(){PageController.pageLock=0
},1000)
}}handleNavigationButtons(this.currentPage)
},handlePrevPage:function(){if(PageController.pageLock==0){PageController.pageLock=1;
clearTimeout(window.buttonFlashTimer);
var prevPage=PageModel.normalPagesFolioDiv().attr("prevPage");
if(prevPage&&parseInt(prevPage)){this.currentPage=parseInt(prevPage)
}else{if(this.currentPage>=PageModel.pageMode){this.currentPage-=PageModel.pageMode;
if(this.currentPage==0){this.currentPage=1
}}else{PageController.pageLock=0;
return 
}}PageModel.getPages(this.currentPage,PageView.changePage)
}else{if(typeof PageElements.dialogs.access_denied=="undefined"){setTimeout(function(){PageController.pageLock=0
},1000)
}}handleNavigationButtons(this.currentPage)
},getPageByFolio:function(folio){if(ViewHelper.trueTypeOf(folio)=="regex"){function test_value(p){return folio.test(p)
}}else{function test_value(x){return folio==x
}}for(var p in PageModel.pages){if(test_value(PageModel.pages[p])){return p
}}return false
},handleGoToFolio:function(folio){var page=PageController.getPageByFolio(folio);
if(!isNaN(page)){PageController.handleGoToPage(page)
}},handleGoToFirstPage:function(){var page=1;
handleNavigationButtons(page);
if(PageController.pageLock==0){if(this.currentPage==parseInt(page)){return 
}PageController.pageLock=1;
this.currentPage=parseInt(page);
if(this.currentPage<=1){this.currentPage=1
}if(this.currentPage>=PageModel.lastPage){this.currentPage=PageModel.lastPage
}PageModel.getPages(this.currentPage,PageView.changePage)
}},handleGoToLastPage:function(){handleNavigationButtons(PageModel.lastPage);
if(PageController.pageLock==0){if(this.currentPage==parseInt(PageModel.lastPage)){return 
}PageController.pageLock=1;
this.currentPage=parseInt(PageModel.lastPage);
if(this.currentPage<=1){this.currentPage=1
}if(this.currentPage>=PageModel.lastPage){this.currentPage=PageModel.lastPage
}PageModel.getPages(this.currentPage,PageView.changePage)
}},handlePageFlagSelection:function(page,srcElem){PageController.handleGoToPage(page);
var pgFlag=$(srcElem).parent();
$("ol.tabs li").removeClass("pageFlagSelected");
$(pgFlag).addClass("pageFlagSelected")
},handleGoToPage:function(page){$("#fit_view").click();
handleNavigationButtons(page);
if(PageController.pageLock==0){if(this.currentPage==parseInt(page)){return 
}PageController.pageLock=1;
this.currentPage=parseInt(page);
if(this.currentPage<=1){this.currentPage=1
}if(this.currentPage>=PageModel.lastPage){this.currentPage=PageModel.lastPage
}PageModel.getPages(this.currentPage,PageView.changePage)
}if(typeof ArticleViewer!="undefined"&&ArticleViewer.action_catalyst===false){ArticleViewer.hide()
}},stopAutoPlay:function(){autoPlayFlag=0;
window.clearInterval(autoPlay)
},startAutoPlay:function(duration){autoPlayFlag=1;
autoPlay=self.setInterval("PageController.handleAutoPlay()",parseInt(duration))
},handleAutoPlay:function(){if(this.currentPage==PageModel.lastPage){this.handleGoToPage(1)
}else{this.handleNextPage()
}},handleZoomIn:function(e){if(PageController.pageLock==0&&PageModel.zoomIndex<(PageModel.zoomLevels.length-1)){PageController.pageLock=1;
PageView.saveZoomPosition(e.pageX,e.pageY);
PageView.zoomOutDrawerSize=Drawer.View.getCurrentSize();
if(PageView.zoomOutDrawerSize!=Constants.closedDrawer){Drawer.View.adjustWidth(Constants.closedDrawer,50)
}PageView.isZoomedIn(true);
if(Offline.isOffline()){PageView.zoomChange(PageModel.zoomIndexOf(Offline.getZoomInLevel()))
}else{var zoomFactorDiff=[];
var finalZoomIndex=0;
var zoomFactorValue=PageModel.zoomLevels[PageModel.zoomIndex].zoom*2;
for(i=PageModel.zoomIndex;
i<=PageModel.zoomLevels.length-1;
i++){if(PageModel.zoomLevels[i].zoom>=zoomFactorValue){zoomFactorDiff[i]=PageModel.zoomLevels[i].zoom-zoomFactorValue
}else{zoomFactorDiff[i]=zoomFactorValue-PageModel.zoomLevels[i].zoom
}if((i>0)&&(zoomFactorDiff[i]>zoomFactorDiff[i-1])){finalZoomIndex=i-1;
break
}if(i==(PageModel.zoomLevels.length-1)){finalZoomIndex=PageModel.zoomLevels.length-1;
break
}}PageView.zoomChange(finalZoomIndex);
Navbar.ZoomControls.update()
}}},handleZoomOut:function(){if(PageController.pageLock==0){PageController.pageLock=1;
if(PageView.zoomOutDrawerSize>Drawer.View.getCurrentSize()){Drawer.View.adjustWidth(PageView.zoomOutDrawerSize,50)
}PageView.isZoomedIn(false);
if(Offline.isOffline()){PageView.zoomChange(PageModel.zoomIndexOf(Offline.getZoomLevel()))
}else{PageView.zoomChange(PageModel.preferredZoomIndex());
Navbar.ZoomControls.update()
}}},handleTogglePageMode:function(e){e.preventDefault();
e.stopPropagation();
if(PageController.pageLock==0){PageController.pageLock=1;
ViewHelper.closeAllDialogs();
PageView.togglePageMode()
}},updateButtons:function(){if(typeof ArticleViewer=="undefined"||ArticleViewer.active===false){var pg_hash="pg"+this.currentPage;
if(this.currentPage&&pg_hash!=location.hash.replace("#","")){$.ajaxHistory.update(pg_hash)
}}},trackPage:function(){if(typeof Tracker!=undefined){var element=PageModel.normalPagesFolioDiv();
var href=document.location.href;
var matchStr=/(pg)(=)?[0-9]+(&)?/g;
var pgs=[];
var i=0;
var pg=0;
var divpg=$("div.page[pg="+PageController.currentPage+"]",element);
var divfolio=$(divpg).parent();
$("div.page",divfolio).each(function(){pgs.push($(this).attr("folio"));
if(pg==0){pg=$(this).attr("pg")
}});
if(this.title==""){PageController.title=document.title
}var pageTitle="";
if(pgs.length>0){pageTitle+=" - "+PageController.folioLabel(pgs[0],1)
}if(pgs.length>1){pageTitle+="-"+PageController.folioLabel(pgs[pgs.length-1])
}document.title=DocumentProperties.getTitle()+pageTitle;
if(href.indexOf("pg=")!=-1){href=href.replace(matchStr,"$1$2"+pg+"$3")
}else{href=href.replace(/#.*/g,"");
href=href.replace(/\?.*/g,"");
href=href+"?pg="+pg
}Tracker.trackPage({pageName:href,title:PageController.title+pageTitle})
}}}
})();
var PageModel=(function(){var F=0;
var A=0;
var K=0;
var J=0;
var G=0;
var B=0;
var M="";
var C=2;
var E=false;
var N=5000;
var H=jQuery;
function I(S,Q,P,O){var V=O||false;
var U=PageModel.pageMode;
if(V&&S!=PageController.currentPage){return 
}if(S>PageModel.lastPage){return 
}else{if(PageModel.cachedPages.hasOwnProperty("p"+S+"z"+Q+"pm"+U)){PageModel.doCallback(P,[PageController.currentPage])
}else{var T=location.pathname;
if(T.substring(T.length-1)=="/"){T=T.substring(0,T.length-1)
}var R="/Page.action?pg="+S+"&pm="+U+"&z="+Q+"&u1="+escape(PageModel.u1);
DataSwitch.get({url:T+R,success:function(Z){var a=Z.indexOf(' id="')+5;
var W=Z.substring(a,Z.indexOf('"',a));
if(!PageModel.zoomLevel){var X=Z.indexOf(' zoom="')+7;
var Y=Z.substring(X,Z.indexOf('"',X));
PageModel.setZoomLevel(Y)
}if(PageModel.cachedPages.hasOwnProperty("p"+S+"z"+Q+"pm"+U)===false){PageModel.cachePages(H(Z).filter(".folio"),W);
PageModel.doCallback(P,[S])
}}})
}}}function D(O){var P=O.match(' pg="[0-9]+')[0];
P=P.substring(5);
var Q=H(".page[pg="+P+"]",PageModel.normalPagesDiv).css("left");
PageModel.normalPagesFolioDiv().append(O);
H(".highlights[pg="+P+"]",PageModel.normalPagesFolioDiv()).css("left",Q)
}function L(P,Q){var O='<div class="highlights" pg="'+P+'">';
H.each(Q,function(){O+='<div align="left" class="pageHighlight" style="width:'+this.w+"px;";
O+="height:"+this.h+"px;";
O+="left:"+this.x+"px;";
O+="top:"+this.y+'px;"></div>'
});
O+="</div>";
return O
}return{documentContainerDiv:{},normalPagesDiv:{},pagesDiv:{},pageMode:2,initPageMode:2,zoomLevel:0,zoomIndex:0,zoomInOffset:4,viewMode:"scan",u1:"",firstPage:"",lastPage:"",twoPageCover:false,fullScreen:false,zoomLevels:[],cachedPages:{},pages:{},init:function(){this.documentContainerDiv=H("#documentContainer");
this.popupContainerDiv=H("#popupContainer");
this.normalPagesDiv=H("#normalpages");
this.pagesDiv=H("#pages")
},getPages:function(P,O){I(P,this.zoomLevel,O)
},normalPagesFolioDiv:function(){return H(".folio",PageModel.normalPagesDiv)
},normalPagesPageDivs:function(){return H(".page",PageModel.normalPagesDiv)
},normalPagesZoomPageDivs:function(){return H(".zoomed_folio > .page",PageModel.normalPagesDiv)
},zoomPagesFolioDiv:function(){return H(".zoomed_folio",PageModel.normalPagesDiv)
},getPopupcards:function(Q,P){var S=location.pathname;
var R=this.zoomLevel;
if(S.substring(S.length-1)=="/"){S=S.substring(0,S.length-1)
}var O="/Popup.action?pg="+Q+"&pm="+PageModel.pageMode+"&z="+R+"&numPagesViewed="+P+"&u1="+escape(PageModel.u1);
DataSwitch.get({url:S+O,success:function(V){if(Math.abs(Q-PageController.currentPage)>=PageModel.pageMode){return 
}var U=V.indexOf(' z="')+4;
var W=V.substring(U,V.indexOf('"',U));
if(W!=R){return 
}var T=PageModel.normalPagesDiv.offset();
var Y=T.top;
var X=T.left;
PageModel.popupContainerDiv.css({top:Y+"px",left:X+"px"});
PageModel.popupContainerDiv.append(V);
initClosedPopups();
H(".pagePopupcards",PageModel.popupContainerDiv).each(function(){var b=H(this).attr("pg");
var a=parseInt(H(".page[pg='"+b+"']",PageModel.documentContainerDiv).css("left"));
var Z=H(".page[pg='"+b+"']",PageModel.documentContainerDiv).width();
if(!isNaN(a)){H(this).css("left",a+"px").width(Z)
}});
if(Offline.isOffline()){H(".pagePopupcards[external=1]",PageModel.popupContainerDiv).each(function(){H(this).addClass("hidden")
})
}if(H(".look_inside_help").length>0){PageView.showLookInsideHelp()
}}})
},getSearchHighlights:function(P,Q){H(".highlights",PageModel.normalPagesFolioDiv()).remove();
var O=Offline.isOffline();
var R=PageModel.pageMode;
PageModel.normalPagesPageDivs().each(function(){var V=H(this).attr("pg");
if(O){var S=Offline.getSearchHighlights(P,V,R,Q);
var T=L(V,S);
D(T)
}else{var W=location.pathname;
if(W.substring(W.length-1)=="/"){W=W.substring(0,W.length-1)
}var U="/Search_highlights.action?search="+escape(P)+"&pg="+V+"&pm="+R+"&z="+Q;
DataSwitch.get({url:W+U,success:D})
}})
},cachePages:function(P,O){PageModel.pagesDiv.append(P);
PageModel.cachedPages[O]=P;
var Q=PageModel.pagesDiv.children();
if(Q.length>C){H(Q[0]).remove();
delete PageModel.cachedPages[Q[0].id]
}},getPageMode:function(){return PageModel.pageMode
},setPageMode:function(O){PageModel.pageMode=O
},getInitPageMode:function(){return PageModel.initPageMode
},setInitPageMode:function(O){PageModel.initPageMode=O
},getZoomLevel:function(){return PageModel.zoomLevel
},getZoomIndex:function(){return PageModel.zoomIndex
},getU1:function(){return PageModel.u1
},setU1:function(O){PageModel.u1=O
},setZoomIndex:function(O){var P=PageModel.zoomLevels;
if(parseInt(O)>=0&&parseInt(O)<P.length){PageModel.zoomIndex=O;
PageModel.zoomLevel=P[O]["zoom"];
if(PageModel.zoomIndex==PageModel.fitViewZoomIndex()||PageModel.zoomIndex==PageModel.fitWidthZoomIndex()){PageView.setAutoZoom(true)
}if(PageView.isZoomedIn()===false){PageModel.setZoomInOffset()
}}},setZoomLevel:function(O){H.each(PageModel.zoomLevels,function(Q,P){if(P.zoom<=O||Q==0){PageModel.zoomIndex=Q;
PageModel.zoomLevel=P.zoom;
if(PageModel.zoomIndex==PageModel.fitViewZoomIndex()||PageModel.zoomIndex==PageModel.fitWidthZoomIndex()){PageView.setAutoZoom(true)
}if(PageView.isZoomedIn()===false){PageModel.setZoomInOffset()
}}})
},setZoomLevelFromPreference:function(Q,Z){var W=Q.split("&");
if(W.length&&W.length==2){var c=Math.abs;
var X=PageModel.zoomLevels;
var O=parseInt(X[0]["width"],10);
var R=parseInt(X[0]["height"],10);
var a=O>R?"landscape":"portrait";
var b=parseInt(W[0].split(":")[1]);
var U=parseInt(W[1].split(":")[1]);
var V=b>U?"landscape":"portrait";
if(a!=V){var S=b;
var Y=U;
U=Y;
b=S
}var P={zoom:0,fit_diff:(c(U-R)+c(b-O))};
for(i=1;
i<X.length;
i++){var T=(c(U-X[i]["height"])+c(b-X[i]["width"]));
if(T<P.fit_diff){P={index:i,fit_diff:T}
}}this.setZoomIndex(P.index);
this.preferredZoomIndex(P.index)
}else{this.setZoomLevel(Z);
this.preferredZoomIndex(Z)
}},getZoomInLevel:function(){if(PageModel.zoomLevels.length>PageModel.zoomIndex+PageModel.zoomInOffset){var O=PageModel.zoomLevels[PageModel.zoomIndex+PageModel.zoomInOffset]["zoom"]
}else{var O=PageModel.zoomLevels[PageModel.zoomLevels.length-1]["zoom"]
}return O
},setZoomInFactor:function(){var O=H(window).height();
switch(true){case O>=768:Globals.zoomInFactor=2;
break;
case O>=600:Globals.zoomInFactor=3;
break;
default:Globals.zoomInFactor=4;
break
}},setZoomInOffset:function(){var V=PageModel.zoomLevels[PageModel.zoomIndex]["width"]+PageModel.zoomLevels[PageModel.zoomIndex]["height"];
var S=V*Globals.zoomInFactor;
var T=Math.abs;
var P={offset:0,fit_diff:null};
for(i=PageModel.zoomIndex;
i<PageModel.zoomLevels.length;
i++){var Q=PageModel.zoomLevels[i];
var U=Q.height;
var O=Q.width;
var R=T(S-(O+U));
if(!P.fit_diff||R<P.fit_diff){P={offset:i-PageModel.zoomIndex,fit_diff:R}
}}PageModel.zoomInOffset=P.offset
},validZoomIndex:function(O){return parseInt(O,10)>=0&&parseInt(O,10)<PageModel.zoomLevels.length
},preferredZoomIndex:function(P){if(PageModel.validZoomIndex(P)){if(!PageView.getAutoZoom()){var Q=PageModel.zoomLevels;
var O="width:"+Q[P]["width"]+"&height:"+Q[P]["height"];
CookieManager.set("preference_zoom",O)
}J=P
}return J
},fitViewZoomIndex:function(O){if(PageModel.validZoomIndex(O)){G=O
}return G
},fitWidthZoomIndex:function(O){if(PageModel.validZoomIndex(O)){B=O
}return B
},setViewMode:function(O){PageModel.viewMode=O
},setAutoPlay:function(P,O){E=P;
N=O
},getAutoPlay:function(){return E
},getAutoPlayDuration:function(){return N
},doCallback:function(P,O){if(typeof P=="function"){P.apply(PageView,O)
}},zoomIndexOf:function(Q){var P=PageModel.zoomLevels;
var O=0;
for(i=1;
i<P.length;
i++){if(P[i]["zoom"]==Q){O=i;
break
}}return O
}}
})();
var PageView=(function(){var D=false;
var P=A;
var g=true;
var M="fit_view";
var G=null;
var U=false;
var F=null;
var E=false;
var T=0;
var N=0;
var e=350;
var X=false;
var C=null;
var H=jQuery;
var B=null;
function Y(k){var l=H(".access_denied",k);
var j=l.attr("url");
if(j){location.href=j;
return 
}if(l.html()&&PageElements.dialogs.hasOwnProperty("access_denied")===false){H(ViewHelper.shadowWrap(l.parent(),"black")).dialog({height:365,width:480,modal:true,close:function(){PageController.pageLock=0;
H("div[id^=p"+PageController.currentPage+"z]",PageModel.pagesDiv).remove();
PageController.currentPage=PageView.currentPage;
delete PageElements.dialogs.access_denied;
H(this).dialog("destroy").remove()
},open:function(){PageElements.dialogs.access_denied={id:"access_denied",link_active:true,dialog_active:true}
},resizable:false})
}PageController.clearChangePageCallbacks()
}function J(){var m=H(".look_inside_help");
if((PageModel.fullScreen)&&(m.html()&&PageElements.dialogs.hasOwnProperty("look_inside_help")===false)){m.each(function(){H(this).parent().remove()
});
return 
}if(m.length>1){m.each(function(o){if(o!=(m.length-1)){H(this).parent().remove()
}});
return 
}var j=(DocumentProperties.portalDomain&&CookieManager.get("rfa"))?CookieManager.get("rfa").indexOf(DocumentProperties.portalDomain)!=-1:false;
var n=m.parent()[0].id;
var l=Boolean(m.html()&&n.indexOf("look_inside_help")!=-1&&PageElements.dialogs.hasOwnProperty("look_inside_help")===false&&!j);
var k=Boolean(m.html()&&n.indexOf("publisher_payment_page")!=-1&&H("div:first div",m).html());
if(l||k){H(ViewHelper.shadowWrap(m,"black")).dialog({height:400,width:500,modal:true,close:function(){H(this).dialog("destroy").remove()
},open:function(){m.parent().remove();
PageElements.dialogs.look_inside_help={id:"look_inside_help",link_active:true,dialog_active:true}
},resizable:false})
}else{m.parent().remove()
}}function A(k,j){PageModel.normalPagesFolioDiv().animate({left:k},{duration:e,easing:"easeOutCubic",complete:PageView.finish})
}function K(k,j){if(k.indexOf("-=")==0){H(".folio:last",PageModel.normalPagesDiv).css({left:"0","z-index":"1"})
}else{H(".folio:first",PageModel.normalPagesDiv).css({left:"0","z-index":"1"})
}PageView.finish()
}function a(k,j){if(k.indexOf("-=")==0){H(".folio:last",PageModel.normalPagesDiv).css({left:"0","z-index":"1"}).hide()
}else{H(".folio:first",PageModel.normalPagesDiv).css({left:"0","z-index":"1"}).hide()
}H(".folio").toggle(e,PageView.finish)
}function I(k,j){if(k.indexOf("-=")==0){H(".folio:last",PageModel.normalPagesDiv).css({left:"0","z-index":"1"}).hide()
}else{H(".folio:first",PageModel.normalPagesDiv).css({left:"0","z-index":"1"}).hide()
}H(".folio",PageModel.normalPagesDiv).slideToggle(e,PageView.finish)
}function Z(){H(".pageChanger a").addClass("hidden")
}function d(){var j=H(".pageChanger");
var k=j.find("a");
k.removeClass("hidden");
if(H.browser.msie){j.hover(function(){H(this).find("a").css("display","block")
},function(){H(this).find("a").css("display","")
})
}}function L(j){j.preventDefault();
j.stopPropagation();
PageController.handleNextPage();
return false
}function S(j){j.preventDefault();
j.stopPropagation();
PageController.handlePrevPage();
return false
}function c(j){j.preventDefault();
j.stopPropagation();
PageController.handleGoToFirstPage();
return false
}function b(j){j.preventDefault();
j.stopPropagation();
PageController.handleGoToLastPage();
return false
}function R(){F=H("#nextPageMargin",PageModel.documentContainerDiv);
F.data("img",H("img:first",F));
G=H("#prevPageMargin",PageModel.documentContainerDiv);
G.data("img",H("img:first",G));
d()
}function W(l){var k=l.pageX-PageModel.normalPagesDiv.data("dragx");
var j=l.pageY-PageModel.normalPagesDiv.data("dragy");
var m=H.browser.safari?H("body"):H("html");
if(k!=0||j!=0){PageView.inDrag=true
}m.scrollLeft(m.scrollLeft()-k).scrollTop(m.scrollTop()-j).data("dragx",l.pageX).data("dragy",l.pageY);
return false
}function O(j){if(PageView.inDrag){PageView.inDrag=false;
H(".fg",PageModel.normalPagesDiv).trigger("mouseup")
}}function Q(j){var k=j||PageModel.zoomIndex;
var l=PageModel.zoomLevels.length-1;
if(k>=l){k=l;
if(PageView.isZoomedIn()===false){PageModel.documentContainerDiv.addClass("max_zoom")
}}else{PageModel.documentContainerDiv.removeClass("max_zoom")
}}function f(j){if(j.button==2){return 
}if(PageView.inDrag===true){PageView.inDrag=false;
return true
}else{if(H(j.target).parents(".zoomed_folio").length==0){PageController.handleZoomIn(j)
}else{PageController.handleZoomOut(j)
}return false
}}function V(j){window.mouseisdown=true;
PageModel.normalPagesDiv.data("dragx",j.pageX);
PageModel.normalPagesDiv.data("dragy",j.pageY);
H(".fg",PageModel.normalPagesDiv).addClass("mousedown").mousemove(W);
H(window).bind("mouseup",O);
if(j.button==2){H(".fg",PageModel.normalPagesDiv).trigger("mouseup")
}else{return false
}}function h(j){H(".fg",PageModel.normalPagesDiv).removeClass("mousedown").unbind("mousemove",W);
H(window).unbind("mouseup",O);
return false
}return{inDrag:false,origPages:[],currentPage:0,numPagesViewed:1,flashingDisabled:false,zoomOutDrawerSize:0,zoomLock:0,newZoomIndex:0,initPageBehaviors:function(){H(".fg",PageModel.normalPagesDiv).live("click",f).live("mousedown",V).live("mouseup",h);
PageView.initPageNavigationButtonBehaviors();
R();
var j=null;
H(window).unbind("resize.positionPages").bind("resize.positionPages",function(){if(j){clearTimeout(j)
}j=setTimeout(function(){PageView.positionPages(PageModel.viewMode);
PageModel.setZoomInFactor()
},50)
})
},initPageNavigationButtonBehaviors:function(){H(".nextPage").unbind("click").bind("click",L);
H(".prevPage").unbind("click").bind("click",S);
H(".firstPage").unbind("click").bind("click",c);
H(".lastPage").unbind("click").bind("click",b)
},disableButtons:function(){Z()
},enableButtons:function(){d()
},getAutoZoom:function(){return g
},setAutoZoom:function(j){if(ViewHelper.trueTypeOf(j)=="boolean"){g=j;
if(g===true){CookieManager.remove("preference_zoom")
}}},getAutoZoomMode:function(){return M
},setAutoZoomMode:function(j){M=j
},showLookInsideHelp:J,initPage:function(l){if(PageView.newZoomIndex){var p=PageView.newZoomIndex;
PageView.newZoomIndex=0;
PageView.zoomLock=0;
PageController.pageLock=0;
PageView.zoomChange(p);
return 
}var q="p"+l+"z"+PageModel.zoomLevel+"pm"+PageModel.pageMode;
var o=H("#"+q,PageModel.pagesDiv);
if(H(".access_denied",o).length>0){Y(o);
return 
}var r=[];
var n=ViewHelper.width(o)||0;
var k=ViewHelper.height(o)||0;
var m=PageModel.normalPagesFolioDiv();
if(m.length&&m.attr("id")!=q){PageModel.cachePages(m,m.attr("id"));
PageModel.normalPagesDiv.append(o);
PageView.centerPages(true)
}else{PageModel.normalPagesDiv.append(o);
PageView.centerPages(true)
}var j=false;
if(PageView.currentPage!=l){PageView.currentPage=l;
j=true
}PageController.pageLock=0;
PageModel.getPages(this.currentPage+PageModel.pageMode,"");
PageView.finish();
r.push(ViewHelper.ContextMenu.Page.init);
if(typeof ArticleViewer!="undefined"){r.push(ArticleViewer.Navbar.handleNewReplicaPage)
}r.push(handleNavigationButtons(l));
if(j){r.push(PageController.trackPage)
}ViewHelper.schedule(r,this)
},removePopupCards:function(){H(".pagePopupcards",PageModel.popupContainerDiv).remove()
},changePage:function(s){var q=this;
var r=[];
var l=this.currentPage;
if(D){PageController.pageLock=0;
PageController.handleZoomOut()
}var n="p"+s+"z"+PageModel.zoomLevel+"pm"+PageModel.pageMode;
var AA=PageModel.cachedPages.hasOwnProperty(n)?PageModel.cachedPages[n]:false;
if(AA===false){PageController.pageLock=0;
return 
}else{if(H(".access_denied",AA).length>0){Y(AA);
return 
}}var z=ViewHelper.width(AA)||0;
var p=ViewHelper.height(AA)||0;
var j;
if(PageModel.viewMode=="scan"){j=Constants.standardDrawer+50
}else{j=Constants.closedDrawer+50
}var m=parseInt(PageModel.normalPagesDiv.css("left"));
var v=PageModel.normalPagesDiv.width()+m*2;
var t=(v-z)/2;
if(t<j){t=j
}PageModel.normalPagesDiv.css({width:z+"px",height:p+"px"});
PageView.removePopupCards();
this.origPages=PageModel.normalPagesFolioDiv().map(function(){return this.id
}).get();
var k=false;
if(s>this.currentPage){var y=ViewHelper.width(PageModel.normalPagesDiv);
var o=parseInt(AA.css("left"),10);
var u=s+PageModel.pageMode;
closedPopups=[];
AA.css("left",y+"px");
PageModel.normalPagesDiv.append(AA);
PageView.numPagesViewed++;
this.transition("-="+y+"px");
k=true
}else{if(s<this.currentPage){var z=ViewHelper.width(AA)||0;
var u=s-PageModel.pageMode;
closedPopups=[];
AA.css("left",(-z)+"px");
PageModel.normalPagesDiv.append(AA);
PageView.numPagesViewed++;
this.transition("+="+z+"px");
k=true
}else{var AB=H("#normalpages > div[id='']");
var u=false;
AA.css("left","0px");
PageModel.normalPagesDiv.append(AA);
if(AB.length){AA.css("z-index","1");
AB.remove();
AA.css("z-index","")
}PageView.finish()
}}PageView.currentPage=parseInt(s);
r.push(PageController.updateButtons);
if(typeof ArticleViewer!="undefined"){r.push(ArticleViewer.Navbar.handleNewReplicaPage)
}if(Offline.isOffline()===false){if(this.currentPage==1){u=this.currentPage+H(".page",PageModel.normalPagesDiv).size()
}r.push(ViewHelper.ContextMenu.Page.init)
}else{r.push(ViewHelper.ContextMenu.Page.init)
}if(k){r.push(PageController.trackPage)
}setTimeout(function(){if(u!==false){PageModel.getPages(u,"")
}ViewHelper.schedule(r,q,100)
},(e-80))
},setTransition:function(j){if(j=="slide"){P=A
}else{if(j=="flip"){P=K
}else{if(j=="toggle"){P=a
}else{if(j=="slidetoggle"){P=I
}}}}},transition:function(k,j){P(k,j)
},finish:function(){if(PageModel.normalPagesFolioDiv().length==1){PageView.centerPages(false);
if(D){var l=600;
PageModel.normalPagesFolioDiv().addClass("zoomed_folio");
PageView.setZoomPosition()
}else{var l=0;
PageModel.normalPagesFolioDiv().removeClass("zoomed_folio").find(".fg").css("cursor","");
PageView.setZoomPosition()
}if(Search.Model.getSearchValue()){PageModel.getSearchHighlights(Search.Model.getSearchValue(),PageModel.zoomLevel)
}var j=new Array();
var k=0;
PageModel.normalPagesPageDivs().each(function(n){var o=parseInt(H(this).attr("pg"));
j[n]=o;
setTimeout(function(){PageModel.getPopupcards(o,(n!=0||Offline.isOffline())?-1:PageView.numPagesViewed)
},l)
});
H("#current_page_input").val(H("#page_list li a[pg="+PageController.currentPage+"]").html());
H("iframe").each(function(){this.src=this.src
});
PageController.applyChangePageCallbacks()
}else{var m=PageView.origPages;
for(var k=0;
k<m.length;
k++){if(m[k]){PageModel.cachePages(H("#"+m[k],PageModel.normalPagesDiv),m[k])
}}PageModel.normalPagesPageDivs().css({"z-index":""});
PageView.origPages=[]
}Q();
PageView.zoomLock=0;
PageController.pageLock=0
},togglePageMode:function(){var k=PageModel.normalPagesPageDivs();
function j(){PageController.pageLock=0;
if(PageView.zoomOutDrawerSize>Drawer.View.getCurrentSize()){Drawer.View.adjustWidth(PageView.zoomOutDrawerSize)
}PageView.isZoomedIn(false);
PageController.pageLock=1
}function l(){if(PageController.currentPage%2==(PageModel.twoPageCover?0:1)&&PageController.currentPage>1){PageController.currentPage=PageController.currentPage-1;
PageView.currentPage=PageView.currentPage-1;
H("#current_page_input").val(PageModel.pages[PageView.currentPage])
}}X=true;
Navbar.Model.pageTogglers.toggleClass("hidden");
if(PageModel.pageMode==2){PageModel.pageMode=1
}else{PageModel.pageMode=2
}if(D){j()
}l();
PageView.positionPages(PageModel.viewMode);
X=false
},positionButtons:function(){H("#imgnext,#imgprev").css("display","block");
var q=parseInt(PageModel.normalPagesDiv.css("width"));
var m=parseInt(PageModel.normalPagesDiv.css("height"));
var o=PageModel.normalPagesDiv.get(0);
var p=o.offsetTop;
var l=o.offsetLeft;
var n=35;
if(PageModel.fullScreen){n=0
}var r=l-n+1;
var j=l+q+4+n-35;
G.css({left:r,top:p,height:m+"px"}).find("a").css("top",(m/2-25)+"px");
F.css({left:j,top:p,height:m+"px"}).find("a").css("top",(m/2-25)+"px");
var k=null
},isZoomedIn:function(j){if(ViewHelper.trueTypeOf(j)=="boolean"){D=j
}return D
},testFit:function(j,k,l,m){return this.testFitView(j,k,l,m)
},testFitView:function(j,k,l,m){if(j<=k&&l<=m){return true
}return false
},testFitWidth:function(j,k,l,m){if(j<=k){return true
}return false
},testFitHeight:function(j,k,l,m){if(l<=m){return true
}return false
},testFitScroll:function(j,k,l,m){if(j<=k||l<=m){return true
}return false
},zoomChange:function(j){if(PageView.zoomLock){PageView.newZoomIndex=j;
return 
}PageView.zoomLock=1;
if(PageView.isZoomedIn()&&j<=PageModel.preferredZoomIndex()){PageView.isZoomedIn(false)
}PageModel.setZoomIndex(j);
PageView.removePopupCards();
PageModel.getPages(PageController.currentPage,PageView.initPage);
return 0
},saveZoomPosition:function(m,l){var n=H.browser.safari?H("body"):H("html");
n.scrollLeft();
var k=(n.scrollLeft()+m-PageModel.normalPagesDiv.offset().left)/PageModel.normalPagesDiv.width();
var j=(n.scrollTop()+l-PageModel.documentContainerDiv.offset().top)/PageModel.normalPagesDiv.height();
PageModel.normalPagesDiv.data("zoom_position",{pageX:m,pageY:l,dx:k,dy:j})
},setZoomPosition:function(){var n=PageModel.normalPagesDiv.data("zoom_position");
if(n){var m=PageModel.normalPagesDiv.data("zoom_position").pageX;
var l=PageModel.normalPagesDiv.data("zoom_position").pageY;
var k=PageModel.normalPagesDiv.data("zoom_position").dx;
var j=PageModel.normalPagesDiv.data("zoom_position").dy;
var p=PageModel.normalPagesDiv.offset().left+(k*PageModel.normalPagesDiv.width());
var o=PageModel.documentContainerDiv.offset().top+(j*PageModel.normalPagesDiv.height());
window.scrollTo(p-m,o-l);
if(!D){PageModel.normalPagesDiv.data("zoom_position","")
}}},fitWindow:function(n){var u=H(window).height();
var z=H(window).width();
var t=PageModel.zoomLevels;
var w=F?ViewHelper.width(F):ViewHelper.width(H("#nextPageMargin",PageModel.documentContainerDiv));
var v=w;
var r=Constants.standardDrawer+w;
var s=ViewHelper.height(H("#navbar"));
var k=PageModel.pageMode;
if(n=="read"){r=Constants.closedDrawer+w
}if(H("#skyscraper").html()){var m=(parseInt("0"+H("#skyscraper").css("right"))||50)+25;
v=parseInt(H("#skyscraper").css("width"))+m+w
}if(H("#leaderboard").html()){s+=parseInt(H("#leaderboard").height())
}if(H("#pageflags").length){s+=parseInt(H("#pageflags").height())
}PageModel.fitViewZoomIndex(0);
PageModel.fitWidthZoomIndex(0);
var y=z-r-v;
var q=u-s;
for(i=0;
i<t.length;
i++){var o=t[i]["width"];
var j=t[i]["height"];
if(PageView.testFitWidth(o*k,y,j,q)){PageModel.fitWidthZoomIndex(i)
}if(PageView.testFitView(o*k,y,j,q)){PageModel.fitViewZoomIndex(i)
}}if(H("#leaderboard").html()){var p=parseInt(H("#leaderboard").width());
var l=(z-p)/2;
if(l<Constants.standardDrawer){l=Constants.standardDrawer
}H("#leaderboard").css({top:ViewHelper.height(H("#navbar"))+"px",left:l+"px"})
}return 0
},centerPages:function(k){var p=H(window).width();
var AA=H(window).height();
var AC=0;
var o=0;
var s=35;
var u=35;
var AB=PageModel.fullScreen?0:35;
H(".folio",PageModel.normalPagesDiv).each(function(){AC+=ViewHelper.width(H(this));
var AD=ViewHelper.height(H(this));
if(AD>o){o=AD
}});
if(PageModel.viewMode=="read"){s=Constants.closedDrawer+AB
}else{s=Constants.standardDrawer+AB
}var t=H("#skyscraper");
if(t.html()){var j=(parseInt("0"+H("#skyscraper").css("right"))||50)+25;
u=parseInt(t.css("width"))+j+AB;
if(H.browser.msie&&/MSIE 6.0/.test(navigator.userAgent)){t.css("left",(s+AC+AB)+"px")
}}var q=Math.round((p-AC)/2);
if(q>s&&q>u){s=q
}var n=H("#pageflags");
var r={left:s+"px"};
var y={width:AC+"px",left:s+"px",height:o+"px",paddingRight:u+"px"};
if(k){var v=31;
var m=0;
var l=0;
var z=H("#leaderboard");
if(z.html()){m=parseInt(z.height())
}if(n.length>0){l=parseInt(n.height())
}var w=Math.round((AA-o-l-m-v)/2);
if(w<0){w=0
}if(n.length>0){r.top=(v+m+w+22)+"px"
}y.top=(v+m+w+l)+"px";
if(t.html()){t.css("top",(v+m+w+l)+"px")
}}if(n.length>0){n.css(r)
}PageModel.documentContainerDiv.css(y);
PageModel.popupContainerDiv.css({top:y.top,left:y.left});
PageModel.normalPagesDiv.css({width:AC+"px",height:o+"px"});
PageModel.normalPagesFolioDiv().css("left","0px");
PageView.positionButtons();
if(N>0||T>0){H(window).scrollTop(N).scrollLeft(T);
N=0;
T=0
}},positionPages:function(l){if(D){return 
}PageView.fitWindow(l);
if(!PageView.getAutoZoom()&&X===false){PageView.centerPages(true);
return 
}else{if(X===true){PageView.zoomChange(PageModel.pageMode==2?PageModel.fitViewZoomIndex():PageModel.fitWidthZoomIndex());
Navbar.ZoomControls.update();
return 
}}var m=PageModel.viewMode;
var n=PageModel.zoomIndex;
var k=PageModel.zoomLevel;
var j=PageView.getAutoZoomMode()=="fit_view"?PageModel.fitViewZoomIndex:PageModel.fitWidthZoomIndex;
if(l=="scan"||l=="read"){PageModel.viewMode=l
}else{l=PageModel.viewMode
}if(Offline.isOffline()===false){var o=j.call();
if(!B&&(n!=o||PageModel.viewMode!=m||X===true)){B=true;
PageModel.preferredZoomIndex(o);
PageModel.setZoomIndex(o);
if(X===true){PageModel.normalPagesDiv.empty();
PageModel.cachedPages={}
}else{PageModel.cachePages(PageModel.normalPagesFolioDiv(),"p"+PageController.currentPage+"z"+k+"pm"+PageModel.pageMode)
}PageView.removePopupCards();
PageModel.getPages(PageController.currentPage,PageView.initPage);
Navbar.ZoomControls.update();
setTimeout(function(){B=null
},3000)
}else{PageView.centerPages(true)
}}}}
})();