// ************************************************************************
// Autor: Thomas Bauer                                                    *
// erstellt am: 18.05.2011                                                *
// ************************************************************************
// Funtionen:                                                             *
//    initWorkshop:        Initialisieren fuer Workshop                   *
//                         FUNKTION: initAnmeldung                        *
//                                   feedbackCaptchaWS                    *
//    feedbackCaptchaWS:   Reaktion auf Ueberpruefung des Captcha         *
//                         FUNKTION: feedbackAnmeldung                    *
//    feedbackAnmeldung:   Reaktion auf Absenden des Formulars            *
//    initAnmeldung:       Anmedeformular initialisieren                  *
//                         FUNKTION: mmc.js - initHelp                    *
//    initAdminUnterricht: Dialog zum Bearbeiten eines Eintrags           *
//                         FUNKTION: admin.js - initHelp                  *
//    setDeleteButton:     Daten in einem Eingabefeld loeschen            *
//                         VERWENDET: initAdminWorkshop                   *
//                                    initTerminListe                     *
//                                    initZeitraum                        *
// ************************************************************************

// Initialisieren fuer Workshop
function initWorkshop() {
   // Anmeldebutton initialisieren
   $('.ButtonWorkshop')
      .button()
      .click(function() {
         var strTitel = $(this).attr('title');
         var intID    = $(this).attr('id').substr(9);
         $('#divAktion').load('seiten/aktionen/anmeldung.php',{Titel:strTitel,ID:intID},initAnmeldung);
         $('#divAktion').dialog({
            resizable: false,
            modal:     true,
            width:     550,
            position:  ['center',100],
            title:     strTitel,
            buttons:   {
               'Anmeldung abschicken': function() {
                  $('.error_field').removeClass('error_field');
                  $('#formAnfrage').validate().form();
                  $.post('seiten/aktionen/check_captcha.php',{Captcha:$('#AnfrageCaptcha').val()},feedbackCaptchaWS);
               },
               'Abbrechen': function() {
                  $(this).dialog('close');
               }
            }
         });

      });
   // Hilfetexte fuer Teilnehmer (CMS) initialisieren
   $('.TeilnehmerDetail').each(function() {
      // Elementparameter ermitteln
      var strID        = $(this).attr('rel');
      var objInput     = $('#'+strID);
      // Hilfetext initialisieren
      $('#helpMessages').append('<table id="help'+strID+'">'+
                                '   <colgroup><col width="100"></col></colgroup>'+
                                '   <tr>'+
                                '      <td>Strasse:</td>'+
                                '      <td>'+$(this).attr('helpstrasse')+'</td>'+
                                '   </tr>'+
                                '   <tr>'+
                                '      <td>Ort:</td>'+
                                '      <td>'+$(this).attr('helport')+'</td>'+
                                '   </tr>'+
                                '   <tr>'+
                                '      <td>Email:</td>'+
                                '      <td>'+$(this).attr('helpemail')+'</td>'+
                                '   </tr>'+
                                '   <tr>'+
                                '      <td>Telefon:</td>'+
                                '      <td>'+$(this).attr('helptelefon')+'</td>'+
                                '   </tr>'+
                                '</table>');
      // Titel des Tipps initialisieren
      $(this).attr('title',$(this).text());
      $(this).attr('rel','#help'+strID);
      // Tipp initialisieren
      $(this).cluetip({
         local:         true,
         cursor:        'help',
         dropShadow:    false,
         cluezIndex:    9999,
         closePosition: 'title',
         closeText:     '<img src="images/control/exit.gif" alt="Close">',
         mouseOutClose: true,
         fx: {
            open: 'fadeIn',
            openSpeed: 500
         }
      });
   });
   // Akkordeon initialisieren
   initDetails();
}

// Reaktion auf Ueberpruefung des Captcha
function feedbackCaptchaWS(daten,status) {
   if(status=='success' && daten=='') {
      // Fehlermeldungen etc. verbegen
      $('.error_field').removeClass('error_field');
      // Formular ueberpruefen
      if($('#formAnfrage').validate().form()) {
         // Formular abschicken
         $.post($('#formAnfrage').attr('action'),$('#formAnfrage').serialize(),feedbackAnmeldung,'html');
      }
      else
         $('#AbfrageSenden').removeAttr('disabled');
   }
   // Fehlermedlung bzgl. Captcha anzeigen
   else {
      $('.FehlerHinweis').show();
      $('#AbfrageSenden').removeAttr('disabled');
      $('#AnfrageCaptcha').addClass('error_field');
      $('#AnfrageCaptcha').val('');
      $('#Captcha').attr('src','php/captcha.php?time=' + new Date().getTime());
   }
}

