
var Mailer = new Class({
    
    form    : {},
    status  : {},
    message : false,
    errors  : false,
    
    initialize: function(){
        this.form   = $('mailer_form');
        this.status = $('message');
        if(this.form) this._submitEvent();
    },
    
    _submitEvent: function(){
        this.form.addEvent('submit', function(e){
            e.preventDefault();
            //this._checkFields();
            this._sendReq();
        }.bind(this));
        return this;
    },
    
    _sendReq: function(){
        new Ajax('/includes/assets/mail.php',{
            method  : 'post',
            data    : this.form,
            onComplete : function(response){
                var resp = Json.evaluate(response);
                
                switch(resp.status){
                    case 'error':
                        alert("There are some errors with your form input.\n\nThe errand fields are highlighted in red.");
                        this._checkFields(resp.fields);
                        break;
                    case 'success':
                        alert('thank you');
                        this._checkFields();
                        this.form.reset();
                        break;
                }
            }.bind(this)
        }).request();
        return this;
    },
    
    _getElements: function(){
        var ids = [];
		var eles = $$(
					$(this.form).getElements('input[type^=radio]'),
					$(this.form).getElements('input[type^=text]'),
					$(this.form).getElements('input[type^=check]'),
					$(this.form).getElements('input[type^=pass]'),					
					$(this.form).getElements('textarea'),
					$(this.form).getElements('select')
				);
		eles.each(function(e){
		    ids.push(e.id);
		});
		return ids;
	},
	
    _checkFields: function(fields){
        var form_fields     = fields || {};
        var element         = false;
        var form_elements   = this._getElements();
        
        form_elements.each(function(fe){
            if(form_fields[fe]){
                $(fe).addClass('input_error');
            }else{
                $(fe).removeClass('input_error');
            }
        }.bind(this));
        
        return this;
    }
});

window.addEvent('domready', function(){
    new Mailer();
});
