function getXHR()
{
    var xr = null;
	if (window.XMLHttpRequest) // Firefox et autres
		{
			xr = new XMLHttpRequest();
		}
	else if (window.ActiveXObject) // Internet Explorer  
	{
		try
			{
				xr = new ActiveXObject("Msxml2.XMLHTTP" );
			}
		catch (e)
			{
				xr = new ActiveXObject("Microsoft.XMLHTTP" );
			}
	}
	else // XMLHttpRequest non supporté par le navigateur  
	{
		xr = false;
	}
	return xr;
}

function recherche(lang,lastClick){
	desactive();
	majListing=false;
	//Activite
	var activite = getElementsByName_iefix("input","activite[]");
	var acti="";
	for (var i=0; i<activite.length; i++) 
		{
		  if (activite[i].checked) 
			{
				acti=acti + activite[i].value + "|";
			}
		}
	//Label
	var label = getElementsByName_iefix("input","label[]");
	var lab="";
	for (var i=0; i<label.length; i++) 
		{
		  if (label[i].checked) 
			{
				lab=lab + label[i].value + "|";
			}
		}
	//label obtenu
	var labelObt = "";
	$(".labelObtenu").each(function(){
	  labelObt += $(this).val()+"|";
	   });
	//Secteur
	var secteur = getElementsByName_iefix("input","secteur[]");
	var sect="";
	for (var i=0; i<secteur.length; i++) 
		{
		  if (secteur[i].checked) 
			{
				sect=sect + secteur[i].value + "|";
			}
		}
	
	//Options
	var option = getElementsByName_iefix("input","option[]");
	var opt="";
	for (var i=0; i<option.length; i++) 
		{
		  if (option[i].checked) 
			{
				opt=opt + option[i].value + "|";
			}
		}
	
	$.ajax({
		   type: "GET",
		   cache: false,
		   url: "../../carte-ardeche/recherche.php",
		   data: "activite="+ acti + "&label="+ lab + "&secteur="+ sect + "&options="+ opt +"&lang=" + lang +"&labelobt="+ encodeURIComponent(labelObt),
		   success: function(msg){
				deleteOverlays();
				$("#resultats").empty();
				//alert(msg);
				$("#resultats").append(msg);
				active();
				activeLabel(lang);
				activeOpt(lang);
				//on met à jour le listing si on est en train de l'afficher
				if(($('#listing').is(':visible') ) || ( $('#contact').is(':visible')))
				{
					listing(lang,lastClick);
				}
		   }
		 });
	
	
	
}

function desactive(){
	$("input:checkbox").attr("disabled","disabled");
}

function active(){
	$("input:checkbox").removeAttr("disabled");
}

function activeLabel(lang){
	//on désactive par défaut toutes les checkbox label
	//on recupere et sauvegarde la liste des checkbox qui sont cochées
	var labelChecked= new Array();
	$(".label").each(function(){
	   $(this).parents("div:eq(0)").hide();
	   if ($(this).is(':checked'))
			{
				labelChecked.push($(this).val());
			}
	   });
	//si le tableau des labels à activer est vide on réactive tout
	if (labelsArray.length==0)
		{
			$(".label").each(function(){
			   $(this).parents("div:eq(0)").show();
			});
		}
	else
		{
			//la liste des labels à activer n'est pas vide
			//on parcourt cette liste et on reactive les checkbox correspondantes
			$(".label").each(function(){
					
					for (i in labelsArray)
							{
								//le label doit être affiché
								if (labelsArray[i]==$(this).val())
									{
										//$(this).removeAttr("disabled");
										$(this).parents("div:eq(0)").show();
										
									}
							}
			});
				//on parcourt toutes les checkbox restantes et si elles n'apparraissent pas et sont cochées on les décoche
				var nontrouve=true;//si on trouve un resultat on doit relancer la recherche
				$(".label").not(":visible").each(function(){		
					if ($(this).is(':checked'))
						{
							$(this).attr('checked', false);
							nontrouve=false;
						}
			});
		}
		
	if (nontrouve==false)
		{
			//on relance la recherche
			recherche(lang);	
		}
		
		
}

