var StateManager ;

// init history class

function initHistory() {	
	StateManager = EXANIMO.managers.StateManager
	StateManager.initialize();
	StateManager.defaultStateID = "init_fancy";
	StateManager.onstaterevisit = function(e) {			
		
		var historyData = getHistoryStorage(e.id);
		
		//window.console.log("event onstaterevisit");
		//window.console.log("id: "+e.id);  
		//window.console.log("uguaga"); 
		
		if (navigator.userAgent.indexOf('Safari') != -1) {
			return	
		}
		
		if (e.id == StateManager.defaultStateID) {
						
			if (!historyData || historyData['mode'] == modes[mode]) {			
			} else {
				swapMode(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'] == modes[mode]) {			
			} else {
				swapMode(true);
			}
			if (historyData['action'] == 'projectDetails') {						
				loadProjectDetail(historyData['pid'],true);									
			} else if (historyData['action'] == 'filter') {
				filterProjectByClient(historyData['clientName'],true);				
				//window.console.log("projectbyclient: "+historyData['clientName']);			
			} 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];	
	}
}