if(!dojo._hasResource["dojo.back"]){dojo._hasResource["dojo.back"]=true;dojo.provide("dojo.back");(function(){function i(){var a=window.location.hash;if(a.charAt(0)=="#")a=a.substring(1);return dojo.isMozilla?a:decodeURIComponent(a)}function k(a){a||(a="");window.location.hash=encodeURIComponent(a);l=history.length}function h(){var a=c.pop();if(a){var b=c[c.length-1];if(!b&&c.length==0)b=m;if(b)if(b.kwArgs.back)b.kwArgs.back();else if(b.kwArgs.backButton)b.kwArgs.backButton();else b.kwArgs.handle&&
b.kwArgs.handle("back");d.push(a)}}function n(){var a=d.pop();if(a){if(a.kwArgs.forward)a.kwArgs.forward();else if(a.kwArgs.forwardButton)a.kwArgs.forwardButton();else a.kwArgs.handle&&a.kwArgs.handle("forward");c.push(a)}}function o(a,b,f){return{url:a,kwArgs:b,urlHash:f}}function p(a){a=a.split("?");return a.length<2?null:a[1]}function u(){var a=(dojo.config.dojoIframeHistoryUrl||dojo.moduleUrl("dojo","resources/iframe_history.html"))+"?"+(new Date).getTime();q=true;if(j)dojo.isWebKit?(j.location=
a):(window.frames[j.name].location=a);return a}function z(){if(!r){var a=c.length,b=i();if((b===v||window.location.href==w)&&a==1)h();else{if(d.length>0)if(d[d.length-1].urlHash===b){n();return}if(a>=2&&c[a-2])if(c[a-2].urlHash===b){h();return}if(dojo.isSafari&&dojo.isSafari<3){a=history.length;if(a>l)n();else a<l&&h();l=a}}}}var e=dojo.back;if(dojo.exists("tests.back-hash")){e.getHash=i;e.setHash=k}var w=typeof window!=="undefined"?window.location.href:"",v=typeof window!=="undefined"?i():"",m=null,
x=null,s=null,j=null,d=[],c=[],q=false,r=false,l;e.goBack=h;e.goForward=n;e.init=function(){if(!dojo.byId("dj_history")){var a=dojo.config.dojoIframeHistoryUrl||dojo.moduleUrl("dojo","resources/iframe_history.html");document.write('<iframe style="border:0;width:1px;height:1px;position:absolute;visibility:hidden;bottom:0;right:0;" name="dj_history" id="dj_history" src="'+a+'"></iframe>')}};e.setInitialState=function(a){m=o(w,a,v)};e.addToHistory=function(a){d=[];var b=null,f=null;if(!j){dojo.config.useXDomain&&
!dojo.config.dojoIframeHistoryUrl&&console.warn("dojo.back: When using cross-domain Dojo builds, please save iframe_history.html to your domain and set djConfig.dojoIframeHistoryUrl to the path on your domain to iframe_history.html");j=window.frames.dj_history}s||(s=dojo.create("a",{style:{display:"none"}},dojo.body()));if(a.changeUrl){b=""+(a.changeUrl!==true?a.changeUrl:(new Date).getTime());if(c.length==0&&m.urlHash==b){m=o(f,a,b);return}else if(c.length>0&&c[c.length-1].urlHash==b){c[c.length-
1]=o(f,a,b);return}r=true;setTimeout(function(){k(b);r=false},1);s.href=b;if(dojo.isIE){f=u();var A=a.back||a.backButton||a.handle,g=function(t){i()!=""&&setTimeout(function(){k(b)},1);A.apply(this,[t])};if(a.back)a.back=g;else if(a.backButton)a.backButton=g;else if(a.handle)a.handle=g;var y=a.forward||a.forwardButton||a.handle;g=function(t){i()!=""&&k(b);y&&y.apply(this,[t])};if(a.forward)a.forward=g;else if(a.forwardButton)a.forwardButton=g;else if(a.handle)a.handle=g}else dojo.isIE||x||(x=setInterval(z,
200))}else f=u();c.push(o(f,a,b))};e._iframeLoaded=function(a,b){a=p(b.href);if(a==null)c.length==1&&h();else if(q)q=false;else if(c.length>=2&&a==p(c[c.length-2].url))h();else d.length>0&&a==p(d[d.length-1].url)&&n()}})()};
