var nombre_cache = 0;

/**
 * calculerCache()
 * 
 * Permet de "modifier" l'url pour éviter la mise en cache d'IE
 */
function calculerCache(){
	nombre_cache++;
	
	krucial = new Date;
	heure = krucial.getHours();
	min = krucial.getMinutes();
	sec = krucial.getSeconds();
	
	retour = heure + "" + min + "" + sec + "" + nombre_cache;
	
	return retour;
}

// Va créer un objet Ajax:
function createAjax(){
	var xhr = null;
	
	if(window.XMLHttpRequest){
	   xhr = new XMLHttpRequest(); 
	}
	else if(window.ActiveXObject){
	   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 Ajax, veuillez le mettre à jour"); 
	   xhr = false; 
	} 
	
	return xhr;
}

// 2 fonctions servant de cleaner AJAX:
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;
}

function updateAffichageLiensNavigation(action){
	if(action == 0){
		// document.getElementById('lienBackCategoriesGenerales').style.visibility = 'hidden';
		document.getElementById('lienBackCategories').style.visibility = 'hidden';
		document.getElementById('lienBackEntreprises').style.visibility = 'hidden';
		
		document.getElementById('raquo_categorie_generale').style.visibility = 'hidden';
		document.getElementById('raquo_categorie').style.visibility = 'hidden';
	} else if(action == 1){
		// document.getElementById('lienBackCategoriesGenerales').style.visibility = 'visible';
		document.getElementById('lienBackCategories').style.visibility = 'hidden';
		document.getElementById('lienBackEntreprises').style.visibility = 'hidden';
		
		document.getElementById('raquo_categorie_generale').style.visibility = 'visible';
		document.getElementById('raquo_categorie').style.visibility = 'hidden';
	} else if(action == 2) {
		// document.getElementById('lienBackCategoriesGenerales').style.visibility = 'visible';
		document.getElementById('lienBackCategories').style.visibility = 'visible';
		document.getElementById('lienBackEntreprises').style.visibility = 'hidden';
		
		document.getElementById('raquo_categorie_generale').style.visibility = 'visible';
		document.getElementById('raquo_categorie').style.visibility = 'visible';
	} else if(action == 3) {
		// document.getElementById('lienBackCategoriesGenerales').style.visibility = 'visible';
		document.getElementById('lienBackCategories').style.visibility = 'visible';
		document.getElementById('lienBackEntreprises').style.visibility = 'visible';
	}
	
	if(document.getElementById('zone_resultats_recherche')){
		document.getElementById('zone_resultats_recherche').style.display = 'none';
	}
	
	document.getElementById('texteCheminRecherche').innerHTML = '';
}

function consultationSetViewByTrailer(action){
	if(action == 1){
		// document.getElementById('liste_categories_generales').style.display = 'block';
		document.getElementById('liste_categories').style.display = 'block';
		document.getElementById('liste_entreprises').style.display = 'none';
		document.getElementById('detail_entreprise').style.display = 'none';
		
		updateAffichageLiensNavigation(0);
	} else if(action == 2){
		// document.getElementById('liste_categories_generales').style.display = 'none';
		document.getElementById('liste_categories').style.display = 'block';
		document.getElementById('liste_entreprises').style.display = 'none';
		document.getElementById('detail_entreprise').style.display = 'none';
		
		updateAffichageLiensNavigation(1);
	} else if(action == 3){
		// document.getElementById('liste_categories_generales').style.display = 'none';
		document.getElementById('liste_categories').style.display = 'none';
		document.getElementById('liste_entreprises').style.display = 'block';
		document.getElementById('detail_entreprise').style.display = 'none';
		
		updateAffichageLiensNavigation(2);
	} else if(action == 4){
		// document.getElementById('liste_categories_generales').style.display = 'none';
		document.getElementById('liste_categories').style.display = 'none';
		document.getElementById('liste_entreprises').style.display = 'none';
		document.getElementById('detail_entreprise').style.display = 'block';
		
		updateAffichageLiensNavigation(3);
	}
}

