var map;
var gmarkers = new Array();

function onLoad() {
  
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map"));
        
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());

    var lat = 37.42916654125757;
    var lng = -122.16855347156525;
    
    map.setCenter(new GLatLng(lat, lng), 13);
    var gtl = new GTileLayer(new GCopyrightCollection("prefix"),15,17);
    var table = {"ARRAY(0x2fbbac)" : 1,
               "base_21048_50815_17.png" : 1,
               "base_21048_50816_17.png" : 1,
               "base_21048_50817_17.png" : 1,
               "base_21048_50818_17.png" : 1,
               "base_21048_50819_17.png" : 1,
               "base_21048_50820_17.png" : 1,
               "base_21048_50821_17.png" : 1,
               "base_21048_50822_17.png" : 1,
               "base_21048_50823_17.png" : 1,
               "base_21048_50824_17.png" : 1,
               "base_21048_50825_17.png" : 1,
               "base_21048_50826_17.png" : 1,
               "base_21048_50827_17.png" : 1,
               "base_21049_50815_17.png" : 1,
               "base_21049_50816_17.png" : 1,
               "base_21049_50817_17.png" : 1,
               "base_21049_50818_17.png" : 1,
               "base_21049_50819_17.png" : 1,
               "base_21049_50820_17.png" : 1,
               "base_21049_50821_17.png" : 1,
               "base_21049_50822_17.png" : 1,
               "base_21049_50823_17.png" : 1,
               "base_21049_50824_17.png" : 1,
               "base_21049_50825_17.png" : 1,
               "base_21049_50826_17.png" : 1,
               "base_21049_50827_17.png" : 1,
               "base_21050_50815_17.png" : 1,
               "base_21050_50816_17.png" : 1,
               "base_21050_50817_17.png" : 1,
               "base_21050_50818_17.png" : 1,
               "base_21050_50819_17.png" : 1,
               "base_21050_50820_17.png" : 1,
               "base_21050_50821_17.png" : 1,
               "base_21050_50822_17.png" : 1,
               "base_21050_50823_17.png" : 1,
               "base_21050_50824_17.png" : 1,
               "base_21050_50825_17.png" : 1,
               "base_21050_50826_17.png" : 1,
               "base_21050_50827_17.png" : 1,
               "base_21051_50815_17.png" : 1,
               "base_21051_50816_17.png" : 1,
               "base_21051_50817_17.png" : 1,
               "base_21051_50818_17.png" : 1,
               "base_21051_50819_17.png" : 1,
               "base_21051_50820_17.png" : 1,
               "base_21051_50821_17.png" : 1,
               "base_21051_50822_17.png" : 1,
               "base_21051_50823_17.png" : 1,
               "base_21051_50824_17.png" : 1,
               "base_21051_50825_17.png" : 1,
               "base_21051_50826_17.png" : 1,
               "base_21051_50827_17.png" : 1,
               "base_21052_50815_17.png" : 1,
               "base_21052_50816_17.png" : 1,
               "base_21052_50817_17.png" : 1,
               "base_21052_50818_17.png" : 1,
               "base_21052_50819_17.png" : 1,
               "base_21052_50820_17.png" : 1,
               "base_21052_50821_17.png" : 1,
               "base_21052_50822_17.png" : 1,
               "base_21052_50823_17.png" : 1,
               "base_21052_50824_17.png" : 1,
               "base_21052_50825_17.png" : 1,
               "base_21052_50826_17.png" : 1,
               "base_21052_50827_17.png" : 1,
               "base_21053_50815_17.png" : 1,
               "base_21053_50816_17.png" : 1,
               "base_21053_50817_17.png" : 1,
               "base_21053_50818_17.png" : 1,
               "base_21053_50819_17.png" : 1,
               "base_21053_50820_17.png" : 1,
               "base_21053_50821_17.png" : 1,
               "base_21053_50822_17.png" : 1,
               "base_21053_50823_17.png" : 1,
               "base_21053_50824_17.png" : 1,
               "base_21053_50825_17.png" : 1,
               "base_21053_50826_17.png" : 1,
               "base_21053_50827_17.png" : 1,
               "base_21054_50815_17.png" : 1,
               "base_21054_50816_17.png" : 1,
               "base_21054_50817_17.png" : 1,
               "base_21054_50818_17.png" : 1,
               "base_21054_50819_17.png" : 1,
               "base_21054_50820_17.png" : 1,
               "base_21054_50821_17.png" : 1,
               "base_21054_50822_17.png" : 1,
               "base_21054_50823_17.png" : 1,
               "base_21054_50824_17.png" : 1,
               "base_21054_50825_17.png" : 1,
               "base_21054_50826_17.png" : 1,
               "base_21054_50827_17.png" : 1,
               "base_21055_50815_17.png" : 1,
               "base_21055_50816_17.png" : 1,
               "base_21055_50817_17.png" : 1,
               "base_21055_50818_17.png" : 1,
               "base_21055_50819_17.png" : 1,
               "base_21055_50820_17.png" : 1,
               "base_21055_50821_17.png" : 1,
               "base_21055_50822_17.png" : 1,
               "base_21055_50823_17.png" : 1,
               "base_21055_50824_17.png" : 1,
               "base_21055_50825_17.png" : 1,
               "base_21055_50826_17.png" : 1,
               "base_21055_50827_17.png" : 1,
               "base_21056_50815_17.png" : 1,
               "base_21056_50816_17.png" : 1,
               "base_21056_50817_17.png" : 1,
               "base_21056_50818_17.png" : 1,
               "base_21056_50819_17.png" : 1,
               "base_21056_50820_17.png" : 1,
               "base_21056_50821_17.png" : 1,
               "base_21056_50822_17.png" : 1,
               "base_21056_50823_17.png" : 1,
               "base_21056_50824_17.png" : 1,
               "base_21056_50825_17.png" : 1,
               "base_21056_50826_17.png" : 1,
               "base_21056_50827_17.png" : 1,
               "base_21057_50815_17.png" : 1,
               "base_21057_50816_17.png" : 1,
               "base_21057_50817_17.png" : 1,
               "base_21057_50818_17.png" : 1,
               "base_21057_50819_17.png" : 1,
               "base_21057_50820_17.png" : 1,
               "base_21057_50821_17.png" : 1,
               "base_21057_50822_17.png" : 1,
               "base_21057_50823_17.png" : 1,
               "base_21057_50824_17.png" : 1,
               "base_21057_50825_17.png" : 1,
               "base_21057_50826_17.png" : 1,
               "base_21057_50827_17.png" : 1,
               "base_21058_50815_17.png" : 1,
               "base_21058_50816_17.png" : 1,
               "base_21058_50817_17.png" : 1,
               "base_21058_50818_17.png" : 1,
               "base_21058_50819_17.png" : 1,
               "base_21058_50820_17.png" : 1,
               "base_21058_50821_17.png" : 1,
               "base_21058_50822_17.png" : 1,
               "base_21058_50823_17.png" : 1,
               "base_21058_50824_17.png" : 1,
               "base_21058_50825_17.png" : 1,
               "base_21058_50826_17.png" : 1,
               "base_21058_50827_17.png" : 1,
               "base_21059_50815_17.png" : 1,
               "base_21059_50816_17.png" : 1,
               "base_21059_50817_17.png" : 1,
               "base_21059_50818_17.png" : 1,
               "base_21059_50819_17.png" : 1,
               "base_21059_50820_17.png" : 1,
               "base_21059_50821_17.png" : 1,
               "base_21059_50822_17.png" : 1,
               "base_21059_50823_17.png" : 1,
               "base_21059_50824_17.png" : 1,
               "base_21059_50825_17.png" : 1,
               "base_21059_50826_17.png" : 1,
               "base_21059_50827_17.png" : 1,
               "base_21060_50815_17.png" : 1,
               "base_21060_50816_17.png" : 1,
               "base_21060_50817_17.png" : 1,
               "base_21060_50818_17.png" : 1,
               "base_21060_50819_17.png" : 1,
               "base_21060_50820_17.png" : 1,
               "base_21060_50821_17.png" : 1,
               "base_21060_50822_17.png" : 1,
               "base_21060_50823_17.png" : 1,
               "base_21060_50824_17.png" : 1,
               "base_21060_50825_17.png" : 1,
               "base_21060_50826_17.png" : 1,
               "base_21060_50827_17.png" : 1,
               "base_21061_50815_17.png" : 1,
               "base_21061_50816_17.png" : 1,
               "base_21061_50817_17.png" : 1,
               "base_21061_50818_17.png" : 1,
               "base_21061_50819_17.png" : 1,
               "base_21061_50820_17.png" : 1,
               "base_21061_50821_17.png" : 1,
               "base_21061_50822_17.png" : 1,
               "base_21061_50823_17.png" : 1,
               "base_21061_50824_17.png" : 1,
               "base_21061_50825_17.png" : 1,
               "base_21061_50826_17.png" : 1,
               "base_21061_50827_17.png" : 1,
               "base_21062_50815_17.png" : 1,
               "base_21062_50816_17.png" : 1,
               "base_21062_50817_17.png" : 1,
               "base_21062_50818_17.png" : 1,
               "base_21062_50819_17.png" : 1,
               "base_21062_50820_17.png" : 1,
               "base_21062_50821_17.png" : 1,
               "base_21062_50822_17.png" : 1,
               "base_21062_50823_17.png" : 1,
               "base_21062_50824_17.png" : 1,
               "base_21062_50825_17.png" : 1,
               "base_21062_50826_17.png" : 1,
               "base_21062_50827_17.png" : 1,
               "base_21063_50815_17.png" : 1,
               "base_21063_50816_17.png" : 1,
               "base_21063_50817_17.png" : 1,
               "base_21063_50818_17.png" : 1,
               "base_21063_50819_17.png" : 1,
               "base_21063_50820_17.png" : 1,
               "base_21063_50821_17.png" : 1,
               "base_21063_50822_17.png" : 1,
               "base_21063_50823_17.png" : 1,
               "base_21063_50824_17.png" : 1,
               "base_21063_50825_17.png" : 1,
               "base_21063_50826_17.png" : 1,
               "base_21063_50827_17.png" : 1,
               "base_10524_25407_16.png" : 1,
               "base_10524_25408_16.png" : 1,
               "base_10524_25409_16.png" : 1,
               "base_10524_25410_16.png" : 1,
               "base_10524_25411_16.png" : 1,
               "base_10524_25412_16.png" : 1,
               "base_10524_25413_16.png" : 1,
               "base_10525_25407_16.png" : 1,
               "base_10525_25408_16.png" : 1,
               "base_10525_25409_16.png" : 1,
               "base_10525_25410_16.png" : 1,
               "base_10525_25411_16.png" : 1,
               "base_10525_25412_16.png" : 1,
               "base_10525_25413_16.png" : 1,
               "base_10526_25407_16.png" : 1,
               "base_10526_25408_16.png" : 1,
               "base_10526_25409_16.png" : 1,
               "base_10526_25410_16.png" : 1,
               "base_10526_25411_16.png" : 1,
               "base_10526_25412_16.png" : 1,
               "base_10526_25413_16.png" : 1,
               "base_10527_25407_16.png" : 1,
               "base_10527_25408_16.png" : 1,
               "base_10527_25409_16.png" : 1,
               "base_10527_25410_16.png" : 1,
               "base_10527_25411_16.png" : 1,
               "base_10527_25412_16.png" : 1,
               "base_10527_25413_16.png" : 1,
               "base_10528_25407_16.png" : 1,
               "base_10528_25408_16.png" : 1,
               "base_10528_25409_16.png" : 1,
               "base_10528_25410_16.png" : 1,
               "base_10528_25411_16.png" : 1,
               "base_10528_25412_16.png" : 1,
               "base_10528_25413_16.png" : 1,
               "base_10529_25407_16.png" : 1,
               "base_10529_25408_16.png" : 1,
               "base_10529_25409_16.png" : 1,
               "base_10529_25410_16.png" : 1,
               "base_10529_25411_16.png" : 1,
               "base_10529_25412_16.png" : 1,
               "base_10529_25413_16.png" : 1,
               "base_10530_25407_16.png" : 1,
               "base_10530_25408_16.png" : 1,
               "base_10530_25409_16.png" : 1,
               "base_10530_25410_16.png" : 1,
               "base_10530_25411_16.png" : 1,
               "base_10530_25412_16.png" : 1,
               "base_10530_25413_16.png" : 1,
               "base_10531_25407_16.png" : 1,
               "base_10531_25408_16.png" : 1,
               "base_10531_25409_16.png" : 1,
               "base_10531_25410_16.png" : 1,
               "base_10531_25411_16.png" : 1,
               "base_10531_25412_16.png" : 1,
               "base_10531_25413_16.png" : 1,
               "base_10532_25407_16.png" : 1,
               "base_10532_25408_16.png" : 1,
               "base_10532_25409_16.png" : 1,
               "base_10532_25410_16.png" : 1,
               "base_10532_25411_16.png" : 1,
               "base_10532_25412_16.png" : 1,
               "base_10532_25413_16.png" : 1,
               "base_5262_12703_15.png" : 1,
               "base_5262_12704_15.png" : 1,
               "base_5262_12705_15.png" : 1,
               "base_5262_12706_15.png" : 1,
               "base_5263_12703_15.png" : 1,
               "base_5263_12704_15.png" : 1,
               "base_5263_12705_15.png" : 1,
               "base_5263_12706_15.png" : 1,
               "base_5264_12703_15.png" : 1,
               "base_5264_12704_15.png" : 1,
               "base_5264_12705_15.png" : 1,
               "base_5264_12706_15.png" : 1,
               "base_5265_12703_15.png" : 1,
               "base_5265_12704_15.png" : 1,
               "base_5265_12705_15.png" : 1,
               "base_5265_12706_15.png" : 1,
               "base_5266_12703_15.png" : 1,
               "base_5266_12704_15.png" : 1,
               "base_5266_12705_15.png" : 1,
               "base_5266_12706_15.png" : 1,
               "base_2631_6351_14.png" : 1,
               "base_2631_6352_14.png" : 1,
               "base_2631_6353_14.png" : 1,
               "base_2632_6351_14.png" : 1,
               "base_2632_6352_14.png" : 1,
               "base_2632_6353_14.png" : 1,
               "base_2633_6351_14.png" : 1,
               "base_2633_6352_14.png" : 1,
               "base_2633_6353_14.png" : 1
    };

    gtl.getTileUrl = function(a, b) {
      if( table['base_'+a.x + '_' + a.y + '_'+b+'.png'] ) {
        return 'http://www.stanford.edu/dept/ucomm/map/tiles/base_' + a.x + '_' 
          + a.y + '_' + b + '.png';
      }
    
      return "http://www.google.com/mapfiles/transparent.gif";
    };

    gtl.getCopyrights = function(a,b) {return new Array('TBD');}
    gtl.getCopyrightNotice = function(a,b) {return 'TBD';}

    // Base icon
    var baseIcon;
    baseIcon = new GIcon();  
    baseIcon.iconSize=new GSize(32,32);
    baseIcon.shadowSize=new GSize(56,32);
    baseIcon.iconAnchor=new GPoint(16,32);
    baseIcon.infoWindowAnchor=new GPoint(16,0);
    
    var customMap = new GMapType([G_NORMAL_MAP.getTileLayers()[0], gtl],
    G_NORMAL_MAP.getProjection(), 'Stanford', {errorMessage:"Out of bounds"});
    map.addMapType(customMap);

    for (var j = 0; j < files.length; j++) {
      GDownloadUrl(files[j], createMarkersUrl);
    }
  }
  
  
  function createMarkersUrl(data) {
    var xml = GXml.parse(data);
    markers = xml.documentElement.getElementsByTagName("marker");
  
    for (var i = 0; i < markers.length; i++) {
      var marker = markers[i];

      var gmarker = new Object; 
      gmarkers.push(gmarker);
    
      gmarker.point = new GLatLng(parseFloat(marker.getAttribute("lat")),
        parseFloat(marker.getAttribute("lng")));
      gmarker.html = markers[i].getAttribute("html");
      gmarker.type = markers[i].getAttribute("type");
      gmarker.icon = markers[i].getAttribute("icon");
      createMarker(gmarker);
    } 
  }
    
  // Creates a marker at the given point with the given number label
  function createMarker(gmarker) {
      
    var icon = new GIcon(baseIcon);
  
    icon.image = "http://maps.google.com/mapfiles/kml/" + 
      gmarker.icon + ".png";
    icon.shadow = "http://maps.google.com/mapfiles/kml/" + 
      gmarker.icon + "s.png";
  
    gmarker.marker = new GMarker(gmarker.point, icon);
  
    if (gmarker.html) {
      GEvent.addListener(gmarker.marker, "click", function() {
        gmarker.marker.openInfoWindowHtml(gmarker.html);
      });
    }
  
    map.addOverlay(gmarker.marker);
  
    return gmarker.marker;
  }     
}
  
function toggle(id) {
  var element = document.getElementById(id);

  if(element.checked == true) {
  
    // Show markers
    for (var i = 0; i < gmarkers.length; i++) {
      if (gmarkers[i].type == id) {
        map.addOverlay(gmarkers[i].marker);
      }
    }
  } else {
  
    // Hide markers
    for (var i = 0; i < gmarkers.length; i++) {
      if (gmarkers[i].type == id) {
        map.removeOverlay(gmarkers[i].marker);
      }
    }
  }   
}
