// gmap.js
// Google Maps scripts external file
//

//globals
var customIcons = [];
customIcons["no"] = mycreateicon('blue');
customIcons["free"] = mycreateicon('red');
customIcons["yes"] = customIcons['no'];	//mycreateicon('blue')
customIcons["maybe"] = customIcons['no'];	//mycreateicon('blue')

function mycreateicon(color)
  {
  var icon = new GIcon();
  icon.image = '/images/' + color + '.png';
  icon.shadow = '/images/shadow.png';
  icon.iconSize = new GSize(12, 20);
  icon.shadowSize = new GSize(22, 20);
  icon.iconAnchor = new GPoint(6, 20);
  icon.infoWindowAnchor = new GPoint(5, 1);
  return icon;
  }

function load(lng, lat, zoom)
  {
  if (GBrowserIsCompatible())
    {
    var map = new GMap2(document.getElementById("map"));
    map.setCenter(new GLatLng(lat, lng), zoom);
    map.addControl(new GLargeMapControl());
    map.addControl(new GScaleControl());
    map.addControl(new GMapTypeControl());
    var otherOpts =
      {
      buttonStartingStyle: {display:'block',color:'black',background:'white',width:'7em',textAlign:'center',
        fontFamily:'Verdana',fontSize:'12px',fontWeight:'bold',border:'1px solid gray',paddingBottom:'1px',cursor:'pointer'},
      buttonHTML: 'Drag Zoom',
      buttonZoomingHTML: 'Drag a region on the map (click here to reset)',
      buttonZoomingStyle: {background:'yellow'},
      backButtonHTML: 'Drag Zoom Back',  
      backButtonStyle: {display:'none',marginTop:'3px',background:'#FFFFC8'},
      backButtonEnabled: true
      } 
    map.addControl(new DragZoomControl({}, otherOpts, {}), new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(8,33)));
    GDownloadUrl("/makexml.php", function(data)
      {
      var xml = GXml.parse(data);
      var markers = xml.documentElement.getElementsByTagName("marker");
      for (var i = 0; i < markers.length; i++)
        {
        var campname = markers[i].getAttribute("campname");
        var city = markers[i].getAttribute("city");
        var state2 = markers[i].getAttribute("state2");
        var wifi = markers[i].getAttribute("wifi");
        var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                parseFloat(markers[i].getAttribute("lng")));
        var marker = createMarker(point, campname, city, state2, wifi);
        map.addOverlay(marker);
        }
      });
    }
  }

function createMarker(point, campname, city, state2, wifi)
  {
  var options=	{
		title:	campname+' in '+city+', '+state2,
		icon:	customIcons[wifi]
		};
  var marker = new GMarker(point, options);
  var html = "<b>" + campname + "</b> <br/>" + city + ", " + state2 + "<br/><a href = '/city.php?id=" + state2 + "&amp;city=" + city + "'>Link to Review</a>";
  GEvent.addListener(marker, 'click', function()
    {
    marker.openInfoWindowHtml(html);
    }
  );
  return marker;
  }
