//>>builtdefine("./_base/config ./_base/lang ./sniff ./dom ./dom-construct ./_base/window require".split(" "),function(k,C,q,D,E,F,x){functionf(){vara=c.pop();if(a){varb=c[c.length-1];b||0!=c.length||(b=m);b&&(b.kwArgs.back?b.kwArgs.back():b.kwArgs.backButton?b.kwArgs.backButton():b.kwArgs.handle&&b.kwArgs.handle("back"));e.push(a)}}functionh(){vara=e.pop();a&&(a.kwArgs.forward?a.kwArgs.forward():a.kwArgs.forwardButton?a.kwArgs.forwardButton():a.kwArgs.handle&&a.kwArgs.handle("forward"),c.push(a))}functionn(a,b,c){return{url:a,kwArgs:b,urlHash:c}}functionr(a){a=a.split("?");return2>a.length?null:a[1]}functiony(){vara=(k.dojoIframeHistoryUrl||x.toUrl("./resources/iframe_history.html"))+"?"+(newDate).getTime();t=!0;l&&(q("webkit")?l.location=a:window.frames[l.name].location=a);returna}functionG(){if(!u){vara=c.length,b=p();b!==z&&window.location.href!=A||1!=a?0<e.length&&e[e.length-1].urlHash===b?h():2<=a&&c[a-2]&&c[a-2].urlHash===b&&f():f()}}vard={};C.setObject("dojo.back",d);varp=d.getHash=function(){vara=window.location.hash;"#"==a.charAt(0)&&(a=a.substring(1));returna},v=d.setHash=function(a){a||(a="");window.location.hash=encodeURIComponent(a)},A="undefined"!==typeofwindow?window.location.href:"",z="undefined"!==typeofwindow?p():"",m=null,B=null,w=null,l=null,e=[],c=[],t=!1,u=!1;d.goBack=f;d.goForward=h;d.init=function(){if(!D.byId("dj_history")){vara=k.dojoIframeHistoryUrl||x.toUrl("./resources/iframe_history.html");k.afterOnLoad?console.error("dojo/back::init() must be called before the DOM has loaded. Include dojo/back in a build layer."):document.write('\x3ciframe style\x3d"border:0;width:1px;height:1px;position:absolute;visibility:hidden;bottom:0;right:0;" name\x3d"dj_history" id\x3d"dj_history" src\x3d"'+a+'"\x3e\x3c/iframe\x3e')}};d.setInitialState=function(a){m=n(A,a,z)};d.addToHistory=function(a){e=[];varb=null,d=null;l||(k.useXDomain&&!k.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"),l=window.frames.dj_history);w||(w=E.create("a",{style:{display:"none"}},F.body()));if(a.changeUrl){b=""+(!0!==a.changeUrl?a.changeUrl:(newDate).getTime());if(0==c.length&&m.urlHash==b){m=n(d,a,b);return}if(0<c.length&&c[c.length-1].urlHash==b){c[c.length-1]=n(d,a,b);return}u=!0;setTimeout(function(){v(b);u=!1},1);w.href=b;if(q("ie")){vard=y(),f=a.back||a.backButton||a.handle,g=function(a){""!=p()&&setTimeout(function(){v(b)},1);f.apply(this,[a])};a.back?a.back=g:a.backButton?a.backButton=g:a.handle&&(a.handle=g);varh=a.forward||a.forwardButton||a.handle,g=function(a){""!=p()&&v(b);h&&h.apply(this,[a])};a.forward?a.forward=g:a.forwardButton?a.forwardButton=g:a.handle&&(a.handle=g)}elseq("ie")||B||(B=setInterval(G,200))}elsed=y();c.push(n(d,a,b))};d._iframeLoaded=function(a,b){a=r(b.href);null==a?1==c.length&&f():t?t=!1:2<=c.length&&a==r(c[c.length-2].url)?f():0<e.length&&a==r(e[e.length-1].url)&&h()};returnd});