var Session = {
	  SessionID: null,
		UserID: null,
		Realm: null,
	  UserProfile: null,
	  UserDeputies: null,
	  GroupPolicy: null,
		
		InitSession: function(){
			Session.SessionID = GetCookie('SessionID');
			Session.UserID = GetCookie('UserID');
			Session.Realm = GetCookie('Realm');
		},

		IsSessionValid: function(){
			if (Session.SessionID != null && Session.SessionID != "") { 
  			return true;
			} else {
  			return false;
			}
		},

		DestroySession: function(){
      Session.SessionID = null;
      Session.UserID = null;
      Session.UserProfile = null;
      Session.UserDeputies = null;
      Session.GroupPolicy = null;
			
	    DeleteCookie('SessionID');
	    DeleteCookie('UserID');
		},
		
  // ----------------------------------------------------------------------
	
		RequestUserProfile: function() {
			var service = new CoreService(serviceURL, Session.SessionID);
			service.GetUserProfile(
				{
					success: function(result) {
						Session.UserProfile = result.Profile;
					
						// DefaultArchiveDisplayPeriod is currently localy stored
						var periode = GetCookie('DefaultArchiveDisplayPeriod');
						if (periode == null)
							Session.UserProfile.DefaultArchiveDisplayPeriode = 5; 
						else	
							Session.UserProfile.DefaultArchiveDisplayPeriode = periode; 
							
						UserProfileFrame.UpdateUserProfileFrameControls();	
					},
					failure: ErrorHandler
				}
			);
		},
		
  // ----------------------------------------------------------------------
	
		RequestDeputies: function() {
			var service = new CoreService(serviceURL, Session.SessionID);
			service.GetDeputies(
				{
					success: function(result) {
						Session.UserDeputies = result.Deputies;
					},
					failure: ErrorHandler
				}
			);
		},

	// ----------------------------------------------------------------------
	
		RequestGroupPolicy: function() {
			var service = new CoreService(serviceURL, Session.SessionID);
			service.GetGroupPolicy(
				{
					success: function(result) {
						Session.GroupPolicy = result.Policy;
						ApplyGroupPolicy();
					},
					failure: ErrorHandler
				}
			);
		}
}