// Reaktion auf Absenden des Formulars
function feedbackAnmeldung(daten,status) {
   if(status!='success' || daten=='ERROR') {
      $('#divAktion').dialog({
         resizable:   false,
         modal:       true,
         title:       'Fehlermeldung',
         open:        function() { $('#divAktion').html('Die Übertragung war fehlerhaft. Bitte versuchen Sie es ggf. nochmals bzw. zu einem anderen Zeitpunkt!'); }
      });
   }
   else {
      $('#divAnfrage').html(daten);
      $('.ui-dialog-buttonpane').hide();
   }
}

// Anmedeformular initialisieren
function initAnmeldung() {
   // Validierungsregeln festlegen
   var validator = $('#formAnfrage').validate({
      errorContainer: $('#Fehleranzeige'),
      errorClass:     'error_field',
      errorElement:   '',
      onfocusout:     false,
      onsubmit:       false,
      rules:          {
         AnfrageEmail:      {required:true, Email:0},
         AnfrageVorname:    {required:true, Eigenname:0},
         AnfrageNachname:   {required:true, Eigenname:0},
         AnfrageStrasse:    {required:true, Satz:0},
         AnfragePLZ:        {required:true, PLZ:0},
         AnfrageOrt:        {required:true, shortText:0},
         AnfrageTelefon:    {Telefon:0}
      }
   });
   // Hilfe fuer die Eingabefelder hinzufügen
   initHelp(validator);
   // Buttons initialisieren
   $('#radioNewsletter').buttonset();
   // Captcha neu laden
   $('#CaptchaReload').click(function(evt) {
      evt.preventDefault();
      $('#Captcha').attr('src','php/captcha.php?time=' + new Date().getTime());
   });
}

// Buttons fuer Workshop definieren
function initButtonWorkshop() {
   // ensprechende Buttons ausblenden
   $('legend').each(function() {
      // Copy-Button bei aktuellen Workshops ausblenden
      if($(this).parent().hasClass('Old'))
         $(this).children('.actionDialog').hide();
      else if($(this).parent().hasClass('Abgesagt'))
         $(this).children('.actionDialog').hide();
      // Edit-Button bei abgelaufenen oder abgesagten Workshops ausblenden
      else
         $(this).children('.actionCopy').hide();
      // Add-Button wieder einblenden
      $(this).children('.addEintrag').show();
      // Delete-Button bei abgesagten Workshops ausblenden
      if($(this).parent().hasClass('Abgesagt'))
         $(this).children('.actionDelete').hide();
   });
   //
   // Workshop loeschen
   $('.actionDelete')
      .unbind('click')
      .click(function() {
         // Parameter ermitteln
         var divSteuer  = $(this).parent().parent().children('div');
         var strTitel   = divSteuer.children('h4').children('div.h4-Header-Zusatz').text();
         var intID      = divSteuer.attr('id').substr(6);
         if($(this).parent().parent().hasClass('Old'))
            var strFile = divSteuer.attr('dialog').replace(/edit/,'delete');
         else
            var strFile = divSteuer.attr('dialog').replace(/edit/,'cancel');
         // Kontrollabfrage erstellen
         var strAbfrage = '<form id="WorkshopAbmeldung" class="editForm">'+
                          '   <input type="hidden" name="IDWorkshop" value="'+intID+'"></input>';
         if($(this).parent().parent().hasClass('Old'))
            strAbfrage += '   Soll der Workshop <b>"'+strTitel+'"</b> wirklich gelöscht werden?';
         else
            strAbfrage += '   Soll der Workshop <b>"'+strTitel+'"</b> wirklich abgesagt werden?';
         if($('#TeilnehmerAnzahl_'+intID).val()>0 && !$(this).parent().parent().hasClass('Old'))
            strAbfrage += '<br><br>'+
                          '<b>Es sind schon Anmeldungen eingegangen.</b><br><br>'+
                          'Die Teilnehmer werden im Falle des Löschens des Workshops darüber per Email informiert!<br><br>'+
                          '<form id="WorkshopAbmeldung" class="editForm">'+
                          '   Grund der Absage:<br>'+
                          '   <textarea name="Absagegrund"></textarea>';
         if($(this).parent().parent().hasClass('Old'))
            strAbfrage += '   <input type="hidden" name="WorkshopOld" value="X"></input>';
         strAbfrage +=    '</form>';
         // Dialog initialisieren
         $('#divAktion').html(strAbfrage);
         $('#divAktion').dialog({
            resizable: false,
            modal:     true,
            title:     'Workshop löschen',
            width:     400,
            buttons:   {
               'Ja':   function() {
                  $(this).dialog('close');
                  $("#WAIT").gbxShow();
                  $.get('admin/'+strFile,$('#WorkshopAbmeldung').serialize(),getFeedbackDelete,'json')
               },
               'Nein': function() { $(this).dialog('close'); }
            }
         });
      });
   // Workshop kopieren
   $('.actionCopy')
      .unbind('click')
      .click(function() {
         // Parameter ermitteln
         var divSteuer   = $(this).parent().parent().children('div');
         var intID       = divSteuer.attr('id').substr(6);
         var strDialog   = divSteuer.attr('dialog');
         var strDialog   = divSteuer.attr('dialog').replace(/edit/,'copy');
         var strFile     = divSteuer.attr('dialog').replace(/edit/,'save');
         var strTitel    = divSteuer.attr('title');
         var strFunction = divSteuer.attr('action');
         // Dialog zum Editieren anzeigen
         $("#WAIT").gbxShow();
         $('#divAktion').load('admin/'+strDialog,{ID:intID},eval(strFunction));
         $('#divAktion').dialog({
            resizable: false,
            modal:     true,
            width:     750,
            position:  ['center',100],
            title:     strTitel,
            buttons:   {
               'Speichern': function() {
                  $('.error_field').removeClass('error_field');
                  if($('#formDialog').valid()) {
                     $.get('admin/'+strFile,$('#formDialog').serialize(),getFeedbackSave,'json');
                  }
               },
               'Abbrechen': function() { $(this).dialog('close'); }
            }
         });
      });
}

