
//Test immediat si on a une page avec un url normal et un hash. Dans ce cas il ne faut prendre que le hash

if ( window.location.hash.length >1) window.location="/geo/index.php?title="+window.location.hash.substring(1);



var meng_map_={obj:null,refresh_site:false,liste_geo:null,mark:null,t_refresh:0};


var map_2D={obj:null,js_charge:false,refresh_site:false,liste_geo:null,poly_mark:null,poly_legs:null,poly_sommets:null,t_refresh:0,edit_tool_en_cours:false,edit_geo:false,info_timer:0};

var sortie_editeur="";

var modif_geo={
	charge:false,
	en_charge:false,
	buffer:"",
	en_cours:false
	
	};
var modif_2D={
	map_charge:false,
	map_en_charge:false,
	meteo_charge:false,
	meteo_en_charge:false,
	buffer:""
	};

var G_O=new Array(); // Objet contenant info geo des sites	
var G_O_=new Array();

//Trigo � laisser au d�but
function m_lat60(en_deci) {
	return m_deci_deg(en_deci)+(( en_deci<0 ) ? " S" : " N");
	
}
function m_lng60(en_deci) {
	return m_deci_deg(en_deci)+(( en_deci<0 ) ? " W" : " E");
}
function m_deci_deg(en_deci)  {
            var en_abs = Math.abs(en_deci);
			var deci="*"+(100+60*(en_abs-Math.floor(en_abs)))+"0000";
			deci=deci.substr(2,7);
			return Math.floor(en_abs)+"&deg;"+deci;
} 

/* Initialisation en fin de load page*/
function init_page(){

	if (geo.idx>0) { 
			geo.idx_old=geo.idx;
			setCookie("idx_geo", geo.idx, 30);
			go_("liste_icone_geo="+geo.idx); //charge apres icones
			inH("nom_site",geo.titre);
			inH("nom_site2",geo.titre);
			init_les_cartes();
			affiche_lat_2D();
			pilot_book();  
			pre_edit();
			look_wikipedia();
			 show("z_admin");
			if (administrateur) inH("repospix","");
			
	}
	inH("meng_zone_tree",meng_zone_cree_famille(geo.idx_old,"none"));
	
 	meng_zone_appel(geo.idx_old);
	document.getElementById("par"+geo.idx_old).className = "titre_jaune";

}

function init_les_cartes(){
	if (map_2D.js_charge && meng_map_.obj!=null) {
				 init_carte_2D();
				 var location=new google.maps.LatLng(geo.lat,geo.lng);
				meng_map_.obj.panTo(location);
				meng_map_.obj.setZoom(Math.max(geo.zoom_map-2,1));
				plot_mark_mg(location,geo.titre);
	} else {
		setTimeout("init_les_cartes();",500);
	}
}
/*nouveau contenu geo */
function disp_geo_content(filiation,description,NW,NE,SW,SE) {
	if (map_2D.obj==null && map_2D.js_charge) init_carte_2D();
	inH("nom_site",geo.titre);
	inH("nom_site2",geo.titre);
	document.title = geo.titre;
	inH("sc_filiation",decodeURIComponent(filiation));
	inH("sc_texte",decodeURIComponent(description));
	parent.location.hash=geo.title;
	if (meng_zone.fam_exist.indexOf(","+geo.idx_old+",",0)>=0) document.getElementById("par"+geo.idx_old).className = "titre_non_jaune";
	geo.idx_old=geo.idx;
	if (meng_zone.fam_exist.indexOf(","+geo.idx+",",0)<0) { // geo inconnu
			meng_zone.fam_exist=",";
			inH("meng_zone_tree",meng_zone_cree_famille(geo.idx,"none")); 
			meng_zone_appel(geo.idx);
			
	} else {
		var n=0;var idx=geo.idx;
		var g="g"+geo.idx;
		while (idx>0 && n<10) {
				n++;
				
				if(G_O[g].idx_enfants.length>0) { // il y a des enfants					
							inH("flag_deb"+idx+"fin",'<img src="'+meng_zone.img_clos+'" class="pointeur" />');
							document.getElementById("enf"+idx).style.display="none"; // cache les enfants
				}
				meng_clk(idx); // Pour ouvrir la vue enfant
				idx=G_O[g].pere;
				g="g"+idx;
		}
		
	}
	document.getElementById("par"+geo.idx).className = "titre_jaune";
	//Voisin
	inH('retour_de_wikipedia','');
	if (geo.surface==0) {
			 hide("bt_disp_zone");
			 look_wikipedia();
	} else {
			hide("cadre_voisins"); // pour les zones
			 show("bt_disp_zone");
	}
	inH("V_NW",decodeURIComponent(NW));inH("V_NE",decodeURIComponent(NE));inH("V_SW",decodeURIComponent(SW));inH("V_SE",decodeURIComponent(SE));
	show("cadre_voisins");

	
	var ladate=new Date();
	ladate=ladate.getTime();
	var appel_mg="";
	if (meng_map_.obj!=null ) {
		if (modif_2D.map_charge) cancel_edit_carte();
		meng_map_.t_refresh=ladate;
		var location=new google.maps.LatLng(geo.lat,geo.lng);
		meng_map_.obj.panTo(location);
		meng_map_.obj.setZoom(Math.max(geo.zoom_map-2,1));
		plot_mark_mg(location,geo.titre);
		var bounds= meng_map_.obj.getBounds();
		appel_mg="call_sites_inside_mg="+bounds.toUrlValue();
		
	}
 	
    var appel_2D="";
	 if (map_2D.obj!=null) {
		 map_2D.t_refresh=ladate;
		var location=new google.maps.LatLng(geo.lat,geo.lng);
		map_2D.obj.panTo(location);
		map_2D.obj.setZoom(geo.zoom_map);
		inH("titre_cart",geo.titre);
		affiche_lat_2D();
		var bounds= map_2D.obj.getBounds();
		var vent="";
		if (plot2D.weather) vent="&call_vent_inside_2D="+bounds.toUrlValue();
		appel_2D="call_sites_inside_2D="+bounds.toUrlValue()+vent;
		trace_leg();
	 }
	 if ((appel_mg+appel_2D)!="") {
		 var appel="appel=0";
		 if (appel_mg!="") appel+="&"+appel_mg;
		  if (appel_2D!="") appel+="&"+appel_2D;
		  go_(appel);
	 }
	 //footnote
	 var s='<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>';
              	s+='<td><h4>'+geo.titre+'</h4></td>';
        	    s+='<td><a href="/?geo='+geo.idx+'" >'+trad.tab_navigation+'</a></td>';
        	     s+='<td><a href="/weather_site/?def='+geo.idx+'" >'+trad.tab_meteo_relev+'</a></td>';
        	     s+='<td><a href="/weather_area/?def='+geo.idx+'" >'+trad.tab_meteo_prev+'</a></td>'; 
        	    s+='<td><a href="/images/?def='+geo.idx+'" >'+trad.tab_photos+'</a></td>';
        	    s+='<td><a href="/tracks/?def='+geo.idx+'" >'+trad.tab_ship_track+'</a></td>';
                 s+='<td><a href="/3d/'+geo.title+'" >'+trad.tab_3D+'</a></td>';
				 if (geo.surface==0) {
					 s+='<td><a href="/kml/z'+geo.pere+'.kml" >KML</a></td>';
				 }
				 s+='<td><a href="http://m.sea-seek.com/?geo='+geo.idx+'">Sea-Seek Mobile</a></td>';
                s+='<td><h4>'+geo.titre+'</h4></td>';
      	    s+='</tr></table>';
		  inH("footnote",s);
	//edition
	 pre_edit();
	  pilot_book(); 
	  if (administrateur) inH("repospix",""); 		 
	 setCookie("idx_geo", geo.idx, 30);
}

