google.load("earth", "1", 'sensor=false');
google.load("maps", "2.99");  // For JS geocoder

var ge = null;
var geocoder;
var filename;
var spdataloaded = false;


//Main entry point - create new instance in div called map3d
function init() {
  geocoder = new GClientGeocoder();
  filename = "http://www.european-mammals.org/gmaps/emmagrid.kmz";
   document.getElementById('spname_text').value = "";  	
  google.earth.createInstance("map3d", initCB, failureCB);
 }

//called on successful creation of GE object
function initCB(object) {
  ge = object;
  ge.getWindow().setVisibility(true);
  ge.getOptions().setScaleLegendVisibility(true);
  ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO);
  setStartLocation();
  google.earth.fetchKml(ge, filename, addgridCallback);	
}

function failureCB(object) {
  alert('load failed');
}


//Set the start view to cover the EMMA area
function setStartLocation(){
 var la = ge.createLookAt('Starting point'); 
	la.setLatitude(57.00);
	la.setLongitude(16.80);
	la.setHeading(0.0000);
	la.setRange(6000000.00000);
	ge.getView().setAbstractView(la);
}

//Set species name and call data provider
function getSpeciesData(spnum){
	if(spdataloaded){
		ge.getFeatures().removeChild(ge.getFeatures().getLastChild());
	}
	var selected_index = document.forms[1].elements["latname"].selectedIndex;
	var spname = document.forms[1].elements["latname"].options[selected_index].text;
	document.getElementById('spname_text').innerHTML = spname;
	filename = "http://www.european-mammals.org/gmaps/selectrecs1.php?spcode=" + spnum;
	google.earth.fetchKml(ge, filename, fetchKmlCallback);
}


function loaddata(filename) {
	
 var request = GXmlHttp.create();
     request.open("GET", filename, true);
     request.onreadystatechange = function() {
      if (request.readyState == 4) {
          var xmlDoc = request.responseXML;
		  
         document.getElementById('pointdata').value = "hello world";
		
      }
      request.send(null);
	 }
	  
}

// Add returned kml with species data to the ge object
function fetchKmlCallback(object) {		
				if (!object) { alert('Bad or NULL kml'); return; }
				kmlObject = object;	
				ge.getGlobe().getFeatures().appendChild(kmlObject);
				spdataloaded= true;
			}

// Add returned kml with grid data to the ge object without setting spdataloaded
function addgridCallback(object) {		
				if (!object) { alert('Bad or NULL kml'); return; }
				kmlObject = object;	
				ge.getGlobe().getFeatures().appendChild(kmlObject);
			}


//Find a place
function submitLocation() {
  var address = document.getElementById('address').value;
  geocoder.getLatLng(
    address, 
    function(point) {
      if (point && ge != null) {
        var la = ge.createLookAt('');     
        la.set(point.y, point.x, 100, ge.ALTITUDE_RELATIVE_TO_GROUND, 
               0, 0, 6000);
        ge.getView().setAbstractView(la);
      }
    }
  );
}
