   /******************************************************************
    ALLGEMEINE FUNKTIONEN
    *****************************************************************/

   function log_error ( t ) {
      alert("Es ist ein Fehler aufgetreten:\n" + t);
   }

   function show_exception( requestObject, ex) {
      log_error("Keine AJAX-Anfrage an " + requestObject.URL + " möglich: " + ex);
   }

   function show_failure( requestObject ) {
      log_error("Error from Server:" + requestObject.statusText);
   }

   function handleDivTag(divtag) {
      var divtag;
      return divtag;
   }

   var divhandler = new handleDivTag(null);




   /******************************************************************
    FUNKTION : GOOGLE MAPS KARTE EINBETTEN
    *****************************************************************/

   function getmaps(reqid, cmd) {

      if($('formular')) getform(reqid, 'close');

      divhandler.divtag = "immo_expose";

      if(cmd == 'open') {

         var myAjax = new Ajax.Request (
               "ajax/getmaps.php", {
               method: 'get',
               parameters:    'id=' + reqid,
               onSuccess:     show_maps,
               onFailure:     show_failure,
               onException:   show_exception
            }
         );

         $('button_'+reqid).innerHTML = 'Umgebungskarte schlie&szlig;en';
         $('button_'+reqid).onclick = function () { getmaps(reqid, 'close'); };

      } else {

         Element.remove ( $('gmaps') );
         $('button_'+reqid).innerHTML = 'Umgebungskarte anzeigen';
         $('button_'+reqid).onclick = function () { getmaps(reqid, 'open'); };

      }
   }

   function show_maps( requestObject ) {
      if ( requestObject.responseText.search(/error/) >= 0 ) {
         log_error("Error in PHP: " + requestObject.responseText);
      } else {
         new Insertion.After(divhandler.divtag, requestObject.responseText);
      }
   }




   /******************************************************************
    FUNKTION : KONTAKTFORMULAR EINBETEEN
    *****************************************************************/

   function getform(reqid, cmd) {

      if($('gmaps')) getmaps(reqid, 'close');

      divhandler.divtag = "immo_expose";

      if(cmd == 'open') {

         var myAjax = new Ajax.Request (
               "ajax/getform.php", {
               method: 'get',
               parameters:    'id=' + reqid,
               onSuccess:     show_form,
               onFailure:     show_failure,
               onException:   show_exception
            }
         );

         $('form_'+reqid).innerHTML = 'Formular schlie&szlig;en';
         $('form_'+reqid).onclick = function () { getform(reqid, 'close'); };

      } else {

         Element.remove ( $('formular') );
         $('form_'+reqid).innerHTML = 'Informationen anfordern';
         $('form_'+reqid).onclick = function () { getform(reqid, 'open'); };

      }
   }

   function show_form( requestObject ) {
      if ( requestObject.responseText.search(/error/) >= 0 ) {
         log_error("Error in PHP: " + requestObject.responseText);
      } else {
         new Insertion.After(divhandler.divtag, requestObject.responseText);
      }
   }


   function postform(reqid, cmd) {


      var params = Form.serialize($('formular'));

      divhandler.divtag = "immo_expose";

      if(cmd == 'open') {

         var myAjax = new Ajax.Request (
               "ajax/getform.php", {
               method: 'post',
               parameters:    params,
               onSuccess:     show_form,
               onFailure:     show_failure,
               onException:   show_exception
            }
         );

         if($('formular')) getform(reqid, 'close');

      } else {

         Element.remove ( $('immo_status') );

         if($('formular')) getform(reqid, 'close');

      }

   }
