  
if (typeof(KuferTools.Raumuebersicht) == "undefined") {
  registerNamespace('KuferTools.Raumuebersicht');
}

registerNamespace('KuferTools.Filter');


function removeFilterRaumuebersicht(){
  $('#dialogFilterRaumuebersicht_gebaeude').val("");

}

function raumart_fuer()
{
  if(document.getElementById("ohne_raumart").checked == true)
    document.getElementById("ohne_raumart").checked = false;
}

function raumart_ohne()
{
  if(document.getElementById("nur_raumart").checked == true)
    document.getElementById("nur_raumart").checked = false;
}

function createDialogFilterRaumuebersicht(){
  var $dialogFilterRaumuebersicht = $('#dialogFilterRaumuebersicht');
  
  var buttons = {};
  buttons[KuferTools.Button.Bezeichnung.FilterSetzen] = submitFilterRaumuebersicht;
  
  buttons[KuferTools.Button.Bezeichnung.FilterLeeren] = function() {
    removeFilterRaumuebersicht();
    $('#submitFilterRaumuebersicht').trigger('submit');
    $(this).dialog("close");
    KuferTools.Utils.AjaxLadebildschirm.Start();
  };
  
  buttons[KuferTools.Button.Bezeichnung.Schliessen] = function() { $(this).dialog("close"); };  
  
  $dialogFilterRaumuebersicht.dialog({
    modal:       true,
    autoOpen:    false,
    width:       480,
    title:       'Die Anzeige eingrenzen auf:',
    bgiframe:    true,
    resizable:   false,
    dialogClass: 'dialogwindow',
    buttons:     buttons
  });
  
} //end createDialogFilterRaumübersicht

function submitFilterRaumuebersicht() {
  $('#submitFilterRaumuebersicht').trigger('submit');
  $('#dialogFilterRaumuebersicht').dialog("close");
  KuferTools.Utils.AjaxLadebildschirm.Start();
}

/**
 * Setzt die Filtereinträge für die Reiter Kurse bzw.  Raumbelegung  auf die im Dialog ausgewählten Werte 
 * Im Dialog wurden vorher per radiobutton die Zeiträume ausgewählt: heute, morgen, diese Woche etc. 
 *  
 * @param $pVonDat Selector auf das VonDatum-Inputfeld, welches aktuallisiert werden soll
 * @param $pBisDat Selector auf das BisDatum-Inputfeld, welches aktuallisiert werden soll
 */
function setFilter4RaumdetailsReiter($pVonDat, $pBisDat, $pVal)
{
  var zeitraum = $pVal;
  
  //Anmerkung zu date: gibts beim Tab oder Monat durch setDate oder setMonth einen
  //Overflow wird dieser korrekt als nächster Monat bzw. nächstes Jahr interpretiert.
  
  
  //Für Heute oder Morgen
  if(zeitraum == "heute" || zeitraum == "morgen"){
	var date = new Date(); //Heutiges Datum
	if(zeitraum == "morgen") {
      date.setDate(date.getDate() + 1); //Erhöht Tag um eins.
	}
	$pVonDat.val(FormatDate(date));
	$pBisDat.val(FormatDate(date));
    
  //Für diese oder Nächste Woche
  } else if (zeitraum == "aktwoche" || zeitraum == "folgewoche") {
    var date = new Date(); //Heutiges Datum
    //getDay(): 0 = So, 1 = Mo ... 6 = Sa
    if(zeitraum == "folgewoche") {
      date.setDate(date.getDate() + 7); //Erhöht Tag um eine Woche.
    }
    var day = date.getDay();
    if(day >= 1) {
      date.setDate(date.getDate() - day + 1);
    } else {
      date.setDate(date.getDate() - 6);
    }
    $pVonDat.val(FormatDate(date));
      date.setDate(date.getDate() + 6);
      $pBisDat.val(FormatDate(date));
    
  //Für diesen oder Nächsten Monat
  } else if (zeitraum == "aktmonat" || zeitraum == "folgemonat") {
    var date = new Date(); //Heutiges Datum
    if (zeitraum == "folgemonat") {
      var month = date.getMonth() + 1;
      date.setMonth(month);
    } else {
      var month = date.getMonth();
    }
    date.setDate(1);
    $pVonDat.val(FormatDate(date));
    for(var i = 31; i >= 28; i--) { //Testet, welcher der Höchste Tag im Monat ist.
      date.setDate(i);
      if(date.getMonth() == month) { //Überprüft, ob sich der Monat geändert hat.
        $pBisDat.val(FormatDate(date));
        break;
      } else { //Rücksetzen des Monats
        date.setMonth(month);
      }
    }
  }
}	

