var map = null;
var geocoder = null;
var mgr = null;
var coords = new Array();
var icon = null;
var sicon = null;
var picon = null;
var spicon = null;

  //google.load("maps", "2.x");
   
  // Call this function when the page has been loaded
/*
    var map = new google.maps.Map2(document.getElementById("map"));
    map.setCenter(new google.maps.LatLng(37.4419, -122.1419), 13);
*/
  //google.setOnLoadCallback(load);

function load() {
		map =  new google.maps.Map2(document.getElementById("map"));
		map.addControl(new GLargeMapControl3D());//GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GOverviewMapControl());
    
    var lat = document.getElementById("lat").value;
    var lng = document.getElementById("lng").value;

                if( lat == 0 && lng == 0 ) {
                  lat = google.loader.ClientLocation.latitude;
                  lng = google.loader.ClientLocation.longitude;
                }

		geocoder = new GClientGeocoder();

		//map.setCenter(new google.maps.LatLng(52.360191,4.938452), 14);//11
    map.setCenter(new google.maps.LatLng(lat,lng), 14);//11
		mgr = new GMarkerManager(map);

		// Create our "tiny" marker icon
		icon = new GIcon();
		icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
		icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		/*icon.image = "http://www.diodrogist.nl/images/map_dio.png";
		icon.shadow = "http://www.diodrogist.nl/images/map_dio_sh.png";
		icon.iconSize = new GSize(19, 55);
		icon.shadowSize = new GSize(59, 55);*/
		icon.iconAnchor = new GPoint(9, 55);
		icon.infoWindowAnchor = new GPoint(5, 1);

		sicon = new GIcon();
		sicon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
		sicon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		/*sicon.image = "http://www.diodrogist.nl/images/icons/aanwijzer.gif ";
		sicon.shadow = "http://www.diodrogist.nl/images/icons/aanwijzer_schaduw.gif ";
		sicon.iconSize = new GSize(11, 14);
		sicon.shadowSize = new GSize(15, 14);*/
		sicon.iconAnchor = new GPoint(6, 14);
		sicon.infoWindowAnchor = new GPoint(5, 1);
		// Create our "tiny" marker icon
		picon = new GIcon();
		picon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
		picon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		/*picon.image = "http://www.diodrogist.nl/images/map_person.png";
		picon.shadow = "http://www.diodrogist.nl/images/map_person_sh.png";
		picon.iconSize = new GSize(25, 60);
		picon.shadowSize = new GSize(59, 60);*/
		picon.iconAnchor = new GPoint(12, 60);
		picon.infoWindowAnchor = new GPoint(5, 1);
		
		spicon = new GIcon();
		spicon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
		spicon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		/*spicon.image = "http://www.diodrogist.nl/images/icons/poppetje.gif";
		spicon.shadow = "http://www.diodrogist.nl/images/icons/poppetje_schaduw.gif";
		spicon.iconSize = new GSize(6, 15);
		spicon.shadowSize = new GSize(15, 15);*/
		spicon.iconAnchor = new GPoint(3, 15);
		spicon.infoWindowAnchor = new GPoint(5, 1);

		var info = "Hier bent u";
		//mgr.addMarker(createStartMarker(new google.maps.LatLng(52, 4),info,picon,'Hier bent u'),0,17);

		/*GDownloadUrl("map.xml", function(data) {
			var xml = GXml.parse(data);
			var markers = xml.documentElement.getElementsByTagName("marker");
			for (var i = 0; i < markers.length; i++) {
				var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng")));
				//var marker = new GMarker(point,icon);
				//map.addOverlay(marker);
				var postcode = markers[i].getAttribute("postcode");
				var adres = markers[i].getAttribute("adres");
				var route = "<a onclick=\"routeMeHere('"+postcode+","+adres+"')\" >Routebeschrijving<\/a>";
				var website = markers[i].getAttribute("website");
				var opmerking = markers[i].getAttribute("opmerking");
				var link = "<a href='"+website+"' target='_blank'>Website</a>";
				if (website == ''){
					link = '';
				}
				var shop = markers[i].getAttribute("shop");
        if ( opmerking != ''){
				  var info = opmerking+"<br/><b>"+markers[i].getAttribute("shop")+"<\/b><br/>"+markers[i].getAttribute("adres")+"<br/>"+markers[i].getAttribute("postcode")+" "+markers[i].getAttribute("city")+"<br/>"+markers[i].getAttribute("tel")+"<br/>"+route+"<br/>"+link;
				}else{  var info = "<b>"+markers[i].getAttribute("shop")+"<\/b><br/>"+markers[i].getAttribute("adres")+"<br/>"+markers[i].getAttribute("postcode")+" "+markers[i].getAttribute("city")+"<br/>"+markers[i].getAttribute("tel")+"<br/>"+route+"<br/>"+link;}


				;
				//map.addOverlay(createMarker(point, info));

				mgr.addMarker(createStartMarker(point, info,icon,shop),11,17);
				mgr.addMarker(createStartMarker(point, info,sicon,shop),0,10);
			}
		});*/
    
    // var lat = document.getElementById("lat").value;
    // var lng = document.getElementById("lng").value;
    var point = new GLatLng(parseFloat(lat),parseFloat(lng));
    mgr.addMarker(new GMarker(point,{icon:sicon}),11,17);
    mgr.addMarker(new GMarker(point,{icon:sicon}),0,10);

}

