﻿// JScript File
    var map;
    var geocoder;

    function load()
    {
        if (GBrowserIsCompatible()) 
        {        
            geocoder = new GClientGeocoder();
            map = new GMap2(document.getElementById('map_canvas'));
            map.addControl(new GLargeMapControl());
            map.addControl(new GMapTypeControl());
            map.setCenter(new GLatLng(37.09024,-95.712891), 5);
        }
        var value=GetFilterQueryString();   
        if(value!=null)
        {     
        if(value!='')
        {
            value=value.replace("%20"," ");
            document.getElementById('WhereToBuyResults1_txtPostal').value=value;
             geocoder.getLatLng(value+',US', function(latlng) {
           if (!latlng) {
             var sidebar = document.getElementById('sidebar');
             sidebar.innerHTML = '';
              sidebar.innerHTML = '<div class="google_noresults">Sorry, we weren’t able to find a store in your area</div>';
             map.setCenter(new GLatLng(37.09024,-95.712891), 5);
           } else {        
             searchLocationsNear(latlng);
           }
         });
        }  
        }      
    }


    function searchaddressLocations() 
    { 
        var address='';
        var store=document.getElementById('WhereToBuyResults1_txtStore').value; 
        var city = document.getElementById('WhereToBuyResults1_txtCity').value; 
        var state = document.getElementById('WhereToBuyResults1_ddlState').value; 
        var postal = document.getElementById('WhereToBuyResults1_txtPostal').value; 
        if(store.length != 0)
        {
            address = store+',';
        }
        if(city.length!=0)
        {
            address+=city+',';
        }
        if(state.length!=0 && state !='Select')
        {
            address+=state+',';
        }
         if(postal.length!=0)
        {
            address+=postal+',';
        }
        if(document.getElementById('WhereToBuyResults1_radUsa').checked==true)
        {        
            address=address+document.getElementById('WhereToBuyResults1_radUsa').value;  
        }
        else
        {        
            address=address+document.getElementById('WhereToBuyResults1_radCA').value;  
        }                              
        geocoder.getLatLng(address, function(latlng) {
       if (!latlng) {
         var sidebar = document.getElementById('sidebar');
         sidebar.innerHTML = '';
          sidebar.innerHTML = '<div class="google_noresults">Sorry, we weren’t able to find a store in your area</div>';
         map.setCenter(new GLatLng(37.09024,-95.712891), 5);
       } else {        
         searchLocationsNear(latlng);
       }
     });

   }

   function searchLocationsNear(center) { 
      var radius = document.getElementById('WhereToBuyResults1_ddlRadius').value;
     var searchUrl = '/Location.aspx?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('sidebar');
       sidebar.innerHTML = '';
       if (markers.length == 0) {
         sidebar.innerHTML = '<div class="google_noresults">Sorry, we weren’t able to find a store in your area</div>';
         map.setCenter(new GLatLng(37.09024,-95.712891), 5);
         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 distance = parseFloat(markers[i].getAttribute('distance'));
         var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));
         var URL = markers[i].getAttribute('URL');                                  
                                 
         var qt = Math.ceil((i+1)/26);
         var mod = (i+1)%26;
         var col;        
         
         if(qt == 2)
          col = "green";
         else if(qt == 3) 
          col = "pink";
         else if(qt == 4) 
          col = "lightgreen";
         else if(qt == 5) 
          col = "yel";
         else
          col = "blue";        
          
         var blueIcon = new GIcon(G_DEFAULT_ICON);
		 blueIcon.image = "/assets/images/GoogleMapsMarkers/"+ col +"_Marker" + mod + ".gif";
		 		 
         var marker = createMarker(point, name, address,blueIcon,URL);
         map.addOverlay(marker);

         var sidebarEntry = createSidebarEntry(marker, name, address, distance,"'" + blueIcon.image + "'");
         sidebar.appendChild(sidebarEntry);
         bounds.extend(point);
       }
       map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
     });
   }

    function createMarker(point, name, address,colorIcon,URL) {    
                
	// Set up our GMarkerOptions object
	markerOptions = { icon:colorIcon };

      var marker = new GMarker(point,markerOptions);
      var html;
      if(URL.length!=0)
      {      
        html='<div class="google_head_name"><b>' + name + '</b> <br/>' + address + '</div><div class="google_head_url"><a href = " ' + URL + ' " target= "_blank" >Visit Our Site</a></div>';
      }
      else
      {
        html='<div class="google_head_name"><b>' + name + '</b> <br/>' + address + '</div>';
      }

      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });               
      return marker;
    }

    function createSidebarEntry(marker, name, address, distance,imagepath) {

      var div = document.createElement('div');
      var html = '<img src='+ imagepath +' height=25/> <b>' + name + '</b> (' + distance.toFixed(1) +  'miles)<br/>' + address;
      
      div.innerHTML = html;
      div.style.cursor = 'pointer';
      div.style.marginBottom = '5px'; 
      GEvent.addDomListener(div, 'click', function() {
        GEvent.trigger(marker, 'click');
      });
      GEvent.addDomListener(div, 'mouseover', function() {
        div.style.backgroundColor = '#eee';
      });
      GEvent.addDomListener(div, 'mouseout', function() {
        div.style.backgroundColor = 'transparent';
      });
      
      return div;
      
    }


function GoogleValuesClear()
{
    document.getElementById('WhereToBuyResults1_txtStore').value=''; 
    document.getElementById('WhereToBuyResults1_txtCity').value=''; 
    document.getElementById('WhereToBuyResults1_txtPostal').value=''; 
}
function GetFilterQueryString()
{       
    var search = window.location.search;
    var value='';
    if(search!=null)
    {     
        search = search.replace(/\?/,'');
        var searchAttributes = search.split('&');
        if(searchAttributes!=null)
        {         
           var items = searchAttributes[0].split('=');          
           if(items[0]=='code')
           {
           value=items[1];                       
           }
           else
           {
           value='';
           }                       
        } 
    }   
    return value; 
}