function pilot_book(){
	var idx=geo.pere;
	if (geo.surface>0) idx=geo.idx;
	if (geo.nb_inside>=00 && geo.nb_inside<300) { //Pilot book
			  var s='<a href="/pilot_guide/?geo='+idx+'" target="blank_" >'+lg("Pilot guide","Guide nautique","","");
			  s+='<div class="pilot_book"><div class="pilot_book_fr">';
			  var book_img="Sea Seek";
			  if (geo.book!="")  book_img='<img src="/images/'+geo.book+'" class="pilot_book_geo" alt="" >';
                s+='<div class="pilot_book_g"></div><div class="pilot_book_t">'+geo.titre+'</div><div class="pilot_book_img">'+book_img+'</div>';        
       		  s+='</div></div></a>';

				inH("guide_droite",s);	
	}
}
/* Calcul menu Zones et sites geo */
/**********************************/
var meng_zone={
		fam_exist:",",
		appel:",",
		img_list:"/css/image1/list",
		img_clos:"/css/image1/closed.gif",
		img_ouvr:"/css/image1/open.gif"
	};
function fam(nom,idx,lat,lng,zoom,pere,surface,nb_inside,idx_enfants,icone_first) { // A reception file.js du geo
 	
		if(typeof(G_O["g"+idx])=='undefined'){
			G_O["g"+idx]={nom:nom,idx:idx,lat:lat,lng:lng,zoom:zoom,pere:pere,surface:surface,nb_inside:nb_inside,idx_enfants:idx_enfants,icone_first:icone_first,o_map_g:null,o_map_2D:null};
		}
		trace_G_O(idx);
	
}
function fam_(nom,idx,lat,lng,zoom,pere,surface,nb_inside,idx_enfants,nom_enfants,ico_enfants,inside_enfants,icone_first) { // A reception file.js du geo
	

}
function trace_G_O(idx){ 
		fam_arbre(idx);	// arbre gauche
		if (meng_map_.obj!=null) plot_geo_mg(idx);// carte gauche oveerlay
		if (map_2D.obj!=null) plot_geo_2D(idx);// carte  oveerlay
}
function fam_arbre(idx) { // fonction appelé par chaque script/ligne de l'arbre des zobnes
	var g="g"+idx;var img="";
	var reg=new RegExp("_", "g");
	
					if (document.getElementById("par"+idx)!=null) { // Test cette branche a été definie
						if (document.getElementById("par"+idx).innerHTML=="") {
									geId("par"+idx).innerHTML='<a onclick="mng_clk_idx('+idx+');return false;" href="index.php?geo='+idx+'#'+G_O[g].nom+'">'+G_O[g].nom.replace(reg," ")+'</a>';
									if(G_O[g].idx_enfants.length>0) { // il y a des enfants
											var s_enf="";
											var tab_idx_enf=G_O[g].idx_enfants.split(",");
											
											
														for (var k=0;k<tab_idx_enf.length;k++) {
															if (meng_zone.fam_exist.indexOf(","+tab_idx_enf[k]+",",0)<0) { // enfant inconnu
																s_enf+=meng_zone_cree_famille(tab_idx_enf[k],"none");
																if (document.getElementById("enf"+idx).style.display=="block") 	meng_zone_appel(tab_idx_enf[k]); // On appel si visible
															} else {
																s_enf+=document.getElementById("fam"+tab_idx_enf[k]).innerHTML;
															}
														}
														img='<img src="'+meng_zone.img_clos+'" class="pointeur" />';
														if (document.getElementById("enf"+idx).style.display=="block") img='<img src="'+meng_zone.img_ouvr+'" class="pointeur" />';
											document.getElementById("enf"+idx).innerHTML=s_enf;
											
											
										
									} else {
										img='<img src="'+meng_zone.img_list+G_O[g].icone_first+'.gif"  />';
									}
									if (idx>0) document.getElementById("flag_deb"+idx+"fin").innerHTML=img;
									if (G_O[g].pere>=0) {
												if (meng_zone.fam_exist.indexOf(","+G_O[g].pere+",",0)<0) { // pere inconnu{
													var enf=document.getElementById("meng_zone_tree").innerHTML;
													document.getElementById("meng_zone_tree").innerHTML=meng_zone_cree_famille(G_O[g].pere,"block");
													document.getElementById("enf"+G_O[g].pere).innerHTML=enf;
													meng_zone_appel(G_O[g].pere);
												}
									}
									if (idx==geo.idx) meng_clk(idx);
							}
					}
		
}