// Dialog bzgl. Bearbeitung eines Eintrages initialisieren
function initAdminWorkshop() {
   $("#WAIT").gbxHide();
   // Validierung aktivieren
   // --- Stabdardvalidierung
   var validator = $('#formDialog').validate({
      errorContainer: $('#Fehleranzeige'),
      errorClass:     'error_field',
      errorElement:   '',
      onfocusout:     false,
      onsubmit:       true,
      rules:          {
         Meldeschluss: {required:true},
         Preis:        {required:true, digits:0},
         Titel:        {required:true, Gruppenname:0},
         Ueberschrift: {required:true, Gruppenname:0},
         Text:         {required:true, Satz:0}
      }
   });
   // --- Validierung bzgl. Ort
   if($('#Ort:hidden').length==0)
      $('#Ort').rules('add',{required:true, Selection:'bitte eine Auswahl treffen ...'});
   else
      $('#Adresse').rules('add',{required:true, Satz:0});
   // --- Validierung bzgl. Aenderung bei angemeldeten Teilnehmern
   if($('#Aenderung').length!=0)
      $('#Aenderung').rules('add',{required:true, Satz:0});
   // Hilfe fuer die Eingabefelder hinzufügen
   initHelp(validator);
   // Anzeigehilfe fuer Textfelder initialisieren
   initTextarea();
   // Daten in einem Eingabefeld loeschen
   setDeleteButton();
   // Teilnehmer abmelden
   $('.deleteTeilnehmer').click(function(evt) {
      evt.preventDefault();
      var intID = $(this).parent().children('input').attr('id').substr(11);
      $('#divDetailAktion').html('<p style="text-align:left">Soll der/die Teilnehmer(in) <b>'+$(this).parent().children('input').val()+'</b> wirklich von dem Workshop abgemedet werden. Im Falle der Abmeldung erhält der Teilnehmer automatisch eine Mail über die Abmeldung.</p>');
      $('#divDetailAktion').dialog({
         resizable:   false,
         modal:       true,
         width:       320,
         heigth:      'auto',
         title:       'Teilnehmer abmelden',
         buttons: {
            'Abmelden': function() {
                $("#WAIT").gbxShow();
                $.get('admin/workshop/delete_teilnehmer.php',{IDWorkshop:$('#ID').val(),TlnID:intID},getFeedbackTln,'json')
                $(this).dialog('close');
            },
            'Abbrechen': function() { $(this).dialog('close'); }
         }
      });
   });
   // Buttons initialisieren
   if(jQuery.trim($('#EingabeTermine').html())=='') {
         $('#Zeitraum').attr('checked','checked');
         $('#EingabeTermine').html('<input type="hidden" id="StartDat"   name="StartDat"   value="">'+
                                   '<input type="Text"   id="StartDatum" name="StartDatum" value="" class="Datum onlyInfo" readonly disabled help="Findet der Workshop nur an einem Tag statt, muss das zweite Datum explizit gelöscht werden. Sonst wird von/bis angezeigt.|Gibt es ein OPEN END, so muss die zweite Uhrzeit gel&ouml;scht werden.">'+
                                   '<input type="hidden" id="EndeDat"    name="EndeDat"    value=">">'+
                                   '<input type="Text"   id="EndeDatum"  name="EndeDatum"  value="" class="Datum onlyInfo WorkshopDistanz" readonly disabled>'+
                                   '<img class="deleteField FloatLeft" rel="EndeDat EndeDatum" src="'+$('#DirImage').val()+'cross.gif" alt="Del" title="Datum l&ouml;schen">'+
                                   '<input type="hidden" id="StartUhr"   name="StartUhr"   value="">'+
                                   '<input type="Text"   id="VonUhrzeit" name="VonUhrzeit" value="" class="Uhrzeit onlyInfo" readonly disabled>'+
                                   '<input type="hidden" id="EndeUhr"    name="EndeUhr"    value="">'+
                                   '<input type="Text"   id="BisUhrzeit" name="BisUhrzeit" value="" class="Uhrzeit onlyInfo" readonly disabled>'+
                                   '<img class="deleteField FloatLeft" rel="EndeUhr BisUhrzeit" src="'+$('#DirImage').val()+'cross.gif" alt="Del" title="Uhrzeit l&ouml;schen">'+
                                   '<div id="slider_Uhrzeit" class="SliderUhrzeit Zeitraum"></div>');
         initZeitraum();
   }
   $('#SelectTerminart').buttonset();
   // Zeitraum auswaehlen
   $('.TerminButton').click(function(evt) {
      evt.preventDefault();
      if($('.Terminliste').length!=0) {
         $('.Terminliste').rules('remove');
         $('.UhrzeitVon').rules('remove');
      }
      if($('#StartDatum').length!=0) {
         $('#StartDatum').rules('remove');
         $('#VonUhrzeit').rules('remove');
      }
      if($('.EinzelTermin') && ($('#Zeitraum:checked').length==1 || ($('#Zeitraum:checked').length==0 && $('#Einzeltermine:checked').length==0))) {
         $('#Terminart').val('Zeitraum');
         $('#EingabeTermine').html('<input type="hidden" id="StartDat"   name="StartDat"   value="">'+
                                   '<input type="Text"   id="StartDatum" name="StartDatum" value="" class="Datum onlyInfo" readonly disabled help="Findet der Workshop nur an einem Tag statt, muss das zweite Datum explizit gelöscht werden. Sonst wird von/bis angezeigt.|Gibt es ein OPEN END, so muss die zweite Uhrzeit gel&ouml;scht werden.">'+
                                   '<input type="hidden" id="EndeDat"    name="EndeDat"    value=">">'+
                                   '<input type="Text"   id="EndeDatum"  name="EndeDatum"  value="" class="Datum onlyInfo WorkshopDistanz" readonly disabled>'+
                                   '<img class="deleteField FloatLeft" rel="EndeDat EndeDatum" src="'+$('#DirImage').val()+'cross.gif" alt="Del" title="Datum l&ouml;schen">'+
                                   '<input type="hidden" id="StartUhr"   name="StartUhr"   value="">'+
                                   '<input type="Text"   id="VonUhrzeit" name="VonUhrzeit" value="" class="Uhrzeit onlyInfo" readonly disabled>'+
                                   '<input type="hidden" id="EndeUhr"    name="EndeUhr"    value="">'+
                                   '<input type="Text"   id="BisUhrzeit" name="BisUhrzeit" value="" class="Uhrzeit onlyInfo" readonly disabled>'+
                                   '<img class="deleteField FloatLeft" rel="EndeUhr BisUhrzeit" src="'+$('#DirImage').val()+'cross.gif" alt="Del" title="Uhrzeit l&ouml;schen">'+
                                   '<div id="slider_Uhrzeit" class="SliderUhrzeit Zeitraum"></div>');
         initZeitraum();
      }
      if($('#StartDatum') && $('#Einzeltermine:checked').length==1) {
         $('#Terminart').val('Einzeltermine');
         $('#EingabeTermine').html('<div id="divTermin_0">'+
                                   '   <input type="hidden" id="DatumCopy_0"  name="Datum[]" value="">'+
                                   '   <input type="Text"   id="Termin_0" name="Termin[]" value="" class="Datum Terminliste onlyInfo" readonly disabled>'+
                                   '   <input type="hidden" id="UhrzeitVon_0" name="UhrzeitVon[]" value="">'+
                                   '   <input type="Text"   id="VonUhrzeit_0" name="VonUhrzeit[]" value="" class="Uhrzeit UhrzeitVon WorkshopDistanz onlyInfo" readonly disabled>'+
                                   '   <input type="hidden" id="UhrzeitBis_0" name="UhrzeitBis[]" value="">'+
                                   '   <input type="Text"   id="BisUhrzeit_0" name="BisUhrzeit[]" value="" class="Uhrzeit onlyInfo" readonly disabled>'+
                                   '   <img class="deleteField FloatLeft" rel="Gueltigkeit BisUhrzeit_0" src="'+$('#DirImage').val()+'cross.gif" alt="Del" title="Uhrzeit l&ouml;schen">'+
                                   '   <div id="slider_Uhrzeit_0" class="SliderUhrzeit" class="SliderUhrzeit"></div>'+
                                   '   <button id="Delete_0" class="DeleteTermin">löschen</button>'+
                                   '   <br class="Floating">'+
                                   '</div>'+
                                   '<button id="AddTermin">weiteren Termin hinzufügen</button>');
         initTerminliste();
      }
   });
   // Datumsselektionen initialisieren
   var jetzt   = new Date();
   if($('#EingabeTermine input.Terminliste').length==0)
      initZeitraum();
   else
      initTerminliste();
   // --- Anmeldeschlussdatum
   $('#Anmeldeschluss').datepicker({
      dateFormat:      'dd.mm.yy',
      minDate:         jetzt,
      altField:        '#AnmeldeDat',
      altFormat:       'dd.mm.yy',
      showOn:          'button',
      buttonImage:     '../images/control/calendar.gif',
      buttonImageOnly: true
   });
   // --- Meldeschlussdatum
   $('#Meldeschluss').datepicker({
      dateFormat:      'dd.mm.yy',
      minDate:         jetzt,
      altField:        '#MeldeDat',
      altFormat:       'dd.mm.yy',
      showOn:          'button',
      buttonImage:     '../images/control/calendar.gif',
      buttonImageOnly: true
   });
   // Adresseingabe initialisieren
   $('#Ort').change(function() {
      if($('#Ort').val()=='NEU') {
         $('#Ort').hide();
         $('#AdressEingabe').show();
         $('#Ort').rules('remove')
         $('#Adresse').rules('add',{required:true, Satz:0});
      }
   });
   $('#changeAdresse').click(function(evt) {
      evt.preventDefault();
      $('#Ort').show();
      $('#AdressEingabe').hide();
      $('#Adresse').rules('remove')
      $('#Ort').rules('add',{required:true, Selection:'bitte eine Auswahl treffen ...'});
   });
   // Slider fuer Teilnehmer initialisieren
   var intTlnMin = $('#GlobalTeilnehmerMin').val();
   var intTlnMax = $('#GlobalTeilnehmerMax').val();
   var initTln   = intTlnMax-intTlnMin;
   var minTln    = $('#TeilnehmerMin').val()-intTlnMin;
   if($('#TeilnehmerMax').val()!='')
      var maxTln = $('#TeilnehmerMax').val()-intTlnMin;
   else
      var maxTln = initTln;
   $('#slider_Teilnehmer').slider({
      range: true,
      values: [minTln,maxTln],
      min:   0,
      max:   initTln,
      slide: function(event, ui) {
         var intTeilnehmerMin = ui.values[0]+(intTlnMin*1);
         var intTeilnehmerMax = ui.values[1]+(intTlnMin*1);
         $('#TeilnehmerMin').val(intTeilnehmerMin)
         $('#TlnMin').val(intTeilnehmerMin)
         $('#TeilnehmerMax').val(intTeilnehmerMax);
         $('#TlnMax').val(intTeilnehmerMax);
      }
   });
   // Slider fuer Alter initialisieren
   var intMin      = $('#GlobalAlterMin').val();
   var intMax      = $('#GlobalAlterMax').val();
   var initAlter   = intMax-intMin;
   var minAlter    = $('#AlterVon').val()-intMin;
   if($('#AlterBis').val()!='')
      var maxAlter = $('#AlterBis').val()-intMin;
   else
      var maxAlter = initAlter;
   $('#slider_Alter').slider({
      range: true,
      values: [minAlter,maxAlter],
      min:   0,
      max:   initAlter,
      slide: function(event, ui) {
         var intAlterMin = ui.values[0]+(intMin*1);
         var intAlterMax = ui.values[1]+(intMin*1);
         $('#AlterVon').val(intAlterMin)
         $('#VonAlter').val(intAlterMin)
         $('#AlterBis').val(intAlterMax);
         $('#BisAlter').val(intAlterMax);
      }
   });
   // Buttons initialisieren
   $('#delImage')
      .button()
      .click(function(evt) {
         evt.preventDefault();
         $('#WorkshopImage').val('');
         $('#imgWorkshop').hide();
         $('#delImage').hide();
      });
   //
   $('#DetailBild')
      .addClass('moveCursor')
      .draggable({
         axis:        'x',
         containment: '#imgWorkshop',
         stop:        function(event, ui) {
            $('#Offset').val(ui.position.left-2);
         }
      });
   // Logo laden
   var uploader = new qq.FileUploader ({
       element:           document.getElementById('file-uploader-demo1'),
       action:            'admin/upload_image.php?Workshop=X',
       listElement:       document.getElementById('showImages'),
       allowedExtensions: ['jpg', 'jpeg', 'png', 'gif'],
       debug:             true,
       multiple:          false,
       showMessage: function(message){
           $('#divBildFehler').html(message);
           $('#divBildFehler').dialog({
              resizable: false,
              modal:     true,
              title:     'Fehlermeldung',
              height:    100,
              width:     300,
              buttons:   {}
           });
       },
       onComplete: function(id, fileName, responseJSON){
          // Filenamen ermitteln
          var strFile = responseJSON.newFileName.substr(responseJSON.newFileName.lastIndexOf('/')+1);
          // Bild anzeigen
          $('#imgWorkshop').attr('src',$('#TmpVerzeichnis').val()+strFile);
          $('#imgWorkshop').show();
          $('#delImage').show();
          $('#WorkshopImage').val(strFile);
       }
   });
   $('.qq-upload-button').addClass('ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only')
}

