
//***********************************************//
// FONCTION PERMETTANT DE LANCER LA REQUÊTE AJAX //
//***********************************************//
function makeRequest(url, section){
	// 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;
	}
	
	httpRequest.onreadystatechange = function() { getInfos(httpRequest, section); };
	httpRequest.open('GET', url + ieTrick('&'), true);
	httpRequest.send(null);
	
}

//****************************************************//
// 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){
				/*****************/
				/* PERSPECTIVES */
				/*****************/
				case "delete_photo":
				var infos_delete_photo = httpRequest.responseText.split("|");
				var message = infos_delete_photo[0];
				var id_photo = infos_delete_photo[1];
				if (message == 'OK'){
				// Suppression visuel de la photo par Javascript
					$('photo_' + id_photo).style.display = 'none';
					var thisDiv=document.getElementById('photo_' + id_photo);
					var old = (thisDiv.parentNode).removeChild(thisDiv);
					// Décrémentation du nombre de photos
					var nb_photos = $('nbPhotos').innerHTML;
					nb_photos--;
					if (nb_photos < 1){
						$('nbPhotos').innerHTML = 'Aucune';
						$('nbPhotosTxt').innerHTML = 'photo rattachée';
					}
					if (nb_photos == 1){
						$('nbPhotos').innerHTML = nb_photos;
						$('nbPhotosTxt').innerHTML = 'photo rattachée';
					}
					if (nb_photos > 1){
						$('nbPhotos').innerHTML = nb_photos;
						$('nbPhotosTxt').innerHTML = 'photos rattachées';
					}
				}else{
					alert("Une erreur s\'est produite lors de la tentative de la suppression de cette photo !");
				}
				break;
				
				/**********/
				/* VILLES */
				/**********/
				case "villes":
				var liste_villes = httpRequest.responseText.split("|");
				// Le premier élément correspond à l'ID du champ ville à gérer
				var champ_ville = liste_villes[0];
				// Construction du listing de villes
				if ((liste_villes.length - 1) >= 1){
					listbox_ville = "<select name=\"" + champ_ville + "\" id=\"" + champ_ville + "\" style=\"width:325px; margin-bottom:15px;\" onfocus=\"releaseErrorClass(this)\"><option value=0>" + (liste_villes.length - 1) + " ville(s) correspondante(s)</option>";
					var i = 1;
					while (liste_villes[i]){
						var sel = '';
						if (i == 1) {sel =' selected="selected" ';}
						listbox_ville = listbox_ville + "<option value='" + decode(liste_villes[i], '#') +sel+ "'>" + decode(liste_villes[i], '#') + "</option>";
						i++;
					}
				}else{
					var listbox_ville = "<select name=\"" + champ_ville + "\" id=\"" + champ_ville + "\" style=\"width:325px; margin-bottom:15px;\" onfocus=\"releaseErrorClass(this)\"><option value=0>Aucune Ville ne correspond à ce Code Postal !</option>";
				}
				listbox_ville = listbox_ville + "</select>";
				$(champ_ville + '_IE').innerHTML = listbox_ville;
				break;
			}
		}else{
			alert('Problème AJAX - HTTP Request: ' + httpRequest.status);
		}
	}
}

//********************************************************************************************************************//
// FONCTION PERMETTANT DE GÉRER LA VILLE PAR LE CP (MASQUE DE SAISIE + DÉCLENCHEMENT DE LA REQUÊTE AJAX)	//
//********************************************************************************************************************//
function GetVilles(cp, champ){		
	if (!cp.value.match(/\+/)) {
		if (cp.value.length == 5){
			// On enlève le focus pour éviter les interactions
			window.focus();
			// On lance la requête AJAX		
			makeRequest('/perl/neuf/gestion_programmes.pl?ajax=1&section=villes&cp=' + cp.value + '&champ=' + champ, 'villes');
		}
		if (cp.value.length < 5){
			$(champ + '_IE').innerHTML = "<select id=\"ville\" name=\"ville\" style=\"width:325px; margin-bottom:15px;\" onfocus=\"releaseErrorClass(this)\"><option value=\"0\">Indiquez tout d'abord un code postal</option></select>";
		}	
	}
}


