// JavaScript Document

var map;
    var geocoder;
	

    function load() {
      if (GBrowserIsCompatible()) {
        geocoder = new GClientGeocoder();
        map = new GMap2(document.getElementById('map'));
		map.setMapType(G_HYBRID_MAP);
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
		map.setMapType(G_HYBRID_MAP);
        map.setCenter(new GLatLng(42.454874423427874, -83.18710327148438), 10);
		
      }
    }

   function searchLocations() {
     var address = document.getElementById('addressInput').value;
     geocoder.getLatLng(address, function(latlng) {
       if (!latlng) {
         alert(address + ' not found');
       } else {
         searchLocationsNear(latlng);
       }
     });
   }

   function searchLocationsNear(center) {
	 var atm;
	 if (document.getElementById('atm_check').checked){
		 atm = 1}else{ atm = 0};
	 var branch;
	 if (document.getElementById('branch_check').checked){
		 branch = 1}else{ branch = 0};
     var radius = document.getElementById('radiusSelect').value;
     var searchUrl = 'phpsqlsearch_genxml.php?lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' + radius + '&atm=' + atm + '&branch=' + branch;
     GDownloadUrl(searchUrl, function(data) {
       var xml = GXml.parse(data);
       var markers = xml.documentElement.getElementsByTagName('marker');
       map.clearOverlays();

       var sidebar = document.getElementById('sidebar');
       sidebar.innerHTML = '';
       if (markers.length == 0) {
         sidebar.innerHTML = 'No results found.';
         map.setCenter(new GLatLng(42.454874423427874, -83.18710327148438), 10);
         return;
       }

       var bounds = new GLatLngBounds();
       for (var i = 0; i < markers.length; i++) {
         var name = markers[i].getAttribute('name');
         var address = markers[i].getAttribute('address');
		 var phone = markers[i].getAttribute('phone');
         var distance = parseFloat(markers[i].getAttribute('distance'));
         var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));
         var marker = createMarker(point, name, address, phone);
         map.addOverlay(marker);
         var sidebarEntry = createSidebarEntry(marker, name, address, distance);
         sidebar.appendChild(sidebarEntry);
         bounds.extend(point);
       }
       map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
     });
   }

    function createMarker(point, name, address, phone) {
		 
      var marker = new GMarker(point);
      var html = '<div class="adealer"><span class="dname">' + name + '</span>' + address + '<br/>Phone: ' + phone + '</div>';
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }
	
	function reinitialiseScrollPane(){
					$('.scroll-pane').jScrollPane();
				};

    function createSidebarEntry(marker, name, address, distance) {
      var li = document.createElement('li');
      var html = name + '<span class="distance">' + distance.toFixed(1) + ' mi</span>';
      li.innerHTML = html;
      li.style.cursor = 'pointer';
      GEvent.addDomListener(li, 'click', function() {
        GEvent.trigger(marker, 'click');
      });
	  reinitialiseScrollPane();
      
      return li;
    }
