var httpRequest; // variable for posting information
var reponse;
var page_courante = 1;
var nb_pages = 1;
var nb_elements = 0;

function loadXMLPosDocAchat(url,posData) 
{
    // reinit 
	page_courante = 1;
	nb_elements = 0;
	document.getElementById("resultatsRechercheAchat").style.display = "none";
	document.getElementById("acces_aux_biens").style.display = "none"; // "Acces aux biens" disparait
	document.getElementById("ficheAchat").style.display = "none"; // Fiche achat disparait
	document.getElementById("compteur").style.display = "none"; // le compteur disparait
	
	// branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        httpRequest = new XMLHttpRequest();
        httpRequest.onreadystatechange = processPosChangeAchat;
        httpRequest.open("POST", url, true);
		httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        httpRequest.send(posData);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
        if (httpRequest) {
            httpRequest.onreadystatechange = processPosChangeAchat;
            httpRequest.open("POST", url, true);
			httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            httpRequest.send(posData);
        }
    }
}


function grabPosXMLAchat (tagName, index) 
{
	return reponse.getElementsByTagName(tagName)[index].childNodes[0].nodeValue;
}


// Node cleaner
function go(c)
{
	if(!c.data.replace(/\s/g,''))
		c.parentNode.removeChild(c);
}

function clean(d)
{
	var bal=d.getElementsByTagName('*');

	for(i=0;i<bal.length;i++)
	{
		a=bal[i].previousSibling;
		if(a && a.nodeType==3)
			go(a);
		b=bal[i].nextSibling;
		if(b && b.nodeType==3)
			go(b);
	}
	return d;
} 




// traitement de la réponse du serveur
function processPosChangeAchat() 
{
	
	
	// le serveur a fini de transmettre les résultats
    if (httpRequest.readyState == 4) 
	{
       
	   // la page est "OK"
        if (httpRequest.status == 200) 
		{
			reponse = clean(httpRequest.responseXML.documentElement); 
			nb_elements = reponse.getElementsByTagName("ref").length;
			nb_pages = Math.ceil(nb_elements / 3);
			//alert ("nombre d'elements = " + nb_elements);
			//alert ("nombre de pages = " + nb_pages);
			document.getElementById("loadBarAchat").style.display = "none"; // la barre de progression disparait
			
			if (nb_elements == 0)
			{
				document.getElementById("resultatsRechercheAchat").style.display = "none";
				$("#no_result").fadeIn(500);
			}
			else
	    	{
				document.getElementById("no_result").style.display = "none";
				$("#acces_aux_biens").fadeIn(500); // "Acces aux biens" apparait
				// recupération et affichage des données 
				remplirPage(1);
				afficherCompteur();
				//$("#compteur").fadeIn(500);
			}
			
		}
	}
}



