var map = null;
var geocoder = null;
var zoomLevel = 12;
// Create a base icon for all of our markers that specifies the
// shadow, icon dimensions, etc.
var baseIcon = new GIcon(G_DEFAULT_ICON);
baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
//baseIcon.iconSize = new GSize(16, 24);
//baseIcon.shadowSize = new GSize(27, 25);
baseIcon.iconSize = new GSize(20, 34);
baseIcon.shadowSize = new GSize(37, 34);
baseIcon.iconAnchor = new GPoint(9, 34);
baseIcon.infoWindowAnchor = new GPoint(9, 2);
    
var numBaseIcon = new GIcon();
numBaseIcon.shadowSize = "";
numBaseIcon.iconSize = new GSize(17, 19);  
numBaseIcon.iconAnchor = new GPoint(0, 19);
numBaseIcon.infoWindowAnchor = new GPoint(15, 1);

function initializeMap() {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map_canvas"));
    map.setUIToDefault();
    map.disableScrollWheelZoom();
  }
}

function createMarker(point, index, name, address) 
{
  // Create a lettered icon for this point using our icon class
  //alert(index);
  var iconIndex = index+1;
  var numberedIcon = new GIcon(numBaseIcon);
  numberedIcon.image = "http://images.medicinenet.com/images/googlemap/lightblue" + iconIndex + ".png";
  
  // Set up our GMarkerOptions object
  markerOptions = { icon:numberedIcon };
  //markerOptions = { icon:baseIcon };
  var marker = new GMarker(point, markerOptions);
  GEvent.addListener(marker, "click", function() {GoToMapMarker(index, true);});
  return marker;
}

function GoToMapMarker(i, bFromPointClick)
{
    //alert('index='+i);
    var name = arCity[i].split('|')[0];
    var address = arCity[i].split('|')[0];
    var lat = arCity[i].split('|')[1];
    var lon = arCity[i].split('|')[2];
    var point = new GLatLng(lat,lon,11);
    map.setCenter(point, zoomLevel);
    //map.panTo(point);
    //var offset = new GSize(-2,-24);
    var offset = new GSize(10,-10);
    var sInfo = GetInfoHTML(i);
    map.openInfoWindowHtml(point, sInfo, {pixelOffset:offset});
    
    if (bFromPointClick)
    {
        var ddl = document.getElementById("ddlCity");
        ddl.selectedIndex = i+1;
        ShowCityDivByIndex(ddl.selectedIndex-1);
    }
}

function GetInfoHTML(i)
{
    var name = arCity[i].split('|')[0];
    var imgName = arCity[i].split('|')[3];
    var link = arCity[i].split('|')[4];

    //alert(imgName);
    var sInfo = "";
    sInfo += "<div id=\"infoWindow\">";
		sInfo += "<div id=\"infoWindowImg\" style=\"background: #f4f4f4 url('http://images.medicinenet.com/images/local_topics/"+imgName+"') no-repeat scroll right center\"><a class=\"infoWindowImgLink\" href=\""+link+"\"></a></div>";
		sInfo += "<div id=\"infoWindowContent\">";
			sInfo += "<h3>"+name+"</h3>";
			sInfo += "<div id=\"infoWindowLink\">";
				sInfo += "<a href=\""+link+"\"> See All Resources &raquo;</a>";
			sInfo += "</div>";
		sInfo += "</div>";
	sInfo += "</div>";
    
    return sInfo;
}


function ShowAllMarkers()
{
    var marker;
    for(var i=0; i < arCity.length; i++)
    {
        var name = arCity[i].split('|')[0];
        var address = arCity[i].split('|')[0];
        var lat = arCity[i].split('|')[1];
        var lon = arCity[i].split('|')[2];
        var point = new GLatLng(lat,lon,11);
        marker = createMarker(point, i, name, address);
            
        map.addOverlay(marker);
    }

    CenterMapToUS();    
    //HideAllCityDivs();
    document.getElementById("ddlCity").selectedIndex = 0;
}

function CenterMapToUS()
{
    //Show and Center to the first city in the array
    var centerZoom = 3;
    var centerPoint = new GLatLng(39.8,-98.5,centerZoom);
    map.setCenter(centerPoint, centerZoom);
    map.closeInfoWindow();
}

function addGoogleUnloadEvent(func) {
  var oldonunload = window.onunload;
  if (typeof window.onunload != 'function') {
	window.onunload = func;
  } else {
	window.onunload = function() {
	  if (oldonunload) {
		oldonunload();
	  }
	  func();
	}
  }
}

addGoogleUnloadEvent(function() {
  GUnload();  
});

function OnMapCityChange(ddl)
{
    if (ddl.selectedIndex == 0)
    {
        HideAllCityDivs();
        CenterMapToUS();
    }
    else
    {
        GoToMapMarker(ddl.selectedIndex-1, false);
        ShowCityDivByIndex(ddl.selectedIndex-1);
    }
}
function HideAllCityDivs()
{
    for(var i=0; i < arCity.length; i++)
    {
        var div = document.getElementById("divCity_" + i);
        div.style.display = "none";
    }
}
function ShowCityDivByIndex(index)
{
    HideAllCityDivs();
    var div = document.getElementById("divCity_" + index);
    div.style.display = "";
}

function HideAllCityAlpha()
{
    for(var i=1; i <= 26; i++)
    {
        var div = document.getElementById("divCityAlpha_" + i);
        div.style.display = "none";
    }
}
function OnCityAlphaJump(index)
{
    HideAllCityAlpha();
    var div = document.getElementById("divCityAlpha_" + index);
    div.style.display = "";
    
}
