var gmap_displayLimit = 0;
var gmap_resultList = new Array();
var gmap_resultZoom = 12; 
var gmap = null;
var gmap_geocoder = null;
var gmap_locations = new Array();
var gmap_markerOptions = null;
var gmap_marker = null;

function gmap_init() {
	if (GBrowserIsCompatible()) {	    
		
		document.getElementById("gmap_box").style.display="block";
		
	    gmap = new GMap2(document.getElementById("gmap_box"));
		gmap_geocoder = new GClientGeocoder();
		gmap.setCenter(new GLatLng(51.44042,6.775131), 8, G_NORMAL_MAP);
		
		
		gmap.addControl(new GLargeMapControl());
		gmap.addControl(new GMapTypeControl());
	   	gmap.enableScrollWheelZoom();
	   	gmap.enableContinuousZoom(); // caution
	   	
	   	function wheelevent(e)
		{
			if (!e) {
				e = window.event;
			}
			if (e.preventDefault) {
				e.preventDefault();
			}
			e.returnValue = false;
		}
		GEvent.addDomListener(gmap.getContainer(), "DOMMouseScroll", wheelevent);
		gmap.getContainer().onmousewheel = wheelevent; 

		markerIcon = new GIcon();		
		markerIcon.image = "/de/images/gmap/krankikom-marker.png";
	    markerIcon.shadow = "/de/images/gmap/krankikom-marker-shadow2.png";
	    markerIcon.iconSize = new GSize(100.0, 40.0);
	    markerIcon.shadowSize = new GSize(121.0, 40.0);
	    markerIcon.iconAnchor = new GPoint(50.0, 20.0);
	    markerIcon.infoWindowAnchor = new GPoint(50.0, 20.0);
		gmap_markerOptions = {icon: markerIcon };
	}
}

function gmap_createKrankikom(address,info) {
	gmap_geocoder.getLatLng(address,  // sonderzeichenproblem
			function(point) {
				if(!point) {
					alert("not found"); // TODO
				}
				else {
					gmap.setCenter(point, 15);
					gmap_createMarker(point,info);
				}
			}
	);
}

function gmap_createKrankikomByCoordinates(lat,lng,info) {
	var point = new GLatLng(lat,lng);
	gmap.setCenter(point,13);
	gmap_createMarker(point, info);
}

function gmap_createMarker(point,info) {
	gmap_marker = new GMarker(point, gmap_markerOptions);
	var label1 = "Adresse";
	var html1 = "<div class=\"gmap_bubble\">";
	html1+= "<strong>"+info.title +"</strong></a>";
	html1+= "<p>"+info.address+"</p>";
	html1+= "</div>";
	
	/*
	var label2 = "Anfahrt";
	var html2 = "<div class=\"gmap_bubble\">";
	html2+= "<form action=\"http://maps.google.com/\" target=\"_new\" onsubmit=\"gmap_submit_form('"+point.lat()+" "+point.lng()+"');\">";
	html2+= "<input type=\"hidden\" id=\"gmap_form_query\" name=\"q\"/>";
	html2+= "Startadresse: <br/><input type=\"text\" name=\"from\" id=\"gmap_form_from\" />";
	html2+= "<input type=\"submit\" name=\"go\" value=\"Wegbeschreibung\"/></form>";
	html2+= "</div>";*/
	
	GEvent.addListener(gmap_marker, "click", function() { gmap_marker.openInfoWindowTabsHtml([new GInfoWindowTab(label1,html1) /*, new GInfoWindowTab(label2,html2) */ ] ); });
	gmap.addOverlay(gmap_marker);
}

function gmap_submit_form(to) {
	document.getElementById("gmap_form_query").value="from: " + document.getElementById("gmap_form_from").value + " to: " + to;
	return true;
}

function addLoadEvent(func) {
	var oldonload = window.onload;
	if(typeof window.onload != 'function') {
		window.onload = func;	
	}
	else {
		window.onload = function() {
			if(oldonload) {
				oldonload();
			}
			func();
		}
	}
}

function addUnloadEvent(func) {
	var oldonunload = window.onunload;
	if(typeof window.onunload != 'function') {
		window.onunload = func;
	}
	else {
		window.onunload = function() {
			if(oldonunload) {
				oldonunload();
			}
			func();
		}
	}
}