// formattage des donnes pour la page a afficher
function remplirPage(page_number)
{
	
	var divResPhoto1 = document.getElementById('resultsPhoto1');
	var divResTexte1 = document.getElementById('resultsTexte1');
	
	var divResPhoto2 = document.getElementById('resultsPhoto2');
	var divResTexte2 = document.getElementById('resultsTexte2');
	var ligne2 = document.getElementById('resultsLigne2');
	var divResPhoto3 = document.getElementById('resultsPhoto3');
	var divResTexte3 = document.getElementById('resultsTexte3');
	
	var pageRes =document.getElementById('resultatsRechercheAchat');
	
	if( page_number > nb_pages)
		 alert("Cette page n'existe pas (page_number > nb_pages) !"); // DEBUG
	else
	{
		var n=1; // compteur d'une nombre d'élément qu'on remplit sur cette page
		var index = (page_number - 1) * 3;
		
		pageRes.style.display = "none";
		
		// remplir le 1er élément
		var ref = grabPosXMLAchat("ref", index);
		var dossierPhoto = ref.replace("-","_"); 
		divResPhoto1.innerHTML = "<div style='background:url(photos/" + dossierPhoto + "/" + grabPosXMLAchat("photo1", index) + "); display:block; width:198px; height:150px;'></div>";      
		divResTexte1.innerHTML =  "<b>R&eacute;f.: </b>" + ref + " | <a href='javascript:;' onClick=\"voirFiche(" + index + ");\"> Voir la fiche</a><br /><br />";
		divResTexte1.innerHTML +=  "<b>Descriptif du bien</b><br /><br />";
		divResTexte1.innerHTML +=  grabPosXMLAchat("localisation", index) + " - " + grabPosXMLAchat("minidescription", index) + "<br /><br />";
		divResTexte1.innerHTML +=  "<b>Prix :</b> " + grabPosXMLAchat("prix", index) + "&euro; <b>FAI</b>";
		index++;
		// remplir le 2e élément
		if(index < nb_elements)
		{
			n++; 
			ref = grabPosXMLAchat("ref", index);	
			dossierPhoto = ref.replace("-","_");
			divResPhoto2.innerHTML = "<div style='background:url(photos/" + dossierPhoto + "/" + grabPosXMLAchat("photo1", index) + "); display:block; width:198px; height:150px;'></div>"; 
			divResTexte2.innerHTML =  "<b>R&eacute;f.: </b>" + ref + " | <a href='javascript:;' onClick=\"voirFiche(" + index + ");\"> Voir la fiche</a><br /><br />";
			divResTexte2.innerHTML +=  "<b>Descriptif du bien</b><br /><br />";
			divResTexte2.innerHTML +=  grabPosXMLAchat("localisation", index) + " - " + grabPosXMLAchat("minidescription", index) + "<br /><br />";
			divResTexte2.innerHTML +=  "<b>Prix :</b> " + grabPosXMLAchat("prix", index) + "&euro; <b>FAI</b>";	
			index++;
			// remplir le 3e élément
			if(index < nb_elements)
			{
				n++;
				ref = grabPosXMLAchat("ref", index);	
				dossierPhoto = ref.replace("-","_");
				divResPhoto3.innerHTML = "<div style='background:url(photos/" + dossierPhoto + "/" + grabPosXMLAchat("photo1", index) + "); display:block; width:198px; height:150px;'></div>"; 
				divResTexte3.innerHTML =  "<b>R&eacute;f.: </b>" + ref + " | <a href='javascript:;' onClick=\"voirFiche(" + index + ");\"> Voir la fiche</a><br /><br />";
				divResTexte3.innerHTML +=  "<b>Descriptif du bien</b><br /><br />";
				divResTexte3.innerHTML +=  grabPosXMLAchat("localisation", index) + " - " + grabPosXMLAchat("minidescription", index) + "<br /><br />";
				divResTexte3.innerHTML +=  "<b>Prix :</b> " + grabPosXMLAchat("prix", index) + "&euro; <b>FAI</b>";	
			}
			else // effacer 3ieme éléments
			{
				divResPhoto3.innerHTML = ""; 
				divResTexte3.innerHTML = "";
			}		
		}
		else // effacer 2 et 3ieme éléments
		{
			divResPhoto2.innerHTML = ""; 
			divResTexte2.innerHTML = "";
			divResPhoto3.innerHTML = ""; 
			divResTexte3.innerHTML = "";
		}
		// affichage de la nouvelle page
		$("#resultatsRechercheAchat").fadeIn(500);
		// affichage des lignes de démarcation entre les éléments
		$("#resultsLigne1").fadeIn(500);
		if (n > 1) $("#resultsLigne2").fadeIn(500);
		else ligne2.style.display = "none";
		
		document.getElementById("loadBarAchat").style.display = "none"; // la barre de progression disparait
		
	}
	
}






// Création du compteur en fonction du nombre de pages
function afficherCompteur()
{
	
	var divCompteur = document.getElementById('compteur');
	
	if(nb_pages > 1)
	{			
		var liste_pages = "<li class='pagination' id='page1' style='background-color:#d5da45;'><a href='javascript:;' onClick='goToPage(1);' id='nPage1' style='color:#FFF;'>1</a></li>"
		for (i =2; i<= nb_pages; i++) // créer une puce pour chaque numéro de page
		{
			liste_pages += "<li class='pagination' id='page" + i +"' style='background-color:#FFF;'><a href='javascript:;' onClick='goToPage(" + i + ");' id='nPage" + i +"' style='color:#3c3a3c;'>" + i + "</a></li>";	
		}
		
		divCompteur.innerHTML = "<ul class='pagination'>" +
								"<li class='pagination' style='background-color:#FFF;'><a href='javascript:;' onClick='goToPage(1);' style='color:#3c3a3c;'>| <</a></li>" +     				// aller a la page 1 
								"<li class='pagination' style='background-color:#FFF;'><a href='javascript:;' onClick='previousPage();' style='color:#3c3a3c;'><<</a></li>" +   				// aller a la page précédente
								liste_pages +																							// liste de toutes les pages
								"<li class='pagination' style='background-color:#FFF;'><a href='javascript:;' onClick=\"nextPage();\" style='color:#3c3a3c;'>>></a></li>" +					// aller a la page suivante
								"<li class='pagination' style='background-color:#FFF;'><a href='javascript:;' onClick=\"goToPage(" + nb_pages + ");\" style='color:#3c3a3c;'>> |</a></li>" +	// aller a la derniere page
								"</ul>";
							
	}
	else
	{
	
		divCompteur.innerHTML = "";
	
	}
	
	$("#compteur").fadeIn(500);	
								
	
}



