/*
	Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.hash"]){dojo._hasResource["dojo.hash"]=true;dojo.provide("dojo.hash");(function(){dojo.hash=function(_1,_2){if(!arguments.length){return _3();}if(_1.charAt(0)=="#"){_1=_1.substring(1);}if(_2){_4(_1);}else{location.href="#"+_1;}return _1;};var _5=null,_6=null,_7=dojo.config.hashPollFrequency||100;function _3(){var h=location.href,i=h.indexOf("#");return (i>=0)?h.substring(i+1):"";};function _8(){dojo.publish("/dojo/hashchange",[_3()]);};function _9(){if(_3()===_5){return;}_5=_3();_8();};function _4(_a){if(_6){if(_6.isTransitioning()){setTimeout(dojo.hitch(null,_4,_a),_7);return;}var _b=_6.iframe.location.href;var _c=_b.indexOf("?");_6.iframe.location.replace(_b.substring(0,_c)+"?"+_a);return;}location.replace("#"+_a);_9();};function _d(){var _e=document.createElement("iframe"),_f="dojo-hash-iframe",_10=dojo.config.dojoBlankHtmlUrl||dojo.moduleUrl("dojo","resources/blank.html");_e.id=_f;_e.src=_10+"?"+_3();_e.style.display="none";document.body.appendChild(_e);this.iframe=dojo.global[_f];var _11,_12,_13,_14,_15,_16=this.iframe.location,_17=dojo.global.location;function _18(){_5=_17.hash;_11=_15?_5:_16.search;_12=false;_13=null;};this.isTransitioning=function(){return _12;};this.pollLocation=function(){if(!_15){try{_16.search;if(document.title!=_14){_14=this.iframe.document.title=document.title;}}catch(e){_15=true;console.error("dojo.hash: Error adding history entry. Server unreachable.");}}if(_12&&_5===_17.hash){if(_15||_16.search===_13){_18();_8();}else{setTimeout(dojo.hitch(this,this.pollLocation),0);return;}}else{if(_5===_17.hash&&(_15||_11===_16.search)){}else{if(_5!==_17.hash){_5=_17.hash;_12=true;_13="?"+_3();_e.src=_10+_13;_15=false;setTimeout(dojo.hitch(this,this.pollLocation),0);return;}else{if(!_15){_17.href="#"+_16.search.substring(1);_18();_8();}}}}setTimeout(dojo.hitch(this,this.pollLocation),_7);};_18();setTimeout(dojo.hitch(this,this.pollLocation),_7);};dojo.addOnLoad(function(){if("onhashchange" in dojo.global&&(!dojo.isIE||(dojo.isIE>=8&&document.compatMode!="BackCompat"))){dojo.connect(dojo.global,"onhashchange",_8);}else{if(document.addEventListener){_5=_3();setInterval(_9,_7);}else{if(document.attachEvent){_6=new _d();}}}});})();}
