
;var FormCheck, formcheck;

FormCheck = function ($, f) {
	
	var that = this,
		form = false,
		mandatory = [];
	
	this.init = function (f) {
		form = $(f);
		mandatory = form.find('input[type="text"].mandatory, textarea.mandatory, select.mandatory');
		form.bind('submit', function (event) {
			if (!form.hasClass('checked')) that.check_submit(event);
		});
	};
	
	this.check_submit = function (event) {
		
		var m = false,
			mcb = [],
			mcbc = false,
			e = false,
			c = false;
		
		form.find('p.formcheck-error-msg').remove();
		
		$(mandatory).each(function () {
			if (String($(this).val()).replace(/ /g, '').length === 0) {
				m = true;
				$(this).addClass('formcheck-error');
			} else $(this).removeClass('formcheck-error');
		});
		form.find('input[type="checkbox"].mandatory').each(function () {
			mcb.push($(this).attr('name'));
		});
		mcb = $.unique(mcb);
		$(mcb).each(function () {
			mcbc = true;
			form.find('input[name="' + this + '"]').each(function () {
				if ($(this).attr('checked')) mcbc = false;
			});
			if (mcbc) {
				m = true;
				form.find('input[name="' + this + '"]').parent().addClass('formcheck-error');
			} else {
				form.find('input[name="' + this + '"]').parent().removeClass('formcheck-error');
			}
		});
		
		
		if (m && form.find('p.formcheck-error-msg.mandatory').length === 0) {
			$('<p/>').addClass('formcheck-error-msg mandatory').html('Bitte f&uuml;llen Sie alle Pflichtfelder aus<br />').prependTo(form.find('input[type="submit"]').parent());
		}
		
		if (
			($('input[name="sendermailform"]').length > 0 && (String($('input[name="sendermailform"]').val()).indexOf('@') < 1 || String($('input[name="sendermailform"]').val()).split('@')[1].indexOf('.') < 0)) || 
			($('input[name="sendermail"]').length > 0 && (String($('input[name="sendermail"]').val()).indexOf('@') < 1 || String($('input[name="sendermail"]').val()).split('@')[1].indexOf('.') < 0))
		) {
			e = true;
		}
		
		if (e && form.find('p.formcheck-error-msg.mail').length === 0) {
			$('<p/>').addClass('formcheck-error-msg mail').html('Bitte geben Sie eine g&uuml;ltige Email Adresse ein<br />').prependTo(form.find('input[type="submit"]').parent());
		}
		
		
		if (
			($('input[name="sendermailform"]').length > 0 && (String($('input[name="sendermailform"]').val()) != String($('input[name="senderconfirmform"]').val()))) || 
			($('input[name="sendermail"]').length > 0 && (String($('input[name="sendermail"]').val()) != String($('input[name="senderconfirm"]').val())))
		) {
			c = true;
		}
		
		if (c && form.find('p.formcheck-error-msg.confirm').length === 0) {
			$('<p/>').addClass('formcheck-error-msg confirm').html('Ihre Email Adresse und die Best&auml;tigung dieser stimmen nicht &uuml;berein<br />').prependTo(form.find('input[type="submit"]').parent());
		}
		
		if (m === false && e === false && c === false) {
			form.addClass('checked');
			form.trigger('submit');
		} else {
			event.preventDefault();
			event.stopImmediatePropagation();
		}
	};
	
	this.init(f);
	
};

jQuery(document).ready(function () {
	$('form.checkform').each(function () {
		var formcheck = new FormCheck(jQuery, $(this));
	});
	
});
