    $(function() {
        $("span[title]").tooltip({
            showURL: false,
            delay: 0,
            fade: 250,
            track: true,
            top: 25
        });
    });
    // Load the Visualization API and packages.
    google.load('visualization', '1', {'packages':['piechart','columnchart','barchart','linechart','areachart','annotatedtimeline']});

    google.setOnLoadCallback(drawCharts);
    function switchMapControlTab(tab) {
      document.getElementById("map_controls_borders").style.display='none';
      document.getElementById("map_controls_external").style.display='none';
      document.getElementById("map_controls_minerals").style.display='none';
      document.getElementById("map_controls_other").style.display='none';
      document.getElementById("map_controls_" + tab).style.display='block';
    }
    var map;
    var map_float;
    var kmls = new Array();
    var kml_sets = new Array();
    function checkPreloadKml(kml) {
      // like checkKmlLoaded(), but do not show upon finish
      if (kmls[kml].hasLoaded()) {
        document.getElementById("map_kml_" + kml + "_button").value = "Show";
        document.getElementById("map_kml_" + kml + "_button").disabled = false;
      } else {
        setTimeout("checkPreloadKml('" + kml + "')",5000);
      }
    }
    function checkKmlLoaded(kml) {
      // check manually, since the load event from Google Maps does not fire properly
      if (kmls[kml].hasLoaded()) {
        toggleKml(kml);
      } else {
        setTimeout("checkKmlLoaded('" + kml + "')",5000);
      }
    }
    function loadKml(kml) {
      kmls[kml + "_visible"] = false;
      if (kml_sets[kml].indexOf("http://") == 0) {
        kmls[kml] = new GGeoXml(kml_sets[kml]);
        kmls[kml + "_float"] = new GGeoXml(kml_sets[kml]);
      } else if (location.href.indexOf("include.js",0) > 0) {
        kmls[kml] = new GGeoXml(location.href.substr(0,location.href.indexOf("include.js",0)) + kml_sets[kml]);
        kmls[kml + "_float"] = new GGeoXml(location.href.substr(0,location.href.indexOf("include.js",0)) + kml_sets[kml]);
      } else {
        kmls[kml] = new GGeoXml(location.href + kml_sets[kml]);
        kmls[kml + "_float"] = new GGeoXml(location.href + kml_sets[kml]);
      }
    }
    function toggleKml(kml) {
      if (kmls[kml] == undefined) {
        document.getElementById("map_kml_" + kml + "_button").disabled = true;
        document.getElementById("map_kml_" + kml + "_button").value = "Loading";
        loadKml(kml);
        checkKmlLoaded(kml);
      } else if (kmls[kml + "_visible"]) {
        map.removeOverlay(kmls[kml]);
        map_float.removeOverlay(kmls[kml + "_float"]);
        kmls[kml + "_visible"] = false;
        document.getElementById("map_kml_" + kml + "_button").value = "Show";
        document.getElementById("map_kml_" + kml + "_button").disabled = false;
      } else {
        map.addOverlay(kmls[kml]);
        map_float.addOverlay(kmls[kml + "_float"]);
        kmls[kml + "_visible"] = true;
        document.getElementById("map_kml_" + kml + "_button").value = "Hide";
        document.getElementById("map_kml_" + kml + "_button").disabled = false;
      }
    }
    var court_markers = new Array();
    var court_markers_float = new Array();
    function toggleCourtMarker(court,lat,lon,title) {
      if (GBrowserIsCompatible()) {
        if (typeof(court_markers[court]) == "undefined") {
          var point = new GLatLng(lat,lon);
          map.setCenter(point);
          var marker = new GMarker(point);
          GEvent.addListener(marker,"click",function() {
            marker.openInfoWindowHtml(title);
          });
          map.addOverlay(marker);
          map_float.setCenter(point);
          var marker_float = new GMarker(point);
          GEvent.addListener(marker_float,"click",function() {
            marker.openInfoWindowHtml(title);
          });
          map_float.addOverlay(marker_float);
        } else if (court_markers[court].isHidden()) {
          map.setCenter(court_markers[court].getLatLng());
          map_float.setCenter(court_markers_float[court].getLatLng());
          court_markers[court].show();
          court_markers_float[court].show();
        } else {
          court_markers[court].hide();
          court_markers_float[court].hide();
        }
      }
    }
    function drawCharts() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map_div"));
        map.setCenter(new GLatLng(18.3222855, -64.8984145), 10);
        map.setMapType(G_NORMAL_MAP);
        map.setUIToDefault();
        map.disableScrollWheelZoom();
        map_float = new GMap2(document.getElementById("map_float_div"));
        map_float.setCenter(new GLatLng(18.3222855, -64.8984145), 8);
        map_float.setMapType(G_NORMAL_MAP);
        map_float.setUIToDefault();
        map_float.disableScrollWheelZoom();
        kml_sets["nuclear"] = "../includes/us_nuclear.kmz";
        kml_sets["weather_radar"] = "../includes/nexrad.kmz";
        kml_sets["mines"] = "../includes/mineplant-fUS.kmz";
        kml_sets["river"] = "http://www.weather.gov/ahps/worldfiles/ahps_national_obs.kmz";
        kml_sets["fire"] = "http://activefiremaps.fs.fed.us/kml/conus.kmz";
        kml_sets["radio"] = "./radio.kmz";
        kml_sets["border"] = "border.kmz";
        kml_sets["counties"] = "border_counties.kmz";
        toggleKml("border");
        for (var kml in kml_sets) {
          if ((kml_sets[kml].indexOf("http://") != 0) && (kml != "border")) {
            loadKml(kml);
            document.getElementById("map_kml_" + kml + "_button").disabled = true;
            document.getElementById("map_kml_" + kml + "_button").value = "Loading";
            checkPreloadKml(kml);
          }
        }
      } else {
        document.getElementById("map_controls_span").style.display = "none";
      }
      var biz_bankruptcy = new google.visualization.DataTable();
      biz_bankruptcy.addColumn('string', 'Year');
      biz_bankruptcy.addColumn('number', 'Chapter 7');
      biz_bankruptcy.addColumn('number', 'Chapter 11');
      biz_bankruptcy.addColumn('number', 'Chapter 12');
      biz_bankruptcy.addColumn('number', 'Chapter 13');
      biz_bankruptcy.addRows(8);
      biz_bankruptcy.setValue(0, 0, '2001');
      biz_bankruptcy.setValue(0, 1, 7);
      biz_bankruptcy.setValue(0, 2, 4);
      biz_bankruptcy.setValue(0, 3, 0);
      biz_bankruptcy.setValue(0, 4, 1);
      biz_bankruptcy.setValue(1, 0, '2002');
      biz_bankruptcy.setValue(1, 1, 3);
      biz_bankruptcy.setValue(1, 2, 5);
      biz_bankruptcy.setValue(1, 3, 0);
      biz_bankruptcy.setValue(1, 4, 0);
      biz_bankruptcy.setValue(2, 0, '2003');
      biz_bankruptcy.setValue(2, 1, 2);
      biz_bankruptcy.setValue(2, 2, 0);
      biz_bankruptcy.setValue(2, 3, 0);
      biz_bankruptcy.setValue(2, 4, 1);
      biz_bankruptcy.setValue(3, 0, '2004');
      biz_bankruptcy.setValue(3, 1, 2);
      biz_bankruptcy.setValue(3, 2, 3);
      biz_bankruptcy.setValue(3, 3, 0);
      biz_bankruptcy.setValue(3, 4, 0);
      biz_bankruptcy.setValue(4, 0, '2005');
      biz_bankruptcy.setValue(4, 1, 1);
      biz_bankruptcy.setValue(4, 2, 6);
      biz_bankruptcy.setValue(4, 3, 0);
      biz_bankruptcy.setValue(4, 4, 0);
      biz_bankruptcy.setValue(5, 0, '2006');
      biz_bankruptcy.setValue(5, 1, 3);
      biz_bankruptcy.setValue(5, 2, 6);
      biz_bankruptcy.setValue(5, 3, 0);
      biz_bankruptcy.setValue(5, 4, 1);
      biz_bankruptcy.setValue(6, 0, '2007');
      biz_bankruptcy.setValue(6, 1, 5);
      biz_bankruptcy.setValue(6, 2, 3);
      biz_bankruptcy.setValue(6, 3, 0);
      biz_bankruptcy.setValue(6, 4, 0);
      biz_bankruptcy.setValue(7, 0, '2008');
      biz_bankruptcy.setValue(7, 1, 2);
      biz_bankruptcy.setValue(7, 2, 2);
      biz_bankruptcy.setValue(7, 3, 0);
      biz_bankruptcy.setValue(7, 4, 0);
      var biz_bankruptcy_chart = new google.visualization.LineChart(document.getElementById('biz_bankruptcy_div'));
      var biz_bankruptcy_formatter = new google.visualization.TableNumberFormat({});
      biz_bankruptcy_formatter.format(biz_bankruptcy, 1);
      biz_bankruptcy_formatter.format(biz_bankruptcy, 2);
      biz_bankruptcy_formatter.format(biz_bankruptcy, 3);
      biz_bankruptcy_formatter.format(biz_bankruptcy, 4);
      biz_bankruptcy_chart.draw(biz_bankruptcy, {width: 400, height: 250, is3D: false, min: 0, colors:['#0000FF','#FF0000','#00FF00','#FFFF00','#800080','#FF9933','#006699','#FF6699','#008000','#ADA990','#6600CC','#996600','#00FFFF','#CC0033','#66FF99','#CCFF00','#CC99FF','#FFCC66'], legend: 'none', title: 'Business'});
      var bankruptcy = new google.visualization.DataTable();
      bankruptcy.addColumn('string', 'Year');
      bankruptcy.addColumn('number', 'Chapter 7');
      bankruptcy.addColumn('number', 'Chapter 11');
      bankruptcy.addColumn('number', 'Chapter 12');
      bankruptcy.addColumn('number', 'Chapter 13');
      bankruptcy.addRows(8);
      bankruptcy.setValue(0, 0, '2001');
      bankruptcy.setValue(0, 1, 34);
      bankruptcy.setValue(0, 2, 1);
      bankruptcy.setValue(0, 4, 18);
      bankruptcy.setValue(1, 0, '2002');
      bankruptcy.setValue(1, 1, 32);
      bankruptcy.setValue(1, 2, 1);
      bankruptcy.setValue(1, 4, 19);
      bankruptcy.setValue(2, 0, '2003');
      bankruptcy.setValue(2, 1, 30);
      bankruptcy.setValue(2, 2, 0);
      bankruptcy.setValue(2, 4, 19);
      bankruptcy.setValue(3, 0, '2004');
      bankruptcy.setValue(3, 1, 16);
      bankruptcy.setValue(3, 2, 0);
      bankruptcy.setValue(3, 4, 17);
      bankruptcy.setValue(4, 0, '2005');
      bankruptcy.setValue(4, 1, 43);
      bankruptcy.setValue(4, 2, 0);
      bankruptcy.setValue(4, 4, 14);
      bankruptcy.setValue(5, 0, '2006');
      bankruptcy.setValue(5, 1, 6);
      bankruptcy.setValue(5, 2, 2);
      bankruptcy.setValue(5, 4, 5);
      bankruptcy.setValue(6, 0, '2007');
      bankruptcy.setValue(6, 1, 10);
      bankruptcy.setValue(6, 2, 0);
      bankruptcy.setValue(6, 4, 5);
      bankruptcy.setValue(7, 0, '2008');
      bankruptcy.setValue(7, 1, 12);
      bankruptcy.setValue(7, 2, 0);
      bankruptcy.setValue(7, 4, 2);
      var bankruptcy_chart = new google.visualization.LineChart(document.getElementById('bankruptcy_div'));
      var bankruptcy_formatter = new google.visualization.TableNumberFormat({});
      bankruptcy_formatter.format(bankruptcy, 1);
      bankruptcy_formatter.format(bankruptcy, 2);
      bankruptcy_formatter.format(bankruptcy, 4);
      bankruptcy_chart.draw(bankruptcy, {width: 400, height: 250, is3D: false, min: 0, colors: ['#0000FF','#FF0000','#00FF00','#FFFF00','#800080','#FF9933','#006699','#FF6699','#008000','#ADA990','#6600CC','#996600','#00FFFF','#CC0033','#66FF99','#CCFF00','#CC99FF','#FFCC66'], legend: 'none', title: 'Non-Business'});
      doTimeUpdate();
    }

    function doTimeUpdate() {
      var zones = new Array('4');
      var zone_abbrs = new Array('AST');
      var today = new Date();
      var zone;
      var zone_index = 0;
      var hour;
      var minute;
      var second;
      var am_pm;
      var time_string = "";
      while (zone_index < zones.length) {
        if (zone_index > 0) {
          time_string = time_string + ",";
        }
        hour = today.getUTCHours() - zones[zone_index];
        if (hour < 0) {
          hour = hour + 24;
        }
        am_pm = "AM";
        if (hour == 0) {
          hour = 12;
        } else if (hour == 12) {
          am_pm = "PM";
        } else if (hour > 12) {
          hour = hour - 12;
          am_pm = "PM";
        }
        minute = today.getUTCMinutes();
        if (minute < 10) {
          minute = "0" + minute;
        }
        second = today.getUTCSeconds();
        if (second < 10) {
          second = "0" + second;
        }
        time_string = time_string + hour + ":" + minute + ":" + second + " " + am_pm + " " + zone_abbrs[zone_index];
        zone_index = zone_index + 1;
      }
      document.getElementById('local_times').innerHTML = time_string;
      document.getElementById('local_times_float').innerHTML = time_string;
      setTimeout("doTimeUpdate()",1000);
    }

    function toggleDiv(div_name) {
      var the_div = document.getElementById(div_name);
      if (document.getElementById(div_name).style.display == 'none') {
        document.getElementById(div_name).style.display = 'block';
      } else {
        document.getElementById(div_name).style.display = 'none';
      }
    }