var map;
var geocoder;

$(document).ready(function() {
	google_initialize();
});

function google_initialize() {
  if (GBrowserIsCompatible()) {
    if ($("#search_de").length > 0) {
		map = new GMap2(document.getElementById("map_canvas"));
		map.addControl(new GLargeMapControl);
		map.setCenter(new GLatLng(50.887325927857184, 10.107421875), 15);
		map.setZoom(5);
		geocoder = new GClientGeocoder();
		addMarkers();
	}
	
	if ($("#search_at").length > 0) {
		map = new GMap2(document.getElementById("map_canvas"));
		map.addControl(new GLargeMapControl);
		map.setCenter(new GLatLng(47.39041633549714, 14.0625), 15);
		map.setZoom(6);
		geocoder = new GClientGeocoder();
		addMarkers();
	}
	
	if ($("#search_ch").length > 0) {
		map = new GMap2(document.getElementById("map_canvas"));
		map.addControl(new GLargeMapControl);
		map.setCenter(new GLatLng(46.48225609298296, 8.003115234375), 15);
		map.setZoom(6);
		geocoder = new GClientGeocoder();
		addMarkers();
	}
  }
}

function createMarker(point, name, desc) {
  var marker = new GMarker(point);
  var html = desc;
  GEvent.addListener(marker, 'click', function() {
    marker.openInfoWindowHtml(html);
  });
  return marker;
}


function addMarkers() {
	map.clearOverlays();
	GDownloadUrl("/de/wGlobal/layout/scripts/markers.xml", 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("id");
			var content = markers[i].getElementsByTagName("description");
			var desc = content[0].firstChild.data;
			var lat = parseFloat(markers[i].getAttribute("lat"));
			var lng = parseFloat(markers[i].getAttribute("lng"));
			if (lat > 0 && lng > 0) {
		   		var point = new GLatLng(lat,lng);
		    	var marker = createMarker(point, name, desc);
		    	map.addOverlay(marker);
			}
		  }
	});
}

function showAddress(id){
	map.clearOverlays();
	GDownloadUrl("/de/wGlobal/layout/scripts/markers.xml", 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("id");
			if (name == id) {
				var content = markers[i].getElementsByTagName("description");
				var desc = content[0].firstChild.data;
				var lat = parseFloat(markers[i].getAttribute("lat"));
				var lng = parseFloat(markers[i].getAttribute("lng"));
				if (lat > 0 && lng > 0) {
			   		var point = new GLatLng(lat,lng);
			    	var marker = createMarker(point, name, desc);
			    	map.addOverlay(marker);
					marker.openInfoWindowHtml(desc);
					map.setCenter(point, 13);
				}
			}
		}	
	});
}

function reset_zip(country) {
	$("#plz").val('');
	if (country == 'de') {
		addMarkers();
		map.setCenter(new GLatLng(50.887325927857184, 10.107421875), 15);
		map.setZoom(5);
	}
	if (country == 'at') {
		addMarkers();
		map.setCenter(new GLatLng(47.39041633549714, 14.0625), 15);
		map.setZoom(6);
	}
	if (country == 'ch') {
		addMarkers();
		map.setCenter(new GLatLng(46.48225609298296, 7.943115234375), 15);
		map.setZoom(6);
	}
}

function search_zip() {
	var country = $("#land").val();
	var zip = $("#plz").val();
	$.ajax({
		type: "POST",
		url: '/de/wGlobal/layout/scripts/getBOM.php',
		async: false,
		data: "plz=" + zip + "&land=" + country,
		dataType: 'xml',
		success: function(xml) {
			var error = $(xml).find('error').text();
			if (error) {
				alert(error);
			}
			else {
				var id = $(xml).find('id').text();
				showAddress(id);
			}
		}		
	});
	return false;
}


