﻿    var map;
    var geocoder;
    var message = "";
    var sPointLat = 0;
    var sPointLong = 0;
    var iCount = 0;
    var index = 0;
   
    var iPointLat, iPointLong;
    var markerBounds = new GLatLngBounds();
    
    var addressArray = new Array();
    var nameArray = new Array();
    var letterArray = new Array();
    var urlArray = new Array();
    
    var baseIcon = new GIcon(G_DEFAULT_ICON);
    baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
    baseIcon.iconSize = new GSize(27, 34);
    baseIcon.shadowSize = new GSize(37, 34);
    baseIcon.iconAnchor = new GPoint(9, 34);
    baseIcon.infoWindowAnchor = new GPoint(9, 2);
    
    function initialize() {
        map = new GMap2(document.getElementById("map"));         
        map.setCenter(new GLatLng(40.360277, -97.741129), 3);
        map.addControl(new GSmallZoomControl());
        geocoder = new GClientGeocoder();
              
        if (document.URL.indexOf("VendorDetail") > 0) {
            document.getElementById("altView").style.display = "block";
        }
        else {
            document.getElementById("altView").style.display = "none";
        }
        
        for (var i in addressArray) {
            addAddressToMap(addressArray[i], nameArray[i], letterArray[i], urlArray[i]);
            document.getElementById("lnkDrivingDirections").href="http://maps.google.com/maps?q=" + addressArray[i];
        }         
    }
    
    function getLocations(addressInfo, shortName, vendorURL){
        var letter = String.fromCharCode("A".charCodeAt(0) + index);
        addressArray[index] = addressInfo;
        nameArray[index] = shortName;
        letterArray[index] = index+1;
        urlArray[index] = vendorURL;
        index++;
    }
    
     function doNotMap()
    {
        document.getElementById("defaultMap").style.display="";
        document.getElementById("map").style.display="none";  
        document.getElementById("lnkDrivingDirections").style.display="none";     
        
    }
    
    function addAddressToMap(addressinfo, nameinfo, imgletter, urlInfo) {
       map.clearOverlays();
       geocoder.getLatLng(
            addressinfo,
                function(point) {                   
                    if (!point) {
                        //alert(addressinfo + " cannot be found.");
                    } else {
                        iCount++;
                        sPointLat += point.x;
                        sPointLong += point.y;                      
                        iPointLat = parseFloat(sPointLat/iCount);
                        iPointLong = parseFloat(sPointLong/iCount);  
                        markerBounds.extend(point);                        
                        if (iCount == 1) {
                            map.setCenter(point, 14);                       
                        }
                        else {
                            map.setCenter(new GLatLng(iPointLong,iPointLat), map.getBoundsZoomLevel(markerBounds));                       
                        }
                        
                        var marker = new GMarker(point);
                        map.addOverlay(createMarker(point, imgletter, nameinfo, addressinfo, urlInfo));
                    }
                }
            );
       }
    
    function createMarker(point, letter, addressName, addressinfo, urlName) {
          // Create a lettered icon for this point using our icon class
          var letteredIcon = new GIcon(baseIcon);
          var addressStreet = "";
          var addressCity = "";
          
          if (addressinfo.indexOf(",") >= 0)
          {        
            addressStreet = addressinfo.substring(0, addressinfo.indexOf(","));
            addressCity = addressinfo.substring(addressinfo.indexOf(",")+1, addressinfo.length);
          } 
          else
          {
            addressStreet = addressinfo;
          }
          
          if (urlName == "No Data") {
            letteredIcon.image = "http://images.theknot.com/local_niche/map_icons/ico_mapping_profile_star.png";
          }
          else
          {
               letteredIcon.image = "http://images.theknot.com/local_niche/map_icons/ico_mapping_" + letter + ".png";
          }
          // Set up our GMarkerOptions object
          markerOptions = { icon:letteredIcon };
          var marker1 = new GMarker(point, markerOptions);
            
            if (urlName == "No Data") { //(document.URL.indexOf("VendorDetail") > 0) {
                  GEvent.addListener(marker1, "click", function() {
                        //marker1.openInfoWindowHtml("Marker <b>" + letter + ":" + addressName +  "</b><br />" + addressinfo );
                        marker1.openInfoWindowHtml("<div style='font-size=13px; text-align:left;'><b>" + addressName +  "</b><br />" + addressStreet + "<br />" + addressCity + "</div>" );
                  });  
            }   
            else {
                 GEvent.addListener(marker1, "click", function() {
                        //alert(urlName);
                        document.location = urlName;
                  });  
                  
                   GEvent.addListener(marker1, "mouseover", function() {
                        //marker1.openInfoWindowHtml("Marker <b>" + letter + ":" + addressName +  "</b><br />" + addressinfo );
                        marker1.openInfoWindowHtml("<div style='font-size=13px; text-align:left;'><b>" + addressName +  "</b><br />" + addressStreet + "<br />" + addressCity + "</div>" );
                  }); 
                  
                   GEvent.addListener(marker1, "mouseout", function() {
                        marker1.closeInfoWindow();
                  }); 
            } 
    return marker1;      
    }
    
     function ClickMarker(addressID) {
        document.getElementById("altView").style.display = "block";
        document.getElementById("lnkDrivingDirections").href="http://maps.google.com/maps?q=" + addressID;
        
        geocoder.getLatLng(
            addressID,
                function(point) {
                    if (!point) {
                        alert(addressID + " cannot be found.");
                    } else {
                        map.setCenter(point, 13);
                    }
                }
            );
    }
    
    function ResetMapCenter() {
        document.getElementById("altView").style.display = "none";
        map.setCenter(new GLatLng(iPointLong,iPointLat), map.getBoundsZoomLevel(markerBounds)); 
    }
    


    function test(addressInfo, shortName)
    {
        //alert(addressInfo);
        //alert(shortName);
        //alert(iCount);
        
        iCount++;
    }