//***************************************************************//
// 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; 
}
//********************************//
// 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 (i=0; i<tab.length; i++) {		
		resultat = resultat + String.fromCharCode(parseInt(tab[i]));		
	}	
	return resultat;
}

function getAgence(CA, Nom, formulaire) {
	document.body.style.cursor = "wait";
	if (navigator.appVersion.match(/MSIE 6/)) {
		document.location.replace('/perl/opensky/getinfos_facturation.pl?ajax=1&CA='+CA+'&nom='+Nom);
		return;
	}
	
	var httpRequest = false;
	document.getElementById('msgErr').innerHTML = '';
	formulaire.style.border='0';
	document.getElementById('souscrire').style.display = 'block';
	// 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){document.body.style.cursor = "default";}
			}
		}
	}

	if(!httpRequest){
		alert('Abandon :( Impossible de créer une instance XMLHTTP');
		document.body.style.cursor = "default";
		return false;
	}
	
	httpRequest.onreadystatechange = function() {
	 	
	 };
	httpRequest.open("POST", '/perl/agences/ajax.pl', true);
	httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=ISO-8859-1");
	var donnee =  'CA='+CA+'&nom='+Nom;
	httpRequest.onreadystatechange = function () {
		try {
			document.body.style.cursor = "default";
			if (httpRequest.readyState == 4 && httpRequest.status == 200 && httpRequest.responseText != 0) {
				
				var agence =  httpRequest.responseText.split('|');
				if (agence[0]) {
					document.getElementById('message').innerHTML="Si les données ci-dessous correspondent à votre agence et sont compl&egrave;tes, vous pouvez continuer votre inscription.<br />";
					document.getElementById('message').innerHTML+="Si les données ne correspondent pas ou sous incompl&egrave;tes, merci de contacter notre service commercial : <a href='javascript:contact(document.add)'>Contact commercial</a>.";
					var reg1 = /^(M\.|Mr|M\s|Monsieur)\s*(.*)$/i;
					var civ = reg1.exec(agence[1]);
					formulaire.nom.value=agence[0];
					if (civ) {
						formulaire.directeur.value=civ[2];
						formulaire.civilite.options[3].selected='selected';
					}
					else {
						var reg2 = /^(Mme|Madame)\s+(.*)$/i;
						civ = reg2.exec(agence[1]);
						if (civ) {
							formulaire.directeur.value=civ[2];
							formulaire.civilite.options[1].selected='selected';
						}else {
							var reg3 = /^(Mlle|Mll|mademoiselle)\s+(.*)$/i;
							civ = reg3.exec(agence[1]);
							if (civ) {
								formulaire.directeur.value=civ[2];
								formulaire.civilite.options[2].selected='selected';
							}else{
								formulaire.directeur.value=agence[1];
							}
						}
					}
					formulaire.adresse.value=agence[2];

					var opt2 = document.createElement('option');
					opt2.value =  agence[3];
					opt2.text =  agence[3];
					formulaire.Ville.options[1] = opt2;
					formulaire.Ville.options[1].selected = 'selected';
					
					formulaire.cp.value=agence[4];
					formulaire.tel.value=agence[5];
					formulaire.fax.value=agence[6];
					formulaire.email.value=agence[7];
					formulaire.web.value=agence[8];
					if (agence[9]) {
						var opt = document.createElement('option');
						opt.name=agence[9];
						opt.value=agence[9];
						opt.text=agence[9];
						formulaire.logiciel.options.add(opt);
						formulaire.logiciel.options[(formulaire.logiciel.length) - 1].selected='selected';
					}else{
						formulaire.logiciel.options[(formulaire.logiciel.options.length)-1].selected=0;
						formulaire.logiciel.options[0].selected='selected';
					}
					formulaire.rcs.value=agence[10];
					for (var i=0;i < formulaire.elements.length;i++) {
						var corres = ["", "","Nom d'agence", "","Nom du responsable","Adresse","Code Postal","Ville","Telephone","Fax","Adresse e-mail","Site internet","Logiciel de transaction","RCS"];
						if (formulaire[i].name != 'code' && formulaire[i].name != 'CA') {
							ok(formulaire[i]);
							formulaire[i].disabled=true;
							if (!formulaire[i].value.length && formulaire[i].name != 'civilite') {
								document.getElementById('souscrire').style.display='none';
								erreur("Il vous manque la donn&eacute;e :<u>"+corres[i]+"</u>.<br />", formulaire);
// 								i = formulaire.length;
							}
						}
					}
					formulaire.code.disabled=false;
					if (formulaire.CA) {
						formulaire.CA.value=CA;
						formulaire.CA.disabled=false;
					}else {
						var inputCA = document.createElement('input');
						inputCA.type='hidden';
						inputCA.name='CA';
						inputCA.id='CA';
						inputCA.value=CA;
						inputCA.disabled=false;
						formulaire.appendChild(inputCA);
					}
				}else{
					for (var i=0;i < formulaire.length;i++) {
						ok(formulaire[i]);
						try {
							formulaire[i].disabled=false;
						}catch(err) {formulaire[i].style.border="1px solid grey";formulaire[i].style.background="white";}
					}
					formulaire.Ville.innerHTML="<option value=''>---</option>";
					document.getElementById('message').innerHTML="D&eacute;sol&eacute;, Nous n'avons pas trouv&eacute; de correspondance. Merci de vérifier l'orthographe du nom de votre agence.";
					formulaire.reset();
				}
			}else{
				for (var i=0;i < formulaire.length;i++) {
					ok(formulaire[i]);
					formulaire[i].disabled=false;
				}
				formulaire.Ville.innerHTML="<option value=''>---</option>";
				document.getElementById('message').innerHTML="D&eacute;sol&eacute;, Nous n'avons pas trouv&eacute; de correspondance.";
				formulaire.reset();
			}
		}catch(err) {}
	}
	httpRequest.send(donnee);
}


