// variables globales
var nb_lignes;
var code_ligne = '<div class="tableau_ligne"><table border="0" cellpadding="0" cellspacing="0"><tr><td align="center" valign="center" width="30px">{NLIGNE}</td><td align="center" valign="center" width="120px"><input name="marque{NUM}" size="10" type="text" /></td><td align="center" valign="center" width="120px"><input name="type{NUM}" size="10" type="text" /></td><td align="center" valign="center" width="60px"><input name="tension{NUM}" size="3" type="text" /></td><td align="center" valign="center" width="60px"><input name="capa{NUM}" size="3" type="text" /></td><td align="center" valign="center" width="170px">L <input name="elargeur{NUM}" size="15" type="text" /><br />l <input name="elongueur{NUM}" size="15" type="text" /><br />h <input name="ehauteur{NUM}" size="15" type="text" /></td><td align="center" valign="center" width="170px">L <input name="clargeur{NUM}" size="15" type="text" /><br />l <input name="clongueur{NUM}" size="15" type="text" /><br />h <input name="chauteur{NUM}" size="15" type="text" /></td></table></div>';

// afficher / masquer le texte des news
function showLayer(var1) {
	// déclarations
	var calque = document.getElementById(var1).style;
	calque.display = (calque.display == 'block') ? 'none' : 'block';
}

// affichage des X lignes dans le tableau (page Demande de devis)
function afficherLignes(x) {
	var code;
	// on masque la fin du formulaire (contact) si il a déjà été activé
	showLayer('partie2');
	// on affiche le nombre de lignes demandé
	nb_lignes = x;
	document.getElementById('partie2').style.display = 'none';
	document.getElementById("liste").innerHTML = '';
	for (var i=0; i<x; i++) {
		code = code_ligne.replace(/\{NLIGNE\}/g, (i+1)).replace(/\{NUM\}/g, i);
		document.getElementById("liste").innerHTML += code;
	}
	document.getElementById('partie2').style.display = 'block';
}

// vérification du remplissage pour le choix 'Autre' du nombre
function verifier_choix(champ) {
	var valeur = document.getElementsByName(champ)[0].value;
	if (isNaN(valeur)) {
		alert("Votre saisie comporte des lettres. Veuillez corriger et ne saisir que des chiffres.");
		return;
	}
	if (valeur.length == 0 || valeur == 0) {
		alert("Vous n'avez rien saisi, ou vous avez choisi '0' !");
		return;
	}
	afficherLignes(valeur);
}

// ajouter une ligne
function ajouterLigne() {
	var code = code_ligne.replace(/\{NLIGNE\}/g, (nb_lignes+1)).replace(/\{NUM\}/g, nb_lignes);
	document.getElementById("liste").innerHTML += code;
	nb_lignes++;
}

// validation du formulaire
function validerFormulaireDevis(formulaire) {
	var nom = document.forms[formulaire].elements['nom'].value;
	var tel = document.forms[formulaire].elements['tel'].value;
	var mail = document.forms[formulaire].elements['mail'].value;
	document.getElementById('nom').style.border = "";
	document.getElementById('tel').style.border = "";
	document.getElementById('mail').style.border = "";
	if (nom != '' && tel != '' && mail != '') {
		document.getElementById('resultat_demande_devis').innerHTML = 'Envoi en cours, merci de patienter...';
		module_AJAX('./index.php?page=envoi_devis', constructData(formulaire), resultatEnvoiDevis);
	} else if (nom == '' || tel == '' || mail == '') {
		alert('Des informations demandées sont manquantes dans le formulaire !\r\nLes champs entourés en rouges sont obligatoires.');
		if (nom == '') {document.getElementById('nom').style.border = "2px solid #FF0000";}
		if (tel == '') {document.getElementById('tel').style.border = "2px solid #FF0000";}
		if (mail == '') {document.getElementById('mail').style.border = "2px solid #FF0000";}
	}
}

// traitement du résultat de l'envoi du devis
function resultatEnvoiDevis(resXML) {
	document.getElementById('resultat_demande_devis').innerHTML = resXML.getElementsByTagName("texte").item(0).firstChild.data;
	if (resXML.getElementsByTagName("resultat").item(0).firstChild.data == 'ok') {
		setTimeout("window.location = '" + resXML.getElementsByTagName("redirection").item(0).firstChild.data + "'", 1000);
	}
}

