Scriptaculous.require(Config.Paths.JSLibraryClasses+'class_octethform.js');

var RemindForm = null;

var WindowForgot = {
	onFormSubmit: function() {
		WindowForgot.hideFormErrorMessage();
	},
	processAPIResponse: function (APIResponse) {
		WindowForgot.hideLoader();
		if (APIResponse.Success == true) {
			WindowForgot.displayFormSuccessMessage(Language['0006']);
		} else {
			for (i=0; i<APIResponse.ErrorCode.length; i++) {
				switch (APIResponse.ErrorCode[i]) {
					case 1:
						RemindForm.validateField('EmailAddress','Rule1',true);
						$('Form_PasswordReminder').enable();
						$('FormValue_EmailAddress').focus();
						break;
					case 2:
						WindowForgot.displayFormErrorMessage(Language['0005']);
						$('Form_PasswordReminder').enable();
						$('Form_PasswordReminder').focusFirstElement();
						break;
					case 3:
						WindowForgot.displayFormErrorMessage(Language['0007']);
						$('Form_PasswordReminder').enable();
						$('Form_PasswordReminder').focusFirstElement();
						break;
				}
			}
		}
	},
	displayFormSuccessMessage: function (message) {
		$('FormRow_Message').innerHTML = '';
		$('FormRow_Message').insert({bottom:FormFieldValidationMessages.Success(message)});
		$('FormRow_Message').show();
	},
	displayFormErrorMessage: function (message) {
		$('FormRow_Message').innerHTML = '';
		$('FormRow_Message').insert({bottom:FormFieldValidationMessages.Error(message)});
		$('FormRow_Message').show();
	},
	hideFormErrorMessage: function () {
		$('FormRow_Message').hide();
	},
	showLoader: function() {
		$('forgot-form').hide();
		$('loader').show();
	},
	hideLoader: function() {
		$('forgot-form').show();
		$('loader').hide();
	}
};

/* Window onload event - Start */
document.observe("dom:loaded", function() {
	RemindForm = new OctethForm('Form_PasswordReminder', {
		action : Config.URLs.API,
		method : 'post',
		requestParameters : {
			responseFormat: 'JSON',
			command	: 'User.PasswordRemind'
		},
		onConnectionSuccess : WindowForgot.processAPIResponse,
		onConnectionFailure : function() { WindowForgot.hideLoader(); WindowLogin.displayFormErrorMessage(Language['9019']); },
		onFormLoading		: function() { WindowForgot.showLoader(); },
		onFormSubmit : WindowForgot.onFormSubmit,
		validation : [
			{ fieldName: 'EmailAddress', rules: [{ name: 'Rule1', rule:FormValidationRules.Empty, message:[FormFieldValidationMessages.Error, Language['0004']] }]}
		]
	});
	$('Form_PasswordReminder').focusFirstElement(); // Focus on first element of form
});
/* Window onload event - End */

