
var map = null;
var geocoder = null;

var iconBlue = new GIcon();
iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';
//iconBlue.image = 'http://sbk.ibu.de/fileadmin/images/topnav/sbk.png';
iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
iconBlue.iconSize = new GSize(12, 20);
iconBlue.shadowSize = new GSize(50, 20);
iconBlue.iconAnchor = new GPoint(6, 20);
iconBlue.infoWindowAnchor = new GPoint(5, 1);

var iconRed = new GIcon();
iconRed.image = 'http://labs.google.com/ridefinder/images/mm_20_red.png';
iconRed.shadow = 'http://labs.google.com/ridefinder/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 customIcons = [];
customIcons["restaurant"] = iconBlue;
customIcons["bar"] = iconRed;
customIcons["gst"] = iconBlue;
customIcons["sbk"] = iconBlue;

var coords="/fileadmin/map/gs.xml";


function createMarker(point, name, adr, type, plzOrt, tel, fax, email){
	var marker = new GMarker(point, customIcons[type]);
	var html = createMarkerHTML(name, adr, type, plzOrt, tel, fax, email);
	
	GEvent.addListener(marker, 'click', function(){
		marker.openInfoWindowHtml(html);
	});
	return marker;
}

function createMarkerHTML(name, adr, type, plzOrt, tel, fax, email){
	var tmpadr = (adr != "")? "<br/>" + adr : "";
	var tmpplzOrt = (plzOrt != "")? "<br/>" + plzOrt : "";
	var tmptel = (tel != "") ? "<br/>Tel.: " + tel : "";
	var tmpfax = (fax != "") ? "<br/>Fax.: " + fax : "";
	var tmpemail = (email != "") ? "<br/>E-Mail:  <a href='mailto:"+email+"'>" + email + "</a>" :"";

	var html = "<br/><b>" + name + "</b>" + tmpadr + "" + tmpplzOrt + "" + tmptel + "" + tmpfax + ""+ tmpemail+ "<br/><br/>";
	return html;
}

				//http://code.google.com/apis/maps/documentation/reference.html

function load(){

	if ( GBrowserIsCompatible() && document.getElementById("map") ) {
		var map = new GMap2(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GHierarchicalMapTypeControl());
		geocoder = new GClientGeocoder();
		geocoder.setBaseCountryCode('de');


		p = document.getElementById("point");
		lat = parseFloat(p.getAttribute('lat'));
		lon = parseFloat(p.getAttribute('lon'));
		msg  = p.getAttribute('msg');
		zoom = parseInt(p.getAttribute('zoom'));

		var test = msg.substring(0, 5);
		if(test.substring(4) == ' ') {
			test = "0"+test.substring(0,4);
		}

		var point = new GLatLng( lat, lon);
		map.setCenter(point, zoom);
		if(msg.length <= 5) {
			//"Ihr Standort" Marker bei Anzeige mehrerer GST
			var marker = new GMarker( point );
			map.addOverlay(marker);
			marker.openInfoWindowHtml('Ihr Standort: ' + msg);
		} else {
			//PLZ Point merken falls GST nicht gefunden wird bei Anzeige 1 GST
			var testPoint = point;
			
		}
		// Anzeige mehrerer GST
		if(msg.length <= 5) {

			GDownloadUrl( coords , function(data){
			  
				var xml = GXml.parse(data);
				var markers = xml.documentElement.getElementsByTagName("marker");

				for (var i = 0; i < markers.length; i++) {
					var name = markers[i].getAttribute("name");
					var adr  = markers[i].getAttribute("address");
					var type = markers[i].getAttribute("type");
					var plzOrt = markers[i].getAttribute("plzOrt");
					var tel = markers[i].getAttribute("tel");
					var fax = markers[i].getAttribute("fax");
					var email = markers[i].getAttribute("email");
					var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
					var marker = createMarker(point, name, adr , type, plzOrt, tel, fax, email);
					map.addOverlay(marker);
				}
			});
		
		} //msg <=5
		else //Anzeige 1 GST
		{

			GDownloadUrl( coords , function(data){
				var xml = GXml.parse(data);
				var markers = xml.documentElement.getElementsByTagName("marker");
				
				for (var i = 0; i < markers.length; i++) {
					var name = markers[i].getAttribute("name");
					var adr  = markers[i].getAttribute("address");
					var type = markers[i].getAttribute("type");
					var plzOrt = markers[i].getAttribute("plzOrt");
					var tel = markers[i].getAttribute("tel");
					var fax = markers[i].getAttribute("fax");
					var email = markers[i].getAttribute("email");

					//PLZ Gefunden
					if(test==plzOrt.substring(0, 5) && msg.substring(msg.length-adr.length)==adr) {
						var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
						var marker = createMarker(point, name, adr , type, plzOrt, tel, fax, email);
						map.setCenter(point, 13);
						map.addOverlay(marker);
						marker.openInfoWindowHtml(createMarkerHTML(name, adr, type, plzOrt, tel, fax, email));
						break;
						
					} //test==plzOrt.substring(0, 5)
					
					//PLZ nicht gefunden und beim letzten Element angekommen
					else if(i == markers.length-1) {
						//deshalb Umgebungssuche durchführen, d.h. ALLE Marker hinzufügen + "Ihr Standort"
						for (var i = 0; i < markers.length; i++) {
							var name = markers[i].getAttribute("name");
							var adr  = markers[i].getAttribute("address");
							var type = markers[i].getAttribute("type");
							var plzOrt = markers[i].getAttribute("plzOrt");
							var tel = markers[i].getAttribute("tel");
							var fax = markers[i].getAttribute("fax");
							var email = markers[i].getAttribute("email");
							var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
							
							var marker = createMarker(point, name, adr , type, plzOrt, tel, fax, email);
							map.addOverlay(marker);
							
						} //for markers
						if(testPoint != null) {
							var marker = new GMarker( testPoint );
							map.addOverlay(marker);
							marker.openInfoWindowHtml('Ihr Standort: ' + test);
						}
					} //test!=plzOrt.substring(0, 5) && count == 0 && i == markers.length-1
				} //for markers 
			}); //gdownloadurl
		} // msg >5
	} //compatible
} // load