var map; var geoXmlm;
//set default location and zoom if no url arguments
var lat=38.8; var lon=-76.5; zoom=9; 

//initialize clock for load timer
var time = new Date();
var then = time.getTime();

//check for url arguments and set variables if present
if (getUrlVariable("ll")){
    var ll=getUrlVariable("ll"); 
     if (getUrlVariable("z")) {zoom=parseFloat(getUrlVariable("z"));}
     lat = parseFloat(ll.split(',')[0]);
     lon = parseFloat(ll.split(',')[1]);
}
 
//function to create the 'View in Google Earth' button
function EarthNCGEControl() {}
EarthNCGEControl.prototype = new GControl();
EarthNCGEControl.prototype.initialize = function(map) {
  var container=document.createElement("div");
  var zoomInDiv=document.createElement("div");this.setButtonStyle_(zoomInDiv);
  container.appendChild(zoomInDiv);
   
  var img=document.createElement('img');
  img.setAttribute('src','http://earthnc.com/images/EarthNC_link.png');
   
   zoomInDiv.appendChild(img);
   GEvent.addDomListener(zoomInDiv,"click",function(){
   var center = map.getCenter();
   window.open('http://earthnc.info/services/earthnconline.php?ll='+center.lat()+','+center.lng());
   });
   
  map.getContainer().appendChild(container);return container;}

EarthNCGEControl.prototype.getDefaultPosition = function() {
  return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(55, 35));
  }

EarthNCGEControl.prototype.setButtonStyle_ = function(button) {
  button.style.textDecoration = "underline";
  button.style.color = "#0000cc";
  button.style.textAlign = "center";
  button.style.width = "6em";
  button.style.cursor = "pointer";
}

//onload function to initialize map
function load() {
   if (GBrowserIsCompatible()) {     
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GMapTypeControl());
        map.addControl(new GLargeMapControl());
        map.addControl(new EarthNCGEControl()); 
        map.setCenter(new GLatLng(lat, lon), zoom); 
        map.setMapType(G_HYBRID_MAP);
        //callback to update chart overlay as users pan map
        GEvent.addListener(map, "moveend", chartlookup);      
      }
    geoXmlm = new GGeoXml(getKMLUrl(lat,lon));
    map.addOverlay(geoXmlm);  
}

//function to set proper URL to EarthNC Navaid file
function getKMLUrl(nlat,nlon){
//base path
var URL = 'http://earthnc.com/kml/gmapsd/';

var loni = Math.floor(Math.abs(nlon));
var lond = Math.abs(nlon)-loni;
var lati = Math.floor(Math.abs(nlat));
var latd = Math.abs(nlat)-lati;

if (latd>=.75){latd=.75;} 
else if (latd<.75 && latd>=.5){latd=.5;} 
else if (latd<.5 && latd>=.25){latd=.25;} 
else if (latd<.25){latd=0;} 
if (lond>=.75){lond=0; loni+=1;} 
else if (lond<.75 && lond>=.5){lond=.75;}
else if (lond<.5 && lond>=.25){lond=.5;}
else if (lond<.25){lond=.25;}

 nlon = loni+lond;
 nlat = lati+latd;

URL = URL + nlat + '_' + nlon +'nearthncmarks.kmz';
lat = nlat;
lon = -nlon;
return URL;
}

function chartlookup(){
var nlat= map.getCenter().lat();
var nlon= map.getCenter().lng();
var zoom = map.getZoom();
var time = new Date();
var now = time.getTime();
//test for movement magnitude and timeout
if ((Math.abs(nlat-lat)>.5 || Math.abs(nlon-lon)>.5) && nlon<-45 && nlat>16 && zoom>=9 && (now-then)>12){
  var URL = getKMLUrl(nlat,nlon);
  document.getElementById("debug").innerHTML='New Region Loading';
  map.removeOverlay(geoXmlm);
  geoXmlm = new GGeoXml(getKMLUrl(nlat,nlon));
  map.addOverlay(geoXmlm); 
  document.getElementById("debug").innerHTML='Click on Markers for Numbers and Light Characteristics - <b>Not for Navigation</b> - Powered by: <a href="http://earthnc.com" target="new">EarthNC.com</a>';
  //reset timer
  then = now;
}
if (zoom<=8){document.getElementById("debug").innerHTML='Zoom in Closer to Refresh Nautical Markers and Lights - <b>Not for Navigation</b> - Powered by: <a href="http://earthnc.com" target="new">EarthNC.com</a>'}
}
        
function getUrlVariable(variable) {
  var url = document.location.href.split('?');
  if (url[1]){
  var vars = url[1].split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
    return pair[1];
    }
  }
  }
}
