var ajaxobjs = new Object();

	 function dhtmlhist_initialize() {
	        var hash=window.location.hash;
		// initialize our DHTML history
		dhtmlHistory.initialize();
		// subscribe to DHTML history change
		// events
		dhtmlHistory.addListener(historyChange);
		
		// if this is the first time we have
		// loaded the page...
		if (dhtmlHistory.isFirstLoad()) {
		    //alert('first load');
		    //Wegen IE! Beim Zurueckkommen aus große Bildansicht macht IE ein FirstLoad statt eines historyChange
		    if(dhtmlHistory.isInternetExplorer()==true){
				//Enforce historyChange, use hash values
				//alert('sdf' + hash);
				if(hash)
				    //workaround for old bookmarks and IE bookmarks
				    if (hash != '#page:1' && hash != '#')
					historyChange(hash.substr(1,hash.length), hash.substr(1,hash.length));
		    }
                }
	 }
	 
	 /** Our callback to receive history change events. */
	 function historyChange(newLocation, historyData) {
		//alert('histchange');
		var historyMsg = historyData;
	        // document.location.href=historyData;
		if (newLocation == "complexObject") {
		   historyMsg =JSON.stringify(historyData);               
		}
		
		//alert('do historyChange');
		//Lade erneut AjaxUpdater		
		displayUpdateFromAjax(historyData);
                
		/* Gibt history aus
		 * Für Entwicklungszwecke
		debugMsg(
			  "<b>A history change has "
			  + "occured:</b> "
			  + "newLocation="+newLocation
			  + ", historyData="+historyMsg);
			 */
	 }
	 
	 function debugMsg(msg,newLocation) {
		var debugMsg = document.getElementById("debugMsg");
		if(debugMsg) debugMsg.innerHTML = msg;
	 }

function dhtmlhistory_change(changesets) {
    var hashstr = '';
    // objid, key, value
    for (var i = 0; i < changesets.length; i++) {
	if(hashstr.length > 0)
	    hashstr = hashstr + ',';
	hashstr = hashstr + changesets[i][0] + '.' + changesets[i][1] + ':' + changesets[i][2];
    }
    dhtmlHistory.add(hashstr, hashstr);
}
	 
function displayUpdateFromAjax(historyDataString){
    for (var aobj in ajaxobjs) {
        var ajaxid = ajaxobjs[aobj][0];
        var url = ajaxobjs[aobj][1];
        var param = ajaxobjs[aobj][2];
        var urlparam = '';

        if(historyDataString){
	    var params = historyDataString.split(',');
	    for (var i = 0; i < params.length; i++) {
		var data = params[i].split(':');
		var objkey = data[0].split('.');
		if(objkey[0] == ajaxid)
		    urlparam = urlparam + '/' + objkey[1] + '/' + data[1];
	    }
        }
	//alert(ajaxid);
        new Ajax.Updater(ajaxid, url + urlparam, param);
    }
}

//Verwende setTimeout wegen IE
//window.onload=dhtmlhist_initialize();
//setTimeout("dhtmlhist_initialize()", 1);
//window.onload=dhtmlhist_initialize;
oncontentloadstack.push(dhtmlhist_initialize);