function consultationCategories(id_categorie_mere, nom_categorie_mere){
	var xhr = createAjax();
	
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){
			var reponse = clean(xhr.responseXML.documentElement);
			
			document.getElementById('consultation_liste_categories').innerHTML = reponse.getElementsByTagName('reponse')[0].firstChild.nodeValue;
			
			document.getElementById('texte_lien_back_categories_generales').innerHTML = nom_categorie_mere;
			updateAffichageLiensNavigation(1);
			
			// document.getElementById('liste_categories_generales').style.display = 'none';
			document.getElementById('liste_categories').style.display = 'block';
			document.getElementById('liste_entreprises').style.display = 'none';
			document.getElementById('detail_entreprise').style.display = 'none';
		}
	}
	
	var nombre = calculerCache();
	
	xhr.open('POST', '../includes/modules/annuaire/getCategories.php', true);
	xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	xhr.send('id='+id_categorie_mere+'&cache='+nombre);
}

function getListeEntreprises(id_categorie, nom_categorie){
	var xhr = createAjax();
	
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){
			var reponse = clean(xhr.responseXML.documentElement);
			
			document.getElementById('consultation_liste_entreprises').innerHTML = reponse.getElementsByTagName('contenu')[0].firstChild.nodeValue;
			
			document.getElementById('texte_lien_back_categories').innerHTML = nom_categorie;
			updateAffichageLiensNavigation(2);
			
			// document.getElementById('liste_categories_generales').style.display = 'none';
			document.getElementById('liste_categories').style.display = 'none';
			document.getElementById('liste_entreprises').style.display = 'block';
			document.getElementById('detail_entreprise').style.display = 'none';
		}
	}
	
	var nombre = calculerCache();
	
	xhr.open('POST', '../includes/modules/annuaire/getListeEntreprises.php', true);
	xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	xhr.send('id='+id_categorie+'&cache='+nombre);
}

function getEntreprise(id_entreprise, nom_entreprise){
	var xhr = createAjax();
	
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){
			var reponse = clean(xhr.responseXML.documentElement);
			document.getElementById('nom').innerHTML = reponse.getElementsByTagName('nom')[0].firstChild.nodeValue;
			document.getElementById('adresse').innerHTML = reponse.getElementsByTagName('adresse')[0].firstChild.nodeValue;
			document.getElementById('telephone').innerHTML = reponse.getElementsByTagName('telephone')[0].firstChild.nodeValue;
			document.getElementById('telecopie').innerHTML = reponse.getElementsByTagName('telecopie')[0].firstChild.nodeValue;
			document.getElementById('mobile').innerHTML = reponse.getElementsByTagName('mobile')[0].firstChild.nodeValue;
			document.getElementById('email').innerHTML = reponse.getElementsByTagName('email')[0].firstChild.nodeValue;
			document.getElementById('site').innerHTML = reponse.getElementsByTagName('site')[0].firstChild.nodeValue;
			
			document.getElementById('lienBackEntreprises').innerHTML = nom_entreprise;
			updateAffichageLiensNavigation(3);
			
			document.getElementById('liste_categories').style.display = 'none';
			document.getElementById('liste_entreprises').style.display = 'none';
			document.getElementById('detail_entreprise').style.display = 'block';
			document.getElementById('divLienBackMoteurRecherche').style.display = 'none';
		}
	}
	
	var nombre = calculerCache();
	
	xhr.open('POST', '../includes/modules/annuaire/getEntreprise.php', true);
	xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	xhr.send('id='+id_entreprise+'&cache='+nombre);
	
	document.getElementById('texteCheminRecherche').innerHTML = '';
}

