$(document).ready(function(){

  // Instanz von #myForm für schnelleren DOM-Select
  $handballcup_form = $("#handballcup_form");

  // Verstecke das <noscript> Elemente vollständig 
  $("noscript").hide(); 

  // Aktiviere Felder indem man das Attribut disabled entfernt
  $(":input:disabled", $handballcup_form).removeAttr("disabled"); 

  // Abesende Button Anzeigen
  $("#submit", $handballcup_form).show();

  // Nun zur eigentlichen Validation
  /* 
   * Erstelle Validation Handler 
   */
  $handballcup_form.validate({
    errorPlacement: function(error, element) {
      element.parent().addClass("error");
      error.prependTo( element.parent() );
    },
    errorClass: "message",
    errorElement: "strong",
    onkeyup: false, // deaktivieren - notwendig wegen errorHandlerContainer 
    onclick: false // deaktivieren - notwendig wegen errorHandlerContainer 
  });

  // Das war jetzt der Normale Aufruf und nun der Teil, 
  // der für die YAML-Forms benötigt wird!
  /* 
   * Funktion um Fehlermeldungen an richtiger Stelle anzuzeigen 
   * und wieder entsprechend zu entfernen. 
  */
  var errorHandlerContainer = function(){
    $(this).valid(); // Validiert das aktive Feld (je nach Ereignis - blur, keyup, change)

    var $cont = $(this).parent(); // Hole Übergerodnetes Div des Feldes 
    var haserror = $("strong.message:visible", $cont).size(); // Finde Fehler-Nachricht
    if (haserror<1) {
      $cont.removeClass("error"); // Kein Fehler Entferne Error CSS-Klasse.  
    } else {
      $cont.addClass("error"); // Wenn Fehler füge Error CSS-Klasse hinzu.    
    }
  } 

  // Prüfe wenn Ereignis blur (gegenteil von focus)
  $(":input", $handballcup_form).blur(errorHandlerContainer); 
  // Prüfe wenn Ereignis keyup
  $("input, textarea", $handballcup_form).keyup(errorHandlerContainer); 
  // Prüfe wenn Ereignis change (selectbox)
  $("select", $handballcup_form).change(errorHandlerContainer); 
});
