

var Driedce_logo = "http://www.3dclearearth.nl/images/logo_wit.png";
//google.load("earth", "1");
		
		var ge = null;
		
		function init() {
			google.earth.createInstance("map3d", initCallback, failureCallback);
		}
		
		function initCallback(object) {
			ge = object;
			ge.getWindow().setVisibility(true);
			screenOverlayShow();
			ge.getNavigationControl().setVisibility(ge.VISIBILITY_SHOW);

			var lookAt = ge.createLookAt('');
			lookAt.set(51.82862314336721,5.4461786909203465,0,ge.ALTITUDE_RELATIVE_TO_GROUND,-0.017157822136628184,43.1185133788329,594297.8399020034);
			ge.getView().setAbstractView(lookAt);	
			
			var layerRoot = ge.getLayerRoot();
			layerRoot.enableLayerById(ge.LAYER_TERRAIN, false);
			layerRoot.enableLayerById(ge.LAYER_BORDERS, true);
			
			var interval = 0;
			var check_interval = 0;
			if(check_interval == 0){
				interval = window.setInterval(function() {	
					var streamingPercent = ge.getStreamingPercent();  
					if (streamingPercent >= 10){ 
						//unload_3d_file();
						//load_place();
						if(document.getElementById('coords_models').value !=""){
							load_model();
							var coords = document.getElementById('coords_models').value;
							fly_to(coords);
						}
						interval=window.clearInterval(interval);
					} 
				}, 100);
			}
			
		}
		
		function failureCallback(object) {
		  var downloadGEA = 
		  '<div style="overflow: hidden; position: relative; width: 100%; height: 100%;"><div style="background: rgb(229, 227, 223) url(http://www.google.com/earth/plugin/images/loading.gif) no-repeat scroll 50% 50%; position: absolute; left: 0px; top: 0px; width: 100%; height: 100%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><iframe src="http://www.google.com/intl/en/earth/plugin/error.html#error=ERR_NOT_INSTALLED" width="100%" frameborder="0" height="100%"></iframe></div></div>';
		  
		  if(document.getElementById('map3d_container') != null)
		  {
			document.getElementById('map3d_container').innerHTML = downloadGEA;
		  }
		}


 function screenOverlayShow(){
		var screenOverlay = ge.createScreenOverlay('');
		
		// ScreenOverlay/Icon
		
		var icon = ge.createIcon('');
		icon.setHref(Driedce_logo);
		
		
		screenOverlay.setIcon(icon);
		screenOverlay.setDrawOrder(10);
		
		// Set screen position in pixels
		screenOverlay.getOverlayXY().setXUnits(ge.UNITS_PIXELS);
		screenOverlay.getOverlayXY().setYUnits(ge.UNITS_PIXELS);
		screenOverlay.getOverlayXY().setX(70);
		screenOverlay.getOverlayXY().setY(20);
		
		// Rotate around object's center point
		screenOverlay.getRotationXY().setXUnits(ge.UNITS_FRACTION);
		screenOverlay.getRotationXY().setYUnits(ge.UNITS_FRACTION);
		screenOverlay.getRotationXY().setX(0);
		screenOverlay.getRotationXY().setY(0);
		
		// Set object's size in pixels
		screenOverlay.getSize().setXUnits(ge.UNITS_PIXELS);
		screenOverlay.getSize().setYUnits(ge.UNITS_PIXELS);
		screenOverlay.getSize().setX(118);
		screenOverlay.getSize().setY(26);
		
		// Rotate 45 degrees
		screenOverlay.setRotation(0);
		
		// add the screen overlay to Earth
		ge.getFeatures().appendChild(screenOverlay);
	}
	
function aanmakenNetworkLink(path){
	
	alert(path);
	
	var link = ge.createLink('');
	link.setHref(path);
	var networkLink = ge.createNetworkLink('');
	networkLink.setLink(link);
	networkLink.setDescription("NetworkLink open to fetched content"); 

	networkLink.setFlyToView(true);
    ge.getFeatures().appendChild(networkLink);

}
function load_place(value){	
	if(document.getElementById('model_address_city').value !="")
	{
			if(document.getElementById('model_address_city').value == "nederland"){
				
				var lookAt = ge.createLookAt('');
				lookAt.set(51.82862314336721,5.4461786909203465,0,ge.ALTITUDE_RELATIVE_TO_GROUND,-0.017157822136628184,43.1185133788329,594297.8399020034);
				ge.getView().setAbstractView(lookAt);		
			}
			else
			{
			
				window.geocodeLocation = document.getElementById('model_address_city').value + ',nederland';
				var geocoder = new google.maps.ClientGeocoder();
				geocoder.getLatLng(window.geocodeLocation, function(point) {
				 if (point) {
						var lookAt = ge.createLookAt('');
						lookAt.set(point.lat(), point.lng(), 10, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 60, 20000);
						ge.getView().setAbstractView(lookAt);
				}
				});
			}
	}
}




function load_model(){
	
	if(document.getElementById('path_models').value !=""){
		
		//alert(document.getElementById('path_models').value);
		var opsomming = document.getElementById('path_models').value;
		arr_paths = opsomming.split(' ');

		for (i = 0; i < arr_paths.length; i++) {

			var link = ge.createLink('');
			link.setHref(arr_paths[i]);
			var networkLink = ge.createNetworkLink('');
			
			networkLink.setLink(link);
			networkLink.setDescription("NetworkLink open to fetched content");
			//networkLink.setName(''+i+'');

			/*
			if(i == 0){ 
				//alert("boo");
				networkLink.setFlyToView(true);
			}
			else
			{
				*/
				networkLink.setFlyToView(false);
			//}
			ge.getFeatures().appendChild(networkLink);	
		}
	}	
}

function unload_3d_file(){	
	var objecten = ge.getFeatures().getChildNodes();
	for (i = 0; i < objecten.getLength(); i++) {
		hetItem = objecten.item(i);
		ge.getGlobe().getFeatures().removeChild(hetItem);
	}
	document.getElementById("overview_models").innerHTML = "";
}

function fly_to(flyto){
	
	//alert(flyto);
	var la = ge.createLookAt(''); 
	
	arr_flyto = flyto.split(",");
	
	arr_flyto[0] = parseFloat(arr_flyto[0]);
	arr_flyto[1] = parseFloat(arr_flyto[1]);
	arr_flyto[2] = parseFloat(arr_flyto[2]);
	arr_flyto[4] = parseFloat(arr_flyto[4]);	
	arr_flyto[5] = parseFloat(arr_flyto[5]);		
	arr_flyto[6] = parseFloat(arr_flyto[6]);
	
	la.set(arr_flyto[0],arr_flyto[1],arr_flyto[2],ge.ALTITUDE_RELATIVE_TO_GROUND,arr_flyto[4],arr_flyto[5],arr_flyto[6]);

    ge.getView().setAbstractView(la);
}

function get_camera(){
		camera = ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND);
		var DEFAULT_HEADING_OFFSET = 2.5; // degrees
		offset = DEFAULT_HEADING_OFFSET;
		
		camera_lookat = camera.getLatitude()+","+camera.getLongitude()+","+
		camera.getAltitude()+",ge.ALTITUDE_RELATIVE_TO_GROUND"+","+
		camera.getHeading()+","+
		camera.getTilt()+","+camera.getRange();
		alert(camera_lookat);
	}