function meng_zone_appel(idx){
					
					if(typeof(G_O["g"+idx])=='undefined'){ 
						if (meng_zone.appel.indexOf(","+idx+" ,",0)<0) { // Pas encore appelé
								meng_zone.appel+=idx+' ,';
								
								var filename="/mn/"+idx;
								if (idx==0) filename="/mn/0000";
								filename=filename.substr(0,5)+"/"+filename.substr(5,1)+"/"+filename.substring(6)+".js?t="+version_menu;
								include(filename);
						}
					} else {
						var t="trace_G_O("+idx+");"
						setTimeout(t,5); 
					}
	
}
function mng_clk_idx(idx){ // Click sur un lien de geo
	
	go_("mng_clk_idx="+idx+"&cadre_droite="+geo.cadre_droite);
	if (modif_geo.charge) {
		cancel_edit_icone();
	}
}
function include(fileName) {
		if (document.getElementsByTagName) {
			Script = document.createElement("script");
			Script.type = "text/javascript";
			Script.src = fileName;
			Body = document.getElementsByTagName("HEAD"); //marche pas avec body si charge en cours
			if (Body) {
				Body[0].appendChild(Script);
			}
		}
}
function meng_zone_cree_famille(i,vue){
	meng_zone.fam_exist+=i+',';  // Chaine des familles
	var cl="";
	if (i>0) cl='class="decal_menu"';
	var cf=' class="flag_m"';
	if (i==0) cf=' class="masque"'
	return '<div id="fam'+i+'" ><div id="flag_deb'+i+'fin" '+cf+' onclick="meng_clk('+i+');" ></div><div id="par'+i+'"  ></div><div class="clear_both"></div><div id="enf'+i+'" style="display: '+vue+';" '+cl+'></div></div>';
}
function meng_clk(i) { // Click sur dossier jaune
	var g="g"+i;
				var flag=document.getElementById("flag_deb"+i+"fin").innerHTML;
				if(G_O[g].idx_enfants.length>0) { // il y a des enfants
					if (flag.indexOf(meng_zone.img_ouvr,0)>0) { //enfant visible
					//if (document.getElementById("enf"+i).style.display=="block") {
						var vue="none";
						var img='<img src="'+meng_zone.img_clos+'" class="pointeur" />';
					} else {
						var vue="block";
						var img='<img src="'+meng_zone.img_ouvr+'" class="pointeur" />';
						
							
							var tab_idx_enf=G_O[g].idx_enfants.split(",");
														for (var k=0;k<tab_idx_enf.length;k++) {
															if (document.getElementById("flag_deb"+tab_idx_enf[k]+"fin").innerHTML=="") meng_zone_appel(tab_idx_enf[k]);
														}
							
					
						
					}
					inH("flag_deb"+i+"fin",img);
					document.getElementById("enf"+i).style.display=vue;
				}
	
}

/* CARTE MENU Gauche*/
/********************/
function meng_map_loadScript() { //Chargement asyncrone
  var script = document.createElement("script");
  script.type = "text/javascript";
  script.src = "http://maps.google.com/maps/api/js?sensor=false&callback=meng_map_init";
  document.body.appendChild(script);
}
function meng_map_init(){

 		map_2D.js_charge=true; 
		  var myOptions = {
			zoom: 1,
			center: null,
			mapTypeId: google.maps.MapTypeId.TERRAIN,
			draggableCursor:"crosshair"
		  }

		var lat_m=0;
		var lng_m=0;
		var titre="";
		if ( typeof( window.geo.lat ) != "undefined" ) {
			lat_m=geo.lat;lng_m=geo.lng;myOptions.zoom=Math.max(geo.zoom_map-3,0);titre=geo.titre;
		}
	
		myOptions.zoom=Math.min(myOptions.zoom,7);
		myOptions.center = new google.maps.LatLng(lat_m,lng_m);
		meng_map_.obj = new google.maps.Map(geId("meng_map"),myOptions);
	
		google.maps.event.addListener(meng_map_.obj, 'click', function(event) {
						appel_par_latlng(event.latLng,0);

		});	
		google.maps.event.addListener(meng_map_.obj, 'bounds_changed', function() {
						call_sites_inside();

		});	
		google.maps.event.addListener(meng_map_.obj, "mousemove", function(event) {
				inH("meng_curseur",m_lat60(event.latLng.lat())+"&nbsp;&nbsp;"+ m_lng60(event.latLng.lng()));

			});
		plot_mark_mg(myOptions.center,titre);
		
		
		
}

// Appel par click sur carte menu

var file_php="/geo/ajax/geo.php";

function appel_par_latlng(location,idx) {
	go_("appel_par_lat="+location.lat()+"&appel_par_lng="+location.lng()+"&appel_idx="+idx+"&cadre_droite="+geo.cadre_droite);
	meng_map_.obj.panTo(location);
	if (modif_geo.charge) {
		cancel_edit_icone();
	}
}

function call_sites_inside(){
	var ladate=new Date();
	ladate=ladate.getTime();
	if (!meng_map_.refresh_site && (meng_map_.t_refresh+2000)<ladate) {
		meng_map_.refresh_site=true;
		meng_map_.t_refresh=ladate;
		setTimeout("call_sites_inside_mg_del();",2500);
	}
}
function call_sites_inside_mg_del(){
	var bounds= meng_map_.obj.getBounds();
	go_("call_sites_inside_mg="+bounds.toUrlValue());
	meng_map_.refresh_site=false;
}

//Liste point sur carte menu
function disp_point_menu(idx_m){ 

    meng_map_.liste_geo=","+idx_m+",";
	
	var idx_menu=new Array();
	idx_menu=idx_m.split(',');
	for (var i=0;i<idx_menu.length;i++) {
		 meng_zone_appel(idx_menu[i]);
	}
	for (var i in G_O){
		if ( G_O[i].o_map_g!=null ) {
		if (meng_map_.liste_geo.indexOf(","+G_O[i].idx+",", 0)<0  ) { // Remove overlay en dehors
					G_O[i].o_map_g.setMap(null);
					G_O[i].o_map_g=null;	
		}}
		
	}

}

