/*
# Projet			: ACHETER-LOUER.FR V3 NEUF					#
# Description	: JS servant à la technologie AJAX	#
*/
// FONCTION PERMETTANT DE BLOQUER LA PAGE LE TEMPS DU CHARGEMENT DE L'AJAX //
function startAjax(){
	if(document.getElementById('mapBox')) {
		document.getElementById('mapBox').style.opacity=.25;
		document.getElementById('mapBox').style.MozOpacity=0.25
		document.getElementById('mapBox').style.filter = 'alpha(opacity=25)';
		if (document.getElementById('loader')) {
			document.getElementById('loader').style.display='inline';
		}else{
			var divLoader = document.createElement('DIV');
			divLoader.id = 'loader';
			document.getElementById('mapBox').appendChild(divLoader);
		}
	}
	return;
}

// FONCTION PERMETTANT DE LIBÉRER LA PAGE LORSQUE LE CHARGEMENT AJAX EST TERMINÉ //
function stopAjax(){
// 	setTimeout("document.getElementsByTagName('body').item(0).style.cursor='default'", 1000);
	if(document.getElementById('mapBox')) {
		document.getElementById('mapBox').style.opacity=1;
		document.getElementById('mapBox').style.MozOpacity=1;
		document.getElementById('mapBox').style.filter='alpha(opacity=100)';
// 		document.getElementById('mapBox').parentNode.style.MozOpacity=0.99
		if (document.getElementById('loader')) {
			document.getElementById('loader').style.display='none';
// 			document.getElementById('mapBox').removeChild(document.getElementById('loader'));
		}
	}
	return;
}