function activeOpt(lang){
	//on désactive par défaut toutes les checkbox label
	//on recupere et sauvegarde la liste des checkbox qui sont cochées
	var optChecked= new Array();
	$(".option").each(function(){
	   $(this).parents("div:eq(0)").hide();
	   if ($(this).is(':checked'))
			{
				optChecked.push($(this).val());
			}
	   });
	//si le tableau des labels à activer est vide on réactive tout
	
	if (optArray.length==0)
		{
			$(".option").each(function(){
			   $(this).parents("div:eq(0)").show();
			});
		}
	else
		{
			//la liste des labels à activer n'est pas vide
			//on parcourt cette liste et on reactive les checkbox correspondantes
			$(".option").each(function(){
					
					for (i in optArray)
							{
								//le label doit être affiché
								if (optArray[i]==$(this).val())
									{
										//$(this).removeAttr("disabled");
										$(this).parents("div:eq(0)").show();
										
									}
							}
			});
				//on parcourt toutes les checkbox restantes et si elles n'apparraissent pas et sont cochées on les décoche
				var nontrouve=true;//si on trouve un resultat on doit relancer la recherche
				$(".option").not(":visible").each(function(){		
					if ($(this).is(':checked'))
						{
							$(this).attr('checked', false);
							nontrouve=false;
						}
			});
		}
		
	if (nontrouve==false)
		{
			//on relance la recherche
			recherche(lang);	
		}
		
		
}

function selectAll(elem,classe,lang){
	if ($("#"+elem).is(':checked'))
		{
			$("."+classe).attr('checked', true);
			$.tree.focused().open_branch("#"+classe);
			$("."+classe).each(function(){ 
					openTree($(this).attr("id").replace('lbl',''));
			});
		}
	else
		{
			$("."+classe).attr('checked', false);
			//$.tree.focused().close_branch("#"+classe)
		}
	
	recherche(lang);
}

function getElementsByName_iefix(tag, name) {
     
     var elem = document.getElementsByTagName(tag);
     var arr = new Array();
     for(i = 0,iarr = 0; i < elem.length; i++) {
          att = elem[i].getAttribute("name");
          if(att == name) {
               arr[iarr] = elem[i];
               iarr++;
          }
     }
     return arr;
}
//affiche le div de la carte
function afficherCarte(lang){
	$("#listing").hide();
	$("#contact").hide();
	$("#divmap").show();
	$('#inActi').show();
	boolActi = true;

}
//affiche le div du listing
function afficherListing(lang){
	try 
		{
			$('#inActi').hide();
			boolActi = false;	
			$("#contact").hide();
			$("#divmap").hide();
			$("#listing").show();
			listing(lang);
		}
	catch (err){}
}
//affiche le formulaire de contact
function afficherContact(lang){
	$('#inActi').hide();
	boolActi = false;
	$("#listing").hide();
	$("#divmap").hide();
	$("#contact").show();
	//destinataire(lang);
	listing(lang);
}

function trim (myString)
{
return myString.replace(/^\s+/g,'').replace(/\s+$/g,'')
} 

function listing(lang,lastClick){
	if (majListing!=true)
		{
			$("#listing").empty();	
			$("#contact").empty();
			//Activite
			var activite = getElementsByName_iefix("input","activite[]");
			var acti="";
			for (var i=0; i<activite.length; i++) 
				{
				  if (activite[i].checked) 
					{
						acti=acti + activite[i].value + "|";
					}
				}
			//Label
			var label = getElementsByName_iefix("input","label[]");
			var lab="";
			for (var i=0; i<label.length; i++) 
				{
				  if (label[i].checked) 
					{
						lab=lab + label[i].value + "|";
					}
				}
			//label obtenu
			var labelObt = "";
			$(".labelObtenu").each(function(){
			  labelObt += $(this).val()+"|";
			   });
			//Secteur
			var secteur = getElementsByName_iefix("input","secteur[]");
			var sect="";
			for (var i=0; i<secteur.length; i++) 
				{
				  if (secteur[i].checked) 
					{
						sect=sect + secteur[i].value + "|";
					}
				}
			
			//Options
			var option = getElementsByName_iefix("input","option[]");
			var opt="";
			for (var i=0; i<option.length; i++) 
				{
				  if (option[i].checked) 
					{
						opt=opt + option[i].value + "|";
					}
				}
			document.getElementById("loader").style.display='block';
			$.ajax({
				   type: "GET",
				   cache: false,
				   url: "../../carte-ardeche/listing.php",
				   data: "activite="+ acti + "&label="+ lab + "&secteur="+ sect + "&options="+ opt +"&lang=" + lang +"&last=" + lastClick+"&labelobt="+ encodeURIComponent(labelObt),
				   success: function(msg){
						$("#listing").append(msg);
						$("#contact").append($("#forContact"));
						document.getElementById("loader").style.display='none';
				   }
				 });
			majListing=true;
		}
}

function afficherDest(lang){
	//switch lang
	var txt1="";
	var txt2="";
	switch (lang){
		case "fr" :
			var txt1="Afficher tous les destinataires";
			var txt2="Réduire";
			break;
		case "en":
			var txt1="List all recipients";
			var txt2="Zoom out";
			break;
		case "de":
			var txt1="Alle Empfänger anzeigen";
			var txt2="Reduzieren";
			break;
		case "nl":
			var txt1="Alle ontvangers weergeven";
			var txt2="Verkleinen";
			break;
	}
	
	if ($('#lien').text()==txt2)
		{
			$('#lien').text(txt1);
		}
	else
		{
			$('#lien').text(txt2);
		}
}