function plot_geo_mg(idx){
	if(meng_map_.liste_geo!=null) {
			if (meng_map_.liste_geo.indexOf(","+idx+",", 0)>0 &&  G_O["g"+idx].o_map_g==null) {
		
								var image = '/css/image1/map'+G_O["g"+idx].icone_first+'.gif';
								if (G_O["g"+idx].nb_inside>0) image = '/css/image1/map_z.gif';
								  var myLatLng = new google.maps.LatLng(G_O["g"+idx].lat,G_O["g"+idx].lng);
								  
								  var beachMarker = new google.maps.Marker({
									  position: myLatLng,
									  map: meng_map_.obj,
									  icon: image
								  });
								  
								  var m="";
								  var reg=new RegExp("_", "g");
								  if (G_O["g"+idx].nb_inside>0) m=" ("+G_O["g"+idx].nb_inside+")";
								  beachMarker.setTitle(G_O["g"+idx].nom.replace(reg," ")+m);
						
								  attachClick_map_menu( beachMarker,idx,myLatLng);
								 G_O["g"+idx].o_map_g=beachMarker; //overlay
								 
							
							
			}
	}
}
function plot_mark_mg(location,titre){
		if (meng_map_.mark!=null ) 	meng_map_.mark.setMap(null);
		if (geo.idx>0) {
					meng_map_.mark = new google.maps.Marker({
										  position: location,
										  map: meng_map_.obj,
										  title:titre
									  });
		}
}
function attachClick_map_menu(marker,idx,location) { 
  google.maps.event.addListener(marker, 'click', function() {
    appel_par_latlng(location,idx);
  });
}
function over_marker_geo(marker,ref){
	 
		google.maps.event.addListener(marker, 'mouseover', function() {
					var m="";
				if (G_O["g"+ref].nb_inside>0) m=" ("+G_O["g"+ref].nb_inside+")";
				var reg=new RegExp("_", "g");
			 	var contentString = '<a  onclick="mng_clk_idx('+ref+');return false;" href="index.php?geo='+ref+'#'+G_O["g"+ref].nom+'"><div><strong>'+G_O["g"+ref].nom.replace(reg," ")+m+'</strong></div>';
				var lng=G_O["g"+ref].lng;
				var adr='/geo/mini_geo.php?idx='+ref;
				info_display(contentString,lng,adr);
		});
		google.maps.event.addListener(marker, 'mouseout', function() {
								hide('info_frame');
		});
}

function info_display(contentString,lng,adr){
		contentString+='<iframe width="100%" height="1" id="inf_fr" onLoad="info_calcHeight_iframe(this);" src="'+adr+'" frameborder="0"  scrolling="no" align="center" ></iframe></a>';

		  
	   var w=map_2D.obj.getBounds().getSouthWest().lng();
	  var e=map_2D.obj.getBounds().getNorthEast().lng();
	  if (e<w) {
		  if ( lng<0 ) {
			  right=700;
		  } else {
			  right=10;
		  }
	  } else {
		  var right=Math.floor(880*(e-lng)/(e-w))+40;
	  }
	  geId("info_frame").style.right=right+"px";
	  inH("info_frame",contentString);
	  show("info_frame");
	
}
function look_wikipedia(){
	if (geo.surface==0) {
			var contentString='<iframe width="100%" height="1" id="inf_wiki" onLoad="info_calcHeight_iframe(this);" src="/geo/iframe_wikipedia.php?geo='+geo.idx+'" frameborder="1"  scrolling="no" align="center" ></iframe>';
			inH("appel_de_wikipedia",contentString);
	}
}

function info_calcHeight_iframe(t){//récupère la hauteur de la page
		var F = document.getElementById(t.id);
		if(F.contentDocument) {
		F.height = F.contentDocument.documentElement.scrollHeight+10; //FF 3.0.11, Opera 9.63, and Chrome
		} else {
		F.height = F.contentWindow.document.body.scrollHeight+10; //IE6, IE7 and Chrome
		}
		
}

/* general */
/***********/
function show(id) {geId(id).style.display='block';} //show element
function hide(id) {geId(id).style.display='none';} //hide element
function geId(id) { return document.getElementById(id); } //get element by ID
function inH(id,c) {  document.getElementById(id).innerHTML=c; } 
function geinH(id) { return document.getElementById(id).innerHTML; } //get element by ID

function getCookie(Name){ //get cookie value
	var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair
	if (document.cookie.match(re)) //if cookie found
	return document.cookie.match(re)[0].split("=")[1] //return its value
	return ""
}

function setCookie(name, value, days){ //set cookei value
	var expireDate = new Date()
	var expstring=expireDate.setDate(expireDate.getDate()+parseInt(days))
	document.cookie = name+"="+value+"; expires="+expireDate.toGMTString()+"; path=/";
}

//Fonction pour geo ???? VOIR CE QUI RESTE NECESSAIRE ?????????????
function init_geo(){
	//init_carte_2D();
	
//	init_menu_g();
//	go_("liste_icone_meteo_geo="+geo.idx);
	
	
	//Affichage crayon modif en fin chargement
//	show("modif_icone");
//	show("modif_carte");
	
	

	
	//Affichage pre-editeur comments
//	pre_edit();
//	setTimeout("init_vue_3D();",1222);  //On retarde Petit bug avec Mozilla depuis MArs 2010
	
}
function ecrit_cadre_droite(cadre){
	inH("col_droite",decodeURIComponent(cadre));
}