// FONCTION PERMETTANT DE LANCER LA REQUÊTE AJAX //
function makeRequest(url, section){
	startAjax();
	if(url.match(/prof/i)) {setTimeout("stopAjax()", 5000);}
	else{setTimeout("stopAjax()", 3000);}
	// Variable qui va contenir l'objet AJAX
	var httpRequest = false;

	// Création de l'objet AJAX
	if (window.XMLHttpRequest){
		httpRequest = new XMLHttpRequest();
		if (httpRequest.overrideMimeType){
			httpRequest.overrideMimeType('text/xml');
		}
	}else{
		if (window.ActiveXObject){
			try{
  				httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
  			}catch (e){
				try{
					httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
				}catch (e){}
 			}
		}
	}

	if (!httpRequest){
		alert('Abandon :( Impossible de créer une instance XMLHTTP');
  		return false;
	}
  	var donnee = url.substr(url.indexOf('?')+1, url.length-1);
// 	httpRequest.open('GET', url + ieTrick('&'), true);
	httpRequest.open('POST', url, true);
	httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	httpRequest.send(donnee);
	httpRequest.onreadystatechange = function() { getInfos(httpRequest, section); };	
	return false;
}
    
    
//****************************************************//
// FONCTION EXÉCUTÉE LORSQUE L'ÉTAT DU SERVEUR CHANGE //
//****************************************************//
function getInfos(httpRequest, section){	
	// Le serveur a-t'il répondu ?
	if (httpRequest.readyState == 4){		
		// La réponse est-elle favorable ?
  	if (httpRequest.status == 200){    		
  		 // On récupère des valeurs différentes en fonction de la section
  		 switch (section){  		 	  		 	  		 	
		
  		case "caddie" : 
			var reponse = httpRequest.responseText.split("|");
			if (!document.getElementById(reponse[0])) {
				var ulElt;
				if (document.getElementById('caddieUl')){
					ulElt = document.getElementById('caddieUl');
				}else {
					document.getElementById('currentCaddie').innerHTML += '<h3><a href="/perl/annonces/selection.pl">Votre Caddie</a>';
					ulElt = document.createElement("UL");
					ulElt.id="caddieUl";
					document.getElementById('currentCaddie').appendChild(ulElt);
				}
				var caddieElt = document.createElement("LI");
				caddieElt.className='caddieElt';
				caddieElt.id=reponse[0];
				var image = document.createElement("img");

				image.src = reponse[3];
				image.className = 'caddieImage';
				caddieElt.appendChild(image);
				caddieElt.innerHTML+='<strong>Ref.</strong>'+reponse[2]+'<br />Desc. '+reponse[4]+"<a href='/perl/annonces/searchfiche.pl?id_annonce="+reponse[1]+"&frommail="+reponse[5]+"'>Fiche d&eacute;taill&eacute;e</a><img src='/images/commun/supprimer.png' onClick='DeleteRef(\"acheterlouer_neuf_caddie_annonces\", \""+reponse[0]+"\")\' align='right'> ";
				ulElt.appendChild(caddieElt);
			}
			break;
		case "nbbiens":
			nbBiens = httpRequest.responseText.split("|");
			typeBien = nbBiens[0];
			setTimeout("stopAjax()", 1000);
			break;
		case "logos":
			var img = httpRequest.responseText.split("|");
			for (var i=0;i<img.length;i++) {
				if (i>500) {setTimeout("stopAjax()", 1000);break;}
				imgArray.push(img[i]);
			}
			setTimeout("stopAjax()", 1000);
			break;
		case "programmes":
			var details = httpRequest.responseText.split("$$");
			var infos_programme = details[0].split("|");
// 			document.getElementById('id_programme').value = infos_programme[0];
			document.getElementById('ville_programme').innerHTML = infos_programme[1];
			document.getElementById('nom_programme').innerHTML = infos_programme[2] + ' - Ref. ' + infos_programme[3];
			document.getElementById('type_programme').innerHTML = 'Programme ' + infos_programme[4];
			document.getElementById('desc_programme').innerHTML = infos_programme[5];
			if (infos_programme[7]) {
				document.getElementById('pers').src = infos_programme[7];
				document.getElementById('pers').style.display = "inline";
			}else{
				document.getElementById('pers').src = '';
				document.getElementById('pers').style.display = "none";
			}
			var infos_sup = document.getElementById('infos_sup');
			if (infos_sup.hasChildNodes()) {
				while ( infos_sup.childNodes.length >= 1 ){
					infos_sup.removeChild( infos_sup.firstChild );
				}
			}

			setDetail(1, infos_programme);
			var dispos=details[1].split("£");
			if (dispos) {
				var titre = document.createElement('h3');
				titre.innerHTML='Disponibilit&eacute;(s)';
				infos_sup.appendChild(titre);
			}
			for (var i=0;i<dispos.length;i++) {
				setCommerc(dispos[i]);
			}
			setTimeout("stopAjax()", 1000);
			break;
		case "modeles":
			try {
				var details = httpRequest.responseText.split("$$");
				
				var infos_modele = details[0].split("|");
	// 			document.formname.id_modele = infos_modele[0];
				document.getElementById('ville_modele').innerHTML = infos_modele[1];
				document.getElementById('nom_modele').innerHTML = infos_modele[2];
				if (infos_modele[3]) {
					document.getElementById('ref_modele').innerHTML = 'Nom .: ' + infos_modele[3];
				}else{
					document.getElementById('ref_modele').innerHTML = '';
				}
				document.getElementById('desc_modele').innerHTML = infos_modele[5];
				if (infos_modele[7]) {
					document.getElementById('visuel').src = infos_modele[7];
					document.getElementById('visuel').style.display = "inline";
				}else {
					document.getElementById('visuel').src = '';
					document.getElementById('visuel').style.display = "none";
				}
				setDetail(0, infos_modele);
				var infos_sup = document.getElementById('infos_sup');
				if (infos_sup.hasChildNodes()) {
					while ( infos_sup.childNodes.length >= 1 ){
						infos_sup.removeChild( infos_sup.firstChild );
					}
				}
				var commerc=details[1].split("£");
				if (commerc) {
					var titre = document.createElement('h3');
					titre.innerHTML='Commercialisation(s)';
					infos_sup.appendChild(titre);
				}
				for (var i=0;i<commerc.length;i++) {
					setCommerc(commerc[i]);
				}
				
				setTimeout("stopAjax()", 1000);
				break;		 	       
			}catch(err) {stopAjax();}
       }
    }
    else{
    	stopAjax();
//     	alert('Problème AJAX - HTTP Request: ' + httpRequest.responseText);
    }
  }
}