// Teilnehmer loeschen
function getFeedbackTln(daten,status) {
   $("#WAIT").gbxHide();
   if(status=='success') {
      $('#Teilnehmer_'+daten.ID).parent().remove()
   }
   else {
      $('#divTransferError').dialog({
         resizable: false,
         modal:     true,
         title:     'Fehlermeldung',
         height:    auto,
         width:     300,
         buttons:   {}
      });
   }
}

function initEmail() {
   $('.Workshop').click(function() {
      if($(this).parent().children('input:checked').length>0) {
         var strName = $(this).attr('name')
         $(this).parent().parent().children('p#'+strName).children('input').attr('checked','checked');
      }
   });
   $('#selectAllMail')
      .button()
      .click(function(evt) {
         evt.preventDefault();
         $('input').attr('checked','checked');
      });
   $('#divAktion').dialog({
      resizable: false,
      modal:     true,
      title:     'Einladungen verschicken',
      width:     400,
      buttons:   {
         'Emails senden':   function() {
            $("#WAIT").gbxShow();
            $.get('admin/workshop/send_email.php',$('#formEmail').serialize(),getFeedbackMail,'json')
            $(this).dialog('close');
         },
         'Schließen': function() { $(this).dialog('close'); }
      }
   });
}

// Feedback Email-Einaldaungen fuer neuen Workshop
function getFeedbackMail(daten,status) {
   $("#WAIT").gbxHide();
   if(status=='success') {
      console.log(daten);
   }
   else {
      $('#divTransferError').dialog({
         resizable: false,
         modal:     true,
         title:     'Fehlermeldung',
         height:    auto,
         width:     300,
         buttons:   {}
      });
   }
}