/*CHARGE RETARDE JS EDITION*/
function ordre_buffer(x){
	modif_geo.buffer+=x; //Pile des ordRes
	if (modif_geo.charge) {
		if (modif_geo.buffer!="") {
			eval (modif_geo.buffer);
			modif_geo.buffer="";
		}
		
	} else {
		if (!modif_geo.en_charge) {
			modif_geo.en_charge=true;
			include("/geo/js/modif_geo.js?t=1"); // Charge extension editeur
		}
		setTimeout('ordre_buffer("");',100);
	}
}
/*CHARGE RETARDE Map EDITION et gestion photos*/
function ordre_buffer_map(x){
	modif_2D.buffer+=decodeURIComponent(x); //Pile des ordRes
	
	if (modif_2D.map_charge && modif_2D.meteo_charge ) {
		if (modif_2D.buffer!="") {
			eval (modif_2D.buffer);
			modif_2D.buffer="";
		}
		
	} else {
		if (!modif_2D.map_en_charge) {
			modif_2D.map_en_charge=true;
			include("/geo/js/modif_map.js?t=1"); // Charge extension editeur
		}
		if (!modif_2D.meteo_en_charge) {
			modif_2D.meteo_en_charge=true;
			include("weather_site/js/meteo.js?t=1"); // Charge extension editeur
		}
		setTimeout('ordre_buffer_map("");',100);
	}
	
	
}
/* CARTE 2D*/


var tool={action:"",create_en_cours:false,latlg_fin:null,latlg_move:null,distance:0,modif_cercle:false,courant:0,rubber:false,idx_courant:0};

function init_carte_2D() {
		format_les_boutons_map();
		var myOptions = {
				zoom:  geo.zoom_map,
				center: null,
				mapTypeId: google.maps.MapTypeId.HYBRID,
				draggableCursor:"crosshair",
				scrollwheel:false
		  	}

		
		myOptions.center = new google.maps.LatLng(geo.lat,geo.lng);
		map_2D.obj = new google.maps.Map(geId("map_2D"),myOptions);
	
		google.maps.event.addListener(map_2D.obj, 'click', function(event) {
						if (map_2D.edit_geo) {
								click_map_2D_edit(event.latLng);
						} else {
							if (map_2D.edit_tool_en_cours) {
								tool_click_map(event.latLng);
							} else {
								if (!tool.rubber && !modif_geo.en_cours) appel_par_latlng(event.latLng,0);
							}
						}

		});	
		google.maps.event.addListener(map_2D.obj, 'bounds_changed', function() {
						call_sites_inside_2D();

		});	
		google.maps.event.addListener(map_2D.obj, "mousemove", function(event) {
				tool.latlg_move=event.latLng;
				inH("map_2D_curseur",m_lat60(tool.latlg_move.lat())+"&nbsp;&nbsp;"+ m_lng60(tool.latlg_move.lng()));
				if (tool.create_en_cours) new_tool_leg(tool.idx_courant,tool.courant);
				
		});
		google.maps.event.addListener(map_2D.obj, "mouseout", function(event) {
				
		});
	    trace_leg();
		
	    show("modif_carte");
		
	
	
		
}
function call_sites_inside_2D(){
	var ladate=new Date();
	ladate=ladate.getTime();
	if (!map_2D.refresh_site && (map_2D.t_refresh+2000)<ladate) {
		map_2D.refresh_site=true;
		map_2D.t_refresh=ladate;
		setTimeout("call_sites_inside_2D_del();",2145);
	}
}
function call_sites_inside_2D_del(){
	var bounds= map_2D.obj.getBounds();
	var vent="";
	if (plot2D.weather) vent="&call_vent_inside_2D="+bounds.toUrlValue();
	go_("call_sites_inside_2D="+bounds.toUrlValue()+vent);
	map_2D.refresh_site=false;
}
//Liste point sur carte menu
function disp_point_2D(idx_2D_){ 
   // map_2D.liste_geo=","+idx_2D_+",";
   if(idx_2D_!=""){
			var idx_2D=new Array();
			idx_2D=idx_2D_.split(',');
			for (var i=0;i<idx_2D.length;i++) {
				 meng_zone_appel(idx_2D[i]);	
			}
   }
	var sw=map_2D.obj.getBounds().getSouthWest();
	var ne=map_2D.obj.getBounds().getNorthEast();
		
	for (var i in G_O){
		
			var E=ne.lng();
			var W=sw.lng();
			var lng_G=G_O[i].lng
			if (W>E) {
				E=(E+360)%360;W=(W+360)%360;
				lng_G=(lng_G+360)%360;
			}
			if (G_O[i].lat<sw.lat() ||  G_O[i].lat>ne.lat() ||  lng_G>E ||  lng_G<W || !plot2D.all_) {  //En dehors de la carte, on enlève
					if(G_O[i].o_map_2D!=null){
						G_O[i].o_map_2D.setMap(null);
						G_O[i].o_map_2D=null;	
						plot2D.nb--;
					}
		    } else {
						plot_geo_2D(G_O[i].idx);
			}
		
		
	}
}
var plot2D={all_:true,photo:false,zone:true,weather:false,depth:false,nb:0};
function plot_geo_2D(idx){ //Plot l'icone du site idx  sur la carte 2D
				   //Test si on a pas trop de point déjà sur la carte
		if (plot2D.all_ && G_O["g"+idx].o_map_2D==null) {
						if (plot2D.nb>200) { //Trop d'icone sur la carte, il faut en retirer
							var ks="";var dist_site_min=999999999;
							var kz="";var dist_zone_min=999999999;
							for (var i in G_O){
								var dist=Math.abs(G_O[i].lng-G_O["g"+idx].lng)+Math.abs(G_O[i].lat-G_O["g"+idx].at);
								if (dist<dist_site_min && G_O[i].nb_inside==0 ) {  // On cherche un site proche
									dist_site_min=dist;
									ks=i;
								}
								if (dist<dist_zone_min && G_O[i].nb_inside<G_O["g"+idx].nb_inside ) {  // On cherche un site proche
									dist_zone_min=dist;
									kz=i;
								}
							}
							if (ks!="") {
										G_O[ks].o_map_2D.setMap(null);
										G_O[ks].o_map_2D=null;	
										plot2D.nb--;
							} else { // on a que des zones
									if (kz!="") {
										
										G_O[kz].o_map_2D.setMap(null);
										G_O[kz].o_map_2D=null;	
										plot2D.nb--;
									}
							}
						}



					if (plot2D.nb<=200) {
								var image = '/css/image1/list'+G_O["g"+idx].icone_first+'.gif';
								if (G_O["g"+idx].nb_inside>0) image = '/css/image1/closed.gif';
								  var myLatLng = new google.maps.LatLng(G_O["g"+idx].lat,G_O["g"+idx].lng);
								  
								  var beachMarker = new google.maps.Marker({
									  position: myLatLng,
									  map: map_2D.obj,
									  icon: image
								  });
								  
								  var m="";
								  var reg=new RegExp("_", "g");
								  if (G_O["g"+idx].nb_inside>0) m=" ("+G_O["g"+idx].nb_inside+")";
								  beachMarker.setTitle(G_O["g"+idx].nom.replace(reg," ")+m);
						
								  attachClick_map_menu(  beachMarker,idx,myLatLng);
								 G_O["g"+idx].o_map_2D=beachMarker; //overlay
								 plot2D.nb++; //nombre d'icones sur carte
								 
								 over_marker_geo(beachMarker,idx);
					}
		}
}



