  /**
  * Javascript-Funktion, die nach "onkey" aufgerufen wird 
  * und die entsprechende xajax-Funktion aufruft.
  * @author Margrit Schnackenberg, Torsten K?hler
  * @param  fixConditions
  * @param  target
  * @return -
  */ 
  function doSearchObject (fixconditions, target) {
  
    // Frontend Ergebnisanzeige
    if (target == 'frontend') {
      document.getElementById('filterview').style.display = "none";
      document.getElementById('searchResultHeaderContainer').style.display = "block";
      document.getElementById('searchResult').innerHTML = "";
    }
    // Backend Ergebnisanzeige -> Alte Daten l?schen
    else if (target == 'backend') {
      document.dateform.objectid.value = '';
      document.dateform.datefrom.value = '';
      document.dateform.dateto.value = '';
      document.dateform.countpersons.value = '';
    }
    
    var destinationid = '';
    if (document.getElementById('destinationid') != null)
      destinationid = document.filterview.destinationid.value;
    var objectidentifier = '';
    if (document.getElementById('objectidentifier') != null)
      objectidentifier = document.filterview.objectidentifier.value;
    var webname = '';
    if (document.getElementById('webname') != null)
      if ((document.filterview.webname.value.length < 3) && (document.filterview.webname.value.length > 0)) {
        alert ('Bitte mindestens drei Zeichen beim Objektnamen eingeben!');
        return;
      }
      else
        webname = document.filterview.webname.value;
    var oldid = '';
    if (document.getElementById('oldid') != null)
      oldid = document.filterview.oldid.value;
      
    // keine neue Nummer angegeben
    var destinationname = '';
    if (objectidentifier == '' && document.getElementById('destination') != null) {
      destinationname = document.filterview.destination.value;
      objectidentifier = destinationname.substring( 0, 3);
      if (objectidentifier == "USE")
        objectidentifier = "USD";
    }
    
    var maxpersons = '';
    if (document.getElementById('maxpersons') != null)
      maxpersons = document.filterview.maxpersons.value;
    var priority = '';
    if (document.getElementById('priority') != null)
      priority = document.filterview.priority.value;
    var parking = '';
    if (document.getElementById('parking') != null)
      parking = document.filterview.parking.value;
    var subdestination = '';
//    if (document.getElementById('subdestination') != null)
      subdestination = document.filterview.subdestination.value;
    var datefrom = '';
    if (document.getElementById('datefrom') != null)
      datefrom = document.filterview.datefrom.value;
    var dateto = '';
    if (document.getElementById('dateto') != null)
      dateto = document.filterview.dateto.value;
    var objecttype = '';
    if (document.getElementById('objecttype') != null)
      objecttype = document.filterview.objecttype.value;
    var objectstandard = '';
    if (document.getElementById('objectstandard') != null)
      objectstandard = document.filterview.objectstandard.value;
    var nonsmoker = '';
    if (document.getElementById('nonsmoker') != null)
      nonsmoker = document.filterview.nonsmoker.checked;
    var strandkorbinclusive = '';
    if (document.getElementById('strandkorbinclusive') != null)
      strandkorbinclusive = document.filterview.strandkorbinclusive.checked;
    var pet = '';
    if (document.getElementById('pet') != null) {
      // zur Zeit Back- und Frontend
      if (document.filterview.pet.type == 'checkbox') {
        if (document.filterview.pet.checked == true)
          pet = document.filterview.pet.value;
      }
      // zur Zeit nicht benutzt
      else if (document.filterview.pet.type == 'select-one') {
        pet = document.filterview.pet.value;
      }
    }
    var handicappedpeople = '';
    if (document.getElementById('handicappedpeople') != null) {
      for (i = 0; i < document.filterview.handicappedpeople.length; i++) {
        if (document.filterview.handicappedpeople[i].checked == true) {
          if (handicappedpeople.length > 0)
            handicappedpeople += ',';
          handicappedpeople += document.filterview.handicappedpeople[i].value;
        }
      }
    }  
    var wellness = '';
    if (document.getElementById('wellness') != null) {  
      for (i = 0; i < document.filterview.wellness.length; i++) {
        if (document.filterview.wellness[i].checked == true) {
          if (wellness.length > 0)
            wellness += ',';
          wellness += document.filterview.wellness[i].value;
        }  
      }
    }  
    var entertainment = '';
    if (document.getElementById('entertainment') != null) {
      for (i = 0; i < document.filterview.entertainment.length; i++) {
        if (document.filterview.entertainment[i].checked == true) {
          if (entertainment.length > 0)
            entertainment += ',';
          entertainment += document.filterview.entertainment[i].value;
        }
      }  
    }
    var othersettings = '';
    if (document.getElementById('othersettings') != null) {
      for (i = 0; i < document.filterview.othersettings.length; i++) {
        if (document.filterview.othersettings[i].checked == true) {
          if (othersettings.length > 0)
            othersettings += ',';
          othersettings += document.filterview.othersettings[i].value;
        }
      }  
    }
    var kitchen = '';
    if (document.getElementById('kitchen') != null) {
      for (i = 0; i < document.filterview.kitchen.length; i++) {
        if (document.filterview.kitchen[i].checked == true) {
          if (kitchen.length > 0)
            kitchen += ',';
          kitchen += document.filterview.kitchen[i].value;
        }
      }  
    }

    var distancetobeach = '';
    if (document.getElementById('distancetobeach') != null)
      distancetobeach = document.filterview.distancetobeach.value;

    var countbedrooms = '';
    if (document.getElementById('countbedrooms') != null)
      countbedrooms = document.filterview.countbedrooms.value;

    var countbathrooms = '';
    if (document.getElementById('countbathrooms') != null)
      countbathrooms = document.filterview.countbathrooms.value;

/*
alert (destinationid+'-'+objectidentifier+'-'+subdestination+'-'+ 
                                  webname+'-'+ datefrom+'-'+ dateto+'-'+ 
                                  objecttype+'-'+ maxpersons+'-'+
                                  objectstandard+'-'+ nonsmoker+'-'+
                                  handicappedpeople+'-'+ parking+'-'+
                                  pet+'-'+ kitchen+'-'+ wellness+'-'+
                                  entertainment+'-'+ othersettings+'-'+
                                  fixconditions);
*/
    if (target == 'backend')
      xajax_searchObjectBackend (objectidentifier, subdestination, 
                                 oldid, webname, maxpersons,
                                 priority, datefrom, dateto,
                                 objecttype, objectstandard,
                                 nonsmoker, handicappedpeople,
                                 parking, pet, kitchen,
                                 wellness, entertainment, 
                                 othersettings, distancetobeach, 
                                 countbedrooms, countbathrooms);
    else
      xajax_searchObjectFrontend (destinationid, objectidentifier, subdestination, 
                                  webname, datefrom, dateto, 
                                  objecttype, maxpersons,
                                  objectstandard, nonsmoker,
                                  handicappedpeople, parking,
                                  pet, kitchen, wellness,
                                  entertainment, othersettings,
                                  distancetobeach, fixconditions, 
                                  countbedrooms, countbathrooms, strandkorbinclusive);
  } 

  /**
  * Javascript-Funktion, die nach "onkey" aufgerufen wird 
  * und die entsprechende xajax-Funktion aufruft.
  * @author Margrit Schnackenberg, Torsten K?hler
  * @param  tablename
  * @param  listviewcolumns
  * @param  fixConditions
  * @param  navid
  * @param  action
  * @param  idname
  * @param  buttonname
  * @param  searchAvailability
  * @return -
  */ 
  function doSearch (tablename, listviewcolumns, fixConditions, navid, action, idname, buttonname, searchAvailability) {
    if (searchAvailability == '') {      
      var statement = "";
      for (i = 0; i < document.filterview.length; i ++) {
        /* ?ber die Felder, die in dem Formular eingetragen wurden, 
         * wird gesucht in der DB. Die eigentliche Suche wird dann 
         * ?ber  xajax_search aufgerufen. Sie ist in xajax.common.php registriert 
         * und wird in xajax.server.php als PHP Funktion programmiert.
         */
        if (document.filterview.elements[i].value != "") {
          if (statement.length > 0) {
            statement += " AND ";
          }
          if (document.filterview.elements[i].name.substr(document.filterview.elements[i].name.length-4, 4) == 'date') {
            var value = formatDate(document.filterview.elements[i].value, false);
          }
          else
            var value = document.filterview.elements[i].value;
          statement += document.filterview.elements[i].name + " LIKE '%" + value + "%'";
        }
      }
      if (fixConditions != '') {
        if (statement == '')
          statement = fixConditions;
        else
          statement += " AND " + fixConditions;
       }
      if (statement != "") {
        query = "SELECT " + listviewcolumns + " FROM " + tablename + " WHERE " + statement;
        xajax_search (query, listviewcolumns, navid, action, idname, buttonname);
      } 
    }
    else {
      if ((document.filterview.objectid.value.length < 4) && (document.filterview.objectid.value.length > 0))
        return;
      if ((document.filterview.oldidentifier.value.length < 4) && (document.filterview.oldidentifier.value.length > 0))
        return;
      document.availability.objectid.value = '';
      document.availability.datefrom.value = '';
      document.availability.dateto.value = '';
      document.availability.countpersons.value = '';
      document.getElementById("priceinfo").innerHTML = '';
      xajax_searchAvailability (document.filterview.objectid.value, 
                                document.filterview.oldidentifier.value, 
                                document.filterview.maxpersons.value,
                                document.filterview.year.value,
                                document.filterview.priority.value,
                                document.filterview.datefrom.value,
                                document.filterview.dateto.value);
    }
  } 

  /**
  * Javascript-Funktion NUR f?r Belegungslistensuche, die nach "onkey" aufgerufen wird 
  * und die entsprechende xajax-Funktion aufruft.
  * @author Margrit Schnackenberg, Torsten K?hler
  * @return -
  */ 
  function doSearchAssignmentlist (tables, listviewcolumns, target, personid, usertype) {
    var statement = "";
    var arrivalfrom = "";
    var arrivalto = "";
    for (i = 0; i < document.filterview.length; i ++) {
      if (document.filterview.elements[i].type == 'button')
        continue;
      if (document.filterview.elements[i].value != "") {
        if (statement.length > 0) {
          statement += " AND ";
        }
        if (document.filterview.elements[i].name.substr(document.filterview.elements[i].name.length-4, 4) == 'date') {
          var value = formatDate(document.filterview.elements[i].value, false);
        }
        else
          var value = document.filterview.elements[i].value;
        if (document.filterview.elements[i].name == 'arrivalfromdate') {
          statement += " arrivaldate >= '" + value + "'";
          arrivalfrom = formatDate(value, true);
        }
        else if (document.filterview.elements[i].name == 'arrivaltodate') {
          statement += " arrivaldate <= '" + value + "'";
          arrivalto = formatDate(value, true);
        }
        else
          statement += document.filterview.elements[i].name + " LIKE '%" + value + "%'";
      }
    }
    if (statement != "") {
      if (personid != '' && usertype == 'user')
        query = "SELECT " + listviewcolumns + " FROM " + tables + " WHERE fvt_person.personid = " + personid + " AND " + statement + " AND fvt_object.objectid = fvt_booking.objectid AND (fvt_booking.status = 'booked' OR fvt_booking.status = 'canceled') AND (fvt_object.renterid = fvt_person.personid OR fvt_object.keyholderid = fvt_person.personid) ORDER BY fvt_booking.objectidentifier, arrivaldate ASC";
     /*
      else if (personid != '' && usertype == 'service') 
        query = "SELECT " + listviewcolumns + " FROM " + tables + " WHERE fvt_person.personid = " + personid + " AND " + statement + " AND fvt_object.objectid = fvt_booking.objectid AND fvt_object.keyholderid = fvt_person.personid ORDER BY fvt_booking.objectidentifier, arrivaldate ASC";
     */
      else
        query = "SELECT " + listviewcolumns + " FROM " + tables + " WHERE " + statement + " AND fvt_object.objectid = fvt_booking.objectid AND (fvt_booking.status = 'booked' OR fvt_booking.status = 'canceled') AND fvt_object.renterid = fvt_person.personid ORDER BY fvt_booking.objectidentifier, arrivaldate ASC";
      //alert (query);
      xajax_searchAssingmentlist (query, arrivalfrom, arrivalto, listviewcolumns, target);
    } 
  } 

  /**
  * Schreibt die Objekt-Id ins entsprechende Feld
  * @author Margrit Schnackenberg, Torsten K?hler
  * @param  objectid
  * @return -
  */ 
  function setObjectId(objectid) {
    document.availability.objectid.value = objectid;
  }

  /**
  * Schreibt das Datum ins entsprechende Feld
  * @author Margrit Schnackenberg, Torsten K?hler
  * @param  year
  * @param  month
  * @param  day
  * @param  objectid
  * @return -
  */ 
  function setDate(year, month, day, objectid) {
    var choosedDateHuman = '';
    if (day < 10)
      choosedDateHuman = "0" + day;
    else
      choosedDateHuman = day;
    choosedDateHuman += '.';
    if (month < 10)
      choosedDateHuman += "0" + month;
    else
      choosedDateHuman += month;
    choosedDateHuman += "." + year;

    var choosedDate = year + "-";
    if (month < 10)
      choosedDate += "0" + month;
    else
      choosedDate += month;
    choosedDate += "-";
    if (day < 10)
      choosedDate += "0" + day;
    else
      choosedDate += day;

    // Beide Felder sind noch leer
    if ((document.dateform.datefrom.value == "") && (document.dateform.dateto.value == "")) { 
      document.dateform.datefrom.value = choosedDateHuman;
    }
    // Beide Felder sind nicht mehr leer
    else if ((document.dateform.datefrom.value != "") && (document.dateform.dateto.value != "")) {
    
      if (choosedDate < formatDate(document.dateform.datefrom.value, false)) {
        document.dateform.datefrom.value = choosedDateHuman;
      } 
      else if (choosedDate > formatDate(document.dateform.dateto.value, false)) {
        document.dateform.dateto.value = choosedDateHuman;
      } else {
        document.dateform.datefrom.value = choosedDateHuman;
        document.dateform.dateto.value = "";
      }
    }
    // Das datefrom-Feld ist nicht mehr leer
    else if (document.dateform.datefrom.value != "") {
      if (choosedDate > formatDate(document.dateform.datefrom.value, false)) 
        document.dateform.dateto.value = choosedDateHuman;
      else {
        document.dateform.dateto.value = document.dateform.datefrom.value;
        document.dateform.datefrom.value = choosedDateHuman;
      }
    }
    // Das dateto-Feld ist nicht mehr leer
    else if (document.dateform.dateto.value != "") {
      if (choosedDate < formatDate(document.dateform.dateto.value, false)) 
        document.dateform.datefrom.value = choosedDateHuman;
      else {
        document.dateform.datefrom.value = document.dateform.dateto.value;
        document.dateform.dateto.value = choosedDateHuman;
      }
    }
    document.dateform.objectid.value = objectid;
  }

  /**
  * xajax fragen ,wie der Preis f?r die Angaben im Formular ist.
  * @author Margrit Schnackenberg, Torsten K?hler
  * @param  message
  * @return -
  */ 
  function getPriceinfos (message, target) {
    var objectid = document.dateform.objectid.value;
    var countpersons = document.dateform.countpersons.value;
    var datefrom = document.dateform.datefrom.value;
    var dateto = document.dateform.dateto.value;
    if ((objectid == '') || (countpersons == '') || (datefrom == '') || (dateto == '')) {
      alert (message);
      return;
    }
    xajax_priceInfo (objectid, datefrom, dateto, countpersons, target);
  }
  
  /**
  * Per Javascript wird der Preis ge?ndert, falls Bettw?sche an- oder abgew?hlt wird
  * @author Margrit Schnackenberg, Torsten K?hler
  * @param  priceoverall
  * @param  bedclothesprice
  * @param  countpersons
  * @return -
  */ 
  function changePrice (priceoverall, bedclothesprice , countpersons) {
    if (document.priceinfo.bedclothesordered.checked == true) {
      var newprice = Math.abs(priceoverall) + bedclothesprice * countpersons;
      var newprice = number_format(newprice,2,'.','');
      document.getElementById("showpriceoverall").innerHTML = '<b>' + newprice + ' &euro; </b>';
      document.getElementById("priceoverall").value = newprice;
    } 
    else {
      document.getElementById("showpriceoverall").innerHTML = '<b>' + priceoverall + ' &euro; </b>';
      document.getElementById("priceoverall").value = priceoverall;
    }
  }
  
  /**
  * Zur?cksetzen der Formularwerte
  * @author Margrit Schnackenberg, Torsten K?hler
  * @param  formname
  * @return -
  */ 
  function resetFormValues (formname) {
    document.forms[formname].reset();
    for (i = 0; i < document.forms[formname].elements.length; i++) {
      switch (document.forms[formname].elements[i].type) {
        case 'text': 
        case 'select-one': 
          document.forms[formname].elements[i].value = ''; 
          break;
        case 'checkbox': 
          document.forms[formname].elements[i].checked = ''; 
          break;
      }
    }
  }
  
  function checkDestination(select_region) {
    if (document.searchform.destinationidentifier.value == '') {
      alert (select_region);
      return false;
    }
    return true;
  }