// FONCTION PERMETTANT D'OUTRE-PASSER LE CACHE DE IE POUR L'AJAX
function ieTrick(sep){ 
	d = new Date(); 
  trick = d.getYear() + "ie" + d.getMonth() + "t" + d.getDate() + "r" + d.getHours() + "i" + d.getMinutes() + "c" + d.getSeconds() + "k" + d.getMilliseconds(); 
    
  if (sep != "?"){ 
    sep = "&"; 
  } 	
    
  return sep + "ietrick=" + trick; 
}

function setDetail(isprog, infos) {
// 	document.getElementById().id_programme.value = infos_programme[0];
	try {
		document.form_ami.id_annonce.value= infos[0];
		document.form_pdf.detail_pdf.value = infos[0];
		if (isprog==1) {
			
			document.form_ami.type_search.value = 'programmes';
			document.form_pdf.detail_pdf.name = 'programmes';
			document.getElementById('detail_type').innerHTML = 'Programme ' + infos[4];
			document.getElementById('detail_nomprg').innerHTML = infos[2] + ' - Ref. ' + infos[3];
		}else{
			document.form_ami.type_search.value = 'terrains';
			document.form_pdf.detail_pdf.name = 'terrains';
			document.getElementById('detail_type').innerHTML = infos[4];
			document.getElementById('detail_nomprg').innerHTML = infos[2];
		}	
		document.getElementById('detail_villecp').innerHTML = infos[1];
		document.getElementById('detail_desc').innerHTML = infos[6];
		if (infos[7]) {document.getElementById('detail_imgBig').src = infos[7];}
		else {document.getElementById('detail_imgBig').src = '';}
				
		if (document.getElementById('detail_select').addEventListener) {
			document.getElementById('detail_select').addEventListener('click', function(){AjouterRef('acheterlouer_neuf_caddie_annonces',infos[0])}, false);
		}else if (document.getElementById('detail_select').attachEvent){
			document.getElementById('detail_select').attachEvent('onclick', function(){AjouterRef('acheterlouer_neuf_caddie_annonces',infos[0])} );
		}else {alert("Attention, problème de compatibilité detecté avec votre Navigateur. Merci d\'utiliser la dernière version de votre navigateur préféré.")}

		var j=1;
		for(var i=7;i<11;i++) {
			if (infos[i]) {
				document.getElementById('detail_thumb'+j).style.display='inline';
				document.getElementById('detail_thumb'+j).src=infos[i];
				j++;	
			}else {
				document.getElementById('detail_thumb'+j).src='';
				document.getElementById('detail_thumb'+j).style.display='none';
				j++;
			}
		}
		setTimeout("stopAjax()", 1000);
	}catch(err) {stopAjax();}
}

function setCommerc (array){
	var a = new String(array);
	try {
		var commerc = a.split('|');
		var adress = document.createElement("adress");
		for (var i=0;i<commerc.length;i++) {
			if (commerc[i]) {
				var newElt = document.createElement("span");
				newElt.style.float = "none";
				newElt.innerHTML = commerc[i]+'<br />';
				adress.appendChild(newElt);
			}
		}
		document.getElementById('infos_sup').appendChild(adress);
	}catch(err) {}

}

// FONCTION PERMETTANT D'ENCODER
// Param 1 : le string à coder
// Param 2 : le délimiteur
function encode (string, delimiteur){
	if (string == '') return '';
	
	phrase=String(string);
	resultat="";
	
	for (i=0; i<phrase.length; i++) {
		resultat=resultat+delimiteur+phrase.charCodeAt(i);
	}
	return resultat;
}
// FONCTION PERMETTANT DE DECODER
// Param 1 : le string à décoder
// Param 2 : le délimiteur
function decode (string, delimiteur){
	if (string == '') return '';
			
	var tab=string.split(delimiteur);	
	var resultat="";
	
	for (var i=0; i<tab.length; i++) {		
		resultat = resultat + String.fromCharCode(parseInt(tab[i]));		
	}	
	return resultat;
}