function affiche_lat_2D() {	
						var lat=geo.lat;var long=geo.lng;
						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;
						inH("lati",lat);
						inH("longi",long);
						
 
 }  // fin function affiche_lat
 //Ligne des zones

function trace_leg() {
	if (map_2D.poly_mark!=null) map_2D.poly_mark.setMap(null);
	if (geo.surface>0) {
		if(plot2D.zone) {
				map_2D.poly_legs = new google.maps.MVCArray();
				var leg_lat=geo.leg_lat.split(",");
				var leg_lng=geo.leg_lng.split(",");
				if (leg_lat.length>2) {
					for (var i=0;i<leg_lat.length;i++) {
						var point= new google.maps.LatLng(leg_lat[i],leg_lng[i]);
						map_2D.poly_legs.push(point);
						
					}
				}
			 
					map_2D.poly_mark = new google.maps.Polygon({
							paths:map_2D.poly_legs,
							strokeColor: "#FF0000",
							strokeOpacity: 0.8,
							strokeWeight: 2,
							fillColor: "#FF0000",
							fillOpacity: 0.05
				  });
				  map_2D.poly_mark.setMap(map_2D.obj);
		}
	

	} else {
		var location=new google.maps.LatLng(geo.lat,geo.lng);
 		map_2D.poly_mark = new google.maps.Marker({
							  position: location,
							  map: map_2D.obj,
							  title:geo.titre
						  });
		
	}
}

var taille= {full:false,avance:0};

function retaille_window(){
	if (map_2D.obj!=null) {
		  if (document.body)
			  {
				  var largw = (document.body.clientWidth);
				  var hautw = (document.body.clientHeight);
			  } else {
				  var largw = (window.innerWidth);
				  var hautw = (window.innerHeight);
			  }
		  if (largw>1170) {
				  var left=-295-(largw-1160)/2;
		  } else {
				  var left=-295;
		  }
		  if(taille.full) {
			  taille.avance=Math.min(100,taille.avance+10);
			  } else {
			  taille.avance=Math.max(0,taille.avance-10);
		  }
			  var larg=(largw-890)*taille.avance/100 + 890;
			  var haut=(hautw-400)*taille.avance/100 + 400;
		  if(taille.full) {
			  left=Math.floor(left*taille.avance/100); 
			  var top=-Math.floor(40*taille.avance/100);
			  
			  geId("enveloppe_carte").style.position="absolute";
			  geId("enveloppe_carte").style.top=top+"px";
			  geId("enveloppe_carte").style.left=left+"px";
			  geId("enveloppe_carte").style.height=haut+"px";
			  geId("enveloppe_carte").style.width=larg+"px";
			  geId("bas").style.visibility="hidden";
			  geId("map_2D").style.height=haut+"px";
			  
			  document.location="#top_carte";
			  if (taille.avance<100)    {
				  setTimeout('retaille_window()',50);
			  } else {
				  
				  inH("bt_map_full_screen",creation_bouton("map_small_screen","ordre_buffer_map(\'map_taille();\');",""));
			  }
	  			hide("pub_voisins");
			  
		  } else {
			  left=Math.floor(left*taille.avance/100); 
			  var top=-Math.floor(40*taille.avance/100);
			  
			  geId("enveloppe_carte").style.top=top+"px";
			  geId("enveloppe_carte").style.left=left+"px";
			  geId("enveloppe_carte").style.height=haut+"px";
			  geId("enveloppe_carte").style.width=larg+"px";
	           geId("map_2D").style.height=haut+"px";
			  map_2D.obj.panTo( new google.maps.LatLng(geo.lat,geo.lng));
			  if (taille.avance==0) {
				  geId("enveloppe_carte").style.position="relative";
				  geId("enveloppe_carte").style.height="400px";
				  geId("enveloppe_carte").style.width="99%";
				  geId("bas").style.visibility="visible";
				   geId("map_2D").style.height="400px";
				 inH("bt_map_full_screen",creation_bouton("map_full_screen","ordre_buffer_map(\'map_taille();\');",""));
	  			 
			  }
			  if (taille.avance>0)   setTimeout('retaille_window()',50);
			 
			  show("pub_voisins");
		  }
		 
		   google.maps.event.trigger(map_2D.obj, 'resize') ;
	}
}

