var mysettings=null;
var file_php="../site/ajax/site.php";
//Carte 2D
var map=null;
var icon2=null;
var lat_new=0;
var lng_new=0;

//carte
var taille_w=600;
var minimap=null;
var edition_carte=false
var envoi="";
var annule="";
var kml_z= new Array;
var kml_wz= new Array;



//carte 3d
google.load("earth", "1");
var ge = null;
var range_camera=1000;
var object_timer=null;
var timer_on=false;
var cap_camera=0;
var load_delayed=false;

/* INIT */
function init_site_rapide_exec(force) {//Init avant le chargement complet de la page
	if ( ch_icone_js && ch_icone_var  || force&&!icone_displayed) { // forcage si IE
		ch_icone_js=false;ch_icone_var=false;
		display_icones();
		icone_displayed=true;
		
	}
}

function init_site() { // en fin de load page
	   
		init_menu_g();
		//init des trad
		envoi=lg("submit","envoyer","salvare","enviar");
		annule=lg("cancel","annuler","annulla","cancelar");
		
		init_site_rapide_exec(true);  // On force pour IE qui ne fait pas de onload
		
		setTimeout("init_vue_3D();",1222);  //On retarde Petit bug avec Mozilla depuis MArs 2010
		plot_met_res(); //res meteo
		//if (compteur%2==1 )appel_un_wx(); //  Recherche d'aeroport en local
		
		
		
}

//La definition des icones est dans icones.js
function display_icones() {		
		var s='<div id="zone_icone_in">';var i=0;var j=0;var s_bloc="";var out=false;var k=0;
		for (j=0;j<idx_gr_ic.length-1;j++) {
				s_bloc='<span class="icone_">';
				out=false;
				for ( i=idx_gr_ic[j];i<idx_gr_ic[j+1];i++) {
					for (k=0;k<nom_var.length;k++) {
						if (nom_var[k]==icone[i].nom_var) {
							out=true;
							s_bloc+='<img src="../site/images/'+icone[i].image+'" alt="'+icone[i].nom+'" title="'+icone[i].nom+'" >';
							s_bloc+=coment[k];
							k=nom_var.length;
						}
					}
				}
				s_bloc+='</span>';
				
				if (out) s+=s_bloc;
		}
		s+='</div>';
		document.getElementById("zone_icone").innerHTML=s;
		
	
}

function disp_message(x) {
		x=decodeURIComponent(x)+"<br>"+document.getElementById("message_box").innerHTML;
		document.getElementById("message_box").innerHTML=x.substring(0,220);
}


/* TEXTE */

function message_modt(x){
	if (x) {
		document.getElementById("message_modift").innerHTML=lg_("If you know about '"+titre_site+"', please, update it.","Si vous connaissez '"+titre_site+"', mettez le &agrave; jour si besoin. Merci.","","");
		document.getElementById("message_modift").style.display="block";
	} else {
		document.getElementById("message_modift").style.display="none";
	}
}
/*ICONES*/

function message_modi(x){
	if (x) {
		document.getElementById("message_modifi").innerHTML=lg_("To set up main properties of '"+titre_site+"'. Update it if necessary.","Pour d&eacute;finir les propri&eacute;t&eacute;s de '"+titre_site+"'.  Mettez &agrave; jour si besoin. Merci.","","");
		document.getElementById("message_modifi").style.display="block";
	} else {
		document.getElementById("message_modifi").style.display="none";
	}
}


/* TRACE CARTE 2D */
function init_carte_2D() {
		map = new google.maps.Map2(document.getElementById("map_2D"));
		var center = new google.maps.LatLng(lat_site,lng_site);
		map.addMapType(G_PHYSICAL_MAP) ;
		map.setCenter(center, zoom_map,G_HYBRID_MAP);
		map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
		minimap=new GOverviewMapControl();
		map.addControl(minimap);	
		map.enableScrollWheelZoom();
		affiche_lat(lat_site,lng_site);
		map_icones();
		
		GEvent.addListener(map, "dragend", function() {
						limite_carte();
						
							
			});
		GEvent.addListener(map, "zoomend", function() {
						limite_carte();
							
			});
		setTimeout("limite_carte();",1000);
		

}
function map_icones() {
		map.clearOverlays();
		var center = new GLatLng(lat_site,lng_site);
		icon2 = new GIcon();
		icon2.image = "http://www.sea-seek.com/site/images/croix20.png";
		icon2.iconSize = new GSize(20, 20);
		icon2.iconAnchor = new GPoint(10,10);
		icon2.infoWindowAnchor = new GPoint(10, 10);
  		var marker = createMarker(center,  icon2);
		map.addOverlay(marker);
		GEvent.addListener(map, 'click', function( overlay,point) {
 				var coord=""+ point;
				if (coord.substr(0,1)!="u" && edition_carte ) {  // click sur croix
						lat_new=point.lat();
						lng_new=point.lng();
						update_point();	
				}
												
		
		});	
		GEvent.addListener(map, "mousemove", function(latlg) {
				document.getElementById("curseur_s").innerHTML=m_lat60(latlg.lat())+ "<br />"+m_lng60(latlg.lng());
				
			});
		
		for (var i=0;i<nom_voisin.length;i++) {
			var center = new GLatLng(lat_voisin[i],lng_voisin[i]);
			map.addOverlay(createMark(center, i));
		}
		
		
}
function createMarker(point, icon) {
  		var marker = new GMarker(point,icon);
    	return marker;
}
function createMark(point, i) {
         var icon3 = new GIcon();
		icon3.image = "http://www.sea-seek.com/site/images/carre33.png";
		icon3.iconSize = new GSize(8, 8);
		icon3.iconAnchor = new GPoint(4,4);
		icon3.infoWindowAnchor = new GPoint(4, 4);

          // Set up our GMarkerOptions object
          markerOptions = { icon:icon3};
          var marker = new GMarker(point, markerOptions);

          GEvent.addListener(marker, "mouseover", function() {
            marker.openInfoWindowHtml("<b>"+nom_voisin[i]+"</b>" );
          });
		  GEvent.addListener(marker, "mouseout", function() {
            marker.closeInfoWindow();
          });
          return marker;
 }

