/* 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