//<![CDATA[

    var map;

    var geocoder;

	

	var theIcon = new GIcon(G_DEFAULT_ICON);

	theIcon.image = sl_map_end_icon;

	//theIcon.image = add_base + "/icons/red_flag1.png";

	if (sl_map_end_icon.indexOf('flag')!='-1') {theIcon.shadow = add_base + "/icons/flag_shadow.png";}

	else if (sl_map_end_icon.indexOf('arrow')!='-1') {theIcon.shadow = add_base + "/icons/arrow_shadow.png";}

	else if (sl_map_end_icon.indexOf('bubble')!='-1') {theIcon.shadow = add_base + "/icons/bubble_shadow.png";}

	else if (sl_map_end_icon.indexOf('marker')!='-1') {theIcon.shadow = add_base + "/icons/marker_shadow.png";}

	else if (sl_map_end_icon.indexOf('sign')!='-1') {theIcon.shadow = add_base + "/icons/sign_shadow.png";}
	else if (sl_map_end_icon.indexOf('printImage')!='-1') {theIcon.shadow = add_base + "/icons/printShadow.gif";}
	else if (sl_map_end_icon.indexOf('mozPrintImage')!='-1') {theIcon.shadow = add_base + "/icons/printShadow.gif";}
	else if (sl_map_end_icon.indexOf('image')!='-1') {theIcon.shadow = add_base + "/icons/image_shadow.png";}

	else {theIcon.shadow = add_base + "/icons/blank.png";}

	theIcon.iconSize = new GSize(sl_map_end_icon_width, sl_map_end_icon_height);

	//theIcon.iconSize = new GSize(40, 68);



	// Added by Moyo 5/23/08 11:52 am

	//var sidebar1 = document.getElementById('sidebar');

    //sidebar1.innerHTML = '';

    //if (markers.length == 0) {

		//sidebar1.innerHTML = '<h1>Enter Your Address or Zip Code Above.</h2>';

	//}

	

    function sl_load() {

      if (GBrowserIsCompatible()) {

        geocoder = new GClientGeocoder();

        map = new GMap2(document.getElementById('map'));

		//map.addControl(new GSmallMapControl());

		//map.addControl(new GSmallZoomControl());

		if (sl_map_overview_control==1) {

			map.addControl(new GOverviewMapControl());

			}

		//map.addControl(new GLargeMapControl); //11/29/08 1:19am Moyo

        //map.addControl(new GMapTypeControl());

		//map.addControl(new GMapTypeControl());

		map.addMapType(G_PHYSICAL_MAP);

		geocoder.getLatLng(sl_google_map_country, function(latlng) {

			map.setCenter(latlng, sl_zoom_level, sl_map_type);

			map.setUIToDefault();

		});

      }

	  

	  //added by Moyo 1/25/09 to show locations by default

	if (sl_load_locations_default=="1") {

	var bounds = new GLatLngBounds();

	  markerOpts = { icon:theIcon };

      GDownloadUrl(add_base + "/data-xml.php", function(data, responseCode) {

		var xml = GXml.parse(data);

		var markers = xml.documentElement.getElementsByTagName("marker");
        //alert(markers.length);
		for (var i = 0; i < markers.length; i++) {

		//	var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),

          //                parseFloat(markers[i].getAttribute("lng")));

		//start					
		var type = markers[i].getAttribute('type');
		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, type, name, address, "", description, url, hours, phone, image);

			map.addOverlay(marker);

			bounds.extend(point);

		}
		map.setCenter(bounds.getCenter(), (map.getBoundsZoomLevel(bounds)-1));

		map.setUIToDefault();

	  });

     }

	}


	/*
   function searchLocations() {

     var address = document.getElementById('addressInput').value;

     geocoder.getLatLng(address, function(latlng) {

       if (!latlng) {

         alert(address + ' not found');

       } else {

         searchLocationsNear(latlng, address); // address param added by Moyo 5/23/08

       }

     });

   }*/

   function searchLocationZipCode(){	
  		var address = document.getElementById('searchbyzip').value;	
  		
		geocoder.getLatLng(address, function(latlng) {
			if (!latlng) {
         		alert(address + ' not found');
       		} else {
         		searchLocationsNear(latlng, address); // address param added by Moyo 5/23/08
       	}
     });
    }	
	function searchLocationsNew() {
     var address = document.getElementById('addressInput').value+', '+document.getElementById('addressInput2').value;
     var address1 = document.getElementById('addressInput').value
     var zipCode = document.getElementById('zipCodeLatLon').value;     
     if(address1!='' && zipCode!=''){
     	alert("Please enter both City and State OR enter a zipcode");
     }
     else{
     	if(address1=='' && zipCode==''){
     		alert("Please enter both City and State OR enter a zipcode");	
     	}
     	else{
	     	if(zipCode!=''){
	     		address=zipCode;	     		
	     	}
	     	var geocoder = new GClientGeocoder();
		    geocoder.getLatLng(address, function(latlng) {
		       if (!latlng) {
		         alert(address + ' not found');
		       } else {
		         searchLocationsNearNew(latlng, address); // address param added by Moyo 5/23/08
		       }
		    });
     	}
     }
     
   }

   function getZipCodeBlank(){
		document.getElementById('zipCodeLatLon').value="";
	}
	function getStateBlank(){
		document.getElementById('addressInput').value="";
	}

   function searchLocationZipCode() {
     var address = document.getElementById('zipcode_search_id').value;    
     
 	var geocoder = new GClientGeocoder();
    geocoder.getLatLng(address, function(latlng) {
       if (!latlng) {
         alert(address + ' not found');
       } else {
         searchLocationsNear(latlng, address); // address param added by Moyo 5/23/08
       }
    });     	
     
   }
   function searchLocationsNearNew(center, homeAddress) { // homeAddress param added by Moyo 5/23/08   		
     var radius = document.getElementById('radiusSelect').value;    
	 var searchUrl = add_base + '/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');       
       
	   if(markers.length==0){	   		
	   		document.getElementById("show_search_result").innerHTML="There is no store in the given range";	
	   }
       else{ 
       	   var result=''; 
       	   result='<table><tr><td>Store Address</td><td>&nbsp;</td><td>Distance</td></tr>';     		
	       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')).toFixed(3);	        
	         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');   
			 result=result+ '<tr><td>' + name + '<br/>' + address + '<br/>' + phone + '<input type="hidden" id="store_address_'+i+'" value="' + name + '<br/>' + address + '<br/>' + phone + '"/></td>' +
			 		'<td><a href=" javascript:void(0)" onclick="map_initialize('+ i +')"> View Map </a><input type="hidden" id="store_lat_'+i+'" value="' + parseFloat(markers[i].getAttribute('lat')) + '"/></td>' +
			 		'<td>' + distance + ' miles <input type="hidden" id="store_lng_'+i+'" value="' + parseFloat(markers[i].getAttribute('lng')) + '"/></td></tr>'      
	         
	       }
	       result=result+ '</table>';
	       document.getElementById("show_search_result").innerHTML=result;
       }
	 });
	  
   }
   function map_initialize(index) {	  
      if (GBrowserIsCompatible()) {
       
		var map = new GMap2(document.getElementById("map_canvas"));        
		var geocoder = new GClientGeocoder();
	    
		var latit= 	document.getElementById("store_lat_"+index).value;
		var langit= document.getElementById("store_lng_"+index).value;
		var store_address= document.getElementById("store_address_"+index).value;
		
		map.setCenter(new GLatLng(latit,langit), 5);
		var point = new GLatLng(latit,langit);
		
		var marker = new GMarker(point);		
		GEvent.addListener(marker, "mouseover", function() {
          marker.openInfoWindowHtml(store_address);
         });
        map.addOverlay(marker);
        map.setUIToDefault();
      }
    }

	
	function searchLocations() {
     var address = document.getElementById('addressInput').value+', '+document.getElementById('addressInput2').value;
     var address1 = document.getElementById('addressInput').value;
     var zipCode = document.getElementById('zipCodeLatLon').value;
     if(address1!='' && zipCode!=''){
     	alert("Please enter both City and State OR enter a zipcode");
     }
     else{
     	if(address1=='' && zipCode==''){
     		alert("Please enter both City and State OR enter a zipcode");	
     	}
     	else{		
		
	     	if(zipCode!=''){
				address=zipCode;
				if (isNaN(document.getElementById('zipCodeLatLon').value)) {
					alert('Please enter a valid Zip Code');
				}
				else if (zipCode.length!=5) {
					alert('Please enter a valid Zip Code');
				}
				else{
					geocoder.getLatLng(address, function(latlng) {
				       if (!latlng) {
				         alert(address + ' not found');
				       } else {
				         searchLocationsNear(latlng, address); // address param added by Moyo 5/23/08
				       }
				    });
				}    
			}
			else{
				if (!isNaN(document.getElementById('addressInput').value)) {
					alert('Please insert a valid City & State');
				}
				else{
					geocoder.getLatLng(address, function(latlng) {
				       if (!latlng) {
				         alert(address + ' not found');
				       } else {
				         searchLocationsNear(latlng, address); // address param added by Moyo 5/23/08
				       }
				    });
				}    
			}			
     	}
     }
     
   }

