if (typeof window.addEventListener != 'undefined') {
	window.addEventListener('load', initialize, false);
} else if (typeof document.addEventListener != 'undefined') {
	document.addEventListener('load', initialize, false);
} else if (typeof window.attachEvent != 'undefined') {
	window.attachEvent('onload', initialize);
}

/*instantiate our history object*/
window.dhtmlHistory.create({
	debugMode: false 
});

window.historyIndex = 1;
window.isHistoryChanged = false;

var fullRequestUri = "";

function initialize() {
	// initialize the DHTML History
	// framework
	dhtmlHistory.initialize();
	// subscribe to DHTML history change
	// events
	dhtmlHistory.addListener(historyChange);
	
//	bea.wlp.disc.xie.AsyncRequestOverlay.setEnabled(false);
	bea.wlp.disc.xie.Events.OnPrepareUpdate.addListener(showProgessBar);
	bea.wlp.disc.xie.Events.OnCompleteUpdate.addListener(hideProgressBar);
}
            
      /** Our callback to receive history change
          events. */
      function historyChange(newLocation, 
                             historyData) {
			var s = window.location.href;
			if( newLocation == "" || historyData == null) {
				if (s.substring(s.length-1).charAt(0) == "#"){
					s = s.substring(0, s.length - 1);
					window.location.href = s;
				}
				return;
			}
	        window.isHistoryChanged = true;
	        eval(historyData);
      }
      
      
      function showProgessBar(payLoad) {
   		fullRequestUri = bea.wlp.disc.xie._Service.getFullRequestUri();
		window.status = "Opening page " + fullRequestUri;
      }
      
      function hideProgressBar(payLoad) {
		if( !window.isHistoryChanged ) {
	   		dhtmlHistory.add(dhtmlHistory.HISTORY_BOOKMARK_LABEL + window.historyIndex++, fullRequestUri);
	   		window.location.hash = "#";
	   	}
	   	window.isHistoryChanged = false;
		window.status = "Done";
      }
