var FormHandler = Class.create({

    // options
    option : {
        form: null,
        sDbLanguage: ''
    },

    initialize : function(options) {

        // setup options
        this.options = options;
        this.analyseForm();
        $(this.options.form).find('div.entry div.select select').each(function() {
            $(this).selectbox();
        });
        //console.log(this.options.sDbLanguage);
        this.setZIndex();
    },
    
    analyseForm: function () {
        var rules = {};
        var messages = {};
        if (this.options.sDbLanguage == '_en') {
            $('div.submit input').css('background', 'transparent url(http://www.webkey6.nl/klant/vanoordt/images/template/verzenden_en.jpg) no-repeat 0 0');
        }
        $(this.options.form).find('div.entry').each(function(){
            if ($(this).find('div.checkbox').length == 0 && $(this).find('div.select').length == 0 ) {
            	var inputHolder = $(this).find('div.input');
                var elm = $(this).find('input, textarea');
                rules[elm.attr('name')] = {
                    required: $(this).hasClass('required'),
                    email: inputHolder.hasClass('email'),
                    digits: inputHolder.hasClass('number'),
                    notags: true,
                    minlength: 2
                }
                messages[elm.attr('name')] = {
                    required: ($(this).hasClass('required')) ? 'Dit is een verplicht veld' : '',
                    email: 'Vul een geldig emailadres in.',
                    digits: 'Dit veld mag alleen nummers bevatten.',		
                    notags: 'Er mogen geen tags gebruikt worden.',
                    minlength: '2'
                }
            }
        });
        
        $(this.options.form).validate({
            rules: rules,
            messages: messages,
            errorPlacement: function(error, element) {
                error.insertAfter(element.parents('.input, .textarea'));
            },
            success: function(label) {
                label.remove();
            },
            submitHandler: function(form) {
                form.trigger('submit');
            }
        });	
    },
    
    setZIndex: function () {
        var zIndex = 10000;
        $('div.form div.entry').each(function () {
            $(this).css('z-index', zIndex);
            zIndex--;
        });
    }
});