function getEntrepriseFromSearch(id_entreprise, nom_entreprise){
	var xhr = createAjax();
	
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){
			var reponse = clean(xhr.responseXML.documentElement);
			
			document.getElementById('nom').innerHTML = reponse.getElementsByTagName('nom')[0].firstChild.nodeValue;
			document.getElementById('adresse').innerHTML = reponse.getElementsByTagName('adresse')[0].firstChild.nodeValue;
			document.getElementById('telephone').innerHTML = reponse.getElementsByTagName('telephone')[0].firstChild.nodeValue;
			document.getElementById('telecopie').innerHTML = reponse.getElementsByTagName('telecopie')[0].firstChild.nodeValue;
			document.getElementById('email').innerHTML = reponse.getElementsByTagName('email')[0].firstChild.nodeValue;
			document.getElementById('site').innerHTML = reponse.getElementsByTagName('site')[0].firstChild.nodeValue;
			document.getElementById('mobile').innerHTML = reponse.getElementsByTagName('mobile')[0].firstChild.nodeValue;
			
			document.getElementById('lienBackEntreprises').innerHTML = nom_entreprise;
			
			// document.getElementById('liste_categories_generales').style.display = 'none';
			document.getElementById('liste_categories').style.display = 'none';
			document.getElementById('liste_entreprises').style.display = 'none';
			document.getElementById('detail_entreprise').style.display = 'block';
			document.getElementById('divLienBackMoteurRecherche').style.display = 'block';
			
			document.getElementById('texteCheminRecherche').innerHTML = reponse.getElementsByTagName('provenance')[0].firstChild.nodeValue;
			
			document.location = '#ficheEntreprise';
		}
	}
	
	var nombre = calculerCache();
	
	xhr.open('POST', '../includes/modules/annuaire/getEntreprise.php', true);
	xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	xhr.send('id='+id_entreprise+'&cache='+nombre);
}

function rechercherEntreprise(){
	var xhr = createAjax();
	
	var recherche = document.formulaire_recherche_annuaire.recherche.value;
	var type_recherche = document.formulaire_recherche_annuaire.criteres.value;
	
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){
			var reponse = clean(xhr.responseXML.documentElement);
			
			document.getElementById('resultats_recherche').innerHTML = 'R&eacute;sultats de votre recherche : <br />' + reponse.getElementsByTagName('contenu')[0].firstChild.nodeValue;
			
			document.formulaire_recherche_annuaire.bouton_recherche.value = 'Rechercher';
		}
	}
	
	var nombre = calculerCache();
	
	xhr.open('POST', '../includes/modules/annuaire/rechercherEntreprise.php', true);
	xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	xhr.send('recherche='+recherche+'&type_recherche='+type_recherche+'&cache='+nombre);
}

function getEntrepriseFromRecherche(id_entreprise, nom_entreprise){
	var xhr = createAjax();
	
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){
			var reponse = clean(xhr.responseXML.documentElement);
			
			document.getElementById('nom').innerHTML = reponse.getElementsByTagName('nom')[0].firstChild.nodeValue;
			document.getElementById('adresse').innerHTML = reponse.getElementsByTagName('adresse')[0].firstChild.nodeValue;
			document.getElementById('telephone').innerHTML = reponse.getElementsByTagName('telephone')[0].firstChild.nodeValue;
			document.getElementById('telecopie').innerHTML = reponse.getElementsByTagName('telecopie')[0].firstChild.nodeValue;
			document.getElementById('email').innerHTML = reponse.getElementsByTagName('email')[0].firstChild.nodeValue;
			document.getElementById('site').innerHTML = reponse.getElementsByTagName('site')[0].firstChild.nodeValue;
			document.getElementById('type_entreprise').innerHTML = reponse.getElementsByTagName('type_entreprise')[0].firstChild.nodeValue;
			document.getElementById('description').innerHTML = reponse.getElementsByTagName('description')[0].firstChild.nodeValue;
			
			document.getElementById('lienBackEntreprises').innerHTML = nom_entreprise;
			updateAffichageLiensNavigation(0);
			
			// document.getElementById('liste_categories_generales').style.display = 'none';
			document.getElementById('liste_categories').style.display = 'none';
			document.getElementById('liste_entreprises').style.display = 'none';
			document.getElementById('detail_entreprise').style.display = 'block';
		}
	}
	
	var nombre = calculerCache();
	
	xhr.open('POST', '../includes/modules/annuaire/getEntreprise.php', true);
	xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	xhr.send('id='+id_entreprise+'&cache='+nombre);
}

function fermerZoneResultats(){
	document.getElementById('zone_resultats_recherche').style.display = 'none';
	document.getElementById('texteCheminRecherche').innerHTML = '';
}