function contact(formulaire) {
	var formContact = document.createElement('form');
	formContact.action='/perl/opensky/contact.pl';
	formContact.method='POST';
	formContact.target='_parent';
	document.getElementsByTagName('div')[0].appendChild(formContact);
	for (var i = 0; i < formulaire.elements.length;i++) {
		var newinput = document.createElement('input');
		newinput.type='hidden';
		newinput.name = formulaire[i].name;
		newinput.value = formulaire[i].value;
		formContact.appendChild(newinput);
	}
	formContact.submit();
}

function contactAll(formulaire, varTarget) {
	var formContact = document.createElement('form');
	formContact.action='/perl/'+varTarget;
	formContact.method='POST';
	formContact.target='_parent';
	document.getElementsByTagName('div')[0].appendChild(formContact);
	for (var i = 0; i < formulaire.elements.length;i++) {
		var newinput = document.createElement('input');
		newinput.type='hidden';
		newinput.name = formulaire[i].name;
		newinput.value = formulaire[i].value;
		formContact.appendChild(newinput);
	}
	formContact.submit();
}

function iframeSrc(year){
	var iframes = ['iframe_vitrine', 'iframe_site', 'iframe_interannonces_affichages', 'iframe_interannonces_clics', 'iframe_pub_affichages', 'iframe_pub_clics'];
	for (var i = 0; i < iframes.length;i++) {
		var id= iframes[i];
		try{document.getElementById(id).removeChild(document.getElementById('img'+id));} catch(e) {}
		var img = document.createElement('IMG');
		img.id = 'img'+id;
		img.src='/perl/stats/stats_site.pl?action='+id+'&year='+year;
		document.getElementById(id).appendChild(img);
	}
	return;
}


