function resetNewsletterForm() {
	$j('#newsletter_messages_content').html('');
	$j('#newsletter_messages').hide();
	$j('#newsletter_section_default').show();
	$j('#advice-validate-email-email').hide();
}
function showNewsletterMessages() {
	$j('#newsletter_section_default').hide();
	$j('#newsletter_messages').show();
}

var Anewsletter = Class.create();
Anewsletter.prototype = {
    initialize: function(form, saveUrl){
        this.form = form;
        if ($(this.form)) {
            $(this.form).observe('submit', function(event){this.save();Event.stop(event);}.bind(this));
        }
        var ajax_url = (("https:" == document.location.protocol) ? "/anewsletter/securesubscriber/new" : '/anewsletter/subscriber/new');
        this.saveUrl = ajax_url;
        this.validator = new Validation(this.form);
        this.onSave = this.nextStep.bindAsEventListener(this);
        this.onFailure = this.failure.bindAsEventListener(this);
        this.is_valid = false;
    },

    validate: function() {
    	validator = new Validation(this.form)

		this.is_valid = validator.validate();

		if (!this.is_valid) {
			showNewsletterMessages();
			$j('#newsletter_messages_content').html($j('#advice-validate-email-email').html());
			$j('#advice-validate-email-email').hide();
		}

		return this.is_valid;
    },

    save: function(){

        if (this.validate()) {
			showNewsletterMessages()
			$j('#newsletter_messages_content').html("Submitting...");
            var request = new Ajax.Request(
                this.saveUrl,
                {
                    method:'post',
                    onSuccess: this.onSave,
                    onFailure: this.onFailure,
                    parameters: Form.serialize(this.form)
                }
            );
        }
    },

    nextStep: function(transport){
        if (transport && transport.responseText){
            try{
                response = eval('(' + transport.responseText + ')');
            }
            catch (e) {
                response = {};
            }
        }

        $j('#newsletter_messages_content').html(response.message);
        this.is_valid = false;

    },

    failure: function(transport){
		$j('#newsletter_messages_content').html("An error occurred while trying to submit your request.");
    }
}
