/* spezielles jQueryHandling für die Events in Tool Teilnehmerinfo (früher Adressdaten bearbeiten) 
 * u.a. werden hier die Clickhandler zum Markieren von Teilnehmer, zum Einfügen neuer Teilnehmer und 
 * zum Bearbeiten bzw. Entfernen von Teilnehmerdatensätzen bereitgestellt
 * enthält Funktionen für die Teilnehmerübersicht und die Teilnehmerdetails von Tool Teilnehmerinfo;
 * die restlichen Funktionen zu den Details - Hinzufügen/Bearbeiten v. Teilnehmern und Filtern - werden in 
 * personendetails.js behandelt
 */

registerNamespace("KuferTools.Teilnehmerinfo");

 var $werdegangTable;
 var $ausbildungTable;

 //Ready Handler
$(document).ready(function() {
  
  var searchteilnehmer = '';
  if(document.URL.search(/searchteilnehmer=1/)) {
    searchteilnehmer = '&searchteilnehmer=1';
  }
  
  //Markierungsdialog
  var teilnehmer = 'Teilnehmer';
  if(window.KuferTools && KuferTools.Spracheinstellungen)
    teilnehmer = KuferTools.Spracheinstellungen.Teilnehmer.Plural.Akkusativ;
      
  KuferTools.Utils.Dialoge.Uebersicht.PersonMarkierDialog.Prepare(teilnehmer);
  
 // Bei Klick auf alleMarkieren den dialog direkt aufrufen anstatt showMessage(..), da hier der  '#dialogmarkieren' Element
 // nicht aus dem DOM entfernt werden darf (via remove)  
 $('.alleMarkieren').click(function(event){
    event.preventDefault();
    $('#dialog_markierenneu').dialog('open');
  });
  //Markierungsdialog Ende
  
 //Filternfunktion für die Teilnehmerübersicht in Tool11 Teilnehmerinfo
 $('.tnSuchbutton').click(function(){
   //Formular ist bereits im DOM Baum vorhanden (mit display: none) und wird geklont; dadurch bleiben die aus der
   //Session ins Formular geladenen werte der Inputfelder erhalten; Im Klone Objekt können die Werte dann 
   //verändert werden und nach normalen Schließen bleiben trotztdem die alten Werte (aus der Session) erhalten; Dies
   //vereinfacht den Mechanismus zur Suche (im gl. zum Kursfilter) erheblich (siehe $('#kurssuche').dialog(..) in
   // project.js
   var $tnSuchDiv = $('#tnSuche').clone();
   
  // var newLink = link + '&filterTeilnehmer=1#' + tabId;
   var buttons =  { "Schließen":      function()   { $(this).dialog("close"); },
		    "Filter leeren" :   function ()  {  
                      $tnSuchDiv.find('form input').each(function(index, item){
                        $(item).val('');
                      });
                      $tnSuchDiv.find('form').submit();
                                                      $(this).dialog("close");
                                                      
                                                      KuferTools.Utils.AjaxLadebildschirm.Start();
                                                      
                                          },
		    "Filter setzen" : function() { KuferTools.PersonDetails.submitPersonenSuche($tnSuchDiv) }
		};
                
                
    showMessage($tnSuchDiv, 'Filter für ' + KuferTools.Spracheinstellungen.Teilnehmer.Plural.Akkusativ, buttons, 600, undefined, function () {
      KuferTools.PersonDetails.submitPersonenSuche($tnSuchDiv);
    });
    
    var $inputs = KuferTools.Utils.getInputableElements($tnSuchDiv);
    $inputs.bind('change', function() { validateInput( $(this) ); } );
  });
  
  
  //Erweitert die Url um die zuletzt ausgewählten Ids; wird nur benötigt, falls auf der angezeigten Seite Ids (von Teinehmern) ausgewählt wurden, 
  //um sich diese beim Blättern für weitere Selektionen auf den nächsten Seiten vorzumerken; gilt hier nur für das Blättern in der Teilnehmerübersicht, 
  //und somit nicht für andere Arten von Ids (z.B. RaumIds, KursIds, TN Ids etc.)
  $('.main_buttons.tn a.blaettern').click(function () {
    var $this = $(this);
    var href = $this.prop('href');
    $this.prop('href', href + KuferTools.GetUrlPartForIdSelection());
   });
  
 /**********************************************************************************************
 * Funktionen für die Teilnehmerdetails des Tools Teilnehmerinfo                               *
 * enthalten sind hier:                                                                        *
 *   - das Setzen der dataTables Einstellungen für die Tabellen zur Qualifikation (Ausbildung,
 *     Werdgang) im Reiter Qualifikationen
 *   - das Setzen der dataTables Einstellungen für die  Kurstabelle im Dozentenreiter          *
 *     (Sortierung der Spalten etc.)                                                         *
 ***********************************************************************************************/
  
  
   //Beim ersten Laden der Seite bzw. Reload werden ggf. die Datatables Einstellungen gesetzt und 
  //bestimmte Buttons bei leerer ausgabe ausgeblendet

  if($('#kurstable_div span.error').length == 0) {
    KuferTools.Teilnehmerinfo.createKursTable();
    //Buttons usw. anzeigen
    KuferTools.Teilnehmerinfo.showElemsMitKursen(true);
  }
  else
    //Druckbuttons usw. ausblenden
    KuferTools.Teilnehmerinfo.showElemsMitKursen(false);

  
  /*
  if($('.tab_kurse').length != 0) {
    KuferTools.Teilnehmerinfo.createKursTable();
  } */
  
  if($('.tab_ausbildung').length != 0)
      KuferTools.Teilnehmerinfo.createAusbildungTable();
    
  if($('.tab_werdegang').length != 0)
    KuferTools.Teilnehmerinfo.createWerdegangTable();
  
  //passt mit Hilfe von dataTables das Layout der Kurstabelle an (u.a. Spaltenbreite,
// unsichtbare Spalten, Sortierung etc.)
  $("#teilnehmerdetails").tabs({
    
    "activate": function(event, ui) {
      if ( isempty($kursTable) === false && $kursTable.is(':visible') ) {
  //  if ( typeof($kursTable) != 'undefined' && $kursTable.is(':visible') ) {
    	  // Z.B. im Tool Teilnehmerinfo beim Kursreiter zu den Teilnehmerdetails 
    	  $kursTable.filter(':visible').dataTable().fnAdjustColumnSizing();
      }
      if ( typeof($ausbildungTable) != 'undefined' && $ausbildungTable.is(':visible') ) {
        $ausbildungTable.filter(':visible').dataTable().fnAdjustColumnSizing();
      }
      if ( typeof($werdegangTable) != 'undefined' && $werdegangTable.is(':visible') ) {
        $werdegangTable.filter(':visible').dataTable().fnAdjustColumnSizing();
      }
    } //end activate
  });

  
}); //end document ready

