var map;
var userAdded = 1;

function onLoad2() {
  map = new GMap2(document.getElementById("map")); 

  map.setCenter(new GLatLng(37.422341, -122.085018), 3);
  map.addControl(new GSmallMapControl());

  document.getElementById("url").value = "http://";
  
  for(var layer in layers) {
    addTR(layer, layers[layer].name);
  }
  document.getElementById(layer).checked = true;
  toggleGeoXML(layer, true);
} 

function addGeoXML() {
  var theUrl = document.getElementById("url").value;
  theUrl = theUrl.replace(/^\s+/, "");
  theUrl = theUrl.replace(/\s+$/, "");
  if (theUrl.indexOf(' ') != -1) {
    alert('Error - that address has a space in it');
  } else {  
    var id = "userAdded" + userAdded;
    layers[id] = {};
    layers[id].url = theUrl;
    layers[id].name = "User Layer " + userAdded;

    addTR(id);
    document.getElementById(id).checked = true;
    toggleGeoXML(id, true);
    userAdded++;
  }
}

function addTR(id) {
  var layerTR = document.createElement("tr");

  var inputTD = document.createElement("td");
  var input = document.createElement("input");
  input.type = "checkbox";
  input.id = id;
  input.onclick = function () { toggleGeoXML(this.id, this.checked) };
  inputTD.appendChild(input);

  var nameTD = document.createElement("td");
  var nameA = document.createElement("a");
  nameA.href = layers[id].url;
  var name = document.createTextNode(layers[id].name);
  nameA.appendChild(name);
  nameTD.appendChild(nameA);

  layerTR.appendChild(inputTD);
  layerTR.appendChild(nameTD);
  document.getElementById("sidebarTBODY").appendChild(layerTR);
}

function zoomToGeoXML(geoXml) {
  var center = geoXml.getDefaultCenter();
  var span = geoXml.getDefaultSpan();
  var sw = new GLatLng(center.lat() - span.lat() / 2,
                       center.lng() - span.lng() / 2);
  var ne = new GLatLng(center.lat() + span.lat() / 2,
                       center.lng() + span.lng() / 2);
  var bounds = new GLatLngBounds(sw, ne);
  map.setCenter(center);
  map.setZoom(map.getBoundsZoomLevel(bounds));
}

function toggleGeoXML(id, checked) {
  if (checked) {
      var geoXml = new GGeoXml(layers[id].url, function() {
        if (geoXml.loadedCorrectly()) {
          geoXml.gotoDefaultViewport(map);
          layers[id].geoxml = geoXml;
	  send_Coord(123,geoXml.getDefaultCenter());
	  document.getElementById("map").style.display = "";
	  document.getElementById("status").innerHTML = "";
	  document.getElementById("mapload").style.display = "none";
	  placement = document.getElementById("mapwrapper");
        }
      });
    layers[id].geoXml = geoXml;
    map.addOverlay(layers[id].geoXml);
    document.getElementById("status").innerHTML = "Loading...";
    document.getElementById("map").style.display = "none";
    document.getElementById("mapload").style.display = "";
  
  } else if (layers[id].geoXml) {
    map.removeOverlay(layers[id].geoXml);
  }
}

