view src/main/webapp/imageServer/resources/js/vendor/diva-old.min.js @ 203:719475ad0923 iiif_diva

more work on new diva.js in imageServer
author casties
date Fri, 05 Jul 2019 16:05:57 +0200
parents src/main/webapp/imageServer/resources/js/diva.min.js@0f907d47b956
children
line wrap: on
line source

Storage.prototype.setObject=function(b,e){this.setItem(b,JSON.stringify(e))};Storage.prototype.getObject=function(b){return(b=this.getItem(b))&&JSON.parse(b)};(function(b){var e=1;b.generateId=function(b){var d;do d=e++ +(b?"-"+b:"");while(document.getElementById(d));return d}})(jQuery);
(function(b){b.getScrollbarWidth=function(){var b=document.createElement("p");b.style.width="100%";b.style.height="200px";var f=document.createElement("div");f.style.position="absolute";f.style.top="0px";f.style.left="0px";f.style.visibility="hidden";f.style.width="200px";f.style.height="150px";f.style.overflow="hidden";f.appendChild(b);document.body.appendChild(f);var d=b.offsetWidth;f.style.overflow="scroll";b=b.offsetWidth;d==b&&(b=f.clientWidth);document.body.removeChild(f);return d-b}})(jQuery);
(function(b){b.getHashParam=function(b){var f=window.location.hash;if(""!==f){var d=0<f.indexOf("&"+b+"=")?f.indexOf("&"+b+"="):f.indexOf("#"+b+"=");if(0<=d)return d+=b.length+2,b=f.indexOf("&",d),b>d?f.substring(d,b):0>b?f.substring(d):""}return!1}})(jQuery);
(function(b){b.updateHashParam=function(e,f){var d=b.getHashParam(e),a=window.location.hash;if(d!==f)if("string"==typeof d){var g=0<a.indexOf("&"+e+"=")?a.indexOf("&"+e+"="):a.indexOf("#"+e+"="),d=g+e.length+2+d.length,h=0===g?"#":"&";window.location.replace(a.substring(0,g)+h+e+"="+f+a.substring(d))}else 0===a.length?window.location.replace("#"+e+"="+f):window.location.replace(a+"&"+e+"="+f)}})(jQuery);
(function(b){b.fn.dragscrollable=function(e){var f=b.extend({dragSelector:">:first",acceptPropagatedEvent:!0,preventDefault:!0},e||{}),d={mouseDownHandler:function(a){if(1!=a.which||!a.data.acceptPropagatedEvent&&a.target!=this)return!1;a.data.lastCoord={left:a.clientX,top:a.clientY};b.event.add(document,"mouseup",d.mouseUpHandler,a.data);b.event.add(document,"mousemove",d.mouseMoveHandler,a.data);if(a.data.preventDefault)return a.preventDefault(),!1},mouseMoveHandler:function(a){var b=a.clientX-
a.data.lastCoord.left,d=a.clientY-a.data.lastCoord.top;a.data.scrollable.scrollLeft(a.data.scrollable.scrollLeft()-b);a.data.scrollable.scrollTop(a.data.scrollable.scrollTop()-d);a.data.lastCoord={left:a.clientX,top:a.clientY};if(a.data.preventDefault)return a.preventDefault(),!1},mouseUpHandler:function(a){b.event.remove(document,"mousemove",d.mouseMoveHandler);b.event.remove(document,"mouseup",d.mouseUpHandler);if(a.data.preventDefault)return a.preventDefault(),!1}};this.each(function(){var a={scrollable:b(this),
acceptPropagatedEvent:f.acceptPropagatedEvent,preventDefault:f.preventDefault};b(this).find(f.dragSelector).bind("mousedown",a,d.mouseDownHandler)})}})(jQuery);
(function(b){var e={cursor:"move",decelerate:!0,triggerHardware:!1,y:!0,x:!0,slowdown:.9,maxvelocity:40,throttleFPS:60,movingClass:{up:"kinetic-moving-up",down:"kinetic-moving-down",left:"kinetic-moving-left",right:"kinetic-moving-right"},deceleratingClass:{up:"kinetic-decelerating-up",down:"kinetic-decelerating-down",left:"kinetic-decelerating-left",right:"kinetic-decelerating-right"}};window.requestAnimationFrame||(window.requestAnimationFrame=function(){return window.webkitRequestAnimationFrame||
window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a,b){window.setTimeout(a,1E3/60)}}());b.support=b.support||{};b.extend(b.support,{touch:"ontouchend"in document});var f=function(){return!1},d=function(a,b){return 0===Math.floor(Math.abs(a))?0:a*b},a=function(a,b){var d=a;0<a?a>b&&(d=b):a<0-b&&(d=0-b);return d},g=function(a,b){this.removeClass(a.movingClass.up).removeClass(a.movingClass.down).removeClass(a.movingClass.left).removeClass(a.movingClass.right).removeClass(a.deceleratingClass.up).removeClass(a.deceleratingClass.down).removeClass(a.deceleratingClass.left).removeClass(a.deceleratingClass.right);
0<a.velocity&&this.addClass(b.right);0>a.velocity&&this.addClass(b.left);0<a.velocityY&&this.addClass(b.down);0>a.velocityY&&this.addClass(b.up)},h=function(a,b){b.velocity=0;b.velocityY=0;b.decelerate=!0;"function"===typeof b.stopped&&b.stopped.call(a,b)},l=function(a,b){var e=a[0];b.x&&0<e.scrollWidth?(e.scrollLeft=b.scrollLeft=e.scrollLeft+b.velocity,0<Math.abs(b.velocity)&&(b.velocity=b.decelerate?d(b.velocity,b.slowdown):b.velocity)):b.velocity=0;b.y&&0<e.scrollHeight?(e.scrollTop=b.scrollTop=
e.scrollTop+b.velocityY,0<Math.abs(b.velocityY)&&(b.velocityY=b.decelerate?d(b.velocityY,b.slowdown):b.velocityY)):b.velocityY=0;g.call(a,b,b.deceleratingClass);"function"===typeof b.moved&&b.moved.call(a,b);0<Math.abs(b.velocity)||0<Math.abs(b.velocityY)?window.requestAnimationFrame(function(){l(a,b)}):h(a,b)},n=function(a,d){var e=b.kinetic.callMethods[a],f=Array.prototype.slice.call(arguments);e&&this.each(function(){var a=f.slice(1),d=b(this).data("kinetic-settings");a.unshift(d);e.apply(this,
a)})},t=function(a,d){b.support.touch?a.bind("touchstart",d.events.touchStart).bind("touchend",d.events.inputEnd).bind("touchmove",d.events.touchMove):a.mousedown(d.events.inputDown).mouseup(d.events.inputEnd).mousemove(d.events.inputMove);a.click(d.events.inputClick).scroll(d.events.scroll).bind("selectstart",f).bind("dragstart",d.events.dragStart)},u=function(d){this.addClass("kinetic-active").each(function(){var f=this,h=b(this);if(!h.data("kinetic-settings")){var k=b.extend({},e,d),n,u=!1,y,v=
!1,A=!1,B=1E3/k.throttleFPS,I,G;k.velocity=0;k.velocityY=0;var M=function(){A=y=n=!1};b(document).mouseup(M).click(M);var m=function(){k.velocity=a(u-n,k.maxvelocity);k.velocityY=a(v-y,k.maxvelocity)},x=function(a){return b.isFunction(k.filterTarget)?!1!==k.filterTarget.call(f,a):!0},F=function(a,d){if(!I||new Date>new Date(I.getTime()+B))I=new Date,A&&(n||y)&&(G&&(b(G).blur(),G=null,h.focus()),k.decelerate=!1,k.velocity=k.velocityY=0,h[0].scrollLeft=k.scrollLeft=k.x?h[0].scrollLeft-(a-n):h[0].scrollLeft,
h[0].scrollTop=k.scrollTop=k.y?h[0].scrollTop-(d-y):h[0].scrollTop,u=n,v=y,n=a,y=d,m(),g.call(h,k,k.movingClass),"function"===typeof k.moved&&k.moved.call(h,k))};k.events={touchStart:function(a){var b;if(x(a.target)){b=a.originalEvent.touches[0];var d=b.clientX;b=b.clientY;A=!0;k.velocity=u=0;k.velocityY=v=0;n=d;y=b;a.stopPropagation()}},touchMove:function(a){var b;A&&(b=a.originalEvent.touches[0],F(b.clientX,b.clientY),a.preventDefault&&a.preventDefault())},inputDown:function(a){if(x(a.target)){var b=
a.clientX,d=a.clientY;A=!0;k.velocity=u=0;k.velocityY=v=0;n=b;y=d;G=a.target;"IMG"===a.target.nodeName&&a.preventDefault();a.stopPropagation()}},inputEnd:function(a){n&&u&&!1===k.decelerate&&(k.decelerate=!0,m(),n=u=A=!1,l(h,k));G=null;a.preventDefault&&a.preventDefault()},inputMove:function(a){A&&(F(a.clientX,a.clientY),a.preventDefault&&a.preventDefault())},scroll:function(a){"function"===typeof k.moved&&k.moved.call(h,k);a.preventDefault&&a.preventDefault()},inputClick:function(a){if(0<Math.abs(k.velocity))return a.preventDefault(),
!1},dragStart:function(a){if(G)return!1}};t(h,k);h.data("kinetic-settings",k).css("cursor",k.cursor);k.triggerHardware&&h.css({"-webkit-transform":"translate3d(0,0,0)","-webkit-perspective":"1000","-webkit-backface-visibility":"hidden"})}})};b.kinetic={settingsKey:"kinetic-settings",callMethods:{start:function(a,d){var e=b(this);if(a=b.extend(a,d))a.decelerate=!1,l(e,a)},end:function(a,d){b(this);a&&(a.decelerate=!0)},stop:function(a,d){var e=b(this);h(e,a)},detach:function(a,d){var e=b(this);b.support.touch?
e.unbind("touchstart",a.events.touchStart).unbind("touchend",a.events.inputEnd).unbind("touchmove",a.events.touchMove):e.unbind("mousedown",a.events.inputDown).unbind("mouseup",a.events.inputEnd).unbind("mousemove",a.events.inputMove).unbind("scroll",a.events.scroll);e.unbind("click",a.events.inputClick).unbind("selectstart",f);e.unbind("dragstart",a.events.dragStart);e.removeClass("kinetic-active").css("cursor","")},attach:function(a,d){var e=b(this);t(e,a);e.addClass("kinetic-active").css("cursor",
"move")}}};b.fn.kinetic=function(a){"string"===typeof a?n.apply(this,arguments):u.call(this,a);return this}})(window.jQuery||window.Zepto);
var diva=function(){var b={};return{Events:{publish:function(e,f,d){if(b[e]){e=b[e];for(var a=e.length;a--;)e[a].apply(d||this,f||[])}},subscribe:function(e,f){b[e]||(b[e]=[]);b[e].push(f);return[e,f]},unsubscribe:function(e,f){var d=e[0];if(b[d])for(var a=b[d].length;a--;)if(b[d][a]===e[1])return b[d].splice(a,1),f&&delete b[d],!0;return!1},unsubscribeAll:function(){b={}}}}}(),activeDivaController=function(){var b;$(document).on("click",function(e){a:{var f=$(e.target);e=f.find(".diva-outer");var f=
f.closest(".diva-outer"),d;if(!(0<e.length))if(0<f.length)e=f;else{d=document.getElementsByClassName("diva-outer");for(f=0;f<d.length;f++)$(d[f].parentElement).data("diva").deactivate();break a}e.parent().data("diva").activate();b=e.parent();d=document.getElementsByClassName("diva-outer");for(f=0;f<d.length;f++)d[f].getAttribute("id")!=e.attr("id")&&$(d[f].parentElement).data("diva").deactivate()}});this.getActive=function(){return b}},activeDiva=new activeDivaController;window.divaPlugins=[];
(function(b){var e=function(e,d){var a=b.extend({},{adaptivePadding:.05,arrowScrollAmount:40,blockMobileMove:!0,objectData:"",enableAutoTitle:!0,enableFilename:!0,enableFullscreen:!0,enableGotoPage:!0,enableGridIcon:!0,enableGridControls:"buttons",enableKeyScroll:!0,enableLinkIcon:!0,enableSpaceScroll:!1,enableToolbar:!0,enableZoomControls:"buttons",fixedPadding:10,fixedHeightGrid:!0,goDirectlyTo:0,iipServerURL:"",inFullscreen:!1,inGrid:!1,imageDir:"",maxPagesPerRow:8,maxZoomLevel:-1,minPagesPerRow:2,
minZoomLevel:0,onDocumentLoaded:null,onModeToggle:null,onViewToggle:null,onJump:null,onPageLoad:null,onPageLoaded:null,onReady:null,onScroll:null,onScrollDown:null,onScrollUp:null,onSetCurrentPage:null,onZoom:null,onZoomIn:null,onZoomOut:null,pageLoadTimeout:200,pagesPerRow:5,rowLoadTimeout:50,throbberTimeout:100,tileHeight:256,tileWidth:256,toolbarParentObject:d.parentObject,verticallyOriented:!0,viewportMargin:200,zoomLevel:2},d);b.extend(a,{allTilesLoaded:[],averageHeights:[],averageWidths:[],
currentPageIndex:0,divaIsFullWindow:!1,doubleClickZoom:!1,firstPageLoaded:-1,firstRowLoaded:-1,gridPageWidth:0,hashParamSuffix:"",horizontalOffset:0,horizontalPadding:0,ID:null,initialKeyScroll:!1,initialSpaceScroll:!1,innerObject:"",isActiveDiva:!0,isScrollable:!0,itemTitle:"",lastPageLoaded:-1,lastRowLoaded:-1,loaded:!1,maxWidths:[],maxHeights:[],maxRatio:0,minRatio:0,mobileWebkit:!1,numPages:0,numRows:0,oldZoomLevel:-1,outerObject:"",pages:[],pageLeftOffsets:[],pageTopOffsets:[],pageTimeouts:[],
pageTools:"",panelHeight:0,panelWidth:0,plugins:[],previousLeftScroll:0,previousTopScroll:0,realMaxZoom:-1,resizeTimer:-1,rowHeight:0,scaleWait:!1,scrollbarWidth:0,selector:"",singleClick:!1,singleTap:!1,throbberTimeoutID:-1,toolbar:null,totalHeights:[],totalHeight:0,totalWidths:[],totalWidth:0,verticalOffset:0,verticalPadding:0});var g=this,h=function(a){var b=!0;return function(a){var c,d,e;if("function"===typeof a){c=[];d=1;for(e=arguments.length;d<e;d++)c.push(arguments[d]);b&&(console.warn('The use of callback functions is deprecated. Use diva.Events.subscribe("Event", function) instead.'),
b=!1);a.apply(g,c);return!0}return!1}}(),l=function(c,b){return a.pages[c].d[a.zoomLevel][b]},n=function(c){var b,d=a.numPages;for(b=0;b<d;b++)if(a.pages[b].f===c)return b;return-1},t=function(c,d){var e=b("#"+a.ID+"outer").scrollLeft()-a.viewportMargin,f=e+a.panelWidth+2*a.viewportMargin;return c>=e&&c<=f||c<=e&&d>=f||d>=e&&d<=f},u=function(c,d){var e=b("#"+a.ID+"outer").scrollTop()-a.viewportMargin,f=e+a.panelHeight+2*a.viewportMargin;return c>=e&&c<=f||c<=e&&d>=f||d>=e&&d<=f},p=function(c){return 0<=
c&&c<a.numPages},r=function(c){var b=a.pageTopOffsets[c],d=b+l(c,"h")+a.verticalPadding,e=a.pageLeftOffsets[c];c=e+l(c,"w")+a.horizontalPadding;return u(b,d)&&t(e,c)},q=function(c){return!!document.getElementById(a.ID+"page-"+c)},k=function(c){if(!q(c)||!a.allTilesLoaded[c]){var b=a.pages[c].f,d=l(c,"w"),e=l(c,"h"),f=a.pageTopOffsets[c]+a.verticalPadding,m=a.pageLeftOffsets[c]+a.horizontalPadding,U=a.selector+"page-"+c,x;if(!q(c)){var H=document.getElementById(a.ID+"inner"),k=document.createElement("div");
k.id=a.ID+"page-"+c;k.classList.add("diva-document-page");k.setAttribute("data-index",c);k.setAttribute("data-filename",b);k.title="Page "+(c+1);k.innerHTML=a.pageTools;k.style.width=d+"px";k.style.height=e+"px";a.verticallyOriented?(k.style.top=f+"px",k.classList.add("diva-page-vertical")):(k.style.left=m+"px",k.classList.add("diva-page-horizontal"));H.appendChild(k);h(a.onPageLoad,c,b,U);diva.Events.publish("PageWillLoad",[c,b,U],g);for(x in a.plugins)h(a.plugins[x].onPageLoad,c,b,U)}a.pageTimeouts.push(setTimeout(function(c){var f=
document.getElementById(a.ID+"page-"+c);if(r(c)){var m=a.imageDir+"/",k=l(c,"r"),x=l(c,"c"),H=!0,Y=0,F=e-(k-1)*a.tileHeight,z=d-(x-1)*a.tileWidth,n,p,X,fa,ga,K;baseImageURL=a.iipServerURL+"?FIF="+m+b+"&JTL="+(a.zoomLevel+a.pages[c].m-a.realMaxZoom)+",";for(m=0;m<k;){for(n=0;n<x;){fa=m*a.tileHeight;ga=n*a.tileWidth;p=m===k-1?F:a.tileHeight;X=n===x-1?z:a.tileWidth;K=baseImageURL+Y;if(!document.getElementById(a.ID+"tile-"+c+"-"+Y)){var w=void 0,q=void 0;a.verticallyOriented?(w=a.pageTopOffsets[c]+m*
a.tileHeight+a.verticalPadding,q=a.pageLeftOffsets[c]+n*a.tileWidth):(w=a.pageTopOffsets[c]+m*a.tileHeight,q=a.pageLeftOffsets[c]+n*a.tileWidth+a.horizontalPadding);var ra=q+a.tileWidth;u(w,w+a.tileHeight)&&t(q,ra)?(w=document.createElement("div"),w.id=a.ID+"tile-"+c+"-"+Y,w.classList.add("diva-document-tile"),w.style.display="inline",w.style.position="absolute",w.style.top=fa+"px",w.style.left=ga+"px",w.style.backgroundImage="url('"+K+"')",w.style.height=p+"px",w.style.width=X+"px",f.appendChild(w)):
H=!1}Y++;n++}m++}a.allTilesLoaded[c]=H;h(a.onPageLoaded,c,b,U);diva.Events.publish("PageDidLoad",[c,b,U],g)}},a.pageLoadTimeout,c))}},T=function(c){c=document.getElementById(a.ID+"page-"+c);if(null!==c){for(;c.firstChild;)c.removeChild(c.firstChild);c.parentNode.removeChild(c)}},L=function(c){if(a.verticallyOriented){c=a.pageTopOffsets[c]+l(c,"h")+a.verticalPadding;var b=document.getElementById(a.ID+"outer").scrollTop}else c=a.pageLeftOffsets[c]+l(c,"w")+a.horizontalPadding,b=document.getElementById(a.ID+
"outer").scrollLeft;return c=c<b},y=function(c){if(a.verticallyOriented){c=a.pageTopOffsets[c];var b=document.getElementById(a.ID+"outer").scrollTop+a.panelHeight}else c=a.pageLeftOffsets[c],b=document.getElementById(a.ID+"outer").scrollLeft+a.panelWidth;return c=c>b},v=function(c,b){0<b?p(c)&&(r(c)?(k(c),a.lastPageLoaded=c,v(a.lastPageLoaded+1,b)):L(c)&&v(c+1,b)):p(c)&&(r(c)?(k(c),a.firstPageLoaded=c,v(a.firstPageLoaded-1,b)):y(c)&&v(c-1,b))},A=function(c,b){0<b?p(c)&&L(c)&&(T(c),a.firstPageLoaded=
c+1,A(a.firstPageLoaded,b)):p(c)&&y(c)&&(T(c),a.lastPageLoaded=c-1,A(a.lastPageLoaded,b))},B=function(c){return 0<=c&&c<a.numRows},I=function(c){c*=a.rowHeight;return u(c,c+a.rowHeight+a.fixedPadding)},G=function(c){if(!document.getElementById(a.ID+"row-"+c)){var b=a.rowHeight*c+a.fixedPadding,d=document.getElementById(a.ID+"inner"),e=document.createElement("div");e.id=a.ID+"row-"+c;e.classList.add("diva-row");e.style.height=a.rowHeight+"px";e.style.top=b+"px";d.appendChild(e);for(var f,m,h,k,x,H,
F=a.imageDir+"/",n=a.pagesPerRow,d=0;d<n;d++){f=c*a.pagesPerRow+d;if(!p(f))break;m=a.pages[f].f;h=l(f,"w");k=l(f,"h");x=a.fixedHeightGrid?(a.rowHeight-a.fixedPadding)*h/k:a.gridPageWidth;h=a.fixedHeightGrid?a.rowHeight-a.fixedPadding:x/h*k;k=parseInt(d*(a.fixedPadding+a.gridPageWidth)+a.fixedPadding,10);x=parseInt(x,10);h=parseInt(h,10);k+=a.fixedHeightGrid?(a.gridPageWidth-x)/2:0;H=encodeURI(a.iipServerURL+"?FIF="+F+m+"&HEI="+(h+2)+"&CVT=JPEG");a.pageTopOffsets[f]=b;a.pageLeftOffsets[f]=k;var z=
document.createElement("div");z.id=a.ID+"page-"+f;var w=a.selector+"page-"+f;z.classList.add("diva-page");z.style.width=x+"px";z.style.height=h+"px";z.style.left=k+"px";z.setAttribute("data-index",f);z.setAttribute("data-filename",m);z.title="Page "+(f+1);e.appendChild(z);diva.Events.publish("PageWillLoad",[f,m,w],g);X(c,f,H,x,h)}}},M=function(c){c=document.getElementById(a.ID+"row-"+c);if(null!==c){for(;c.firstChild;)c.removeChild(c.firstChild);c.parentNode.removeChild(c)}},m=function(c){c=a.rowHeight*
(c+1);var b=document.getElementById(a.ID+"outer").scrollTop;return c<b},x=function(c){c*=a.rowHeight;var b=document.getElementById(a.ID+"outer").scrollTop+a.panelHeight;return c>b},F=function(c,b){0<b?B(c)&&(I(c)?(G(c),a.lastRowLoaded=c,F(a.lastRowLoaded+1,b)):m(c)&&F(c+1,b)):B(c)&&(I(c)?(G(c),a.firstRowLoaded=c,F(a.firstRowLoaded-1,b)):x(c)&&F(c-1,b))},H=function(c,b){0<b?B(c)&&m(c)&&(M(c),a.firstRowLoaded++,H(a.firstRowLoaded,b)):B(c)&&x(c)&&(M(c),a.lastRowLoaded--,H(a.lastRowLoaded,b))},X=function(c,
b,d,e,f){a.pageTimeouts.push(window.setTimeout(function(c,b,d,e,f){I(c)&&(c=document.createElement("img"),c.src=d,c.style.width=e+"px",c.style.height=f+"px",document.getElementById(a.ID+"page-"+b).appendChild(c))},a.rowLoadTimeout,c,b,d,e,f))},K=function(c){var b=a.currentPageIndex,d=b+c;if(!p(d))return!1;var e=a.verticallyOriented?document.getElementById(a.ID+"outer").scrollTop+a.panelHeight/2:document.getElementById(a.ID+"outer").scrollLeft+a.panelWidth/2,f=!1;0>c?a.verticallyOriented?0<=d&&a.pageTopOffsets[d]+
l(d,"h")+a.verticalPadding>=e&&(f=!0):0<=d&&a.pageLeftOffsets[d]+l(d,"w")+a.horizontalPadding>=e&&(f=!0):0<c&&(a.verticallyOriented?a.pageTopOffsets[b]+l(b,"h")+a.verticalPadding<e&&(f=!0):a.pageLeftOffsets[b]+l(b,"w")+a.horizontalPadding<e&&(f=!0));return f?(a.currentPageIndex=d,0===c||K(c)||(c=a.pages[d].f,h(a.onSetCurrentPage,d,c),diva.Events.publish("VisiblePageDidChange",[d,c],g)),!0):!1},O=function(c){var b=Math.floor(a.currentPageIndex/a.pagesPerRow),d=b+parseInt(c,10),e=document.getElementById(a.ID+
"outer").scrollTop,f=e+a.panelHeight/2,m=!1;0>c?0<=d&&(a.rowHeight*b>=f||a.rowHeight*d>=e)&&(m=!0):0<c&&a.rowHeight*(b+1)<e&&B(d)&&(m=!0);return m?(a.currentPageIndex=d*a.pagesPerRow,0===c||O(c)||(c=a.currentPageIndex,diva.Events.publish("VisiblePageDidChange",[c,a.pages[c].f],g)),!0):!1},J=function(c,b,d){d="undefined"!==typeof d?d:0;b=a.pageTopOffsets[c]+("undefined"!==typeof b?b:0)-parseInt(a.panelHeight/2,10);d=a.pageLeftOffsets[c]+d-parseInt(a.panelWidth/2,10);a.outerObject.scrollTop(b);a.outerObject.scrollLeft(d);
c!==a.currentPageIndex&&(a.currentPageIndex=c,d=a.pages[c].f,h(a.onSetCurrentPage,c,d),diva.Events.publish("VisiblePageDidChange",[c,d],g));h(a.onJump,c);diva.Events.publish("ViewerDidJump",[c],g)},z=function(c){a.outerObject.scrollTop(Math.floor(c/a.pagesPerRow)*a.rowHeight);a.currentPageIndex=c;diva.Events.publish("VisiblePageDidChange",[c,a.pages[c].f],g)},w=function(c){return c>=a.minZoomLevel&&c<=a.maxZoomLevel?c:a.minZoomLevel},ha=function(c){return c>=a.minPagesPerRow&&c<=a.maxPagesPerRow?
c:a.maxPagesPerRow},ia=function(){a.allTilesLoaded=[];a.outerObject.scrollTop(0);a.innerObject.empty();a.firstPageLoaded=0;a.firstRowLoaded=-1;a.previousTopScroll=0;a.previousLeftScroll=0;for(clearTimeout(a.resizeTimer);a.pageTimeouts.length;)clearTimeout(a.pageTimeouts.pop())},P=function(){a.inGrid?ja():aa()},aa=function(){ia();a.zoomLevel=w(a.zoomLevel);var c=a.zoomLevel;a.totalHeight=a.totalHeights[c]+a.verticalPadding*(a.numPages+1);a.totalWidth=a.totalWidths[c]+a.horizontalPadding*(a.numPages+
1);var b=a.maxHeights[c]+2*a.verticalPadding,d=Math.max(a.maxWidths[c]+2*a.horizontalPadding,a.panelWidth),b=Math.max(b,a.panelHeight),e=document.getElementById(a.ID+"inner");a.verticallyOriented?(e.style.height=Math.round(a.totalHeight)+"px",e.style.width=Math.round(d)+"px"):(e.style.height=Math.round(b)+"px",e.style.width=Math.round(a.totalWidth)+"px");var f=0,m=0;a.pageTopOffsets=[];a.pageLeftOffsets=[];for(e=0;e<a.numPages;e++)a.pageTopOffsets[e]=parseInt(a.verticallyOriented?f:(b-l(e,"h"))/2,
10),a.pageLeftOffsets[e]=parseInt(a.verticallyOriented?(d-l(e,"w"))/2:m,10),f=a.pageTopOffsets[e]+l(e,"h")+a.verticalPadding,m=a.pageLeftOffsets[e]+l(e,"w")+a.horizontalPadding;p(a.goDirectlyTo)||(a.goDirectlyTo=0);J(a.goDirectlyTo,a.verticalOffset,a.horizontalOffset);d=!1;for(e=0;e<a.numPages;e++)if(r(e))k(e),a.lastPageLoaded=e,d=!0;else if(d)break;0<=a.oldZoomLevel?(a.oldZoomLevel<a.zoomLevel?(h(a.onZoomIn,c),diva.Events.publish("ViewerDidZoomIn",[c],g)):(h(a.onZoomOut,c),diva.Events.publish("ViewerDidZoomOut",
[c],g)),h(a.onZoom,c)):a.oldZoomLevel=a.zoomLevel;a.scaleWait&&(a.scaleWait=!1);c=a.pages[a.currentPageIndex].f;h(a.onDocumentLoaded,a.currentPageIndex,c);diva.Events.publish("DocumentDidLoad",[a.currentPageIndex,c],g)},ja=function(){var c=a.currentPageIndex;a.verticalOffset=a.verticallyOriented?a.panelHeight/2:l(c,"h")/2;a.horizontalOffset=a.verticallyOriented?l(c,"w")/2:a.panelWidth/2;ia();a.pagesPerRow=ha(a.pagesPerRow);c=(a.panelWidth-a.fixedPadding*(a.pagesPerRow+1))/a.pagesPerRow;a.gridPageWidth=
c;a.rowHeight=a.fixedHeightGrid?a.fixedPadding+a.minRatio*c:a.fixedPadding+a.maxRatio*c;a.numRows=Math.ceil(a.numPages/a.pagesPerRow);a.totalHeight=a.numRows*a.rowHeight+a.fixedPadding;c=document.getElementById(a.ID+"inner");c.style.height=Math.round(a.totalHeight)+"px";c.style.width=Math.round(a.panelWidth)+"px";z(a.goDirectlyTo);var b;a.pageTopOffsets=[];a.pageLeftOffsets=[];for(var d=a.numPages,c=0;c<d;c+=a.pagesPerRow)b=Math.floor(c/a.pagesPerRow),I(b)&&(a.firstRowLoaded=0>a.firstRowLoaded?b:
a.firstRowLoaded,G(b),a.lastRowLoaded=b)},ka=function(a){27==a.keyCode&&C()},ba=function(c){a.outerObject.toggleClass("diva-fullscreen");b("body").toggleClass("diva-hide-scrollbar");a.parentObject.toggleClass("diva-full-width");if(a.mobileWebkit){var d=parseInt(a.outerObject.css("margin-left"),10)-parseInt(b("body").css("margin-left"),10);a.outerObject.css("margin-left",d)}var d=a.panelHeight,e=a.panelWidth;Q();if(0<=a.oldZoomLevel&&!a.inGrid){var f=a.panelHeight,m=a.panelWidth;a.inFullscreen?(a.verticalOffset-=
(f-d)/2,a.horizontalOffset-=(m-e)/2):(a.verticalOffset+=(d-f)/2,a.horizontalOffset+=(e-m)/2)}c?(a.inGrid=!a.inGrid,D()):P();if(a.inFullscreen)b(document).on("keyup",ka);else b(document).off("keyup",ka);h(a.onModeToggle,a.inFullscreen);diva.Events.publish("ModeDidSwitch",[a.inFullscreen],g)},D=function(){P();h(a.onViewToggle,a.inGrid);diva.Events.publish("ViewDidSwitch",[a.inGrid],g)},C=function(){a.goDirectlyTo=a.currentPageIndex;a.inFullscreen=!a.inFullscreen;ba(!1)},E=function(){a.goDirectlyTo=
a.currentPageIndex;a.inGrid=!a.inGrid;D()},ca=function(c){var d=b(this).offset();a.doubleClickZoom=!0;a.horizontalOffset=c.pageX-d.left;a.verticalOffset=c.pageY-d.top;a.goDirectlyTo=parseInt(b(this).attr("data-index"),10);N(c.ctrlKey?a.zoomLevel-1:a.zoomLevel+1)},la=function(c){var d=parseInt(b(this).attr("data-index"),10);a.goDirectlyTo=d;var e=b(this).offset(),d=l(d,"w")/b(this).width();a.horizontalOffset=(c.pageX-e.left)*d;a.verticalOffset=(c.pageY-e.top)*d;a.inGrid=!1;D()},N=function(c){var b=
w(c);if(b!==c)return!1;c=Math.pow(2,b-a.zoomLevel);a.doubleClickZoom?(a.verticalOffset*=c,a.horizontalOffset*=c,a.doubleClickZoom=!1):(a.goDirectlyTo=a.currentPageIndex,a.verticalOffset=c*V(),a.horizontalOffset=c*W());a.oldZoomLevel=a.zoomLevel;a.zoomLevel=b;diva.Events.publish("ZoomLevelDidChange",[b],g);aa();return!0},Z=function(c){var b=ha(c);if(b!==c)return!1;a.pagesPerRow=b;diva.Events.publish("GridRowNumberDidChange",[b],g);a.goDirectlyTo=a.currentPageIndex;ja();return!0},R=function(c,b){c=
"undefined"===typeof c?a.currentPageIndex:c;return"center"===b||"centre"===b?parseInt(l(c,"h")/2,10):"bottom"===b?parseInt(l(c,"h")-a.panelHeight/2,10):parseInt(a.panelHeight/2,10)},S=function(c,b){c="undefined"===typeof c?a.currentPageIndex:c;return"left"===b?parseInt(a.panelWidth/2,10):"right"===b?parseInt(l(c,"w")-a.panelWidth/2,10):parseInt(l(c,"w")/2,10)},V=function(){return document.getElementById(a.ID+"outer").scrollTop-a.pageTopOffsets[a.currentPageIndex]+parseInt(a.panelHeight/2,10)},W=function(){return document.getElementById(a.ID+
"outer").scrollLeft-a.pageLeftOffsets[a.currentPageIndex]+parseInt(a.panelWidth/2,10)},ma=function(){return{f:a.inFullscreen,g:a.inGrid,z:a.zoomLevel,n:a.pagesPerRow,i:a.enableFilename?a.pages[a.currentPageIndex].f:!1,p:a.enableFilename?!1:a.currentPageIndex+1,y:a.inGrid?!1:V(),x:a.inGrid?!1:W()}},na=function(){var c=ma(),b=[],d;for(d in c)!1!==c[d]&&b.push(d+a.hashParamSuffix+"="+c[d]);return b.join("&")},oa=function(){return location.protocol+"//"+location.host+location.pathname+"#"+na()},Q=function(){var c=
document.getElementById(a.ID+"outer");a.panelHeight=c.clientHeight-(c.scrollWidth>c.clientWidth?a.scrollbarWidth:0);a.panelWidth=c.clientWidth-(c.scrollHeight>c.clientHeight?a.scrollbarWidth:0);a.horizontalOffset=W();a.verticalOffset=V();J(a.currentPageIndex,a.verticalOffset,a.horizontalOffset);return!0},pa=function(){a.mobileWebkit||(a.outerObject.dragscrollable({dragSelector:".diva-dragger",acceptPropagatedEvent:!0}),a.innerObject.dragscrollable({dragSelector:".diva-dragger",acceptPropagatedEvent:!0}));
a.outerObject.on("dblclick",".diva-document-page",function(a){ca.call(this,a)});a.outerObject.on("contextmenu",".diva-document-page",function(c){if(c.ctrlKey)return clearTimeout(a.singleClickTimeout),a.singleClick?(ca.call(this,c),a.singleClick=!1):(a.singleClick=!0,a.singleClickTimeout=setTimeout(function(){a.singleClick=!1},500)),!1});a.outerObject.on("dblclick",".diva-row",function(a){la.call(b(a.target).parent(),a)})},da=function(a,b,d,e){return Math.sqrt((a-b)*(a-b)+(d-e)*(d-e))},sa=function(){a.innerObject.mouseover(function(){b(this).removeClass("diva-grabbing").addClass("diva-grab")});
a.innerObject.mouseout(function(){b(this).removeClass("diva-grab")});a.innerObject.mousedown(function(){b(this).removeClass("diva-grab").addClass("diva-grabbing")});a.innerObject.mouseup(function(){b(this).removeClass("diva-grabbing").addClass("diva-grab")});pa();a.outerObject.scroll(function(){var c,b=document.getElementById(a.ID+"outer").scrollTop,d=document.getElementById(a.ID+"outer").scrollLeft;c=a.verticallyOriented||a.inGrid?b-a.previousTopScroll:d-a.previousLeftScroll;if(a.inGrid){0>c?(F(a.firstRowLoaded,
-1),O(-1),H(a.lastRowLoaded,-1)):0<c&&(F(a.lastRowLoaded,1),O(1),H(a.firstRowLoaded,1));var e=document.getElementById(a.ID+"outer").scrollTop}else{if(0>c)v(a.firstPageLoaded,c),K(-1),A(a.lastPageLoaded,c);else if(0<c)v(a.lastPageLoaded,c),K(1),A(a.firstPageLoaded,c);else for(var f=a.lastPageLoaded,e=Math.max(a.firstPageLoaded,0);e<=f;e++)r(e)&&k(e);e=a.verticallyOriented?document.getElementById(a.ID+"outer").scrollTop:document.getElementById(a.ID+"outer").scrollLeft}h(a.onScroll,e);diva.Events.publish("ViewerDidScroll",
[e],g);0<c?(h(a.onScrollDown,e),diva.Events.publish("ViewerDidScrollDown",[e],g)):0>c&&(h(a.onScrollUp,e),diva.Events.publish("ViewerDidScrollUp",[e],g));a.previousTopScroll=b;a.previousLeftScroll=d;a.horizontalOffset=W();a.verticalOffset=V()});b(document).keydown(function(c){if(!a.isActiveDiva)return!0;if(a.enableSpaceScroll&&!c.shiftKey&&32===c.keyCode||a.enableKeyScroll&&34===c.keyCode)return a.outerObject.scrollTop(document.getElementById(a.ID+"outer").scrollTop+a.panelHeight),!1;a.enableSpaceScroll||
32!==c.keyCode||c.preventDefault();if(a.enableKeyScroll)switch(c.keyCode){case 33:return a.outerObject.scrollTop(document.getElementById(a.ID+"outer").scrollTop-a.panelHeight),!1;case 38:return a.outerObject.scrollTop(document.getElementById(a.ID+"outer").scrollTop-a.arrowScrollAmount),!1;case 40:return a.outerObject.scrollTop(document.getElementById(a.ID+"outer").scrollTop+a.arrowScrollAmount),!1;case 37:return a.outerObject.scrollLeft(document.getElementById(a.ID+"outer").scrollLeft-a.arrowScrollAmount),
!1;case 39:return a.outerObject.scrollLeft(document.getElementById(a.ID+"outer").scrollLeft+a.arrowScrollAmount),!1;case 36:return a.outerObject.scrollTop(0),!1;case 35:return a.outerObject.scrollTop(a.totalHeight),!1}return!0});if(a.mobileWebkit){var c=[];c.push('<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1" />');c.push('<meta name="apple-mobile-web-app-capable" content="yes" />');c.push('<meta name="apple-mobile-web-app-status-bar-style" content="black" />');
b("head").append(c.join("\n"));a.blockMobileMove&&b("body").bind("touchmove",function(a){a.originalEvent.preventDefault();return!1});a.outerObject.kinetic({triggerHardware:!0});var d=[],e=[],f=0;a.outerObject.on("touchstart",".diva-document-page",function(a){2===a.originalEvent.touches.length&&(d=[a.originalEvent.touches[0].clientX,a.originalEvent.touches[0].clientY,a.originalEvent.touches[1].clientX,a.originalEvent.touches[1].clientY],f=da(d[2],d[0],d[3],d[1]))});a.outerObject.on("touchmove",".diva-document-page",
function(c){if(2===c.originalEvent.touches.length){e=[c.originalEvent.touches[0].clientX,c.originalEvent.touches[0].clientY,c.originalEvent.touches[1].clientX,c.originalEvent.touches[1].clientY];var d=da(e[2],e[0],e[3],e[1])-f;if(!a.scaleWait)if(a.goDirectlyTo=a.currentPageIndex,a.inGrid)a.inGrid=!1,D();else a:{var m=a.zoomLevel;if(100<d&&m<a.maxZoomLevel)m++;else if(-100>d&&m>a.minZoomLevel)m--;else break a;a.scaleWait=!0;d=b(this).offset();a.horizontalOffset=c.pageX-d.left;a.verticalOffset=c.pageY-
d.top;a.goDirectlyTo=parseInt(b(this).attr("data-index"),10);N(m)}}});var m={},x=0,c=function(c){if(a.singleTap){var d={pageX:c.originalEvent.changedTouches[0].clientX,pageY:c.originalEvent.changedTouches[0].clientY};x=da(m.pageX,d.pageX,m.pageY,d.pageY);50>x&&a.zoomLevel<a.maxZoomLevel&&(a.inGrid?la.call(b(c.target).parent(),d):ca.call(this,d));a.singleTap=!1;m={}}else a.singleTap=!0,m.pageX=c.originalEvent.changedTouches[0].clientX,m.pageY=c.originalEvent.changedTouches[0].clientY,a.singleTapTimeout=
setTimeout(function(){a.singleTap=!1;m={}},250)};a.outerObject.on("touchend",".diva-document-page",c);a.outerObject.on("touchend",".diva-page",c);c="onorientationchange"in window?"orientationchange":"resize";b(window).bind(c,function(c){c=a.panelWidth;var b=a.panelHeight;Q();a.horizontalOffset-=(a.panelWidth-c)/2;a.verticalOffset-=(a.panelHeight-b)/2;a.goDirectlyTo=a.currentPageIndex;P()})}else b(window).resize(function(){Q();clearTimeout(a.resizeTimer);a.resizeTimer=setTimeout(function(){a.goDirectlyTo=
a.currentPageIndex;a.verticalOffset=V();a.horizontalOffset=W();P()},200)});diva.Events.subscribe("PanelSizeDidChange",Q)},ta=function(){a.toolbarParentObject.prepend('<div id="'+a.ID+'tools" class="diva-tools">'+('<div id="'+a.ID+'tools-left" class="diva-tools-left">'+("slider"===a.enableZoomControls?'<input type="range" id="'+a.ID+'zoom-slider" class="zoom-slider" value="'+a.zoomLevel+'" min="'+a.minZoomLevel+'" max="'+a.maxZoomLevel+'">':"")+("buttons"===a.enableZoomControls?'<div id="'+a.ID+'zoom-out-button" class="diva-zoom-out-button button" title="Zoom Out"></div><div id="'+
a.ID+'zoom-in-button" class="diva-zoom-in-button button" title="Zoom In"></div>':"")+("slider"===a.enableGridControls?'<input type="range" id="'+a.ID+'grid-slider" class="grid-slider" value="'+a.pagesPerRow+'" min="'+a.minPagesPerRow+'" max="'+a.maxPagesPerRow+'">':"")+("buttons"===a.enableGridControls?'<div id="'+a.ID+'grid-out-button" class="diva-grid-out-button button" title="Zoom Out"></div><div id="'+a.ID+'grid-in-button" class="diva-grid-in-button button" title="Zoom In"></div>':"")+("slider"===
a.enableZoomControls?'<div id="'+a.ID+'zoom-slider-label" class="diva-slider-label">Zoom level: <span id="'+a.ID+'zoom-level">'+a.zoomLevel+"</span></div>":"")+("buttons"===a.enableZoomControls?'<div id="'+a.ID+'zoom-buttons-label" class="diva-buttons-label">Zoom level: <span id="'+a.ID+'zoom-level">'+a.zoomLevel+"</span></div>":"")+("slider"===a.enableGridControls?'<div id="'+a.ID+'grid-slider-label" class="diva-slider-label">Pages per row: <span id="'+a.ID+'pages-per-row">'+a.pagesPerRow+"</span></div>":
"")+("buttons"===a.enableGridControls?'<div id="'+a.ID+'grid-buttons-label" class="diva-buttons-label">Pages per row: <span id="'+a.ID+'pages-per-row">'+a.pagesPerRow+"</span></div>":"")+'</div><div id="'+a.ID+'tools-right" class="diva-tools-right">'+(a.enableFullscreen?'<div id="'+a.ID+'fullscreen" class="diva-fullscreen-icon button" title="Toggle fullscreen mode"></div>':"")+(a.enableLinkIcon?'<div class="diva-link-icon button" id="'+a.ID+'link-icon" style="'+(a.enableGridIcon?"border-left: 0px":
"")+'" title="Link to this page"></div>':"")+(a.enableGridIcon?'<div class="diva-grid-icon button'+(a.inGrid?" diva-in-grid":"")+'" id="'+a.ID+'grid-icon" title="Toggle grid view"></div>':"")+'<div id="'+a.ID+'page-nav" class="diva-page-nav">'+(a.enableGotoPage?'<form id="'+a.ID+'goto-page" class="diva-goto-form"><input type="text" id="'+a.ID+'goto-page-input" / class="diva-input"> <input type="submit" value="Go" style="margin-top: 0px;" /></form>':"")+('<div class="diva-page-label">Page <span id="'+
a.ID+'current-page">1</span> of <span id="'+a.ID+'num-pages">'+a.numPages+"</span></div>")+"</div></div>")+"</div>");b(a.selector+"zoom-slider").on("input",function(a){a=parseInt(this.value,10);N(a)});b(a.selector+"zoom-slider").on("change",function(c){c=parseInt(this.value,10);c!==a.zoomLevel&&N(c)});b(a.selector+"zoom-out-button").click(function(){N(a.zoomLevel+-1)});b(a.selector+"zoom-in-button").click(function(){N(a.zoomLevel+1)});b(a.selector+"grid-slider").on("input",function(a){a=parseInt(this.value,
10);Z(a)});b(a.selector+"grid-slider").on("change",function(c){c=parseInt(this.value,10);c!==a.zoomLevel&&Z(c)});b(a.selector+"fullscreen").click(function(){C()});b(a.selector+"grid-out-button").click(function(){Z(a.pagesPerRow-1)});b(a.selector+"grid-in-button").click(function(){Z(a.pagesPerRow+1)});b(a.selector+"grid-icon").click(function(){E()});b(a.selector+"goto-page").submit(function(){var c=parseInt(b(a.selector+"goto-page-input").val(),10)-1;if(p(c))if(a.inGrid)z(c);else{var d=R(c,"top"),
e=S(c,"center");J(c,d,e)}else alert("Invalid page number");return!1});b(a.selector+"link-icon").click(function(){b("body").prepend('<div id="'+a.ID+'link-popup" class="diva-popup diva-link-popup"><input id="'+a.ID+'link-popup-input" class="diva-input" type="text" value="'+oa()+'"/></div>');if(a.inFullscreen)b(a.selector+"link-popup").addClass("in-fullscreen");else{var c=a.outerObject.offset().left+a.panelWidth,c=c+(a.scrollbarWidth-240-1),d=a.outerObject.offset().top+1;b(a.selector+"link-popup").removeClass("in-fullscreen").css({top:d+
"px",left:c+"px"})}b("body").mouseup(function(c){c=c.target.id;c!==a.ID+"link-popup"&&c!==a.ID+"link-popup-input"&&b(a.selector+"link-popup").remove()});a.outerObject.scroll(function(){b(a.selector+"link-popup").remove()});b(a.selector+"link-popup input").click(function(){b(this).focus().select()});return!1});var c=a.inGrid?"grid":"zoom";b(a.selector+c+"-slider").show();b(a.selector+c+"-out-button").show();b(a.selector+c+"-in-button").show();b(a.selector+c+"-slider-label").show();b(a.selector+c+"-buttons-label").show();
return{updateCurrentPage:function(){document.getElementById(a.ID+"current-page").textContent=a.currentPageIndex+1},setNumPages:function(c){document.getElementById(a.ID+"num-pages").textContent=c},updateZoomSlider:function(){a.zoomLevel!==b(a.selector+"zoom-slider").val()&&b(a.selector+"zoom-slider").val(a.zoomLevel);document.getElementById(a.ID+"zoom-level").textContent=a.zoomLevel},updateZoomButtons:function(){document.getElementById(a.ID+"zoom-level").textContent=a.zoomLevel},updateGridSlider:function(){a.pagesPerRow!==
b(a.selector+"grid-slider").val()&&b(a.selector+"grid-slider").val(a.pagesPerRow);document.getElementById(a.ID+"pages-per-row").textContent=a.pagesPerRow},updateGridButtons:function(){document.getElementById(a.ID+"pages-per-row").textContent=a.pagesPerRow},closePopups:function(){b(".diva-popup").css("display","none")},switchView:function(){b(a.selector+c+"-slider").hide();b(a.selector+c+"-out-button").hide();b(a.selector+c+"-in-button").hide();b(a.selector+c+"-slider-label").hide();b(a.selector+c+
"-buttons-label").hide();c=a.inGrid?"grid":"zoom";b(a.selector+c+"-slider").show();b(a.selector+c+"-out-button").show();b(a.selector+c+"-in-button").show();b(a.selector+c+"-slider-label").show();b(a.selector+c+"-buttons-label").show();b(a.selector+"grid-icon").toggleClass("diva-in-grid")},switchMode:function(){b(a.selector+"tools").toggleClass("diva-fullscreen-tools");a.inFullscreen?b(a.selector+"tools-left").addClass("in-fullscreen"):b(a.selector+"tools-left").removeClass("in-fullscreen")}}},ua=
function(){if(window.divaPlugins){var c=[];b.each(window.divaPlugins,function(b,d){var e=d.pluginName[0].toUpperCase()+d.pluginName.substring(1);a["enable"+e]&&d.init(a,g)&&(e=d.titleText||e+" plugin","function"===typeof d.handleClick&&(c.push('<div class="diva-'+d.pluginName+'-icon" title="'+e+'"></div>'),a.outerObject.on(a.mobileWebkit?"touchend":"click",".diva-"+d.pluginName+"-icon",function(c){d.handleClick.call(this,c,a,g)})),a.plugins.push(d))});c.length&&(a.pageTools='<div class="diva-page-tools">'+
c.join("")+"</div>")}},qa=function(){clearTimeout(a.throbberTimeoutID);b(a.selector+"throbber").hide()},va=function(){a.outerObject.append('<div id="'+a.ID+'throbber" class="diva-throbber"></div>');a.throbberTimeoutID=setTimeout(function(){b(a.selector+"throbber").show()},a.throbberTimeout);b.ajax({url:a.objectData,cache:!0,dataType:"json",error:function(c,b,d){qa();c='<div id="'+a.ID+'error" class="diva-error"><p><strong>Error</strong></p><p>Invalid objectData. Error code: '+b+" "+d+"</p>";0===a.objectData.lastIndexOf("http",
0)&&""===d&&(d=a.objectData.replace(/https?:\/\//i,"").split(/[/?#]/)[0],location.hostname!==d&&(c+='<p>Attempted to access cross-origin data without CORS.</p><p>You may need to update your server configuration to support CORS. For help, see the <a href="https://github.com/DDMAL/diva.js/wiki/Installation#a-note-about-cross-site-requests" target="_blank">cross-site request documentation.</a></p>'));a.outerObject.append(c+"</div>")},success:function(c,d,e){qa();a.pages=c.pgs;a.maxRatio=c.dims.max_ratio;
a.minRatio=c.dims.min_ratio;a.itemTitle=c.item_title;a.numPages=c.pgs.length;a.maxWidths=c.dims.max_w;a.maxHeights=c.dims.max_h;a.averageWidths=c.dims.a_wid;a.averageHeights=c.dims.a_hei;a.totalHeights=c.dims.t_hei;a.totalWidths=c.dims.t_wid;a.realMaxZoom=c.max_zoom;a.maxZoomLevel=0<=a.maxZoomLevel&&a.maxZoomLevel<=c.max_zoom?a.maxZoomLevel:c.max_zoom;a.minZoomLevel=0<=a.minZoomLevel&&a.minZoomLevel<=a.maxZoomLevel?a.minZoomLevel:0;a.zoomLevel=w(a.zoomLevel);a.minPagesPerRow=Math.max(2,a.minPagesPerRow);
a.maxPagesPerRow=Math.max(a.minPagesPerRow,a.maxPagesPerRow);a.enableFilename?(c=b.getHashParam("i"+a.hashParamSuffix),c=n(c)):c=parseInt(b.getHashParam("p"+a.hashParamSuffix),10)-1;p(c)&&(a.goDirectlyTo=c,a.currentPageIndex=c);b.each(a.plugins,function(c,b){h(b.setupHook,a)});a.enableToolbar&&(a.toolbar=ta(),diva.Events.subscribe("VisiblePageDidChange",a.toolbar.updateCurrentPage),diva.Events.subscribe("ModeDidSwitch",a.toolbar.switchMode),diva.Events.subscribe("ViewDidSwitch",a.toolbar.switchView),
diva.Events.subscribe("ZoomLevelDidChange",a.toolbar.updateZoomSlider),diva.Events.subscribe("ZoomLevelDidChange",a.toolbar.updateZoomButtons),diva.Events.subscribe("GridRowNumberDidChange",a.toolbar.updateGridSlider),diva.Events.subscribe("ZoomLevelDidChange",a.toolbar.updateGridButtons),diva.Events.subscribe("ClosePopups",a.toolbar.closePopups));b(a.selector+"current label").text(a.numPages);a.enableAutoTitle&&a.parentObject.prepend('<div id="'+a.ID+'title" class="diva-title">'+a.itemTitle+"</div>");
a.parentObject.parent()[0]!==document.body||a.parentObject.siblings().not("#diva-canvas-backdrop")[0]||(a.divaIsFullWindow=!0);Q();p(parseInt(a.goDirectlyTo),10)||(a.goDirectlyTo=0);0<a.adaptivePadding?(c=a.zoomLevel,a.horizontalPadding=parseInt(a.averageWidths[c]*a.adaptivePadding,10),a.verticalPadding=parseInt(a.averageHeights[c]*a.adaptivePadding,10)):(a.horizontalPadding=a.fixedPadding,a.verticalPadding=a.fixedPadding);a.pageTools.length&&(a.verticalPadding=Math.max(40,a.verticalPadding));c=parseInt(b.getHashParam("y"+
a.hashParamSuffix),10);isNaN(c)?a.verticalOffset=R(a.currentPageIndex,"top"):a.verticalOffset=c;c=parseInt(b.getHashParam("x"+a.hashParamSuffix),10);isNaN(c)?a.horizontalOffset=S(a.currentPageIndex,"center"):a.horizontalOffset=c;a.inFullscreen?ba(!1):P();Q();h(a.onReady,a);diva.Events.publish("ViewerDidLoad",[a],g);a.loaded=!0}})},ea=function(){return a.loaded?!0:(console.warn("The viewer is not completely initialized. This is likely because it is still downloading data. To fix this, only call this function if the isReady() method returns true."),
!1)};(function(){a.scrollbarWidth=b.getScrollbarWidth();a.mobileWebkit=void 0!==window.orientation;a.ID=b.generateId("diva-");a.selector="#"+a.ID;var c=parseInt(a.ID,10);1<c&&(a.hashParamSuffix=c);a.parentObject.append('<div id="'+a.ID+'outer" class="diva-outer"></div>');a.outerObject=b(a.selector+"outer");a.outerObject.append('<div id="'+a.ID+'inner" class="diva-inner diva-dragger"></div>');a.innerObject=b(a.selector+"inner");c=parseInt(b.getHashParam("n"+a.hashParamSuffix),10);c>=a.minPagesPerRow&&
c<=a.maxPagesPerRow&&(a.pagesPerRow=c);c=b.getHashParam("z"+a.hashParamSuffix);""!==c&&(c=parseInt(c,10),c>=a.minZoomLevel&&(a.zoomLevel=c));var c=b.getHashParam("g"+a.hashParamSuffix),d="true"===c,e=b.getHashParam("f"+a.hashParamSuffix);a.inGrid=a.inGrid&&"false"!==c||d;a.inFullscreen=a.inFullscreen&&"false"!==e||"true"===e;va();ua();sa()})();this.getItemTitle=function(){return a.itemTitle};this.gotoPageByNumber=function(a,b,d){--a;return p(a)?(J(a,R(a,d),S(a,b)),!0):!1};this.gotoPageByIndex=function(a,
b,d){return p(a)?(J(a,R(a,d),S(a,b)),!0):!1};this.getCurrentPage=function(){console.warn("The call to getCurrentPage is deprecated. Use getCurrentPageIndex instead.");return a.currentPageIndex};this.getNumberOfPages=function(){return ea()?a.numPages:!1};this.getPageDimensionsAtZoomLevel=function(c,b){if(!ea())return!1;b>a.maxZoomLevel&&(b=a.maxZoomLevel);var d=a.pages[c].d[parseInt(b,10)];return{width:d.w,height:d.h}};this.getCurrentPageDimensionsAtCurrentZoomLevel=function(){return this.getPageDimensionsAtZoomLevel(a.currentPageIndex,
a.zoomLevel)};this.isReady=function(){return a.loaded};this.getCurrentPageIndex=function(){return a.currentPageIndex};this.getCurrentPageFilename=function(){return a.pages[a.currentPageIndex].f};this.getCurrentPageNumber=function(){return a.currentPageIndex+1};this.getFilenames=function(){for(var c=[],b=0;b<a.numPages;b++)c[b]=a.pages[b].f;return c};this.getZoomLevel=function(){return a.zoomLevel};this.getMaxZoomLevel=function(){return a.maxZoomLevel};this.getMaxZoomLevelForPage=function(c){return ea?
a.pages[c].m:!1};this.getMinZoomLevel=function(){return a.minZoomLevel};this.setZoomLevel=function(c){a.inGrid&&E();return N(c)};this.zoomIn=function(){return this.setZoomLevel(a.zoomLevel+1)};this.zoomOut=function(){return this.setZoomLevel(a.zoomLevel-1)};this.inViewport=function(c,b,d,e,f){--c;d=a.pageTopOffsets[c]+d;b=a.pageLeftOffsets[c]+b;e=b+e;return u(d,d+f)&&t(b,e)};this.isPageInViewport=function(a){return r(a)};this.isPageInDOM=function(a){return q(a)};this.toggleFullscreenMode=function(){C()};
this.enterFullscreenMode=function(){return a.inFullscreen?!1:(C(),!0)};this.leaveFullscreenMode=function(){return a.inFullscreen?(C(),!0):!1};this.toggleGridView=function(){E()};this.enterGridView=function(){return a.inGrid?!1:(E(),!0)};this.leaveGridView=function(){return a.inGrid?(E(),!0):!1};this.gotoPageByName=function(a,b,d){a=n(a);return p(a)?(J(a,R(a,d),S(a,b)),!0):!1};this.getPageIndex=function(a){return n(a)};this.getCurrentURL=function(){return oa()};this.getURLHash=function(){return na()};
this.getState=function(){return ma()};this.getInstanceSelector=function(){return a.selector};this.getInstanceId=function(){return a.ID};this.getSettings=function(){return a};this.translateFromMaxZoomLevel=function(c){return c/Math.pow(2,a.maxZoomLevel-a.zoomLevel)};this.translateToMaxZoomLevel=function(c){var b=a.maxZoomLevel-a.zoomLevel;return 0===b?c:c*Math.pow(2,b)};this.setState=function(c){var b;b=n(c.i);p(b)?a.goDirectlyTo=b:p(c.p)&&(a.goDirectlyTo=c.p);horizontalOffset=parseInt(c.x,10);verticalOffset=
parseInt(c.y,10);c.z>=a.minZoomLevel&&c.z<=a.maxZoomLevel&&(a.zoomLevel=c.z);c.n>=a.minPagesPerRow&&c.n<=a.maxPagesPerRow&&(a.pagesPerRow=c.n);a.inFullscreen!==c.f?(a.inFullscreen=c.f,ba(a.inGrid!==c.g),a.horizontalOffset=horizontalOffset,a.verticalOffset=verticalOffset,J(b,a.verticalOffset,a.horizontalOffset)):(a.horizontalOffset=horizontalOffset,a.verticalOffset=verticalOffset,a.inGrid!==c.g?(a.inGrid=c.g,D()):P())};this.enableScrollable=function(){a.isScrollable||(pa(),a.enableKeyScroll=a.initialKeyScroll,
a.enableSpaceScroll=a.initialSpaceScroll,a.outerObject.css("overflow","auto"),a.isScrollable=!0)};this.disableScrollable=function(){a.isScrollable&&(a.innerObject.hasClass("diva-dragger")&&a.innerObject.unbind("mousedown"),a.outerObject.unbind("dblclick"),a.outerObject.unbind("contextmenu"),a.outerObject.css("overflow","hidden"),a.initialKeyScroll=a.enableKeyScroll,a.initialSpaceScroll=a.enableSpaceScroll,a.enableKeyScroll=!1,a.enableSpaceScroll=!1,a.isScrollable=!1)};this.toggleOrientation=function(){a.verticallyOriented=
!a.verticallyOriented;a.verticalOffset=R();a.horizontalOffset=S();a.goDirectlyTo=a.currentPageIndex;aa();return a.verticallyOriented};this.getPageOffset=function(c){return{top:parseInt(a.pageTopOffsets[c]),left:parseInt(a.pageLeftOffsets[c])}};this.getCurrentPageOffset=function(){return this.getPageOffset(a.currentPageIndex)};this.getPageDimensionsAtCurrentGridLevel=function(c){c=p(c)?c:a.currentPageIndex;var b=a.rowHeight-a.fixedPadding;c=a.fixedHeightGrid?(a.rowHeight-a.fixedPadding)*l(c,"w")/l(c,
"h"):a.gridPageWidth;return{height:parseInt(b,10),width:parseInt(c,10)}};this.getPageIndexForPageXYValues=function(c,b){var d=document.getElementById(a.ID+"outer").getBoundingClientRect(),e=d.bottom,f=d.right;if(c<d.left||c>f||b<d.top||b>e)return!1;d=document.getElementsByClassName("diva-document-page");for(e=d.length;e--;){var f=d[e],m=f.getBoundingClientRect();if(!(c<m.left||c>m.right||b<m.top||b>m.bottom))return f.getAttribute("data-index")}return!1};this.isVerticallyOriented=function(){return a.verticallyOriented};
this.activate=function(){a.isActiveDiva=!0};this.deactivate=function(){a.isActiveDiva=!1};this.destroy=function(){b("body").removeClass("diva-hide-scrollbar");a.parentObject.empty().removeData("diva");b.each(a.plugins,function(c,b){h(b.destroy,a,g)});a.parentObject.removeAttr("style").removeAttr("class");diva.Events.unsubscribeAll()}};b.fn.diva=function(f){return this.each(function(){f.parentObject=b(this);if(!f.parentObject.data("diva")){var d=new e(this,f);f.parentObject.data("diva",d)}})}})(jQuery);function log10(b){return Math.log(b)/Math.log(10)}
(function(b){window.divaPlugins.push(function(){return{init:function(e,f){var d,a,g,h,l;f.startScrolling=function(){e.currentlyAutoScrolling?console.warn("Diva is already autoscrolling!"):(b("#"+e.ID+"autoscroll-toggle").text("Turn off"),a&&f.disableScrollable(),e.currentlyAutoScrolling=!0,restartScrollingInterval())};restartScrollingInterval=function(){clearInterval(e.autoScrollInterval);e.autoScrollInterval=e.verticallyOriented?setInterval(function(){e.outerObject.scrollTop(e.outerObject.scrollTop()+d)},
g):setInterval(function(){e.outerObject.scrollLeft(e.outerObject.scrollLeft()+d)},g)};f.stopScrolling=function(){e.currentlyAutoScrolling?(b("#"+e.ID+"autoscroll-toggle").text("Turn on"),a&&f.enableScrollable(),e.currentlyAutoScrolling=!1,clearInterval(e.autoScrollInterval)):console.warn("Diva isn't autoscrolling!")};f.toggleScrolling=function(){e.currentlyAutoScrolling?f.stopScrolling():f.startScrolling()};f.changeRefresh=function(a){g=a;n()};f.changeScrollSpeed=function(a){l=a;n();b("#"+e.ID+"autoscroll-pps").val(log10(l));
e.currentlyAutoScrolling&&restartScrollingInterval()};var n=function(){g=h;d=l/(1E3/g);1>d&&(g*=1/d,d=l/(1E3/g))};f.disableManualScroll=function(){a=!0;e.currentlyAutoScrolling&&f.disableScrollable()};f.enableManualScroll=function(){a=!1;e.currentlyAutoScrolling&&f.enableScrollable()};e.currentlyAutoScrolling=!1;e.autoScrollInterval="";a=e.disableManualScroll||!1;h=g=e.autoScrollRefresh||50;f.changeScrollSpeed(e.scrollSpeed||10);b(window).on("keyup",function(a){a.shiftKey&&32==a.keyCode&&f.toggleScrolling()});
e.disableAutoscrollPrefs||diva.Events.subscribe("ViewerDidLoad",function(a){a="<div id='"+e.ID+"autoscroll-prefs' class='diva-autoscroll-prefs diva-popup'><b>Autoscrolling options:</b><br><span class='diva-autoscroll-prefs-text'>Pixels per second:</span><input type='range' id='"+e.ID+"autoscroll-pps' class='diva-autoscroll-pps diva-autoscroll-prefs-input' value='"+log10(l)+"' min='0' max='3' step='0.1'><br><span class='diva-autoscroll-prefs-text'>Allow manual scroll:</span><input type='checkbox' id='"+
e.ID+"autoscroll-manual' class='diva-autoscroll-manual diva-autoscroll-prefs-input' checked='checked'><br><button id='"+e.ID+"autoscroll-toggle' class='diva-autoscroll-prefs-toggle diva-autoscroll-prefs-input'> Turn on </button></div>";b("#"+e.ID+"page-nav").before("<div id='"+e.ID+"autoscroll-icon' class='button diva-autoscroll-icon' title='Expand autoscroll options'></div>");b("body").prepend(a);b("#"+e.ID+"autoscroll-pps").on("change",function(a){f.changeScrollSpeed(Math.pow(10,a.target.value))});
b("#"+e.ID+"autoscroll-manual").on("change",function(a){a.target.checked?f.enableManualScroll():f.disableManualScroll()});b("#"+e.ID+"autoscroll-toggle").on("click",f.toggleScrolling);b("#"+e.ID+"autoscroll-icon").on("click",function(a){a=b("#"+e.ID+"autoscroll-prefs");"none"==a.css("display")?(a.css({display:"block",right:b(window).width()-(e.outerObject.offset().left+e.outerObject.outerWidth())+e.scrollbarWidth}),a.offset({top:e.outerObject.offset().top+1})):a.css("display","none")})})},pluginName:"autoscroll",
titleText:"Automatically scrolls page along primary axis"}}())})(jQuery);(function(b){window.divaPlugins.push(function(){var e={},f={},d={},a,g,h,l={brightnessMax:150,brightnessMin:-100,brightnessStep:1,contrastMax:3,contrastMin:-1,contrastStep:.05,localStoragePrefix:"canvas-",mobileWebkitMaxZoom:2,onInit:null,rgbMax:50,rgbMin:-50,throbberFadeSpeed:200,throbberTimeout:100,buttons:["contrast","brightness","rotation","zoom"]},n=function(b,d){var e=b.context,f=b.size/2,g=-(b.width/2),h=-(b.height/2);e.clearRect(0,0,b.size,b.size);e.save();e.translate(f,f);e.rotate(d*Math.PI/
180);e.drawImage(a,g,h,b.width,b.height);e.restore();b.data=e.getImageData(0,0,b.size,b.size)},t=function(){for(var a in g)if(g[a].current!==g[a].previous)return!0;return!1},u=function(){n(f,g.rotation.current);q(f)},p=function(){var a=g.rotation.current,f=g.zoom.current,h=g.zoom.previous;if(a!==g.rotation.previous||f!==h){var k=b("#diva-canvas-wrapper").scrollLeft(),l=b("#diva-canvas-wrapper").scrollTop(),p=d.viewport.width/2,r=d.viewport.height/2,k=k+p-e.centerX,u=-(l+r-e.centerY),z=(g.rotation.previous-
a)*Math.PI/180,l=Math.cos(z)*k-Math.sin(z)*u+e.centerX,k=-(Math.sin(z)*k+Math.cos(z)*u)+e.centerY,f=Math.pow(2,f-h),p=f*l-p,r=f*k-r;n(e,a);b("#diva-canvas-wrapper").scrollLeft(p);b("#diva-canvas-wrapper").scrollTop(r)}if(t()){q(e);for(var w in g)g[w].previous=g[w].current}},r=function(a){var b=g[a].current!==g[a].initial;return g[a].current!==g[a].previous||b},q=function(a){var b=a.data,e=a.context.createImageData(b),f=e.data,h,k;h=0;for(k=f.length;h<k;h++)f[h]=b.data[h];b=e.data;h=g.contrast.current;
f=(1+Math.min(d.brightnessMax,Math.max(d.brightnessMin,g.brightness.current))/d.brightnessMax)*h;h=128-128*h;k=g.red.current;var l=g.green.current,n=g.blue.current,z=r("red"),p=r("green"),q=r("blue"),u=r("brightness"),t=r("contrast"),u=u||t,y,A,v,B,D,C,E,t=0;for(A=e.width;t<A;t++)for(y=0,v=e.height;y<v;y++)B=4*(y*A+t),D=b[B],C=b[B+1],E=b[B+2],0<D+C+E&&(z&&D&&(D+=k),p&&C&&(C+=l),q&&E&&(E+=n),u&&(D&&(D=D*f+h),C&&(C=C*f+h),E&&(E=E*f+h)),b[B]=D,b[B+1]=C,b[B+2]=E);a.context.clearRect(0,0,A,v);a.context.putImageData(e,
0,0)},k=function(){var a=b("#diva-canvas-wrapper").scrollLeft()*f.scaleFactor,e=b("#diva-canvas-wrapper").scrollTop()*f.scaleFactor,g=Math.min(Math.round(d.viewport.height*f.scaleFactor),d.mapSize)-4,h=Math.min(Math.round(d.viewport.width*f.scaleFactor),d.mapSize)-4;b("#diva-map-viewbox").height(g).width(h).css({top:e,left:a})},T=function(g,h){a=new Image;a.src=g;a.crossOrigin="Anonymous";a.onload=function(){e.size=Math.sqrt(a.width*a.width+a.height*a.height);e.canvas=document.getElementById("diva-canvas");
e.canvas.width=e.size;e.canvas.height=e.size;e.cornerX=(e.size-a.width)/2;e.cornerY=(e.size-a.height)/2;e.width=a.width;e.height=a.height;e.centerX=e.size/2;e.centerY=e.size/2;e.context=e.canvas.getContext("2d");e.context.drawImage(a,e.cornerX,e.cornerY,e.width,e.height);try{e.data=e.context.getImageData(0,0,e.size,e.size)}catch(g){var m='<div id="diva-error" class="diva-error"><p><strong>Error</strong></p><p>'+g.message+"</p>";if("SecurityError"!==g.name)throw g;m+='<p>You may need to update your server configuration in order to use the image manipulation tools. For help, see the <a href="https://github.com/DDMAL/diva.js/wiki/The-API-and-Plugins#a-note-about-canvas-and-cross-site-data" target="_blank">canvas cross-site data documentation</a>.</p></div></div>';
b("#diva-canvas-backdrop").append(m);B()}void 0===h&&(m=a,f.canvas=document.getElementById("diva-canvas-minimap"),f.size=d.mapSize,f.canvas.width=f.size,f.canvas.height=f.size,f.context=f.canvas.getContext("2d"),f.context.fillRect(0,0,f.size,f.size),f.scaleFactor=d.mapSize/e.size,f.cornerX=e.cornerX*f.scaleFactor,f.cornerY=e.cornerY*f.scaleFactor,f.width=m.width*f.scaleFactor,f.height=m.height*f.scaleFactor,f.context.drawImage(m,f.cornerX,f.cornerY,f.width,f.height),f.data=f.context.getImageData(0,
0,d.mapSize,d.mapSize),b("#diva-map-viewbox").show(),k());u();p(e);B();"function"===typeof h&&h.call(h)}},L=function(){var a=g[h],d=a.current,a=a.transform?a.transform(d):d;b("#diva-canvas-value").html(a)},y=function(){b("#diva-canvas-slider").val(g[h].current)},v=function(a){a=d.zoomWidthRatio*Math.pow(2,a);return d.proxyURL?d.proxyURL+"?f="+d.filename+"&w="+a:d.iipServerURL+"?FIF="+(d.imageDir+"/")+d.filename+"&WID="+a+"&CVT=JPEG"},A=function(){(0<g.zoom.current||d.mobileWebkit)&&b(d.selector+"throbber").addClass("canvas-throbber").show()},
B=function(){b(d.selector+"throbber").removeClass("canvas-throbber").hide()},I=function(){var a={},b=!1,e=d.localStoragePrefix+d.filename,f;for(f in g)g[f].previous!==g[f].initial&&(a[f]=g[f].previous,b=!0);b?(d.pluginIcon.addClass("new"),localStorage.setObject(e,a)):(d.pluginIcon.removeClass("new"),localStorage.removeItem(e))},G=function(a,b){d.zoomLevel=a;var g=v(a);T(g,function(){f.scaleFactor=f.size/e.size;k();I()})},M=function(a){switch(a.keyCode){case 38:return b("#diva-canvas-wrapper").scrollTop(document.getElementById("diva-canvas-wrapper").scrollTop-
d.arrowScrollAmount),!1;case 40:return b("#diva-canvas-wrapper").scrollTop(document.getElementById("diva-canvas-wrapper").scrollTop+d.arrowScrollAmount),!1;case 37:return b("#diva-canvas-wrapper").scrollLeft(document.getElementById("diva-canvas-wrapper").scrollLeft-d.arrowScrollAmount),!1;case 39:return b("#diva-canvas-wrapper").scrollLeft(document.getElementById("diva-canvas-wrapper").scrollLeft+d.arrowScrollAmount),!1}};return{init:function(a,n){if(!window.HTMLCanvasElement)return!1;b.extend(d,
l,a.canvasPlugin);d.inCanvas=!1;d.iipServerURL=a.iipServerURL;d.imageDir=a.imageDir;d.selector=a.selector;d.mobileWebkit=a.mobileWebkit;d.arrowScrollAmount=a.arrowScrollAmount;g={contrast:{initial:1,min:d.contrastMin,max:d.contrastMax,step:d.contrastStep,transform:function(a){return a.toFixed(2)},title:"Change the contrast"},brightness:{initial:0,min:d.brightnessMin,max:d.brightnessMax,step:d.brightnessStep,title:"Adjust the brightness"},rotation:{initial:0,min:0,max:359,step:1,transform:function(a){return a+
"&deg;"},title:"Rotate the image"},zoom:{initial:0,min:0,max:0,step:1,title:"Adjust the zoom level"},red:{initial:0,min:d.rgbMin,max:d.rgbMax,step:1,title:"Adjust the red channel"},green:{initial:0,min:d.rgbMin,max:d.rgbMax,step:1,title:"Adjust the green channel"},blue:{initial:0,min:d.rgbMin,max:d.rgbMax,step:1,title:"Adjust the blue channel"}};var r=function(){var a,b,d;for(d in g)b=g[d],a=b.initial,b.current=a,b.previous=a};r();if(b("#diva-canvas-backdrop").length)return!0;var q=[],v,K,O;for(O in d.buttons)v=
d.buttons[O],K=g[v].title,v='<div class="'+v+'" title="'+K+'"></div>',q.push(v);q='<div id="diva-canvas-backdrop">'+('<div id="diva-canvas-tools"><div id="diva-canvas-toolbar"><div id="diva-canvas-close" title="Return to the document viewer"></div><div id="diva-canvas-minimise" title="Minimise the toolbar"></div><span id="diva-canvas-info">Test</span></div><div id="diva-canvas-toolwindow"><div id="diva-map-viewbox"></div><canvas id="diva-canvas-minimap"></canvas><div id="diva-canvas-buttons">'+q.join("")+
'</div><div id="diva-canvas-pane"><p id="diva-canvas-tooltip"><span id="diva-canvas-mode">contrast</span>: <span id="diva-canvas-value">0</span> <span id="diva-canvas-reset" class="link">(Reset)</span></p><input type="range" id="diva-canvas-slider"></input></div><br /><div class="action-buttons"><a href="#" id="diva-canvas-reset-all">Reset all</a><a href="#" id="diva-canvas-apply">Apply</a></div></div></div>')+'<div id="diva-canvas-wrapper"><canvas id="diva-canvas"></canvas></div></div>';b("body").append(q);
d.mapSize=b("#diva-canvas-minimap").width();b("#diva-canvas-buttons div").click(function(){b("#diva-canvas-buttons .clicked").removeClass("clicked");J(b(this).attr("class"))});var J=function(a){h=a;a=g[h];b("#diva-canvas-buttons ."+h).addClass("clicked");b("#diva-canvas-mode").text(h);var d=a.current,e=a.transform?a.transform(d):d,f=document.getElementById("diva-canvas-slider");f.min=a.min;f.max=a.max;f.step=a.step;b("#diva-canvas-slider").val(d);b("#diva-canvas-value").html(e)};J("contrast");b("#diva-canvas-slider").on("input",
function(a){g[h].current=parseFloat(this.value);L();u()});b("#diva-canvas-reset-all").click(function(){for(var a in g)g[a].current=g[a].initial;L();y();u()});b("#diva-canvas-reset").click(function(){g[h].current=g[h].initial;L();y();u()});b("#diva-canvas-apply").click(function(){t()&&(A(),setTimeout(function(){g.zoom.current!==g.zoom.previous?G(g.zoom.current):(p(),B(),I())},d.throbberTimeout))});b("#diva-canvas-close").click(function(){b("body").removeClass("overflow-hidden");e.context.clearRect(0,
0,e.size,e.size);f.context.clearRect(0,0,f.size,f.size);b("#diva-canvas-wrapper").scrollTop(0).scrollLeft(0);b("#diva-canvas-backdrop").hide();b("#diva-map-viewbox").hide();B();n.enableScrollable();b(document).off("keydown",M);r();L();y();b("#diva-canvas-buttons .clicked").removeClass("clicked");J("contrast");diva.Events.publish("CanvasViewDidHide")});b("#diva-canvas-minimise").click(function(){b("#diva-canvas-toolwindow").slideToggle("fast")});b(window).resize(function(){d.viewport={height:window.innerHeight-
a.scrollbarWidth,width:window.innerWidth-a.scrollbarWidth};d.inCanvas&&k()});b("#diva-canvas-wrapper").scroll(function(){d.inCanvas&&k()});b("#diva-canvas-minimap, #diva-map-viewbox").mouseup(function(a){var e=b("#diva-canvas-minimap").offset(),g=(a.pageX-e.left)/f.scaleFactor;a=(a.pageY-e.top)/f.scaleFactor;b("#diva-canvas-wrapper").scrollTop(a-d.viewport.height/2);b("#diva-canvas-wrapper").scrollLeft(g-d.viewport.width/2)});b("#diva-canvas").mousedown(function(){b(this).addClass("grabbing")}).mouseup(function(){b(this).removeClass("grabbing")});
d.mobileWebkit?b("#diva-canvas-wrapper").kinetic():b("#diva-canvas-wrapper").dragscrollable({acceptPropagatedEvent:!0});"function"===typeof d.onInit&&d.onInit.call(this,d);return!0},pluginName:"canvas",titleText:"View the image on a canvas and adjust various settings",setupHook:function(a){d.viewport={height:window.innerHeight-a.scrollbarWidth,width:window.innerWidth-a.scrollbarWidth};d.minZoomLevel=a.minZoomLevel;d.maxZoomLevel=a.maxZoomLevel;d.mobileWebkit&&(d.maxZoomLevel=Math.min(d.maxZoomLevel,
d.mobileWebkitMaxZoom));g.zoom.min=d.minZoomLevel;g.zoom.max=d.maxZoomLevel},handleClick:function(a,e,f){a=b(this).parent().parent();var k=b(a).attr("data-filename"),l=b(a).width()-1;e=e.zoomLevel;var n;d.zoomWidthRatio=l/Math.pow(2,e);d.pluginIcon=b(this);d.mobileWebkit&&(e=Math.min(d.maxZoomLevel,e));d.filename=k;g.zoom.initial=e;g.zoom.current=e;if(k=localStorage.getObject(d.localStoragePrefix+d.filename))for(n in k)g[n].current=k[n],n===h&&(L(),y()),"zoom"===n&&(e=k[n]);g.zoom.previous=e;b("body").addClass("overflow-hidden");
b("#diva-canvas-backdrop").show();f.disableScrollable();b(document).keydown(M);d.inCanvas=!0;f=v(e);b("#diva-canvas-info").text(b(a).attr("title"));A();diva.Events.publish("CanvasViewDidActivate",[a]);T(f)},onPageLoad:function(a,e,f){null!==localStorage.getItem(d.localStoragePrefix+e)&&b(f).find(".diva-canvas-icon").addClass("new")},destroy:function(a,d){b("#diva-canvas-backdrop").remove()}}}())})(jQuery);(function(b){window.divaPlugins.push(function(){var e,f;return{init:function(b,a){e=b.iipServerURL;f=b.imageDir;return!0},pluginName:"download",titleText:"Download image at the given zoom level",handleClick:function(d){var a=b(this).parent().parent();d=b(a).attr("data-filename");a=b(a).width()-1;window.open(e+"?FIF="+(f+"/")+d+"&WID="+a+"&CVT=JPEG")}}}())})(jQuery);(function(b){window.divaPlugins.push(function(){return{init:function(b,f){function d(a,d,h){var l=b.parentObject.data("highlights");if("undefined"!==typeof l){if(l.hasOwnProperty(a)){var n=f.getInstanceId()+"page-"+a,n=document.getElementById(n),t=l[a].regions,u=l[a].colour,l=l[a].divClass,p=f.getMaxZoomLevel();b.inGrid?(p=f.getPageDimensionsAtZoomLevel(a,p).width,p=Math.log(p/n.clientWidth)/Math.log(2)):p-=f.getZoomLevel();for(var r=t.length;r--;){var q=document.createElement("div");q.style.width=
t[r].width/Math.pow(2,p)+"px";q.style.height=t[r].height/Math.pow(2,p)+"px";q.style.top=t[r].uly/Math.pow(2,p)+"px";q.style.left=t[r].ulx/Math.pow(2,p)+"px";q.style.background=u;q.style.border="1px solid #555";q.style.position="absolute";q.style.zIndex=100;q.className=l;"undefined"!==typeof t[r].divID&&(q.id=t[r].divID);n.appendChild(q)}}diva.Events.publish("HighlightCompleted",[a,d,h])}}b.parentObject.data("highlights",{});diva.Events.subscribe("PageWillLoad",d);f.resetHighlights=function(){for(var a=
document.getElementById(b.ID+"inner").getElementsByClassName(b.ID+"highlight"),d=a.length;d--;)a[d].parentNode.removeChild(a[d]);b.parentObject.data("highlights",{})};f.removeHighlightsOnPage=function(a){var d=b.parentObject.data("highlights");if(d.hasOwnProperty(a)){for(var h=f.getInstanceId()+"page-"+a,h=document.getElementById(h),l=h.getElementsByTagName("div"),n=d[a].divClass,t=l.length;t--;)l[t].className===n&&h.removeChild(l[t]);delete d[a]}};f.highlightOnPages=function(a,b,d,e){for(var n=a.length;n--;)f.highlightOnPage(a[n],
b[n],d,e)};f.highlightOnPage=function(a,g,h,l){"undefined"===typeof h&&(h="rgba(255, 0, 0, 0.2)");l="undefined"===typeof l?b.ID+"highlight":b.ID+"highlight "+l;f.getMaxZoomLevel();b.parentObject.data("highlights")[a]={regions:g,colour:h,divClass:l};f.isPageInDOM(a)&&d(a,null,null);return!0};return!0},destroy:function(b,f){b.parentObject.removeData("highlights")},pluginName:"highlight",titleText:"Highlight regions of pages"}}())})(jQuery);(function(b){window.divaPlugins.push(function(){return{init:function(b,f){void 0===b.pageAliases&&(b.pageAliases={});void 0===b.pageAliasFunction&&(b.pageAliasFunction=function(){return!1});f.getAliasForPageIndex=function(d){return b.pageAliases[d]||b.pageAliasFunction(d)||d+1};f.getPageIndexForAlias=function(d){for(var a=0;a<b.numPages;a++)if(f.getAliasForPageIndex(a)==d)return a;return!1};f.getPageIndicesForAlias=function(d){for(var a=[],g=0;g<b.numPages;g++)f.getAliasForPageIndex(g)==d&&a.push(g);
return a};f.getCurrentAliasedPageIndex=function(){return f.getAliasForPageIndex(b.currentPageIndex)};f.gotoPageByAliasedNumber=function(b,a,e){return f.gotoPageByIndex(f.getPageIndexForAlias(b),a,e)};updateCurrentAliasedPage=function(){document.getElementById(this.getSettings().ID+"current-page").textContent=this.getCurrentAliasedPageIndex()};initialChanges=function(){var b=this.getSettings(),a=b.numPages;void 0!==b.newTotalPages?a=b.newTotalPages:void 0!==b.totalPageOffset&&(a+=b.totalPageOffset);
document.getElementById(this.getSettings().ID+"num-pages").textContent=a;document.getElementById(this.getSettings().ID+"current-page").textContent=this.getCurrentAliasedPageIndex();diva.Events.unsubscribe(["VisiblePageDidChange",b.toolbar.updateCurrentPage]);diva.Events.subscribe("VisiblePageDidChange",updateCurrentAliasedPage)};diva.Events.subscribe("ViewerDidLoad",initialChanges)},pluginName:"pagealias",titleText:"Re-aliases page indexes"}}())})(jQuery);