
// globals
var map; 		// GMap2
var gmarkers = [];

// data passed in from php
var map_center; // target point
var map_points; // store locations
var map_zoom = 12;

// This function picks up the click and opens the corresponding info window
function myclick(i) {
    GEvent.trigger(gmarkers[i], "click");
}
    
// window.onload handler
function initMap () {

        var side_bar_html = "";
	var mapElementId = "gmap";
	var initLat = 39;
	var initLong = -97.5;
	var initZoom = map_zoom;

    function createMarker(point, name, html) {
        var marker = new GMarker(point);
        GEvent.addListener(marker, "click", function() {
            marker.openInfoWindowHtml(name+html);
        });
        gmarkers.push(marker);
        side_bar_html += '<div id="retailer"><a href="javascript:parent.myclick(' + (gmarkers.length-1) + ')"><div>' + name + '<\/div><\/a><a style="text-decoration:none;" href="javascript:parent.myclick(' + (gmarkers.length-1) + ')"><div>' + html + '<\/div><\/a><\/div>';
        return marker;
    }

	if(map_center!=null) {
		if(map_center.lat != null) initLat = map_center.lat;
		if(map_center.lon != null) initLong = map_center.lon;
	}

    var el = document.getElementById( mapElementId );

	if(el!=null) {
		if (GBrowserIsCompatible()) {

            // setup map and go to initial position
			map = new GMap2( el );
			map.setCenter(new GLatLng(initLat, initLong), initZoom);

			// add controls
			map.addControl(new GSmallMapControl());
			map.addControl(new GMapTypeControl());

			//map.addOverlay( new GMarker( new GLatLng(initLat, initLong) ) );

            // plot locations
            if(map_points!=null) {
            for( var n=0; n<map_points.length; n++ ) {
                var p = map_points[n];
                var windowHtml = p.address+'<br />'+p.city+', '+p.state+' '+p.zip+'<br />';
                if(p.phone != "000-000-0000" && p.phone != null) windowHtml = windowHtml+p.phone+'<br />';
                if(p.ProductAvailable == 0) windowHtml = windowHtml+'<br /><span style="font-weight:bold;">We\'re sorry -- but product is currently unavailable at this location.</span><br />';
                //var marker = new GMarker( new GLatLng(p.latitude, p.longitude), {title: p.name } );
                var marker = createMarker(new GLatLng(p.latitude, p.longitude), '<span style="font-size:large;">'+p.name+'</span><br />', windowHtml);
                map.addOverlay( marker );
                //marker.bindInfoWindowHtml( windowHtml );
            }
            }
            window["retailers"].document.body.innerHTML = side_bar_html;

		}
	}
}

window.onload = initMap;
window.onunload = GUnload;
