var letableauvideos = undefined;
var letableauvideos2 = undefined;
var tableauglobal = undefined;



// Cette fonction est appelée par la fonction verifformulaire() de la page verifFormulaire.js
// Cette fonction vérifie la validité de tous les champs du formulaire de recherche de la page index.php
// puis si tout est OK, on effectue la recherche.
function verifcriteresrecherche(latitude, longitude){
	//récupération des valeurs de chaque champs du formulaire de recherche et tests pour vérifier leurs valeurs et leurs formats
	// type d'achat
	
	tableaupages = new Array();
	if(!isdefined(map)) document.getElementById('resultatsminisvideos').innerHTML = "";
	if(!isdefined(map)) document.getElementById('lienspagessminisvideos').innerHTML = "";
	supprimerlesmarqueurs();
	var typeachat = document.getElementById('typeachat').value;
	
	// région
	var selectRegion = document.getElementById('selectRegion');
	var noregion = selectRegion.options[selectRegion.selectedIndex].value;
	
	// departement
	if (document.getElementById('selectDepartement')){
		var selectDepartement = document.getElementById('selectDepartement');
		var nodepartement = selectDepartement.options[selectDepartement.selectedIndex].value;
		if (nodepartement == "-1"){
			nodepartement = "";
		}
	}else{
		var nodepartement = "";
	}
	
	// ville
	if (document.getElementById('ville')){
		var ville = document.getElementById('ville').value;
		if (ville == "Ville"){
			ville = "";
		}
		verifville();
	}else{
		var ville = "";
	}
	
	// distance
	if (document.getElementById('km')){
		var distance = parseInt(document.getElementById('km').value);
		if (isNaN(distance)){
			distance = "";
		}
		if (distance > 200){
			distance = 200;
		}
	}else{
		var distance = "";
	}
	
	// type(s) de annonce
	var listetypesannonce = document.getElementById("critereAucentre").getElementsByTagName("input");
	var envoit = '';
	for (i=0;i<listetypesannonce.length;i++){
		idtypeannonce = listetypesannonce[i].value;
		if(envoit==''){
			if (listetypesannonce[i].checked == true){
				envoit = idtypeannonce;
			}
		}else{
			if (listetypesannonce[i].checked == true){
				envoit = envoit + "\/" + idtypeannonce;
			}
		}
	}
	
	// prix min et max
	var budgetMin = parseInt(document.getElementById("champBudgetMin").value); // on transforme la valeur du champBudgetMin en entier
	var budgetMax = parseInt(document.getElementById("champBudgetMax").value); // on transforme la valeur du champBudgetMax en entier
	if (isNaN(budgetMin) || (budgetMin < 0) || (budgetMin > 10000000000000)){ // si le budget minimum sasisi n'est pas un nombre ou n'est pas compris entre 0 et 10000000000000, alors on l'initialise à ""
		budgetMin = "";
	}
	if (isNaN(budgetMax) || (budgetMax > 10000000000000) || (budgetMax < 0)){ // si le budget maximum saisi n'est pas un nombre ou n'est pas compris entre 0 et 10000000000000, alors on l'initialise à ""
		budgetMax = "";
	}
	if ((budgetMin != "") && (budgetMax != "") && (budgetMin > budgetMax)){ // si le budget minimum est supérieur au budget maximum, alors on inverse les deux valeurs
		var budgettmp = budgetMin;
		budgetMin = budgetMax;
		budgetMax = budgettmp;
	}
	
	// surface min et max
	var surfaceMin = parseInt(document.getElementById("champSurfaceMin").value); // on transforme la valeur du champSurfaceMin en entier
	var surfaceMax = parseInt(document.getElementById("champSurfaceMax").value); // on transforme la valeur du champSurfaceMax en entier
	if (isNaN(surfaceMin) || (surfaceMin < 0) || (surfaceMin > 100000000)){ // si la surface minimum saisie n'est pas un nombre ou n'est pas compris entre 0 et 100000000, alors on l'initialise à ""
		surfaceMin = "";
	}
	if (isNaN(surfaceMax) || (surfaceMax > 100000000) || (surfaceMax < 0)){ // si la surface maximum saisie n'est pas un nombre ou n'est pas compris entre 0 et 100000000, alors on l'initialise à ""
		surfaceMax = "";
	}
	if ((surfaceMin != "") && (surfaceMax != "") && (surfaceMin > surfaceMax)){ // si la surface minimum est supérieure à la surface maximum, alors on inverse les deux valeurs
		var surfacetmp = surfaceMin;
		surfaceMin = surfaceMax;
		surfaceMax = surfacetmp;
	}
	
	// nombre de pieces
	var nbPieces = parseInt(document.getElementById("champNbPieces").value);
	if (isNaN(nbPieces)){ // si le nombre de pièces saisi n'est pas un nombre, alors on l'initialise a ""
		nbPieces = "";
	}
	
	// date de parution
	var date = parseInt(document.getElementById("champDate").value);
	if (isNaN(date)){ // si la date (nombre de jour) saisie n'est pas un nombre, on l'initialise a ""
		date = "";
	}
	// On effectue la recherche
	
	var tableauvideostemp = new Array();
	var xhr = getXhr();
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){ 
		
			var reponse = xhr.responseText;		
			if(reponse && reponse != ''){
				var nb = reponse;
				if(!isdefined(map)){ // Séparation de la liste de réponse et de la carto
					chargerlistepages(nb);
				}else{
					chargercarte();
				}
			}
				
		}
	};

	xhr.open("POST","../fonctions/voirnbvideos.php",true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send("typerecherche=boutonrecherche&typeachat="+typeachat+"&region="+noregion+"&departement="+nodepartement+"&ville="+ville+"&distance="+distance+"&typesannonce="+envoit+"&prixmin="+budgetMin+"&prixmax="+budgetMax+"&surfacemin="+surfaceMin+"&surfacemax="+surfaceMax+"&nbpieces="+nbPieces+"&date="+date);
	
}