function createStartMarker(point, number,icon,title) {
	var marker = new GMarker(point,{icon:icon,title:title});
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(number);
	});
	return marker;
}
function createPStartMarker(point, number,icon,title) {
	var marker = new GMarker(point,{icon:icon,title:title});
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(number);
	});
	return marker;
}

function createMarker(point, number,icon) {
	var marker = new GMarker(point,icon);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(number);
	});
	return marker;
}
function showAddress(adress) {
	var address = adress+",Netherlands";
	geocoder.getLatLng(address,function(point){
		if (!point) {
			alert(address + " niet gevonden.");
			document.getElementById('dadres').focus();
		} 
		else {
			marker = new GMarker(point);
			map.setCenter(point, 14);//11
			map.panTo(new GLatLng(point.lat(),point.lng()));
			//map.addOverlay(marker);
			mgr.addMarker(createStartMarker(point, address+"<br/>lat: "+point.lat()+"<br/>lng: "+point.lng(),picon),11,17);
			mgr.addMarker(createStartMarker(point, address+"<br/>lat: "+point.lat()+"<br/>lng: "+point.lng(),spicon),0,10);
			mgr.refresh();
			//marker.openInfoWindowHtml(address+"<br/>lat: "+point.lat()+"<br/>lng: "+point.lng());
		}
	});
}   
function showLoc() {
	//var address = document.getElementById("dadres").value;
  var gmaptype = document.getElementById("gmaptype").value;
  if( gmaptype == "object") {
    mgr = new GMarkerManager(map);
    var lat = document.getElementById("lat").value;
    var lng = document.getElementById("lng").value;
    var point = new GLatLng(parseFloat(lat),parseFloat(lng));
    var loc = new GLatLng(point.lat(),point.lng());
    map.setCenter(loc, 14);//11
    map.panTo(loc);
    mgr.addMarker(new GMarker(point,{icon:icon}),14,17);
    mgr.addMarker(new GMarker(point,{icon:icon}),0,10);
    mgr.refresh();
  }
  else if(gmaptype == "landinformatie") {
    showCountry('');
  }
    
	/*var zipcode = document.getElementById("postcode").value;
	var street = document.getElementById("straat").value;
  var country = document.getElementById("land").value;//document.form1.select2.options[document.form1.select1.selectedIndex].value);
  var address = ''
  if( zipcode != '' ) {
    address = address + zipcode;
  }
  if( street != '' ) {
    address = address+','+street;
  }
	var adres = address;
	if (address != ''){
		//address = address + ",Netherlands";
		address = address + ","+country;
	}
  
	geocoder.getLatLng(address,function(point){
    //alert(point);
		if (!point) {
			if (address == ''){
				alert("U dient een postcode invoeren.");
			}
			else{
				alert(address + " niet gevonden.");
			}
			document.getElementById('dadres').focus();
		} 
		else {
			//*marker = new GMarker(point);
      var loc = new GLatLng(point.lat(),point.lng());
			map.setCenter(loc, 14);//11
			map.panTo(loc);
			//*mgr.addMarker(marker,0,17);
			//*marker.openInfoWindowHtml(address+"<br/>U bent Hier");
        
			mgr.addMarker(createPStartMarker(point, adres+"<br/>Nederland<br/><br/>Dit is uw eigen locatie.",picon),11,17);
			mgr.addMarker(createPStartMarker(point, adres+"<br/>Nederland<br/><br/>Dit is uw eigen locatie.",spicon),0,10);
			mgr.refresh();
			coords[0]=point.lat();
			coords[1]=point.lng();
			coords[3]=address;
      
		}
	});*/
} 
function showCountry(mcountry) {
  var address = '';
  var country = ''
  if( mcountry == '') {
    country = document.getElementById("land").value;
  }
  else {
    country = mcountry;
  }
  address = address + country
  geocoder.getLatLng(address,function(point){
    //alert(point);
    if (!point) {
      if (address == ''){
        alert(address + " niet goed ingevuld.");
      }
      else{
        alert(address + " niet gevonden.");
      }
    } 
    else {
      //*marker = new GMarker(point);
      var loc = new GLatLng(point.lat(),point.lng());
      map.setCenter(loc, 7);//11
      map.panTo(loc);
      //*mgr.addMarker(marker,0,17);
      //*marker.openInfoWindowHtml(address+"<br/>U bent Hier");
        
      /*mgr.addMarker(createPStartMarker(point, adres+"<br/>Nederland<br/><br/>Dit is uw eigen locatie.",picon),11,17);
      mgr.addMarker(createPStartMarker(point, adres+"<br/>Nederland<br/><br/>Dit is uw eigen locatie.",spicon),0,10);
      mgr.refresh();*/
      coords[0]=point.lat();
      coords[1]=point.lng();
      coords[3]=address;
      
    }
  });
}
function showCoords() {
	alert(coords[0]+" , "+coords[1]);
}
function routeMeHere(adres){
	if(coords[3] != ''){
		window.open('http://maps.google.nl/maps?saddr='+coords[3]+'&daddr='+adres+',Netherlands','mywindow','width=1000,height=800,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,copyhistory=yes,resizable=yes');
	}
	else{
		alert('u moet eerst een geldig postcode invoeren');
		document.getElementById('dadres').focus();
	}
	//alert(adres);
}
