<!--
/**
 * Saemtliche Funktionen fuer das Pharmacy-Object
 *
 * @package emergencyPlan
 */

function pharmacy()
{

   var tag = null;
   var monat = null;
   var yahr = null;

   /**
    * Diese Methode lädt die Informationen einer bestimmten Apotheke.
    *
    * @param Integer pharmacyID        Die ID der Apotheke, die gelöscht werden soll
    * @param String  pSortField        Der Name des Feldes, nach dem sortiert werden soll
    * @param String  pSortDirection    Die Sortierrichtung (DESC oder ASC)
    * @param Integer pCurrentPage      Die Seite, die momentan angezeigt wird
    * @param Integer locationId        Die Id des Standortes wo die Apotheke liegt
    * @param String  locationName      Der Name des Standortes wo die Apotheke liegt
    */
   this.getPharmacyByID = function(pharmacyID, pSortField,pSortDirection,pCurrentPage, locationId, locationName)
   {
      params    = new Array();
      params[0] = 'id='+pharmacyID;
      params[1] = 'sortField=' + pSortField;
      params[2] = 'sortDirection=' + pSortDirection;
      params[3] = 'currentPage=' + pCurrentPage;
      params[4] = 'AjaxRequest=false' ;
      params[5] = 'locationID=' +  locationId;
      params[6] = 'locationName=' +  locationName;
      mySrc     = '/admin/notdienst/getPharmacies';
      sendXmlHttpRequest(mySrc, 'getPharmacies', params, XmlHttpRequestCallBack);
   }

   /**
    * Methode veranlasst das Sortieren von Apotheken in einer Liste.
    *
    * @param String  pSortField        Der Name des Feldes, nach dem sortiert werden soll
    * @param String  pSortDirection    Die Sortierrichtung (DESC oder ASC)
    * @param Integer pCurrentPage      Die Seite, die momentan angezeigt wird
    * @param Integer locationId        Die Id des Standortes wo die Apotheke liegt
    * @param String  locationName      Der Name des Standortes wo die Apotheke liegt
    */
   this.sortPharmacies = function(pSortField,pSortDirection,pCurrentPage, locationId, locationName)
   {
      params    = new Array();
      params[0] = 'cmd=sortPharmacies';
      params[1] = 'sortDirection=' + pSortDirection;
      params[2] = 'sortField=' + pSortField;
      params[3] = 'currentPage=' + pCurrentPage;
      params[4] = 'locationID=' +  locationId;
      params[5] = 'locationName=' +  locationName;
      mySrc     = '/admin/notdienst/getPharmacies';
      sendXmlHttpRequest(mySrc, 'getPharmacies', params, XmlHttpRequestCallBack, 'opacity');
   }

   /**
    * Methode veranlasst das Paging von Apotheken in einer Liste.
    *
    * @param Object obj            Das HTML-Dokument
    * @param String pSortField     Der Name des Feldes, nach dem sortiert werden soll
    * @param String pSortDirection Die Sortierrichtung (DESC oder ASC). Wird ASC übergeben, so wird daraus DESC und umgekehrt (nur wenn pCalledFromPager == true)
    * @param Integer locationId        Die Id des Standortes wo die Apotheke liegt
    * @param String  locationName      Der Name des Standortes wo die Apotheke liegt
    */
   this.browsePharmacies = function(obj,pSortField,pSortDirection, locationId, locationName)
   {
      var pageNumber = ':';
      if(obj.value)
      {
         pageNumber = obj.value;
      }else
      {
         pageNumber = obj.innerHTML;
      }

      params    = new Array();
      params[0] = 'cmd=sortPharmacies';
      params[1] = 'sortDirection=' + pSortDirection;
      params[2] = 'sortField=' + pSortField;
      params[3] = 'currentPage=' + pageNumber
      params[4] = 'locationID=' +  locationId;
      params[5] = 'locationName=' +  locationName;
      mySrc     = '/admin/notdienst/getPharmacies';
      sendXmlHttpRequest(mySrc, 'getPharmacies', params, XmlHttpRequestCallBack);
   }

   /**
    * Diese Methode löscht die Inhalte des Apotheken-Erstellformulars. ( bei drücken des Abbrechen-Buttons)
    *
    * @param Integer pharmacyID        Die ID der Apotheke, die gelöscht werden soll
    */
   this.resetPharmacyInfos = function(pharmacyID)
   {
      params    = new Array();
      params[0] = 'reset=ja';
      mySrc     = '/admin/notdienst/getPharmacies';
      sendXmlHttpRequest(mySrc, 'getPharmacies', params, XmlHttpRequestCallBack);
   }

   /**
    * Methode als Sicherheitsabfrage bevor man eine Apotheke löscht.
    *
    * @param Integer pharmacyID     Die ID der Apotheke, die gelöscht werden soll
    * @param Integer pharmacyName   Der Nem der Apotheke, die gelöscht werden soll
    * @param String  pSortField        Der Name des Feldes, nach dem sortiert werden soll
    * @param String  pSortDirection    Die Sortierrichtung (DESC oder ASC)
    * @param Integer pCurrentPage      Die Seite, die momentan angezeigt wird
    * @param Integer locationId        Die Id des Standortes wo die Apotheke liegt
    * @param String  locationName      Der Name des Standortes wo die Apotheke liegt
    */
   this.deletePharmacy = function(pharmacyID , pharmacyName, pSortField, pSortDirection, pCurrentPage, locationId, locationName)
   {
      params    = new Array();
      params[0] = 'id='+pharmacyID;
      params[1] = 'sortField=' + pSortField;
      params[2] = 'sortDirection=' + pSortDirection;
      params[3] = 'currentPage=' + pCurrentPage;
      params[4] = 'locationID=' +  locationId;
      params[5] = 'locationName=' +  locationName;
      boDialog('confirm',"Wollen Sie die Apotheke '"+pharmacyName+"' wicklich l&ouml;schen?",null,null,pharmacyObject.deletePharmacyConfirmed,params,null,null);
      return false;
   }

   /**
    * Methode zum Löschen einer bestimmten Apotheke.
    *
    * @param Array params     die Parameter die die Methode deletePharmacy() liefert
    */
   this.deletePharmacyConfirmed = function(params)
   {
      mySrc     = '/admin/notdienst/deletePharmacy';
      sendXmlHttpRequest(mySrc, 'getPharmacies', params, XmlHttpRequestCallBack);
   }

    /**
    * Methode zum Ändern des Status einer bestimmten Apotheke.
    *
    * @param Integer pharmacyID        Die ID der Apotheke dessen Status geändert werden soll
    * @param String  pSortField        Der Name des Feldes, nach dem sortiert werden soll
    * @param String  pSortDirection    Die Sortierrichtung (DESC oder ASC)
    * @param Integer pCurrentPage      Die Seite, die momentan angezeigt wird
    * @param Integer locationId        Die Id des Standortes wo die Apotheke liegt
    * @param String  locationName      Der Name des Standortes wo die Apotheke liegt
    */
   this.changePharmacyStatus = function(pharmacyID , pSortField, pSortDirection, pCurrentPage, locationId, locationName)
   {
      params    = new Array();
      params[0] = 'id='+pharmacyID;
      params[1] = 'sortField=' + pSortField;
      params[2] = 'sortDirection=' + pSortDirection;
      params[3] = 'currentPage=' + pCurrentPage;
      params[4] = 'locationID=' +  locationId;
      params[5] = 'locationName=' +  locationName;
      mySrc     = '/admin/notdienst/changePharmacyStatus';
      sendXmlHttpRequest(mySrc, 'getPharmacies', params, XmlHttpRequestCallBack);
   }


   // Ab hier sind die Methoden für den menüpunkt Gruppen.

   /**
    * Methode veranlasst das Sortieren von Gruppen in einer Liste.
    *
    * @param String  pSortField Der    Name des Feldes, nach dem sortiert werden soll
    * @param String  pSortDirection    Die Sortierrichtung (DESC oder ASC)
    * @param Integer pCurrentPage      Die Seite, die momentan angezeigt wird
    * @param Integer locationId        Die Id des Standortes wo die Apotheke liegt
    * @param String  locationName      Der Name des Standortes wo die Apotheke liegt
    */
   this.sortGroups = function(pSortField,pSortDirection,pCurrentPage, locationId, locationName)
   {
      params    = new Array();
      params[0] = 'cmd=sortGroups';
      params[1] = 'sortDirection=' + pSortDirection;
      params[2] = 'sortField=' + pSortField;
      params[3] = 'currentPage=' + pCurrentPage;
      params[4] = 'locationID=' +  locationId;
      params[5] = 'locationName=' +  locationName;
      mySrc     = '/admin/notdienst/getGroups';
      sendXmlHttpRequest(mySrc, 'groupLists', params, XmlHttpRequestCallBack, 'opacity');
   }

   /**
    * Methode veranlasst das Paging von gruppen in einer Liste.
    *
    * @param Object obj                Das HTML-Dokument
    * @param String pSortField         Der Name des Feldes, nach dem sortiert werden soll
    * @param String pSortDirection     Die Sortierrichtung (DESC oder ASC). Wird ASC übergeben, so wird daraus DESC und umgekehrt (nur wenn pCalledFromPager == true)
    * @param Integer locationId        Die Id des Standortes wo die Apotheke liegt
    * @param String  locationName      Der Name des Standortes wo die Apotheke liegt
    */
   this.browseGroups = function(obj,pSortField,pSortDirection, locationId, locationName)
   {
      var pageNumber = ':';
      if(obj.value)
      {
         pageNumber = obj.value;
      }else
      {
         pageNumber = obj.innerHTML;
      }

      params    = new Array();
      params[0] = 'cmd=sortGroups';
      params[1] = 'sortDirection=' + pSortDirection;
      params[2] = 'sortField=' + pSortField;
      params[3] = 'currentPage=' + pageNumber;
      params[4] = 'locationID=' +  locationId;
      params[5] = 'locationName=' +  locationName;
      mySrc     = '/admin/notdienst/getGroups';
      sendXmlHttpRequest(mySrc, 'groupLists', params, XmlHttpRequestCallBack);
   }

   /**
    * Methode zum Löschen einer bestimmten Gruppe (Mit Confirm Abfrage).
    *
    * @param Integer groupID           Die ID der Gruppe, die gelöscht werden soll
    * @param String  groupName         Der Name der Gruppe, die gelöscht werden soll
    * @param String  pSortField        Der Name des Feldes, nach dem sortiert werden soll
    * @param String  pSortDirection    Die Sortierrichtung (DESC oder ASC)
    * @param Integer pCurrentPage      Die Seite, die momentan angezeigt wird
    * @param Integer locationId        Die Id des Standortes wo die Gruppe liegt
    * @param String  locationName      Der Name des Standortes wo die Gruppe liegt
    */
   this.deleteGroup = function(groupID , groupName , pSortField,pSortDirection,pCurrentPage, locationId, locationName)
   {
     params    = new Array();
     params[0] = 'id='+groupID;
     params[1] = 'sortField=' + pSortField;
     params[2] = 'sortDirection=' + pSortDirection;
     params[3] = 'currentPage=' + pCurrentPage;
     params[4] = 'locationID=' +  locationId;
     params[5] = 'locationName=' +  locationName;
     boDialog('confirm',"Wollen Sie die Gruppe '"+groupName+"' wicklich l&ouml;schen?",null,null,pharmacyObject.deleteGroupConfirmed,params,null,null);
     return false;
   }

   /**
    * Methode zum Löschen einer bestimmten gruppe.
    *
    * @param Array params     Array mit den Parametern der methode deleteGroup().
    */
   this.deleteGroupConfirmed = function(params)
   {
      mySrc     = '/admin/notdienst/deleteGroup';
      sendXmlHttpRequest(mySrc, 'groupLists', params, XmlHttpRequestCallBack);
   }

   /**
    * Methode zur Bearbeitung einer Gruppe.
    *
    * @param Integer groupID     Die ID der Gruppe, die bearbeitet werden soll
    * @param String  pSortField        Der Name des Feldes, nach dem sortiert werden soll
    * @param String  pSortDirection    Die Sortierrichtung (DESC oder ASC)
    * @param Integer pCurrentPage      Die Seite, die momentan angezeigt wird
    * @param Integer locationId        Die Id des Standortes wo die Gruppe liegt
    * @param String  locationName      Der Name des Standortes wo die Gruppe liegt
    */
   this.editGroup = function(groupID, pSortField, pSortDirection, pCurrentPage, locationId, locationName)
   {
      document.getElementById('groupDetails').style.display = 'block';
      document.getElementById('groupDetails_topBar').innerHTML = 'Gruppe bearbeiten'

      params    = new Array();
      params[0] = 'id='+groupID;
      params[1] = 'sortField=' + pSortField;
      params[2] = 'sortDirection=' + pSortDirection;
      params[3] = 'currentPage=' + pCurrentPage;
      params[4] = 'locationID=' +  locationId;
      params[5] = 'locationName=' +  locationName;
      mySrc     = '/admin/notdienst/editGroup';
      sendXmlHttpRequest(mySrc, 'groupDetailsContent', params, XmlHttpRequestCallBack);
   }

   /**
    * Schließt den DragAndDrop-Div .
    *
    * @param Integer id      Die Id des Divs der geschloßen werde soll
    * @return void
    */
   this.closeDragAndDrop = function(id)
   {
      document.getElementById(id).style.display = 'none';
   }

   /**
    * Methode zum Ändern des Status einer bestimmten Gruppe.
    *
    * @param Integer groupID     Die ID der gruppe dessn Status geändert werden soll.
    * @param String  pSortField        Der Name des Feldes, nach dem sortiert werden soll
    * @param String  pSortDirection    Die Sortierrichtung (DESC oder ASC)
    * @param Integer pCurrentPage      Die Seite, die momentan angezeigt wird
    * @param Integer locationId        Die Id des Standortes wo die Gruppe liegt
    * @param String  locationName      Der Name des Standortes wo die Gruppe liegt
    */
   this.changeGroupStatus = function(groupID, pSortField, pSortDirection, pCurrentPage, locationId, locationName)
   {
      params    = new Array();
      params[0] = 'id='+groupID;
      params[1] = 'sortField=' + pSortField;
      params[2] = 'sortDirection=' + pSortDirection;
      params[3] = 'currentPage=' + pCurrentPage;
      params[4] = 'locationID=' +  locationId;
      params[5] = 'locationName=' +  locationName;
      mySrc     = '/admin/notdienst/changeGroupStatus';
      sendXmlHttpRequest(mySrc, 'groupLists', params, XmlHttpRequestCallBack);
   }

   /**
    * Methode fügt eine Apotheke zu einer Gruppe hinzu.
    *
    * @param Integer groupID        Die ID der gruppe zu der die Apotheke hinzugefügt werden soll.
    * @param Integer pharmacyID     Die ID der Apotheke die zur Gruppe gehören soll.
    */
   this.addPharmacyToGroup = function( pharmacyID  )
   {
      var pharmacy = document.getElementById(pharmacyID);
      var inGroup = document.getElementById('inGroup').firstChild.nextSibling;
      var outerGroup = document.getElementById('outerGroup').firstChild.nextSibling;

      // der Add-Icon wird hier geschnappt.
      var apoName = pharmacy.nextSibling;
      var icon = pharmacy.firstChild;
      var link = pharmacy;
      var tr   = link.parentNode.parentNode;
      outerGroup.removeChild(tr);
      // Icon-Bild wird von Add auf löschen geändert.
      icon.src = icon.src.replace("Add" , "Delete");
      // Der passende Link wird erstellt
      var tr = document.createElement('TR');
      var td = document.createElement('TD');
      var link = document.createElement('A');
      link.href = "#";
      link.id = pharmacyID;
      link.appendChild(icon);
      td.appendChild(apoName);
      td.appendChild(link);
      tr.appendChild(td);

      inGroup.appendChild(tr);
      link.setAttribute("onclick", "pharmacyObject.deletePharmacyFromGroup( '"+pharmacyID+"' )");
   }


   /**
    * Löscht eine Apotheke aus einer Gruppe.
    *
    * @param Integer groupID        Die ID der gruppe aus der die Apotheke gelöscht werden soll.
    * @param Integer pharmacyID     Die ID der Apotheke die aus der Gruppe gelöscht werden soll.
    */
   this.deletePharmacyFromGroup = function( pharmacyID )
   {
      var pharmacy = document.getElementById(pharmacyID);
      var inGroup = document.getElementById('inGroup').firstChild.nextSibling;
      var outerGroup = document.getElementById('outerGroup').firstChild.nextSibling;
      var apoName = pharmacy.parentNode.firstChild;
      var link = pharmacy;
      var tr   = pharmacy.parentNode.parentNode;
      var icon = pharmacy.firstChild;
      inGroup.removeChild(tr);
      // Icon-Bild wird von Add auf löschen geändert.
      icon.src = icon.src.replace("Delete" , "Add");
      // Der passende Link wird erstellt
      var tr = document.createElement('TR');
      var td = document.createElement('TD');
      var link = document.createElement('A');
      link.href = "#";
      link.id = pharmacyID;
      link.appendChild(icon);
      td.appendChild(link);
      td.appendChild(apoName);
      tr.appendChild(td);
      outerGroup.appendChild(tr);
      link.setAttribute("onclick", "pharmacyObject.addPharmacyToGroup( '"+pharmacyID+"' )");
   }

   this.savePharmaciesToGroup = function(pSortField, pSortDirection, pCurrentPage, locationId, locationName)
   {
      var pharmaciesOn = new Array();
      var pharmaciesOut = new Array();
      var groupID = document.getElementById('group_id').value;
      var inGroup = document.getElementById('inGroup').firstChild.nextSibling;
      var outerGroup = document.getElementById('outerGroup').firstChild.nextSibling;
      var tableContentOn = inGroup.getElementsByTagName('A');
      var tableContentOuter = outerGroup.getElementsByTagName('A');
      var groupName = document.getElementById('gName').value;

      for (var i=0 ; i< tableContentOn.length ; i++)
      {
         pharmaciesOn[i] = tableContentOn[i].id;
      }

      for (var i=0 ; i< tableContentOuter.length ; i++)
      {
         pharmaciesOut[i] = tableContentOuter[i].id;
      }

      params    = new Array();
      params[0] = 'groupID='+groupID;
      params[1] = 'pharmaciesOn='+pharmaciesOn;
      params[2] = 'pharmaciesOut='+pharmaciesOut;
      params[3] = 'sortField=' + pSortField;
      params[4] = 'sortDirection=' + pSortDirection;
      params[5] = 'currentPage=' + pCurrentPage;
      params[6] = 'groupName=' + groupName;
      params[7] = 'locationID=' +  locationId;
      params[8] = 'locationName=' +  locationName;
      mySrc     = '/admin/notdienst/savePharmaciesToGroup';
      sendXmlHttpRequest(mySrc, 'groupList', params, XmlHttpRequestCallBack);
   }

   /**
    * holt das gecklikte Datum aus dem Calender
    *
    * @param Calender calender     der Calender.js selbst
    */
   this.getDate = function(calendar)
   {
      if(calendar != undefined)
      {
         pharmacyObject.tag = calendar.date.getDate();
         pharmacyObject.monat = calendar.date.getMonth()+1;
         pharmacyObject.jahr = calendar.date.getFullYear();
      }

      var locationID = document.getElementById('defaultLocationId').value;
      var locationName = document.getElementById('defaultLocationName').value;

      params    = new Array();
      params[0] = 'day='+pharmacyObject.tag;
      params[1] = 'month='+pharmacyObject.monat;
      params[2] = 'year='+pharmacyObject.jahr;
      params[3] = 'locationID=' +  locationID;
      params[4] = 'locationName=' +  locationName;
      mySrc     = '/admin/notdienst/getCalendarDate';
      sendXmlHttpRequest(mySrc, 'managePlan', params, XmlHttpRequestCallBack);
   }

   /**
    * Öffnet das DragAndDrop-Menü um Gruppen in den Primären-Notdienst-Kalender zu bearbeiten (Hinzufügen/löschen).
    *
    * @param int     date              das UNIX-Timestamp des Tages
    * @param Integer locationId        Die Id des Standortes wo die Gruppe liegt
    * @param String  locationName      Der Name des Standortes wo die Gruppe liegt
    *
    */
   this.editGroupsOnPlanDate = function(date , locationId, locationName)
   {
      document.getElementById('planDetails').style.display = 'block';
      document.getElementById('planDetails_topBar').innerHTML = 'Primärer Notdienst';

      params    = new Array();
      params[0] = 'date='+date;
      params[1] = 'locationID=' +  locationId;
      params[2] = 'locationName=' +  locationName;
      mySrc     = '/admin/notdienst/editGroupsOnPlanDate';
      sendXmlHttpRequest(mySrc, 'planDetailsContent', params, XmlHttpRequestCallBack);
   }

   /**
    * Öffnet das DragAndDrop-Menü um Gruppen in den Sekundären-Notdienst-Kalender zu bearbeiten (Hinzufügen/löschen).
    *
    * @param int     date              das UNIX-Timestamp des Tages
    * @param Integer locationId        Die Id des Standortes wo die Gruppe liegt
    * @param String  locationName      Der Name des Standortes wo die Gruppe liegt
    */
   this.editGroupsOnSupplementPlanDate = function(date, locationId, locationName)
   {
      document.getElementById('planDetails').style.display = 'block';
      document.getElementById('planDetails_topBar').innerHTML = 'Sekundärer Notdienst';

      params    = new Array();
      params[0] = 'date='+date;
      params[1] = 'locationID=' +  locationId;
      params[2] = 'locationName=' +  locationName;
      mySrc     = '/admin/notdienst/editGroupsOnSupplementPlanDate';
      sendXmlHttpRequest(mySrc, 'planDetailsContent', params, XmlHttpRequestCallBack);
   }

    /**
    * Fügt eine Gruppe zu einem bestimmten Tag des Primären-Notdienst-Kalenders hinzu.
    *
    * @param Integer groupID           Die ID der gruppe die gelöscht werden soll.
    */
   this.addGroupToPlanDate = function(groupID)
   {
      var group = document.getElementById(groupID);
      var inPlan = document.getElementById('groupsOnPlanDate').firstChild.nextSibling;
      var outerPlan = document.getElementById('groupsOuterPlanDate').firstChild.nextSibling;
      var groupName = group.nextSibling;
      var icon = group.firstChild;
      var link = group;
      var tr   = link.parentNode.parentNode;
      outerPlan.removeChild(tr);
      // Icon-Bild wird von Add auf löschen geändert.
      icon.src = icon.src.replace("Add" , "Delete");
      // Der passende Link wird erstellt
      var tr = document.createElement('TR');
      var td = document.createElement('TD');
      var link = document.createElement('A');
      link.href = "#";
      link.id = groupID;
      link.appendChild(icon);
      td.appendChild(groupName);
      td.appendChild(link);
      tr.appendChild(td);

      inPlan.appendChild(tr);
      link.setAttribute("onclick", "pharmacyObject.deleteGroupFromPlanDate( '"+groupID+"' )");
   }

   /**
    * Löscht eine Gruppe aus einem bestimmten Tag des Primären-Notdienst-Kalenders.
    *
    * @param Integer groupID           Die ID der gruppe die gelöscht werden soll.
    */
   this.deleteGroupFromPlanDate = function(groupID)
   {
      var group = document.getElementById(groupID);
      var inPlan = document.getElementById('groupsOnPlanDate').firstChild.nextSibling;
      var outerPlan = document.getElementById('groupsOuterPlanDate').firstChild.nextSibling;
      var groupName = group.parentNode.firstChild;
      var icon = group.firstChild;
      var link = group;
      var tr   = link.parentNode.parentNode;
      inPlan.removeChild(tr);
      // Icon-Bild wird von Add auf löschen geändert.
      icon.src = icon.src.replace("Delete" , "Add");
      // Der passende Link wird erstellt
      var tr = document.createElement('TR');
      var td = document.createElement('TD');
      var link = document.createElement('A');
      link.href = "#";
      link.id = groupID;
      link.appendChild(icon);
      td.appendChild(link);
      td.appendChild(groupName);
      tr.appendChild(td);
      outerPlan.appendChild(tr);
      link.setAttribute("onclick", "pharmacyObject.addGroupToPlanDate( '"+groupID+"' )");
   }

   /**
    * speichert eine Anzahl der gruppen für einen bestimmten Tag des primären-Notdienst-Kalenders hinzu.
    *
    * @param Integer groupID           Die ID der gruppe die gelöscht werden soll.
    * @param Integer locationId        Die Id des Standortes wo die Gruppe liegt
    * @param String  locationName      Der Name des Standortes wo die Gruppe liegt
    */
   this.saveGroupsToPlanDate = function(locationId, locationName)
   {
      var groupsOn = new Array();
      var groupsOut = new Array();

      var timestamp = document.getElementById('timestamp').value;
      var date = document.getElementById('datum').value;
      var groupsOnPlanDate = document.getElementById('groupsOnPlanDate').firstChild.nextSibling;
      var groupsOuterPlanDate = document.getElementById('groupsOuterPlanDate').firstChild.nextSibling;

      var dateContentOn = groupsOnPlanDate.getElementsByTagName('A');
      var dateContentOuter = groupsOuterPlanDate.getElementsByTagName('A');

      for (var i=0 ; i< dateContentOn.length ; i++)
      {
         groupsOn[i] = dateContentOn[i].id;
      }

      for (var i=0 ; i< dateContentOuter.length ; i++)
      {
         groupsOut[i] = dateContentOuter[i].id;
      }

      params    = new Array();
      params[0] = 'datum='+date;
      params[1] = 'timestamp='+timestamp;
      params[2] = 'groupsOn='+groupsOn;
      params[3] = 'groupsOut='+groupsOut;
      params[4] = 'locationID=' +  locationId;
      params[5] = 'locationName=' +  locationName;
      mySrc     = '/admin/notdienst/saveGroupsToPlanDate';
      sendXmlHttpRequest(mySrc, 'managePlan', params, XmlHttpRequestCallBack);

   }

   /**
    * Fügt eine Gruppe zu einem bestimmten Tag des Sekundären-Notdienst-Kalenders hinzu.
    *
    * @param Integer groupID           Die ID der gruppe die gelöscht werden soll.
    */
   this.addGroupToSupplementPlanDate = function(groupID)
   {
      var group = document.getElementById(groupID);
      var inPlan = document.getElementById('groupsOnSupplementPlanDate').firstChild.nextSibling;
      var outerPlan = document.getElementById('groupsOuterSupplementPlanDate').firstChild.nextSibling;
      var groupName = group.nextSibling;
      var icon = group.firstChild;
      var link = group;
      var tr   = link.parentNode.parentNode;
      outerPlan.removeChild(tr);
      // Icon-Bild wird von Add auf löschen geändert.
      icon.src = icon.src.replace("Add" , "Delete");
      // Der passende Link wird erstellt
      var tr = document.createElement('TR');
      var td = document.createElement('TD');
      var link = document.createElement('A');
      link.href = "#";
      link.id = groupID;
      link.appendChild(icon);
      td.appendChild(groupName);
      td.appendChild(link);
      tr.appendChild(td);

      inPlan.appendChild(tr);
      link.setAttribute("onclick", "pharmacyObject.deleteGroupFromSupplementPlanDate( '"+groupID+"' )");
   }

   /**
    * Löscht eine Gruppe aus einem bestimmten Tag des Sekundären-Notdienst-Kalenders.
    *
    * @param Integer groupID           Die ID der gruppe die gelöscht werden soll.
    */
   this.deleteGroupFromSupplementPlanDate = function(groupID)
   {
      var group = document.getElementById(groupID);
      var inPlan = document.getElementById('groupsOnSupplementPlanDate').firstChild.nextSibling;
      var outerPlan = document.getElementById('groupsOuterSupplementPlanDate').firstChild.nextSibling;
      var groupName = group.parentNode.firstChild;
      var icon = group.firstChild;
      var link = group;
      var tr   = link.parentNode.parentNode;
      inPlan.removeChild(tr);
      // Icon-Bild wird von Add auf löschen geändert.
      icon.src = icon.src.replace("Delete" , "Add");
      // Der passende Link wird erstellt
      var tr = document.createElement('TR');
      var td = document.createElement('TD');
      var link = document.createElement('A');
      link.href = "#";
      link.id = groupID;
      link.appendChild(icon);
      td.appendChild(link);
      td.appendChild(groupName);
      tr.appendChild(td);
      outerPlan.appendChild(tr);
      link.setAttribute("onclick", "pharmacyObject.addGroupToSupplementPlanDate( '"+groupID+"' )");
   }

    /**
    * speichert eine Anzahl der gruppen für einen bestimmten Tag des sekundären-Notdienst-Kalenders hinzu.
    *
    * @param Integer groupID           Die ID der gruppe die gelöscht werden soll.
    * @param Integer locationId        Die Id des Standortes wo die Gruppe liegt
    * @param String  locationName      Der Name des Standortes wo die Gruppe liegt
    */
   this.saveGroupsToSupplementPlanDate = function(locationId, locationName)
   {
      var groupsOn = new Array();
      var groupsOut = new Array();

      var timestamp = document.getElementById('timestamp').value;
      var date = document.getElementById('datum').value;
      var groupsOnSupplementPlanDate = document.getElementById('groupsOnSupplementPlanDate').firstChild.nextSibling;
      var groupsOuterSupplementPlanDate = document.getElementById('groupsOuterSupplementPlanDate').firstChild.nextSibling;

      var dateContentOn = groupsOnSupplementPlanDate.getElementsByTagName('A');
      var dateContentOuter = groupsOuterSupplementPlanDate.getElementsByTagName('A');

      for (var i=0 ; i< dateContentOn.length ; i++)
      {
         groupsOn[i] = dateContentOn[i].id;
      }

      for (var i=0 ; i< dateContentOuter.length ; i++)
      {
         groupsOut[i] = dateContentOuter[i].id;
      }

      params    = new Array();
      params[0] = 'datum='+date;
      params[1] = 'timestamp='+timestamp;
      params[2] = 'groupsOn='+groupsOn;
      params[3] = 'groupsOut='+groupsOut;
      params[4] = 'locationID=' +  locationId;
      params[5] = 'locationName=' +  locationName;
      mySrc     = '/admin/notdienst/saveGroupsToSupplementPlanDate';
      sendXmlHttpRequest(mySrc, 'managePlan', params, XmlHttpRequestCallBack);
   }

   /**
    * Öffnet das DragAndDrop-Menü um Apotheken in den Primären-Notdienst-Kalenders zu bearbeiten (Hinzufügen/löschen).
    *
    * @param int     date              das UNIX-Timestamp des Tages
    * @param Integer locationId        Die Id des Standortes wo die Gruppe liegt
    * @param String  locationName      Der Name des Standortes wo die Gruppe liegt
    */
   this.editPharmaciesOnPlanDate = function(date , locationId, locationName)
   {
      document.getElementById('planDetails').style.display = 'block';
      document.getElementById('planDetails_topBar').innerHTML = 'Primärer Notdienst';

      params    = new Array();
      params[0] = 'date='+date;
      params[1] = 'locationID=' +  locationId;
      params[2] = 'locationName=' +  locationName;
      mySrc     = '/admin/notdienst/editPharmaciesOnPlanDate';

      sendXmlHttpRequest(mySrc, 'planDetailsContent', params, XmlHttpRequestCallBack);
   }

   /**
    * Öffnet das DragAndDrop-Menü um Apotheken in den Sekundären-Notdienst-Kalenders zu bearbeiten (Hinzufügen/löschen).
    *
    * @param int     date              das UNIX-Timestamp des Tages
    * @param Integer locationId        Die Id des Standortes wo die Gruppe liegt
    * @param String  locationName      Der Name des Standortes wo die Gruppe liegt
    */
   this.editPharmaciesOnSupplementPlanDate = function(date, locationId, locationName)
   {
      document.getElementById('planDetails').style.display = 'block';
      document.getElementById('planDetails_topBar').innerHTML = 'Sekundärer Notdienst';

      params    = new Array();
      params[0] = 'date='+date;
      params[1] = 'locationID=' +  locationId;
      params[2] = 'locationName=' +  locationName;
      mySrc     = '/admin/notdienst/editPharmaciesOnSupplementPlanDate';
      sendXmlHttpRequest(mySrc, 'planDetailsContent', params, XmlHttpRequestCallBack);
   }

    /**
    * Fügt eine Apotheke zu einem bestimmten Tag des Primären-Notdienst-Kalenders hinzu.
    *
    * @param Integer pharmacyID        Die ID der Apotheke die hinzugefügt werden soll.
    */
   this.addPharmacyToPlanDate = function(pharmacyID)
   {
      var pharmacy = document.getElementById(pharmacyID);
      var inPlan = document.getElementById('pharmaciesOnPlanDate').firstChild.nextSibling;
      var outerPlan = document.getElementById('pharmaciesOuterPlanDate').firstChild.nextSibling;
      var pharmacyName = pharmacy.nextSibling;

      var icon = pharmacy.firstChild;
      var link = pharmacy;
      var tr   = link.parentNode.parentNode;
      var pharmacyPostCode = link.parentNode.nextSibling.firstChild;
      outerPlan.removeChild(tr);
      // Icon-Bild wird von Add auf löschen geändert.
      icon.src = icon.src.replace("Add" , "Delete");
      icon.title = "Apotheke Löschen";
      icon.alt="Apotheke Löschen";
      // Der passende Link wird erstellt
      var tr = document.createElement('TR');
      var tdName = document.createElement('TD');
      var tdCode = document.createElement('TD');
      var tdLink = document.createElement('TD');
      var link = document.createElement('A');
      link.href = "#";
      link.id = pharmacyID;

      link.appendChild(icon);
      tdLink.appendChild(link);
      tdName.appendChild(pharmacyName);
      tdCode.appendChild(pharmacyPostCode);

      tr.appendChild(tdName);
      tr.appendChild(tdCode);
      tr.appendChild(tdLink);

      inPlan.appendChild(tr);
      link.setAttribute("onclick", "pharmacyObject.deletePharmacyFromPlanDate( '"+pharmacyID+"' )");
   }

   /**
    * löscht eine Apotheke aus einem bestimmten Tag des Primären-Notdienst-Kalenders.
    *
    * @param Integer pharmacyID        Die ID der Apotheke die gelöscht werden soll.
    */
   this.deletePharmacyFromPlanDate = function(pharmacyID)
   {
      var pharmacy = document.getElementById(pharmacyID);
      var inPlan = document.getElementById('pharmaciesOnPlanDate').firstChild.nextSibling;
      var outerPlan = document.getElementById('pharmaciesOuterPlanDate').firstChild.nextSibling;
      var icon = pharmacy.firstChild;
      var link = pharmacy;
      var pharmacyName = pharmacy.parentNode.parentNode.firstChild.firstChild;
      var pharmacyCode = pharmacy.parentNode.parentNode.firstChild.nextSibling.firstChild;

      var tr   = link.parentNode.parentNode;
      inPlan.removeChild(tr);
      // Icon-Bild wird von Add auf löschen geändert.
      icon.src = icon.src.replace("Delete" , "Add");
      // Der passende Link wird erstellt
      var tr = document.createElement('TR');
      var tdName = document.createElement('TD');
      var tdCode = document.createElement('TD');
      var link = document.createElement('A');
      link.href = "#";
      link.id = pharmacyID;
      link.appendChild(icon);
      tdName.appendChild(link);
      tdName.appendChild(pharmacyName);
      tdCode.appendChild(pharmacyCode);
      tr.appendChild(tdName);
      tr.appendChild(tdCode);
      outerPlan.appendChild(tr);
      link.setAttribute("onclick", "pharmacyObject.addPharmacyToPlanDate( '"+pharmacyID+"' )");
   }

    /**
    * speichert eine Anzahl der Apotheken für einen bestimmten Tag des primären-Notdienst-Kalenders hinzu.
    *
    * @param Integer groupID           Die ID der gruppe die gelöscht werden soll.
    * @param Integer locationId        Die Id des Standortes wo die Gruppe liegt
    * @param String  locationName      Der Name des Standortes wo die Gruppe liegt
    */
   this.savePharmaciesToPlanDate = function(locationId, locationName)
   {
      var pharmaciesOn = new Array();
      var pharmaciesOut = new Array();

      var timestamp = document.getElementById('timestamp').value;
      var date = document.getElementById('datum').value;
      var pharmaciesOnPlanDate = document.getElementById('pharmaciesOnPlanDate').firstChild.nextSibling;
      var pharmaciesOuterPlanDate = document.getElementById('pharmaciesOuterPlanDate').firstChild.nextSibling;

      var dateContentOn = pharmaciesOnPlanDate.getElementsByTagName('A');
      var dateContentOuter = pharmaciesOuterPlanDate.getElementsByTagName('A');

      for (var i=0 ; i< dateContentOn.length ; i++)
      {
         pharmaciesOn[i] = dateContentOn[i].id;
      }

      for (var i=0 ; i< dateContentOuter.length ; i++)
      {
         pharmaciesOut[i] = dateContentOuter[i].id;
      }

      params    = new Array();
      params[0] = 'datum='+date;
      params[1] = 'timestamp='+timestamp;
      params[2] = 'pharmaciesOn='+pharmaciesOn;
      params[3] = 'pharmaciesOut='+pharmaciesOut;
      params[4] = 'locationID=' +  locationId;
      params[5] = 'locationName=' +  locationName;
      mySrc     = '/admin/notdienst/savePharmaciesToPlanDate';
      sendXmlHttpRequest(mySrc, 'managePlan', params, XmlHttpRequestCallBack);
   }

    /**
    * Fügt eine Apotheke zu einem bestimmten Tag des Sekundären-Notdienst-Kalenders hinzu.
    *
    * @param Integer pharmacyID        Die ID der Apotheke die hinzugefügt werden soll.
    */
   this.addPharmacyToSupplementPlanDate = function(pharmacyID)
   {
      var pharmacy = document.getElementById(pharmacyID);
      var inPlan = document.getElementById('pharmaciesOnSupplementPlanDate').firstChild.nextSibling;
      var outerPlan = document.getElementById('pharmaciesOuterSupplementPlanDate').firstChild.nextSibling;
      var pharmacyName = pharmacy.nextSibling;

      var icon = pharmacy.firstChild;
      var link = pharmacy;
      var tr   = link.parentNode.parentNode;
      var pharmacyPostCode = link.parentNode.nextSibling.firstChild;
      outerPlan.removeChild(tr);
      // Icon-Bild wird von Add auf löschen geändert.
      icon.src = icon.src.replace("Add" , "Delete");
      icon.title = "Apotheke Löschen";
      icon.alt="Apotheke Löschen";
      // Der passende Link wird erstellt
      var tr = document.createElement('TR');
      var tdName = document.createElement('TD');
      var tdCode = document.createElement('TD');
      var tdLink = document.createElement('TD');
      var link = document.createElement('A');
      link.href = "#";
      link.id = pharmacyID;

      link.appendChild(icon);
      tdLink.appendChild(link);
      tdName.appendChild(pharmacyName);
      tdCode.appendChild(pharmacyPostCode);

      tr.appendChild(tdName);
      tr.appendChild(tdCode);
      tr.appendChild(tdLink);

      inPlan.appendChild(tr);
      link.setAttribute("onclick", "pharmacyObject.deletePharmacyFromSupplementPlanDate( '"+pharmacyID+"' )");
   }


   /**
    * löscht eine Apotheke aus einem bestimmten Tag des Sekundären-Notdienst-Kalenders.
    *
    * @param Integer pharmacyID        Die ID der Apotheke die gelöscht werden soll.
    */
   this.deletePharmacyFromSupplementPlanDate = function(pharmacyID)
   {
      var pharmacy = document.getElementById(pharmacyID);
      var inPlan = document.getElementById('pharmaciesOnSupplementPlanDate').firstChild.nextSibling;
      var outerPlan = document.getElementById('pharmaciesOuterSupplementPlanDate').firstChild.nextSibling;
      var icon = pharmacy.firstChild;
      var link = pharmacy;
      var pharmacyName = pharmacy.parentNode.parentNode.firstChild.firstChild;
      var pharmacyCode = pharmacy.parentNode.parentNode.firstChild.nextSibling.firstChild;

      var tr   = link.parentNode.parentNode;
      inPlan.removeChild(tr);
      // Icon-Bild wird von Add auf löschen geändert.
      icon.src = icon.src.replace("Delete" , "Add");
      // Der passende Link wird erstellt
      var tr = document.createElement('TR');
      var tdName = document.createElement('TD');
      var tdCode = document.createElement('TD');
      var link = document.createElement('A');
      link.href = "#";
      link.id = pharmacyID;
      link.appendChild(icon);
      tdName.appendChild(link);
      tdName.appendChild(pharmacyName);
      tdCode.appendChild(pharmacyCode);
      tr.appendChild(tdName);
      tr.appendChild(tdCode);
      outerPlan.appendChild(tr);
      link.setAttribute("onclick", "pharmacyObject.addPharmacyToSupplementPlanDate( '"+pharmacyID+"' )");
   }

    /**
    * speichert eine Anzahl der Apotheken für einen bestimmten Tag des sekundären-Notdienst-Kalenders hinzu.
    *
    * @param Integer groupID           Die ID der gruppe die gelöscht werden soll.
    * @param Integer locationId        Die Id des Standortes wo die Gruppe liegt
    * @param String  locationName      Der Name des Standortes wo die Gruppe liegt
    */
   this.savePharmaciesToSupplementPlanDate = function(locationId, locationName)
   {
      var pharmaciesOn = new Array();
      var pharmaciesOut = new Array();

      var timestamp = document.getElementById('timestamp').value;
      var date = document.getElementById('datum').value;
      var pharmaciesOnSupplementPlanDate = document.getElementById('pharmaciesOnSupplementPlanDate').firstChild.nextSibling;
      var pharmaciesOuterSupplementPlanDate = document.getElementById('pharmaciesOuterSupplementPlanDate').firstChild.nextSibling;

      var dateContentOn = pharmaciesOnSupplementPlanDate.getElementsByTagName('A');
      var dateContentOuter = pharmaciesOuterSupplementPlanDate.getElementsByTagName('A');

      for (var i=0 ; i< dateContentOn.length ; i++)
      {
         pharmaciesOn[i] = dateContentOn[i].id;
      }

      for (var i=0 ; i< dateContentOuter.length ; i++)
      {
         pharmaciesOut[i] = dateContentOuter[i].id;
      }

      params    = new Array();
      params[0] = 'datum='+date;
      params[1] = 'timestamp='+timestamp;
      params[2] = 'pharmaciesOn='+pharmaciesOn;
      params[3] = 'pharmaciesOut='+pharmaciesOut;
      params[4] = 'locationID=' +  locationId;
      params[5] = 'locationName=' +  locationName;
      mySrc     = '/admin/notdienst/savePharmaciesToSupplementPlanDate';
      sendXmlHttpRequest(mySrc, 'managePlan', params, XmlHttpRequestCallBack);
   }

   // Ab Hier sind die Standort-Methoden

   /**
    * Methode zur Bearbeitung eines Standortes.
    *
    * @param Integer locationID        Die ID des Standortes, die bearbeitet werden soll
    * @param String  pSortField        Der Name des Feldes, nach dem sortiert werden soll
    * @param String  pSortDirection    Die Sortierrichtung (DESC oder ASC)
    * @param Integer pCurrentPage      Die Seite, die momentan angezeigt wird
    */
   this.getLocationByID = function(locationID, pSortField, pSortDirection, pCurrentPage)
   {

      params    = new Array();
      params[0] = 'id='+locationID;
      params[1] = 'sortField=' + pSortField;
      params[2] = 'sortDirection=' + pSortDirection;
      params[3] = 'currentPage=' + pCurrentPage;
      params[4] = 'AjaxRequest=false' ;
      mySrc     = '/admin/notdienst/getLocations';
      sendXmlHttpRequest(mySrc, 'getLocations', params, XmlHttpRequestCallBack);
   }

   this.changeLocationStatus = function(locationID, pSortField, pSortDirection, pCurrentPage)
   {
      params    = new Array();
      params[0] = 'id='+locationID;
      params[1] = 'sortField=' + pSortField;
      params[2] = 'sortDirection=' + pSortDirection;
      params[3] = 'currentPage=' + pCurrentPage;
      mySrc     = '/admin/notdienst/changeLocationStatus';
      sendXmlHttpRequest(mySrc, 'getLocations', params, XmlHttpRequestCallBack);
   }

   /**
    * Methode zum Löschen eines bestimmten Standortes (Mit Confirm Abfrage).
    *
    * @param Integer locationID        Die ID des Standortes, der gelöscht werden soll
    * @param String  locationName      Der Name des Standortes, der gelöscht werden soll
    * @param String  pSortField        Der Name des Feldes, nach dem sortiert werden soll
    * @param String  pSortDirection    Die Sortierrichtung (DESC oder ASC)
    * @param Integer pCurrentPage      Die Seite, die momentan angezeigt wird
    */
   this.deleteLocation = function(locationID , locationName , pSortField,pSortDirection,pCurrentPage)
   {
     params    = new Array();
     params[0] = 'id='+locationID;
     params[1] = 'sortField=' + pSortField;
     params[2] = 'sortDirection=' + pSortDirection;
     params[3] = 'currentPage=' + pCurrentPage;
     boDialog('confirm',"Wollen Sie diesen Standort '"+locationName+"' wicklich l&ouml;schen?",null,null,pharmacyObject.deleteLocationConfirmed,params,null,null);
     return false;
   }

   /**
    * Methode zum Löschen eines bestimmten Standortes.
    *
    * @param Array params     die Parameter die die Methode deleteLocation() liefert
    */
   this.deleteLocationConfirmed = function(params)
   {
      mySrc     = '/admin/notdienst/deleteLocation';
      sendXmlHttpRequest(mySrc, 'getLocations', params, XmlHttpRequestCallBack);
   }

   this.selectLocation = function(locationInfos, pSortField,pSortDirection,pCurrentPage , menuArea)
   {
      var temp = locationInfos.split("+-");
      var locationId = temp[0];
      var locationName = temp[1];

      if(locationId == '')
      {
         locationId = 1;
         locationName = "Default";
      }
      params    = new Array();
      params[0] = 'locationId='+locationId;
      params[1] = 'locationName='+locationName;
      params[2] = 'sortField=' + pSortField;
      params[3] = 'sortDirection=' + pSortDirection;
      params[4] = 'currentPage=' + 1;

      // Welcher Menupunkt ?
      switch(menuArea)
      {
         case 'Pharmacies':
                     mySrc     = '/admin/notdienst/getPharmacies';
                     sendXmlHttpRequest(mySrc, 'getPharmacies', params, XmlHttpRequestCallBack);
                     break;

         case 'Groups':
                     mySrc     = '/admin/notdienst/getGroups';
                     sendXmlHttpRequest(mySrc, 'groupLists', params, XmlHttpRequestCallBack);
                     break;
               break;
         case 'EmergencyPlan':
                     mySrc     = '/admin/notdienst/getPlan';
                     sendXmlHttpRequest(mySrc, 'emergencyPlan', params, pharmacyObject.callbackEmergencyPlan);
                     break;
               break;
         case 'Infotext':
                     mySrc     = '/admin/notdienst/getStandardInfotext';
                     sendXmlHttpRequest(mySrc, 'Infotext', params, XmlHttpRequestCallBack);
                     break;
               break;
      }
   }



   // Ab Hier sind die Frontend-Methoden

    /**
    * holt das gecklikte Datum aus dem Calender und zeigt die Notdienst-Apotheken für den
    * angeclickten Tag.
    *
    * @param Calender calender     der Calender.js selbst
    */
   this.getDateFrontend = function(calendar)
   {
      if(calendar != undefined)
      {
         pharmacyObject.tag = calendar.date.getDate();
         pharmacyObject.monat = calendar.date.getMonth()+1;
         pharmacyObject.jahr = calendar.date.getFullYear();
      }
      var locationID = document.getElementById("locationID").value;

      params    = new Array();
      params[0] = 'day='+pharmacyObject.tag;
      params[1] = 'month='+pharmacyObject.monat;
      params[2] = 'year='+pharmacyObject.jahr;
      params[3] = 'locationID='+locationID;
      mySrc     = '/notdienst/notdienstDatum';
      sendXmlHttpRequest(mySrc, 'showDetailsEmergencyPlan', params, pharmacyObject.callbackFE);
   }

   // Callback Methoden.

   /**
    * Standard Callback-methode für den XMLHttpRequest des backoffice/Verwaltung
    *
    */
   this.callbackEmergencyPlan = function()
   {
      if((xhr.readyState != 4) || (xhr.status != 200))
      {
         return;
      }
      document.getElementById(xhrData['idOutput']).innerHTML = xhr.responseText;

     Calendar.setup(
       {
         flat         : "calendar-container",            // ID of the parent element
         flatCallback : pharmacyObject.getDate           // our callback function
       }
     );

      Calendar.setup({
         inputField : "SequenzStart",                    // ID des Input-Felds
         button : "SequenzStartImg",                     // ID des klickbaren Bilds
     });

     Calendar.setup({
            inputField  : "SequenzEnd",                  // ID des Input-Felds
            button      : "SequenzEndImg",               // ID des klickbaren Bilds
     });

     Calendar.setup({
            inputField  : "StartDate",                   // ID des Input-Felds
            button      : "StartDateImg",                // ID des klickbaren Bilds
     });

     Calendar.setup({
            inputField  : "EndDate",                     // ID des Input-Felds
            button      : "EndDateImg",                  // ID des klickbaren Bilds
     });
   }

   /**
    * Standard Callback-methode für den XMLHttpRequest des EmergencyPlans
    *
    */
   this.callback = function()
   {
      if((xhr.readyState != 4) || (xhr.status != 200))
      {
         return;
      }
      document.getElementById(xhrData['idOutput']).innerHTML = xhr.responseText;

   }

   /**
    * Standard Callback-methode für den XMLHttpRequest des Frontends
    *
    */
   this.callbackFE = function()
   {
      if((xhr.readyState != 4) || (xhr.status != 200))
      {
         return;
      }
      document.getElementById(xhrData['idOutput']).innerHTML = xhr.responseText;
      mapObject.calendar = true;
      try
      {

         if( adjustLayoutFlag == 0)
         {
            //adjustLayoutFlag = 1;
         }
      }
      catch(err){} ;
      mapObject.getPharmaciesForMaps();
   }

}
// Erstellt das Objekt, dass dann überall aufrufbar ist.
var pharmacyObject = new pharmacy();
-->