function initZeitraum() {
   // Datumsselektionen initialisieren
   var jetzt = new Date();
   // --- Startdatum
   $('#StartDatum').datepicker({
      dateFormat:      'dd.mm.yy',
      minDate:         jetzt,
      altField:        '#StartDat',
      altFormat:       'dd.mm.yy',
      showOn:          'button',
      buttonImage:     '../images/control/calendar.gif',
      buttonImageOnly: true
   });
   // --- Endedatum
   $('#EndeDatum').datepicker({
      dateFormat:      'dd.mm.yy',
      minDate:         jetzt,
      altField:        '#EndeDat',
      altFormat:       'dd.mm.yy',
      showOn:          'button',
      buttonImage:     '../images/control/calendar.gif',
      buttonImageOnly: true
   });
   // Slider fuer Uhrzeit initialisieren
   var intInterval  = $('#GlobalUhrzeitMinuten').val();
   var intStart     = $('#GlobalUhrzeitStart').val()*(60/intInterval);
   var intMax       = $('#GlobalUhrzeitEnde').val()*(60/intInterval)-intStart;
   if($('#VonUhrzeit').val()!='') {
      var arrStart     = $('#VonUhrzeit').val().split(':');
      var intShowStart = (arrStart[0]*(60/intInterval)-intStart)+(arrStart[1]/intInterval);
      if($('#BisUhrzeit').val()!='') {
         var arrStart    = $('#BisUhrzeit').val().split(':');
         var intShowEnde = (arrStart[0]*(60/intInterval)-intStart)+(arrStart[1]/intInterval);
      }
      else
         var intShowEnde = intMax;
   }
   else {
      var intShowStart = 0;
      var intShowEnde  = intMax;
   }
   $('#slider_Uhrzeit').slider({
      range: true,
      values: [intShowStart,intShowEnde],
      min:   0,
      max:   intMax,
      slide: function(event, ui) {
         var intStartZeit = ((ui.values[0]+intStart)*intInterval)/60;
         var intStartStd  = Math.floor(intStartZeit);
         var strStartStd  = (intStartStd<10) ? '0'+intStartStd : intStartStd;
         var intStartMin  = Math.round((intStartZeit-intStartStd)*600)/10;
         var strStartMin  = (intStartMin<10) ? '0'+intStartMin : intStartMin;
         $('#VonUhrzeit').val(strStartStd+':'+strStartMin)
         $('#StartUhr').val(strStartStd+':'+strStartMin)
         var intEndeZeit  = ((ui.values[1]+intStart)*intInterval)/60;
         var intEndeStd   = Math.floor(intEndeZeit);
         var strEndeStd   = (intEndeStd<10) ? '0'+intEndeStd : intEndeStd;
         var intEndeMin   = Math.round((intEndeZeit-intEndeStd)*600)/10;
         var strEndeMin   = (intEndeMin<10) ? '0'+intEndeMin : intEndeMin;
         $('#BisUhrzeit').val(strEndeStd+':'+strEndeMin);
         $('#EndeUhr').val(strStartStd+':'+strStartMin);
      }
   });
   // Validierungen setzen
   $('#StartDatum').rules('add',{required:true});
   $('#VonUhrzeit').rules('add',{required:true});
   // Daten in einem Eingabefeld loeschen
   setDeleteButton();
}