function update_point() {
		var point = new GLatLng( lat_new,lng_new);
		map.clearOverlays();
		map.panTo(point);
		var marker = createMarker(point, icon2);
		map.addOverlay(marker);
		zoom_map=map.getZoom(); 
		affiche_lat(lat_new,lng_new);
		affiche_ch_lat(lat_new,lng_new);
		Camera(lat_new,lng_new,range_camera,0,80);

}	
function affiche_lat(lat,long) {		
						if (lat<0) {
							var s =' S';
							}
							else
							{
							var s =' N';
							}							
						 var d=Math.floor(Math.abs(lat));
						var m=100+60*(Math.abs(lat)-d);		
						m=m+'.0000';
						lat=d+'&deg;'+m.substr(1,5)+s;
						
						if (long>0) {
						var s =' E';
						}
						else
						{
						var s =' W';
						}
						
						 d=Math.floor(Math.abs(long));
						 m=100+60*(Math.abs(long)-d);		
						m=m+'.0000';
						long=d+'&deg;'+m.substr(1,5)+s;
	document.getElementById("lati").innerHTML=lat;
	document.getElementById("longi").innerHTML=long;
						
 
 }  // fin function affiche_lat
 
//KML
function limite_carte() {
	if (document.getElementById("dsp_site").checked==true){
					var bounds = map.getBounds();
					var centre=map.getCenter();
					var northEast = bounds.getNorthEast();
					var message_='call_kml=&lat='+centre.lat()+'&lng='+centre.lng()+'&N='+northEast.lat()+'&zoom='+map.getZoom()+'&idx_zone='+idx_zone;  // demande paramètres kml	
					
					go_(message_);
	}
	if (document.getElementById("dsp_sondes").checked==true){
		sondes();
	}

					
}
function plot_kml(x,w) {
	x=decodeURIComponent(x);
	w=decodeURIComponent(w);
	var ladate=new Date();
	var hour=ladate.getHours();
	//Weather
	var liste_w=w.split(',');var z_already=false;
	for (var i=0;i<liste_w.length;i++) {
		z_already=false;
		for (var j=0;j<kml_wz.length;j++) {
			if (kml_wz[j]==liste_w[i]) {
						z_already=true;
						j=kml_wz.length;
			}
		}
		if (!z_already) {
			kml_wz.push(liste_w[i]);
			 var geoXml = new GGeoXml("http://www.sea-seek.com/weather_zone/kml_s/z"+liste_w[i]+"?v="+hour);
        	map.addOverlay(geoXml);

		}
	}
	//Zone hors meteo
	var liste_z=x.split(','); z_already=false;
	for (var i=0;i<liste_z.length;i++) {
		z_already=false;
		for (var j=0;j<kml_z.length;j++) {
			if (kml_z[j]==liste_z[i]) {
						z_already=true;
						j=kml_z.length;
			}
		}
		if (!z_already) {
			kml_z.push(liste_z[i]);
			 var geoXml = new GGeoXml("http://www.sea-seek.com/zone/kml_s/z"+liste_z[i]+"?v="+hour);
        	map.addOverlay(geoXml);

		}
	}
	
}
 
 
function message_modc(x){
	if (x) {
		document.getElementById("message_modifc").innerHTML=lg_("To locate precisely '"+titre_site+"'. Update it if necessary.","Pour localiser avec pr&eacute;cision '"+titre_site+"'.  Mettez &agrave; jour si besoin. Merci.","","");
		document.getElementById("message_modifc").style.display="block";
	} else {
		document.getElementById("message_modifc").style.display="none";
	}
}


 
/* TRACE VUE 3D */
function init_vue_3D() {
	

	google.earth.createInstance("map3d", initCallback, failureCallback);	
}