// chargement et affichage des infos depuis le fichier XML pour les points du réseau
function chargerInfos(ville) {
	showLayer('masque');
	showLayer('infosPoint');
	document.getElementById('infosPointContent').innerHTML = 'Chargement des données...';
	module_AJAX('./pointsreseau.php', '', afficherInfos, ville);
}
function afficherInfos(resXML, code) {
	var listepoints = resXML.getElementsByTagName("point");
	for (var i = 0; i < listepoints.length; i++) {
		var point = listepoints.item(i);
		var nom = (point.getElementsByTagName('nom').item(0).firstChild) ? point.getElementsByTagName('nom').item(0).firstChild.data : '';
		var societe = (point.getElementsByTagName('societe').item(0).firstChild) ? point.getElementsByTagName('societe').item(0).firstChild.data : '';
		if (societe != '') {
			societe = 'Société ' + societe;
		}
		var telephone = (point.getElementsByTagName('telephone').item(0).firstChild) ? point.getElementsByTagName('telephone').item(0).firstChild.data : '';
		var telportable = (point.getElementsByTagName('telportable').item(0).firstChild) ? point.getElementsByTagName('telportable').item(0).firstChild.data : '';
		var fax = (point.getElementsByTagName('fax').item(0).firstChild) ? point.getElementsByTagName('fax').item(0).firstChild.data : '';
		var codepostal = (point.getElementsByTagName('codepostal').item(0).firstChild) ? point.getElementsByTagName('codepostal').item(0).firstChild.data : '';
		var ville = (point.getElementsByTagName('ville').item(0).firstChild) ? point.getElementsByTagName('ville').item(0).firstChild.data : '';
		var mail = (point.getElementsByTagName('mail').item(0).firstChild) ? point.getElementsByTagName('mail').item(0).firstChild.data : '';
		var photo = (point.getElementsByTagName('photo').item(0).firstChild) ? point.getElementsByTagName('photo').item(0).firstChild.data : '';
		if (photo != '') {
			photo = '<img border="0" src="./themes/defaut/fr/images/'+photo+'" />';
		}
		var chaine = '<p class="portrait">'+photo+'</p><p class="nom">'+nom+'<br />'+societe+'</p><p>'+codepostal+' '+ville+'</p><p>Tel : '+telephone+'<br />Mobile : '+telportable+'<br />Fax : '+fax+'</p><p>'+mail+'</p><div class="cleaner"></div>';
		if (codepostal == code) {
			document.getElementById('infosPointContent').innerHTML = chaine;
		}
	}
}

/*************************************/
/*         SCRIPTS POUR AJAX         */
/*************************************/

// création de l'objet XML HTTP
var xmlhttp;

// initialisation de l'objet XML HTTP en fonction du navigateur
function initAJAX() {
	// initialisation de l'objet HttpRequest
	xmlhttp = null;
	// création de l'objet HttpRequest
	if (window.XMLHttpRequest) {
		// code pour Mozilla
		xmlhttp = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		// code pour IE
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
}

// envoi des données avec la méthode AJAX
function envoiAJAX(page, data) {
	// avant de charger la page, on vérifie que l'objet existe bien
	if (xmlhttp != null) {
		xmlhttp.open("POST", page, true);
		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-15");
		xmlhttp.send(data);
	} else {
		// message d'alerte
		alert("Votre navigateur ne supporte pas les protocoles XMLHTTP. Vous pouvez essayer de mettre votre navigateur à jour.");
	}
}

// échappement des caractères spéciaux
function echapper(valeur) {
	return escape(valeur).replace(/\+/g, "%2B").replace(/\"/g, "%22").replace(/\'/g, "%27");
}

// vérifier qu'un formulaire est rempli comme demandé
function verifierFormulaire(formulaire) {
	// initialisation de la valeur du booléen à retourner
	var check = true;
	// pour chaque argument envoyé (hormis le premier qui doit être le nom du formulaire à vérifier)...
	for (var i = 1; i < arguments.length; i++) {
		var valeur = document.forms[formulaire].elements[arguments[i]].value;
		if (valeur == "") check = false;
	}
	// renvoi
	return check;
}

// construction et mise en forme des données du formulaire à transmettre au script AJAX
function constructData(formulaire) {
	var name = "";
	var type = "";
	var retour = "";
	// pour chaque élément du formulaire
	for (var i = 0; i < document.forms[formulaire].elements.length; i++) {
		var validite_elt = document.forms[formulaire].elements[i].disabled;
		var type_elt = document.forms[formulaire].elements[i].type;
		var nom_elt = document.forms[formulaire].elements[i].name;
		var valeur_elt = document.forms[formulaire].elements[i].value;
		// on vérifie si le type d'élément est recevable
		if (validite_elt == false) {
			if (type_elt == "checkbox" || type_elt == "file" || type_elt == "hidden" || type_elt == "password" || type_elt == "radio" || type_elt == "text" || type_elt == "select-one" || type_elt == "textarea") {
				if (type_elt == "checkbox") {
					retour += "&" + nom_elt + "=" + ((document.forms[formulaire].elements[i].checked) ? 1 : 0);
				} else {
					retour += "&" + nom_elt + "=" + echapper(valeur_elt);
				}
			}
		}
	}
	// renvoi de la chaîne construite
	return retour;
}

// action AJAX
function module_AJAX(page, data, fonction) {
	var argument_sup = '';
	if (arguments[3] != undefined) {
		argument_sup = arguments[3];
	}
	// initialisation de l'HTTP Request
	initAJAX();
	// envoi des données au script de traitement par AJAX
	envoiAJAX(page, data);
	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4) {
			var docXML = xmlhttp.responseXML;
			// lancement de la fonction appropriée
			if (fonction != '') {
				fonction(docXML, argument_sup);
			} else {
				alert("Aucune fonction de traitement n'a été spécifiée pour l'action en cours. Veuillez actualiser la page (option du navigateur ou touche F5).");
			}
		}
	}
}

// basculement de l'affichage du masque AJAX vers le contenu de la page en cas d'échec de l'action demandée
function retourEchecAJAX() {
	document.getElementById("divajax").style.display = "none";
	document.getElementById("contenu").style.display = "block";
}

