var iconBlue = new GIcon(); 
 iconBlue.image = '/travelmate/images/mm_20_blue.png';
 iconBlue.shadow = '/travelmate/images/mm_20_shadow.png';
 iconBlue.iconSize = new GSize(12, 20);
 iconBlue.shadowSize = new GSize(22, 20);
 iconBlue.iconAnchor = new GPoint(6, 20);
 iconBlue.infoWindowAnchor = new GPoint(5, 1);

 var iconRed = new GIcon(); 
 iconRed.image = '/travelmate/images/mm_20_red.png';
 iconRed.shadow = '/travelmate/images/mm_20_shadow.png';
 iconRed.iconSize = new GSize(12, 20);
 iconRed.shadowSize = new GSize(22, 20);
 iconRed.iconAnchor = new GPoint(6, 20);
 iconRed.infoWindowAnchor = new GPoint(5, 1);
 
  var iconGreen = new GIcon(); 
 iconGreen.image = '/travelmate/images/mm_20_green.png';
 iconGreen.shadow = '/travelmate/images/mm_20_shadow.png';
 iconGreen.iconSize = new GSize(12, 20);
 iconGreen.shadowSize = new GSize(22, 20);
 iconGreen.iconAnchor = new GPoint(6, 20);
 iconGreen.infoWindowAnchor = new GPoint(5, 1);

  var iconYellow = new GIcon(); 
 iconYellow.image = '/travelmate/images/mm_20_yellow.png';
 iconYellow.shadow = '/travelmate/images/mm_20_shadow.png';
 iconYellow.iconSize = new GSize(12, 20);
 iconYellow.shadowSize = new GSize(22, 20);
 iconYellow.iconAnchor = new GPoint(6, 20);
 iconYellow.infoWindowAnchor = new GPoint(5, 1);

 var customIcons = [];
 customIcons["Apartment"] = iconBlue;
 customIcons["Rooms"] = iconBlue;
 customIcons["Farm"] = iconYellow;
 customIcons["Lodge"] = iconYellow;
 customIcons["House"] = iconRed;
 customIcons["Hotel"] = iconGreen;
 customIcons["Pension"] = iconGreen;
 
var params = encodeURI(window.location.search);
document.getElementById("error").innerHTML = params;
url_xml = "/travelmate/search_map_xml.lasso" + params;

	if ("langLabels" in window) {
	} else { langLabels = "en";}
	
	
		
	
      if (GBrowserIsCompatible()) {
      
       		var map = new GMap2(document.getElementById("tmMap"));
       	
			map.enableDoubleClickZoom();
			map.addControl(new GLargeMapControl());
			map.addControl(new GScaleControl());
			// map.addControl(new GMapTypeControl());
			// uncommented - results to an error, search is not performed ? 2008-07-01
			map.addControl(new GMenuMapTypeControl());
			map.addMapType(G_PHYSICAL_MAP);
			map.setCenter(new GLatLng(default_lat,default_lng), default_zoom);
			map.setMapType(G_SATELLITE_MAP); // G_PHYSICAL_MAP from v 2.x
			
			dispMessage('start');
		

						  GDownloadUrl(url_xml, function(data) {
							
											 var xml = GXml.parse(data);
											
											 var markers = xml.documentElement.getElementsByTagName("marker");
											 var responses = xml.documentElement.getElementsByTagName("response");
											 
											disp_city = responses[1].getAttribute("city");
											disp_type = responses[1].getAttribute("type");
											disp_rooms = responses[1].getAttribute("rooms");
											disp_persons = responses[1].getAttribute("persons");
											disp_occupancy = responses[1].getAttribute("occupancy");
											lang_city = responses[2].getAttribute("lang_city");
											lang_type = responses[2].getAttribute("lang_type");
											lang_rooms = responses[2].getAttribute("lang_rooms");
											lang_persons = responses[2].getAttribute("lang_persons");
											lang_occupancy = responses[2].getAttribute("lang_occupancy");
											lang_all = responses[2].getAttribute("lang_all");
											mess_found_recs = responses[2].getAttribute("mess_found_recs");
											mess_no_records_found = responses[2].getAttribute("mess_no_records_found");
											mess_found_no_recs = responses[2].getAttribute("mess_found_no_recs");
											 
											 // mess_found = mess_found_recs; // default
											 
											 // found_count = markers.length;
											 
											mess_found = '<h3>' + mess_found_recs + ': ' + markers.length + '</h3><b>' + lang_city + ':</b> ' + disp_city + ' <b>' + lang_type + '</b>: ' + disp_type + '  <b>' + lang_rooms + '</b>: ' + disp_rooms + '  <b>' + lang_persons + '</b>: ' + disp_persons;
											 
											 if(disp_type == '') disp_type = lang_all;
											 if(disp_rooms == '') disp_rooms = lang_all;
											 if(disp_persons == '') disp_persons = lang_all;
											 
										 
												 if (markers.length > 0) {
													
														var bounds = new GLatLngBounds();  // leave here
														  
														 for (var i = 0; i < markers.length; i++) {
														 		
																var name = markers[i].childNodes[0].childNodes[0].nodeValue;															
																var type = markers[i].childNodes[3].childNodes[0].nodeValue;
																var lat2 = markers[i].childNodes[1].childNodes[0].nodeValue;
																var lng2 = markers[i].childNodes[2].childNodes[0].nodeValue;
																
																var point = new GLatLng(parseFloat(lat2), parseFloat(lng2));
																var marker = createMarker(point, name, type);
																
																	bounds.extend(point);
																	map.addOverlay(marker);
																if (i == (markers.length -1)) dispMessage('stop');
														 }
														 
														 map.setZoom(map.getBoundsZoomLevel(bounds));
														 map.setCenter(bounds.getCenter());
											} else {
												mess_found = '<h3>' + mess_no_records_found + '</h3>' + mess_found_no_recs + '<br /><b>' + lang_city + ':</b> ' + disp_city + ' <b>' + lang_type + '</b>: ' + disp_type + '  <b>' + lang_rooms + '</b>: ' + disp_rooms + '  <b>' + lang_persons + '</b>: ' + disp_persons;
												 dispMessage('stop');
											}
											 
											
											 
									}
								);
							 
						}

	function dispMessage(message) {
				if (message == 'start') {
						// document.getElementById("error").innerHTML = url_xml;
						var dispMessage = "";
					
						switch (langLabels) {
										  case "de":
											dispMessage = "...einen Moment Daten werden geladen...";
											 break;
										  case "es":
										  	dispMessage = "...un momento carcando los datos...";
											 break;
										  case "it":
											dispMessage = "...caricamento dei dati...";
											 break;
										 case "fr":
											dispMessage = "...chargement des donnŽes...";
											 break;
										 case "pt":
											dispMessage = "...carregando dados...";
											 break;
										  default:
											dispMessage = "...one moment loading data...";
											 break;
										}
						document.getElementById("error").innerHTML = "<h3>" + dispMessage + "<\/h3>";
						document.getElementById("spinner").style.visibility = 'visible';
				} else {
					// alert(message);
					document.getElementById("spinner").style.visibility = 'hidden';
					document.getElementById("error").innerHTML = "";
					document.getElementById("error").innerHTML = mess_found;
				}
	};
	
    function createMarker(point, name, type) {
      var marker = new GMarker(point, customIcons[type]);
     var html = name;
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }
    
  
	onunload = GUnload ;