function searchLocationsNear(center, homeAddress) { // homeAddress param added by Moyo 5/23/08

	var radius = document.getElementById('radiusSelect').value;
	var searchUrl = add_base + '/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 = sl_map_home_icon;

		if (sl_map_home_icon.indexOf('flag')!='-1') {theIcon.shadow = add_base + "/icons/flag_shadow.png";}

		else if (sl_map_home_icon.indexOf('arrow')!='-1') {theIcon.shadow = add_base + "/icons/arrow_shadow.png";}

		else if (sl_map_home_icon.indexOf('bubble')!='-1') {theIcon.shadow = add_base + "/icons/bubble_shadow.png";}

		else if (sl_map_home_icon.indexOf('marker')!='-1') {theIcon.shadow = add_base + "/icons/marker_shadow.png";}

		else if (sl_map_home_icon.indexOf('sign')!='-1') {theIcon.shadow = add_base + "/icons/sign_shadow.png";}
		else if (sl_map_home_icon.indexOf('printImage')!='-1') {theIcon.shadow = add_base + "/icons/printShadow.gif";}
		else if (sl_map_home_icon.indexOf('mozPrintImage')!='-1') {theIcon.shadow = add_base + "/icons/printShadow.gif";}
		else if (sl_map_home_icon.indexOf('image')!='-1') {theIcon.shadow = add_base + "/icons/image_shadow.png";}
		else {theIcon.shadow = add_base + "/icons/blank.png";}

		theIcon.iconSize = new GSize(sl_map_home_icon_width, sl_map_home_icon_height);

		//theIcon.shadowSize = new GSize(30,30);

		var bounds = new GLatLngBounds(); //added here 1/25/09 by Moyo to handle extending bounds to show searched location

		markerOpts = { icon:theIcon };

		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 >= 1){
			document.getElementById('table_head').style.display="block";
		}
		   
		if (markers.length == 0) {
			sidebar.innerHTML += '<div class="no_results_found">Currently our products are not available within '+radius+' miles of this address.</div>';
			//document.getElementById('radiusSelect').value = 1000;
			//searchLocationsNear(center, homeAddress);
			document.getElementById('mfpshowit').style.display="none";
			geocoder = new GClientGeocoder();
			geocoder.getLatLng(sl_google_map_country, function(latlng) {
				map.setCenter(point, sl_zoom_level);
			});
			 return;
		}
		if(radius == 100)
		{
			var origC = markers[0].getAttribute('type');
			var orig = origC.split("##",1);
			if(orig == '0')
			{
				//alert(orig);
				document.getElementById('mfpshowit').style.display="block";
				sidebar.innerHTML += '<div class="no_results_found">Currently our products are not available within '+radius+' miles of this address.</div>';
			}
		}
		   //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 typeTemp = markers[i].getAttribute('type');
             var typeTemp1 = typeTemp.split("##");
			 var type = typeTemp1[1];
             
			 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, type, name, address, distance, homeAddress, url,phone); // 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

	 });

	  return;

   }



    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]; 	  

		//address=street + city + state_zip;

	  

	  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://' + sl_google_map_domain + '/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://' + sl_google_map_domain + '/maps?q=' + encodeURIComponent(address) + '" target="_blank" class="storelocatorlink">Map</a> ' + more_html + '<!--/td></tr--></div>';

	  }

      GEvent.addListener(marker, 'click', function() {

        marker.openInfoWindowHtml(html);

		//t=GMap2.getInfoWindow();

		//t.reset(size:400);

      });

      return marker;

    }



	var resultsDisplayed=0;

	var bgcol="white";

	

    function createSidebarEntry(marker, type, name, address, distance, homeAddress, url,phone) { // 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>" + sl_website_label +"</nobr></a>&nbsp;|&nbsp;"} else {url=""; link="";}

	  

      //var html = '<center><table width="96%" cellpadding="4px" cellspacing="0" class="searchResultsTable"><tr><td class="results_row_left_column"><span class="location_name">' + name + '</span><br>' + distance.toFixed(1) + ' ' + sl_distance_unit + '</td><td class="results_row_center_column">' + street + '<br/>' + city + state_zip +' </td><td class="results_row_right_column">' + link + '<a href="http://' + sl_google_map_domain + '/maps?saddr=' + encodeURIComponent(homeAddress) + '&daddr=' + encodeURIComponent(address) + '" target="_blank" class="storelocatorlink">Directions</a></td></tr></table></center>'; // Get Directions link added by Moyo 5/23/08
		var html = '<center><table width="96%" cellpadding="4px" cellspacing="0" class="searchResultsTable"><tr class="resultHeader"><td class="results_row_left_column"><span class="location_name">' + type +'</span><br/>'+ street + '<br/>' + city + state_zip + '<br/><span class="location_phone">' + phone +'</span></td><td class="results_row_center_column"><a href="http://' + sl_google_map_domain + '/maps?f=q&hl=en&geocode=&q='+street+', '+city+', '+state_zip+' '+type+ '&ie=UTF8&z=16" target="_blank">View Map</a></td><td class="results_row_right_column">' + distance.toFixed(1) + ' ' + sl_distance_unit + '</td></tr></table></center>'; // Get Directions link added by Moyo 5/23/08

      /*if (resultsDisplayed==0) {

		div.innerHTML = "<table><tr><td>";

	  }*/

	  div.innerHTML = html;

	  div.className='results_entry';

      /*div.style.cursor = 'pointer';

      div.style.padding = '4px';

	  div.style.color = 'black'; //added by Moyo 11/2/08 10:43am

	  div.style.borderBottom = 'solid silver 1px' ; // added by Moyo 5/23/08 11:23am

	  div.style.backgroundColor = bgcol; //added 12/2/2208*/

	  resultsDisplayed++;

      GEvent.addDomListener(div, 'click', function() {

        GEvent.trigger(marker, 'click');

      }); /*

      GEvent.addDomListener(div, 'mouseover', function() {

        div.style.backgroundColor = 'salmon';

      });

      GEvent.addDomListener(div, 'mouseout', function() {

        div.style.backgroundColor = '#fff';

      });

	  if (bgcol=="white") {bgcol="#ffffff";} else {bgcol="white";}	  */

      return div;

    }

    //]]>



	//document.onload=load();

//	document.onunload=GUnload();