//Boutons sur carte
function format_les_boutons_map() {
		 var affich = '| | | | | all_ weather zone';		// '| | all_ photo weather depth zone'; 
		 var tools= " waypoints bearings area circle rubber";
		 var controls =affich+tools;
		 //Zone display
		 var sa='<div  class="bt_map_disp"><div><span class="bt_map_titre">'+trad.map_disp_site+'</span></div>';
		 sa+='<table border="0" cellspacing="0" cellpadding="0" ><tr><td><span id="bt_map_full_screen">'+creation_bouton("map_full_screen","ordre_buffer_map(\'map_taille();\');","")+'</span></td>';
		 //zone tools
		 var st='<div id="bt_map_tool"><div id="nav_tools"><div><span class="bt_map_titre">'+trad.map_nav_tools+'</span></div>';
		 
		 var gizmos = controls.split(' ');
		 for (var i = 0; i < gizmos.length; i++) {
			if (gizmos[i] == '|') sa+='<td>&nbsp;&nbsp;</td>';
		    else if ((affich).indexOf(gizmos[i]) != -1) sa+=format_un_disp_map(gizmos[i]);
		    else if ((tools).indexOf(gizmos[i]) != -1)  st+=format_un_tool_map(gizmos[i]);
  		}
		sa+='</tr></table></div>';
		st+='</div><div id="bt_map_c_zone" ><span class="bt_map_titre">Map edition</span><br>'+creation_bouton("map_clear_zone","clear_zone();","")+creation_bouton("map_rubber","del_sommet();","bt_del_sommet");
		st+='</div> <div id="map_2D_curseur">0&deg;00 N &nbsp;&nbsp;&nbsp;&nbsp;0&deg;00 E</div></div>';
		geId("bt_map").innerHTML=sa+st;
		hide("bt_map_c_zone");
		if(geo.surface>0) {
				 		show("bt_disp_zone");
				 } else {
					    hide("bt_disp_zone");
		}
}
function format_un_tool_map(action) {
	var act=encodeURIComponent('tool_click("'+action+'");');
	return creation_bouton("map_"+action,"ordre_buffer_map('"+act+"');","bt_tool_"+action);
}

function format_un_disp_map(action) {
	var id="bt_disp_"+action;
	var fct='bt_map_css("'+id+'",'+eval("plot2D."+action)+');' 	
	setTimeout(fct,322); // //trace bord du bouton une fois créée
	
	var act=encodeURIComponent('disp_click("'+action+'");');
	return "<td>"+creation_bouton("map_"+action,"ordre_buffer_map('"+act+"');","bt_disp_"+action)+"</td>";
}
function creation_bouton(var_image,on_click,id){
	var title=eval("pix."+var_image);
	if  (id!="") id='id="'+id+'"';
	var s='<button type="button"  onclick="'+on_click+'" title="'+title+'" '+id+' >'+display_pix(var_image)+'</button>';
	return s;
}
function bt_map_css(id,on_off){ // Changement aspect bouton
	if(on_off){
		geId(id).style.backgroundColor="#668";
		geId(id).style.border="inset";
	} else {
		geId(id).style.backgroundColor="";
		geId(id).style.border="outset";
	}
}


/*ICONES*/

var icone_idx=new Array;var icone_coment=new Array;
function display_icones(ico_idx,ico_var,ico_coment) {	// Appel par ajax
		show("modif_icone");
		var	s='<div id="stars" ></div>';
		
		ico_coment=decodeURIComponent(ico_coment);
		icone_idx.splice(0,icone_idx.length);var icone_var=new Array;icone_coment.splice(0,icone_coment.length);
		icone_idx=ico_idx.split("|||");icone_var=ico_var.split("|||");icone_coment=ico_coment.split("|||");
		s+='<div >';var i=0;
		if (icone_var.length>0) {
				for ( i=0;i<icone_var.length;i++) {
					s+='<span class="icone_">';
					s+=display_pix(icone_var[i]);
					s+=icone_coment[i];
					s+='</span>';
				}
		}
		
		s+='</div>';
		
		geId("zone_icone").innerHTML=s;
}
function display_stars(nb,stars){
	
	var s='<div style="height:35px;" onmouseover="show(\'star_you_img\');" onmouseout="hide(\'star_you_img\');">';
	s+='<img src="geo/images/star'+stars+'.png"  class="star_moy" alt="Reviews">';
	s+='<div class="star_nb">'+nb+' vote';
	if (nb>1) s+='s';
	s+='</div>';
	s+='<div id="star_you_img"><img src="geo/images/star0.png" alt="Your rating"  >';
	s+='<div >'+lg("Your Rating","Votre classement","","")+'</div>';
	s+='<div id="star1" onmouseover="dsp_star(1);" onclick="clk_star(1);"></div><div id="star2" onmouseover="dsp_star(2);" onclick="clk_star(2);"></div><div id="star3" onmouseover="dsp_star(3);" onclick="clk_star(3);"></div><div id="star4" onmouseover="dsp_star(4);" onclick="clk_star(4);"></div><div id="star5" onmouseover="dsp_star(5);" onclick="clk_star(5);"></div>';
	s+='</div></div>';

	inH("stars",s);
	
}
function dsp_star(st){
	for (var i=1;i<6;i++){
		if(i>st){
			geId("star"+i).style.backgroundImage="none";
		} else {
			geId("star"+i).style.backgroundImage="url('/geo/images/star_1.png')";
		}
	}
}
function clk_star(s){
	 if (confirm(lg_("Confirm the vote: "+s+" stars","Confirmé le vote: "+s+" étoiles","",""))) { // Clic sur OK
           go_("clk_star="+geo.idx+"&star="+s); //Vote
       }
}
function display_pix(variable){  //passer le nom de la variable sans le pix.
	try {
		var file=variable+".png";
		var label=eval("pix."+variable);
		return '<img src="geo/images/'+file+'" alt="'+label+'" title="'+label+'" > ';
	}
	catch(err)
	  {
	  	return '<img src="geo/images/carre2.png" alt="" >';
	  }
	
}

