/*******************************
 * Gestion Google Maps / Earth
 ******************************/
//var map;
//var google;
var ge;
var mgr;  // MarkerManager
//var map_opacity=1.0;	// opacité général des maps 
	//hybridOverlay,
	//baseIcon,
var urlKML;

google.load("earth", "1", {'language':lang});

$(document).ready(function(){ 
	urlKML=absURL+lang+'/projets/markersdata.kml';
	tester(urlKML);
	gmap_init();
});

function gmap_init(){
	if($('#cartegmap').length>0 && $('#cartegmap').is(':visible')){
		google.earth.createInstance('cartegmap', initCB, failureCB);
	}
}

function initCB(instance){
	ge=instance;
	ge.getWindow().setVisibility(true);
	
	//ge.getLayerRoot().enableLayerById(ge.LAYER_BUILDINGS, true);
	ge.getLayerRoot().enableLayerById(ge.LAYER_BORDERS, true); // Noms et limites de départements / Régions Pays
	ge.getLayerRoot().enableLayerById(ge.LAYER_ROADS, true); // Routes
	ge.getLayerRoot().enableLayerById(ge.LAYER_TERRAIN, true); // Terrain 3D
	
	//ge.getSun().setVisibility(true);
	ge.getOptions().setAtmosphereVisibility(true);
	
	// Timeline
	//ge.getTime().setHistoricalImageryEnabled(true);

	
	// affichage et placement des outils de navigation
	ge.getNavigationControl().setVisibility(ge.VISIBILITY_SHOW);
	ge.getNavigationControl().getScreenXY().setXUnits(ge.UNITS_PIXELS);
	ge.getNavigationControl().getScreenXY().setYUnits(ge.UNITS_INSET_PIXELS);
	
	initData();
	initCamera();
}

function failureCB(errorCode){
	tester('Earth ERROR');
	tester(errorCode);
}


function initData(){
	var ge_kmls=Array("http://metropole-3d.nantes-developpement.com/Beaulieu/Main.kml","http://metropole-3d.nantes-developpement.com/Creation/Main.kml","http://metropole-3d.nantes-developpement.com/Fonderies/Main.kml","http://metropole-3d.nantes-developpement.com/Tripode/Main.kml");
	for(u in ge_kmls){
		google.earth.fetchKml(ge, ge_kmls[u], function(kmlObject){
			if(kmlObject)
				ge.getFeatures().appendChild(kmlObject);
		});
	}
	// chargement des projets
	google.earth.fetchKml(ge, urlKML, function(kmlObject){
		if(kmlObject) ge.getFeatures().appendChild(kmlObject);
		placemarksReady();
	});
}

function initCamera(){
	var camera=ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND);
	
	camera.setLatitude(47.20308136916374);
	camera.setLongitude(-1.5638078019708224);
	//camera.setRoll(-5.748971857545862e-9);
	camera.setTilt(73.10459753808037);
	camera.setRange(2000.0);//1334.5486054811724
	camera.setAltitudeMode(1)
	camera.setHeading(44.1950220848378);
	
	ge.getView().setAbstractView(camera);
}

function placemarksReady(){
	tester('Placemarks chargées');
	
	if(idProjet!=undefined){
		//tester('id projet : '+idProjet);
		var placeMark=ge.getElementByUrl(urlKML+'#project_'+idProjet); //getFeatures().
		//tester('placeMark : ');
		//tester(placeMark);
		//ge.setBalloon(placeMark);
	}
	var placemarks=ge.getElementsByType('KmlPlacemark');
	//tester(placemarks);
	for(var i=0; i<placemarks.getLength();++i){
	  var placemark=placemarks.item(i);
	  //tester(placemark);
	}
}

/*function createMarker(marker){
	var placemark=ge.createPlacemark('');
	placemark.setName("placemark");
	
	// Define a custom icon.
	var icon=ge.createIcon('');
	icon.setHref('http://www.iledenantes.com/img/icon/icon_'+marker.type+'_'+marker.etat+'.png');
	var style=ge.createStyle('');
	style.getIconStyle().setIcon(icon);
	style.getIconStyle().setScale(5.0);
	placemark.setStyleSelector(style);
	
	
	// Set the placemark's location.
	var point=ge.createPoint('');
	tester(point);
	point.setLatitude(marker.lat);
	point.setLongitude(marker.lng);
	placemark.setGeometry(point);
	
	// Add the placemark to Earth.
	ge.getFeatures().appendChild(placemark);
	
}*/

/*
function zoomTo(id){
	for (m in markers){
		if(markers[m].nom==id)	{
			if(map.getCurrentMapType()==G_SATELLITE_3D_MAP){
				var gv=ge.getView(); 
				// Get the current view
				var la=gv.copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND);
				la.setLatitude(markers[m].lat);
				la.setLongitude(markers[m].lng);
				la.setAltitude(50);
				la.setTilt(60);
				la.setRange(500.0);
				
				var gv=ge.getView(); 
				
				var local_lat=markers[m].lat;
				var local_lng=markers[m].lng;
				
				var eventHandler=function()	{
					  google.earth.removeEventListener(gv,'viewchangeend', eventHandler);
					
					  var m=mgr.getMarker(local_lat, local_lng, map.getZoom()); // map.getZoom() =16
				  	  GEvent.trigger(m,"click");
				}
				google.earth.addEventListener(gv, 'viewchangeend', eventHandler);		
				map.closeInfoWindow(); 
				gv.setAbstractView(la);
			}else{
				map.setCenter(new GLatLng(markers[m].lat, markers[m].lng), 16);	// 16=zoom
			  var m=mgr.getMarker(markers[m].lat, markers[m].lng, map.getZoom()); // map.getZoom() =16
			  GEvent.trigger(m,"click");
			}
		}
	}
}
/*
window.onresize=function(){
 map.checkResize();
}*/
