var map;
var mgr;

//Create Icon Variables
function createIcon(icon) 
{
    var _icon = new GIcon();
    _icon.image = icon + ".png";
    _icon.shadow = "../images/BaseIconShadow.png";
    _icon.iconSize = new GSize(20, 34);
    _icon.shadowSize = new GSize(37, 34);
    _icon.iconAnchor = new GPoint(10, 26);
    _icon.infoWindowAnchor = new GPoint(10, 1);
    return _icon;
}

//Create Markers
function createMarker(latlng, title, link, icon) 
{
    var marker = new GMarker(latlng, { title: title, icon: icon });
    GEvent.addListener(marker, 'click', function () 
    {
        window.location = link;
    });
    return marker;
}

function GUnload()
{ }

//Main Map Code
function init() 
{
    if (GBrowserIsCompatible()) 
    {

        map = new GMap2(document.getElementById("map"));
        var center = new GLatLng(37.718590, -119.948730);
        //var center = new GLatLng(36.70750446533829, -119.77180123329163); //original
        //var center = new GLatLng(36.31512515, -97.91015625); //full United States
        map.enableDoubleClickZoom();
        //map.addControl(new GLargeMapControl());
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(center, 6);
        //map.addControl(new GScaleControl());

        //Retreve and Place Address and Point Data on Map
        mgr = new GMarkerManager(map);

        for (var i in hotels) 
        {
            var hotel = hotels[i];
            var latlng = new GLatLng(hotel["lat"], hotel["lng"]);
            var link = hotel["link"];
            var title = hotel["name"];
            var icon = createIcon(hotel["icon"]);
            var marker = createMarker(latlng, title, link, icon);
            mgr.addMarker(marker, 8, 17);
        }

        for (var i in areas) 
        {
            var area = areas[i];
            var latlng = new GLatLng(area["lat"], area["lng"]);
            var title = area["name"];
            var link = area["link"];
            var icon = createIcon(area["icon"]);
            var marker = createMarker(latlng, title, link, icon);
            mgr.addMarker(marker, 0, 7);
        }

        mgr.refresh();

        //Limit Max Zoom
        GEvent.addListener(map, "zoomend", function (oZoom, nZoom) 
        {
            if (nZoom < 5) 
                map.setZoom(5) 
        });
    }
}

window.onload = init;
window.onunload = GUnload;
