var von = "";

function create_request_string(theform) {
            var reqStr = "";
            for(i=0; i < theform.elements.length; i++) {
              isformObject = false;
              switch (theform.elements[i].tagName) {
                case "INPUT":
                  switch (theform.elements[i].type) {
                    case "text":
                    case "hidden":
                      reqStr += theform.elements[i].name + "=" + encodeURIComponent(theform.elements[i].value);
                      isformObject = true;
                    break;

                    case "checkbox":
                      if (theform.elements[i].checked) {
                        reqStr += theform.elements[i].name + "=" + theform.elements[i].value;
                      } else {
                        reqStr += theform.elements[i].name + "=";
                      }
                      isformObject = true;
                    break;

                    case "radio":
                      if (theform.elements[i].checked) {
                        reqStr += theform.elements[i].name + "=" + theform.elements[i].value;
                        isformObject = true;
                      }
                  }
                break;

                case "TEXTAREA":
                  reqStr += theform.elements[i].name + "=" + encodeURIComponent(theform.elements[i].value);
                  isformObject = true;
                break;

                case "SELECT":
                  var sel = theform.elements[i];
                  reqStr += sel.name + "=" + sel.options[sel.selectedIndex].value;
                  isformObject = true;
                break;
              }

              if ((isformObject) && ((i+1)!= theform.elements.length)) {
                reqStr += "&";
              }

            }
            return reqStr;
}



function decode_utf8(utftext) { 
           var plaintext = ""; var i=0; var c=c1=c2=0;
           while(i<utftext.length)
                {
               c = utftext.charCodeAt(i);
               if (c<128) {
                    plaintext += String.fromCharCode(c);
                     i++;}
                else if((c>191) && (c<224)) {
                   c2 = utftext.charCodeAt(i+1);
                    plaintext += String.fromCharCode(((c&31)<<6) | (c2&63));
                    i+=2;}
                 else {
                    c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2);
                   plaintext += String.fromCharCode(((c&15)<<12) | ((c2&63)<<6) | (c3&63));
                  i+=3;}
                }
             return plaintext;
} 

function update_results(von) {
            var querystring = create_request_string(document.getElementById("suche"));
	    new Ajax.Request('/get_searchresults.php', {
	      //parameters: querystring+'&von='+von,
              parameters: 'von='+von,
	      onSuccess: function(transport) {
                var response = transport.responseText;
                document.getElementById("searchresults").innerHTML = response;
                pageTracker._trackPageview();
              }
            });
	  }


function update_georesults(lon, lat) {
  new Ajax.Request('/get_wsearchresults.php', {
    parameters: 'lon=' + lon + '&lat=' + lat,
    onSuccess: function(transport) {
      var response = transport.responseText;
      document.getElementById("searchresults").innerHTML = response;
      pageTracker._trackPageview();
    }
  });
}



          function flush_selectlist(id) {
            var elSel = document.getElementById(id);
            var i;
            for (i = elSel.length - 1; i>=0; i--) {
                elSel.remove(i);
            }
          }

	  function reloadmap(bl) {
	    so.addVariable("id", bl);
	    so.write("content");
	  }

          function Clickmap(bl, bez) {
            if (bl == "undefined") bl = mybl;
            if (bez == '') bez = 'all';

            if (navigator.appName=="Microsoft Internet Explorer" & bez != "refresh") {
              bl_k = decode_utf8(bl);
              bez_k = decode_utf8(bez);
            } else {
              bl_k = bl;
              bez_k = bez;
            }
	    document.getElementById("bundesland").value = bl_k;
	    if (bez == "refresh") {
	      reloadmap(bl_k);
              mybl = bl_k;
	      bez = 'all';
	    }
            // flush bezirke
            flush_selectlist("bezirk");

            // update bezirke box
            new Ajax.Request('/get_bezirke.php?bl=' + encodeURIComponent(bl_k), {
              onSuccess: function(transport) {
                var response = transport.responseText;
                if(eval(response)) {
                  var my_options = $A(eval(response));
                  $A(my_options).each(function(s, index) {
                    bez_element = document.getElementById("bezirk");
                    var tmp = $A(s);
                    var opt = document.createElement('option');
                    opt.text = tmp[1];
                    opt.value = tmp[0];
                    bez_element.options.add(opt);
                  });
                }

		// select bezirk
		document.getElementById("bezirk").value = bez_k;
              }
            });
          }

function update_searchform (bl, bez) {
            flush_selectlist("bezirk");

            if (bez == '' | bez == 'refresh') bez = 'all';

            // update bezirke box
            new Ajax.Request('/get_bezirke.php?bl=' + encodeURIComponent(bl), {
              onSuccess: function(transport) {
                var response = transport.responseText;
                if(eval(response)) {
                  var my_options = $A(eval(response));
                  $A(my_options).each(function(s, index) {
                    bez_element = document.getElementById("bezirk");
                    var tmp = $A(s);
                    var opt = document.createElement('option');
                    opt.text = tmp[1];
                    opt.value = tmp[0];
                    bez_element.options.add(opt);
                  });
                }

                // select bezirk
                document.getElementById("bezirk").value = bez;
              }
            });


}



