var LogonDialog = {
	Name: "LogonDialog",

  InitDialog: function() {
  	jQuery("#LogonDialog").dialog({
	    autoOpen: false,
			bgiframe: true,
  		draggable: false,
		  resizable: false,
	  	height: 200,
  		width: 370,
		  modal: true,
			closeOnEscape: false,
			open:function() {
				$(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar-close").remove();
			} 
		});

		jQuery("#logonform").submit(LogonDialog.ApplianceLogon);
		// Change Language handler
		jQuery("#SetLanguageCombo").change(LogonDialog.SetLanguage);
	},

  LoadRealmsAndOpenDialog: function() {
    var service = new Logon(serviceURL);
    service.GetRealmNames(
      {
        success: function(result) {
					for (i = 0; i < result.RealmNames.length; i++) {
						document.logonform.realms.options[i] = new Option(result.RealmNames[i], result.RealmNames[i]);
					}
					
					var realm = GetCookie('Realm');
					selectOptionByValue(document.logonform.realms, realm);
					
					// Open logon dialog
					jQuery("#LogonDialog").dialog('open');
					
					// Adjust Comobo widths
					jQuery("#RealmCombo").width(document.logonform.password.offsetWidth);
					jQuery("#SetLanguageCombo").width(document.logonform.password.offsetWidth);
					
					document.logonform.username.focus();
				},
        failure: ErrorHandler
      }
    );
  },
	
	SetLanguage: function() {
	  jQuery.blockUI({ message: '<h2>' + _('Please wait ...') + '</h2>' }); 
	  jQuery("#LogonDialog").dialog('close');
		
		var idx = document.logonform.language.selectedIndex;
    var locale = document.logonform.language.options[idx].value;
	  window.location.href='index.php?l=' + locale;
	},
	
	Logon: function() {
    LogonDialog.LoadRealmsAndOpenDialog();
	},
	
  ApplianceLogon: function() {
    var service = new Logon(serviceURL);
    service.Authenticate(document.logonform.username.value, document.logonform.password.value, document.logonform.realms.value,
      {
        success: LogonDialog.Authenticated,
        failure: ErrorHandler
      }
    );
		return false;
  },

  Authenticated: function(result) {
	  if (result.Result) {
			Session.SessionID = result.SessionID; 
			Session.UserID = result.UserID; 
			SetCookie('SessionID', Session.SessionID, 0);
			SetCookie('UserID', Session.UserID , 0);

      Session.Realm = document.logonform.realms.value
			SetCookie('Realm', Session.Realm , 365);

			document.logonform.username.value = '';
			document.logonform.password.value = '';
			
			jQuery("#LogonDialog").dialog('close');
			
			ShowInitialView();
	  } else {
		  jAlert(_('Authentication failed'), _('Error'));
	  }	
  }
}