function FormatDate(pDate)
{
  var day = pDate.getDate().toString();
  if (day.length < 2)
  	day = "0" + day;
  	
  var month = pDate.getMonth()+1;
  monthstr = month.toString();
  if (monthstr.length < 2)
  	monthstr = "0" + monthstr;
  return day + "." + monthstr + "." + pDate.getFullYear();
}

function setTerminFilterVals(pVal)
{
    var $vonDat = $('#raum_termineDatumVon');
    var $bisDat = $('#raum_termineDatumBis');
    setFilter4RaumdetailsReiter($vonDat, $bisDat, pVal);
}

function isDateValid(pDate)
{
  var ret = true;
  var datefields = pDate.split(".");
  if (datefields.length != 3)
  {
    ret = false;
    return(ret);
  }
  else
  {
    if (!pDate.match(/\d\d.\d\d.\d\d\d\d/))
      ret = false;
    switch (datefields[1])
    {
      default:
        ret = false;
        break;
      case '01':
        if (datefields[0] > 31)
          ret = false;
        break;
      case '02':
        if (isLeap(datefields[2])) {
          if (datefields[0] > 29)
            ret = false;
        }
        else {
          if (datefields[0] > 28)
            ret = false;
        }
        break;
      case '03':
        if (datefields[0] > 31)
          ret = false;
        break;
      case '04':
        if (datefields[0] > 30)
          ret = false;
        break;
      case '05':
        if (datefields[0] > 31)
          ret = false;
        break;
      case '06':
        if (datefields[0] > 30)
          ret = false;
        break;
      case '07':
        if (datefields[0] > 31)
          ret = false;
        break;
      case '08':
        if (datefields[0] > 31)
          ret = false;
        break;
      case '09':
        if (datefields[0] > 30)
          ret = false;
        break;
      case '10':
        if (datefields[0] > 31)
          ret = false;
        break;
      case '11':
        if (datefields[0] > 30)
          ret = false;
        break;
      case '12':
        if (datefields[0] > 31)
          ret = false;
        break;
    }
    if (!pDate.match(/\d\d.\d\d.\d\d\d\d/))
      ret = false;
    if (pDate.length != 10)
      ret = false;
    return(ret);
  }
}

function isLeap(year)
{
  if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)))
  {
    return true;
  }
  else
  {
    return false;
  }
}

function _getWocheVonBis(intWeek, intYear)
{
// VORARBEIT    
  dat = new Date(intYear, 0, 1);    // Datum hier initalisiert auf der 1.1 des Jahres
  firstDay = dat.getDay();    // Wochentag für den 1.1. des Jahres
  if (firstDay == 0)
    firstDay = 7; // (1=Montag, 2=Diestag, ..., 7=Sonntag)
// EINGABEPRÜFUNG
  // Date-Objekt verhält sich nur gutartig für Jahre nach 1990
  // Ein jahr hat normalerweise 52 Kalenderwochen nach Definition
  // Ist der 1.1 des Jahres aber ein Donnerstag, hat es 53 Kalenderowchen
  // Negative Kalenderwochen machen keinen Sinn
  if (intYear < 1991 || intWeek < 1 || intWeek > 53 || (intWeek > 52 && firstDay != 4))
    return false;
  eintag = 24 * 60 * 60 * 1000;
  einewoche = 7 * eintag;
// BERECHNEN DES STARTDATUMS FÜR DIE ERSTE KALENDERWOCHE
  // Ist der 1.1 später als Donnerstag, startet die erste Kalenderwoche erst am folgenden Montag
  if (firstDay > 4)
    dat.setTime(dat.getTime() + (8 - firstDay) * eintag);
  // Sonst startet die erste Kalenderwoche am Montag vor dem 1.1 bzw. am 1.1 wenn er ein Montag ist
  else
    dat.setTime(dat.getTime() + (1 - firstDay) * eintag);
  // Die [intWeek]-te Kalenderwoche ist sieben mal [intWeek] minus eins Tage später als die erste
  var datAry = new Array(2);
  dat.setTime(dat.getTime() + (intWeek - 1) * einewoche);// Von Datumswert
  datAry[0] = FormatDate(dat);
  dat.setTime(dat.getTime() + 6 * eintag); //Bis Datumswert
  datAry[1] = FormatDate(dat);
// RETURN DES DATUM-OBJEKTS
  return datAry;
}

