/**
 * Seadragon Ajax 0.8.8 (build 20981 on 2010-08-16)
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * For more information, visit: http://seadragon.com/ajax/
 */
if(!window.Seadragon){window.Seadragon={};}
(function(){if(Seadragon.Config){return;}
Seadragon.Config={debugMode:false,animationTime:1.5,blendTime:0.5,alwaysBlend:false,autoHideControls:true,immediateRender:false,wrapHorizontal:false,wrapVertical:false,wrapOverlays:false,transformOverlays:false,minZoomDimension:null,minZoomImageRatio:0.8,maxZoomPixelRatio:2,visibilityRatio:0.5,springStiffness:5.0,imageLoaderLimit:2,clickTimeThreshold:200,clickDistThreshold:5,zoomPerClick:2.0,zoomPerScroll:1.2,zoomPerSecond:2.0,proxyUrl:null,imagePath:"img/"};})();(function(){if(Seadragon.Strings){return;}
Seadragon.Strings={Errors:{Failure:"Sorry, but Seadragon Ajax can't run on your browser!\n"+"Please try using IE 8 or Firefox 3.\n",Dzc:"Sorry, we don't support Deep Zoom Collections!",Dzi:"Hmm, this doesn't appear to be a valid Deep Zoom Image.",Xml:"Hmm, this doesn't appear to be a valid Deep Zoom Image.",Empty:"You asked us to open nothing, so we did just that.",ImageFormat:"Sorry, we don't support {0}-based Deep Zoom Images.",Security:"It looks like a security restriction stopped us from "+"loading this Deep Zoom Image.",Status:"This space unintentionally left blank ({0} {1}).",Unknown:"Whoops, something inexplicably went wrong. Sorry!"},Messages:{Loading:"Loading..."},Tooltips:{FullPage:"Toggle full page",Home:"Go home",ZoomIn:"Zoom in (you can also use your mouse's scroll wheel)",ZoomOut:"Zoom out (you can also use your mouse's scroll wheel)"}};Seadragon.Strings.getString=function(prop){var props=prop.split('.');var string=Seadragon.Strings;for(var i=0;i<props.length;i++){string=string[props[i]]||{};}
if(typeof(string)!="string"){string="";}
var args=arguments;return string.replace(/\{\d+\}/g,function(capture){var i=parseInt(capture.match(/\d+/))+1;return i<args.length?args[i]:"";});};Seadragon.Strings.setString=function(prop,value){var props=prop.split('.');var container=Seadragon.Strings;for(var i=0;i<props.length-1;i++){if(!container[props[i]]){container[props[i]]={};}
container=container[props[i]];}
container[props[i]]=value;};})();Seadragon.Debug=function(){this.log=function(msg,important){var console=window.console||{};var debug=Seadragon.Config.debugMode;if(debug&&console.log){console.log(msg);}else if(debug&&important){alert(msg);}};this.error=function(msg,e){var console=window.console||{};var debug=Seadragon.Config.debugMode;if(debug&&console.error){console.error(msg);}else if(debug){alert(msg);}
if(debug){throw e||new Error(msg);}};this.fail=function(msg){alert(Seadragon.Strings.getString("Errors.Failure"));throw new Error(msg);};};Seadragon.Debug=new Seadragon.Debug();Seadragon.Profiler=function(){var self=this;var midUpdate=false;var numUpdates=0;var lastBeginTime=null;var lastEndTime=null;var minUpdateTime=Infinity;var avgUpdateTime=0;var maxUpdateTime=0;var minIdleTime=Infinity;var avgIdleTime=0;var maxIdleTime=0;this.getAvgUpdateTime=function(){return avgUpdateTime;};this.getMinUpdateTime=function(){return minUpdateTime;};this.getMaxUpdateTime=function(){return maxUpdateTime;};this.getAvgIdleTime=function(){return avgIdleTime;};this.getMinIdleTime=function(){return minIdleTime;};this.getMaxIdleTime=function(){return maxIdleTime;};this.isMidUpdate=function(){return midUpdate;};this.getNumUpdates=function(){return numUpdates;};this.beginUpdate=function(){if(midUpdate){self.endUpdate();}
midUpdate=true;lastBeginTime=new Date().getTime();if(numUpdates<1){return;}
var time=lastBeginTime-lastEndTime;avgIdleTime=(avgIdleTime*(numUpdates-1)+time)/numUpdates;if(time<minIdleTime){minIdleTime=time;}
if(time>maxIdleTime){maxIdleTime=time;}};this.endUpdate=function(){if(!midUpdate){return;}
lastEndTime=new Date().getTime();midUpdate=false;var time=lastEndTime-lastBeginTime;numUpdates++;avgUpdateTime=(avgUpdateTime*(numUpdates-1)+time)/numUpdates;if(time<minUpdateTime){minUpdateTime=time;}
if(time>maxUpdateTime){maxUpdateTime=time;}};this.clearProfile=function(){midUpdate=false;numUpdates=0;lastBeginTime=null;lastEndTime=null;minUpdateTime=Infinity;avgUpdateTime=0;maxUpdateTime=0;minIdleTime=Infinity;avgIdleTime=0;maxIdleTime=0;};};(function(){Seadragon.Point=function(x,y){this.x=typeof(x)=="number"?x:0;this.y=typeof(y)=="number"?y:0;};var SDPointPrototype=Seadragon.Point.prototype;SDPointPrototype.plus=function(point){return new Seadragon.Point(this.x+point.x,this.y+point.y);};SDPointPrototype.minus=function(point){return new Seadragon.Point(this.x-point.x,this.y-point.y);};SDPointPrototype.times=function(factor){return new Seadragon.Point(this.x*factor,this.y*factor);};SDPointPrototype.divide=function(factor){return new Seadragon.Point(this.x/factor,this.y/factor);};SDPointPrototype.negate=function(){return new Seadragon.Point(-this.x,-this.y);};SDPointPrototype.distanceTo=function(point){return Math.sqrt(Math.pow(this.x-point.x,2)+
Math.pow(this.y-point.y,2));};SDPointPrototype.apply=function(func){return new Seadragon.Point(func(this.x),func(this.y));};SDPointPrototype.equals=function(point){return(point instanceof Seadragon.Point)&&(this.x===point.x)&&(this.y===point.y);};SDPointPrototype.toString=function(){return"("+this.x+","+this.y+")";};})();(function(){Seadragon.Rect=function(x,y,width,height){this.x=typeof(x)=="number"?x:0;this.y=typeof(y)=="number"?y:0;this.width=typeof(width)=="number"?width:0;this.height=typeof(height)=="number"?height:0;};var SDRectPrototype=Seadragon.Rect.prototype;SDRectPrototype.getAspectRatio=function(){return this.width/this.height;};SDRectPrototype.getTopLeft=function(){return new Seadragon.Point(this.x,this.y);};SDRectPrototype.getBottomRight=function(){return new Seadragon.Point(this.x+this.width,this.y+this.height);};SDRectPrototype.getCenter=function(){return new Seadragon.Point(this.x+this.width/2.0,this.y+this.height/2.0);};SDRectPrototype.getSize=function(){return new Seadragon.Point(this.width,this.height);};SDRectPrototype.equals=function(other){return(other instanceof Seadragon.Rect)&&(this.x===other.x)&&(this.y===other.y)&&(this.width===other.width)&&(this.height===other.height);};SDRectPrototype.toString=function(){return"["+this.x+","+this.y+","+this.width+"x"+
this.height+"]";};})();Seadragon.Spring=function(initialValue){var currentValue=typeof(initialValue)=="number"?initialValue:0;var startValue=currentValue;var targetValue=currentValue;var currentTime=new Date().getTime();var startTime=currentTime;var targetTime=currentTime;function transform(x){var s=Seadragon.Config.springStiffness;return(1.0-Math.exp(-x*s))/(1.0-Math.exp(-s));}
this.getCurrent=function(){return currentValue;};this.getTarget=function(){return targetValue;};this.resetTo=function(target){targetValue=target;targetTime=currentTime;startValue=targetValue;startTime=targetTime;};this.springTo=function(target){startValue=currentValue;startTime=currentTime;targetValue=target;targetTime=startTime+1000*Seadragon.Config.animationTime;};this.shiftBy=function(delta){startValue+=delta;targetValue+=delta;};this.update=function(){currentTime=new Date().getTime();currentValue=(currentTime>=targetTime)?targetValue:startValue+(targetValue-startValue)*transform((currentTime-startTime)/(targetTime-startTime));};};Seadragon.Utils=function(){var Browser={UNKNOWN:0,IE:1,FIREFOX:2,SAFARI:3,CHROME:4,OPERA:5};Seadragon.Browser=Browser;var self=this;var arrActiveX=["Msxml2.XMLHTTP","Msxml3.XMLHTTP","Microsoft.XMLHTTP"];var fileFormats={"bmp":false,"jpeg":true,"jpg":true,"png":true,"tif":false,"wdp":false};var browser=Browser.UNKNOWN;var browserVersion=0;var badAlphaBrowser=false;var urlParams={};(function(){var app=navigator.appName;var ver=navigator.appVersion;var ua=navigator.userAgent;if(app=="Microsoft Internet Explorer"&&!!window.attachEvent&&!!window.ActiveXObject){var ieOffset=ua.indexOf("MSIE");browser=Browser.IE;browserVersion=parseFloat(ua.substring(ieOffset+5,ua.indexOf(";",ieOffset)));}else if(app=="Netscape"&&!!window.addEventListener){var ffOffset=ua.indexOf("Firefox");var saOffset=ua.indexOf("Safari");var chOffset=ua.indexOf("Chrome");if(ffOffset>=0){browser=Browser.FIREFOX;browserVersion=parseFloat(ua.substring(ffOffset+8));}else if(saOffset>=0){var slash=ua.substring(0,saOffset).lastIndexOf("/");browser=(chOffset>=0)?Browser.CHROME:Browser.SAFARI;browserVersion=parseFloat(ua.substring(slash+1,saOffset));}}else if(app=="Opera"&&!!window.opera&&!!window.attachEvent){browser=Browser.OPERA;browserVersion=parseFloat(ver);}
var query=window.location.search.substring(1);var parts=query.split('&');for(var i=0;i<parts.length;i++){var part=parts[i];var sep=part.indexOf('=');if(sep>0){urlParams[part.substring(0,sep)]=decodeURIComponent(part.substring(sep+1));}}
badAlphaBrowser=(browser==Browser.IE||(browser==Browser.CHROME&&browserVersion<2));})();function getOffsetParent(elmt,isFixed){if(isFixed&&elmt!=document.body){return document.body;}else{return elmt.offsetParent;}}
this.getBrowser=function(){return browser;};this.getBrowserVersion=function(){return browserVersion;};this.getElement=function(elmt){if(typeof(elmt)=="string"){elmt=document.getElementById(elmt);}
return elmt;};this.getElementPosition=function(elmt){var elmt=self.getElement(elmt);var result=new Seadragon.Point();var isFixed=self.getElementStyle(elmt).position=="fixed";var offsetParent=getOffsetParent(elmt,isFixed);while(offsetParent){result.x+=elmt.offsetLeft;result.y+=elmt.offsetTop;if(isFixed){result=result.plus(self.getPageScroll());}
elmt=offsetParent;isFixed=self.getElementStyle(elmt).position=="fixed";offsetParent=getOffsetParent(elmt,isFixed);}
return result;};this.getElementSize=function(elmt){var elmt=self.getElement(elmt);return new Seadragon.Point(elmt.clientWidth,elmt.clientHeight);};this.getElementStyle=function(elmt){var elmt=self.getElement(elmt);if(elmt.currentStyle){return elmt.currentStyle;}else if(window.getComputedStyle){return window.getComputedStyle(elmt,"");}else{Seadragon.Debug.fail("Unknown element style, no known technique.");}};this.getEvent=function(event){return event?event:window.event;};this.getMousePosition=function(event){var event=self.getEvent(event);var result=new Seadragon.Point();if(event.type=="DOMMouseScroll"&&browser==Browser.FIREFOX&&browserVersion<3){result.x=event.screenX;result.y=event.screenY;}else if(typeof(event.pageX)=="number"){result.x=event.pageX;result.y=event.pageY;}else if(typeof(event.clientX)=="number"){result.x=event.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;result.y=event.clientY+document.body.scrollTop+document.documentElement.scrollTop;}else{Seadragon.Debug.fail("Unknown event mouse position, no known technique.");}
return result;};this.getMouseScroll=function(event){var event=self.getEvent(event);var delta=0;if(typeof(event.wheelDelta)=="number"){delta=event.wheelDelta;}else if(typeof(event.detail)=="number"){delta=event.detail*-1;}else{Seadragon.Debug.fail("Unknown event mouse scroll, no known technique.");}
return delta?delta/Math.abs(delta):0;};this.getPageScroll=function(){var result=new Seadragon.Point();var docElmt=document.documentElement||{};var body=document.body||{};if(typeof(window.pageXOffset)=="number"){result.x=window.pageXOffset;result.y=window.pageYOffset;}else if(body.scrollLeft||body.scrollTop){result.x=body.scrollLeft;result.y=body.scrollTop;}else if(docElmt.scrollLeft||docElmt.scrollTop){result.x=docElmt.scrollLeft;result.y=docElmt.scrollTop;}
return result;};this.getWindowSize=function(){var result=new Seadragon.Point();var docElmt=document.documentElement||{};var body=document.body||{};if(typeof(window.innerWidth)=='number'){result.x=window.innerWidth;result.y=window.innerHeight;}else if(docElmt.clientWidth||docElmt.clientHeight){result.x=docElmt.clientWidth;result.y=docElmt.clientHeight;}else if(body.clientWidth||body.clientHeight){result.x=body.clientWidth;result.y=body.clientHeight;}else{Seadragon.Debug.fail("Unknown window size, no known technique.");}
return result;};this.imageFormatSupported=function(ext){var ext=ext?ext:"";return!!fileFormats[ext.toLowerCase()];};this.makeCenteredNode=function(elmt){var elmt=Seadragon.Utils.getElement(elmt);var div=self.makeNeutralElement("div");var html=[];html.push('<div style="display:table; height:100%; width:100%;');html.push('border:none; margin:0px; padding:0px;');html.push('#position:relative; overflow:hidden; text-align:left;">');html.push('<div style="#position:absolute; #top:50%; width:100%; ');html.push('border:none; margin:0px; padding:0px;');html.push('display:table-cell; vertical-align:middle;">');html.push('<div style="#position:relative; #top:-50%; width:100%; ');html.push('border:none; margin:0px; padding:0px;');html.push('text-align:center;"></div></div></div>');div.innerHTML=html.join('');div=div.firstChild;var innerDiv=div;var innerDivs=div.getElementsByTagName("div");while(innerDivs.length>0){innerDiv=innerDivs[0];innerDivs=innerDiv.getElementsByTagName("div");}
innerDiv.appendChild(elmt);return div;};this.makeNeutralElement=function(tagName){var elmt=document.createElement(tagName);var style=elmt.style;style.background="transparent none";style.border="none";style.margin="0px";style.padding="0px";style.position="static";return elmt;};this.makeTransparentImage=function(src){var img=self.makeNeutralElement("img");var elmt=null;if(browser==Browser.IE&&browserVersion<7){elmt=self.makeNeutralElement("span");elmt.style.display="inline-block";img.onload=function(){elmt.style.width=elmt.style.width||img.width+"px";elmt.style.height=elmt.style.height||img.height+"px";img.onload=null;img=null;};img.src=src;elmt.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+
src+"', sizingMethod='scale')";}else{elmt=img;elmt.src=src;}
return elmt;};this.setElementOpacity=function(elmt,opacity,usesAlpha){var elmt=self.getElement(elmt);if(usesAlpha&&badAlphaBrowser){opacity=Math.round(opacity);}
if(opacity<1){elmt.style.opacity=opacity;}else{elmt.style.opacity="";}
if(opacity==1){var prevFilter=elmt.style.filter||"";elmt.style.filter=prevFilter.replace(/alpha\(.*?\)/g,"");return;}
var ieOpacity=Math.round(100*opacity);var ieFilter=" alpha(opacity="+ieOpacity+") ";try{if(elmt.filters&&elmt.filters.alpha){elmt.filters.alpha.opacity=ieOpacity;}else{elmt.style.filter+=ieFilter;}}catch(e){elmt.style.filter+=ieFilter;}};this.addEvent=function(elmt,eventName,handler,useCapture){var elmt=self.getElement(elmt);if(elmt.addEventListener){if(eventName=="mousewheel"){elmt.addEventListener("DOMMouseScroll",handler,useCapture);}
elmt.addEventListener(eventName,handler,useCapture);}else if(elmt.attachEvent){elmt.attachEvent("on"+eventName,handler);if(useCapture&&elmt.setCapture){elmt.setCapture();}}else{Seadragon.Debug.fail("Unable to attach event handler, no known technique.");}};this.removeEvent=function(elmt,eventName,handler,useCapture){var elmt=self.getElement(elmt);if(elmt.removeEventListener){if(eventName=="mousewheel"){elmt.removeEventListener("DOMMouseScroll",handler,useCapture);}
elmt.removeEventListener(eventName,handler,useCapture);}else if(elmt.detachEvent){elmt.detachEvent("on"+eventName,handler);if(useCapture&&elmt.releaseCapture){elmt.releaseCapture();}}else{Seadragon.Debug.fail("Unable to detach event handler, no known technique.");}};this.cancelEvent=function(event){var event=self.getEvent(event);if(event.preventDefault){event.preventDefault();}
event.cancel=true;event.returnValue=false;};this.stopEvent=function(event){var event=self.getEvent(event);if(event.stopPropagation){event.stopPropagation();}
event.cancelBubble=true;};this.createCallback=function(object,method){var initialArgs=[];for(var i=2;i<arguments.length;i++){initialArgs.push(arguments[i]);}
return function(){var args=initialArgs.concat([]);for(var i=0;i<arguments.length;i++){args.push(arguments[i]);}
return method.apply(object,args);};};this.getUrlParameter=function(key){var value=urlParams[key];return value?value:null;};this.makeAjaxRequest=function(url,callback){var async=typeof(callback)=="function";var req=null;if(async){var actual=callback;var callback=function(){window.setTimeout(Seadragon.Utils.createCallback(null,actual,req),1);};}
if(window.ActiveXObject){for(var i=0;i<arrActiveX.length;i++){try{req=new ActiveXObject(arrActiveX[i]);break;}catch(e){continue;}}}else if(window.XMLHttpRequest){req=new XMLHttpRequest();}
if(!req){Seadragon.Debug.fail("Browser doesn't support XMLHttpRequest.");}
if(Seadragon.Config.proxyUrl){url=Seadragon.Config.proxyUrl+url;}
if(async){req.onreadystatechange=function(){if(req.readyState==4){req.onreadystatechange=new Function();callback();}};}
try{req.open("GET",url,async);req.send(null);}catch(e){Seadragon.Debug.log(e.name+" while making AJAX request: "+e.message);req.onreadystatechange=null;req=null;if(async){callback();}}
return async?null:req;};this.parseXml=function(string){var xmlDoc=null;if(window.ActiveXObject){try{xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async=false;xmlDoc.loadXML(string);}catch(e){Seadragon.Debug.log(e.name+" while parsing XML (ActiveX): "+e.message);}}else if(window.DOMParser){try{var parser=new DOMParser();xmlDoc=parser.parseFromString(string,"text/xml");}catch(e){Seadragon.Debug.log(e.name+" while parsing XML (DOMParser): "+e.message);}}else{Seadragon.Debug.fail("Browser doesn't support XML DOM.");}
return xmlDoc;};};Seadragon.Utils=new Seadragon.Utils();(function(){if(Seadragon.MouseTracker){return;}
var lteIE8=Seadragon.Utils.getBrowser()==Seadragon.Browser.IE&&Seadragon.Utils.getBrowserVersion()<9;var buttonDownAny=false;var ieCapturingAny=false;var ieTrackersActive={};var ieTrackersCapturing=[];function getMouseAbsolute(event){return Seadragon.Utils.getMousePosition(event);}
function getMouseRelative(event,elmt){var mouse=Seadragon.Utils.getMousePosition(event);var offset=Seadragon.Utils.getElementPosition(elmt);return mouse.minus(offset);}
function isChild(elmtA,elmtB){var body=document.body;while(elmtB&&elmtA!=elmtB&&body!=elmtB){try{elmtB=elmtB.parentNode;}catch(e){return false;}}
return elmtA==elmtB;}
function onGlobalMouseDown(){buttonDownAny=true;}
function onGlobalMouseUp(){buttonDownAny=false;}
(function(){if(lteIE8){Seadragon.Utils.addEvent(document,"mousedown",onGlobalMouseDown,false);Seadragon.Utils.addEvent(document,"mouseup",onGlobalMouseUp,false);}else{Seadragon.Utils.addEvent(window,"mousedown",onGlobalMouseDown,true);Seadragon.Utils.addEvent(window,"mouseup",onGlobalMouseUp,true);}})();Seadragon.MouseTracker=function(elmt){var self=this;var ieSelf=null;var hash=Math.random();var elmt=Seadragon.Utils.getElement(elmt);var tracking=false;var capturing=false;var buttonDownElmt=false;var insideElmt=false;var lastPoint=null;var lastMouseDownTime=null;var lastMouseDownPoint=null;this.target=elmt;this.enterHandler=null;this.exitHandler=null;this.pressHandler=null;this.releaseHandler=null;this.clickHandler=null;this.dragHandler=null;this.scrollHandler=null;function startTracking(){if(!tracking){Seadragon.Utils.addEvent(elmt,"mouseover",onMouseOver,false);Seadragon.Utils.addEvent(elmt,"mouseout",onMouseOut,false);Seadragon.Utils.addEvent(elmt,"mousedown",onMouseDown,false);Seadragon.Utils.addEvent(elmt,"mouseup",onMouseUp,false);Seadragon.Utils.addEvent(elmt,"mousewheel",onMouseScroll,false);Seadragon.Utils.addEvent(elmt,"click",onMouseClick,false);tracking=true;ieTrackersActive[hash]=ieSelf;}}
function stopTracking(){if(tracking){Seadragon.Utils.removeEvent(elmt,"mouseover",onMouseOver,false);Seadragon.Utils.removeEvent(elmt,"mouseout",onMouseOut,false);Seadragon.Utils.removeEvent(elmt,"mousedown",onMouseDown,false);Seadragon.Utils.removeEvent(elmt,"mouseup",onMouseUp,false);Seadragon.Utils.removeEvent(elmt,"mousewheel",onMouseScroll,false);Seadragon.Utils.removeEvent(elmt,"click",onMouseClick,false);releaseMouse();tracking=false;delete ieTrackersActive[hash];}}
function captureMouse(){if(!capturing){if(lteIE8){Seadragon.Utils.removeEvent(elmt,"mouseup",onMouseUp,false);Seadragon.Utils.addEvent(elmt,"mouseup",onMouseUpIE,true);Seadragon.Utils.addEvent(elmt,"mousemove",onMouseMoveIE,true);}else{Seadragon.Utils.addEvent(window,"mouseup",onMouseUpWindow,true);Seadragon.Utils.addEvent(window,"mousemove",onMouseMove,true);}
capturing=true;}}
function releaseMouse(){if(capturing){if(lteIE8){Seadragon.Utils.removeEvent(elmt,"mousemove",onMouseMoveIE,true);Seadragon.Utils.removeEvent(elmt,"mouseup",onMouseUpIE,true);Seadragon.Utils.addEvent(elmt,"mouseup",onMouseUp,false);}else{Seadragon.Utils.removeEvent(window,"mousemove",onMouseMove,true);Seadragon.Utils.removeEvent(window,"mouseup",onMouseUpWindow,true);}
capturing=false;}}
function triggerOthers(eventName,event){var trackers=ieTrackersActive;for(var otherHash in trackers){if(trackers.hasOwnProperty(otherHash)&&hash!=otherHash){trackers[otherHash][eventName](event);}}}
function hasMouse(){return insideElmt;}
function onMouseOver(event){var event=Seadragon.Utils.getEvent(event);if(lteIE8&&capturing&&!isChild(event.srcElement,elmt)){triggerOthers("onMouseOver",event);}
var to=event.target?event.target:event.srcElement;var from=event.relatedTarget?event.relatedTarget:event.fromElement;if(!isChild(elmt,to)||isChild(elmt,from)){return;}
insideElmt=true;if(typeof(self.enterHandler)=="function"){try{self.enterHandler(self,getMouseRelative(event,elmt),buttonDownElmt,buttonDownAny);}catch(e){Seadragon.Debug.error(e.name+" while executing enter handler: "+e.message,e);}}}
function onMouseOut(event){var event=Seadragon.Utils.getEvent(event);if(lteIE8&&capturing&&!isChild(event.srcElement,elmt)){triggerOthers("onMouseOut",event);}
var from=event.target?event.target:event.srcElement;var to=event.relatedTarget?event.relatedTarget:event.toElement;if(!isChild(elmt,from)||isChild(elmt,to)){return;}
insideElmt=false;if(typeof(self.exitHandler)=="function"){try{self.exitHandler(self,getMouseRelative(event,elmt),buttonDownElmt,buttonDownAny);}catch(e){Seadragon.Debug.error(e.name+" while executing exit handler: "+e.message,e);}}}
function onMouseDown(event){var event=Seadragon.Utils.getEvent(event);if(event.button==2){return;}
buttonDownElmt=true;lastPoint=getMouseAbsolute(event);lastMouseDownPoint=lastPoint;lastMouseDownTime=new Date().getTime();if(typeof(self.pressHandler)=="function"){try{self.pressHandler(self,getMouseRelative(event,elmt));}catch(e){Seadragon.Debug.error(e.name+" while executing press handler: "+e.message,e);}}
if(self.pressHandler||self.dragHandler){Seadragon.Utils.cancelEvent(event);}
if(!lteIE8||!ieCapturingAny){captureMouse();ieCapturingAny=true;ieTrackersCapturing=[ieSelf];}else if(lteIE8){ieTrackersCapturing.push(ieSelf);}}
function onMouseUp(event){var event=Seadragon.Utils.getEvent(event);var insideElmtPress=buttonDownElmt;var insideElmtRelease=insideElmt;if(event.button==2){return;}
buttonDownElmt=false;if(typeof(self.releaseHandler)=="function"){try{self.releaseHandler(self,getMouseRelative(event,elmt),insideElmtPress,insideElmtRelease);}catch(e){Seadragon.Debug.error(e.name+" while executing release handler: "+e.message,e);}}
if(insideElmtPress&&insideElmtRelease){handleMouseClick(event);}}
function onMouseUpIE(event){var event=Seadragon.Utils.getEvent(event);if(event.button==2){return;}
for(var i=0;i<ieTrackersCapturing.length;i++){var tracker=ieTrackersCapturing[i];if(!tracker.hasMouse()){tracker.onMouseUp(event);}}
releaseMouse();ieCapturingAny=false;event.srcElement.fireEvent("on"+event.type,document.createEventObject(event));Seadragon.Utils.stopEvent(event);}
function onMouseUpWindow(event){if(!insideElmt){onMouseUp(event);}
releaseMouse();}
function onMouseClick(event){if(self.clickHandler){Seadragon.Utils.cancelEvent(event);}}
function handleMouseClick(event){var event=Seadragon.Utils.getEvent(event);if(event.button==2){return;}
var time=new Date().getTime()-lastMouseDownTime;var point=getMouseAbsolute(event);var distance=lastMouseDownPoint.distanceTo(point);var quick=time<=Seadragon.Config.clickTimeThreshold&&distance<=Seadragon.Config.clickDistThreshold;if(typeof(self.clickHandler)=="function"){try{self.clickHandler(self,getMouseRelative(event,elmt),quick,event.shiftKey);}catch(e){Seadragon.Debug.error(e.name+" while executing click handler: "+e.message,e);}}}
function onMouseMove(event){var event=Seadragon.Utils.getEvent(event);var point=getMouseAbsolute(event);var delta=point.minus(lastPoint);lastPoint=point;if(typeof(self.dragHandler)=="function"){try{self.dragHandler(self,getMouseRelative(event,elmt),delta,event.shiftKey);}catch(e){Seadragon.Debug.error(e.name+" while executing drag handler: "+e.message,e);}
Seadragon.Utils.cancelEvent(event);}}
function onMouseMoveIE(event){for(var i=0;i<ieTrackersCapturing.length;i++){ieTrackersCapturing[i].onMouseMove(event);}
Seadragon.Utils.stopEvent(event);}
function onMouseScroll(event){var event=Seadragon.Utils.getEvent(event);var delta=Seadragon.Utils.getMouseScroll(event);if(typeof(self.scrollHandler)=="function"){if(delta){try{self.scrollHandler(self,getMouseRelative(event,elmt),delta,event.shiftKey);}catch(e){Seadragon.Debug.error(e.name+" while executing scroll handler: "+e.message,e);}}
Seadragon.Utils.cancelEvent(event);}}
(function(){ieSelf={hasMouse:hasMouse,onMouseOver:onMouseOver,onMouseOut:onMouseOut,onMouseUp:onMouseUp,onMouseMove:onMouseMove};})();this.isTracking=function(){return tracking;};this.setTracking=function(track){if(track){startTracking();}else{stopTracking();}};};})();Seadragon.EventManager=function(){var listeners={};this.addListener=function(eventName,handler){if(typeof(handler)!="function"){return;}
if(!listeners[eventName]){listeners[eventName]=[];}
listeners[eventName].push(handler);};this.removeListener=function(eventName,handler){var handlers=listeners[eventName];if(typeof(handler)!="function"){return;}else if(!handlers){return;}
for(var i=0;i<handlers.length;i++){if(handler==handlers[i]){handlers.splice(i,1);return;}}};this.clearListeners=function(eventName){if(listeners[eventName]){delete listeners[eventName];}};this.trigger=function(eventName){var handlers=listeners[eventName];var args=[];if(!handlers){return;}
for(var i=1;i<arguments.length;i++){args.push(arguments[i]);}
for(var i=0;i<handlers.length;i++){try{handlers[i].apply(window,args);}catch(e){Seadragon.Debug.error(e.name+" while executing "+eventName+" handler: "+e.message,e);}}};};(function(){var TIMEOUT=15000;function Job(src,callback){var image=null;var timeout=null;function finish(success){image.onload=null;image.onabort=null;image.onerror=null;if(timeout){window.clearTimeout(timeout);}
window.setTimeout(function(){callback(src,success?image:null);},1);}
this.start=function(){image=new Image();var successFunc=function(){finish(true);};var failureFunc=function(){finish(false);};var timeoutFunc=function(){Seadragon.Debug.log("Image timed out: "+src);finish(false);};image.onload=successFunc;image.onabort=failureFunc;image.onerror=failureFunc;timeout=window.setTimeout(timeoutFunc,TIMEOUT);image.src=src;};}
Seadragon.ImageLoader=function(){var downloading=0;function onComplete(callback,src,image){downloading--;if(typeof(callback)=="function"){try{callback(image);}catch(e){Seadragon.Debug.error(e.name+" while executing "+src+" callback: "+e.message,e);}}}
this.loadImage=function(src,callback){if(downloading>=Seadragon.Config.imageLoaderLimit){return false;}
var func=Seadragon.Utils.createCallback(null,onComplete,callback);var job=new Job(src,func);downloading++;job.start();return true;};};})();(function(){var ButtonState={REST:0,GROUP:1,HOVER:2,DOWN:3};Seadragon.Button=function(tooltip,srcRest,srcGroup,srcHover,srcDown,onPress,onRelease,onClick,onEnter,onExit){var button=Seadragon.Utils.makeNeutralElement("span");var currentState=ButtonState.GROUP;var tracker=new Seadragon.MouseTracker(button);var imgRest=Seadragon.Utils.makeTransparentImage(srcRest);var imgGroup=Seadragon.Utils.makeTransparentImage(srcGroup);var imgHover=Seadragon.Utils.makeTransparentImage(srcHover);var imgDown=Seadragon.Utils.makeTransparentImage(srcDown);var onPress=typeof(onPress)=="function"?onPress:null;var onRelease=typeof(onRelease)=="function"?onRelease:null;var onClick=typeof(onClick)=="function"?onClick:null;var onEnter=typeof(onEnter)=="function"?onEnter:null;var onExit=typeof(onExit)=="function"?onExit:null;var fadeDelay=0;var fadeLength=2000;var fadeBeginTime=null;var shouldFade=false;this.elmt=button;function scheduleFade(){window.setTimeout(updateFade,20);}
function updateFade(){if(shouldFade){var currentTime=new Date().getTime();var deltaTime=currentTime-fadeBeginTime;var opacity=1.0-deltaTime/fadeLength;opacity=Math.min(1.0,opacity);opacity=Math.max(0.0,opacity);Seadragon.Utils.setElementOpacity(imgGroup,opacity,true);if(opacity>0){scheduleFade();}}}
function beginFading(){shouldFade=true;fadeBeginTime=new Date().getTime()+fadeDelay;window.setTimeout(scheduleFade,fadeDelay);}
function stopFading(){shouldFade=false;Seadragon.Utils.setElementOpacity(imgGroup,1.0,true);}
function inTo(newState){if(newState>=ButtonState.GROUP&&currentState==ButtonState.REST){stopFading();currentState=ButtonState.GROUP;}
if(newState>=ButtonState.HOVER&&currentState==ButtonState.GROUP){imgHover.style.visibility="";currentState=ButtonState.HOVER;}
if(newState>=ButtonState.DOWN&&currentState==ButtonState.HOVER){imgDown.style.visibility="";currentState=ButtonState.DOWN;}}
function outTo(newState){if(newState<=ButtonState.HOVER&&currentState==ButtonState.DOWN){imgDown.style.visibility="hidden";currentState=ButtonState.HOVER;}
if(newState<=ButtonState.GROUP&&currentState==ButtonState.HOVER){imgHover.style.visibility="hidden";currentState=ButtonState.GROUP;}
if(newState<=ButtonState.REST&&currentState==ButtonState.GROUP){beginFading();currentState=ButtonState.REST;}}
function enterHandler(tracker,position,buttonDownElmt,buttonDownAny){if(buttonDownElmt){inTo(ButtonState.DOWN);if(onEnter){onEnter();}}else if(!buttonDownAny){inTo(ButtonState.HOVER);}}
function exitHandler(tracker,position,buttonDownElmt,buttonDownAny){outTo(ButtonState.GROUP);if(buttonDownElmt&&onExit){onExit();}}
function pressHandler(tracker,position){inTo(ButtonState.DOWN);if(onPress){onPress();}}
function releaseHandler(tracker,position,insideElmtPress,insideElmtRelease){if(insideElmtPress&&insideElmtRelease){outTo(ButtonState.HOVER);if(onRelease){onRelease();}}else if(insideElmtPress){outTo(ButtonState.GROUP);}else{inTo(ButtonState.HOVER);}}
function clickHandler(tracker,position,quick,shift){if(onClick&&quick){onClick();}}
this.notifyGroupEnter=function(){inTo(ButtonState.GROUP);};this.notifyGroupExit=function(){outTo(ButtonState.REST);};(function(){button.style.display="inline-block";button.style.position="relative";button.title=tooltip;button.appendChild(imgRest);button.appendChild(imgGroup);button.appendChild(imgHover);button.appendChild(imgDown);var styleRest=imgRest.style;var styleGroup=imgGroup.style;var styleHover=imgHover.style;var styleDown=imgDown.style;styleGroup.position=styleHover.position=styleDown.position="absolute";styleGroup.top=styleHover.top=styleDown.top="0px";styleGroup.left=styleHover.left=styleDown.left="0px";styleHover.visibility=styleDown.visibility="hidden";if(Seadragon.Utils.getBrowser()==Seadragon.Browser.FIREFOX&&Seadragon.Utils.getBrowserVersion()<3){styleGroup.top=styleHover.top=styleDown.top="";}
tracker.enterHandler=enterHandler;tracker.exitHandler=exitHandler;tracker.pressHandler=pressHandler;tracker.releaseHandler=releaseHandler;tracker.clickHandler=clickHandler;tracker.setTracking(true);outTo(ButtonState.REST);})();};Seadragon.ButtonGroup=function(buttons){var group=Seadragon.Utils.makeNeutralElement("span");var buttons=buttons.concat([]);var tracker=new Seadragon.MouseTracker(group);this.elmt=group;function enterHandler(tracker,position,buttonDownElmt,buttonDownAny){for(var i=0;i<buttons.length;i++){buttons[i].notifyGroupEnter();}}
function exitHandler(tracker,position,buttonDownElmt,buttonDownAny){if(!buttonDownElmt){for(var i=0;i<buttons.length;i++){buttons[i].notifyGroupExit();}}}
function releaseHandler(tracker,position,insideElmtPress,insideElmtRelease){if(!insideElmtRelease){for(var i=0;i<buttons.length;i++){buttons[i].notifyGroupExit();}}}
this.emulateEnter=function(){enterHandler();};this.emulateExit=function(){exitHandler();};(function(){group.style.display="inline-block";for(var i=0;i<buttons.length;i++){group.appendChild(buttons[i].elmt);}
tracker.enterHandler=enterHandler;tracker.exitHandler=exitHandler;tracker.releaseHandler=releaseHandler;tracker.setTracking(true);})();};})();Seadragon.TileSource=function(width,height,tileSize,tileOverlap,minLevel,maxLevel){var self=this;var normHeight=height/width;this.aspectRatio=width/height;this.dimensions=new Seadragon.Point(width,height);this.minLevel=minLevel?minLevel:0;this.maxLevel=maxLevel?maxLevel:Math.ceil(Math.log(Math.max(width,height))/Math.log(2));this.tileSize=tileSize?tileSize:0;this.tileOverlap=tileOverlap?tileOverlap:0;this.getLevelScale=function(level){return 1/(1<<(self.maxLevel-level));};this.getNumTiles=function(level){var scale=self.getLevelScale(level);var x=Math.ceil(scale*self.dimensions.x/self.tileSize);var y=Math.ceil(scale*self.dimensions.y/self.tileSize);return new Seadragon.Point(x,y);};this.getPixelRatio=function(level){var imageSizeScaled=self.dimensions.times(self.getLevelScale(level));var rx=1.0/imageSizeScaled.x;var ry=1.0/imageSizeScaled.y;return new Seadragon.Point(rx,ry);};this.getTileAtPoint=function(level,point){var scaledSize=self.dimensions.times(self.getLevelScale(level));var pixel=point.times(scaledSize.x);var tx,ty;if(point.x>=0.0&&point.x<=1.0){tx=Math.floor(pixel.x/self.tileSize);}else{tx=Math.ceil(scaledSize.x/self.tileSize)*Math.floor(pixel.x/scaledSize.x)+
Math.floor(((scaledSize.x+(pixel.x%scaledSize.x))%scaledSize.x)/self.tileSize);}
if(point.y>=0.0&&point.y<=normHeight){ty=Math.floor(pixel.y/self.tileSize);}else{ty=Math.ceil(scaledSize.y/self.tileSize)*Math.floor(pixel.y/scaledSize.y)+
Math.floor(((scaledSize.y+(pixel.y%scaledSize.y))%scaledSize.y)/self.tileSize);}
return new Seadragon.Point(tx,ty);};this.getTileBounds=function(level,x,y){var dimensionsScaled=self.dimensions.times(self.getLevelScale(level));var px=(x===0)?0:self.tileSize*x-self.tileOverlap;var py=(y===0)?0:self.tileSize*y-self.tileOverlap;var sx=self.tileSize+(x===0?1:2)*self.tileOverlap;var sy=self.tileSize+(y===0?1:2)*self.tileOverlap;sx=Math.min(sx,dimensionsScaled.x-px);sy=Math.min(sy,dimensionsScaled.y-py);var scale=1.0/dimensionsScaled.x;return new Seadragon.Rect(px*scale,py*scale,sx*scale,sy*scale);};this.getTileUrl=function(level,x,y){throw new Error("Method not implemented.");};this.tileExists=function(level,x,y){var numTiles=self.getNumTiles(level);return level>=self.minLevel&&level<=self.maxLevel&&x>=0&&y>=0&&x<numTiles.x&&y<numTiles.y;};};Seadragon.DisplayRect=function(x,y,width,height,minLevel,maxLevel){Seadragon.Rect.apply(this,arguments);this.minLevel=minLevel;this.maxLevel=maxLevel;};Seadragon.DisplayRect.prototype=new Seadragon.Rect();Seadragon.DziTileSource=function(width,height,tileSize,tileOverlap,tilesUrl,fileFormat,displayRects){Seadragon.TileSource.apply(this,[width,height,tileSize,tileOverlap]);var self=this;var levelRects={};this.fileFormat=fileFormat;this.displayRects=displayRects;(function(){if(!displayRects){return;}
for(var i=displayRects.length-1;i>=0;i--){var rect=displayRects[i];for(var level=rect.minLevel;level<=rect.maxLevel;level++){if(!levelRects[level]){levelRects[level]=[];}
levelRects[level].push(rect);}}})();this.getTileUrl=function(level,x,y){return[tilesUrl,level,'/',x,'_',y,'.',fileFormat].join('');};this.tileExists=function(level,x,y){var rects=levelRects[level];if(!rects||!rects.length){return true;}
for(var i=rects.length-1;i>=0;i--){var rect=rects[i];if(level<rect.minLevel||level>rect.maxLevel){continue;}
var scale=self.getLevelScale(level);var xMin=rect.x*scale;var yMin=rect.y*scale;var xMax=xMin+rect.width*scale;var yMax=yMin+rect.height*scale;xMin=Math.floor(xMin/tileSize);yMin=Math.floor(yMin/tileSize);xMax=Math.ceil(xMax/tileSize);yMax=Math.ceil(yMax/tileSize);if(xMin<=x&&x<xMax&&yMin<=y&&y<yMax){return true;}}
return false;};};Seadragon.DziTileSource.prototype=new Seadragon.TileSource();(function(){function DziError(message){Error.apply(this,arguments);this.message=message;}
DziError.prototype=new Error();function getError(e){if(!(e instanceof DziError)){Seadragon.Debug.error(e.name+" while creating DZI from XML: "+e.message);e=new DziError(Seadragon.Strings.getString("Errors.Unknown"));}
return e;}
function processResponse(xhr,tilesUrl){if(!xhr){throw new DziError(Seadragon.Strings.getString("Errors.Security"));}else if(xhr.status!==200&&xhr.status!==0){var status=xhr.status;var statusText=(status==404)?"Not Found":xhr.statusText;throw new DziError(Seadragon.Strings.getString("Errors.Status",status,statusText));}
var doc=null;if(xhr.responseXML&&xhr.responseXML.documentElement){doc=xhr.responseXML;}else if(xhr.responseText){doc=Seadragon.Utils.parseXml(xhr.responseText);}
return processXml(doc,tilesUrl);}
function processXml(xmlDoc,tilesUrl){if(!xmlDoc||!xmlDoc.documentElement){throw new DziError(Seadragon.Strings.getString("Errors.Xml"));}
var root=xmlDoc.documentElement;var rootName=root.tagName;if(rootName=="Image"){try{return processDzi(root,tilesUrl);}catch(e){var defMsg=Seadragon.Strings.getString("Errors.Dzi");throw(e instanceof DziError)?e:new DziError(defMsg);}}else if(rootName=="Collection"){throw new DziError(Seadragon.Strings.getString("Errors.Dzc"));}else if(rootName=="Error"){return processError(root);}
throw new DziError(Seadragon.Strings.getString("Errors.Dzi"));}
function processDzi(imageNode,tilesUrl){var fileFormat=imageNode.getAttribute("Format");if(!Seadragon.Utils.imageFormatSupported(fileFormat)){throw new DziError(Seadragon.Strings.getString("Errors.ImageFormat",fileFormat.toUpperCase()));}
var sizeNode=imageNode.getElementsByTagName("Size")[0];var dispRectNodes=imageNode.getElementsByTagName("DisplayRect");var width=parseInt(sizeNode.getAttribute("Width"),10);var height=parseInt(sizeNode.getAttribute("Height"),10);var tileSize=parseInt(imageNode.getAttribute("TileSize"));var tileOverlap=parseInt(imageNode.getAttribute("Overlap"));var dispRects=[];for(var i=0;i<dispRectNodes.length;i++){var dispRectNode=dispRectNodes[i];var rectNode=dispRectNode.getElementsByTagName("Rect")[0];dispRects.push(new Seadragon.DisplayRect(parseInt(rectNode.getAttribute("X"),10),parseInt(rectNode.getAttribute("Y"),10),parseInt(rectNode.getAttribute("Width"),10),parseInt(rectNode.getAttribute("Height"),10),0,parseInt(dispRectNode.getAttribute("MaxLevel"),10)));}
return new Seadragon.DziTileSource(width,height,tileSize,tileOverlap,tilesUrl,fileFormat,dispRects);}
function processError(errorNode){var messageNode=errorNode.getElementsByTagName("Message")[0];var message=messageNode.firstChild.nodeValue;throw new DziError(message);}
Seadragon.DziTileSource.createFromXml=function(xmlUrl,xmlString,callback){var async=typeof(callback)=="function";var error=null;if(!xmlUrl){error=Seadragon.Strings.getString("Errors.Empty");if(async){window.setTimeout(function(){callback(null,error);},1);return null;}
throw new DziError(error);}
var urlParts=xmlUrl.split('/');var filename=urlParts[urlParts.length-1];var lastDot=filename.lastIndexOf('.');if(lastDot>-1){urlParts[urlParts.length-1]=filename.slice(0,lastDot);}
var tilesUrl=urlParts.join('/')+"_files/";function finish(func,obj){try{return func(obj,tilesUrl);}catch(e){if(async){error=getError(e).message;return null;}else{throw getError(e);}}}
if(async){if(xmlString){window.setTimeout(function(){var source=finish(processXml,Seadragon.Utils.parseXml(xmlString));callback(source,error);},1);}else{Seadragon.Utils.makeAjaxRequest(xmlUrl,function(xhr){var source=finish(processResponse,xhr);callback(source,error);});}
return null;}
if(xmlString){return finish(processXml,Seadragon.Utils.parseXml(xmlString));}else{return finish(processResponse,Seadragon.Utils.makeAjaxRequest(xmlUrl));}};})();Seadragon.Viewport=function(containerSize,contentSize){var self=this;var containerSize=new Seadragon.Point(containerSize.x,containerSize.y);var contentAspect=contentSize.x/contentSize.y;var contentHeight=contentSize.y/contentSize.x;var centerSpringX=new Seadragon.Spring(0);var centerSpringY=new Seadragon.Spring(0);var zoomSpring=new Seadragon.Spring(1);var zoomPoint=null;var homeBounds=new Seadragon.Rect(0,0,1,contentHeight);function init(){self.goHome(true);self.update();}
function getHomeZoom(){var aspectFactor=contentAspect/self.getAspectRatio();return(aspectFactor>=1)?1:aspectFactor;}
function getMinZoom(){var homeZoom=getHomeZoom();if(Seadragon.Config.minZoomDimension){var zoom=(contentSize.x<=contentSize.y)?Seadragon.Config.minZoomDimension/containerSize.x:Seadragon.Config.minZoomDimension/(containerSize.x*contentHeight);}else{var zoom=Seadragon.Config.minZoomImageRatio*homeZoom;}
return Math.min(zoom,homeZoom);}
function getMaxZoom(){var zoom=contentSize.x*Seadragon.Config.maxZoomPixelRatio/containerSize.x;return Math.max(zoom,getHomeZoom());}
this.getAspectRatio=function(){return containerSize.x/containerSize.y;};this.getContainerSize=function(){return new Seadragon.Point(containerSize.x,containerSize.y);};this.getBounds=function(current){var center=self.getCenter(current);var width=1.0/self.getZoom(current);var height=width/self.getAspectRatio();return new Seadragon.Rect(center.x-width/2.0,center.y-height/2.0,width,height);};this.getCenter=function(current){var centerCurrent=new Seadragon.Point(centerSpringX.getCurrent(),centerSpringY.getCurrent());var centerTarget=new Seadragon.Point(centerSpringX.getTarget(),centerSpringY.getTarget());if(current){return centerCurrent;}else if(!zoomPoint){return centerTarget;}
var oldZoomPixel=self.pixelFromPoint(zoomPoint,true);var zoom=self.getZoom();var width=1.0/zoom;var height=width/self.getAspectRatio();var bounds=new Seadragon.Rect(centerCurrent.x-width/2.0,centerCurrent.y-height/2.0,width,height);var newZoomPixel=zoomPoint.minus(bounds.getTopLeft()).times(containerSize.x/bounds.width);var deltaZoomPixels=newZoomPixel.minus(oldZoomPixel);var deltaZoomPoints=deltaZoomPixels.divide(containerSize.x*zoom);return centerTarget.plus(deltaZoomPoints);};this.getZoom=function(current){if(current){return zoomSpring.getCurrent();}else{return zoomSpring.getTarget();}};this.applyConstraints=function(immediately){var actualZoom=self.getZoom();var constrainedZoom=Math.max(Math.min(actualZoom,getMaxZoom()),getMinZoom());if(actualZoom!=constrainedZoom){self.zoomTo(constrainedZoom,zoomPoint,immediately);}
var bounds=self.getBounds();var visibilityRatio=Seadragon.Config.visibilityRatio;var horThres=visibilityRatio*bounds.width;var verThres=visibilityRatio*bounds.height;var left=bounds.x+bounds.width;var right=1-bounds.x;var top=bounds.y+bounds.height;var bottom=contentHeight-bounds.y;var dx=0;if(Seadragon.Config.wrapHorizontal){}else if(left<horThres){dx=horThres-left;}else if(right<horThres){dx=right-horThres;}
var dy=0;if(Seadragon.Config.wrapVertical){}else if(top<verThres){dy=verThres-top;}else if(bottom<verThres){dy=bottom-verThres;}
if(dx||dy){bounds.x+=dx;bounds.y+=dy;self.fitBounds(bounds,immediately);}};this.ensureVisible=function(immediately){self.applyConstraints(immediately);};this.fitBounds=function(bounds,immediately){var aspect=self.getAspectRatio();var center=bounds.getCenter();var newBounds=new Seadragon.Rect(bounds.x,bounds.y,bounds.width,bounds.height);if(newBounds.getAspectRatio()>=aspect){newBounds.height=bounds.width/aspect;newBounds.y=center.y-newBounds.height/2;}else{newBounds.width=bounds.height*aspect;newBounds.x=center.x-newBounds.width/2;}
self.panTo(self.getCenter(true),true);self.zoomTo(self.getZoom(true),null,true);var oldBounds=self.getBounds();var oldZoom=self.getZoom();var newZoom=1.0/newBounds.width;if(newZoom==oldZoom||newBounds.width==oldBounds.width){self.panTo(center,immediately);return;}
var refPoint=oldBounds.getTopLeft().times(containerSize.x/oldBounds.width).minus(newBounds.getTopLeft().times(containerSize.x/newBounds.width)).divide(containerSize.x/oldBounds.width-containerSize.x/newBounds.width);self.zoomTo(newZoom,refPoint,immediately);};this.goHome=function(immediately){var center=self.getCenter();if(Seadragon.Config.wrapHorizontal){center.x=(1+(center.x%1))%1;centerSpringX.resetTo(center.x);centerSpringX.update();}
if(Seadragon.Config.wrapVertical){center.y=(contentHeight+(center.y%contentHeight))%contentHeight;centerSpringY.resetTo(center.y);centerSpringY.update();}
self.fitBounds(homeBounds,immediately);};this.panBy=function(delta,immediately){var center=new Seadragon.Point(centerSpringX.getTarget(),centerSpringY.getTarget());self.panTo(center.plus(delta),immediately);};this.panTo=function(center,immediately){if(immediately){centerSpringX.resetTo(center.x);centerSpringY.resetTo(center.y);}else{centerSpringX.springTo(center.x);centerSpringY.springTo(center.y);}};this.zoomBy=function(factor,refPoint,immediately){self.zoomTo(zoomSpring.getTarget()*factor,refPoint,immediately);};this.zoomTo=function(zoom,refPoint,immediately){if(immediately){zoomSpring.resetTo(zoom);}else{zoomSpring.springTo(zoom);}
zoomPoint=refPoint instanceof Seadragon.Point?refPoint:null;};this.resize=function(newContainerSize,maintain){var oldBounds=self.getBounds();var newBounds=oldBounds;var widthDeltaFactor=newContainerSize.x/containerSize.x;containerSize=new Seadragon.Point(newContainerSize.x,newContainerSize.y);if(maintain){newBounds.width=oldBounds.width*widthDeltaFactor;newBounds.height=newBounds.width/self.getAspectRatio();}
self.fitBounds(newBounds,true);};this.update=function(){var oldCenterX=centerSpringX.getCurrent();var oldCenterY=centerSpringY.getCurrent();var oldZoom=zoomSpring.getCurrent();if(zoomPoint){var oldZoomPixel=self.pixelFromPoint(zoomPoint,true);}
zoomSpring.update();if(zoomPoint&&zoomSpring.getCurrent()!=oldZoom){var newZoomPixel=self.pixelFromPoint(zoomPoint,true);var deltaZoomPixels=newZoomPixel.minus(oldZoomPixel);var deltaZoomPoints=self.deltaPointsFromPixels(deltaZoomPixels,true);centerSpringX.shiftBy(deltaZoomPoints.x);centerSpringY.shiftBy(deltaZoomPoints.y);}else{zoomPoint=null;}
centerSpringX.update();centerSpringY.update();return centerSpringX.getCurrent()!=oldCenterX||centerSpringY.getCurrent()!=oldCenterY||zoomSpring.getCurrent()!=oldZoom;};this.deltaPixelsFromPoints=function(deltaPoints,current){return deltaPoints.times(containerSize.x*self.getZoom(current));};this.deltaPointsFromPixels=function(deltaPixels,current){return deltaPixels.divide(containerSize.x*self.getZoom(current));};this.pixelFromPoint=function(point,current){var bounds=self.getBounds(current);return point.minus(bounds.getTopLeft()).times(containerSize.x/bounds.width);};this.pointFromPixel=function(pixel,current){var bounds=self.getBounds(current);return pixel.divide(containerSize.x/bounds.width).plus(bounds.getTopLeft());};init();};(function(){var QUOTA=100;var MIN_PIXEL_RATIO=0.5;var browser=Seadragon.Utils.getBrowser();var browserVer=Seadragon.Utils.getBrowserVersion();var userAgent=navigator.userAgent;var hasCanvas=!!(document.createElement("canvas").getContext);var docElmt=document.documentElement||{};var docElmtStyle=docElmt.style||{};var hasCssTransforms=false;var cssTransformProperties=["transform","WebkitTransform","MozTransform"];var cssTransformProperty,cssTransformNoUnits;while(cssTransformProperty=cssTransformProperties.shift()){if(typeof docElmtStyle[cssTransformProperty]!=="undefined"){hasCssTransforms=true;cssTransformNoUnits=/webkit/i.test(cssTransformProperty);break;}}
var cssTransformPropertyCssName="-webkit-transform";var cssTransitionProperty="WebkitTransition";var hasCssTransitions=typeof docElmtStyle[cssTransitionProperty]!=="undefined";var IE_MATRIX_FILTER="progid:DXImageTransform.Microsoft.Matrix";var IE_MATRIX_FILTER_REGEXP=new RegExp(IE_MATRIX_FILTER+"\\(.*?\\)",'g');var hasIeFilters=(function(){try{return(browser==Seadragon.Browser.IE)&&!!(document.documentElement.filters);}catch(e){return false;}})();var badCanvas=(browser==Seadragon.Browser.SAFARI&&browserVer<4)||(browser==Seadragon.Browser.CHROME);var useCanvas=hasCanvas&&!badCanvas;var useCssTransforms=!useCanvas&&hasCssTransforms;var useIeFilters=false;var MS_INTERPOLATION_MODE=(typeof document.documentMode!=="undefined")?"bicubic":"nearest-neighbor";function Tile(level,x,y,bounds,exists,url){this.level=level;this.x=x;this.y=y;this.bounds=bounds;this.exists=exists;this.url=url;this.elmt=null;this.image=null;this.loaded=false;this.loading=false;this.style=null;this.position=null;this.size=null;this.blendStart=null;this.opacity=null;this.distance=null;this.visibility=null;this.beingDrawn=false;this.lastTouchTime=0;}
Tile.prototype.toString=function(){return this.level+"/"+this.x+"_"+this.y;};Tile.prototype.drawHTML=function(container){if(!this.loaded){Seadragon.Debug.error("Attempting to draw tile "+this.toString()+" when it's not yet loaded.");return;}
if(!this.elmt){this.elmt=Seadragon.Utils.makeNeutralElement("img");this.elmt.src=this.url;this.style=this.elmt.style;this.style.position="absolute";this.style.msInterpolationMode=MS_INTERPOLATION_MODE;if(useCssTransforms){this.style[cssTransformProperty+"Origin"]="0px 0px";}}
var elmt=this.elmt;var style=this.style;var position=this.position;var size=this.size;if(elmt.parentNode!=container){container.appendChild(elmt);}
if(useCssTransforms){style[cssTransformProperty]=['matrix(',(size.x/elmt.width).toFixed(8),',0,0,',(size.y/elmt.height).toFixed(8),',',position.x.toFixed(8),cssTransformNoUnits?',':'px,',position.y.toFixed(8),cssTransformNoUnits?')':'px)'].join('');}else if(useIeFilters){var containerWidth=container.clientWidth,containerHeight=container.clientHeight;style.width=containerWidth+"px";style.height=containerHeight+"px";style.filter=['progid:DXImageTransform.Microsoft.Matrix(','M11=',(size.x/containerWidth).toFixed(8),',M22=',(size.y/containerHeight).toFixed(8),',Dx=',position.x.toFixed(8),',Dy=',position.y.toFixed(8),')'].join('');}else{position=position.apply(Math.floor);size=size.apply(Math.ceil);style.left=position.x+"px";style.top=position.y+"px";style.width=size.x+"px";style.height=size.y+"px";}
Seadragon.Utils.setElementOpacity(elmt,this.opacity);};Tile.prototype.drawCanvas=function(context){if(!this.loaded){Seadragon.Debug.error("Attempting to draw tile "+this.toString()+" when it's not yet loaded.");return;}
var position=this.position;var size=this.size;context.globalAlpha=this.opacity;context.drawImage(this.image,position.x,position.y,size.x,size.y);};Tile.prototype.unload=function(){if(this.elmt&&this.elmt.parentNode){this.elmt.parentNode.removeChild(this.elmt);}
this.elmt=null;this.image=null;this.loaded=false;this.loading=false;}
var Placement={CENTER:0,TOP_LEFT:1,TOP:2,TOP_RIGHT:3,RIGHT:4,BOTTOM_RIGHT:5,BOTTOM:6,BOTTOM_LEFT:7,LEFT:8};Seadragon.OverlayPlacement=Placement;function createAdjustmentFunction(placement){switch(placement){case Placement.TOP_LEFT:return function(position,size){};case Placement.TOP:return function(position,size){position.x-=size.x/2;};case Placement.TOP_RIGHT:return function(position,size){position.x-=size.x;};case Placement.RIGHT:return function(position,size){position.x-=size.x;position.y-=size.y/2;};case Placement.BOTTOM_RIGHT:return function(position,size){position.x-=size.x;position.y-=size.y;};case Placement.BOTTOM:return function(position,size){position.x-=size.x/2;position.y-=size.y;};case Placement.BOTTOM_LEFT:return function(position,size){position.y-=size.y;};case Placement.LEFT:return function(position,size){position.y-=size.y/2;};case Placement.CENTER:default:return function(position,size){position.x-=size.x/2;position.y-=size.y/2;};}}
function Overlay(elmt,loc,placement){this.elmt=elmt;this.scales=(loc instanceof Seadragon.Rect);this.bounds=new Seadragon.Rect(loc.x,loc.y,loc.width,loc.height);this.adjust=createAdjustmentFunction(loc instanceof Seadragon.Point?placement:Placement.TOP_LEFT);this.position=new Seadragon.Point(loc.x,loc.y);this.size=new Seadragon.Point(loc.width,loc.height);this.style=elmt.style;this.naturalSize=new Seadragon.Point(elmt.clientWidth,elmt.clientHeight);}
Overlay.prototype.destroy=function(){var elmt=this.elmt;var style=this.style;if(elmt.parentNode){elmt.parentNode.removeChild(elmt);}
style.top="";style.left="";style.position="";if(this.scales){style.width="";style.height="";}};Overlay.prototype.drawHTML=function(container){var elmt=this.elmt;var style=this.style;var scales=this.scales;var naturalSize=this.naturalSize;if(elmt.parentNode!=container){container.appendChild(elmt);style.position="absolute";naturalSize.x=elmt.clientWidth;naturalSize.y=elmt.clientHeight;}
var position=this.position;var size=this.size;if(!scales){size.x=naturalSize.x=naturalSize.x||elmt.clientWidth;size.y=naturalSize.y=naturalSize.y||elmt.clientHeight;}
this.adjust(position,size);if(Seadragon.Config.transformOverlays&&hasCssTransforms){style[cssTransformProperty+"Origin"]="0px 0px";style[cssTransformProperty]=['translate(',position.x.toFixed(8),'px,',position.y.toFixed(8),'px)'].join('');if(scales){if(!elmt.clientWidth){style.width="100%";}
if(!elmt.clientHeight){style.height="100%";}
style[cssTransformProperty]+=[' scale(',(size.x/elmt.clientWidth).toFixed(8),',',(size.y/elmt.clientHeight).toFixed(8),')'].join('');}}else if(Seadragon.Config.transformOverlays&&useIeFilters){var containerWidth=container.clientWidth,containerHeight=container.clientHeight;style.width=containerWidth+"px";style.height=containerHeight+"px";style.filter=['progid:DXImageTransform.Microsoft.Matrix(','M11=',(size.x/containerWidth).toFixed(8),',M22=',(size.y/containerHeight).toFixed(8),',Dx=',position.x.toFixed(8),',Dy=',position.y.toFixed(8),')'].join('');}else{position=position.apply(Math.floor);size=size.apply(Math.ceil);style.left=position.x+"px";style.top=position.y+"px";if(scales){style.width=size.x+"px";style.height=size.y+"px";}}};Overlay.prototype.update=function(loc,placement){this.scales=(loc instanceof Seadragon.Rect);this.bounds=new Seadragon.Rect(loc.x,loc.y,loc.width,loc.height);this.adjust=createAdjustmentFunction(loc instanceof Seadragon.Point?placement:Placement.TOP_LEFT);};Seadragon.Drawer=function(source,viewport,elmt){var container=Seadragon.Utils.getElement(elmt);var canvas=Seadragon.Utils.makeNeutralElement(useCanvas?"canvas":"div");var context=useCanvas?canvas.getContext("2d"):null;var imageLoader=new Seadragon.ImageLoader();var profiler=new Seadragon.Profiler();var minLevel=source.minLevel;var maxLevel=source.maxLevel;var tileSize=source.tileSize;var tileOverlap=source.tileOverlap;var normHeight=source.dimensions.y/source.dimensions.x;var cacheNumTiles={};var cachePixelRatios={};var tilesMatrix={};var tilesLoaded=[];var coverage={};var overlays=[];var lastDrawn=[];var lastResetTime=0;var midUpdate=false;var updateAgain=true;this.elmt=container;this.profiler=profiler;(function(){canvas.style.width="100%";canvas.style.height="100%";canvas.style.position="absolute";container.style.textAlign="left";container.appendChild(canvas);})();function getNumTiles(level){if(!cacheNumTiles[level]){cacheNumTiles[level]=source.getNumTiles(level);}
return cacheNumTiles[level];}
function getPixelRatio(level){if(!cachePixelRatios[level]){cachePixelRatios[level]=source.getPixelRatio(level);}
return cachePixelRatios[level];}
function getTile(level,x,y,time,numTilesX,numTilesY){if(!tilesMatrix[level]){tilesMatrix[level]={};}
if(!tilesMatrix[level][x]){tilesMatrix[level][x]={};}
if(!tilesMatrix[level][x][y]){var xMod=(numTilesX+(x%numTilesX))%numTilesX;var yMod=(numTilesY+(y%numTilesY))%numTilesY;var bounds=source.getTileBounds(level,xMod,yMod);var exists=source.tileExists(level,xMod,yMod);var url=source.getTileUrl(level,xMod,yMod);bounds.x+=1.0*(x-xMod)/numTilesX;bounds.y+=normHeight*(y-yMod)/numTilesY;tilesMatrix[level][x][y]=new Tile(level,x,y,bounds,exists,url);}
var tile=tilesMatrix[level][x][y];tile.lastTouchTime=time;return tile;}
function loadTile(tile,time){tile.loading=imageLoader.loadImage(tile.url,Seadragon.Utils.createCallback(null,onTileLoad,tile,time));}
function onTileLoad(tile,time,image){tile.loading=false;if(midUpdate){Seadragon.Debug.error("Tile load callback in middle of drawing routine.");return;}else if(!image){Seadragon.Debug.log("Tile "+tile+" failed to load: "+tile.url);tile.exists=false;return;}else if(time<lastResetTime){Seadragon.Debug.log("Ignoring tile "+tile+" loaded before reset: "+tile.url);return;}
tile.loaded=true;tile.image=image;var insertionIndex=tilesLoaded.length;if(tilesLoaded.length>=QUOTA){var cutoff=Math.ceil(Math.log(tileSize)/Math.log(2));var worstTile=null;var worstTileIndex=-1;for(var i=tilesLoaded.length-1;i>=0;i--){var prevTile=tilesLoaded[i];if(prevTile.level<=cutoff||prevTile.beingDrawn){continue;}else if(!worstTile){worstTile=prevTile;worstTileIndex=i;continue;}
var prevTime=prevTile.lastTouchTime;var worstTime=worstTile.lastTouchTime;var prevLevel=prevTile.level;var worstLevel=worstTile.level;if(prevTime<worstTime||(prevTime==worstTime&&prevLevel>worstLevel)){worstTile=prevTile;worstTileIndex=i;}}
if(worstTile&&worstTileIndex>=0){worstTile.unload();insertionIndex=worstTileIndex;}}
tilesLoaded[insertionIndex]=tile;updateAgain=true;}
function clearTiles(){tilesMatrix={};tilesLoaded=[];}
function providesCoverage(level,x,y){if(!coverage[level]){return false;}
if(x===undefined||y===undefined){var rows=coverage[level];for(var i in rows){if(rows.hasOwnProperty(i)){var cols=rows[i];for(var j in cols){if(cols.hasOwnProperty(j)&&!cols[j]){return false;}}}}
return true;}
return(coverage[level][x]===undefined||coverage[level][x][y]===undefined||coverage[level][x][y]===true);}
function isCovered(level,x,y){if(x===undefined||y===undefined){return providesCoverage(level+1);}else{return(providesCoverage(level+1,2*x,2*y)&&providesCoverage(level+1,2*x,2*y+1)&&providesCoverage(level+1,2*x+1,2*y)&&providesCoverage(level+1,2*x+1,2*y+1));}}
function setCoverage(level,x,y,covers){if(!coverage[level]){Seadragon.Debug.error("Setting coverage for a tile before its "+"level's coverage has been reset: "+level);return;}
if(!coverage[level][x]){coverage[level][x]={};}
coverage[level][x][y]=covers;}
function resetCoverage(level){coverage[level]={};}
function compareTiles(prevBest,tile){if(!prevBest){return tile;}
if(tile.visibility>prevBest.visibility){return tile;}else if(tile.visibility==prevBest.visibility){if(tile.distance<prevBest.distance){return tile;}}
return prevBest;}
function getOverlayIndex(elmt){for(var i=overlays.length-1;i>=0;i--){if(overlays[i].elmt==elmt){return i;}}
return-1;}
function updateActual(){updateAgain=false;var _canvas=canvas;var _context=context;var _container=container;var _useCanvas=useCanvas;var _lastDrawn=lastDrawn;while(_lastDrawn.length>0){var tile=_lastDrawn.pop();tile.beingDrawn=false;}
var viewportSize=viewport.getContainerSize();var viewportWidth=viewportSize.x;var viewportHeight=viewportSize.y;if(_useCanvas){_canvas.width=viewportWidth;_canvas.height=viewportHeight;_context.clearRect(0,0,viewportWidth,viewportHeight);}else{_canvas.innerHTML="";}
var viewportBounds=viewport.getBounds(true);var viewportTL=viewportBounds.getTopLeft();var viewportBR=viewportBounds.getBottomRight();if(!Seadragon.Config.wrapHorizontal&&(viewportBR.x<0||viewportTL.x>1)){return;}else if(!Seadragon.Config.wrapVertical&&(viewportBR.y<0||viewportTL.y>normHeight)){return;}
var _getNumTiles=getNumTiles;var _getPixelRatio=getPixelRatio;var _getTile=getTile;var _isCovered=isCovered;var _setCoverage=setCoverage;var _resetCoverage=resetCoverage;var _providesCoverage=providesCoverage;var _tileOverlap=tileOverlap;var _abs=Math.abs;var _ceil=Math.ceil;var _floor=Math.floor;var _log=Math.log;var _max=Math.max;var _min=Math.min;var _deltaPixelsFromPoints=viewport.deltaPixelsFromPoints;var _pixelFromPoint=viewport.pixelFromPoint;var _getTileAtPoint=source.getTileAtPoint;var alwaysBlend=Seadragon.Config.alwaysBlend;var blendTimeMillis=1000*Seadragon.Config.blendTime;var immediateRender=Seadragon.Config.immediateRender;var minDimension=Seadragon.Config.minZoomDimension;var minImageRatio=Seadragon.Config.minImageRatio;var wrapHorizontal=Seadragon.Config.wrapHorizontal;var wrapVertical=Seadragon.Config.wrapVertical;var wrapOverlays=Seadragon.Config.wrapOverlays;if(!wrapHorizontal){viewportTL.x=_max(viewportTL.x,0);viewportBR.x=_min(viewportBR.x,1);}
if(!wrapVertical){viewportTL.y=_max(viewportTL.y,0);viewportBR.y=_min(viewportBR.y,normHeight);}
var best=null;var haveDrawn=false;var currentTime=new Date().getTime();var viewportCenterPoint=viewport.getCenter();var viewportCenterPixel=_pixelFromPoint(viewportCenterPoint);var zeroRatioT=_deltaPixelsFromPoints(_getPixelRatio(0),false).x;var optimalPixelRatio=immediateRender?1:zeroRatioT;minDimension=minDimension||64;var lowestLevel=_max(minLevel,_floor(_log(minDimension)/_log(2)));var zeroRatioC=_deltaPixelsFromPoints(_getPixelRatio(0),true).x;var highestLevel=_min(maxLevel,_floor(_log(zeroRatioC/MIN_PIXEL_RATIO)/_log(2)));lowestLevel=_min(lowestLevel,highestLevel);for(var level=highestLevel;level>=lowestLevel;level--){var drawLevel=false;var renderPixelRatioC=_deltaPixelsFromPoints(_getPixelRatio(level),true).x;if((!haveDrawn&&renderPixelRatioC>=MIN_PIXEL_RATIO)||level==lowestLevel){drawLevel=true;haveDrawn=true;}else if(!haveDrawn){continue;}
_resetCoverage(level);var levelOpacity=_min(1,(renderPixelRatioC-0.5)/0.5);var renderPixelRatioT=_deltaPixelsFromPoints(_getPixelRatio(level),false).x;var levelVisibility=optimalPixelRatio/_abs(optimalPixelRatio-renderPixelRatioT);var tileTL=_getTileAtPoint(level,viewportTL);var tileBR=_getTileAtPoint(level,viewportBR);var numTiles=_getNumTiles(level);var numTilesX=numTiles.x;var numTilesY=numTiles.y;if(!wrapHorizontal){tileBR.x=_min(tileBR.x,numTilesX-1);}
if(!wrapVertical){tileBR.y=_min(tileBR.y,numTilesY-1);}
for(var x=tileTL.x;x<=tileBR.x;x++){for(var y=tileTL.y;y<=tileBR.y;y++){var tile=_getTile(level,x,y,currentTime,numTilesX,numTilesY);var drawTile=drawLevel;_setCoverage(level,x,y,false);if(!tile.exists){continue;}
if(haveDrawn&&!drawTile){if(_isCovered(level,x,y)){_setCoverage(level,x,y,true);}else{drawTile=true;}}
if(!drawTile){continue;}
var boundsTL=tile.bounds.getTopLeft();var boundsSize=tile.bounds.getSize();var positionC=_pixelFromPoint(boundsTL,true);var sizeC=_deltaPixelsFromPoints(boundsSize,true);if(!_tileOverlap){sizeC=sizeC.plus(new Seadragon.Point(1,1));}
var positionT=_pixelFromPoint(boundsTL,false);var sizeT=_deltaPixelsFromPoints(boundsSize,false);var tileCenter=positionT.plus(sizeT.divide(2));var tileDistance=viewportCenterPixel.distanceTo(tileCenter);tile.position=positionC;tile.size=sizeC;tile.distance=tileDistance;tile.visibility=levelVisibility;if(tile.loaded){if(!tile.blendStart){tile.blendStart=currentTime;}
var deltaTime=currentTime-tile.blendStart;var opacity=_min(1,deltaTime/blendTimeMillis);if(alwaysBlend){opacity*=levelOpacity;}
tile.opacity=opacity;_lastDrawn.push(tile);if(opacity==1){_setCoverage(level,x,y,true);}else if(deltaTime<blendTimeMillis){updateAgain=true;}}else if(tile.loading){}else{best=compareTiles(best,tile);}}}
if(_providesCoverage(level)){break;}}
for(var i=_lastDrawn.length-1;i>=0;i--){var tile=_lastDrawn[i];if(_useCanvas){tile.drawCanvas(_context);}else{tile.drawHTML(_canvas);}
tile.beingDrawn=true;}
var numOverlays=overlays.length;for(var i=0;i<numOverlays;i++){var overlay=overlays[i];var bounds=overlay.bounds;var overlayTL=bounds.getTopLeft();if(wrapOverlays&&wrapHorizontal){overlayTL.x+=_floor(viewportCenterPoint.x);}
if(wrapOverlays&&wrapVertical){}
overlay.position=_pixelFromPoint(overlayTL,true);overlay.size=_deltaPixelsFromPoints(bounds.getSize(),true);overlay.drawHTML(container);}
if(best){loadTile(best,currentTime);updateAgain=true;}}
this.addOverlay=function(elmt,loc,placement){var elmt=Seadragon.Utils.getElement(elmt);if(getOverlayIndex(elmt)>=0){return;}
overlays.push(new Overlay(elmt,loc,placement));updateAgain=true;};this.updateOverlay=function(elmt,loc,placement){var elmt=Seadragon.Utils.getElement(elmt);var i=getOverlayIndex(elmt);if(i>=0){overlays[i].update(loc,placement);updateAgain=true;}};this.removeOverlay=function(elmt){var elmt=Seadragon.Utils.getElement(elmt);var i=getOverlayIndex(elmt);if(i>=0){overlays[i].destroy();overlays.splice(i,1);updateAgain=true;}};this.clearOverlays=function(){while(overlays.length>0){overlays.pop().destroy();updateAgain=true;}};this.needsUpdate=function(){return updateAgain;};this.numTilesLoaded=function(){return tilesLoaded.length;};this.reset=function(){clearTiles();lastResetTime=new Date().getTime();updateAgain=true;};this.update=function(){profiler.beginUpdate();midUpdate=true;updateActual();midUpdate=false;profiler.endUpdate();};this.idle=function(){};};})();(function(){var SIGNAL="----seadragon----";var browser=Seadragon.Utils.getBrowser();var Anchor={NONE:0,TOP_LEFT:1,TOP_RIGHT:2,BOTTOM_RIGHT:3,BOTTOM_LEFT:4};Seadragon.ControlAnchor=Anchor;function addToAnchor(elmt,anchor,container){if(anchor==Anchor.TOP_RIGHT||anchor==Anchor.BOTTOM_RIGHT){container.insertBefore(elmt,container.firstChild);}else{container.appendChild(elmt);}}
function Control(elmt,anchor,container){var wrapper=Seadragon.Utils.makeNeutralElement("span");this.elmt=elmt;this.anchor=anchor;this.container=container;this.wrapper=wrapper;wrapper.style.display="inline-block";wrapper.appendChild(elmt);if(anchor==Anchor.NONE){wrapper.style.width=wrapper.style.height="100%";}
addToAnchor(wrapper,anchor,container);}
Control.prototype.destroy=function(){this.wrapper.removeChild(this.elmt);this.container.removeChild(this.wrapper);};Control.prototype.isVisible=function(){return this.wrapper.style.display!="none";};Control.prototype.setVisible=function(visible){this.wrapper.style.display=visible?"inline-block":"none";};Control.prototype.setOpacity=function(opacity){if(this.elmt[SIGNAL]&&browser==Seadragon.Browser.IE){Seadragon.Utils.setElementOpacity(this.elmt,opacity,true);}else{Seadragon.Utils.setElementOpacity(this.wrapper,opacity,true);}}
var FULL_PAGE="fullpage";var HOME="home";var ZOOM_IN="zoomin";var ZOOM_OUT="zoomout";var REST="_rest.png";var GROUP="_grouphover.png";var HOVER="_hover.png";var DOWN="_pressed.png";function makeNavControl(viewer){var group=null;var zooming=false;var zoomFactor=null;var lastZoomTime=null;function onHome(){if(viewer.viewport){viewer.viewport.goHome();}}
function onFullPage(){viewer.setFullPage(!viewer.isFullPage());group.emulateExit();if(viewer.viewport){viewer.viewport.applyConstraints();}}
function beginZoomingIn(){lastZoomTime=new Date().getTime();zoomFactor=Seadragon.Config.zoomPerSecond;zooming=true;scheduleZoom();}
function beginZoomingOut(){lastZoomTime=new Date().getTime();zoomFactor=1.0/Seadragon.Config.zoomPerSecond;zooming=true;scheduleZoom();}
function endZooming(){zooming=false;}
function scheduleZoom(){window.setTimeout(doZoom,10);}
function doZoom(){if(zooming&&viewer.viewport){var currentTime=new Date().getTime();var deltaTime=currentTime-lastZoomTime;var adjustedFactor=Math.pow(zoomFactor,deltaTime/1000);viewer.viewport.zoomBy(adjustedFactor);viewer.viewport.applyConstraints();lastZoomTime=currentTime;scheduleZoom();}}
function doSingleZoomIn(){if(viewer.viewport){zooming=false;viewer.viewport.zoomBy(Seadragon.Config.zoomPerClick/1.0);viewer.viewport.applyConstraints();}}
function doSingleZoomOut(){if(viewer.viewport){zooming=false;viewer.viewport.zoomBy(1.0/Seadragon.Config.zoomPerClick);viewer.viewport.applyConstraints();}}
function lightUp(){group.emulateEnter();group.emulateExit();}
function url(prefix,postfix){return Seadragon.Config.imagePath+prefix+postfix;}
var zoomIn=new Seadragon.Button(Seadragon.Strings.getString("Tooltips.ZoomIn"),url(ZOOM_IN,REST),url(ZOOM_IN,GROUP),url(ZOOM_IN,HOVER),url(ZOOM_IN,DOWN),beginZoomingIn,endZooming,doSingleZoomIn,beginZoomingIn,endZooming);var zoomOut=new Seadragon.Button(Seadragon.Strings.getString("Tooltips.ZoomOut"),url(ZOOM_OUT,REST),url(ZOOM_OUT,GROUP),url(ZOOM_OUT,HOVER),url(ZOOM_OUT,DOWN),beginZoomingOut,endZooming,doSingleZoomOut,beginZoomingOut,endZooming);var goHome=new Seadragon.Button(Seadragon.Strings.getString("Tooltips.Home"),url(HOME,REST),url(HOME,GROUP),url(HOME,HOVER),url(HOME,DOWN),null,onHome,null,null,null);var fullPage=new Seadragon.Button(Seadragon.Strings.getString("Tooltips.FullPage"),url(FULL_PAGE,REST),url(FULL_PAGE,GROUP),url(FULL_PAGE,HOVER),url(FULL_PAGE,DOWN),null,onFullPage,null,null,null);group=new Seadragon.ButtonGroup([zoomIn,zoomOut,goHome,fullPage]);group.elmt[SIGNAL]=true;viewer.addEventListener("open",lightUp);return group.elmt;}
Seadragon.Viewer=function(container){var self=this;var parent=Seadragon.Utils.getElement(container);var container=Seadragon.Utils.makeNeutralElement("div");var canvas=Seadragon.Utils.makeNeutralElement("div");var controlsTL=Seadragon.Utils.makeNeutralElement("div");var controlsTR=Seadragon.Utils.makeNeutralElement("div");var controlsBR=Seadragon.Utils.makeNeutralElement("div");var controlsBL=Seadragon.Utils.makeNeutralElement("div");var source=null;var drawer=null;var viewport=null;var profiler=null;var eventManager=new Seadragon.EventManager();var innerTracker=new Seadragon.MouseTracker(canvas);var outerTracker=new Seadragon.MouseTracker(container);var controls=[];var controlsShouldFade=true;var controlsFadeBeginTime=null;var navControl=null;var controlsFadeDelay=1000;var controlsFadeLength=2000;var controlsFadeBeginTime=null;var controlsShouldFade=false;var bodyWidth=document.body.style.width;var bodyHeight=document.body.style.height;var bodyOverflow=document.body.style.overflow;var docOverflow=document.documentElement.style.overflow;var fsBoundsDelta=new Seadragon.Point(1,1);var prevContainerSize=null;var lastOpenStartTime=0;var lastOpenEndTime=0;var animating=false;var forceRedraw=false;var mouseInside=false;this.container=parent;this.elmt=container;this.source=null;this.drawer=null;this.viewport=null;this.profiler=null;this.tracker=innerTracker;function initialize(){var canvasStyle=canvas.style;var containerStyle=container.style;var controlsTLStyle=controlsTL.style;var controlsTRStyle=controlsTR.style;var controlsBRStyle=controlsBR.style;var controlsBLStyle=controlsBL.style;containerStyle.width="100%";containerStyle.height="100%";containerStyle.position="relative";containerStyle.left="0px";containerStyle.top="0px";containerStyle.textAlign="left";canvasStyle.width="100%";canvasStyle.height="100%";canvasStyle.overflow="hidden";canvasStyle.position="absolute";canvasStyle.top="0px";canvasStyle.left="0px";controlsTLStyle.position=controlsTRStyle.position=controlsBRStyle.position=controlsBLStyle.position="absolute";controlsTLStyle.top=controlsTRStyle.top="0px";controlsTLStyle.left=controlsBLStyle.left="0px";controlsTRStyle.right=controlsBRStyle.right="0px";controlsBLStyle.bottom=controlsBRStyle.bottom="0px";innerTracker.clickHandler=onCanvasClick;innerTracker.dragHandler=onCanvasDrag;innerTracker.releaseHandler=onCanvasRelease;innerTracker.scrollHandler=onCanvasScroll;innerTracker.setTracking(true);navControl=makeNavControl(self);navControl.style.marginRight="4px";navControl.style.marginBottom="4px";self.addControl(navControl,Anchor.BOTTOM_RIGHT);outerTracker.enterHandler=onContainerEnter;outerTracker.exitHandler=onContainerExit;outerTracker.releaseHandler=onContainerRelease;outerTracker.setTracking(true);window.setTimeout(beginControlsAutoHide,1);container.appendChild(canvas);container.appendChild(controlsTL);container.appendChild(controlsTR);container.appendChild(controlsBR);container.appendChild(controlsBL);parent.innerHTML="";parent.appendChild(container);}
function setMessage(message){var textNode=document.createTextNode(message);canvas.innerHTML="";canvas.appendChild(Seadragon.Utils.makeCenteredNode(textNode));var textStyle=textNode.parentNode.style;textStyle.color="white";textStyle.fontFamily="verdana";textStyle.fontSize="13px";textStyle.fontSizeAdjust="none";textStyle.fontStyle="normal";textStyle.fontStretch="normal";textStyle.fontVariant="normal";textStyle.fontWeight="normal";textStyle.lineHeight="1em";textStyle.textAlign="center";textStyle.textDecoration="none";}
function beforeOpen(){if(source){onClose();}
lastOpenStartTime=new Date().getTime();window.setTimeout(function(){if(lastOpenStartTime>lastOpenEndTime){setMessage(Seadragon.Strings.getString("Messages.Loading"));}},2000);return lastOpenStartTime;}
function onOpen(time,_source,error){lastOpenEndTime=new Date().getTime();if(time<lastOpenStartTime){Seadragon.Debug.log("Ignoring out-of-date open.");eventManager.trigger("ignore",self);return;}else if(!_source){setMessage(error);eventManager.trigger("error",self);return;}
canvas.innerHTML="";prevContainerSize=Seadragon.Utils.getElementSize(container);source=_source;viewport=new Seadragon.Viewport(prevContainerSize,source.dimensions);drawer=new Seadragon.Drawer(source,viewport,canvas);profiler=new Seadragon.Profiler();self.source=source;self.viewport=viewport;self.drawer=drawer;self.profiler=profiler;animating=false;forceRedraw=true;scheduleUpdate(updateMulti);eventManager.trigger("open",self);}
function onClose(){self.source=source=null;self.viewport=viewport=null;self.drawer=drawer=null;self.profiler=profiler=null;canvas.innerHTML="";}
function scheduleUpdate(updateFunc,prevUpdateTime){if(animating){return window.setTimeout(updateFunc,1);}
var currentTime=new Date().getTime();var prevUpdateTime=prevUpdateTime?prevUpdateTime:currentTime;var targetTime=prevUpdateTime+1000/60;var deltaTime=Math.max(1,targetTime-currentTime);return window.setTimeout(updateFunc,deltaTime);}
function updateOnce(){if(!source){return;}
profiler.beginUpdate();var containerSize=Seadragon.Utils.getElementSize(container);if(!containerSize.equals(prevContainerSize)){viewport.resize(containerSize,true);prevContainerSize=containerSize;eventManager.trigger("resize",self);}
var animated=viewport.update();if(!animating&&animated){eventManager.trigger("animationstart",self);abortControlsAutoHide();}
if(animated){drawer.update();eventManager.trigger("animation",self);}else if(forceRedraw||drawer.needsUpdate()){drawer.update();forceRedraw=false;}else{drawer.idle();}
if(animating&&!animated){eventManager.trigger("animationfinish",self);if(!mouseInside){beginControlsAutoHide();}}
animating=animated;profiler.endUpdate();}
function updateMulti(){if(!source){return;}
var beginTime=new Date().getTime();updateOnce();scheduleUpdate(arguments.callee,beginTime);}
function getControlIndex(elmt){for(var i=controls.length-1;i>=0;i--){if(controls[i].elmt==elmt){return i;}}
return-1;}
function scheduleControlsFade(){window.setTimeout(updateControlsFade,20);}
function updateControlsFade(){if(controlsShouldFade){var currentTime=new Date().getTime();var deltaTime=currentTime-controlsFadeBeginTime;var opacity=1.0-deltaTime/controlsFadeLength;opacity=Math.min(1.0,opacity);opacity=Math.max(0.0,opacity);for(var i=controls.length-1;i>=0;i--){controls[i].setOpacity(opacity);}
if(opacity>0){scheduleControlsFade();}}}
function abortControlsAutoHide(){controlsShouldFade=false;for(var i=controls.length-1;i>=0;i--){controls[i].setOpacity(1.0);}}
function beginControlsAutoHide(){if(!Seadragon.Config.autoHideControls){return;}
controlsShouldFade=true;controlsFadeBeginTime=new Date().getTime()+controlsFadeDelay;window.setTimeout(scheduleControlsFade,controlsFadeDelay);}
function onContainerEnter(tracker,position,buttonDownElmt,buttonDownAny){mouseInside=true;abortControlsAutoHide();}
function onContainerExit(tracker,position,buttonDownElmt,buttonDownAny){if(!buttonDownElmt){mouseInside=false;if(!animating){beginControlsAutoHide();}}}
function onContainerRelease(tracker,position,insideElmtPress,insideElmtRelease){if(!insideElmtRelease){mouseInside=false;if(!animating){beginControlsAutoHide();}}}
function onCanvasClick(tracker,position,quick,shift){if(viewport&&quick){var zoomPerClick=Seadragon.Config.zoomPerClick;var factor=shift?1.0/zoomPerClick:zoomPerClick;viewport.zoomBy(factor,viewport.pointFromPixel(position,true));viewport.applyConstraints();}}
function onCanvasDrag(tracker,position,delta,shift){if(viewport){viewport.panBy(viewport.deltaPointsFromPixels(delta.negate()));}}
function onCanvasRelease(tracker,position,insideElmtPress,insideElmtRelease){if(insideElmtPress&&viewport){viewport.applyConstraints();}}
function onCanvasScroll(tracker,position,delta,shift){if(viewport){var factor=Math.pow(Seadragon.Config.zoomPerScroll,delta);viewport.zoomBy(factor,viewport.pointFromPixel(position,true));viewport.applyConstraints();}}
function onPageKeyDown(event){event=Seadragon.Utils.getEvent(event);if(event.keyCode===27){self.setFullPage(false);}}
this.isOpen=function(){return!!source;};this.openDzi=function(xmlUrl,xmlString){var currentTime=beforeOpen();Seadragon.DziTileSource.createFromXml(xmlUrl,xmlString,Seadragon.Utils.createCallback(null,onOpen,currentTime));};this.openTileSource=function(tileSource){var currentTime=beforeOpen();window.setTimeout(function(){onOpen(currentTime,tileSource);},1);};this.close=function(){if(!source){return;}
onClose();};this.addControl=function(elmt,anchor){var elmt=Seadragon.Utils.getElement(elmt);if(getControlIndex(elmt)>=0){return;}
var div=null;switch(anchor){case Anchor.TOP_RIGHT:div=controlsTR;elmt.style.position="relative";break;case Anchor.BOTTOM_RIGHT:div=controlsBR;elmt.style.position="relative";break;case Anchor.BOTTOM_LEFT:div=controlsBL;elmt.style.position="relative";break;case Anchor.TOP_LEFT:div=controlsTL;elmt.style.position="relative";break;case Anchor.NONE:default:div=container;elmt.style.position="absolute";break;}
controls.push(new Control(elmt,anchor,div));};this.removeControl=function(elmt){var elmt=Seadragon.Utils.getElement(elmt);var i=getControlIndex(elmt);if(i>=0){controls[i].destroy();controls.splice(i,1);}};this.clearControls=function(){while(controls.length>0){controls.pop().destroy();}};this.getNavControl=function(){return navControl;};this.isDashboardEnabled=function(){for(var i=controls.length-1;i>=0;i--){if(controls[i].isVisible()){return true;}}
return false;};this.isFullPage=function(){return container.parentNode==document.body;};this.isMouseNavEnabled=function(){return innerTracker.isTracking();};this.isVisible=function(){return container.style.visibility!="hidden";};this.setDashboardEnabled=function(enabled){for(var i=controls.length-1;i>=0;i--){controls[i].setVisible(enabled);}};this.setFullPage=function(fullPage){if(fullPage==self.isFullPage()){return;}
var body=document.body;var bodyStyle=body.style;var docStyle=document.documentElement.style;var containerStyle=container.style;var canvasStyle=canvas.style;if(fullPage){bodyOverflow=bodyStyle.overflow;docOverflow=docStyle.overflow;bodyStyle.overflow="hidden";docStyle.overflow="hidden";bodyWidth=bodyStyle.width;bodyHeight=bodyStyle.height;bodyStyle.width="100%";bodyStyle.height="100%";canvasStyle.backgroundColor="black";canvasStyle.color="white";containerStyle.position="fixed";containerStyle.zIndex="99999999";body.appendChild(container);prevContainerSize=Seadragon.Utils.getWindowSize();Seadragon.Utils.addEvent(document,"keydown",onPageKeyDown);onContainerEnter();}else{bodyStyle.overflow=bodyOverflow;docStyle.overflow=docOverflow;bodyStyle.width=bodyWidth;bodyStyle.height=bodyHeight;canvasStyle.backgroundColor="";canvasStyle.color="";containerStyle.position="relative";containerStyle.zIndex="";parent.appendChild(container);prevContainerSize=Seadragon.Utils.getElementSize(parent);Seadragon.Utils.removeEvent(document,"keydown",onPageKeyDown);onContainerExit();}
if(viewport){var oldBounds=viewport.getBounds();viewport.resize(prevContainerSize);var newBounds=viewport.getBounds();if(fullPage){fsBoundsDelta=new Seadragon.Point(newBounds.width/oldBounds.width,newBounds.height/oldBounds.height);}else{viewport.update();viewport.zoomBy(Math.max(fsBoundsDelta.x,fsBoundsDelta.y),null,true);}
forceRedraw=true;eventManager.trigger("resize",self);updateOnce();}};this.setMouseNavEnabled=function(enabled){innerTracker.setTracking(enabled);};this.setVisible=function(visible){container.style.visibility=visible?"":"hidden";};this.addEventListener=function(eventName,handler){eventManager.addListener(eventName,handler);};this.removeEventListener=function(eventName,handler){eventManager.removeListener(eventName,handler);};initialize();};})();Seadragon.Config.imagePath="http://seadragon.com/ajax/0.8/img/";(function(){if(typeof(Seadragon.BrandedViewer)=="function"){return;}
Seadragon.Strings.setString("About.Header","Welcome to Seadragon.");Seadragon.Strings.setString("About.Description","Use your mouse and scroll wheel to pan and zoom around the image. "+"To learn more, visit:");Seadragon.Strings.setString("About.LogoUrl","http://seadragon.com/");Seadragon.Strings.setString("About.MainUrl","http://seadragon.com/");Seadragon.Strings.setString("Tooltips.AboutButton","About Seadragon");var BRANDING_PATH="../branding/";var SIGNAL="----seadragon----";var LOGO_PREFIX="about";var REST="_rest.png";var GROUP="_grouphover.png";var HOVER="_hover.png";var DOWN="_pressed.png";function logoUrl(postfix){return Seadragon.Config.imagePath+BRANDING_PATH+LOGO_PREFIX+postfix;}
function makeLogoControl(viewer){var button=new Seadragon.Button(Seadragon.Strings.getString("Tooltips.AboutButton"),logoUrl(REST),logoUrl(GROUP),logoUrl(HOVER),logoUrl(DOWN),null,showInfo,null,null,null);var group=new Seadragon.ButtonGroup([button]);function showInfo(){viewer.setAboutScreenVisible(true);}
function lightUp(){group.emulateEnter();group.emulateExit();}
group.elmt[SIGNAL]=true;viewer.addEventListener("open",lightUp);var elmt=group.elmt;var caption=Seadragon.Utils.makeNeutralElement("span");elmt.appendChild(caption);return elmt;}
var ABOUT_LOGO_SRC="logo_big.png";var ABOUT_TEXT_WIDTH=70;var ABOUT_TEXT_LEFT=18;function preventClickClose(elmt){Seadragon.Utils.addEvent(elmt,"mouseup",Seadragon.Utils.stopEvent);Seadragon.Utils.addEvent(elmt,"click",Seadragon.Utils.stopEvent);}
function resetTextCss(elmt){var elmtStyle=elmt.style;elmtStyle.color="white";elmtStyle.fontFamily="verdana";elmtStyle.fontSize="13px";elmtStyle.fontSizeAdjust="none";elmtStyle.fontStyle="normal";elmtStyle.fontStretch="normal";elmtStyle.fontVariant="normal";elmtStyle.fontWeight="normal";elmtStyle.lineHeight="1em";elmtStyle.textAlign="left";elmtStyle.textDecoration="none";}
function makeAboutScreen(viewer){var info=Seadragon.Utils.makeNeutralElement("div");var tracker=new Seadragon.MouseTracker(info);info.style.position="absolute";info.style.left=info.style.top="0px";info.style.width=info.style.height="100%";tracker.setTracking(true);tracker.clickHandler=function(tracker,position,quick,shift){if(quick){viewer.setAboutScreenVisible(false);}};var background=Seadragon.Utils.makeNeutralElement("div");var about=Seadragon.Utils.makeNeutralElement("div");var logo=Seadragon.Utils.makeNeutralElement("div");var footer=Seadragon.Utils.makeNeutralElement("div");background.style.position=logo.style.position=about.style.position=footer.style.position="absolute";background.style.background="black";background.style.left=background.style.top="0px";background.style.width=background.style.height="100%";Seadragon.Utils.setElementOpacity(background,0.7);logo.style.left="0px";logo.style.top="20px";about.style.left=about.style.top="0px";about.style.width=about.style.height="100%";about.style.textAlign="left";footer.style.right="4px";footer.style.bottom="8px";info.appendChild(background);info.appendChild(about);info.appendChild(logo);info.appendChild(footer);var aboutInner=Seadragon.Utils.makeNeutralElement("div");var aboutHeader=Seadragon.Utils.makeNeutralElement("p");var aboutDesc=Seadragon.Utils.makeNeutralElement("p");var aboutUrl=Seadragon.Utils.makeNeutralElement("p");var aboutLink=Seadragon.Utils.makeNeutralElement("a");aboutHeader.appendChild(document.createTextNode(Seadragon.Strings.getString("About.Header")));aboutDesc.appendChild(document.createTextNode(Seadragon.Strings.getString("About.Description")));aboutLink.appendChild(document.createTextNode(Seadragon.Strings.getString("About.MainUrl")));resetTextCss(aboutHeader);resetTextCss(aboutDesc);resetTextCss(aboutUrl);resetTextCss(aboutLink);aboutHeader.style.fontWeight="bold";aboutHeader.style.paddingTop="2em";aboutDesc.style.margin="1em auto";aboutLink.href=Seadragon.Strings.getString("About.MainUrl");aboutLink.target="_blank";aboutLink.style.color="yellow";aboutLink.style.textDecoration="none";preventClickClose(aboutLink);var aboutTextWidth=ABOUT_TEXT_WIDTH;var aboutTextLeft=ABOUT_TEXT_LEFT;if(Seadragon.Utils.getBrowser()==Seadragon.Browser.IE&&Seadragon.Utils.getBrowserVersion()<8){aboutTextLeft-=(100-aboutTextWidth)/2;}
aboutInner.style.width=aboutTextWidth+"%";aboutInner.style.marginLeft=aboutTextLeft+"%";aboutInner.style.textAlign="left";aboutUrl.appendChild(aboutLink);aboutInner.appendChild(aboutHeader);aboutInner.appendChild(aboutDesc);aboutInner.appendChild(aboutUrl);about.appendChild(Seadragon.Utils.makeCenteredNode(aboutInner));var logoLink=Seadragon.Utils.makeNeutralElement("a");var logoImage=Seadragon.Utils.makeTransparentImage(Seadragon.Config.imagePath+BRANDING_PATH+ABOUT_LOGO_SRC);logoLink.href=Seadragon.Strings.getString("About.LogoUrl");logoLink.target="_blank";preventClickClose(logoLink);logoLink.appendChild(logoImage);logo.appendChild(logoLink);return info;}
Seadragon.BrandedViewer=function(container){var self=new Seadragon.Viewer(container);var logoControl=makeLogoControl(self);var aboutScreen=makeAboutScreen(self);var introAnimating=false;function init(){self.addControl(logoControl,Seadragon.ControlAnchor.BOTTOM_LEFT);logoControl.style.marginLeft="4px";logoControl.style.marginBottom="4px";self.addEventListener("open",introAnimationSetup);}
function introAnimationSetup(){var viewport=self.viewport;var homeZoom=viewport.getZoom();introAnimating=true;viewport.zoomBy(0.01,null,true);viewport.update();window.setTimeout(function(){if(viewport!==self.viewport){return;}
viewport.zoomTo(1.15*homeZoom);window.setTimeout(function(){if(introAnimating&&viewport===self.viewport){origViewportZoomTo(homeZoom);}},Seadragon.Config.animationTime*1000/2);var origViewportZoomTo=wrapViewportMethod(viewport,"zoomTo");self.addEventListener("animationfinish",onAnimationFinish);},50);}
function wrapViewportMethod(viewport,methodName){var origFunc=viewport[methodName];viewport[methodName]=function(){introAnimating=false;origFunc.apply(viewport,arguments);viewport[methodName]=origFunc;};return origFunc;}
function onAnimationFinish(viewer){introAnimating=false;viewer.removeEventListener("animationfinish",arguments.callee);}
init();self.getLogoControl=function(){return logoControl;};self.getAboutScreen=function(){return aboutScreen;};self.isAboutScreenVisible=function(){return aboutScreen.parentNode==self.elmt;};self.isIntroAnimating=function(){return introAnimating;};self.setAboutScreenVisible=function(visible){if(visible==self.isAboutScreenVisible()){return;}
if(visible){self.elmt.appendChild(aboutScreen);}else{self.elmt.removeChild(aboutScreen);}};self.addAboutFooterLink=function(url,text){var footer=aboutScreen.lastChild;var footerLink=Seadragon.Utils.makeNeutralElement("a");resetTextCss(footerLink);preventClickClose(footerLink);footerLink.href=url;footerLink.target="_blank";footerLink.appendChild(document.createTextNode(text||url));footerLink.style.color="yellow";footerLink.style.textDecoration="none";if(footer.firstChild){var divider=Seadragon.Utils.makeNeutralElement("span");resetTextCss(divider);divider.style.color="gray";divider.appendChild(document.createTextNode(" | "));footer.appendChild(divider);}
footer.appendChild(footerLink);};self.setLogoCaption=function(text,url){var caption=logoControl.lastChild;var elmt=Seadragon.Utils.makeNeutralElement(url?"a":"span");var elmtStyle=elmt.style;resetTextCss(elmt);elmtStyle.color="#ccc";elmtStyle.fontSize="10px";elmtStyle.position="relative";elmtStyle.bottom="8px";elmtStyle.left="4px";elmt.appendChild(document.createTextNode(text));if(url){elmt.href=url;elmt.target="_blank";elmtStyle.color="#cc0";}
caption.innerHTML="";caption.appendChild(elmt);};return self;};})();(function(){if(!window.Silverlight)
{window.Silverlight={};}
else
{return;}
Silverlight._silverlightCount=0;Silverlight.__onSilverlightInstalledCalled=false;Silverlight.fwlinkRoot='http://go2.microsoft.com/fwlink/?LinkID=';Silverlight.__installationEventFired=false;Silverlight.onGetSilverlight=null;Silverlight.onSilverlightInstalled=function(){window.location.reload(false);};Silverlight.isInstalled=function(version)
{if(version==undefined)
version=null;var isVersionSupported=false;var container=null;try
{var control=null;var tryNS=false;if(window.ActiveXObject)
{try
{control=new ActiveXObject('AgControl.AgControl');if(version===null)
{isVersionSupported=true;}
else if(control.IsVersionSupported(version))
{isVersionSupported=true;}
control=null;}
catch(e)
{tryNS=true;}}
else
{tryNS=true;}
if(tryNS)
{var plugin=navigator.plugins["Silverlight Plug-In"];if(plugin)
{if(version===null)
{isVersionSupported=true;}
else
{var actualVer=plugin.description;if(actualVer==="1.0.30226.2")
actualVer="2.0.30226.2";var actualVerArray=actualVer.split(".");while(actualVerArray.length>3)
{actualVerArray.pop();}
while(actualVerArray.length<4)
{actualVerArray.push(0);}
var reqVerArray=version.split(".");while(reqVerArray.length>4)
{reqVerArray.pop();}
var requiredVersionPart;var actualVersionPart;var index=0;do
{requiredVersionPart=parseInt(reqVerArray[index]);actualVersionPart=parseInt(actualVerArray[index]);index++;}
while(index<reqVerArray.length&&requiredVersionPart===actualVersionPart);if(requiredVersionPart<=actualVersionPart&&!isNaN(requiredVersionPart))
{isVersionSupported=true;}}}}}
catch(e)
{isVersionSupported=false;}
return isVersionSupported;};Silverlight.WaitForInstallCompletion=function()
{if(!Silverlight.isBrowserRestartRequired&&Silverlight.onSilverlightInstalled)
{try
{navigator.plugins.refresh();}
catch(e)
{}
if(Silverlight.isInstalled(null)&&!Silverlight.__onSilverlightInstalledCalled)
{Silverlight.onSilverlightInstalled();Silverlight.__onSilverlightInstalledCalled=true;}
else
{setTimeout(Silverlight.WaitForInstallCompletion,3000);}}};Silverlight.__startup=function()
{navigator.plugins.refresh();Silverlight.isBrowserRestartRequired=Silverlight.isInstalled(null);if(!Silverlight.isBrowserRestartRequired)
{Silverlight.WaitForInstallCompletion();if(!Silverlight.__installationEventFired)
{Silverlight.onInstallRequired();Silverlight.__installationEventFired=true;}}
else if(window.navigator.mimeTypes)
{var mimeSL2=navigator.mimeTypes["application/x-silverlight-2"];var mimeSL2b2=navigator.mimeTypes["application/x-silverlight-2-b2"];var mimeSL2b1=navigator.mimeTypes["application/x-silverlight-2-b1"];var mimeHighestBeta=mimeSL2b1;if(mimeSL2b2)
mimeHighestBeta=mimeSL2b2;if(!mimeSL2&&(mimeSL2b1||mimeSL2b2))
{if(!Silverlight.__installationEventFired)
{Silverlight.onUpgradeRequired();Silverlight.__installationEventFired=true;}}
else if(mimeSL2&&mimeHighestBeta)
{if(mimeSL2.enabledPlugin&&mimeHighestBeta.enabledPlugin)
{if(mimeSL2.enabledPlugin.description!=mimeHighestBeta.enabledPlugin.description)
{if(!Silverlight.__installationEventFired)
{Silverlight.onRestartRequired();Silverlight.__installationEventFired=true;}}}}}
if(!Silverlight.disableAutoStartup)
{if(window.removeEventListener)
{window.removeEventListener('load',Silverlight.__startup,false);}
else
{window.detachEvent('onload',Silverlight.__startup);}}};if(!Silverlight.disableAutoStartup)
{if(window.addEventListener)
{window.addEventListener('load',Silverlight.__startup,false);}
else
{window.attachEvent('onload',Silverlight.__startup);}}
Silverlight.createObject=function(source,parentElement,id,properties,events,initParams,userContext)
{var slPluginHelper=new Object();var slProperties=properties;var slEvents=events;slPluginHelper.version=slProperties.version;slProperties.source=source;slPluginHelper.alt=slProperties.alt;if(initParams)
slProperties.initParams=initParams;if(slProperties.isWindowless&&!slProperties.windowless)
slProperties.windowless=slProperties.isWindowless;if(slProperties.framerate&&!slProperties.maxFramerate)
slProperties.maxFramerate=slProperties.framerate;if(id&&!slProperties.id)
slProperties.id=id;delete slProperties.ignoreBrowserVer;delete slProperties.inplaceInstallPrompt;delete slProperties.version;delete slProperties.isWindowless;delete slProperties.framerate;delete slProperties.data;delete slProperties.src;delete slProperties.alt;if(Silverlight.isInstalled(slPluginHelper.version))
{for(var name in slEvents)
{if(slEvents[name])
{if(name=="onLoad"&&typeof slEvents[name]=="function"&&slEvents[name].length!=1)
{var onLoadHandler=slEvents[name];slEvents[name]=function(sender){return onLoadHandler(document.getElementById(id),userContext,sender)};}
var handlerName=Silverlight.__getHandlerName(slEvents[name]);if(handlerName!=null)
{slProperties[name]=handlerName;slEvents[name]=null;}
else
{throw"typeof events."+name+" must be 'function' or 'string'";}}}
slPluginHTML=Silverlight.buildHTML(slProperties);}
else
{slPluginHTML=Silverlight.buildPromptHTML(slPluginHelper);}
if(parentElement)
{parentElement.innerHTML=slPluginHTML;}
else
{return slPluginHTML;}};Silverlight.buildHTML=function(slProperties)
{var htmlBuilder=[];htmlBuilder.push('<object type=\"application/x-silverlight\" data="data:application/x-silverlight,"');if(slProperties.id!=null)
{htmlBuilder.push(' id="'+Silverlight.HtmlAttributeEncode(slProperties.id)+'"');}
if(slProperties.width!=null)
{htmlBuilder.push(' width="'+slProperties.width+'"');}
if(slProperties.height!=null)
{htmlBuilder.push(' height="'+slProperties.height+'"');}
htmlBuilder.push(' >');delete slProperties.id;delete slProperties.width;delete slProperties.height;for(var name in slProperties)
{if(slProperties[name])
{htmlBuilder.push('<param name="'+Silverlight.HtmlAttributeEncode(name)+'" value="'+Silverlight.HtmlAttributeEncode(slProperties[name])+'" />');}}
htmlBuilder.push('<\/object>');return htmlBuilder.join('');};Silverlight.createObjectEx=function(params)
{var parameters=params;var html=Silverlight.createObject(parameters.source,parameters.parentElement,parameters.id,parameters.properties,parameters.events,parameters.initParams,parameters.context);if(parameters.parentElement==null)
{return html;}};Silverlight.buildPromptHTML=function(slPluginHelper)
{var slPluginHTML="";var urlRoot=Silverlight.fwlinkRoot;var version=slPluginHelper.version;if(slPluginHelper.alt)
{slPluginHTML=slPluginHelper.alt;}
else
{if(!version)
{version="";}
slPluginHTML="<a href='javascript:Silverlight.getSilverlight(\"{1}\");' style='text-decoration: none;'><img src='{2}' alt='Get Microsoft Silverlight' style='border-style: none'/></a>";slPluginHTML=slPluginHTML.replace('{1}',version);slPluginHTML=slPluginHTML.replace('{2}',urlRoot+'108181');}
return slPluginHTML;};Silverlight.getSilverlight=function(version)
{if(Silverlight.onGetSilverlight)
{Silverlight.onGetSilverlight();}
var shortVer="";var reqVerArray=String(version).split(".");if(reqVerArray.length>1)
{var majorNum=parseInt(reqVerArray[0]);if(isNaN(majorNum)||majorNum<2)
{shortVer="1.0";}
else
{shortVer=reqVerArray[0]+'.'+reqVerArray[1];}}
var verArg="";if(shortVer.match(/^\d+\056\d+$/))
{verArg="&v="+shortVer;}
Silverlight.followFWLink("149156"+verArg);};Silverlight.followFWLink=function(linkid)
{top.location=Silverlight.fwlinkRoot+String(linkid);};Silverlight.HtmlAttributeEncode=function(strInput)
{var c;var retVal='';if(strInput==null)
{return null;}
for(var cnt=0;cnt<strInput.length;cnt++)
{c=strInput.charCodeAt(cnt);if(((c>96)&&(c<123))||((c>64)&&(c<91))||((c>43)&&(c<58)&&(c!=47))||(c==95))
{retVal=retVal+String.fromCharCode(c);}
else
{retVal=retVal+'&#'+c+';';}}
return retVal;};Silverlight.default_error_handler=function(sender,args)
{var iErrorCode;var errorType=args.ErrorType;iErrorCode=args.ErrorCode;var errMsg="\nSilverlight error message     \n";errMsg+="ErrorCode: "+iErrorCode+"\n";errMsg+="ErrorType: "+errorType+"       \n";errMsg+="Message: "+args.ErrorMessage+"     \n";if(errorType=="ParserError")
{errMsg+="XamlFile: "+args.xamlFile+"     \n";errMsg+="Line: "+args.lineNumber+"     \n";errMsg+="Position: "+args.charPosition+"     \n";}
else if(errorType=="RuntimeError")
{if(args.lineNumber!=0)
{errMsg+="Line: "+args.lineNumber+"     \n";errMsg+="Position: "+args.charPosition+"     \n";}
errMsg+="MethodName: "+args.methodName+"     \n";}
alert(errMsg);};Silverlight.__cleanup=function()
{for(var i=Silverlight._silverlightCount-1;i>=0;i--){window['__slEvent'+i]=null;}
Silverlight._silverlightCount=0;if(window.removeEventListener){window.removeEventListener('unload',Silverlight.__cleanup,false);}
else{window.detachEvent('onunload',Silverlight.__cleanup);}};Silverlight.__getHandlerName=function(handler)
{var handlerName="";if(typeof handler=="string")
{handlerName=handler;}
else if(typeof handler=="function")
{if(Silverlight._silverlightCount==0)
{if(window.addEventListener)
{window.addEventListener('unload',Silverlight.__cleanup,false);}
else
{window.attachEvent('onunload',Silverlight.__cleanup);}}
var count=Silverlight._silverlightCount++;handlerName="__slEvent"+count;window[handlerName]=handler;}
else
{handlerName=null;}
return handlerName;};Silverlight.onRequiredVersionAvailable=function()
{};Silverlight.onRestartRequired=function()
{};Silverlight.onUpgradeRequired=function()
{};Silverlight.onInstallRequired=function()
{};Silverlight.IsVersionAvailableOnError=function(sender,args)
{var retVal=false;try
{if(args.ErrorCode==8001&&!Silverlight.__installationEventFired)
{Silverlight.onUpgradeRequired();Silverlight.__installationEventFired=true;}
else if(args.ErrorCode==8002&&!Silverlight.__installationEventFired)
{Silverlight.onRestartRequired();Silverlight.__installationEventFired=true;}
else if(args.ErrorCode==5014||args.ErrorCode==2106)
{if(Silverlight.__verifySilverlight2UpgradeSuccess(args.getHost()))
{retVal=true;}}
else
{retVal=true;}}
catch(e)
{}
return retVal;};Silverlight.IsVersionAvailableOnLoad=function(sender)
{var retVal=false;try
{if(Silverlight.__verifySilverlight2UpgradeSuccess(sender.getHost()))
{retVal=true;}}
catch(e)
{}
return retVal;};Silverlight.__verifySilverlight2UpgradeSuccess=function(host)
{var retVal=false;var version="4.0.50401";var installationEvent=null;try
{if(host.IsVersionSupported(version+".99"))
{installationEvent=Silverlight.onRequiredVersionAvailable;retVal=true;}
else if(host.IsVersionSupported(version+".0"))
{installationEvent=Silverlight.onRestartRequired;}
else
{installationEvent=Silverlight.onUpgradeRequired;}
if(installationEvent&&!Silverlight.__installationEventFired)
{installationEvent();Silverlight.__installationEventFired=true;}}
catch(e)
{}
return retVal;};})();if(!window.Silverlight)
{window.Silverlight={};}
Silverlight.supportedUserAgent=function(version,userAgent){try{var ua=null;if(userAgent){ua=userAgent;}
else{ua=window.navigator.userAgent;}
var slua={OS:'Unsupported',Browser:'Unsupported'};if(ua.indexOf('Windows NT')>=0||ua.indexOf('Mozilla/4.0 (compatible; MSIE 6.0)')>=0){slua.OS='Windows';}
else if(ua.indexOf('PPC Mac OS X')>=0){slua.OS='MacPPC';}
else if(ua.indexOf('Intel Mac OS X')>=0){slua.OS='MacIntel';}
else if(ua.indexOf('Linux')>=0){slua.OS='Linux';}
if(slua.OS!='Unsupported'){if(ua.indexOf('MSIE')>=0){if(navigator.userAgent.indexOf('Win64')==-1){if(parseInt(ua.split('MSIE')[1])>=6){slua.Browser='MSIE';}}}
else if(ua.indexOf('Firefox')>=0){var versionArr=ua.split('Firefox/')[1].split('.');var major=parseInt(versionArr[0]);if(major>=2){slua.Browser='Firefox';}
else{var minor=parseInt(versionArr[1]);if((major==1)&&(minor>=5)){slua.Browser='Firefox';}}}
else if(ua.indexOf('Chrome')>=0){slua.Browser='Chrome';}
else if(ua.indexOf('Safari')>=0){slua.Browser='Safari';}}
var sl_version=parseInt(version);var supUA=(!(slua.OS=='Unsupported'||slua.Browser=='Unsupported'||(slua.OS=='Windows'&&slua.Browser=='Safari')||(slua.OS.indexOf('Mac')>=0&&slua.Browser=='MSIE')||(slua.OS.indexOf('Mac')>=0&&slua.Browser=='Chrome')));if((slua.OS.indexOf('Windows')>=0&&slua.Browser=='Chrome'&&sl_version<4)){return false;}
if((slua.OS=='MacPPC')&&(sl_version>1)){return((supUA&&(slua.OS!='MacPPC')));}
if((slua.OS=='Linux')&&(sl_version>2)){return((supUA&&(slua.OS!='Linux')));}
if(version=='1.0'){return(supUA&&(ua.indexOf('Windows NT 5.0')<0));}
else{return(supUA);}}
catch(e){return false;}};(function(){if(!window.Silverlight){throw new Error("Silverlight.js has not been included.");}else if(!Silverlight.supportedUserAgent){throw new Error("Silverlight.supportedUserAgent.js has not been included.");}else if(!window.Seadragon){throw new Error("Seadragon Ajax has not been included.");}else if(Seadragon.ComboViewer){return;}
Seadragon.Strings.setString("About.SilverlightBefore","Want better performance? ");Seadragon.Strings.setString("About.SilverlightDuring","Install Silverlight");Seadragon.Strings.setString("About.SilverlightAfter","");Seadragon.Strings.setString("About.SilverlightUrl","http://go.microsoft.com/fwlink/?LinkID=157725");Seadragon.Config.xapPath=Seadragon.Config.xapPath||"http://seadragon.com/combo/";var SL_VERSION="3.0.40818.0";var SL_XAPNAME="DeepZoomViewer.xap";var SL_ICON="../branding/silverlight.png";var SL_BLESSED=Silverlight.supportedUserAgent(SL_VERSION.substr(0,3));var SL_INSTALLED=SL_BLESSED&&Silverlight.isInstalled(SL_VERSION);var IS_FILE_SCHEME=window.location.protocol.toLowerCase()=="file:";var ComboViewer=function(container,url,xmlOrDziTileSource,callback){var self=this;var viewer=null;var pluginLoaded=false;var containerElmt=Seadragon.Utils.getElement(container);this.isSilverlight=SL_INSTALLED;this.onFirstInteraction=null;this.onSilverlightInstall=null;this.onResize=null;function createAjaxViewer(tileSource){self.isSilverlight=false;viewer=new Seadragon.BrandedViewer(container);var aboutScreen=viewer.getAboutScreen();var aboutPara=aboutScreen.getElementsByTagName("p")[1];var aboutDesc=aboutPara.parentNode;var apStyle=aboutPara.style;if(SL_BLESSED&&!SL_INSTALLED&&!IS_FILE_SCHEME){var upgradePara=Seadragon.Utils.makeNeutralElement("p");var upgradeLink=Seadragon.Utils.makeNeutralElement("a");upgradeLink.href=Seadragon.Strings.getString("About.SilverlightUrl");upgradeLink.target="_blank";var upStyle=upgradePara.style;var ulStyle=upgradeLink.style;upStyle.color=ulStyle.color=apStyle.color;upStyle.fontFamily=ulStyle.fontFamily=apStyle.fontFamily;upStyle.fontSize=ulStyle.fontSize=apStyle.fontSize;upStyle.fontSizeAdjust=ulStyle.fontSizeAdjust=apStyle.fontSizeAdjust;upStyle.fontStyle=ulStyle.fontStyle=apStyle.fontStyle;upStyle.fontStretch=ulStyle.fontStretch=apStyle.fontStretch;upStyle.fontVariant=ulStyle.fontVariant=apStyle.fontVariant;upStyle.fontWeight=ulStyle.fontWeight=apStyle.fontWeight;upStyle.lineHeight=ulStyle.lineHeight=apStyle.lineHeight;upStyle.textAlign=ulStyle.textAlign=apStyle.textAlign;upStyle.textDecoration=ulStyle.textDecoration=apStyle.textDecoration;ulStyle.color="#0cf";ulStyle.fontWeight="bold";ulStyle.textDecoration="none";ulStyle.background="transparent url("+
Seadragon.Config.imagePath+SL_ICON+") no-repeat scroll left center";ulStyle.marginLeft="4px";ulStyle.paddingLeft="18px";upStyle.marginTop="1em";Seadragon.Utils.addEvent(upgradeLink,"mouseup",Seadragon.Utils.stopEvent);Seadragon.Utils.addEvent(upgradeLink,"click",function(event){Seadragon.Utils.stopEvent(event);var eventHandler=self.onSilverlightInstall;if(typeof eventHandler==="function"){eventHandler(self);}});upgradeLink.appendChild(document.createTextNode(Seadragon.Strings.getString("About.SilverlightDuring")));upgradePara.appendChild(document.createTextNode(Seadragon.Strings.getString("About.SilverlightBefore")));upgradePara.appendChild(upgradeLink);upgradePara.appendChild(document.createTextNode(Seadragon.Strings.getString("About.SilverlightAfter")));aboutDesc.appendChild(upgradePara);}
viewer.addEventListener("animation",onAjaxAnimation);viewer.addEventListener("resize",onAjaxResize);viewer.openTileSource(tileSource);}
function callCallback(isCalledBefore){if(typeof callback=="function"){callback(self,isCalledBefore);}}
function initWithTileSource(tileSource){var HOSTNAME_REGEX=/http[s]?:\/\/([^\/]+)/;function isLocal(hostname){return hostname.indexOf('.')<0&&hostname.indexOf("localhost")<0;}
var pageIsLocal=isLocal(location.hostname);var dziPath=url;var dziPathMatches=dziPath.match(HOSTNAME_REGEX);var dziPathIsAbsolute=!!dziPathMatches;var dziIsLocal=dziPathIsAbsolute?isLocal(dziPathMatches[1]):pageIsLocal;var xapPath=(Seadragon.Config.xapPath||"").toLowerCase();var xapPathMatches=xapPath.match(HOSTNAME_REGEX);var xapPathIsAbsolute=!!xapPathMatches;var xapIsLocal=xapPathIsAbsolute?isLocal(xapPathMatches[1]):pageIsLocal;var crossZone=(xapIsLocal!==dziIsLocal);if(!SL_INSTALLED||IS_FILE_SCHEME||crossZone){window.setTimeout(function(){createAjaxViewer(tileSource);callCallback();},1);return;}
var objectDiv=Seadragon.Utils.makeNeutralElement("div");var objectDivStyle=objectDiv.style;objectDivStyle.width="100%";objectDivStyle.height="100%";containerElmt.innerHTML="";containerElmt.appendChild(objectDiv);var initParams=["url=",url,",height=",tileSource.dimensions.y].join('');var props={"width":"100%","height":"100%","background":"transparent","version":SL_VERSION,"enableHtmlAccess":"true"};var events={"onLoad":onPluginLoad,"onError":onPluginError};Silverlight.createObject(Seadragon.Config.xapPath+SL_XAPNAME,objectDiv,"",props,events,initParams,null);}
function onPluginLoad(){if(self.isSilverlight){viewer=containerElmt.getElementsByTagName("object")[0].content.Viewer;}
updateSilverlightStrings();viewer.addEventListener("Animation",onSilverlightAnimation);viewer.addEventListener("Resize",onSilverlightResize);callCallback(pluginLoaded?true:false)
pluginLoaded=true;}
function onPluginError(sender,args){if(!pluginLoaded){pluginLoaded=true;createAjaxViewer(xmlOrDziTileSource);callCallback();}else{Seadragon.Debug.error(["Silverlight ",args.ErrorType," [",args.ErrorCode,"]: ",args.ErrorMessage].join(''));}}
function parseDziXml(url,xml,callback){Seadragon.DziTileSource.createFromXml(url,xml,function(tileSource,error){if(!tileSource){throw new Error(error);}
callback(tileSource);});}
function updateSilverlightStrings(){if(!self.isSilverlight){return;}
viewer.AboutPage.HeaderText=Seadragon.Strings.getString("About.Header");viewer.AboutPage.DescriptionText=Seadragon.Strings.getString("About.Description");viewer.AboutPage.LogoHyperlinkUrl=Seadragon.Strings.getString("About.LogoUrl");viewer.AboutPage.MainHyperlinkUrl=viewer.AboutPage.MainHyperlinkText=Seadragon.Strings.getString("About.MainUrl");}
function onAjaxAnimation(viewer){if(viewer.isIntroAnimating()){return;}
viewer.removeEventListener("animation",arguments.callee);var eventHandler=self.onFirstInteraction;if(typeof eventHandler==="function"){eventHandler(self);}}
function onSilverlightAnimation(viewer){if(viewer.IsIntroAnimating){return;}
viewer.removeEventListener("Animation",arguments.callee);var eventHandler=self.onFirstInteraction;if(typeof eventHandler==="function"){eventHandler(self);}}
function onAjaxResize(viewer){var eventHandler=self.onResize;if(typeof eventHandler==="function"){eventHandler(self);}}
function onSilverlightResize(viewer){var eventHandler=self.onResize;if(typeof eventHandler==="function"){eventHandler(self);}}
this.openDzi=function(url,xml){parseDziXml(url,xml,function(tileSource){self.openDziTileSource(url,tileSource);});};this.openDziTileSource=function(url,dziTileSource){if(self.isSilverlight){viewer.LoadURL(url,dziTileSource.dimensions.y);}else{viewer.openTileSource(dziTileSource);}};this.setAboutButtonTitle=function(str){if(self.isSilverlight){}else{var aboutButton=viewer.getLogoControl().firstChild;aboutButton.title=str;}};this.setAboutHeader=function(str){if(self.isSilverlight){viewer.AboutPage.HeaderText=str;}else{var aboutPara=viewer.getAboutScreen().getElementsByTagName("p")[0];aboutPara.innerHTML="";aboutPara.appendChild(document.createTextNode(str));}};this.setAboutDescription=function(str){if(self.isSilverlight){viewer.AboutPage.DescriptionText=str;}else{var aboutPara=viewer.getAboutScreen().getElementsByTagName("p")[1];aboutPara.innerHTML="";aboutPara.appendChild(document.createTextNode(str));}};this.setAboutMainLink=function(url,text){if(self.isSilverlight){viewer.AboutPage.MainHyperlinkUrl=url;viewer.AboutPage.MainHyperlinkText=text||url;}else{var aboutLink=viewer.getAboutScreen().getElementsByTagName("a")[0];aboutLink.href=url;aboutLink.innerHTML="";aboutLink.appendChild(document.createTextNode(text||url));}};this.addAboutFooterLink=function(url,text){if(self.isSilverlight){viewer.AboutPage.AddCustomHyperlink(url,text||url);}else{viewer.addAboutFooterLink(url,text);}};this.setLogoCaption=function(text,url){if(self.isSilverlight){viewer.SetLogoCaption(text,url);}else{viewer.setLogoCaption(text,url);}};this.isFullPage=function(){if(self.isSilverlight){return viewer.IsFullPage;}else{return viewer.isFullPage();}};this.setFullPage=function(value){if(self.isSilverlight){viewer.SetFullPage(value);}else{viewer.setFullPage(value);}};(function(){if(!xmlOrDziTileSource||typeof(xmlOrDziTileSource)=="string"){parseDziXml(url,xmlOrDziTileSource,initWithTileSource);}else{initWithTileSource(xmlOrDziTileSource);}})();};Seadragon.ComboViewer={};Seadragon.ComboViewer.create=function(container,callback){throw new Error("not yet implemented");};Seadragon.ComboViewer.createAndOpenDzi=function(container,url,xml,callback){new ComboViewer(container,url,xml,callback);};Seadragon.ComboViewer.createAndOpenDziTileSource=function(container,url,dziTileSource,callback){new ComboViewer(container,url,dziTileSource,callback);};})();var _gat=new Object({c:"length",lb:"4.3.1",m:"cookie",b:undefined,cb:function(d,a){this.zb=d;this.Nb=a},r:"__utma=",W:"__utmb=",ma:"__utmc=",Ta:"__utmk=",na:"__utmv=",oa:"__utmx=",Sa:"GASO=",X:"__utmz=",lc:"http://www.google-analytics.com/__utm.gif",mc:"https://ssl.google-analytics.com/__utm.gif",Wa:"utmcid=",Ya:"utmcsr=",$a:"utmgclid=",Ua:"utmccn=",Xa:"utmcmd=",Za:"utmctr=",Va:"utmcct=",Hb:false,_gasoDomain:undefined,_gasoCPath:undefined,e:window,a:document,k:navigator,t:function(d){var a=1,c=0,h,
o;if(!_gat.q(d)){a=0;for(h=d[_gat.c]-1;h>=0;h--){o=d.charCodeAt(h);a=(a<<6&268435455)+o+(o<<14);c=a&266338304;a=c!=0?a^c>>21:a}}return a},C:function(d,a,c){var h=_gat,o="-",k,l,s=h.q;if(!s(d)&&!s(a)&&!s(c)){k=h.w(d,a);if(k>-1){l=d.indexOf(c,k);if(l<0)l=d[h.c];o=h.F(d,k+h.w(a,"=")+1,l)}}return o},Ea:function(d){var a=false,c=0,h,o;if(!_gat.q(d)){a=true;for(h=0;h<d[_gat.c];h++){o=d.charAt(h);c+="."==o?1:0;a=a&&c<=1&&(0==h&&"-"==o||_gat.P(".0123456789",o))}}return a},d:function(d,a){var c=encodeURIComponent;
return c instanceof Function?(a?encodeURI(d):c(d)):escape(d)},J:function(d,a){var c=decodeURIComponent,h;d=d.split("+").join(" ");if(c instanceof Function)try{h=a?decodeURI(d):c(d)}catch(o){h=unescape(d)}else h=unescape(d);return h},Db:function(d){return d&&d.hash?_gat.F(d.href,_gat.w(d.href,"#")):""},q:function(d){return _gat.b==d||"-"==d||""==d},Lb:function(d){return d[_gat.c]>0&&_gat.P(" \n\r\t",d)},P:function(d,a){return _gat.w(d,a)>-1},h:function(d,a){d[d[_gat.c]]=a},T:function(d){return d.toLowerCase()},
z:function(d,a){return d.split(a)},w:function(d,a){return d.indexOf(a)},F:function(d,a,c){c=_gat.b==c?d[_gat.c]:c;return d.substring(a,c)},uc:function(){var d=_gat.b,a=window;if(a&&a.gaGlobal&&a.gaGlobal.hid)d=a.gaGlobal.hid;else{d=Math.round(Math.random()*2147483647);a.gaGlobal=a.gaGlobal?a.gaGlobal:{};a.gaGlobal.hid=d}return d},wa:function(){return Math.round(Math.random()*2147483647)},Gc:function(){return(_gat.wa()^_gat.vc())*2147483647},vc:function(){var d=_gat.k,a=_gat.a,c=_gat.e,h=a[_gat.m]?
a[_gat.m]:"",o=c.history[_gat.c],k,l,s=[d.appName,d.version,d.language?d.language:d.browserLanguage,d.platform,d.userAgent,d.javaEnabled()?1:0].join("");if(c.screen)s+=c.screen.width+"x"+c.screen.height+c.screen.colorDepth;else if(c.java){l=java.awt.Toolkit.getDefaultToolkit().getScreenSize();s+=l.screen.width+"x"+l.screen.height}s+=h;s+=a.referrer?a.referrer:"";k=s[_gat.c];while(o>0)s+=o--^k++;return _gat.t(s)}});_gat.hc=function(){var d=this,a=_gat.cb;function c(h,o){return new a(h,o)}d.db="utm_campaign";d.eb="utm_content";d.fb="utm_id";d.gb="utm_medium";d.hb="utm_nooverride";d.ib="utm_source";d.jb="utm_term";d.kb="gclid";d.pa=0;d.I=0;d.wb="15768000";d.Tb="1800";d.ea=[];d.ga=[];d.Ic="cse";d.Gb="q";d.ab="google";d.fa=[c(d.ab,d.Gb),c("yahoo","p"),c("msn","q"),c("bing","q"),c("aol","query"),c("aol","encquery"),c("lycos","query"),c("ask","q"),c("altavista","q"),c("netscape","query"),c("cnn","query"),c("looksmart","qt"),c("about",
"terms"),c("mamma","query"),c("alltheweb","q"),c("gigablast","q"),c("voila","rdata"),c("virgilio","qs"),c("live","q"),c("baidu","wd"),c("alice","qs"),c("yandex","text"),c("najdi","q"),c("aol","q"),c("club-internet","query"),c("mama","query"),c("seznam","q"),c("search","q"),c("wp","szukaj"),c("onet","qt"),c("netsprint","q"),c("google.interia","q"),c("szukacz","q"),c("yam","k"),c("pchome","q"),c("kvasir","searchExpr"),c("sesam","q"),c("ozu","q"),c("terra","query"),c("nostrum","query"),c("mynet","q"),
c("ekolay","q"),c("search.ilse","search_for")];d.B=undefined;d.Kb=false;d.p="/";d.ha=100;d.Da="/__utm.gif";d.ta=1;d.ua=1;d.G="|";d.sa=1;d.qa=1;d.pb=1;d.g="auto";d.D=1;d.Ga=1000;d.Yc=10;d.nc=10;d.Zc=0.2};_gat.Y=function(d,a){var c,h,o,k,l,s,q,f=this,n=_gat,w=n.q,x=n.c,g,z=a;f.a=d;function B(i){var b=i instanceof Array?i.join("."):"";return w(b)?"-":b}function A(i,b){var e=[],j;if(!w(i)){e=n.z(i,".");if(b)for(j=0;j<e[x];j++)if(!n.Ea(e[j]))e[j]="-"}return e}function p(){return u(63072000000)}function u(i){var b=new Date,e=new Date(b.getTime()+i);return"expires="+e.toGMTString()+"; "}function m(i,b){f.a[n.m]=i+"; path="+z.p+"; "+b+f.Cc()}function r(i,b,e){var j=f.V,t,v;for(t=0;t<j[x];t++){v=j[t][0];
v+=w(b)?b:b+j[t][4];j[t][2](n.C(i,v,e))}}f.Jb=function(){return n.b==g||g==f.t()};f.Ba=function(){return l?l:"-"};f.Wb=function(i){l=i};f.Ma=function(i){g=n.Ea(i)?i*1:"-"};f.Aa=function(){return B(s)};f.Na=function(i){s=A(i)};f.Hc=function(){return g?g:"-"};f.Cc=function(){return w(z.g)?"":"domain="+z.g+";"};f.ya=function(){return B(c)};f.Ub=function(i){c=A(i,1)};f.K=function(){return B(h)};f.La=function(i){h=A(i,1)};f.za=function(){return B(o)};f.Vb=function(i){o=A(i,1)};f.Ca=function(){return B(k)};
f.Xb=function(i){k=A(i);for(var b=0;b<k[x];b++)if(b<4&&!n.Ea(k[b]))k[b]="-"};f.Dc=function(){return q};f.Uc=function(i){q=i};f.pc=function(){c=[];h=[];o=[];k=[];l=n.b;s=[];g=n.b};f.t=function(){var i="",b;for(b=0;b<f.V[x];b++)i+=f.V[b][1]();return n.t(i)};f.Ha=function(i){var b=f.a[n.m],e=false;if(b){r(b,i,";");f.Ma(f.t());e=true}return e};f.Rc=function(i){r(i,"","&");f.Ma(n.C(i,n.Ta,"&"))};f.Wc=function(){var i=f.V,b=[],e;for(e=0;e<i[x];e++)n.h(b,i[e][0]+i[e][1]());n.h(b,n.Ta+f.t());return b.join("&")};
f.bd=function(i,b){var e=f.V,j=z.p,t;f.Ha(i);z.p=b;for(t=0;t<e[x];t++)if(!w(e[t][1]()))e[t][3]();z.p=j};f.dc=function(){m(n.r+f.ya(),p())};f.Pa=function(){m(n.W+f.K(),u(z.Tb*1000))};f.ec=function(){m(n.ma+f.za(),"")};f.Ra=function(){m(n.X+f.Ca(),u(z.wb*1000))};f.fc=function(){m(n.oa+f.Ba(),p())};f.Qa=function(){m(n.na+f.Aa(),p())};f.cd=function(){m(n.Sa+f.Dc(),"")};f.V=[[n.r,f.ya,f.Ub,f.dc,"."],[n.W,f.K,f.La,f.Pa,""],[n.ma,f.za,f.Vb,f.ec,""],[n.oa,f.Ba,f.Wb,f.fc,""],[n.X,f.Ca,f.Xb,f.Ra,"."],[n.na,
f.Aa,f.Na,f.Qa,"."]]};_gat.jc=function(d){var a=this,c=_gat,h=d,o,k=function(l){var s=(new Date).getTime(),q;q=(s-l[3])*(h.Zc/1000);if(q>=1){l[2]=Math.min(Math.floor(l[2]*1+q),h.nc);l[3]=s}return l};a.O=function(l,s,q,f,n,w,x){var g,z=h.D,B=q.location;if(!o)o=new c.Y(q,h);o.Ha(f);g=c.z(o.K(),".");if(g[1]<500||n){if(w)g=k(g);if(n||!w||g[2]>=1){if(!n&&w)g[2]=g[2]*1-1;g[1]=g[1]*1+1;l="?utmwv="+_gat.lb+"&utmn="+c.wa()+(c.q(B.hostname)?"":"&utmhn="+c.d(B.hostname))+(h.ha==100?"":"&utmsp="+c.d(h.ha))+l;if(0==z||2==z){var A=
new Image(1,1);A.src=h.Da+l;var p=2==z?function(){}:x||function(){};A.onload=p}if(1==z||2==z){var u=new Image(1,1);u.src=("https:"==B.protocol?c.mc:c.lc)+l+"&utmac="+s+"&utmcc="+a.wc(q,f);u.onload=x||function(){}}}}o.La(g.join("."));o.Pa()};a.wc=function(l,s){var q=[],f=[c.r,c.X,c.na,c.oa],n,w=l[c.m],x;for(n=0;n<f[c.c];n++){x=c.C(w,f[n]+s,";");if(!c.q(x))c.h(q,f[n]+x+";")}return c.d(q.join("+"))}};_gat.i=function(){this.la=[]};_gat.i.bb=function(d,a,c,h,o,k){var l=this;l.cc=d;l.Oa=a;l.L=c;l.sb=h;l.Pb=o;l.Qb=k};_gat.i.bb.prototype.S=function(){var d=this,a=_gat.d;return"&"+["utmt=item","utmtid="+a(d.cc),"utmipc="+a(d.Oa),"utmipn="+a(d.L),"utmiva="+a(d.sb),"utmipr="+a(d.Pb),"utmiqt="+a(d.Qb)].join("&")};_gat.i.$=function(d,a,c,h,o,k,l,s){var q=this;q.v=d;q.ob=a;q.bc=c;q.ac=h;q.Yb=o;q.ub=k;q.$b=l;q.xb=s;q.ca=[]};_gat.i.$.prototype.mb=function(d,a,c,h,o){var k=this,l=k.Eb(d),s=k.v,q=_gat;if(q.b==
l)q.h(k.ca,new q.i.bb(s,d,a,c,h,o));else{l.cc=s;l.Oa=d;l.L=a;l.sb=c;l.Pb=h;l.Qb=o}};_gat.i.$.prototype.Eb=function(d){var a,c=this.ca,h;for(h=0;h<c[_gat.c];h++)a=d==c[h].Oa?c[h]:a;return a};_gat.i.$.prototype.S=function(){var d=this,a=_gat.d;return"&"+["utmt=tran","utmtid="+a(d.v),"utmtst="+a(d.ob),"utmtto="+a(d.bc),"utmttx="+a(d.ac),"utmtsp="+a(d.Yb),"utmtci="+a(d.ub),"utmtrg="+a(d.$b),"utmtco="+a(d.xb)].join("&")};_gat.i.prototype.nb=function(d,a,c,h,o,k,l,s){var q=this,f=_gat,n=q.xa(d);if(f.b==
n){n=new f.i.$(d,a,c,h,o,k,l,s);f.h(q.la,n)}else{n.ob=a;n.bc=c;n.ac=h;n.Yb=o;n.ub=k;n.$b=l;n.xb=s}return n};_gat.i.prototype.xa=function(d){var a,c=this.la,h;for(h=0;h<c[_gat.c];h++)a=d==c[h].v?c[h]:a;return a};_gat.gc=function(d){var a=this,c="-",h=_gat,o=d;a.Ja=screen;a.qb=!self.screen&&self.java?java.awt.Toolkit.getDefaultToolkit():h.b;a.a=document;a.e=window;a.k=navigator;a.Ka=c;a.Sb=c;a.tb=c;a.Ob=c;a.Mb=1;a.Bb=c;function k(){var l,s,q,f,n="ShockwaveFlash",w="$version",x=a.k?a.k.plugins:h.b;if(x&&x[h.c]>0)for(l=0;l<x[h.c]&&!q;l++){s=x[l];if(h.P(s.name,"Shockwave Flash"))q=h.z(s.description,"Shockwave Flash ")[1]}else{n=n+"."+n;try{f=new ActiveXObject(n+".7");q=f.GetVariable(w)}catch(g){}if(!q)try{f=
new ActiveXObject(n+".6");q="WIN 6,0,21,0";f.AllowScriptAccess="always";q=f.GetVariable(w)}catch(z){}if(!q)try{f=new ActiveXObject(n);q=f.GetVariable(w)}catch(z){}if(q){q=h.z(h.z(q," ")[1],",");q=q[0]+"."+q[1]+" r"+q[2]}}return q?q:c}a.xc=function(){var l;if(self.screen){a.Ka=a.Ja.width+"x"+a.Ja.height;a.Sb=a.Ja.colorDepth+"-bit"}else if(a.qb)try{l=a.qb.getScreenSize();a.Ka=l.width+"x"+l.height}catch(s){}a.Ob=h.T(a.k&&a.k.language?a.k.language:(a.k&&a.k.browserLanguage?a.k.browserLanguage:c));a.Mb=
a.k&&a.k.javaEnabled()?1:0;a.Bb=o?k():c;a.tb=h.d(a.a.characterSet?a.a.characterSet:(a.a.charset?a.a.charset:c))};a.Xc=function(){return"&"+["utmcs="+h.d(a.tb),"utmsr="+a.Ka,"utmsc="+a.Sb,"utmul="+a.Ob,"utmje="+a.Mb,"utmfl="+h.d(a.Bb)].join("&")}};_gat.n=function(d,a,c,h,o){var k=this,l=_gat,s=l.q,q=l.b,f=l.P,n=l.C,w=l.T,x=l.z,g=l.c;k.a=a;k.f=d;k.Rb=c;k.ja=h;k.o=o;function z(p){return s(p)||"0"==p||!f(p,"://")}function B(p){var u="";p=w(x(p,"://")[1]);if(f(p,"/")){p=x(p,"/")[1];if(f(p,"?"))u=x(p,"?")[0]}return u}function A(p){var u="";u=w(x(p,"://")[1]);if(f(u,"/"))u=x(u,"/")[0];return u}k.Fc=function(p){var u=k.Fb(),m=k.o;return new l.n.s(n(p,m.fb+"=","&"),n(p,m.ib+"=","&"),n(p,m.kb+"=","&"),k.ba(p,m.db,"(not set)"),k.ba(p,m.gb,"(not set)"),
k.ba(p,m.jb,u&&!s(u.R)?l.J(u.R):q),k.ba(p,m.eb,q))};k.Ib=function(p){var u=A(p),m=B(p);if(f(u,k.o.ab)){p=x(p,"?").join("&");if(f(p,"&"+k.o.Gb+"="))if(m==k.o.Ic)return true}return false};k.Fb=function(){var p,u,m=k.Rb,r,i,b=k.o.fa;if(z(m)||k.Ib(m))return;p=A(m);for(r=0;r<b[g];r++){i=b[r];if(f(p,w(i.zb))){m=x(m,"?").join("&");if(f(m,"&"+i.Nb+"=")){u=x(m,"&"+i.Nb+"=")[1];if(f(u,"&"))u=x(u,"&")[0];return new l.n.s(q,i.zb,q,"(organic)","organic",u,q)}}}};k.ba=function(p,u,m){var r=n(p,u+"=","&"),i=!s(r)?
l.J(r):(!s(m)?m:"-");return i};k.Nc=function(p){var u=k.o.ea,m=false,r,i;if(p&&"organic"==p.da){r=w(l.J(p.R));for(i=0;i<u[g];i++)m=m||w(u[i])==r}return m};k.Ec=function(){var p="",u="",m=k.Rb;if(z(m)||k.Ib(m))return;p=w(x(m,"://")[1]);if(f(p,"/")){u=l.F(p,l.w(p,"/"));if(f(u,"?"))u=x(u,"?")[0];p=x(p,"/")[0]}if(0==l.w(p,"www."))p=l.F(p,4);return new l.n.s(q,p,q,"(referral)","referral",q,u)};k.sc=function(p){var u="";if(k.o.pa){u=l.Db(p);u=""!=u?u+"&":u}u+=p.search;return u};k.zc=function(){return new l.n.s(q,
"(direct)",q,"(direct)","(none)",q,q)};k.Oc=function(p){var u=false,m,r,i=k.o.ga;if(p&&"referral"==p.da){m=w(l.d(p.ia));for(r=0;r<i[g];r++)u=u||f(m,w(i[r]))}return u};k.U=function(p){return q!=p&&p.Fa()};k.yc=function(p,u){var m="",r="-",i,b,e=0,j,t,v=k.f;if(!p)return"";t=k.a[l.m]?k.a[l.m]:"";m=k.sc(k.a.location);if(k.o.I&&p.Jb()){r=p.Ca();if(!s(r)&&!f(r,";")){p.Ra();return""}}r=n(t,l.X+v+".",";");i=k.Fc(m);if(k.U(i)){b=n(m,k.o.hb+"=","&");if("1"==b&&!s(r))return""}if(!k.U(i)){i=k.Fb();if(!s(r)&&
k.Nc(i))return""}if(!k.U(i)&&u){i=k.Ec();if(!s(r)&&k.Oc(i))return""}if(!k.U(i))if(s(r)&&u)i=k.zc();if(!k.U(i))return"";if(!s(r)){var y=x(r,"."),E=new l.n.s;E.Cb(y.slice(4).join("."));j=w(E.ka())==w(i.ka());e=y[3]*1}if(!j||u){var F=n(t,l.r+v+".",";"),I=F.lastIndexOf("."),G=I>9?l.F(F,I+1)*1:0;e++;G=0==G?1:G;p.Xb([v,k.ja,G,e,i.ka()].join("."));p.Ra();return"&utmcn=1"}else return"&utmcr=1"}};_gat.n.s=function(d,a,c,h,o,k,l){var s=this;s.v=d;s.ia=a;s.ra=c;s.L=h;s.da=o;s.R=k;s.vb=l};_gat.n.s.prototype.ka=
function(){var d=this,a=_gat,c=[],h=[[a.Wa,d.v],[a.Ya,d.ia],[a.$a,d.ra],[a.Ua,d.L],[a.Xa,d.da],[a.Za,d.R],[a.Va,d.vb]],o,k;if(d.Fa())for(o=0;o<h[a.c];o++)if(!a.q(h[o][1])){k=h[o][1].split("+").join("%20");k=k.split(" ").join("%20");a.h(c,h[o][0]+k)}return c.join("|")};_gat.n.s.prototype.Fa=function(){var d=this,a=_gat.q;return!(a(d.v)&&a(d.ia)&&a(d.ra))};_gat.n.s.prototype.Cb=function(d){var a=this,c=_gat,h=function(o){return c.J(c.C(d,o,"|"))};a.v=h(c.Wa);a.ia=h(c.Ya);a.ra=h(c.$a);a.L=h(c.Ua);a.da=
h(c.Xa);a.R=h(c.Za);a.vb=h(c.Va)};_gat.Z=function(){var d=this,a=_gat,c={},h="k",o="v",k=[h,o],l="(",s=")",q="*",f="!",n="'",w={};w[n]="'0";w[s]="'1";w[q]="'2";w[f]="'3";var x=1;function g(m,r,i,b){if(a.b==c[m])c[m]={};if(a.b==c[m][r])c[m][r]=[];c[m][r][i]=b}function z(m,r,i){return a.b!=c[m]&&a.b!=c[m][r]?c[m][r][i]:a.b}function B(m,r){if(a.b!=c[m]&&a.b!=c[m][r]){c[m][r]=a.b;var i=true,b;for(b=0;b<k[a.c];b++)if(a.b!=c[m][k[b]]){i=false;break}if(i)c[m]=a.b}}function A(m){var r="",i=false,b,e;for(b=0;b<k[a.c];b++){e=m[k[b]];if(a.b!=
e){if(i)r+=k[b];r+=p(e);i=false}else i=true}return r}function p(m){var r=[],i,b;for(b=0;b<m[a.c];b++)if(a.b!=m[b]){i="";if(b!=x&&a.b==m[b-1]){i+=b.toString();i+=f}i+=u(m[b]);a.h(r,i)}return l+r.join(q)+s}function u(m){var r="",i,b,e;for(i=0;i<m[a.c];i++){b=m.charAt(i);e=w[b];r+=a.b!=e?e:b}return r}d.Kc=function(m){return a.b!=c[m]};d.N=function(){var m=[],r;for(r in c)if(a.b!=c[r])a.h(m,r.toString()+A(c[r]));return m.join("")};d.Sc=function(m){if(m==a.b)return d.N();var r=[m.N()],i;for(i in c)if(a.b!=
c[i]&&!m.Kc(i))a.h(r,i.toString()+A(c[i]));return r.join("")};d._setKey=function(m,r,i){if(typeof i!="string")return false;g(m,h,r,i);return true};d._setValue=function(m,r,i){if(typeof i!="number"&&(a.b==Number||!(i instanceof Number)))return false;if(Math.round(i)!=i||i==NaN||i==Infinity)return false;g(m,o,r,i.toString());return true};d._getKey=function(m,r){return z(m,h,r)};d._getValue=function(m,r){return z(m,o,r)};d._clearKey=function(m){B(m,h)};d._clearValue=function(m){B(m,o)}};_gat.ic=function(d,a){var c=this;c.jd=a;c.Pc=d;c._trackEvent=function(h,o,k){return a._trackEvent(c.Pc,h,o,k)}};_gat.kc=function(d){var a=this,c=_gat,h=c.b,o=c.q,k=c.w,l=c.F,s=c.C,q=c.P,f=c.z,n="location",w=c.c,x=h,g=new c.hc,z=false;a.a=document;a.e=window;a.ja=Math.round((new Date).getTime()/1000);a.H=d;a.yb=a.a.referrer;a.va=h;a.j=h;a.A=h;a.M=false;a.aa=h;a.rb="";a.l=h;a.Ab=h;a.f=h;a.u=h;function B(){if("auto"==g.g){var b=a.a.domain;if("www."==l(b,0,4))b=l(b,4);g.g=b}g.g=c.T(g.g)}function A(){var b=g.g,e=k(b,"www.google.")*k(b,".google.")*k(b,"google.");return e||"/"!=g.p||k(b,"google.org")>-1}function p(b,
e,j){if(o(b)||o(e)||o(j))return"-";var t=s(b,c.r+a.f+".",e),v;if(!o(t)){v=f(t,".");v[5]=v[5]?v[5]*1+1:1;v[3]=v[4];v[4]=j;t=v.join(".")}return t}function u(){return"file:"!=a.a[n].protocol&&A()}function m(b){if(!b||""==b)return"";while(c.Lb(b.charAt(0)))b=l(b,1);while(c.Lb(b.charAt(b[w]-1)))b=l(b,0,b[w]-1);return b}function r(b,e,j){if(!o(b())){e(c.J(b()));if(!q(b(),";"))j()}}function i(b){var e,j=""!=b&&a.a[n].host!=b;if(j)for(e=0;e<g.B[w];e++)j=j&&k(c.T(b),c.T(g.B[e]))==-1;return j}a.Bc=function(){if(!g.g||
""==g.g||"none"==g.g){g.g="";return 1}B();return g.pb?c.t(g.g):1};a.tc=function(b,e){if(o(b))b="-";else{e+=g.p&&"/"!=g.p?g.p:"";var j=k(b,e);b=j>=0&&j<=8?"0":("["==b.charAt(0)&&"]"==b.charAt(b[w]-1)?"-":b)}return b};a.Ia=function(b){var e="",j=a.a;e+=a.aa?a.aa.Xc():"";e+=g.qa?a.rb:"";e+=g.ta&&!o(j.title)?"&utmdt="+c.d(j.title):"";e+="&utmhid="+c.uc()+"&utmr="+a.va+"&utmp="+a.Tc(b);return e};a.Tc=function(b){var e=a.a[n];b=h!=b&&""!=b?c.d(b,true):c.d(e.pathname+unescape(e.search),true);return b};a.$c=
function(b){if(a.Q()){var e="";if(a.l!=h&&a.l.N().length>0)e+="&utme="+c.d(a.l.N());e+=a.Ia(b);x.O(e,a.H,a.a,a.f)}};a.qc=function(){var b=new c.Y(a.a,g);return b.Ha(a.f)?b.Wc():h};a._getLinkerUrl=function(b,e){var j=f(b,"#"),t=b,v=a.qc();if(v)if(e&&1>=j[w])t+="#"+v;else if(!e||1>=j[w])if(1>=j[w])t+=(q(b,"?")?"&":"?")+v;else t=j[0]+(q(b,"?")?"&":"?")+v+"#"+j[1];return t};a.Zb=function(){var b;if(a.A&&a.A[w]>=10&&!q(a.A,"=")){a.u.Uc(a.A);a.u.cd();c._gasoDomain=g.g;c._gasoCPath=g.p;b=a.a.createElement("script");
b.type="text/javascript";b.id="_gasojs";b.src="https://www.google.com/analytics/reporting/overlay_js?gaso="+a.A+"&"+c.wa();a.a.getElementsByTagName("head")[0].appendChild(b)}};a.Jc=function(){var b=a.a[c.m],e=a.ja,j=a.u,t=a.f+"",v=a.e,y=v?v.gaGlobal:h,E,F=q(b,c.r+t+"."),I=q(b,c.W+t),G=q(b,c.ma+t),C,D=[],H="",K=false,J;b=o(b)?"":b;if(g.I){E=c.Db(a.a[n]);if(g.pa&&!o(E))H=E+"&";H+=a.a[n].search;if(!o(H)&&q(H,c.r)){j.Rc(H);if(!j.Jb())j.pc();C=j.ya()}r(j.Ba,j.Wb,j.fc);r(j.Aa,j.Na,j.Qa)}if(!o(C))if(o(j.K())||
o(j.za())){C=p(H,"&",e);a.M=true}else{D=f(j.K(),".");t=D[0]}else if(F)if(!I||!G){C=p(b,";",e);a.M=true}else{C=s(b,c.r+t+".",";");D=f(s(b,c.W+t,";"),".")}else{C=[t,c.Gc(),e,e,e,1].join(".");a.M=true;K=true}C=f(C,".");if(v&&y&&y.dh==t){C[4]=y.sid?y.sid:C[4];if(K){C[3]=y.sid?y.sid:C[4];if(y.vid){J=f(y.vid,".");C[1]=J[0];C[2]=J[1]}}}j.Ub(C.join("."));D[0]=t;D[1]=D[1]?D[1]:0;D[2]=undefined!=D[2]?D[2]:g.Yc;D[3]=D[3]?D[3]:C[4];j.La(D.join("."));j.Vb(t);if(!o(j.Hc()))j.Ma(j.t());j.dc();j.Pa();j.ec()};a.Lc=
function(){x=new c.jc(g)};a._initData=function(){var b;if(!z){a.Lc();a.f=a.Bc();a.u=new c.Y(a.a,g)}if(u())a.Jc();if(!z){if(u()){a.va=a.tc(a.Ac(),a.a.domain);if(g.sa){a.aa=new c.gc(g.ua);a.aa.xc()}if(g.qa){b=new c.n(a.f,a.a,a.va,a.ja,g);a.rb=b.yc(a.u,a.M)}}a.l=new c.Z;a.Ab=new c.Z;z=true}if(!c.Hb)a.Mc()};a._visitCode=function(){a._initData();var b=s(a.a[c.m],c.r+a.f+".",";"),e=f(b,".");return e[w]<4?"":e[1]};a._cookiePathCopy=function(b){a._initData();if(a.u)a.u.bd(a.f,b)};a.Mc=function(){var b=a.a[n].hash,
e;e=b&&""!=b&&0==k(b,"#gaso=")?s(b,"gaso=","&"):s(a.a[c.m],c.Sa,";");if(e[w]>=10){a.A=e;if(a.e.addEventListener)a.e.addEventListener("load",a.Zb,false);else a.e.attachEvent("onload",a.Zb)}c.Hb=true};a.Q=function(){return a._visitCode()%10000<g.ha*100};a.Vc=function(){var b,e,j=a.a.links;if(!g.Kb){var t=a.a.domain;if("www."==l(t,0,4))t=l(t,4);g.B.push("."+t)}for(b=0;b<j[w]&&(g.Ga==-1||b<g.Ga);b++){e=j[b];if(i(e.host))if(!e.gatcOnclick){e.gatcOnclick=e.onclick?e.onclick:a.Qc;e.onclick=function(v){var y=
!this.target||this.target=="_self"||this.target=="_top"||this.target=="_parent";y=y&&!a.oc(v);a.ad(v,this,y);return y?false:(this.gatcOnclick?this.gatcOnclick(v):true)}}}};a.Qc=function(){};a._trackPageview=function(b){if(u()){a._initData();if(g.B)a.Vc();a.$c(b);a.M=false}};a._trackTrans=function(){var b=a.f,e=[],j,t,v,y;a._initData();if(a.j&&a.Q()){for(j=0;j<a.j.la[w];j++){t=a.j.la[j];c.h(e,t.S());for(v=0;v<t.ca[w];v++)c.h(e,t.ca[v].S())}for(y=0;y<e[w];y++)x.O(e[y],a.H,a.a,b,true)}};a._setTrans=
function(){var b=a.a,e,j,t,v,y=b.getElementById?b.getElementById("utmtrans"):(b.utmform&&b.utmform.utmtrans?b.utmform.utmtrans:h);a._initData();if(y&&y.value){a.j=new c.i;v=f(y.value,"UTM:");g.G=!g.G||""==g.G?"|":g.G;for(e=0;e<v[w];e++){v[e]=m(v[e]);j=f(v[e],g.G);for(t=0;t<j[w];t++)j[t]=m(j[t]);if("T"==j[0])a._addTrans(j[1],j[2],j[3],j[4],j[5],j[6],j[7],j[8]);else if("I"==j[0])a._addItem(j[1],j[2],j[3],j[4],j[5],j[6])}}};a._addTrans=function(b,e,j,t,v,y,E,F){a.j=a.j?a.j:new c.i;return a.j.nb(b,e,
j,t,v,y,E,F)};a._addItem=function(b,e,j,t,v,y){var E;a.j=a.j?a.j:new c.i;E=a.j.xa(b);if(!E)E=a._addTrans(b,"","","","","","","");E.mb(e,j,t,v,y)};a._setVar=function(b){if(b&&""!=b&&A()){a._initData();var e=new c.Y(a.a,g),j=a.f;e.Na(j+"."+c.d(b));e.Qa();if(a.Q())x.O("&utmt=var",a.H,a.a,a.f)}};a._link=function(b,e){if(g.I&&b){a._initData();a.a[n].href=a._getLinkerUrl(b,e)}};a._linkByPost=function(b,e){if(g.I&&b&&b.action){a._initData();b.action=a._getLinkerUrl(b.action,e)}};a._setXKey=function(b,e,
j){a.l._setKey(b,e,j)};a._setXValue=function(b,e,j){a.l._setValue(b,e,j)};a._getXKey=function(b,e){return a.l._getKey(b,e)};a._getXValue=function(b,e){return a.l.getValue(b,e)};a._clearXKey=function(b){a.l._clearKey(b)};a._clearXValue=function(b){a.l._clearValue(b)};a._createXObj=function(){a._initData();return new c.Z};a._sendXEvent=function(b){var e="";a._initData();if(a.Q()){e+="&utmt=event&utme="+c.d(a.l.Sc(b))+a.Ia();x.O(e,a.H,a.a,a.f,false,true)}};a._createEventTracker=function(b){a._initData();
return new c.ic(b,a)};a._trackEvent=function(b,e,j,t){var v=true,y=a.Ab;if(h!=b&&h!=e&&""!=b&&""!=e){y._clearKey(5);y._clearValue(5);v=y._setKey(5,1,b)?v:false;v=y._setKey(5,2,e)?v:false;v=h==j||y._setKey(5,3,j)?v:false;v=h==t||y._setValue(5,1,t)?v:false;if(v)a._sendXEvent(y)}else v=false;return v};a.ad=function(b,e,j){a._initData();if(a.Q()){var t=new c.Z;t._setKey(6,1,e.href);var v=j?function(){a.rc(b,e)}:undefined;x.O("&utmt=event&utme="+c.d(t.N())+a.Ia(),a.H,a.a,a.f,false,true,v)}};a.rc=function(b,
e){if(!b)b=a.e.event;var j=true;if(e.gatcOnclick)j=e.gatcOnclick(b);if(j||typeof j=="undefined")if(!e.target||e.target=="_self")a.e.location=e.href;else if(e.target=="_top")a.e.top.document.location=e.href;else if(e.target=="_parent")a.e.parent.document.location=e.href};a.oc=function(b){if(!b)b=a.e.event;var e=b.shiftKey||b.ctrlKey||b.altKey;if(!e)if(b.modifiers&&a.e.Event)e=b.modifiers&a.e.Event.CONTROL_MASK||b.modifiers&a.e.Event.SHIFT_MASK||b.modifiers&a.e.Event.ALT_MASK;return e};a._setDomainName=
function(b){g.g=b};a.dd=function(){return g.g};a._addOrganic=function(b,e){c.h(g.fa,new c.cb(b,e))};a._clearOrganic=function(){g.fa=[]};a.hd=function(){return g.fa};a._addIgnoredOrganic=function(b){c.h(g.ea,b)};a._clearIgnoredOrganic=function(){g.ea=[]};a.ed=function(){return g.ea};a._addIgnoredRef=function(b){c.h(g.ga,b)};a._clearIgnoredRef=function(){g.ga=[]};a.fd=function(){return g.ga};a._setAllowHash=function(b){g.pb=b?1:0};a._setCampaignTrack=function(b){g.qa=b?1:0};a._setClientInfo=function(b){g.sa=
b?1:0};a._getClientInfo=function(){return g.sa};a._setCookiePath=function(b){g.p=b};a._setTransactionDelim=function(b){g.G=b};a._setCookieTimeout=function(b){g.wb=b};a._setDetectFlash=function(b){g.ua=b?1:0};a._getDetectFlash=function(){return g.ua};a._setDetectTitle=function(b){g.ta=b?1:0};a._getDetectTitle=function(){return g.ta};a._setLocalGifPath=function(b){g.Da=b};a._getLocalGifPath=function(){return g.Da};a._setLocalServerMode=function(){g.D=0};a._setRemoteServerMode=function(){g.D=1};a._setLocalRemoteServerMode=
function(){g.D=2};a.gd=function(){return g.D};a._getServiceMode=function(){return g.D};a._setSampleRate=function(b){g.ha=b};a._setSessionTimeout=function(b){g.Tb=b};a._setAllowLinker=function(b){g.I=b?1:0};a._setAllowAnchor=function(b){g.pa=b?1:0};a._setCampNameKey=function(b){g.db=b};a._setCampContentKey=function(b){g.eb=b};a._setCampIdKey=function(b){g.fb=b};a._setCampMediumKey=function(b){g.gb=b};a._setCampNOKey=function(b){g.hb=b};a._setCampSourceKey=function(b){g.ib=b};a._setCampTermKey=function(b){g.jb=
b};a._setCampCIdKey=function(b){g.kb=b};a._getAccount=function(){return a.H};a._getVersion=function(){return _gat.lb};a.kd=function(b){g.B=[];if(b)g.B=b};a.md=function(b){g.Kb=b};a.ld=function(b){g.Ga=b};a._setReferrerOverride=function(b){a.yb=b};a.Ac=function(){return a.yb}};_gat._getTracker=function(d){var a=new _gat.kc(d);return a};
(function(){if(!window.Seadragon){var msg="Seadragon Progress Bar requires Seadragon Ajax!";alert(msg);throw new Error(msg);}else if(Seadragon.ProgressBar){return;}
var DEFAULTS={};DEFAULTS.barImage="images/bramus/custom1_bar.gif";DEFAULTS.boxImage="images/bramus/custom1_box.gif";var PB=function(elmt,options){this.outer=Seadragon.Utils.getElement(elmt);this.container=Seadragon.Utils.makeNeutralElement("div");this.imgBar=Seadragon.Utils.makeNeutralElement("img");this.imgBox=Seadragon.Utils.makeNeutralElement("img");this.spring=new Seadragon.Spring();this.animating=false;this.initElements(options||{});};var PBproto=PB.prototype;PBproto.initElements=function(options){var o=this.outer;var c=this.container;var iBar=this.imgBar;var iBox=this.imgBox;c.title="0%";iBar.src=options.barImage||DEFAULTS.barImage;iBox.src=options.boxImage||DEFAULTS.boxImage;var cStyle=c.style;var iBarStyle=iBar.style;var iBoxStyle=iBox.style;cStyle.width="100%";cStyle.height="100%";cStyle.position="relative";cStyle.overflow="hidden";iBarStyle.position=iBoxStyle.position="absolute";iBarStyle.height=iBoxStyle.height="100%";iBarStyle.top=iBoxStyle.top="0px";iBoxStyle.width="100%";iBoxStyle.left="0px";iBarStyle.width="200%";iBarStyle.right="0%";c.appendChild(iBar);c.appendChild(iBox);o.innerHTML="";o.appendChild(c);};PBproto.update=function(){var target=this.spring.getTarget();this.spring.update();var current=this.spring.getCurrent();var percentage=Math.round(current);this.container.title=percentage+"%";this.imgBar.style.right=-percentage+"%";this.animating=current!=target;if(this.animating){this.scheduleUpdate();}};PBproto.scheduleUpdate=function(){var pb=this;window.setTimeout(function(){pb.update();},1);};PBproto.getPercentage=function(current){if(current){return this.spring.getCurrent();}else{return this.spring.getTarget();}};PBproto.setPercentage=function(percentage,immediately){this.spring.update();percentage=Math.max(percentage,0);percentage=Math.min(percentage,100);if(immediately){this.spring.resetTo(percentage);}else{this.spring.springTo(percentage);}
if(!this.animating){this.update();}};Seadragon.ProgressBar=PB;})();(function(){if(!window.Seadragon||!Seadragon.ComboViewer){throw new Error("missing Seadragon combo viewer component");}else if(typeof Seadragon.tinydziEmbed=="function"){return;}
Seadragon.Strings.setString("TinyDZI.About.Header","Welcome to Seadragon.");Seadragon.Strings.setString("TinyDZI.About.Description","Use your mouse and scroll wheel to pan and zoom around the image. "+"View, share or create your own at:");Seadragon.Strings.setString("TinyDZI.About.ReturnLink","http://seadragon.com/view/{0}");Seadragon.Strings.setString("TinyDZI.About.PrivacyLinkText","Privacy");Seadragon.Strings.setString("TinyDZI.About.PrivacyLinkUrl","http://go.microsoft.com/fwlink/?LinkID=74170");Seadragon.Strings.setString("TinyDZI.About.FeedbackLinkText","Feedback");Seadragon.Strings.setString("TinyDZI.About.FeedbackLinkUrl","http://getsatisfaction.com/livelabs/products/livelabs_seadragoncom/");Seadragon.Strings.setString("TinyDZI.Errors.NoId","Sorry, we can't find this image. Please check the URL.");Seadragon.Strings.setString("TinyDZI.Errors.None","Sorry, we can't find this image. Please check the URL.");Seadragon.Strings.setString("TinyDZI.Errors.Internal","Sorry, an unexpected error occurred.");Seadragon.Strings.setString("TinyDZI.Errors.Abuse","This image has been blocked for violating the Seadragon.com Code of Conduct.");Seadragon.Strings.setString("TinyDZI.Errors.Type","We couldn't find an image at that URL. "+"Please make sure the URL points directly to an image file and not to a page that contains one.");Seadragon.Strings.setString("TinyDZI.Errors.Http","We got a {0} error at the URL you gave us.");Seadragon.Strings.setString("TinyDZI.Errors.Network","We couldn't reach the URL you gave us.");Seadragon.Strings.setString("TinyDZI.Errors.SiteDownMaintenance","Sorry, we're down for maintenance. Please check back later.");Seadragon.Strings.setString("TinyDZI.Errors.SiteDownOverload","Sorry, we're experiencing heavy load. Please check back later.");Seadragon.Strings.setString("TinyDZI.Errors.Unknown","Sorry, an unknown error occurred.");Seadragon.Strings.setString("TinyDZI.Retry.ChangeText","Change the URL");Seadragon.Strings.setString("TinyDZI.Retry.EnterText","Change the URL");Seadragon.Strings.setString("TinyDZI.Retry.RetryText","try again");Seadragon.Strings.setString("TinyDZI.Retry.Structure"," {0} or {1}?");Seadragon.Config.tinydziRoot="http://seadragon.com/";var HEAD=document.getElementsByTagName("head")[0];var CLASS_NAME="__seadragon";var URL_STATUS="server/status.ashx";var URL_IMAGE_INFO="server/imageinfo.ashx";var URL_RETRY="server/retry.ashx";var ARG_ID="id";var ARG_FORMAT="format";var ARG_CALLBACK="callback";var PB_IMAGE_PATH="../progressbars/";var PB_BOX_IMAGE="percentImage-black.png";var PB_BAR_IMAGE="percentImage_back5.png";var JSON_ID="Id";var JSON_URL="Url";var JSON_STAGE="Stage";var JSON_STAGE_TEXT="StageText";var JSON_PROGRESS="Progress";var JSON_ERROR_DETAILS="ErrorDetails";var JSON_SITE_DOWN="SiteDown";var JSON_SOURCE_URL="Source";var JSON_TITLE="Title";var JSON_ATTRIBUTION_TEXT="AttributionText";var JSON_ATTRIBUTION_LINK="AttributionLink";var JSON_IMAGE_WIDTH="Width";var JSON_IMAGE_HEIGHT="Height";var JSON_TILE_SIZE="TileSize";var JSON_TILE_OVERLAP="TileOverlap";var JSON_TILE_FORMAT="TileFormat";var SITE_DOWN_MAINTENANCE=1;var SITE_DOWN_OVERLOAD=2;var STAGE_ERROR_INTERNAL=-100;var STAGE_ERROR_ABUSE=-90;var STAGE_ERROR_TYPE=-20;var STAGE_ERROR_HTTP=-15;var STAGE_ERROR_NETWORK=-10;var STAGE_ERROR_UNKNOWN=-1;var STAGE_NONE=0;var STAGE_QUEUED=10;var STAGE_BEGINNING=20;var STAGE_DOWNLOADING=40;var STAGE_CONVERTING=70;var STAGE_FINALIZING=90;var STAGE_READY=100;var nextId=0;function makeHttpGetUrl(url,params){var s=[url];var hasQ=url.indexOf('?')>=0;for(var key in params){if(params.hasOwnProperty(key)){var value=params[key];if(hasQ){s.push('&');}else{s.push('?');hasQ=true;}
s.push(key);s.push('=');s.push(value);}}
return s.join('');}
function makeJsonpRequest(url){var script=document.createElement("script");script.type="text/javascript";script.src=url;HEAD.appendChild(script);return script;}
function makeRandomCallback(actualCallback){var name="_jsonCallback"+
Math.round(Math.random()*100000000).toString();window[name]=function(){actualCallback.apply(this,arguments);window[name]=undefined;};return name;}
function makeContainer(width,height){var html=[];var id=CLASS_NAME+(++nextId);html.push('<div id="');html.push(id);html.push('" class="');html.push(CLASS_NAME);html.push('" style="width: ');html.push(width||"auto");html.push('; height: ');html.push(height||"400px");html.push('; border: 1px solid black; background: black; color: white; ');html.push('margin: 0px; padding: 0px;"></div>');document.write(html.join(''));return document.getElementById(id);}
function setTextCss(textStyle){textStyle.color="white";textStyle.fontFamily='sans-serif';textStyle.fontSize="16px";textStyle.fontSizeAdjust="none";textStyle.fontStyle="normal";textStyle.fontStretch="normal";textStyle.fontVariant="normal";textStyle.fontWeight="normal";textStyle.lineHeight="1em";textStyle.marginTop="0.25em";textStyle.marginBottom="0.25em";textStyle.textAlign="center";textStyle.textDecoration="none";}
function getTilesUrl(dziUrl){var urlParts=dziUrl.split('/');var filename=urlParts[urlParts.length-1];var lastDot=filename.lastIndexOf('.');if(lastDot>-1){urlParts[urlParts.length-1]=filename.slice(0,lastDot);}
return urlParts.join('/')+"_files/";}
function isErrorStage(stage){return stage<0;}
var Worker=function(width,height,contentId){this.contentId=contentId;this.sourceUrl=null;this.container=makeContainer(width,height);this.containerInner=null;this.progressBar=null;this.progressTextElmt=null;this.attributionText=null;this.attributionLink=null;};Worker.prototype.initialize=function(statusJson,imageInfoJson){var haveStatus=!!statusJson&&!!statusJson[JSON_STAGE_TEXT];var statusReady=haveStatus&&!!statusJson[JSON_URL]&&statusJson[JSON_STAGE]==STAGE_READY;var haveImageInfo=!!imageInfoJson&&!!imageInfoJson[JSON_TILE_FORMAT];this.attributionText=statusJson[JSON_ATTRIBUTION_TEXT];this.attributionLink=statusJson[JSON_ATTRIBUTION_LINK];this.sourceUrl=statusJson[JSON_SOURCE_URL];if(statusReady&&haveImageInfo){this.handleImageInfo(statusJson[JSON_URL],imageInfoJson);return;}
this.containerInner=Seadragon.Utils.makeNeutralElement("span");this.container.appendChild(Seadragon.Utils.makeCenteredNode(this.containerInner));if(!this.contentId){this.switchToError(Seadragon.Strings.getString("TinyDZI.Errors.NoId"),false);return;}
if(statusReady){this.switchToLoading();this.fetchImageInfo(statusJson[JSON_URL]);return;}
this.switchToProgress();if(haveStatus){this.handleStatusResponse(statusJson);}else{this.scheduleFetchStatus();}};Worker.prototype.fetchImageInfo=function(dziUrl){var script=null;var worker=this;var tempCallbackName=makeRandomCallback(function(imageInfoJson){worker.handleImageInfo(dziUrl,imageInfoJson);script.parentNode.removeChild(script);});var url=Seadragon.Config.tinydziRoot+URL_IMAGE_INFO;var params={};params[ARG_ID]=this.contentId;params[ARG_FORMAT]="json";params[ARG_CALLBACK]=tempCallbackName;params["__rand__"]=Math.random();script=makeJsonpRequest(makeHttpGetUrl(url,params));};Worker.prototype.fetchStatus=function(retrying){var script=null;var worker=this;var tempCallbackName=makeRandomCallback(function(statusJson){worker.handleStatusResponse(statusJson,retrying);script.parentNode.removeChild(script);});var url=Seadragon.Config.tinydziRoot+
(retrying?URL_RETRY:URL_STATUS);var params={};params[ARG_ID]=this.contentId;params[ARG_FORMAT]="json";params[ARG_CALLBACK]=tempCallbackName;params["__rand__"]=Math.random();script=makeJsonpRequest(makeHttpGetUrl(url,params));};Worker.prototype.scheduleFetchStatus=function(){var worker=this;window.setTimeout(function(){worker.fetchStatus();},1000);};Worker.prototype.handleImageInfo=function(dziUrl,imageInfoJson){this.switchToViewer(dziUrl,new Seadragon.DziTileSource(imageInfoJson[JSON_IMAGE_WIDTH],imageInfoJson[JSON_IMAGE_HEIGHT],imageInfoJson[JSON_TILE_SIZE],imageInfoJson[JSON_TILE_OVERLAP],getTilesUrl(dziUrl),imageInfoJson[JSON_TILE_FORMAT]));};Worker.prototype.handleStatusResponse=function(statusJson,retrying){var stage=statusJson[JSON_STAGE];var siteDownCode=statusJson[JSON_SITE_DOWN];var errorDetails=statusJson[JSON_ERROR_DETAILS];if(retrying&&siteDownCode&&isErrorStage(stage)){var stringName=(siteDownCode==SITE_DOWN_OVERLOAD)?"TinyDZI.Errors.SiteDownOverload":"TinyDZI.Errors.SiteDownMaintenance";this.switchToError(Seadragon.Strings.getString(stringName),false);return;}
var allowRetry=!siteDownCode;this.sourceUrl=statusJson[JSON_SOURCE_URL];switch(stage){case STAGE_ERROR_INTERNAL:var msg=Seadragon.Strings.getString("TinyDZI.Errors.Internal",errorDetails);this.switchToError(msg,allowRetry);return;case STAGE_ERROR_ABUSE:var msg=Seadragon.Strings.getString("TinyDZI.Errors.Abuse",errorDetails);this.switchToError(msg,false);return;case STAGE_ERROR_TYPE:var msg=Seadragon.Strings.getString("TinyDZI.Errors.Type",errorDetails);this.switchToError(msg,allowRetry);return;case STAGE_ERROR_HTTP:var msg=Seadragon.Strings.getString("TinyDZI.Errors.Http",errorDetails);this.switchToError(msg,allowRetry);return;case STAGE_ERROR_NETWORK:var msg=Seadragon.Strings.getString("TinyDZI.Errors.Network",errorDetails);this.switchToError(msg,allowRetry);return;case STAGE_ERROR_UNKNOWN:var msg=Seadragon.Strings.getString("TinyDZI.Errors.Unknown",errorDetails);this.switchToError(msg,allowRetry);return;case STAGE_NONE:var msg=Seadragon.Strings.getString("TinyDZI.Errors.None",errorDetails);this.switchToError(msg,false);return;case STAGE_READY:this.progressBar.setPercentage(100);this.progressTextElmt.innerHTML="Loading...";this.attributionText=statusJson[JSON_ATTRIBUTION_TEXT];this.attributionLink=statusJson[JSON_ATTRIBUTION_LINK];this.fetchImageInfo(statusJson[JSON_URL]);return;}
if(isErrorStage(stage)){var msg=Seadragon.Strings.getString("TinyDZI.Errors.Unknown",errorDetails);this.switchToError(msg,allowRetry);return;}
this.progressTextElmt.innerHTML=statusJson[JSON_STAGE_TEXT]+"...";this.progressBar.setPercentage(Math.round(100*(statusJson[JSON_PROGRESS]||0)));this.scheduleFetchStatus();};Worker.prototype.switchToError=function(errorMsg,allowRetry){var errorElmt=Seadragon.Utils.makeNeutralElement("div");var errorElmtStyle=errorElmt.style;setTextCss(errorElmtStyle);errorElmtStyle.color="#f84";errorElmtStyle.margin="0em 2em";errorElmt.appendChild(document.createTextNode(errorMsg));this.containerInner.innerHTML="";this.containerInner.appendChild(errorElmt);if(!allowRetry){return;}
var createLink=Seadragon.Utils.makeNeutralElement("a");var retryLink=Seadragon.Utils.makeNeutralElement("a");var root=Seadragon.Config.tinydziRoot;if(this.sourceUrl){createLink.href=[root,"create/?url=",window.encodeURIComponent(this.sourceUrl)].join('');createLink.appendChild(document.createTextNode(Seadragon.Strings.getString("TinyDZI.Retry.ChangeText")));}else{createLink.href=[root,"create/"].join('');createLink.appendChild(document.createTextNode(Seadragon.Strings.getString("TinyDZI.Retry.EnterText")));}
retryLink.href=[root,"view/",this.contentId].join('');retryLink.appendChild(document.createTextNode(Seadragon.Strings.getString("TinyDZI.Retry.RetryText")));var createLinkStyle=createLink.style;var retryLinkStyle=retryLink.style;setTextCss(createLinkStyle);setTextCss(retryLinkStyle);createLinkStyle.color=retryLinkStyle.color="#ff0";createLinkStyle.textDecoration=retryLinkStyle.textDecoration="none";createLinkStyle.whiteSpace=retryLinkStyle.whiteSpace="nowrap";errorElmt.appendChild(document.createTextNode(" "));errorElmt.appendChild(createLink)
errorElmt.appendChild(document.createTextNode(" or "));errorElmt.appendChild(retryLink);errorElmt.appendChild(document.createTextNode("?"));var worker=this;Seadragon.Utils.addEvent(retryLink,"click",function(event){Seadragon.Utils.cancelEvent(event);worker.switchToProgress();worker.fetchStatus(true);});};Worker.prototype.switchToLoading=function(){var loadingSpan=Seadragon.Utils.makeNeutralElement("span");var loadingSpanStyle=loadingSpan.style;setTextCss(loadingSpanStyle);loadingSpan.appendChild(document.createTextNode("Loading..."));this.containerInner.innerHTML="";this.containerInner.appendChild(loadingSpan);};Worker.prototype.switchToProgress=function(){var pBarDiv=Seadragon.Utils.makeNeutralElement("div");var pTextDiv=Seadragon.Utils.makeNeutralElement("div");var pBarStyle=pBarDiv.style;var pTextStyle=pTextDiv.style;pBarStyle.width="250px";pBarStyle.height="15px";pBarStyle.maxWidth="50%";pBarStyle.margin="auto";pBarStyle.paddingBottom="5px";pTextDiv.innerHTML="&nbsp;";setTextCss(pTextStyle);this.progressBar=new Seadragon.ProgressBar(pBarDiv,{barImage:Seadragon.Config.imagePath+PB_IMAGE_PATH+PB_BAR_IMAGE,boxImage:Seadragon.Config.imagePath+PB_IMAGE_PATH+PB_BOX_IMAGE});this.progressTextElmt=pTextDiv;this.containerInner.innerHTML="";this.containerInner.appendChild(pBarDiv);this.containerInner.appendChild(pTextDiv);};Worker.prototype.switchToViewer=function(dziUrl,dziTileSource){var id=this.contentId;var attrText=this.attributionText;var attrLink=this.attributionLink||this.sourceUrl;Seadragon.ComboViewer.createAndOpenDziTileSource(this.container,dziUrl,dziTileSource,function(viewer){viewer.setAboutHeader(Seadragon.Strings.getString("TinyDZI.About.Header",id));viewer.setAboutDescription(Seadragon.Strings.getString("TinyDZI.About.Description",id));viewer.setAboutMainLink(Seadragon.Strings.getString("TinyDZI.About.ReturnLink",id));viewer.addAboutFooterLink(Seadragon.Strings.getString("TinyDZI.About.PrivacyLinkUrl",id),Seadragon.Strings.getString("TinyDZI.About.PrivacyLinkText",id));viewer.addAboutFooterLink(Seadragon.Strings.getString("TinyDZI.About.FeedbackLinkUrl",id),Seadragon.Strings.getString("TinyDZI.About.FeedbackLinkText",id));if(attrText){viewer.setLogoCaption(attrText,attrLink);}
var callback=Seadragon.tinydziEmbed.onViewerCreate;if(typeof callback==="function"){callback(id,viewer);}
viewer.onFirstInteraction=function(viewer){var callback=Seadragon.tinydziEmbed.onFirstInteraction;if(typeof callback==="function"){callback(id,viewer);}};viewer.onResize=function(viewer){var callback=Seadragon.tinydziEmbed.onViewerResize;if(typeof callback==="function"){callback(id,viewer);}};});};Seadragon.tinydziEmbed=function(width,height,contentId,statusJson,imageInfoJson){new Worker(width,height,contentId).initialize(statusJson,imageInfoJson);};Seadragon.tinydziEmbed.onViewerCreate=null;Seadragon.tinydziEmbed.onFirstInteraction=null;Seadragon.tinydziEmbed.onViewerResize=null;})();
(function() {

var BASE = "http://seadragon.com/";
var PUBLIC = "http://seadragon.com/";

Seadragon.Config.imagePath = BASE + "images/seajax/";
Seadragon.Config.xapPath = BASE + "scripts/";
Seadragon.Config.tinydziRoot = BASE;

Seadragon.Strings.setString("About.LogoUrl", PUBLIC);
Seadragon.Strings.setString("About.MainUrl", PUBLIC + "create/");
Seadragon.Strings.setString("TinyDZI.About.ReturnLink", PUBLIC + "view/{0}");

try {
Seadragon.Tracker = Seadragon.Tracker || _gat._getTracker("UA-5779771-2");
Seadragon.Tracker._setReferrerOverride(window.location.href);
} catch(e) {}

Seadragon.tinydziEmbed.onViewerCreate = function (id, viewer) {
    if (!Seadragon.Tracker) {
        return;
    }

    // track whether this embed is silverlight or ajax
    Seadragon.Tracker._trackPageview("/tracking/embed/" + id + "/viewer-is-" +
        (viewer.isSilverlight ? "silverlight" : "seajax"));
};

Seadragon.tinydziEmbed.onFirstInteraction = function (id, viewer) {
    if (!Seadragon.Tracker) {
        return;
    }

    // track that first interaction occurred!
    Seadragon.Tracker._trackPageview("/tracking/embed/" + id +
        "/first-user-interaction");
};

})();

Seadragon.tinydziEmbed("auto", "400px", "dhz", {"AttributionLink":null,"AttributionText":null,"ErrorDetails":"","Id":"dhz","Progress":1,"SiteDown":1,"Source":"http:\/\/windows7.irishbusinesslink.com\/bigsea.jpg","Stage":100,"StageText":"Ready","Title":null,"Type":1,"TypeText":"Image","Url":"http:\/\/cache.seadragon.com\/content\/dhz.dzi"}, {"Height":1080,"Id":"dhz","TileFormat":"jpg","TileOverlap":1,"TileSize":254,"Width":1920});
try { Seadragon.Tracker._trackPageview("/embed/dhz.js?width=auto&height=400px"); } catch(e) {}
