/* Fonctions javascript */ var fonduFini = false; var enchaineFini = false; var monH3; var monImg; var monP; var leH1; var monImageTitre; var compteurBoucleEnchaine = 30; var compteurTestFondu = 30; var maBase = document.getElementsByTagName("base")[0].href; // Fonction pour insérer des styles invalide CSS2 function ecritStyles() { document.write(''); } // Fonction permettant de remplacer les titre de niveau 1 par une image avec une bonne typo function remplacementH1() { if (!document.getElementsByTagName) return false; var tableauH1 = document.getElementById("milieu").getElementsByTagName("h1"); var h1 = tableauH1[0]; //alert(h1); if(h1 != undefined && !h1.className.match("sansJs")){ if(onAjaxifie()) { titre = new RequeteTitre(h1.id); var vsend = !titre.sendData( 'GET', 'commun/h1Image.php', 'id='+h1.id+'&monTitre='+monTitreH1); return vsend; } } } function enchaineH1() { if (!document.getElementsByTagName) return false; var lesh1 = document.getElementsByTagName("h1"); for (var i=0; i < lesh1.length; i++) { if (lesh1[i].className.match("sansJs")) { leH1 = lesh1[i]; leH1.className = "opaque"; enchaineElement('leH1'); } } } //Fonction insérant les onClick aux input type image pour les procédure ajax et un onSubmit="return false;" aux forms function insereOnClickReference() { if (!document.getElementsByTagName) return false; //var colonne = document.getElementById("colonne"); var derniRef = document.getElementById("derniereReference") if(derniRef != undefined) { var lesInput = derniRef.getElementsByTagName("input"); for (var i = 0;i < lesInput.length; i++) { lesInput[i].onclick = function() { return changeReference(this.value); } } } } function insereOnClickClient() { if (!document.getElementsByTagName) return false; var lesclients = document.getElementById("clients"); if(lesclients != undefined) { var lesInput = lesclients.getElementsByTagName("input"); for (var i = 0;i < lesInput.length; i++) { lesInput[i].onclick = function() { return changeClient(this.value); } } } } //DEBUT AJAX POUR REFERENCE function changeReference(nouvelleRef) { if(onAjaxifie()) { requeteReferenceFini = false; reference = new RequeteReference(); fondu(); var vsend = !reference.sendData( 'GET', 'ajaxReference.php', 'referenceAAfficher='+nouvelleRef); return vsend; } } function onAjaxifie() { var laTaille; var nomNavigateur = navigator.appName; var conteneur = document.getElementById("conteneur"); if (nomNavigateur == "Microsoft Internet Explorer") { laTaille = conteneur.currentStyle.width; } else{ var leBloc = document.defaultView.getComputedStyle(conteneur,''); laTaille = leBloc.width; } if(laTaille != "880px") { return false; } else { return true } } //Fondu des éléments function setOpacity(objet,value) { objet.style.opacity = value/10; objet.style.filter = 'alpha(opacity=' + value*10 + ')'; if(value == 0) { fonduFini = true; } else if(value == 10) { enchaineFini = true; } } function enchaineElement(obj) { for (var i=0;i<11;i++) { setTimeout('setOpacity('+obj+','+i+')',100*i); } } function fonduElement(obj) { for (var i=10;i>=0;i--) setTimeout('setOpacity('+obj+','+i+')',100*(11-i)); } //Fondu enchainé pour les références function fondu() { initObjetReference(); fonduFini = false; fonduElement('monH3'); fonduElement('monImg'); fonduElement('monP'); compteurTestFondu = 30; setTimeout('testFinFondu()',1000); } function testFinFondu() { compteurTestFondu--; if(fonduFini || compteurTestFondu <= 0) { fonduAjax = false; if(fonduFini) { compteurBoucleEnchaine=30; lanceEnchainemt(); } } else { setTimeout('testFinFondu()',100); } } function lanceEnchainemt() { compteurBoucleEnchaine--; if(requeteReferenceFini == true || compteurBoucleEnchaine <= 0) { if(requeteReferenceFini) { reference.resultat(); } initObjetReference(); enchaineFini = false; if(navigator.userAgent.indexOf("Safari") == -1) { //alert(navigator.userAgent); enchaineElement('monH3'); } else { document.getElementById("dernierTitre").style.opacity=1; } enchaineElement('monImg'); enchaineElement('monP'); document.getElementById("dernierTitre").tabIndex = -1; document.getElementById("dernierTitre").focus(); } else { setTimeout('lanceEnchainemt()',100); } } function initObjetReference() { var lesElements = document.getElementById('derniereReference'); if(lesElements != undefined) { var lesH3 = lesElements.getElementsByTagName('h3'); var lesImg = lesElements.getElementsByTagName('img'); var lesP = lesElements.getElementsByTagName('p'); monH3 = lesH3[0]; monImg = lesImg[0]; monP = lesP[0]; } } //DEBUT AJAX POUR CLIENT function changeClient(nouveauClient) { //fonduEnCours = true; if(onAjaxifie()) { client = new RequeteClient(); //fondu(); var vsend = !client.sendData( 'GET', 'ajaxClient.php', 'refCLient='+nouveauClient); //timerID = setTimeout("traceRequete(data);", 1000); //traceRequete(data); return vsend; } } /* Les 2 fonctions suivantes permettent de gérer les pop up */ function doPopups() { if (!document.getElementsByTagName) return false; var links = document.getElementsByTagName("a"); for (var i=0; i < links.length; i++) { if (links[i].className.match("photoRef")) { links[i].onclick = function() { window.open(this.href,'','width=520px,height=395px,toolbar=no,scrollbars=auto,resizable=yes,top=50px,left=50x'); return false; } } } } /* Test le formulaire de recherche */ function testRechercheNonVide() { if (!document.getElementsByTagName) return false; var lesForm = document.getElementsByTagName("form"); for (var i = 0;i < lesForm.length; i++) { if(lesForm[i].className.match("formRecherche")) { lesForm[i].onsubmit = function() { return testFormRecherche(); }; } } } function testFormRecherche() { if(document.getElementById("labelRecherche").value == "" ) { alert(enterSearchTerm); return false; } else return true; } /* Test le formulaire de contact */ function testContactValide() { if (!document.getElementsByTagName) return false; var lesForm = document.getElementsByTagName("form"); for (var i = 0;i < lesForm.length; i++) { if(lesForm[i].className.match("formContact")) { lesForm[i].onsubmit = function() { return testFormContact(); }; } } } function testFormContact() { var messageRetour = ""; if(document.getElementById("nom").value == "" ) { messageRetour += surname+'\n'; } if(document.getElementById("prenom").value == "" ) { messageRetour += firstname+'\n'; } if(document.getElementById("tel").value == "" ) { messageRetour += telephone+'\n'; } if(document.getElementById("email").value == "" || !testAdrMail(document.getElementById("email").value)) { if(document.getElementById("email").value == "") { messageRetour += email+'\n'; } else { messageRetour += emailIncorrect+'\n'; } } if(document.getElementById("sujet").value == "" ) { messageRetour += subject+'\n'; } if(document.getElementById("message").value == "" ) { messageRetour += comment+'\n'; } if(messageRetour != "") { alert(messageRetour); return false } else return true; } function testAdrMail(adrMail) { // déclaration et initialisation des variables adrMailLength=adrMail.length; // longueur de la chaîne adrMail caractOk="_.-0123456789abcdefghijklmnopqrstuvwxyz"; // caratères corect d'une adresse mail var posArrobas = adrMail.indexOf('@',1); // position du premier Arrobas var posPoint=adrMail.lastIndexOf('.',adrMailLength); // position du dernier point var posCaractFaux=adrMail.indexOf('..',posArrobas+1); // position d'un caractère faux ('..' ou ' ') var caract=0; // caractère extrait de la chaîne adrMail (utilisée par les boucles while) var caractFaux=adrMail.charAt(0)+adrMail.charAt(posArrobas-1)+adrMail.charAt(posArrobas+1)+adrMail.charAt(posPoint-1); var posCaract=0; // position du caractère à extraire de la chaîne adrMail (utilisée par les boucles while) var posCaractOk=0; // position du caractère extrait de la chaîne adrMail (utilisée par les boucles while) var posCaractNon=-1; var retour=false; // l'adresse e-mail est considérée comme fausse au début // début du teste // s'il n'existe pas de caractère '..' alors on teste s'il existe un espace dans la chaîne adrMail if (posCaractFaux!=-1 || adrMail.indexOf(' ',0)!=-1 || adrMail.indexOf('--',0)!=-1 || adrMail.indexOf('__',0)!=-1) { posCaractFaux=0; } // Teste les points ou - ou _ au début de l'adrMail, autour de l'arrobas et autour du dernier point for (posCaract;posCaract<4;posCaract++) { caract=caractFaux.charAt(posCaract); posCaractNon=caractOk.lastIndexOf(caract,2); if (posCaractNon!=-1) { posCaractFaux=0; break; } } // si l'adresse mail contient au moins 1 caractère et qu'elle comporte un arrobas // et qu'elle comporte un point et que l'arrobas est avant le dernier point // et qu'elle ne contient pas de '..' ou d'espace et que après le dernier point il y est 2,3 ou 4 caractères // et qu'il n'y est pas de point autour de l'arrobas et que l'adresse ne commence pas par un point // Alors if (adrMailLength>0 && posArrobas!=-1 && posPoint!=-1 && posArrobas=2 && adrMailLength-posPoint-1<=4) { // extraction d'un caractère et teste s'il existe dans la chaîne "_.-0123456789abcdefghijklmnopqrstuvwxyz" // S'il n'existe pas alors posCaract=-1 donc au prochain 'tour' on passe aux autres boucles (qui ne s'effecturont pas) // Si il existe on continue la boucle jusqu'au caractère avant l'arrobas et on passe à la boucle while suivante adrMail=adrMail.toLowerCase(); posCaract=0; while (posCaract