function Kalwoche(kwNr,kwYear) 
{
  this.kwNr = kwNr;
  this.kwYear = kwYear;
}
 
function incKalwoche(intWeek, intYear, i) {
  // berechnet Anzahl der Kalenderwochen eines Jahres
  anzkw = getAnzKalwochenofYear(intYear);
  sumWeek = intWeek * 1 + i;
  if (sumWeek > anzkw) {
    intYear++;
    sumWeek = sumWeek - anzkw;
  }
  kwoche = new Kalwoche(sumWeek, intYear);
  return kwoche;
}

function getAnzKalwochenofYear(intYear) {
  // gibt wochentagszahl aus  Mo => 1, Di => 2,..., So=> 7
  var dat = new Date(intYear, 0, 1);    // Datum hier initalisiert auf der 1.1 des Jahres
  firstDay = dat.getDay();    // Wochentag für den 1.1. des Jahres
  if (firstDay == 0)
    firstDay = 7; // (1=Montag, 2=Diestag, ..., 7=Sonntag)
  // Normalerweise hat das Jahr 52 KW; falls der 01.01. ein Donnerstag ist hat das Jahr 53 KW;
  // Bei schaltjahren hat das Jahr auch 53 KW falls der 01.01. ein Mittwoch ist
  anzkws = 52;

  if (isSchaltjahr(intYear) == 0) {
    if ((firstDay == 4) || (firstDay == 3))
      anzkws = 53;
  }
  else
  if (firstDay == 4)
    anzkws = 53;
  return anzkws;
}

function isSchaltjahr(intYear) {
  var dat = new Date(intYear,0,1);
  var Jhr = dat.getYear();
  var Jahr = (Jhr >= 2000) ? Jhr : ((Jhr< 80) ? Jhr + 2000 : Jhr + 1900);
  var SJahr = Jahr%4;
  var SHJahr = Jahr%100;
  var S4Jahr = Jahr%400;
  return ((S4Jahr == "0") ? (1) : ((SHJahr == "0") ? (0) : ((SJahr == "0") ? (1) : (0))));
}

/**
 * Setzt beim Wechsel der Werte im Select Feld dateFrom und dateTo neu
 * @param {Object} intWeek
 * @param {Object} intYear
 * @param {Object} date1From
 * @param {Object} date1To
 * @param {Object} date2From
 * @param {Object} date2To
 */
function getDateValuesFromKalWoInput(kWeek,kYear,date1From,date1To,date2From,date2To,i) 
{
  var datVon;  //Datumsstring z.B. 12.01.2008
  var datBis;
  var intWeek = document.getElementsByName(kWeek)[0].value;
  var intYear = document.getElementsByName(kYear)[0].value;
  var datary = _getWocheVonBis(intWeek,intYear);
  datVon = datary[0];
  //alert ("i = " + i);
  if (i==0) {
    datBis = datary[1];
    }
  else {
    biswoche=incKalwoche(intWeek,intYear,i);
    //alert ("biswoche: = " + biswoche.kwNr + ", " + biswoche.kwYear);
    datary = _getWocheVonBis(biswoche.kwNr,biswoche.kwYear);
    datBis = datary[1];
    }
  document.getElementById(date1From).value = datVon;
  document.getElementById(date1To).value = datBis;
  document.getElementById(date2From).value = datVon;
  document.getElementById(date2To).value = datBis;
}


