// JavaScript Document

    //<![CDATA[
    var map;
    var geocoder;
var myIcon = new GIcon();
myIcon.image = 'http://www.fitbodybootcamp.com/markers/image.png';
myIcon.printImage = 'http://www.fitbodybootcamp.com/markers/printImage.gif';
myIcon.mozPrintImage = 'http://www.fitbodybootcamp.com/markers/mozPrintImage.gif';
myIcon.iconSize = new GSize(70,50);
myIcon.shadow = 'http://www.fitbodybootcamp.com/markers/shadow.png';
myIcon.transparent = 'http://www.fitbodybootcamp.com/markers/transparent.png';
myIcon.shadowSize = new GSize(95,50);
myIcon.printShadow = 'http://www.fitbodybootcamp.com/markers/printShadow.gif';
myIcon.iconAnchor = new GPoint(35,50);
myIcon.infoWindowAnchor = new GPoint(35,0);
myIcon.imageMap = [63,4,64,5,65,6,65,7,65,8,65,9,66,10,66,11,66,12,66,13,66,14,66,15,66,16,67,17,67,18,67,19,67,20,67,21,67,22,67,23,67,24,68,25,68,26,68,27,68,28,68,29,68,30,67,31,67,32,66,33,63,34,56,35,48,36,42,37,41,38,41,39,40,40,40,41,39,42,38,43,38,44,37,45,37,46,36,47,36,48,35,49,34,49,33,48,33,47,32,46,32,45,31,44,31,43,30,42,6,41,4,40,3,39,3,38,3,37,2,36,2,35,2,34,2,33,2,32,2,31,2,30,1,29,1,28,1,27,1,26,1,25,1,24,1,23,1,22,0,21,0,20,0,19,0,18,0,17,0,16,0,15,0,14,1,13,1,12,3,11,8,10,15,9,23,8,30,7,38,6,46,5,53,4];

    function load() {
      if (GBrowserIsCompatible()) {
        geocoder = new GClientGeocoder();
        map = new GMap2(document.getElementById('map'));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(39, -97), 4); //US map
		
		showAllLocations();
		
		var zipcode = document.getElementById('addressInput').value;
		if(isNaN(parseFloat(zipcode)) == false && isFinite(zipcode)) {
			searchLocations();
		}
      }
	  
    }

   function showAllLocations(country) {
	var fetchUrl = '/phpsqlsearch_genxml.php?all=1';
	GDownloadUrl(fetchUrl, function(data) {
		var xml = GXml.parse(data);
		var markers = xml.documentElement.getElementsByTagName('marker');
		map.clearOverlays();

		/*var sidebar = document.getElementById('map-result');
		sidebar.innerHTML = '';
		if (markers.length == 0) {
		 sidebar.innerHTML = '<div class="noresults">Sorry, there are no Fit Body Boot Camps near you.  Check back soon.</div>';
		 map.setCenter(new GLatLng(39, -97), 4);
		 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 url = markers[i].getAttribute('url');
		 var id = markers[i].getAttribute('id');
		 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, url, id);
		 map.addOverlay(marker);
		 /*var sidebarEntry = createSidebarEntry(marker, name, address, distance, phone, url, id);
		 sidebar.appendChild(sidebarEntry);*/
		 bounds.extend(point);
		}
		
		switch(country) {
			case 'US':
				map.setCenter(new GLatLng(39, -97), 4); //US map
				break;
			case 'CA':
				map.setCenter(new GLatLng(60, -90), 3); //Canadian map
				break;
			case 'UK':
				map.setCenter(new GLatLng(54, -1), 5); //UK map
				break;
			case 'AU':
				map.setCenter(new GLatLng(-30, 132), 4); //Australian map
				break;
			default:
				map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
		}
		
	});
   }
   
   function searchLocations() {  
	 var address = document.getElementById('addressInput').value;
     var sidebar = document.getElementById('map-result');
	 sidebar.innerHTML = '';
	 
	 geocoder.getLatLng(address, function(latlng) {
       if (!latlng) {
         sidebar.innerHTML = '<div class="noresults">We can\'t find your address. Please enter a valid zip, city or address.</div>';
       } else {
		 searchLocationsNear(latlng);
		 //searchLocationsNear(latlng, 50);     
       }
     });
   }

   function searchLocationsNear(center, radi) {
	 if (radi) {
		var radius = radi;
	 } else {
		var radius = document.getElementById('radiusSelect').value;
	 }
	 
     var searchUrl = '/phpsqlsearch_genxml.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();

       var sidebar = document.getElementById('map-result');
       sidebar.innerHTML = '';
       if (markers.length == 0) {
         sidebar.innerHTML = '<div class="noresults">Sorry, there are no Fit Body Boot Camps near you.  Check back soon.</div>';
         map.setCenter(new GLatLng(39, -97), 4);
         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 url = markers[i].getAttribute('url');
		 var id = markers[i].getAttribute('id');
         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, url, id);
         map.addOverlay(marker);
         var sidebarEntry = createSidebarEntry(marker, name, address, distance, phone, url, id);
         sidebar.appendChild(sidebarEntry);
         bounds.extend(point);
       }
       map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
     });
   }

    function createMarker(point, name, address, phone, url) {
      var marker = new GMarker(point, myIcon);
	  
      var html = '<div class="markername">' + name + '</div><div class="markeraddress">' + address + '</div><div class="markerphone">Phone: <span class="phonenumber">' + phone  + '</span></div><table width="250" border="0" cellspacing="0" cellpadding="0" style="margin-bottom:20px"><tr><td><a href="http://maps.google.com/maps?saddr=&daddr=' + address + '" target="_blank"><img src="/homepageimg/directions.gif" alt="" width="113" height="31" /></a></td><td align="right"><a href="' + url + '"><img src="/homepageimg/visitsite.gif" alt="" width="113" height="31" /></a></td></tr></table>';
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
		
      });
      return marker;
    }

    function createSidebarEntry(marker, name, address, distance, phone, url, id) {
      var div = document.createElement('div');
      var html = '<div class="resultsdiv"><img src="/numbers/' + id + '.gif" alt="" width="29" height="83" class="numberimage" /><div><div class="resultname">' + name + '</div><div class="resultaddress">' + address + '</div><span class="resultphone">Phone: ' + phone + '</span><span class="resultdistance">' + distance.toFixed(1) + ' Miles Away</span><div style="margin-top:10px"><span class="resultlinks"><a href="http://maps.google.com/maps?saddr=&daddr=' + address + '" target="_blank">Get Directions</a> | <a href="' + url + '">Visit Website</a></span></div></div></div>';
      div.innerHTML = html;
      div.style.cursor = 'pointer';
      div.style.marginBottom = '5px'; 
      GEvent.addDomListener(div, 'click', function() {
        GEvent.trigger(marker, 'click');
		window.location.hash="map2";
      });
      GEvent.addDomListener(div, 'mouseover', function() {
        div.style.backgroundColor = '#eee';
      });
      GEvent.addDomListener(div, 'mouseout', function() {
        div.style.backgroundColor = '#fff';
      });
      return div;
    }
    //]]>

 
  function checkEnter(e){ 
var characterCode 

if(e && e.which){
e = e
characterCode = e.which
}
else{
e = event
characterCode = e.keyCode
}

if(characterCode == 13){ 
searchLocations()
return false
}
else{
return true
}

}
