var NewsLetter = Class.create();

NewsLetter.prototype = {
    // available fields
    fields: $H(),
    // available validators
    validators: $A(),
    
    // toggle selected action (subscribe/unsubscribe)
    toggleAction: function(input){
        // Show form
        Element.show('newsletterForm_data');
        if (input.value == 'subscribe') // If subscribing
        {
            // Showing each fields
            this.fields.each(function(de){
                Element.show(de.value.field);
            });
            // Activating each validators
            this.validators.each(function(v){
                FormValidate.Validators.register(v);
            });
            // Update submit label
            $('submitButton').value = 'subscribe';
        }
        else // If unsubscribing
        {
            // Hiding each non-mail field
            this.fields.each(function(de){
                if (de.value.fieldType != 'mail') {
                    Element.hide(de.value.field);
                }
            });
            // Unregistering non-mail validators
            var lthis = this;
            this.validators.each(function(v){
                if (lthis.fields[v.element.id].fieldType != 'mail') 
                    FormValidate.Validators.unregister(v);
            });
            // Update submit label
            $('submitButton').value = 'unsubscribe';
        }
    }
}