// verifcriteresrecherche_onload()
// Cette fonction est appelée lors du chargement de la page index.php quand une recherche avait déjà été faite
// Cette fonction appelle le programme voirnbvideos.php qui récupère dans la base de donnees le nombre d'annonces correspondant aux valeurs des variables de session de recherche.
// Appelle ensuite chargerlistepages qui charge le mur de vidéos, puis chargercarte qui charge la carte
function verifcriteresrecherche_onload(){
	
	tableau_pages = new Array();
	var tableauvideosonload = new Array();
	var xhr = getXhr();
	supprimerlesmarqueurs();

	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){ 
		
			var reponse = xhr.responseText;
			if(reponse && reponse != ''){
				var nb = reponse;
				
				if(!isdefined(map)){ // Séparation de la liste de réponse et de la carto
					chargerlistepages(nb);
				}else{
					chargercarte();
					
				}
			}
				
		}
	};

	xhr.open("POST","../fonctions/voirnbvideos.php",true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send("typerecherche=onload");
}

/*
	sleep(naptime)
	permet de faire une poste de naptime secondes avant de continuer le déroulement du programme
*/
    function sleep(naptime,b){
         naptime = naptime * 1000;
         /*var sleeping = true;
         var now = new Date();
         var alarm;
         var startingMSeconds = now.getTime();
         while(sleeping){
             alarm = new Date();
             alarmMSeconds = alarm.getTime();
             if(alarmMSeconds - startingMSeconds > naptime){ sleeping = false; }
         }*/
		 
		 if(b == true){
			setTimeout("sleep("+naptime+",false)",naptime);
		 }
		 
		 
     }


