

if(document.cookie){ 
	var loadedstring=getCookie("mapCenter");
	var splitstr = loadedstring.split("_");
	
	/*map.setCenter(new GLatLng(parseFloat(splitstr[0]), parseFloat(splitstr[1])), parseFloat(splitstr[2]));*/
	var centerLat = parseFloat(splitstr[0]);
	var centerLng = parseFloat(splitstr[1]);
	var zoom = parseFloat(splitstr[2]);
}

	var loadedstring=getCookie("mapSettings");
	var splitstr = loadedstring.split("_");
	var source = parseFloat(splitstr[0]);

if(isNaN(centerLat))  {centerLat = 47.4377;}
if(isNaN(centerLng))  {centerLng = 9.3582;} 
if(isNaN(zoom))  {zoom = 13;}

function getCheckedValue(radioObj)
{
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

function getCookie(c_name)
{
	if (document.cookie.length>0)
  	{
  		c_start=document.cookie.indexOf(c_name + "=");
  		if (c_start!=-1)
    	{ 
    		c_start=c_start + c_name.length+1; 
    		c_end=document.cookie.indexOf(";",c_start);
    		if (c_end==-1) c_end=document.cookie.length;
    		return unescape(document.cookie.substring(c_start,c_end));
    	} 
  	}
	return "";
}

function setCookie(name, value, expires) 
{
	document.cookie = name + "=" + escape(value) + "; path=/" + ((expires == null) ? "" : "; expires=" + expires.toGMTString());
}

function toggle_visibility(id) 
{
	var e = document.getElementById(id);
	if(e.style.display == 'block')
		e.style.display = 'none';
	else
		e.style.display = 'block';
}

function saveMapSettings()
{
	for (var i=0; i < document.database.source.length; i++)
	{
		if (document.database.source[i].checked)
		{
			var source = document.database.source[i].value;
      		var cookiestring = document.database.source[i].value;
			var exp = new Date();
			exp.setTime(exp.getTime() + (1000 * 60 * 60 * 24 * 30));
			setCookie("mapSettings",cookiestring, exp);
      	}
   }

	/*var cookiestring=document.source.db.value;
	var exp = new Date();
	exp.setTime(exp.getTime() + (1000 * 60 * 60 * 24 * 30));
	setCookie("mapSettings",cookiestring, exp);*/
	drawVisibleMarkers();
}

	var iconBlue = new GIcon(); 
    iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';
    iconBlue.shadow = 'http://labs.google.com/ridefinder/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 = '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 iconGreen = new GIcon(); 
    iconGreen.image = 'http://labs.google.com/ridefinder/images/mm_20_green.png';
    iconGreen.shadow = 'http://labs.google.com/ridefinder/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 = 'http://labs.google.com/ridefinder/images/mm_20_yellow.png';
    iconYellow.shadow = 'http://labs.google.com/ridefinder/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["member"] = iconGreen;
	customIcons["normal"] = iconGreen;
	customIcons["Trad."] = iconGreen;
	customIcons["Traditional Cache"] = iconGreen;
    customIcons["multi-part"] = iconYellow;
	customIcons["Multi-cache"] = iconYellow;
	customIcons["Multi"] = iconYellow;
	customIcons["virtual"] = iconBlue;
	customIcons["Unknown Cache"] = iconBlue;
	customIcons["Quiz"] = iconBlue;
	customIcons["Letterbox Hybrid"] = iconRed;
	customIcons["Webcam Cache"] = iconRed;
	customIcons["Wherigo Cache"] = iconRed;
	customIcons["Event Cache"] = iconRed;

    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
		map.addMapType(G_PHYSICAL_MAP); 
        map.setCenter(new GLatLng(centerLat, centerLng), zoom);
		// Loc-Search
		map.addControl(new google.maps.LocalSearch(), new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10,20)));

		
		function drawVisibleMarkers() {
        	GDownloadUrl("get_markers.php?minlng=" + map.getBounds().getSouthWest().lng() + "&minlat=" + map.getBounds().getSouthWest().lat() + "&maxlng=" + map.getBounds().getNorthEast().lng() + "&maxlat=" + map.getBounds().getNorthEast().lat() + "&source=" + getCheckedValue(document.forms['database'].elements['source']), function(data) {
          	var xml = GXml.parse(data);
          	var markers = xml.documentElement.getElementsByTagName("marker");
          	for (var i = 0; i < markers.length; i++) {
            var title = markers[i].getAttribute("title");
            var description = markers[i].getAttribute("description");
			var url = markers[i].getAttribute("url");
            var type = markers[i].getAttribute("type");
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
            var marker = createMarker(point, title, description, url, type);
            map.addOverlay(marker);
          	}
        	});
		}
		
		drawVisibleMarkers();
		
		/* Cookie mit den Längen- Breitenangaben und dem Zoomwert */
		function saveMapCenter()
		{
			var mapzoom=map.getZoom();
			var mapcenter=map.getCenter();
			var maplat=mapcenter.lat();
			var maplng=mapcenter.lng();
	
			var cookiestring=maplat+"_"+maplng+"_"+mapzoom;
	
			var exp = new Date();
			exp.setTime(exp.getTime() + (1000 * 60 * 60 * 24 * 30));     /* 30 Tage ab jetzt */
	
			setCookie("mapCenter",cookiestring, exp);
		}
		
			
		/* Listener Kartenverschiebungen */
    	GEvent.addListener(map, "moveend", function() {
		map.clearOverlays();
		drawVisibleMarkers();
		saveMapCenter(); /* Aufruf bei jeder Verschiebung der Karte */
		
		/*document.getElementById("message").innerHTML = maplat.toString() + ", " + centerLng.toString() + ", " + zoom;*/
    	});

		
      }
    }

    function createMarker(point, title, description, url, type) {
		var marker = new GMarker(point,{icon:customIcons[type],title:title});
		var html = "<div id=\"info_box\"><h5><img src=\"templates/img/" + type + ".gif\" /> <a href=\"" + url + "\">" + title + "</a></h5>" + html_entity_decode(description) + "</div>";
		GEvent.addListener(marker, 'click', function() { marker.openInfoWindowHtml(html); });
		return marker;
	}