/**
 * Eventhandler für den Ausgabe einer Stundenplangrafik via Dialog
 * 
 * Das Dialogdiv wurde bereits vorher - beim Ausgeben des Stundenplanbuttons in Methode getcontent() der Page (genauer: in
 * Method  _getHmStundenplanDialog in PageRaumuebersicht) mit PHP zusammengebaut, da hier bestimmte Kalenderwochenfunktionen 
 * vorteilhaft genutzt werden können. Es wird nicht direkt zum Dialog gemacht, sondern aus 
 * dem DOM ausgehängt, und später - beim Anklicken des Buttons - per ShowMessage() angezeigt.
 */
KuferTools.Raumuebersicht.initHMStundenplanDialog = function() {
  
  $(document).on('change','.kalwochennr #kalwochnr, .kalwochenjahr #kalwochjahr',function() {  
    //ist in functions.js implementiert
    getDateValuesFromKalWoInput('kalwochnr','kalwochjahr','kt_von','kt_bis','datbereich_von','datbereich_bis',0);
  });
}; //end initHMStundenplanDialog()


//Behandelt die Ausgabe des Stundenplans, nach Absenden des Formulars (Dialogs) für die Einstellungen zum Stundenplan.
//wird aktiviert durch Klick auf den "OK" Button im Dialog, der die Einstellungen aus buildStundenplanFormular enthält
 KuferTools.Raumuebersicht.handleStundenplanOutput = function(){
   // hier einfach das Formular abschicken
    //this enthält den Dialog d.h. das div#hm_stundenplan_dialog und darin ist das Einstellformular enthalten
    $form = $(this).find('form')         
     
    $form.trigger('submit');
    $(this).dialog("close");
 };  //end  handleStundenplanOutput()


