function lpCheckFormular( ob ){
	function DisplayError(ob) {
		ob.append("<div class=\"lp-form-error-layer\">Dieses Feld muss ausgef&uuml;llt werden.</div>");
	}
	
	var np = true;
	
	ob.find("input").each(function(){
		if( $(this).hasClass("required") )
		{
			if( !$(this).val() ){
				DisplayError($(this));
				np = false;
			}
		}
	});
	ob.find("textarea").each(function(){
		if( $(this).hasClass("required") )
		{
			if( !$(this).val() ) {
				DisplayError( $(this) );
				np = false;
			}
		}
	});
	
	return np;
}

(function($){  
	$.fn.AjaxFormular = function(options) {  
		
		var afDestination;
		var afSuccessFunction;
		var afSuccessDiv;
		var afSuccessMessage;
		var afFailedFunction;
		var afFailedDiv;
		var afFailedMessage;
		var afCheckFunction = function(data){ return true; };
		var afReturnResponse;
		
		var afForm;

		if( options ) {
			options.url 				? afDestination = options.url : afDestination = false;
			options.successFunction 	? afSuccessFunction = options.successFunction : afSuccessFunction = false;
			options.successDiv 			? afSuccessDiv = options.successDiv : afSuccessDiv = false;
			options.successMessage 		? afSuccessMessage = options.successMessage : afSuccessMessage = false;
			options.failedFunction		? afFailedFunction = options.failedFunction : afFailedFunction = false;
			options.failedDiv 			? afFailedDiv = options.failedDiv : afFailedDiv = false;
			options.failedMessage		? afFailedMessage = options.failedMessage : afFailedMessage = false;
			options.checkFunction		? afCheckFunction = options.checkFunction : afCheckFunction = function(data){ return true; };
			options.returnResponse 		? afReturnResponse = options.returnResponse : afReturnResponse = false;
		}
		
		function Submit() {
			if( afCheckFunction( afForm ) )
			{
				$.post( afDestination, afForm.serialize(), Response, "html");
			}
		
			return false;
		}
		
		function Response(data, textstatus) {
			if( data == "1" )
			{
				if( afSuccessDiv )
					afSuccessDiv.fadeIn();
				
				if( afSuccessMessage ) 
					alert( afSuccessMessage );
								
			} else {
				if( afFailedDiv )
					afFailedDiv.fadeIn();
				
				if( afFailedMessage )
					alert( afFailedMessage );
			}
			
			if( afReturnResponse )
				afForm.prepend( data );
			
			afForm.find("input").each(function(){ $(this).attr("disabled", "disabled"); $(this).fadeTo(500, 0.6); });
			afForm.find("textarea").each(function(){ $(this).attr("disabled", "disabled"); $(this).fadeTo(500, 0.6);});
		}
		

		return this.each(function() {   
			afForm = $(this);
			
			$(this).attr("onSubmit", "return false;");
			$(this).submit(Submit);
		});  
	};  
})(jQuery); 