var stateLat = {
	'Alberta' : '54.367758524068385',
	'British Columbia' : '53.904338156274704',
	'Manitoba' : '54.901882187385006',
	'New Brunswick' : '46.604167162931844',
	'Newfoundland' : '49.09545216253482',
	'Northwest Territories' : '63.97596090918338',
	'Nova Scotia' : '44.99588261816546',
	'Nunavut' : '65.49474141843486',
	'Ontario' : '47.96050238891509',
	'Prince Edward Island' : '46.29761098988109',
	'Quebec' : '50.12057809796007',
	'Saskatchewan' : '54.95238569063361',
	'Yukon' : '63.03503931552975',
	'Alabama' : '32.95336814579932',
	'Alaska' : '62.471723714758724',
	'Arizona' : '34.27083595165',
	'Arkansas' : '34.71452466170392',
	'California' : '36.1733569352216',
	'Colorado' : '38.92522904714054',
	'Connecticut' : '41.56614196476838',
	'Delaware' : '38.788345355085625',
	'District of Columbia' : '38.8225909761771',
	'Florida' : '28.66167121641951',
	'Georgia' : '32.56533316084101',
	'Hawaii' : '20.3034175184893',
	'Idaho' : '43.8186748554532',
	'Illinois' : '40.1452892956766',
	'Indiana' : '40.195659093364654',
	'Iowa' : '41.902277040963696',
	'Kansas' : '38.39333888832238',
	'Kentucky' : '37.483576550426996',
	'Louisiana' : '30.95876857077987',
	'Maine' : '45.22074260255366',
	'Maryland' : '39.10875135935859',
	'Massachusetts' : '42.3016903282445',
	'Michigan' : '44.276671273775186',
	'Minnesota' : '46.13417004624326',
	'Mississippi' : '32.61161640317033',
	'Missouri' : '38.13455657705411',
	'Montana' : '46.99524110694596',
	'Nebraska' : '41.44272637767212',
	'Nevada' : '39.410733055084954',
	'New Hampshire' : '43.476840397778936',
	'New Jersey' : '39.6268459848669',
	'New Mexico' : '34.12544756511612',
	'New York' : '42.79540065303723',
	'North Carolina' : '35.38904996691167',
	'North Dakota' : '47.12995075666307',
	'Ohio' : '40.094882122321145',
	'Oklahoma' : '35.28150065789119',
	'Oregon' : '43.58039085560784',
	'Pennsylvania' : '40.81380923056961',
	'Rhode Island' : '41.67496335351133',
	'South Carolina' : '33.75174787568194',
	'South Dakota' : '44.465151013519616',
	'Tennessee' : '35.77771427205079',
	'Texas' : '31.728167146023935',
	'Utah' : '39.436192999314066',
	'Vermont' : '44.04811573082351',
	'Virginia' : '37.431250501793585',
	'Washington' : '47.144897485553955',
	'West Virginia' : '38.53097889440024',
	'Wisconsin' : '44.268804788566165',
	'Wyoming' : '42.94033923363183'
};

var stateLon = {
	'Alberta' : '-114.3017578125',
	'British Columbia' : '-124.716796875',
	'Manitoba' : '-97.20703125',
	'New Brunswick' : '-66.20361328125',
	'Newfoundland' : '-56.2939453125',
	'Northwest Territories' : '-116.630859375',
	'Nova Scotia' : '-62.90771484375',
	'Nunavut' : '-94.9658203125',
	'Ontario' : '-83.9794921875',
	'Prince Edward Island' : '-63.3087158203125',
	'Quebec' : '-72.0703125',
	'Saskatchewan' : '-106.083984375',
	'Yukon' : '-135.3955078125',
	'Alabama' : '-86.781005859375',
	'Alaska' : '-148.271484375',
	'Arizona' : '-111.4013671875',
	'Arkansas' : '-92.3291015625',
	'California' : '-120.21240234375',
	'Colorado' : '-105.523681640625',
	'Connecticut' : '-72.674560546875',
	'Delaware' : '-75.38818359375',
	'District of Columbia' : '-77.17071533203125',
	'Florida' : '-81.8701171875',
	'Georgia' : '-83.34228515625',
	'Hawaii' : '-157.03857421875',
	'Idaho' : '-114.49951171875',
	'Illinois' : '-89.439697265625',
	'Indiana' : '-86.209716796875',
	'Iowa' : '-93.8232421875',
	'Kansas' : '-98.426513671875',
	'Kentucky' : '-84.35302734375',
	'Louisiana' : '-92.230224609375',
	'Maine' : '-69.049072265625',
	'Maryland' : '-76.5966796875',
	'Massachusetts' : '-71.993408203125',
	'Michigan' : '-84.88037109375',
	'Minnesota' : '-94.46044921875',
	'Mississippi' : '-89.791259765625',
	'Missouri' : '-92.5927734375',
	'Montana' : '-109.27001953125',
	'Nebraska' : '-99.766845703125',
	'Nevada' : '-116.949462890625',
	'New Hampshire' : '-71.78466796875',
	'New Jersey' : '-74.7235107421875',
	'New Mexico' : '-105.79833984375',
	'New York' : '-75.87158203125',
	'North Carolina' : '-79.4091796875',
	'North Dakota' : '-100.17333984375',
	'Ohio' : '-82.81494140625',
	'Oklahoma' : '-97.393798828125',
	'Oregon' : '-120.60791015625',
	'Pennsylvania' : '-77.67333984375',
	'Rhode Island' : '-71.35345458984375',
	'South Carolina' : '-80.61767578125',
	'South Dakota' : '-100.29418945312',
	'Tennessee' : '-85.968017578125',
	'Texas' : '-99.51416015625',
	'Utah' : '-111.708984375',
	'Vermont' : '-72.75146484375',
	'Virginia' : '-78.321533203125',
	'Washington' : '-120.673828125',
	'West Virginia' : '-80.61767578125',
	'Wisconsin' : '-89.769287109375',
	'Wyoming' : '-107.51220703125'
};
