// G&W History Module base
// 2007 Jealouskid.net

var StateManager ;

// init history class

function initHistory() {	
	StateManager = EXANIMO.managers.StateManager
	StateManager.initialize();
	StateManager.defaultStateID = "init_general";

	StateManager.onstaterevisit = function(e) {		
			
		
		//var arr = $$('#project .content')
		//arr[0].innerHTML = 'cleaned iframe';
		
		var historyData = getHistoryStorage(e.id);
		
		if (!historyData) {
			return;	
		}		
		
		if (navigator.userAgent.indexOf('Safari') != -1) {
			//alert("safari");
		}
//alert("onstaterevisit - "+e.id);
		
  		if (FullscreenMode) {
			closeFullImage();	
		}
		if (e.id == StateManager.defaultStateID) {			
			if (historyData['mode'] == mode) {			
			} else {
				switchMode(historyData['mode'],true);
			}			
			loadProjectList();
		} else if (historyData) {
			
			//window.console.log("found history entry for id:"+e.id)
			//window.console.log("historyData['mode']:"+historyData['mode'])
			//window.console.log("historyData['action']:"+historyData['action'])
			//window.console.log("historyData['info']:"+historyData['info'])
			
			
			
			if (historyData['mode'] == mode) {			
			} else {
				switchMode(historyData['mode'],true);
			}
			if (historyData['action'] == 'projectDetails') {
				
				loadProjectDetail(historyData['pid'],true);				
			} else {
				loadProjectList();
			}
		}
	
	}
	
	StateManager.onstatechange = function (e) {
		
		//window.console.log("onstatechange: "+e.id);
				
	}
	StateManager.onstateset = function (e) {
		
		//window.console.log("onstateset: "+e.id);
				
	}
	
	
	
	
}

// create history storage to keep update objects

var historyStorage = new Object();

function setHistoryStorage(id,historyData) {
	
	
	
	//window.console.log("setHistoryStorage: "+id);		
	//window.console.log("historyData: "+historyData);		
	
	
	StateManager.setState("id_"+id);       
	
	//historyStorage[id] = new Object();
	historyStorage["id_"+id] = historyData;	
	
	
	
	//window.console.log("history storage array:");
	//window.console.log(historyStorage);
	
	//for (var Eigenschaft in historyStorage) {
	//	window.console.log("item "+Eigenschaft);
	//}
	
//	for(i=0;i<historyStorage.length;i++) {
 //   		window.console.log("item "+i+historyStorage[i]);
//	}
  	
}

function getHistoryStorage(id) {
	if (historyStorage[id]) {
		return historyStorage[id];	
	}
}