// fait afficher la page num_page
function goToPage(num_page)
{
	if (num_page != page_courante)
	{
		var puce_active = document.getElementById('page' + page_courante);
		var npuce_active = document.getElementById('nPage' + page_courante);
		puce_active.style.backgroundColor = "#FFF";
		npuce_active.style.color = "#3c3a3c";
		remplirPage(num_page);
		page_courante = num_page;
		puce_active = document.getElementById('page' + page_courante);
		npuce_active = document.getElementById('nPage' + page_courante);
		puce_active.style.backgroundColor = "#d5da45";
		npuce_active.style.color = "#FFF";
	}		
}

// fait afficher la page précédente
function previousPage()
{
	if( page_courante - 1 >= 1)
	{	
		var puce_active = document.getElementById('page' + page_courante);
		var npuce_active = document.getElementById('nPage' + page_courante);
		puce_active.style.backgroundColor = "#FFF";
		npuce_active.style.color = "#3c3a3c";
		page_courante -- ;
		remplirPage(page_courante);
		puce_active = document.getElementById('page' + page_courante);
		npuce_active = document.getElementById('nPage' + page_courante);
		puce_active.style.backgroundColor = "#d5da45";
		npuce_active.style.color = "#FFF";
	}
}


// fait afficher la page suivante
function nextPage()
{
	if( page_courante + 1 <= nb_pages)
	{	
		var puce_active = document.getElementById('page' + page_courante);
		var npuce_active = document.getElementById('nPage' + page_courante);
		puce_active.style.backgroundColor = "#FFF";
		npuce_active.style.color = "#3c3a3c";
		page_courante ++;
		remplirPage(page_courante);
		puce_active = document.getElementById('page' + page_courante);
		npuce_active = document.getElementById('nPage' + page_courante);
		puce_active.style.backgroundColor = "#d5da45";
		npuce_active.style.color = "#FFF";
	}
}


// reaaffiche la page courante des résultats de recherche
function retourPageRecherche()
{
	document.getElementById("ficheAchat").style.display = "none";
	$("#resultatsRechercheAchat").fadeIn(500);
	$("#acces_aux_biens").fadeIn(500);
	$("#compteur").fadeIn(500);
}





// cache la page de résultats de la recherche, remplit la fiche achat et la montre
function voirFiche(index)
{
	var lienRetour = document.getElementById('retour_results');
    var fichePhoto1 = document.getElementById('fichePhoto1');                            
	var fichePhoto2 = document.getElementById('fichePhoto2'); 
	var fichePhoto3 = document.getElementById('fichePhoto3'); 
	var ficheTexte = document.getElementById('ficheTexte');							
	

	
	// cacher la page des résultats
	document.getElementById("resultatsRechercheAchat").style.display = "none";
	document.getElementById("compteur").style.display = "none";
	document.getElementById("acces_aux_biens").style.display = "none"; // "Acces aux biens" disparait
	// remplir la fiche
	lienRetour.innerHTML = "<a href='javascript:;' onClick='retourPageRecherche()';>< Retour</a>";
	
	var ref = grabPosXMLAchat("ref", index);
	var dossierPhoto = ref.replace("-","_"); 
	fichePhoto1.innerHTML = "<div style='background:url(photos/" + dossierPhoto + "/" + grabPosXMLAchat("photo1", index) + "); display:block; width:198px; height:150px;'></div>";
	fichePhoto2.innerHTML = "<div style='background:url(photos/" + dossierPhoto + "/" + grabPosXMLAchat("photo2", index) + "); display:block; width:198px; height:150px;'></div>";  
	fichePhoto3.innerHTML = "<div style='background:url(photos/" + dossierPhoto + "/" + grabPosXMLAchat("photo3", index) + "); display:block; width:198px; height:150px;'></div>";  
	ficheTexte.innerHTML =  "<b>R&eacute;f.: </b>" + ref + " | <a href='javascript:;' onClick='retourPageRecherche()';> Retour aux crit&egrave;res</a><br /><br /><br /><br /><br />";
	var desc = grabPosXMLAchat("description", index).replace(/\n/g,'<br/>');
	ficheTexte.innerHTML +=  desc + "<br /><br />";
	ficheTexte.innerHTML +=  "<b>Prix FAI</b><br /> " + grabPosXMLAchat("prix", index) + " &euro;<br /><br />";
	ficheTexte.innerHTML +=  "<b>Localisation</b><br /> " + grabPosXMLAchat("localisation", index);
	
	// montrer la fiche
	$("#ficheAchat").fadeIn(500);
	
}



// reset du champ localisation quand on clic dessus avec la souris
function focusLocalisation()
{ 
	document.getElementById('localisation_achat').value='';
}

