Session = {
	create : function(callback){
		q = {Method : "Session.create"}
		
		API.query(q, function(json){
			
			Session.set(json);
			
			if(callback!=undefined)
				callback();
			
		});
	},
	destroy : function(callback){
		
		Timer.stop();
		q = {Method : "Session.destroy"}
		
		if(callback!=undefined)
			API.query(q, callback);
		else
			API.query(q);

	},
	set : function(json) {
		Cookie.create("Session", json.Session, 0.5);
		Cookie.destroy("Logged_in");
		UI.showStep(1);
	},
	clear : function(callback){
		
		q = {Method : "Session.clear"};
		
		if(callback != undefined)
			API.query(q, callback);
		else
			API.query(q);
			
	},
	checkStatus : function(){
		q = {Method : "Session.checkStatus"}
		API.query(q, function(json){
			
			Hash.read();
			
			if(Hash.hash.step == 6)
				return false;
			
			var step = 1;
			
			if(json.Status.Locker[0] == false && json.Status.Registrant[0] == true)
				Session.clear();
			
			if(json.Status.Locker[0] == true){
				Locker.Current = json.Status.Locker[1];
				step = 3;
			}
			
			if(json.Status.Registrant[0] == true){
				Registrant.Current = json.Status.Registrant[1];
				step = 4
			} 
			
			if(json.Status.Transaction[0] == true){
				
				if(json.Status.Transaction[1].Status == "paid")
					step = 6
				else
					step = 5
			} 
			
			UI.showStep(step);
				
		});
	},
	check : function(){
		
		if(Cookie.read("Session") != undefined)
			return true;
		else {
			return false;
		}
			
	}
}