function update_page (page) {
  window.scroll(0,350);
  update_results(page);
}

function show_detail(id, von) {
  new Ajax.Request('/get_detail.php', {
    parameters: 'id='+id+'&von='+von,
    onSuccess: function(transport) {
      var response = transport.responseText;
      document.getElementById("searchresults").innerHTML = response;
      pageTracker._trackPageview();
    }
  });
}

function email(action) { 
  if (action == 'close') {
    document.getElementById('message').style.display = 'none';
  } else {
    document.getElementById('message').style.display = 'block';
  }
}

function sendmail() {
  // check name
  if (document.getElementById("anfrage_name").value < 3) {
    alert("Geben Sie bitte Ihren Namen ein!");
    document.getElementById("anfrage_name").focus();
    return FALSE;
  }

  // check telefon
  if (document.getElementById("anfrage_telefon").value < 3) {
    alert("Geben Sie bitte Ihre Telefonnummer ein!");
    document.getElementById("anfrage_telefon").focus();
    return FALSE;
  }

  // check email
  if (document.getElementById("anfrage_email").value < 3) {
   alert("Geben Sie bitte Ihre E-Mail Adresse ein!");
   document.getElementById("anfrage_email").focus();
   return FALSE;
  }


  new Ajax.Request('/action.php', {
      parameters: create_request_string(document.getElementById("sendmail")),
      onSuccess: function(transport) {
        document.getElementById('message').innerHTML = '<h1>Nachricht wurde versendet.</h1><br><br><a href="javascript:email(\'close\')">schließen</a>';
      }
  });
}

function forward(action) {
  if (action == 'close') {
    document.getElementById('forward').style.display = 'none';
  } else {
    document.getElementById('forward').style.display = 'block';
  }
}

function forwardmessage() {
  // check name
  if (document.getElementById("forward_name").value < 3) {
    alert("Geben Sie bitte Ihren Namen ein!");
    document.getElementById("forward_name").focus();
    return FALSE;
  }

  // check email
  if (document.getElementById("forward_email").value < 3) {
   alert("Geben Sie bitte Ihre E-Mail Adresse ein!");
   document.getElementById("forward_email").focus();
   return FALSE;
  }


  new Ajax.Request('/action.php', {
      parameters: create_request_string(document.getElementById("forwardmessage")),
      onSuccess: function(transport) {
        document.getElementById('forward').innerHTML = '<h1>Nachricht wurde versendet.</h1><br><br><a href="javascript:forward(\'close\')">schließen</a>';
      }
  });
}

function clear_textfield (element, empty_text) {
  if (document.getElementById(element).value == empty_text) {
    document.getElementById(element).value = "";
    document.getElementById(element).style.color = "#000000";
  }
}

function check_textfield (element, empty_text) {
  if (document.getElementById(element).value == "") {
    document.getElementById(element).value = empty_text;
    document.getElementById(element).style.color = "#aaaaaa";
  }
}

function collapse_element(id) {
  if (document.getElementById(id).style.display == "block") {
    document.getElementById(id).style.display = 'none';
  } else {
    document.getElementById(id).style.display='block';
  }
}

function collapse_element_rechner(id) {
  if (document.getElementById(id).style.display == "block") {
    document.getElementById(id).style.display = 'none';
    document.getElementById('rechner').style.position = 'fixed';
  } else {
    document.getElementById(id).style.display='block';
    document.getElementById('rechner').style.position = 'static';
  }
}

function number_format (number, decimals, dec_point, thousands_sep) {
    var n = number, prec = decimals;

    var toFixedFix = function (n,prec) {
        var k = Math.pow(10,prec);
        return (Math.round(n*k)/k).toString();
    };

    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;
    var dec = (typeof dec_point === 'undefined') ? '.' : dec_point;

    var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;

    var abs = toFixedFix(Math.abs(n), prec);
    var _, i;

    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;

        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }

    var decPos = s.indexOf(dec);
    if (prec >= 1 && decPos !== -1 && (s.length-decPos-1) < prec) {
        s += new Array(prec-(s.length-decPos-1)).join(0)+'0';
    }
    else if (prec >= 1 && decPos === -1) {
        s += dec+new Array(prec).join(0)+'0';
    }
    return s;
}

function show_anbieter(id) {
  new Ajax.Request('/action.php', {
    parameters: 'action=show_anbieter&id=' + id,
    onSuccess: function(transport) {
      var response = transport.responseText;
      if (document.getElementById('anbieter_box').style.display == "block") {
        document.getElementById('anbieter_box').style.display='none';
      } else {
        document.getElementById('anbieter_box').style.display='block';
      }
      
    }
  });
  
}



