﻿// 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;
            document.getElementById('store_loader').style.display='block';
            
             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);
             document.getElementById('store_loader').style.display='none';
           } 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; 
        var addressLine = document.getElementById('WhereToBuyResults1_txtAddress').value; 
        if(store.length != 0)
        {
            address = store+',';
        }
        if(addressLine.length!=0)
        {
            address+=addressLine+',';
        }
        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;  
        }
        document.getElementById('store_loader').style.display='block';
        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), 7);
         document.getElementById('store_loader').style.display='none';
         document.getElementById('storeInstruct').style.display='none';
       } else {        
         searchLocationsNear(latlng);
       }
       
     });
        
        RegisterTracking(postal,city,state);
   }

   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);
         document.getElementById('store_loader').style.display='none';
         document.getElementById('storeInstruct').style.display='none';
         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);
       }
       document.getElementById('store_loader').style.display='none';
       document.getElementById('storeInstruct').style.display='block';
       //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>';
      }
      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');
        map.clearOverlays();
        map.addOverlay(marker);
        //var bounds = new GLatLngBounds();
        //var point = new GLatLng(parseFloat(marker.Ca.y),parseFloat(marker.Ca.x));
        var point = marker.getPoint();
        //bounds.extend(point);
        //map.setCenter(bounds.getCenter(), 8);
        map.setCenter(point, 14);
      });
      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='';
    document.getElementById('WhereToBuyResults1_txtAddress').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; 
}

function RegisterTracking(postal,city,state)
{
    var s=s_gi(s_account);s.linkTrackVars='prop38,prop39,prop40,eVar1,events'; s.linkTrackEvents='event69';s.prop38=postal;s.prop39=city;s.prop40=state;s.eVar1=postal;s.events='event69';s.tl(this,'o','Where to Buy - Step 2');s.eVar1='';
}
