$(document).ready(
	function () {
		form_validate_init();
	}
);

function form_validate_init() {
	$('form.validate').bind( 'submit', function( e ) { return form_validate( e ); } );
}

function form_validate( e ) {
	var no_errors = true;
	var error_text = "Bitte füllen Sie dieses Feld aus";
	
	$( "span.form-validate-error" ).remove();
	$( "input.form-validate-error" ).removeClass("form-validate-error");
	
	// Abhängige felder
	ifselected = $( "form.validate input.if-selected-require" );
	ifselected_required = new Array();
	
	for ( var i=0; i<ifselected.length; i++ ) {
		if( ifselected[i].checked ) {
			
			var classString = ifselected[i].className;
			var requireElements = classString.match( /require\((.*?)\)/ );
			requireElements = requireElements[1].split(",");
			
			var parentForm = $( ifselected[i] ).parents("form");
			for ( var j=0; j<requireElements.length; j++ ) {
				var child = parentForm.find("input").filter("[name="+requireElements[j]+"]");
				ifselected_required.push( child[0] );
			}
		}
	}
	
	// Input-Felder
	required = $("form.validate input.required");
	required = jQuery.makeArray( required  ).concat( ifselected_required );
	
	for ( var i=0; i<required.length; i++ ) {
		el = required[i];
		if ( ( el.type == 'text' && el.value == '' ) || ( el.type == 'checkbox' && !el.checked ) ){ 
			$( el ).addClass( "form-validate-error" );
			if ( el.alt && el.alt!='' ) { error = el.alt; } else { error = error_text; }
			$( el ).after( "<span class=\"form-validate-error form-validate-error-" + el.checked + "\">" + error + "</span> " );
			no_errors = false;
		}
	}
	
	return no_errors;
}