function initTerminliste() {
   // Terminliste
   $('#EingabeTermine input.Terminliste').each(function() {
      var jetzt = new Date();
      var intID = $(this).attr('id').substr(7);
      $(this)
         .datepicker({
            dateFormat:      'dd.mm.yy',
            minDate:         jetzt,
            altField:        '#DatumCopy_'+intID,
            altFormat:       'dd.mm.yy',
            showOn:          'button',
            buttonImage:     '../images/control/calendar.gif',
            buttonImageOnly: true
         });
   });
   // Buttons initialisieren
   $('#AddTermin').button();
   // Einzeltermin loeschen
   $('.DeleteTermin')
      .button()
      .unbind('click')
      .click(function(evt) {
         evt.preventDefault();
         // Termine entfernen
         var intID = $(this).attr('id').substr(7);
         $('#divTermin_'+intID).remove();
         // Termin aus Valisierung nehmen
         $('#divTermin_'+intID+' .Terminliste').rules('remove');
         $('#divTermin_'+intID+' .UhrzeitVon').rules('remove');
      });
   // Termineintrag hinzufuegen
   $('#AddTermin')
      .unbind('click')
      .click(function(evt) {
         evt.preventDefault();
         // HTML Code einfuegen
         var intID = $('.DeleteTermin').length+1;
         $('#AddTermin').before('<div id="divTermin_'+intID+'">'+
                                '   <input type="hidden" id="DatumCopy_'+intID+'"  name="Datum[]" value="">'+
                                '   <input type="Text"   id="Termin_'+intID+'" name="Termin[]" value="" class="Datum Terminliste onlyInfo" readonly disabled>'+
                                '   <input type="hidden" id="UhrzeitVon_'+intID+'" name="UhrzeitVon[]" value="">'+
                                '   <input type="Text"   id="VonUhrzeit_'+intID+'" name="VonUhrzeit[]" value="" class="Uhrzeit UhrzeitVon WorkshopDistanz onlyInfo" readonly disabled>'+
                                '   <input type="hidden" id="UhrzeitBis_'+intID+'" name="UhrzeitBis[]" value="">'+
                                '   <input type="Text"   id="BisUhrzeit_'+intID+'" name="BisUhrzeit[]" value="" class="Uhrzeit onlyInfo" readonly disabled>'+
                                '   <img class="deleteField FloatLeft" rel="Gueltigkeit BisUhrzeit_'+intID+'" src="'+$('#DirImage').val()+'cross.gif" alt="Del" title="Uhrzeit l&ouml;schen">'+
                                '   <div id="slider_Uhrzeit_'+intID+'" class="SliderUhrzeit"></div>'+
                                '   <button id="Delete_'+intID+'" class="DeleteTermin">löschen</button>'+
                                '   <br class="Floating">'+
                                '</div>');
         // Validierung aktivieren
         $('#divTermin_'+intID+' .Terminliste').rules('add',{required:true});
         $('#divTermin_'+intID+' .UhrzeitVon').rules('add',{required:true});
         initTerminliste();
      });
   // Slider fuer Uhrzeit initialisieren
   var intInterval         = $('#GlobalUhrzeitMinuten').val();
   var intStart            = $('#GlobalUhrzeitStart').val()*(60/intInterval);
   var intMax              = $('#GlobalUhrzeitEnde').val()*(60/intInterval)-intStart;
   $('.SliderUhrzeit').each(function() {
      var intID             = $(this).attr('id').substr(15);
      if($('#VonUhrzeit_'+intID).val()!='') {
         var arrStart       = $('#VonUhrzeit_'+intID).val().split(':');
         var intShowStart   = (arrStart[0]*(60/intInterval)-intStart)+(arrStart[1]/intInterval);
         if($('#BisUhrzeit_'+intID).val()!='') {
            var arrStart    = $('#BisUhrzeit_'+intID).val().split(':');
            var intShowEnde = (arrStart[0]*(60/intInterval)-intStart)+(arrStart[1]/intInterval);
         }
         else
            var intShowEnde = intMax;
      }
      else {
         var intShowStart   = 0;
         var intShowEnde    = intMax;
      }
      $(this).slider({
         range: true,
         values: [intShowStart,intShowEnde],
         min:   0,
         max:   intMax,
         slide: function(event, ui) {
            var intStartZeit = ((ui.values[0]+intStart)*intInterval)/60;
            var intStartStd  = Math.floor(intStartZeit);
            var strStartStd  = (intStartStd<10) ? '0'+intStartStd : intStartStd;
            var intStartMin  = Math.round((intStartZeit-intStartStd)*600)/10;
            var strStartMin  = (intStartMin<10) ? '0'+intStartMin : intStartMin;
            $('#VonUhrzeit_'+intID).val(strStartStd+':'+strStartMin)
            $('#UhrzeitVon_'+intID).val(strStartStd+':'+strStartMin)
            var intEndeZeit  = ((ui.values[1]+intStart)*intInterval)/60;
            var intEndeStd   = Math.floor(intEndeZeit);
            var strEndeStd   = (intEndeStd<10) ? '0'+intEndeStd : intEndeStd;
            var intEndeMin   = Math.round((intEndeZeit-intEndeStd)*600)/10;
            var strEndeMin   = (intEndeMin<10) ? '0'+intEndeMin : intEndeMin;
            $('#BisUhrzeit_'+intID).val(strEndeStd+':'+strEndeMin);
            $('#UhrzeitBis_'+intID).val(strEndeStd+':'+strEndeMin);
         }
      });
   });
   // Validierungen setzen
   $('.Terminliste').rules('add',{required:true});
   $('.UhrzeitVon').rules('add',{required:true});
   // Daten in einem Eingabefeld loeschen
   setDeleteButton();
}

// Daten in einem Eingabefeld loeschen
function setDeleteButton() {
   $('.deleteField').click(function() {
      var listField = $(this).attr('rel').split(' ');
      for(var i=0;i<listField.length;i++) {
         $('#'+listField[i]).val('');
      }
   });
}
