//<![CDATA[
    var map;
    var geocoder;
	
    geocoder = new GClientGeocoder();
    
	var theIcon = new GIcon(G_DEFAULT_ICON);
	theIcon.image = "modules/Storemap/img/marker.png";
	theIcon.shadow = "modules/Storemap/img/blank.png";
	
    function sl_load() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById('map'));
		map.addMapType(G_NORMAL_MAP);
		geocoder.getLatLng('Netherlands', function(latlng) {
			map.setCenter(latlng, 7, G_NORMAL_MAP);
			map.setUIToDefault();
		});
      }
	  
	var bounds = new GLatLngBounds();
	  markerOpts = { icon:theIcon };
      GDownloadUrl("inc/data-xml.php", function(data, responseCode) {
		var xml = GXml.parse(data);
		var markers = xml.documentElement.getElementsByTagName("marker");
		for (var i = 0; i < markers.length; i++) {
		//start					
		var name = markers[i].getAttribute('name');
         var address = markers[i].getAttribute('address');
         var distance = parseFloat(markers[i].getAttribute('distance'));
         var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));
		 var description = markers[i].getAttribute('description');
		 var url = markers[i].getAttribute('url');
		 var hours = markers[i].getAttribute('hours');
		 var phone = markers[i].getAttribute('phone');
		 var image = markers[i].getAttribute('image');
		 
		 // end
			var marker = createMarker(point, name, address, "", description, url, hours, phone, image);
			map.addOverlay(marker);
			bounds.extend(point);
		}
		map.setCenter(bounds.getCenter(), (map.getBoundsZoomLevel(bounds)-1));
		map.setUIToDefault();
	  });
	}

    function getGeoLocation(element) {
    	eLat = element.parentNode.parentNode.childNodes[4].childNodes[0];
    	eLng = element.parentNode.parentNode.childNodes[5].childNodes[0];
    	address = element.value;
    	
    	geocoder.getLatLng(address + " The Netherlands", function(latlng) {
          if (!latlng) {
            alert(address + ' is niet gevonden');
          } else {
        	  var ans = confirm("Bij deze postcode is de geolocatie " + latlng + " gevonden. Wilt u deze gebruiken?");
        	  if (ans) {
	        	  strLatlng = String(latlng);
	        	  var latlngArray = strLatlng.split(", ");
	        	  lat = latlngArray[0].substr(1, latlngArray[0].length);
	        	  lng = latlngArray[1].substr(0, latlngArray[1].length-1);
	        	  eLat.value = lat;
	        	  eLng.value = lng;
        	  }
          }
        });
      }
    
   function searchLocations() {
     var address = document.getElementById('addressInput').value;
     /* hier ga ik inbouwen dat als iemand alleen een postcode
        heeft ingevoerd, maar met spatie, dat het systeem dan 
        de spatie weghaald */
     if(address.match(/^[0-9]{4} [a-zA-Z]{2}$/)){
        //alert('ja');
        address = address.replace(" ", "");
        //alert(address); 
    }
     geocoder.getLatLng(address + " The Netherlands", function(latlng) {
       if (!latlng) {
         alert(address + ' is niet gevonden');
       } else {
       		if (address == "Best" || address == "best"){    
		     	searchLocationsNear(latlng, address, true, 51.513533, 5.395899);
       		} else {
         		searchLocationsNear(latlng, address, false, 0, 0); // address param added by Moyo 5/23/08
         	}
       }
     });
   }

   function searchLocationsNear(center, homeAddress, override, lat, lng) { // homeAddress param added by Moyo 5/23/08
   	 if (override == true){
   	 	var searchUrl = 'inc/generate-xml.php?lat=' + lat + '&lng=' + lng; // + '&radius=' + radius;
   	 } else {
     	var searchUrl = 'inc/generate-xml.php?lat=' + center.lat() + '&lng=' + center.lng(); // + '&radius=' + radius;
     }
     GDownloadUrl(searchUrl, function(data) {
       var xml = GXml.parse(data);
       var markers = xml.documentElement.getElementsByTagName('marker');
       map.clearOverlays();
	   
	    //marker for searched location - Moyo Aluko: 5/14/08, 4 am
	   var theIcon = new GIcon(G_DEFAULT_ICON);
	    theIcon.image = "modules/Storemap/img/marker_green.png";
		theIcon.shadow = "modules/Storemap/img/blank.png";
		
		var bounds = new GLatLngBounds(); //added here 1/25/09 by Moyo to handle extending bounds to show searched location
		markerOpts = { icon:theIcon };
		
		if (override == true){
			point = new GLatLng (lat, lng);
		} else {		
			point = new GLatLng (center.lat(), center.lng());
		}
		
		bounds.extend(point); //added 1/25/09 to handle showing searched location within bounds everytime
		var homeMarker = new GMarker(point, markerOpts);
      var html = '<div id="sl_info_bubble"><span class="your_location_label">Your Location:</span> <br/>' + homeAddress + '</div>';
      GEvent.addListener(homeMarker, 'click', function() {
        homeMarker.openInfoWindowHtml(html);
      });
      map.addOverlay(homeMarker);
	  //end marker for searched location

       var sidebar = document.getElementById('map_sidebar');
       sidebar.innerHTML = '';
       if (markers.length == 0) {
         sidebar.innerHTML = '<div class="no_results_found"><h2>No results found.</h2></div>';
         geocoder = new GClientGeocoder();
       	geocoder.getLatLng("Netherlands", function(latlng) {
			map.setCenter(point, sl_zoom_level);
		});
         return;
       }
	   
       //var bounds = new GLatLngBounds(); //removed from here 1/25/09 to handle showing searched location with bounds at all times
       for (var i = 0; i < markers.length; i++) {
         var name = markers[i].getAttribute('name');
         var address = markers[i].getAttribute('address');
         var distance = parseFloat(markers[i].getAttribute('distance'));
         var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));
		 var description = markers[i].getAttribute('description');
		 var url = markers[i].getAttribute('url');
		 var hours = markers[i].getAttribute('hours');
		 var phone = markers[i].getAttribute('phone');
		 var image = markers[i].getAttribute('image');
         
         var marker = createMarker(point, name, address, homeAddress, description, url, hours, phone, image); // homeAddress param added by Moyo 5/23/08 **description through image added 12/2/08 by Moyo
         map.addOverlay(marker);
         var sidebarEntry = createSidebarEntry(marker, name, address + "<br />" + phone, distance, homeAddress, url); // homeAddress param added by Moyo 5/23/08
         sidebar.appendChild(sidebarEntry);
         bounds.extend(point);
       }
	  map.setCenter(bounds.getCenter(), (map.getBoundsZoomLevel(bounds)-1)); //8/28/08: -1 to zoom out one step
	 });
	  
   }

    function createMarker(point, name, address, homeAddress, description, url, hours, phone, image) { // homeAddress param added by Moyo 5/23/08
	
	  markerOpts = { icon:theIcon };
      var marker = new GMarker(point, markerOpts);
	  
	  var more_html="";
	  if(url.indexOf("http://")==-1) {url="http://"+url;} //added by Moyo 10/19/2009 so that www.someurl.com will show up as http://www.someurl.com
	  if (url.indexOf("http://")!=-1 && url.indexOf(".")!=-1) {more_html+="| <a href='"+url+"' target='_blank' class='storelocatorlink'><nobr>" + sl_website_label +"</nobr></a>"} else {url=""}
	  if (image.indexOf(".")!=-1) {more_html+="<br/><img src='"+image+"' class='sl_info_bubble_main_image'>"} else {image=""}
	  if (description!="") {more_html+="<br/>"+description+"";} else {description=""}
	  if (hours!="") {more_html+="<br/><span class='location_detail_label'>Hours:</span> "+hours;} else {hours=""}
	  if (phone!="") {more_html+="<br/><span class='location_detail_label'>Phone:</span> "+phone;} else {phone=""}
	  
		var street = address.split(',')[0]; if (street.split(' ').join('')!=""){street+='<br/>';}else{street="";}
		var city = address.split(',')[1]; if (city.split(' ').join('')!=""){city+=', ';}else{city="";}
		var state_zip = address.split(',')[2]; 	  
	  
	  if (homeAddress.split(" ").join("")!="") {
		var html = '<div id="sl_info_bubble"><!--tr><td--><strong>' + name + '</strong><br>' + street + city + state_zip + '<br/> <a href="http://maps.google.nl/maps?saddr=' + encodeURIComponent(homeAddress) + '&daddr=' + encodeURIComponent(address) + '" target="_blank" class="storelocatorlink">Directions</a> ' + more_html + '<br/><!--/td></tr--></div>'; // Get Directions link added by Moyo 5/23/08
	  }
	  else {
		var html = '<div id="sl_info_bubble"><!--tr><td--><strong>' + name + '</strong><br>' + street + city + state_zip + '<br/> <a href="http://maps.google.nl/maps?q=' + encodeURIComponent(address) + '" target="_blank" class="storelocatorlink">Map</a> ' + more_html + '<!--/td></tr--></div>';
	  }
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }

	var resultsDisplayed=0;
	var bgcol="white";
	
    function createSidebarEntry(marker, name, address, distance, homeAddress, url) { // homeAddress param added by Moyo 5/23/08
	document.getElementById('map_sidebar_td').style.display='block';
      var div = document.createElement('div');
	  var street = address.split(',')[0]; 
	  var city = address.split(',')[1]; if (city.split(' ').join('')!=""){city+=', ';}else{city="";}
	  var state_zip = address.split(',')[2]; 
	  //var more = address.split(',')[3];
	  if(url.indexOf("http://")==-1) {url="http://"+url;} //added by Moyo 10/19/2009 so that www.someurl.com will show up as http://www.someurl.com
	  if (url.indexOf("http://")!=-1 && url.indexOf(".")!=-1) {link="<a href='"+url+"' target='_blank' class='storelocatorlink'><nobr>" + url +"</nobr></a>"} else {url=""; link="";}
	  
	  
	  
      var html = '<table width="100%" cellpadding="0" cellspacing="0" class="searchResultsTable"><tr><td colspan="2"><p class="storelocator-result"><span class="bold">' + name + '</span> <span class="italic">(' + distance.toFixed(1) + ' km)</span></p><br /></td></tr><tr><td class="results_row_left_column"><p class="storelocator-result">' + street + '</p><br /><p class="storelocator-result">' + city + state_zip +'</p><br /></td><td class="results_row_right_column"><p class="storelocator-result"><a href="http://maps.google.nl/maps?saddr=' + encodeURIComponent(homeAddress) + '&daddr=' + encodeURIComponent(street + " " + city + " " + "The Netherlands") + '" target="_blank" class="storelocatorlink">Routebeschrijving</a></p><br /><p class="storelocator-result">' + link + '</p></td></tr></table>'; // Get Directions link added by Moyo 5/23/08
	  div.innerHTML = html;
	  div.className='results_entry';
	  resultsDisplayed++;
      GEvent.addDomListener(div, 'click', function() {
        GEvent.trigger(marker, 'click');
      });
      return div;
    }
    //]]>
