var fLegend = 0;      // Flag - Show Legend

var DATA = new Array( "/xml/recent.xml" );

function g_toggleLegend() { 
    var el = document.getElementById("MapLegend");
    var b = document.getElementById("LegendButton");
    if(!el) { return; }

    if(fLegend == 0) { 
      el.style.display = "";
      fLegend = 1;
      if(b) { 
        b.style.fontWeight = "bold";
        b.style.borderColor ="#bbb white white #bbb";
      }
    } else { 
      el.style.display = "none";
      fLegend = 0;
      if(b) {
        b.style.fontWeight = "normal";
        b.style.borderColor = "white #bbb #bbb white";
      }
    }
}

var baseIcon = new GIcon();
baseIcon.shadow = "/img/shadow.png";
baseIcon.iconSize = new GSize(20, 20);
baseIcon.shadowSize = new GSize(30, 17);
baseIcon.iconAnchor = new GPoint(1, 1);
baseIcon.infoWindowAnchor = new GPoint(9, 9);
baseIcon.infoShadowAnchor = new GPoint(25, 20);

function createIconColor(miles,type){
   var greenIcon = new GIcon(baseIcon);
   if(type == "photo"){
      greenIcon.image = "/img/cam1.png";
   }
   if(type == "hike"){
     greenIcon.image = "/img/hiking.png";
   }
   if(type == "mountain"){
     greenIcon.image = "/img/mountain.png";
   }
   if(type == "climb"){
     greenIcon.image = "/img/climb.png";
   }
   if(type == "bike"){
     greenIcon.image = "/img/celtic.png";
   }
   if(type == "ski"){
     greenIcon.image = "/img/snow.png";
   }
   if(type == "boat"){
     greenIcon.image = "/img/boat.png";
   }
   if(type == "plane"){
     greenIcon.image = "/img/plane.png";
   }
   markerOptions = { icon:greenIcon }
}

function createInfoMarker(point, address) {
   var marker = new GMarker(point, markerOptions);
   GEvent.addListener(marker, "click",
      function() {
         marker.openInfoWindowHtml(address);
      }
   );
  return marker;
}

function createHTML(place,miles,elev,rank,type,link,url){
  var html = "<b> "+place+" </b><br />";
  if(miles != ""){
    html += "Milage: "+miles+" (mi)<br />";
  }
  if(elev != ""){
    html += "Elevation: "+elev+" (ft)<br />";
  }
  if(rank != ""){
    html += "State Rank: #"+rank+"<br />";
  }
  //html += "Trip type: "+type+" <br />";
  if(link != ""){
    html += "Link: <a href='"+link+"'>Photos!</a> <br/>";
  }
  if(url != ""){
    html += "Url: <a href='"+url+"'>More Info</a> <br/>";
  }
  html += "<br />";
 
  return html;
}

function load() {
  if (GBrowserIsCompatible()) {
   var map = new GMap2(document.getElementById("Amap"));
   map.addControl(new GSmallMapControl());
   //map.setCenter(new GLatLng(64.86, -147.85), 10);
   map.setCenter(new GLatLng(39, -105.5), 6);
   map.addControl(new GMapTypeControl());
   map.addMapType(G_PHYSICAL_MAP);
   map.setMapType(G_PHYSICAL_MAP);
   
   var x;
   for (x in DATA){
     GDownloadUrl(DATA[x], function(data, responseCode) {
     var xml = GXml.parse(data);
     var markers = xml.documentElement.getElementsByTagName("marker");
     for (var i = 0; i < markers.length; i++) {
      var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                        parseFloat(markers[i].getAttribute("lng")));
      var place = "", miles = "", type = "", elev = "", rank = "", link = "", url = "", html = "";

      var mdata = markers[i].getElementsByTagName("info");
      for (var j = 0; j < mdata.length; j++) {
        var desc = mdata[j].getAttribute("desc");
        var valu = mdata[j].firstChild.data;
        if(desc == "Place"){ var place = valu;  }
        if(desc == "Milage(mi)"){ var miles = valu; }
        if(desc == "Trip Type"){ var type = valu; }
        if(desc == "Elevation"){ var elev = valu; }
        if(desc == "Rank"){ var rank = valu; }
        if(desc == "Link"){ var link = valu; }
        if(desc == "Url"){ var url = valu; }
      }
      createIconColor(miles,type); //fcn to choose appropriate marker
      var html = createHTML(place,miles,elev,rank,type,link,url);
      var marker = createInfoMarker(point, html);
      map.addOverlay(marker);
     }
     });
   }

   GEvent.addDomListener(document.getElementById("LegendButton"), "click", function() {
               g_toggleLegend();
    });
   if(fLegend) { 
      fLegend = 0;
      g_toggleLegend();
   }
  }
}