//setzt die dataTables Einstellungen für die Kurstabelle im Reiter "belegte Kurse"
KuferTools.Teilnehmerinfo.createKursTable = function() {
  if ($('.tab_kurse').length > 0) {
    $kursTable = $('.tab_kurse').dataTable({
      "oLanguage": {"sUrl": "../jquery/plugins/jquery.dataTables.de_DE.txt"},
      "sScrollY": "300px", //Scrollbalken nach unten, angezeigt: 300px (IE)
      "bFilter": false,
      "bInfo": false, //z.B. showing 1 to 10 from 57 entries
      "bScrollCollapse": true,
      "bPaginate": false,
      "bAutoWidth": false,
      "aaSorting": [], //Keine Default-Sortierung
      "aoColumnDefs": [
        {"bSortable": false, "aTargets": ["doNotSort", "kurs_ausfall", "kurs_anmeldungen", "kurs_beginn_dat_komplettkurz_jahrkurz",
            "kurs_ende_dat_komplettkurz_jahrkurz", "kurs_beginn_dat_komplettkurz", "kurs_ende_dat_komplettkurz"]},
        //    {"sType": "weekday-dateShort", "aTargets": ["kurs_beginn_dat_komplettkurz_jahrkurz", "kurs_ende_dat_komplettkurz_jahrkurz"]},
        //    {"sType": "de_date",           "aTargets": ["kurs_ende_dat_kurz", "kurs_beginn_dat_kurz"]},
        {"bVisible": false, "aTargets": ["kurs_invisibleAusfall", "kurs_invisibleSemester"]}
      ]
    });
  }
 // return kursTable;
}

//setzt die dataTables Einstellungen für die Ausbildungstabelle im Reiter "Qualifikationen"
KuferTools.Teilnehmerinfo.createAusbildungTable = function() {
  $ausbildungTable = $('.tab_ausbildung').dataTable({
    "oLanguage": {"sUrl": "../jquery/plugins/jquery.dataTables.de_DE.txt"},
    "sScrollY": "300px", //Scrollbalken nach unten, angezeigt: 300px (IE)
    "bFilter": false,
    "bInfo": false, //z.B. showing 1 to 10 from 57 entries
    "bScrollCollapse": true,
    "bPaginate": false,
    "bAutoWidth": false,
    "aaSorting": [[1, "asc"]],
    "aoColumnDefs": [
      {"bSortable": false,           "aTargets": ["tnausbildung_abschluss"]}
    ]
   });
}

//setzt die dataTables Einstellungen für die Werdegangstabelle im Reiter "Qualifikationen"
KuferTools.Teilnehmerinfo.createWerdegangTable = function() {
  $werdegangTable = $('.tab_ausbildung').dataTable({
    "oLanguage": {"sUrl": "../jquery/plugins/jquery.dataTables.de_DE.txt"},
    "sScrollY": "300px", //Scrollbalken nach unten, angezeigt: 300px (IE)
    "bFilter": false,
    "bInfo": false, //z.B. showing 1 to 10 from 57 entries
    "bScrollCollapse": true,
    "bPaginate": false,
    "bAutoWidth": false,
    "aaSorting": [[1, "asc"]]
   });
}

/**
 * Zeigt bzw. versteckte Elemente, die nur erscheinen dürfen, wenn Kurse ausgegeben werden
 * 
 * Das sind hier für die Teilnehmerinfo die Radiobuttons zur Auswahl von ein -bzw. mehrzeilig
 * @param bool pShow true, wenn Kurse auf der Seite erscheinen
 */
KuferTools.Teilnehmerinfo.showElemsMitKursen = function(pShow) {
   
   if (pShow === true) {
     //Buttons mit Klasse nurMitKursen sind hier derzeit nicht vohanden
     // $('.buttonleiste_teilnehmerdetails_button .nurMitKursen').show();
     $('.zeilen4inhalt').show();
   }
   else {
     // $('.buttonleiste_teilnehmerdetails_button .nurMitKursen').hide();
     $('.zeilen4inhalt').hide();
   }
}
  