var Schrijvershof = Class.create({

    // options
    options : {
        backend: false,
        sDbLanguage: ''
    },

    initialize : function(options) {
        // setup options
        this.options = options;
        this.initForms();
        this.initLangswitch();
        this.initCycle();
    },

    initForms: function () {
        var sDbLanguage = this.options.sDbLanguage;
        $('div.form.generator form').each(function () {
            var oForm = new FormHandler({
                form: this, 
                sDbLanguage: sDbLanguage
            });
        });
    },
    
    initLangswitch: function () {
        $('div.languages span').bind('click', function () {
            if ($('div.languages ul').css('display') == 'none') {
                $('div.languages ul').fadeIn();
            } else {
                $('div.languages ul').fadeOut();
            }
        });
    },
    
    initCycle: function () {
        $('#slider').cycle({
            requeueTimeout: 500,
            timeout:    5000,
            speed:      1000,
            cleartype:  1,
            pager: '#pager',
            activePagerClass: 'activeSlide',
            pagerAnchorBuilder: function(idx, slide) {
                return '<li><a href="#'+idx+'"></a></li>'; 
            }
        });
    },
    
    initCheckBoxes: function () {
        $('.checkbox .value').click(function () {
            if(!$(this).hasClass('checked')) {
                $(this).addClass('checked').prev('input').attr('checked',true);
            } else {
                $(this).removeClass('checked').prev('input').attr('checked',false);
            }
            
            if($(this).hasClass('other')) {
                if(!$(this).next('input').hasClass('required')) {
                    $(this).next('input').addClass('required');   
                } else {
                    $(this).next('input').removeClass('required').val('');   
                }
            }
        });
        
        $('input.other').change(function () {
           if($(this).val() != '') {
               $(this).addClass('required').prev('.value').addClass('checked').prev('input').attr('checked',true);
           }
        });
    },
    
    initValidateStaticForm: function (p_sForm) {
        var rules = {};

        switch(p_sForm) {		
            case 'fruitlogistica':    
                rules['sCompany'] = {
                    required: true,
                    minlength: 2
                };            
                rules['sAddress'] = {
                    required: true
                };
                rules['sPostal'] = {
                    required: true,
                    minlength: 5
                };
                rules['sCity'] = {
                    required: true
                };
                rules['sCountry'] = {
                    required: true
                };
                rules['sPhone'] = {
                    required: true,
                    minlength: 6
                };
                rules['sPerson'] = {
                    required: true,
                    minlength: 2
                };
                rules['sPhone2'] = {
                    required: true,
                    minlength: 6
                };
                rules['sMobile'] = {
                    required: true,
                    minlength: 6
                };
                rules['sEmail'] = {
                    required: true,
                    email: true
                };
                rules['aInterest[]'] = {
                    required: true
                };
                rules['aActivities[]'] = {
                    required: true
                };
            break;
        }

        $('#'+p_sForm).validate({
            rules: rules,
            errorPlacement: function(error, element) {
                var obj = element.parents('.field');
                error.insertAfter(obj);
            },
            success: function(label) {
                label.remove();
            },
            submitHandler: function(form) {
                form.submit();
            }
        });	
    
    }
});
