	var geocoder;
	var map ;
	var markersArray = [];
	var zoomA=51.609246;
	var zoomB=6.028109;
	var zoomLvl=7;
	
	function initialize() {
		geocoder = new google.maps.Geocoder();
		
		
	    var latlng = new google.maps.LatLng(zoomA,zoomB);
	    var myOptions = {
	      zoom: zoomLvl,
	      center: latlng,
	      mapTypeId: google.maps.MapTypeId.ROADMAP
	    };
	    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
	   
	}
	
	 function saveLatLang(pid, latLng){
		 $.post(aPath+"/includes/remote.php", { action:'saveLatLng', id: pid, latL: latLng }, function(data){
			// alert(data);
		 });
	 }
	 
	 function disableAddress(pid){
		 $.post(aPath+"/includes/remote.php", { action:'disable', id: pid }, function(data){
			// alert(data);
		 });
	 }
	 
	function addNewMarker(info){
		for (var i = 0; i < info.length; i++) {
			var address = info[i].address+" "+info[i].suburb+" "+info[i].state+" "+info[i].zip+" "+info[i].country;
			address = address.replace(/N\/A/i, '');
			address = address.replace(/C\/O/i, '');
			var id=info[i].id;
			if(empty(info[i].latlng)){
				setAddress(id,address);
			}else{
				var newlatlng = new google.maps.LatLng(info[i].lat,info[i].lng);
				DrawMapOverlay(info[i], newlatlng)
			}
		}	
	}
	
	function setAddress(id,address){
		geocoder.geocode( { 'address': address}, function(results, status) {
			if (status == google.maps.GeocoderStatus.OK) {
				saveLatLang(id,results[0].geometry.location);
			}else if(status=="OVER_QUERY_LIMIT"){
				alert(status+" "+address );
			}else if(status=="ZERO_RESULTS"){
				disableAddress(id);
				//alert(status+" "+address );
			}else{
				
			}
		});	
	}
	
	function DrawMapOverlay(info, newlatlng) {
		var contentBox = "<div style=\"font-weight: bold; font-size: 11px; width:250px; \"><br />" +
		""+info.name+"" +
		"<ul>" +
		"<li>"+info.address+"<br />"+info.zip+" "+info.suburb+" </li>" +
		//"<li>Land: "+info.country+"</li>" +
		"<li>"+info.phone+"</li>" +
		"<li> <a target=\"_blank\" href=\"http://"+info.website+"\" style=\"color:blue\">"+info.website+"</a></li>" +
		//"<li>E-mail: <a target=\"_blank\" href=\"mailto:"+info.email+"\" style=\"color:blue\">"+info.email+"</li>" +
		//"<li>meer <a target=\"_parent\" href=\""+info.link+"\" style=\"color:blue\">info</a> </li>" +
		"</ul>" +
		//"<p style=\"font-size: 11px;\">"+info.description+"</p>" +
		"<br /><br /></div>"; 
		
		var infowindow = new google.maps.InfoWindow({
		    content: contentBox
		});
		var marker = new google.maps.Marker({
		    position: newlatlng,
		    map: map
		});
    	google.maps.event.addListener(marker, 'click', function() {
    		infowindow.open(map,marker);
		});
	}
	
	function centerGoogleMap(zip,country) {
		
		if(!empty(zip)){
			var address = zip+" "+country;
			address = address.replace(/N\/A/i, '');
			address = address.replace(/C\/O/i, '');
			geocoder.geocode( { 'address': address}, function(results, status) {
				if (status == google.maps.GeocoderStatus.OK) {
					map.setCenter(results[0].geometry.location);
					map.setZoom(11);
				}else{
					//alert(status);
				}
			});	
		}
	}

	function DrawOverlay(info, point) {
		var infoWindow = "<div style=\"font-weight: bold; font-size: 11px; width:350px; \"><br />" +
				""+info.name+"" +
				"<ul>" +
				"<li>"+info.address+"<br />"+info.zip+" "+info.suburb+" </li>" +
				//"<li>Land: "+info.country+"</li>" +
				"<li>"+info.phone+"</li>" +
				"<li> <a target=\"_blank\" href=\"http://"+info.website+"\" style=\"color:blue\">"+info.website+"</a></li>" +
				//"<li>E-mail: <a target=\"_blank\" href=\"mailto:"+info.email+"\" style=\"color:blue\">"+info.email+"</li>" +
				//"<li>meer <a target=\"_parent\" href=\""+info.link+"\" style=\"color:blue\">info</a> </li>" +
				"</ul>" +
				//"<p style=\"font-size: 11px;\">"+info.description+"</p>" +
				"<br /><br /></div>";
				//(<a target=\"_parent\" href=\""+info.link+"\" style=\"color:blue\">info</a>)
		var marker = new GMarker(point);
		map.addOverlay(marker);
		GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(infoWindow);
		});
	}
	
	function gDo() {
		window.setTimeout("gBuild();", 1000);
	}
	
	
	function empty (mixed_var) {
	    // !No description available for empty. @php.js developers: Please update the function summary text file.
	    // 
	    // version: 1008.1718
	    // discuss at: http://phpjs.org/functions/empty    // +   original by: Philippe Baumann
	    // +      input by: Onno Marsman
	    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	    // +      input by: LH
	    // +   improved by: Onno Marsman    // +   improved by: Francesco
	    // +   improved by: Marc Jansen
	    // +   input by: Stoyan Kyosev (http://www.svest.org/)
	    // *     example 1: empty(null);
	    // *     returns 1: true    // *     example 2: empty(undefined);
	    // *     returns 2: true
	    // *     example 3: empty([]);
	    // *     returns 3: true
	    // *     example 4: empty({});    // *     returns 4: true
	    // *     example 5: empty({'aFunc' : function () { alert('humpty'); } });
	    // *     returns 5: false
	    
	    var key;    
	    if (mixed_var === "" ||
	        mixed_var === 0 ||
	        mixed_var === "0" ||
	        mixed_var === null ||        mixed_var === false ||
	        typeof mixed_var === 'undefined'
	    ){
	        return true;
	    } 
	    if (typeof mixed_var == 'object') {
	        for (key in mixed_var) {
	            return false;
	        }        return true;
	    }
	 
	    return false;
	}
	