function verifFormContact(){
	var code = true;
	if ($("#nom").val()=="")
		{
			alert("Merci d'entrer une valeur pour le champ \"Nom\".");
			$("#nom").focus();
			return false;
		}
	if  ($("#prenom").val()=="")
		{
			alert("Merci d'entrer une valeur pour le champ  \"Prénom\".");
			$("#prenom").focus();
			return false;
		}
	if ($("#tel").val()=="")
		{
			alert("Merci d'entrer une valeur pour le champ  \"Téléphone\".");
			$("#tel").focus();
			return false;
		}
	//comparaison des dates
	if (($("#arrive").val()!="")&&($("#arrive").val()!=undefined))
		{
			var today = new Date();
			var myDate=new Date();
			arrive = $("#arrive").val().split('/');
			myDate.setYear(arrive[2]);
			myDate.setMonth(arrive[1]-1);
			myDate.setDate(arrive[0]);
			if (myDate<today)
			  {
			  	alert("La date d'arrivée est inférieure à aujourd'hui");
				return false;
			  }
		}
	if (($("#depart").val()!="")&&($("#depart").val()!=undefined))
		{
			var today = new Date();
			var myDate=new Date();
			depart = $("#depart").val().split('/');
			myDate.setYear(depart[2]);
			myDate.setMonth(depart[1]-1);
			myDate.setDate(depart[0]);
			if (myDate<today)
			  {
			  	alert("La date de depart est inférieure à aujourd'hui");
				return false;
			  }
		}
	if ((($("#arrive").val()!="")&&($("#depart").val()!=""))&&(($("#depart").val()!=undefined)&&($("#arrive").val()!=undefined)))
		{
			arrive=$("#arrive").val().split('/');
			depart=$("#depart").val().split('/');
			var myDateArr=new Date();
			myDateArr.setYear(arrive[2]);
			myDateArr.setMonth(arrive[1]-1);
			myDateArr.setDate(arrive[0]);
			var myDateDep=new Date();
			myDateDep.setYear(depart[2]);
			myDateDep.setMonth(depart[1]-1);
			myDateDep.setDate(depart[0]);
			if (myDateDep<myDateArr)
				{
					alert("La date de départ est inférieure à la date d'arrivée");
					return false;
				}
		}
	
	if ($("#email").val()=="")
		{
			alert("Merci d'entrer une valeur pour le champ  \"E-mail\".");
			$("#email").focus();
			return false;
		}
	else
		{	
			//test du mail
			$.ajax({
				   async: false,
				   type: "GET",
				   url: "../../carte-ardeche/verifmail.php",
				   data: "email="+ $("#email").val(),
				   success: function(msg){
						if (msg=="0")
							{
									alert("Votre adresse mail est incorrecte.");
									$("#email").focus();
									code=false;
							}
				   }
				 });
		}
	if (code==false)
		return false;
	//test code de sécurité
	if ($("#code").val()=="")
		{
			//verification s'il n'est pas vide
			alert("Merci de saisir le mot sur l'image.");
			$("#code").focus();
			return false;
		}
	else
		{
			//vérification si le code est correct
			$.ajax({
				   async: false,
				   cache: false,
				   type: "GET",
				   url: "../../carte-ardeche/verifcode.php",
				   data: "code="+ $("#code").val(),
				   success: function(msg){
						if (msg=="0")
							{
									alert("Le code sécurité est incorrect.");
									//On change le code
									document.images.cryptogram.src='crypt/cryptographp.php?cfg=0&PHPSESSID=3fb2c4d398651695e8fafe1c86dfc6de&'+Math.round(Math.random(0)*1000)+1;
									$("#code").focus();
									code=false;
							}
				   }
				 });
		}
	if (code==false)
		return false
	
	//si on arrive jusque là tout est ok on envoit le mail
	document.getElementById("loader").style.display='block';
	$("#bouton").attr("disabled",true);
	var contact = getElementsByName_iefix("input","contact[]");
	var cont="";
	for (var i=0; i<contact.length; i++) 
		{
		  if (contact[i].checked) 
			{
				cont=cont + contact[i].value + "|";
			}
		}
	
	//Activite
	var activite = getElementsByName_iefix("input","activite[]");
	var acti="";
	for (var i=0; i<activite.length; i++) 
		{
		  if (activite[i].checked) 
			{
				acti=acti + activite[i].value + "|";
			}
		}
				
	//Récupération des valeurs
	try{ code=$("#code").val(); } catch(err){code='';} 
	try{ nom=$("#nom").val(); } catch(err){nom='';} 
	try{ prenom=$("#prenom").val(); } catch(err){prenom='';} 
	try{ adresse=$("#adresse").val(); } catch(err){adresse='';}
	try{ adressesuite=$("#adressesuite").val(); } catch(err){adressesuite='';}
	try{ cp=$("#cp").val(); } catch(err){cp='';}
	try{ ville=$("#ville").val(); } catch(err){ville='';}
	try{ pays=$("#pays").val(); } catch(err){pays='';}
	try{ tel=$("#tel").val(); } catch(err){tel='';}
	try{ email=$("#email").val(); } catch(err){email='';}
	try{ arrive=$("#arrive").val(); } catch(err){arrive='';}
	try{ depart=$("#depart").val(); } catch(err){depart='';}
	try{ nbpers=$("#nbpers").val(); } catch(err){nbpers='';}
	try{ mode=$("#mode").val(); } catch(err){mode='';}
	try{ comm=$("#comm").val(); } catch(err){comm='';}
	try{ news=$("#news").val(); } catch(err){news='';}
	try{ lang=$("#lang").val(); } catch(err){lang='';}
	
	$.ajax({
				   async: false,
				   type: "POST",
				   url: "envoitMail.php",
				   data: "code="+ code 
				   + "&activite="+ acti
				   + "&nom=" + nom 
				   + "&prenom=" + prenom 
				   + "&adresse=" + adresse 
				   + "&adressesuite=" + adressesuite 
				   + "&cp=" + cp 
				   + "&ville=" + ville 
				   + "&pays=" + pays 
				   + "&tel=" + tel 
				   + "&email=" + email
				   + "&arrive=" + arrive
					+ "&depart=" + depart
					+ "&nbpers=" + nbpers
					+ "&mode=" + mode
					+ "&comm=" + comm
					+ "&news=" + news
					+ "&lang=" + lang
					+ "&contact=" + cont,
				   success: function(msg){
						$("#message").empty();
						$("#message").append(msg);
						$("input:text").each(function(){ $(this).val("");});
						$("#comm").val("");
						$("#bouton").removeAttr("disabled");
						document.getElementById("loader").style.display='none';
				   }
				 });
}

