function trim(s) {
  if(s != null){
      while (s.substring(0,1) == ' ') {
        s = s.substring(1,s.length);
      }
      while (s.substring(s.length-1,s.length) == ' ') {
        s = s.substring(0,s.length-1);
      }
  }
  return s;
}

// Creates a marker at the given point with the given number label
function createMarker(point,infoText,x_offset,y_offset) {
  var image = 'http://' + window.location.hostname + '/bilder/gewerbe_karte/marker.gif';
  var icon = new GIcon();
  icon.image = image;
  icon.iconSize = new GSize(10, 10);

  var an_x = 10 + x_offset;
  var an_y = 10 + y_offset;
  icon.iconAnchor = new GPoint(an_x,an_y);
  icon.infoWindowAnchor = new GPoint(10, 10);
  var marker = new GMarker(point,icon);
  GEvent.addListener(marker, "click", function() {
    marker.openInfoWindowHtml(infoText);
  });
  return marker;
}

function showBranche(url,branche){
    window.location.href= url + "?branche=" + branche + "#karte" ;
}


function placeFirmen(anfrage,url){
    
    if (anfrage.readyState == 4) {
        if (anfrage.status == 200) {
			var map = new GMap2($("map"));
		    map.addControl(new GLargeMapControl());
           	 var naviObj = anfrage.responseXML;
	            var firmenArray = naviObj.getElementsByTagName("firma");
	            //Artikeldaten aus XML holen
	            for(var i=0;i<firmenArray.length;i++){
	                var zoom = 16;
	                if(firmenArray.length > 1){
	                    zoom = 15;
	                }
	                if(firmenArray.length > 2){
	                    zoom = 14;
	                }
	                var firma = firmenArray[i];
	                if(firma != null){
	                    var firmenname = trim(firma.getElementsByTagName("firmenname")[0].firstChild.nodeValue);
	                   
	                    var strasse = trim(firma.getElementsByTagName("strasse")[0].firstChild.nodeValue);
	                    var fake_street = trim(firma.getElementsByTagName("fake_street")[0].firstChild.nodeValue);
						var x_offset = trim(firma.getElementsByTagName("xoffset")[0].firstChild.nodeValue);
						var y_offset = trim(firma.getElementsByTagName("yoffset")[0].firstChild.nodeValue);
						var plz = trim(firma.getElementsByTagName("plz")[0].firstChild.nodeValue);
	                    var ort = trim(firma.getElementsByTagName("ort")[0].firstChild.nodeValue);
						if(fake_street != "keine"){
							strasse = fake_street;
						}
						var adresse = plz + " " + ort + ", " + strasse;
	                    var geocoder = new GClientGeocoder();

						var infoText = firmenname + "<br />" + strasse + "<br />" + plz + " " + ort;
						
	                    eval( "geocoder.getLatLng( adresse, function(point) { if (!point) { } else { map.setCenter(point, " + zoom + "); map.addOverlay(createMarker(point,'" + infoText + "'," + x_offset + "," + y_offset + ")); } } );" );

	                }
	            }
        }
    }
}