/* PRE-EDITEUR Comments */
function pre_edit(){ // Editeur simplifié non actif pour reduire charge download
		 var dbuts1 = 'bold italic underline | left center right justify | |';		 
		 var tflags= " Flag_Gb Flag_Fr Flag_It Flag_Es No_Flag";
		 var controls =dbuts1  + tflags;
		sortie_editeur="";
		var action="geId(\'pre_edit\').innerHTML=\'Wait\';ordre_buffer(\'cree_editeur_new_com();\');"
		 w('<div style="width:100%;padding:2px;" onClick="'+action+'"   >');
		 
		 var gizmos = controls.split(' ');
		 for (var i = 0; i < gizmos.length; i++) {
			if (gizmos[i] == '|') w('&nbsp;&nbsp;&nbsp;');
		    else if ((dbuts1).indexOf(gizmos[i]) != -1) makeButton_r(gizmos[i]);
		   else if ((tflags).indexOf(gizmos[i]) != -1) makeFlag_r(gizmos[i]);
  		}
		
		w('<div id="pre_edit"><span class="survol">'+lg("Click<br>to add <br>a description, a comment or a picture","Cliquez<br>pour ajouter<br>une description, un commentaire ou une photo","Fai clic<br> per aggiungere<br>un commento","Haga clic<br> para a&ntilde;adir<br>un comentario")+'</span>');
		geId("champ_0").innerHTML=sortie_editeur;
}
function  makeFlag_r(f){
	w('<span><img src="/images/'+f+'.png" alt="'+f+'" title="'+f+'" ><input type="radio" name="radio" id="radio_flag" value="radio_flag" />&nbsp;</span>');
}
function   makeButton_r(f){
	w('<button   type=button title="'+f+'" ><img src="geo/images/btn/'+f+'.gif" alt="'+f+'" ></button>');
}
 function w(str) { sortie_editeur+=str;} 
 
 /* general */
function bt_ok_cancel(ok_,no){
	return '<div id="bt_ok_no"> <div onclick="'+ok_+'"  class="modif_ok">'+trad.edit_envoi+' </div> <div onclick="'+no+'"  class="modif_no">'+trad.edit_annule+' </div></div>';
}

/*Supprime*/
function supprime_site(){
	 if (confirm("Confirmer la suppression de: "+geo.titre)) { // Clic sur OK
           go_("supprime_site="+geo.idx); //supprime pour les administrateurs
       }
	
}
/*Validation moderation texte */
var valid_={t:null,idx_texte:0};
function sel_validation(t,idx_texte){
	var s='<select  onchange="valid_sel(this.value);">';
	s+='<option value="-1"> </option>';
	for (var i=0;i<valid_txt.length;i++) {
  		s+='<option value="'+i+'" style="background-color:'+valid_col[i]+';" >'+valid_txt[i]+'</option>';
	}
	s+='</select>';
	t.innerHTML=s;
	valid_.t=t;
	valid_.idx_texte=idx_texte;
}
function valid_sel(i){
	if (i>1 && administrateur) { // Delete programme du texte"
			if (confirm("Confirmer la suppression programmée ")) { // Clic sur OK
				   go_("validation_moder_txt="+valid_.idx_texte+"&idx_val="+i); //supprime par les administrateurs
				   valid_.t.style.backgroundColor=valid_col[i];
			   }
	} else {
		go_("validation_moder_txt="+valid_.idx_texte+"&idx_val="+i);
		valid_.t.style.backgroundColor=valid_col[i];
	}
	valid_.t.innerHTML="V";
	
}


/*GENERAL*/
var cat_en=new Array("Sites","Seas, Coasts","Weather on line","Webcams");
var cat_fr=new Array("Sites","Mers, Côtes","Météo marine","Webcams");
var cat_it=new Array("","","","");
var cat_es=new Array("","","","");



function SetCook_lg (lg) {
				setCookie("langue_", lg, 10);
				window.location.reload();
		}



function lg(en,fr,it,es) { //avec span
	 var s='<span lang="en" >'+en+'</span>';
	 if (langue=="fr" && fr.length>0 ) s='<span lang="fr" >'+fr+'</span>';
	 if (langue=="it" && it.length>0 ) s='<span lang="it" >'+it+'</span>';
	 if (langue=="es" && es.length>0 ) s='<span lang="es" >'+es+'</span>';
	 return s;
 }
 function lg_(en,fr,it,es) { //sans span
	 var s=en;
	 if (langue=="fr" && fr.length>0 ) s=fr;
	 if (langue=="it" && it.length>0 ) s=it;
	 if (langue=="es" && es.length>0 ) s=es;
	 return s;
 }

<!-- AJAX -->
/**
	* ENVOI des paramtres au serveur
			*/
	var xhr = null; 
	 
			function getXhr(){
				if(window.XMLHttpRequest) // Firefox et autres
				   xhr = new XMLHttpRequest(); 
				else if(window.ActiveXObject){ // Internet Explorer 
				   try {
			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
			            } catch (e) {
			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
			            }
				}
				else { // XMLHttpRequest non support par le navigateur 
				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
				   xhr = false; 
				} 
			}
			
			/**
			* Mthode qui sera appele sur le click du bouton
			*/
			function go_(message){
				getXhr();
				// On dfini ce qu'on va faire quand on aura la rponse
				xhr.onreadystatechange = function(){
					// On ne fait quelque chose que si on a tout reu et que le serveur est ok
					if(xhr.readyState == 4 && xhr.status == 200){
						leselect =xhr.responseText;
						
						eval(leselect);
					}
				}

				// Ici on va voir comment faire du post asynchrone
				xhr.open("POST",file_php,true);
				// ne pas oublier a pour le post
				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
				// ne pas oublier de poster les arguments
				xhr.send(message);
				//document.getElementById("display").innerHTML+=message;
			}
			








function pub(taille){
var s='<script type="text/javascript">';
	s+='google_ad_client = "pub-2910276744203370";';
	if (taille=="234*60") {
			s+='google_ad_slot = "2469211270";';
			s+='google_ad_width = 234;';
			s+='google_ad_height = 60;';
	
	} 
	if (taille=="468*60") {
			s+='google_ad_slot = "3793316373";';
			s+='google_ad_width = 468;';
			s+='google_ad_height = 60;';
	} 
	if (taille=="250*250") {
			s+='google_ad_slot = "5583716674";';
			s+='google_ad_width = 250;';
			s+='google_ad_height = 250;';
	}
	s+='</script>';
	s+='<script type="text/javascript"	src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>';
 
 return s;
}






//declaration en fin de charge
var menu_gauche={
	charge:true
	};

//Lancement script carte du menu de gauche
meng_map_loadScript();


