//<![CDATA[
var infowindow;
var map;
var cm_mapMarkers = [];
var sidebarMarkers = [];
var sidebarMarkersContent = [];
var mapCenter = [];
var markerIcon = [];
var Zoom;

if(showMap == 'international')
{
	Zoom = 4;	
}
else
{
	Zoom = 5;	
}

// Anderes Marker-Icon für besondere Einträge (Hier: Premium)
markerIcon["premium"] = '/template/images/map-icon.gif';

function initialize()
{
	// Karteneigenschaften
	var myLatlng = new google.maps.LatLng(52.26715, 9.631640000000061);
	var myOptions = {
	zoom: Zoom,
	center: myLatlng,
	mapTypeId: google.maps.MapTypeId.ROADMAP
	}
  
	map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
	
	// Daten aus XML-Datei holen
	downloadUrl("/template/javascript/adressen.php", function(data)
	{
		var markers = data.documentElement.getElementsByTagName("marker");
		
		for (var i = 0; i < markers.length; i++)
		{
			if(markers[i].getAttribute("cat") == showMap)
			{
				var latlng = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
				var name = markers[i].getAttribute("name");
				var street = markers[i].getAttribute("street");
				var housenumber = markers[i].getAttribute("housenumber");
				var zipcode = markers[i].getAttribute("zipcode");
				var city = markers[i].getAttribute("city");
				var phone = markers[i].getAttribute("phone");
				var web = markers[i].getAttribute("web");
				//var web = web1.replace("&minus;","test")
				var image = markers[i].getAttribute("image");
				var icon = markers[i].getAttribute("type");
				var marker = createMarker(name, latlng, street, housenumber, zipcode, city, phone, web, image, icon);
			
				if(markers[i].getAttribute("cat") == 'deutschland')
				{
					sidebarMarkers[i] = marker;
					sidebarMarkersContent[i] = '<div style="min-height:150px;min-width:220px;"><strong>'+name+'</strong><br />'+street+' '+housenumber+'<br />'+zipcode+' '+city+'<br /><br />'+phone+'<br /><a target="_blank" href="http://'+web+'" title="'+web+'">'+web+'</a><br /><br /><img src="/uploads/haendler/'+image+'-thumb.jpg" alt="" /></div>';
					mapCenter[i] = latlng;
				
					var sidebarDIV = document.createElement("div");
					sidebarDIV.id = "cm_sidebarDIV";
					sidebarDIV.style.width = "200px";
					sidebarDIV.style.overflow = "hidden";
					document.getElementById("sidebar").appendChild(sidebarDIV);
				
					var markerA = document.createElement("a");
					markerA.setAttribute("href","javascript:cm_markerClicked('" + i +"')");
					var sidebarText= name;
					markerA.appendChild(document.createTextNode(sidebarText));
					sidebarDIV.appendChild(markerA);
					sidebarDIV.innerHTML = sidebarDIV.innerHTML+'<br />'+street+' '+housenumber+'<br />'+zipcode+' '+city+'<br /><br />';
				}
			}
		}
	});
	  
	google.maps.event.addListener(map, "click", function()
	{
		infowindow.close();
	});
}

function showSidebar(plz)
{
	// Daten aus XML-Datei holen
	downloadUrl("/template/javascript/adressen.php", function(data)
	{
		var markers = data.documentElement.getElementsByTagName("marker");	
		for (var i = 0; i < markers.length; i++)
		{
			if(markers[i].getAttribute("zipcode").charAt(0) == plz & markers[i].getAttribute("cat") == 'deutschland' )
			{
				var latlng = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
				var name = markers[i].getAttribute("name");
				var street = markers[i].getAttribute("street");
				var housenumber = markers[i].getAttribute("housenumber");
				var zipcode = markers[i].getAttribute("zipcode");
				var city = markers[i].getAttribute("city");
				var phone = markers[i].getAttribute("phone");
				var web = markers[i].getAttribute("web");
				var image = markers[i].getAttribute("image");
				var icon = markers[i].getAttribute("type");
				var marker = createMarker(name, latlng, street, housenumber, zipcode, city, phone, web, image, icon);
				
				sidebarMarkers[i] = marker;
				marker.setMap(null);
				if(image != '')
				{
					sidebarMarkersContent[i] = '<div style="min-height:150px;min-width:220px;"><strong>'+name+'</strong><br />'+street+' '+housenumber+'<br />'+zipcode+' '+city+'<br /><br />'+phone+'<br /><a target="_blank" href="http://'+web+'" title="'+web+'">'+web+'</a><br /><br /><img src="/uploads/haendler/'+image+'-thumb.jpg" alt="" /></div>';
				}
				else
				{
					sidebarMarkersContent[i] = '<div style="min-height:150px;min-width:220px;"><strong>'+name+'</strong><br />'+street+' '+housenumber+'<br />'+zipcode+' '+city+'<br /><br />'+phone+'<br /><a target="_blank" href="http://'+web+'" title="'+web+'">'+web+'</a></div>';
				}
				mapCenter[i] = latlng;
			
				var sidebarDIV = document.createElement("div");
				sidebarDIV.id = "cm_sidebarDIV";
				sidebarDIV.style.width = "200px";
				sidebarDIV.style.overflow = "hidden";
				document.getElementById("sidebar").appendChild(sidebarDIV);
			
				var markerA = document.createElement("a");
				markerA.setAttribute("href","javascript:cm_markerClicked('" + i +"')");
				var sidebarText= name;
				markerA.appendChild(document.createTextNode(sidebarText));
				sidebarDIV.appendChild(markerA);
				sidebarDIV.innerHTML = sidebarDIV.innerHTML+'<br />'+street+' '+housenumber+'<br />'+zipcode+' '+city+'<br /><br />';
			}
		}
	});
}

// Bei Klick in der Sidebar entsprechenden Marker anzeigen
function cm_markerClicked(markerNum)
{
	if (infowindow) infowindow.close();
	var infowindowOptions = {
	  content: sidebarMarkersContent[markerNum]
	}
	infowindow = new google.maps.InfoWindow(infowindowOptions);
	infowindow.open(map, sidebarMarkers[markerNum]);	
	map.setZoom(6);
	map.setCenter(mapCenter[markerNum]);
}

// Marker erzeugen
function createMarker(name, latlng, street, housenumber, zipcode, city, phone, web, image, icon)
{
  var Options = {
	position: latlng,
	icon: markerIcon[icon],
	map: map
  }
  
  var marker = new google.maps.Marker(Options);
  google.maps.event.addListener(marker, "click", function() {
	if (infowindow) infowindow.close();
	if(image != '')
	{
		infowindow = new google.maps.InfoWindow({content: '<div style="min-height:150px;overflow:hidden;"><strong>'+name+'</strong><br />'+street+' '+housenumber+'<br />'+zipcode+' '+city+'<br /><br />'+phone+'<br /><a target="_blank" href="http://'+web+'" title="'+web+'">'+web+'</a><br /><br /><img src="/uploads/haendler/'+image+'-thumb.jpg" alt="" /></div>'});
	}
	else
	{
		infowindow = new google.maps.InfoWindow({content: '<div style="min-height:150px;overflow:hidden;"><strong>'+name+'</strong><br />'+street+' '+housenumber+'<br />'+zipcode+' '+city+'<br /><br />'+phone+'<br /><a target="_blank" href="http://'+web+'" title="'+web+'">'+web+'</a></div>'});
	}
	infowindow.open(map, marker);
  });
  return marker;
}
//]]>