//fonction qui coche le label si on choisit une quantité pour ce meme label
function labelObtenu(id,lang){
	id=id.replace('obt-','');
	$(".label").each(function(){
		if ($(this).val()==id)
			$(this).attr('checked',true);
	});
	 recherche(lang);
}

//ouvre l'arbre correspondant s'il existe selon le label choisit
function openTree(id){
	if ($("#lbl"+id).is(':checked'))
		$.tree.focused().open_branch("#"+id);
}

function fullscreen(page){

	$("#selection_carto").attr("action",page);
	$("#selection_carto").submit();
}
/**********************************************************************************/
/**************************GOOGLE MAP *********************************************/

//tableau de label a afficher
var labelsArray= [];
var optArray= [];
//tableau de marker
var markersArray= [];
//booleen permettant de savoir si on a déja mis le listing et formulaire de contact à jour
majListing=false;
function initialize(lang)
{	
	/*try {*/
				var latlng = new google.maps.LatLng(44.82, 4.5);
				var myOptions = {
					zoom: 9,
					center: latlng,
					mapTypeId: google.maps.MapTypeId.ROADMAP,
					navigationControl: true,
					navigationControlOptions: {
						style: google.maps.NavigationControlStyle.ZOOM_PAN,
						position: google.maps.ControlPosition.RIGHT
					},
					
					scrollwheel: false
				};
		
				map = new google.maps.Map(document.getElementById("divmap"), myOptions); 
		
			  //contour France et Ardeche
		 france = new google.maps.Polygon({
				paths: franceCoords,
				strokeColor: "#CC3200",
				strokeOpacity: 1,
				strokeWeight: 2,
				fillColor: "#CC3200",
				fillOpacity:0.18
			  });
			  france.setMap(map);	
			  
			 google.maps.event.addListener(map, 'tilesloaded', function() {  recherche(lang); });
	/*}
	catch (err) {}*/
	  
}
function addMarker(location,titre,icone,shade,message) {
	try {
		  marker = new google.maps.Marker({
			position: location,
			map: map,
			title:titre,
			icon:icone,
			shadow:shade
		  });
		  markersArray.push(marker);
		  attachMessage(marker, message);
		}
	catch (err) {}
}


function deleteOverlays() {
	try {
		  if (markersArray) {
			for (i in markersArray) {
			  markersArray[i].setMap(null);
			}
			markersArray.length = 0;
		  }
		}
	catch (err){}
}

function attachMessage(marker, message) {
	try {
		  var infowindow = new google.maps.InfoWindow(
			  { 
				content: message
			  });
		  google.maps.event.addListener(marker, 'click', function() {
			infowindow.open(map,marker);
		  });
	}
	catch (err) {}
}