function initCallback(object) {
  ge = object;
  ge.getWindow().setVisibility(true);
 
  ge.getOptions().setFlyToSpeed(0.5);
  Camera(lat_site,lng_site,range_camera,0,80);
 	ge.getLayerRoot().enableLayerById(ge.LAYER_BUILDINGS, true);
	setTimeout("ge.getOptions().setFlyToSpeed(ge.SPEED_TELEPORT);load_delayed=true;sondes();",5000);//lance rotation
	setTimeout("b_runpause();",7000);//lance rotation
}

function failureCallback(object) {
}
var Zoom=1; 
function Camera(lat,long,range,head,tilt) {
	range=range*Zoom;
		var lookAt = ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND);
		lookAt.setLatitude(lat);
		lookAt.setLongitude(long);
		lookAt.setRange(range);
		lookAt.setTilt(tilt);
		lookAt.setAltitude (1 )   ;
		lookAt.setHeading (head)   ;
		ge.getView().setAbstractView(lookAt);
	
}
function Camera2(lat,long,head) {
		var lookAt = ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND);
		lookAt.setHeading (head)   ;
		lookAt.setLatitude(lat);
		lookAt.setLongitude(long);
		ge.getView().setAbstractView(lookAt);
	
}
function b_runpause() {
	 if (document.getElementById("rotate").checked==false) {
		 timer_on=false;
		 window.clearTimeout(object_timer);
		 ge.getOptions().setFlyToSpeed(0.5);
	 } else {
 		object_timer=setTimeout("Timer_3d()",50);
		timer_on=true;
		//ge.getOptions().setFlyToSpeed(ge.SPEED_TELEPORT);
		ge.getOptions().setFlyToSpeed(100);
		
		
	 }
 }

 function Timer_3d() {
	 cap_camera+=2;
	 cap_camera=cap_camera%360;
	 Camera2(lat_site,lng_site,cap_camera);
	 object_timer=setTimeout("Timer_3d()",50);
 }
/* CARTE */
function affiche_ch_lat(lat,long) {		
	lat=deci60(lat)	;
	long=deci60(long)	;
	document.getElementById("ch_lati_in").value=lat;
	document.getElementById("ch_longi_in").value=long;
 }  // fin function affiche_ch_lat
 function deci60(en_deci)  {
            var en_abs = Math.abs(en_deci);
			var en_conv=Math.floor(en_abs)+0.6*(en_abs-Math.floor(en_abs));
			en_60=en_conv;
			if(en_deci<0) {
				en_60=-en_60;
				}
            return en_60
} 
function m60deci(en_60) {
 						
						var d=Math.floor(Math.abs(en_60));
						var m=(Math.abs(en_60)-d)/0.6;	
						d=d+m		;		
						if (en_60<0) {
										d=-d;
										}
		return d
 }
function chg_texte_carte(){
	 					lat_new=m60deci(document.getElementById("ch_lati_in").value);
						lng_new=m60deci(document.getElementById("ch_longi_in").value);
						update_point();	
 }
 function sondes(){  // Recherche des sondes dans GE et affichage dans gmap
 	if(load_delayed && map!=null) {
					var bounds = map.getBounds();
					var northEast = bounds.getNorthEast();
					var SouthWest=bounds.getSouthWest();
					var dlat=(northEast.lat()-SouthWest.lat())/5;
					var dlng=(northEast.lng()-SouthWest.lng())/5;
					for (var lat=SouthWest.lat();lat<northEast.lat();lat=lat+dlat) {
						for (var lng=SouthWest.lng();lng<northEast.lng();lng=lng+dlng) {
							alti_sol= ge.getGlobe().getGroundAltitude(lat,lng);
							if (alti_sol<0) {
								alti_sol=Math.floor(Math.abs(alti_sol));
								if (alti_sol>0) {
										if (alti_sol>=100 && alti_sol<1000) alti_sol=10*Math.floor(alti_sol/10); // arrondi
										if (alti_sol>=1000 ) alti_sol=100*Math.floor(alti_sol/100);
										var center = new GLatLng(lat,lng);
										var icon2 = new GIcon();
										icon2.image = "http://www.sea-seek.com/sondes/"+alti_sol+".png";
										icon2.iconSize = new GSize(34, 14);
										icon2.iconAnchor = new GPoint(17,7);
										icon2.infoWindowAnchor = new GPoint(17,7);
										var marker = new GMarker(center,icon2);
										map.addOverlay(marker);
								}
							}
						}	
					}
					
	}
	 
 }

// Init carte 2D et 3D
 google.setOnLoadCallback(init_carte_2D);
 
 
