var RequestAliasDialog = {
	Name: "RequestAliasDialog",
	CloseCallback: null,

  InitDialog: function() {
	  jQuery("#RequestAliasDialog").dialog({
	    autoOpen: false,
  		draggable: false,
		  resizable: false,
	  	height: 200,
  		width: 400,
			close: RequestAliasDialog.OnClose,
		  modal: true
		});
	},
	
  RequestAlias: function(_callback) {
	  CloseCallback = _callback;
		
		var HelpText = _('Please enter the e-mail address to be registered. Attention: a confirmation e-mail will be sent to this address!');
		jQuery("#RequestAliasDialogHelp").html(HelpText);
		
	  jQuery("#RequestAliasDialog").dialog('open');
		document.getElementById("address").value = '';
		document.getElementById("address").disabled = false;
		
		document.getElementById("requestID").value = '';
		document.getElementById("requestID").disabled = true;

		document.getElementById("RequestAliasButton").value = _('Send Request');
		document.getElementById("RequestAliasButton").disabled = false;
		jQuery("#RequestAliasDialogForm").unbind('submit');
		jQuery("#RequestAliasDialogForm").submit(RequestAliasDialog.OnAddressSubmit);
	},
	
	OnClose: function(event, ui) {
	  if (CloseCallback != null) {
		  CloseCallback(false);
			CloseCallback = null;
		}
	},
	
//----------------------------------------------------------------------------------------------------------------
	OnAddressSubmit: function() {
		var service = new CoreService(serviceURL, Session.SessionID);
		var address = document.getElementById("address").value;
		
		document.getElementById("RequestAliasButton").value = _('wait ...');
		document.getElementById("RequestAliasButton").disabled = true;
		
		service.RequestLocalRecipient(address,
			{
				success: RequestAliasDialog._RequestLocalRecipient,
				failure: ErrorHandler
			}
		);
		return false;
	},

  _RequestLocalRecipient: function() {
		var HelpText = _('Please check your e-mails and enter the request ID.');
		jQuery("#RequestAliasDialogHelp").html(HelpText);

  	document.getElementById("address").disabled = true;
		document.getElementById("requestID").disabled = false;
		document.getElementById("RequestAliasButton").value = _('Send ID');
  	document.getElementById("RequestAliasButton").disabled = false;
		jQuery("#RequestAliasDialogForm").unbind('submit');
		jQuery("#RequestAliasDialogForm").submit(RequestAliasDialog.OnRequestIDSubmit);
	},	

//----------------------------------------------------------------------------------------------------------------
	
	OnRequestIDSubmit: function() {
		var service = new CoreService(serviceURL, Session.SessionID);
		var requestID = document.getElementById("requestID").value;
		
		document.getElementById("RequestAliasButton").value = _('wait ...');
		document.getElementById("RequestAliasButton").disabled = true;
		
		service.ConfirmLocalRecipient(requestID,
			{
				success: RequestAliasDialog._ConfirmLocalRecipient,
				failure: function() {
						jQuery("#RequestAliasDialog").dialog('close');
						ErrorHandler();
					}
			}
		);
		return false;
	},

  _ConfirmLocalRecipient: function() {
  	if (CloseCallback != null) {
		  CloseCallback(true);
			CloseCallback = null;
			jQuery("#RequestAliasDialog").dialog('close');
		}
	}
}
