$(function() {
    $('.newsletter-subscribe').each(function() {
        var $this = $(this);
        var subscriberListId = $this.find('input[type=hidden][name=subscriberlist_id]').val();
        var setup = {
            onkeyup: false,
            onclick: false,
            onfocusout: false,
            rules: {},
            messages: {},
            errorLabelContainer: $('.newsletter-subscribe div.error-label'),
            errorClass: 'error',
            highlight: function(element, errorClass) {
                $(element.form).find('p[name=' + element.id + ']').addClass(errorClass);
            },
            unhighlight: function(element, errorClass) {
                $(element.form).find('p[name=' + element.id + ']').removeClass(errorClass);
            },
            showErrors: function(errorMap, errorList) {
    		    $('.error-label').addClass('visible');
                this.defaultShowErrors();
    	    }
        };
        setup.rules['cm-' + subscriberListId + '-' + subscriberListId] = {
            required: true,
            email: true
        };
        setup.messages['cm-' + subscriberListId + '-' + subscriberListId] = {
            required: '',
            email: ''
        };
        $this.validate(setup);
    });

    $('.newsletter-unsubscribe').each(function() {
        var $this = $(this);
        var subscriberListId = $this.find('input[type=hidden][name=subscriberlist_id]').val();
        var setup = {
            onkeyup: false,
            onclick: false,
            onfocusout: false,
            rules: {},
            messages: {},
            errorLabelContainer: $('.newsletter-unsubscribe div.error-label'),
            errorClass: 'error',
            highlight: function(element, errorClass) {
                $(element.form).find('p[name=' + element.id + ']').addClass(errorClass);
            },
            unhighlight: function(element, errorClass) {
                $(element.form).find('p[name=' + element.id + ']').removeClass(errorClass);
            },
            showErrors: function(errorMap, errorList) {
        	$('.error-label').html('<p class="error">Bitte füllen Sie die rot markierten Felder korrekt aus:</p>');
                    this.defaultShowErrors();
            }
        };
        setup.rules['cm-' + subscriberListId + '-' + subscriberListId] = {
            required: true,
            email: true
        };
        setup.messages['cm-' + subscriberListId + '-' + subscriberListId] = {
            required: '',
            email: ''
        };
        $this.validate(setup);  
    });

});