/*************************************************************************************************************
   JQuery Event Handling, das beim Laden des Dokuments bereitgestellt wird  //!!!!!Document.Ready!!!!
***************************************************************************************************************/
$(function() {
   // Das folgende ersetzt die URL mit der momentanen URL. Dies bewirkt das der
   // Browser 'vergisst', dass ein POST Request gesendet wurde
   if (/&action=setFilter$/.test(window.location.href)) {
     KuferTools.ReplaceCurrentHistory(window.location.href.replace(/&action=setFilter$/, ''));
   }
   
  // initialize Datum Filter Buttons
  if (typeof KuferTools.Filter.DateButtonsHandler != 'undefined') {
    KuferTools.Filter.DateButtonsHandler($('#grafik_datvon'), $('#grafik_datbis'));
  }
  
  KuferTools.fixiereTabellenSpalten($('.table.grafik_table'));
  
  // initialize timepicker
  var $hasTimePicker = $('.hasTimePicker');
  $hasTimePicker.removeClass('hasDatepicker');

  $hasTimePicker.timepicker({}).on('click', function () {
    $(this).timepicker('show');
  });
  
  KuferTools.InitValidate_notooltip($('#grafischerBelegungsplan'));
  $('#grafischerBelegungsplan').on('submit', function() {
    if(!KuferTools.ValidateFormInput($(this))) {
      return false;
    }
  });
  
  KuferTools.InitValidate_notooltip($('#suchformDiv'));
  $('#suchformDiv').on('submit', function() {
    if(!KuferTools.ValidateFormInput($(this))) {
      return false;
    }
  });

  const $datumAuswahl = jQuery('#datumwahl4geb');
  //Klickhandler zum Auswählen des richtigen Tages in der Gebäudegrafik
  jQuery('#wovor, #worueck, #tagvor, #tagrueck').on('click', function (e) {
    let dateForm = 0;
    const $this = $(this);
    switch ($this.prop('id')) {
      case 'wovor':
        dateForm = + 7;
        break;
      case 'worueck':
        dateForm = - 7;
        break;
      case 'tagvor':
        dateForm = + 1;
        break;
      case 'tagrueck':
        dateForm = - 1;
        break;
    }

    const inputDate = $datumAuswahl.datepicker('getDate');

    const date = new Date(Date.parse(inputDate));
    date.setDate(date.getDate() + dateForm);

    let newDate = date.toDateString();
    newDate = new Date(Date.parse(newDate));
    $datumAuswahl.datepicker('setDate', newDate);

    // Wenn bei den Blättern-Buttons die Klasse "submit_bei_blaettern" enthalten ist,
    // wird beim Button-Klick das Formular direkt abgesendet.
    if ($this.hasClass('submit_bei_blaettern')) {
      jQuery('form').submit();
    }
  });

  if ($datumAuswahl.hasClass('submit_bei_blaettern')) {
    $datumAuswahl.on('change', function(e) {
      jQuery('form').submit();
    });
  }

  // Klickhandler für den Dialog zur Ausgabe einer Stundenplangrafik 
  $(".stdplangrafik").on('click', function (event) {

    var buttons = {};
    buttons[KuferTools.Button.Bezeichnung.Ok] = function () {
      jQuery(this).find("form").trigger('submit');
      jQuery(this).dialog('close');
    };
    buttons[KuferTools.Button.Bezeichnung.Abbrechen] = function () {
      $(this).dialog("close");
    };

    // ein jQuery-Dialog öffnen
    KuferTools.Utils.AjaxLadebildschirm.Start();
    jQuery.post('index.php?tool_id=5&action=stundenplan', function (data) {
      KuferTools.showMessage({meldung: data, title: 'Stundenplan für eine Kalenderwoche', buttons: buttons, width: 'auto', pressEnterFunc: buttons[KuferTools.Button.Bezeichnung.Ok]});

      KuferTools.Utils.AjaxLadebildschirm.Stop();

      KuferTools.Raumuebersicht.initHMStundenplanDialog();
    });
  });
   
  createDialogFilterRaumuebersicht();
  
  
  $('.filter_button_raumuebersicht').on('click', function() {
    $('#dialogFilterRaumuebersicht').dialog('open');
    
    //Bei Drücken der Enter-Taste Formular abschicken
    $('form').find('input, select').on('keypress', function(event) {
      if (event.which === 13) {
        event.preventDefault();
        submitFilterRaumuebersicht();
      }
    });
    return false;
  });
  
  jQuery('.suchen_button').on('click', function() {
    var buttons = {};
    buttons[KuferTools.Button.Bezeichnung.FilterSetzen] = function() {
      jQuery(this).find("form").trigger('submit');
      jQuery(this).dialog('close');
    };
    
    buttons[KuferTools.Button.Bezeichnung.FilterLeeren] = function() {
      var selectOptions =  $('#searchgebaeude option');
      for(var i = 0; i < selectOptions.length; i++){
        selectOptions[i].selected = false;
      }
      jQuery(this).find("form").trigger('submit');
      jQuery(this).dialog('close');
    };
    
    buttons[KuferTools.Button.Bezeichnung.Schliessen] = function() {
      jQuery(this).dialog('close');
    };
    
    // ein jQuery-Dialog öffnen
    // davor über Ajax ein Paar infos holen, wie was freigegeben ist? Oder einfach wie bisher per Ajax den kompletten inhalt laden?
    KuferTools.Utils.AjaxLadebildschirm.Start();
    jQuery.post('index.php?tool_id='+KuferTools.ToolId+'&action=showFilter', function(data) {
      KuferTools.showMessage({meldung: data, title: 'Raumfilter', buttons: buttons, width: 'auto', pressEnterFunc: buttons[KuferTools.Button.Bezeichnung.FilterSetzen]});
      KuferTools.Utils.AjaxLadebildschirm.Stop();
      //statt: showMessage(data, 'Kursfilter', buttons);
      var $form = jQuery(this).find('#suchformDiv');
    });
  });
  
  jQuery('.hmdruckliste').on('click', function() {
    var buttons = {};
    buttons[KuferTools.Button.Bezeichnung.Abbrechen] = function() {
      jQuery(this).dialog('close');
    };
    
    var raumParam = '';
    if(KuferTools.ToolSectionId == 339 || KuferTools.ToolSectionId == 417) {
      raumParam = '&rnr=' + KuferTools.raumNr;
    }
    var selectedRaeume = KuferTools.GetIdsToSelect();
   /** if (selectedRaeume.length == 0) {
      KuferTools.showMessage({'meldung': 'Die Druckausgabe für die Hausmeisterlisten kann nicht erstellt werden. Bitte treffen Sie eine Auswahl!', 'title': 'Druck der Hausmeisterlisten', 'buttons': buttons});
    }
    else {**/
      KuferTools.HandleListenKlick("Druck der Hausmeisterlisten", "index.php?tool_id=" + KuferTools.ToolId + "&action=showHmDruckListen" +raumParam, '');
   // }
   $(this).append(KuferTools.Raumuebersicht.RaumartDialog);
  });
  
  jQuery('.belegungsplan').on('click', function(event) {
    event.preventDefault(); 
    var url = $(this).attr('href');
    window.location.href = url + KuferTools.GetUrlPartForIdSelection(true);
  });

  $("#hmListDruckButton4Details").on('click', function(event){
    event.preventDefault();
    KuferTools.HandleDetailsDruckListenKlick('hausmeisterlisten', "Druck der Hausmeisterlisten", "index.php?tool_id=" + KuferTools.ToolId + "&action=showHmDruckListen", 'auto', true);
  });
 /**   KuferTools.Utils.AjaxLadebildschirm.Start();
    jQuery.post('index.php?tool_id='+KuferTools.ToolId+'&action=showFilter', function(data) {
      KuferTools.showMessage({meldung: data, title: 'Raumfilter', buttons: buttons, width: 'auto', pressEnterFunc: buttons[KuferTools.Button.Bezeichnung.FilterSetzen]});
      KuferTools.Utils.AjaxLadebildschirm.Stop();
      //statt: showMessage(data, 'Kursfilter', buttons);
      var $form = jQuery(this).find('#suchformDiv');
    });**/
  

  //Klickhandler für die Hausmeisterdrucklisten; unterscheidet zwischen Raumübersicht im Hausmeistertool (Tool 5) und 
  //Raumübersicht für MA (Tool 34)

  $(".hmDruckListe").on('click', function(event){
	    event.preventDefault();
      toolsectionId = 15;
      if (KuferTools.ToolId === 34)
        toolsectionId = 415;
	    KuferTools.HandleListenKlick('hausmeisterlisten', "Druck der Hausmeisterlisten", "tool_id=" + KuferTools.ToolId + "&toolsection_id=" + 
                                    toolsectionId + "&zielListe=" );
	  });
          
    
 
  $('.main_buttons a.blaettern').on('click', function () {
    var $this = $(this);
    var href = $this.prop('href');
	$this.prop('href', href + KuferTools.GetUrlPartForIdSelection());
  });	
  
   //Sendet eine Ajax-Anfrage an den Server
 $("#filter_button_raumbelegung").on('click', function(){
	 var vonDat = $("#raumbelegung_von_dat").val();
	 var bisDat = $("#raumbelegung_bis_dat").val();
	 //var params = document.URL.split("?")[1].split("#")[0].split("&");
	 
	 KuferTools.RaumDetails.HandleRaumBelegungFilterKlick(KuferTools.RaumTermineSectionId, KuferTools.RaumDetails.Raum.Rnr, vonDat, bisDat)
	 });
         
         
  jQuery(document).on('click', '.filter_raum_termine', function() {
    KuferTools.RaumdetailsFilter('showFilterRaumTermine', 'setFilterRaumTermine', 'resetFilterRaumTermine', 'Filter für die Anzeige der Termine zum Raum');

     /** jQuery(document).find('button', '#dialogTermineFilter').on( "click", function() {
      
   
      var $vonDat = $('#raum_termineDatumVon');
      var $bisDat = $('#raum_termineDatumBis');
     setFilter4RaumdetailsReiter($vonDat, $bisDat, this.value);
    }); **/
   /** else {
      KuferTools.showMessage({meldung: filterTermine, title: 'Filter für die Anzeige der Termine zum Kurs ' + KuferTools.Knr, buttons: buttons, width: 'auto'});
    }**/
  });
  
  jQuery(document).on('click', '.filter_raum_kursdetails', function() {
    KuferTools.RaumdetailsFilter('showFilterKurse', 'setFilterKursdetails', 'resetFilterKursdetails', 'Filter für die Anzeige der Kurse zum Raum');
  });
  
  KuferTools.RaumdetailsFilter = function (showActionParam, setActionParam, resetActionParam, title)
  {
    var activeReiterClass = KuferTools.getActiveReiterClass() + '_content';
    
    var filterTermine;
    var filterTermineOrig;
    var buttons = {};
    buttons[KuferTools.Button.Bezeichnung.FilterSetzen] = function() {
      if(KuferTools.ValidateFormInput($('#suchformDiv'))) {
        KuferTools.Utils.AjaxLadebildschirm.Partial(jQuery('.reiter_content'));
        filterTermine = jQuery(this).clone();
        var $form = jQuery(this).find('#suchformDiv');
        $form.prop('action', 'index.php?tool_id=' + KuferTools.ToolId + '&action=' + setActionParam + '&rnr=' + KuferTools.raumNr);
        var link = $form.prop('action');
        KuferTools.Utils.doAjaxPost($form, link)
          .then(resp => resp.text())
          .then(function(msg) {
            KuferTools.Utils.AjaxLadebildschirm.Stop();
            KuferTools.fadeInReiterContent(msg, activeReiterClass);
          });
        jQuery(this).dialog('close');
      }
    };
    
    buttons[KuferTools.Button.Bezeichnung.FilterLeeren] = function() {
      KuferTools.Utils.AjaxLadebildschirm.Partial(jQuery('.reiter_content'));
      filterTermine = filterTermineOrig;
      jQuery(this).dialog('close');
      jQuery.post('index.php?tool_id=' + KuferTools.ToolId + '&action=' + resetActionParam + '&rnr=' + KuferTools.raumNr, function(msg) {
        KuferTools.Utils.AjaxLadebildschirm.Stop();
        KuferTools.fadeInReiterContent(msg, activeReiterClass);
      });
    };
    
    buttons[KuferTools.Button.Bezeichnung.Schliessen] = function() {
      filterTermine = jQuery(this).clone();
      jQuery(this).dialog('close');
    };
    
    if (typeof filterTermine === 'undefined') {
      KuferTools.Utils.AjaxLadebildschirm.Start();
      jQuery.post('index.php?tool_id=' + KuferTools.ToolId + '&action=' + showActionParam + '&rnr=' + KuferTools.raumNr, function(msg) {
        KuferTools.Utils.AjaxLadebildschirm.Stop();
        filterTermineOrig = msg;
        KuferTools.showMessage({meldung: msg, title: title, buttons: buttons, width: 'auto', pressEnterFunc: buttons[KuferTools.Button.Bezeichnung.FilterSetzen]});
        
        jQuery(document).find('button', '#dialogTermineFilter').on('click', function() {
          setTerminFilterVals(this.value);
        });
        KuferTools.InitValidate_notooltip($('#suchformDiv'));
      });
    }
    else {
      KuferTools.showMessage({meldung: filterTermine, title: title, buttons: buttons, width: 'auto', pressEnterFunc: buttons[KuferTools.Button.Bezeichnung.FilterSetzen]});
      jQuery(document).find('button', '#dialogTermineFilter').on('click', function() {
          setTerminFilterVals(this.value);
        });
      KuferTools.InitValidate_notooltip($('#suchformDiv'));
    }
  };
  
  // die Funktion wird in Raumgrafik und Gebäudegrafik aufgerufen 
  KuferTools.Utils.kuerzeInhaltAufZeile('grafik_kursinhalt');
  
  jQuery('.reset_filter_button_raeume').on('click', function() {
    window.location.href = 'index.php?tool_id=' + KuferTools.ToolId + '&action=setFilter';
  });
  
  jQuery('.quartalsuebersicht_raumuebersicht').on('click', function(e) {
    e.preventDefault();
    var href = jQuery(this).attr('href');
    var selectedIds = KuferTools.GetSelectedIds();
    if (selectedIds.length == 0) {
      selectedIds = KuferTools.GetAllIds4Tab();
    }
    
    href += '&rnr=' + selectedIds;
    
    window.open(href, '_blank');
  });
}); //End Ready Handler