/*
	chargervideospage(lacase)
	récupère en BDD, puis affiche les annonces correspondant à la page numéro lacase du mur de vidéos
*/ 
function chargervideospage(lacase){
	/*while(!isdefined(document.getElementById('typeachat')) || (document.getElementById('typeachat') == null) || !isdefined(document.getElementById('typeachat').value)){
		sleep(2,true);
	}*/
		var typeachat = document.getElementById('typeachat').value;
	// région
	var selectRegion = document.getElementById('selectRegion');
	var noregion = selectRegion.options[selectRegion.selectedIndex].value;
	
	// departement
	if (document.getElementById('selectDepartement')){
		var selectDepartement = document.getElementById('selectDepartement');
		var nodepartement = selectDepartement.options[selectDepartement.selectedIndex].value;
		if (nodepartement == "-1"){
			nodepartement = "";
		}
	}else{
		var nodepartement = "";
	}
	
	// ville
	if (document.getElementById('ville')){
		var ville = document.getElementById('ville').value;
		if (ville == "Ville"){
			ville = "";
		}
		verifville();
	}else{
		var ville = "";
	}
	
	// distance
	if (document.getElementById('km')){
		var distance = parseInt(document.getElementById('km').value);
		if (isNaN(distance)){
			distance = "";
		}
		if (distance > 200){
			distance = 200;
		}
	}else{
		var distance = "";
	}
	
	// type(s) de annonce
	var listetypesannonce = document.getElementById("critereAucentre").getElementsByTagName("input");
	var envoit = '';
	for (i=0;i<listetypesannonce.length;i++){
		idtypeannonce = listetypesannonce[i].value;
		if(envoit==''){
			if (listetypesannonce[i].checked == true){
				envoit = idtypeannonce;
			}
		}else{
			if (listetypesannonce[i].checked == true){
				envoit = envoit + "\/" + idtypeannonce;
			}
		}
	}
	
	// prix min et max
	var budgetMin = parseInt(document.getElementById("champBudgetMin").value); // on transforme la valeur du champBudgetMin en entier
	var budgetMax = parseInt(document.getElementById("champBudgetMax").value); // on transforme la valeur du champBudgetMax en entier
	if (isNaN(budgetMin) || (budgetMin < 0) || (budgetMin > 10000000000000)){ // si le budget minimum sasisi n'est pas un nombre ou n'est pas compris entre 0 et 10000000000000, alors on l'initialise à ""
		budgetMin = "";
	}
	if (isNaN(budgetMax) || (budgetMax > 10000000000000) || (budgetMax < 0)){ // si le budget maximum saisi n'est pas un nombre ou n'est pas compris entre 0 et 10000000000000, alors on l'initialise à ""
		budgetMax = "";
	}
	if ((budgetMin != "") && (budgetMax != "") && (budgetMin > budgetMax)){ // si le budget minimum est supérieur au budget maximum, alors on inverse les deux valeurs
		var budgettmp = budgetMin;
		budgetMin = budgetMax;
		budgetMax = budgettmp;
	}
	
	// surface min et max
	var surfaceMin = parseInt(document.getElementById("champSurfaceMin").value); // on transforme la valeur du champSurfaceMin en entier
	var surfaceMax = parseInt(document.getElementById("champSurfaceMax").value); // on transforme la valeur du champSurfaceMax en entier
	if (isNaN(surfaceMin) || (surfaceMin < 0) || (surfaceMin > 100000000)){ // si la surface minimum saisie n'est pas un nombre ou n'est pas compris entre 0 et 100000000, alors on l'initialise à ""
		surfaceMin = "";
	}
	if (isNaN(surfaceMax) || (surfaceMax > 100000000) || (surfaceMax < 0)){ // si la surface maximum saisie n'est pas un nombre ou n'est pas compris entre 0 et 100000000, alors on l'initialise à ""
		surfaceMax = "";
	}
	if ((surfaceMin != "") && (surfaceMax != "") && (surfaceMin > surfaceMax)){ // si la surface minimum est supérieure à la surface maximum, alors on inverse les deux valeurs
		var surfacetmp = surfaceMin;
		surfaceMin = surfaceMax;
		surfaceMax = surfacetmp;
	}
	
	// nombre de pieces
	var nbPieces = parseInt(document.getElementById("champNbPieces").value);
	if (isNaN(nbPieces)){ // si le nombre de pièces saisi n'est pas un nombre, alors on l'initialise a ""
		nbPieces = "";
	}
	
	// date de parution
	var date = parseInt(document.getElementById("champDate").value);
	if (isNaN(date)){ // si la date (nombre de jour) saisie n'est pas un nombre, on l'initialise a ""
		date = "";
	}
	// On effectue la recherche
	
	var tableauvideostemp = new Array();
	var xhr = getXhr();
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){ 
		
			var reponse = xhr.responseText;

			if(reponse && reponse != ''){
				if(reponse == -2){ // si reponse = -2 alors la ville saisie est inexistante
					
					document.getElementById('nbresultats').innerHTML = aucun_annonce_recherche;
					document.getElementById("resultatsminisvideos").innerHTML = "";
					document.getElementById("lienspagessminisvideos").innerHTML = "";
					alert('Ville inexistante');
					
				}else{ // sinon on traite la réponse
					
					tableau_pages = new Array();
					if(ville != ""){ // si une ville a été saisie, on récupère la latitude et longitude de la ville pour centrer la carte sur cette ville
					
						var result = reponse.split('¤');
						var latitude = result[0];
						var longitude = result[1];
						
						// on centre la carte sur la ville saisie avec un zoom dépendant de la distance
						if(isdefined(map)) centrersurville(latitude, longitude, distance);
						
						if(distance != ""){
							// on affiche un cercle autour de la ville saisie ayant pour rayon la distance saisie
							if(isdefined(map)) dessineUnCercle(latitude, longitude, distance);
						}
						
						reponse = result[2];
					}
					
					var tableau=reponse.split('µ');
					
					if(tableau[1] == '-1'){ // si c'est égale à -1 cela signifie qu'il n'y a pas de résultats
					
						document.getElementById('nbresultats').innerHTML = aucun_annonce_recherche;
						document.getElementById("resultatsminisvideos").innerHTML = "";
						document.getElementById("lienspagessminisvideos").innerHTML = "";
						
					}else{
						var tableauvideospage =new Array();
						for(i=0;i<tableau.length;i++){ // pour chaque annonce du tableau on l'ajoute au tableau qui va etre envoyé à la fonction tratementdelistevideos qui va ajouter les marqueurs sur la carte

							var tableau2=tableau[i].split('§');
							
							tableauvideospage[i]=new Array();
							tableauvideospage[i]['noannonce']=tableau2[0];
							tableauvideospage[i]['lien']=tableau2[1];
							tableauvideospage[i]['latitude']=tableau2[2];
							tableauvideospage[i]['longitude']=tableau2[3];
							tableauvideospage[i]['typevendeur']=tableau2[4];
							tableauvideospage[i]['playervideo']=tableau2[5];
							tableauvideospage[i]['diaporama']=tableau2[6];
							tableauvideospage[i]['texte']=tableau2[7];

						}
						chargercase2(tableauvideospage,lacase)
					}
				}
				
			}else{ // sinon il n'y a pas de résultat
			
				document.getElementById('nbresultats').innerHTML = aucun_annonce_recherche;
				document.getElementById("resultatsminisvideos").innerHTML = "";
				document.getElementById("lienspagessminisvideos").innerHTML = "";
				
			}
		}
	};
	numerodepart = lacase * taillemax;
	xhr.open("POST","../fonctions/voirlistevideos.php",true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send("typerecherche=boutonrecherche&typeachat="+typeachat+"&region="+noregion+"&departement="+nodepartement+"&ville="+ville+"&distance="+distance+"&typesannonce="+envoit+"&prixmin="+budgetMin+"&prixmax="+budgetMax+"&surfacemin="+surfaceMin+"&surfacemax="+surfaceMax+"&nbpieces="+nbPieces+"&date="+date+"&numerodepart="+numerodepart);
	
}

/*
	chargercarte
	centre la carte selon les paramètres de session actuels
		si ville renseignée, centre dessus, sinon sur département si renseigné, sinon sur région

*/
function chargercarte(){
	var xhr = getXhr();
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){ 
		
			var reponse = xhr.responseText;
			if(reponse && reponse != ''){
				var nb = reponse;
				var tableau=reponse.split('µ');
				var latitude = tableau[0];
				var longitude = tableau[1];
				var zoom = tableau[2];
				map.setCenter(new GLatLng(latitude, longitude),  parseInt(zoom));
			}
				
		}
	};

	xhr.open("POST","../fonctions/chargercarteselonsession.php",true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send('');

}


