if(!dojo._hasResource["dojo.back"]){dojo._hasResource["dojo.back"]=true;dojo.provide("dojo.back");(function(){var m=dojo.back;function l(){var u=window.location.hash;if(u.charAt(0)=="#"){u=u.substring(1)}return dojo.isMozilla?u:decodeURIComponent(u)}function g(u){if(!u){u=""}window.location.hash=encodeURIComponent(u);r=history.length}if(dojo.exists("tests.back-hash")){m.getHash=l;m.setHash=g}var p=(typeof(window)!=="undefined")?window.location.href:"";var c=(typeof(window)!=="undefined")?l():"";var o=null;var n=null;var b=null;var f=null;var j=[];var t=[];var a=false;var d=false;var r;function i(){var v=t.pop();if(!v){return}var u=t[t.length-1];if(!u&&t.length==0){u=o}if(u){if(u.kwArgs.back){u.kwArgs.back()}else{if(u.kwArgs.backButton){u.kwArgs.backButton()}else{if(u.kwArgs.handle){u.kwArgs.handle("back")}}}}j.push(v)}m.goBack=i;function s(){var u=j.pop();if(!u){return}if(u.kwArgs.forward){u.kwArgs.forward()}else{if(u.kwArgs.forwardButton){u.kwArgs.forwardButton()}else{if(u.kwArgs.handle){u.kwArgs.handle("forward")}}}t.push(u)}m.goForward=s;function k(v,u,w){return{url:v,kwArgs:u,urlHash:w}}function e(v){var u=v.split("?");if(u.length<2){return null}else{return u[1]}}function q(){var u=(dojo.config.dojoIframeHistoryUrl||dojo.moduleUrl("dojo","resources/iframe_history.html"))+"?"+(new Date()).getTime();a=true;if(f){dojo.isWebKit?f.location=u:window.frames[f.name].location=u}else{}return u}function h(){if(!d){var u=t.length;var w=l();if((w===c||window.location.href==p)&&(u==1)){i();return}if(j.length>0){if(j[j.length-1].urlHash===w){s();return}}if((u>=2)&&(t[u-2])){if(t[u-2].urlHash===w){i();return}}if(dojo.isSafari&&dojo.isSafari<3){var v=history.length;if(v>r){s()}else{if(v<r){i()}}r=v}}}m.init=function(){if(dojo.byId("dj_history")){return}var u=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="'+u+'"></iframe>')};m.setInitialState=function(u){o=k(p,u,c)};m.addToHistory=function(v){j=[];var y=null;var u=null;if(!f){if(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")}f=window.frames.dj_history}if(!b){b=dojo.create("a",{style:{display:"none"}},dojo.body())}if(v.changeUrl){y=""+((v.changeUrl!==true)?v.changeUrl:(new Date()).getTime());if(t.length==0&&o.urlHash==y){o=k(u,v,y);return}else{if(t.length>0&&t[t.length-1].urlHash==y){t[t.length-1]=k(u,v,y);return}}d=true;setTimeout(function(){g(y);d=false},1);b.href=y;if(dojo.isIE){u=q();var A=v.back||v.backButton||v.handle;var z=function(B){if(l()!=""){setTimeout(function(){g(y)},1)}A.apply(this,[B])};if(v.back){v.back=z}else{if(v.backButton){v.backButton=z}else{if(v.handle){v.handle=z}}}var x=v.forward||v.forwardButton||v.handle;var w=function(B){if(l()!=""){g(y)}if(x){x.apply(this,[B])}};if(v.forward){v.forward=w}else{if(v.forwardButton){v.forwardButton=w}else{if(v.handle){v.handle=w}}}}else{if(!dojo.isIE){if(!n){n=setInterval(h,200)}}}}else{u=q()}t.push(k(u,v,y))};m._iframeLoaded=function(u,w){var v=e(w.href);if(v==null){if(t.length==1){i()}return}if(a){a=false;return}if(t.length>=2&&v==e(t[t.length-2].url)){i()}else{if(j.length>0&&v==e(j[j.length-1].url)){s()}}}})()};
