//****************************************************************************** //******* Iconeweb - Affine - 10/02/2005 //******* ------------------------------------------------------------- //******* Application : Affine //******* Objet de la page : Fonctions et procédures communes javascript //******* Révisions : (date) - (objet) //******* //******* //******* //****************************************************************************** //****************************************************************************** //** Confirmation de suppression //****************************************************************************** function f_ConfirmerSuppression(URL) { if (confirm("Etes-vous sûr de vouloir supprimer cet enregistrement (cette opération est irréversible) ?")) { window.location = URL ; } } // fin f_ConfirmerSuppression //****************************************************************************** //** Confirmation de copie récursive //****************************************************************************** function f_ConfirmerCopieRecursive(URL) { if (confirm("Etes-vous sûr de vouloir faire une copie récursive de cet enregistrement ?")) { window.location = URL ; } } // fin f_ConfirmerCopieRecursive //****************************************************************************** //** Test si une valeur ne contient que les caractères a-z et 0-9 //****************************************************************************** function f_TestCode(p_code) { var reg = /^[a-zA-Z0-9_]+$/ ; if (!reg.test(p_code)) { return false ; } return true ; } // f_TestCode //****************************************************************************** //** Test si une valeur est numérique uniquement //****************************************************************************** function f_TestChiffres(entree) { var seulement_ca ="0123456789.,-" ; for (a = 0; a < entree.length; a++) { if (seulement_ca.indexOf(entree.charAt(a))<0 ) return false; } return true ; } // fin f_TestChiffres //****************************************************************************** //** Test si une valeur est un e-mail valide //****************************************************************************** function f_TestEmail(entree) { var supported = 0 ; if (window.RegExp) { var tempStr = "a" ; var tempReg = new RegExp(tempStr) ; if (tempReg.test(tempStr)) { supported = 1 ; } } if (!supported) { return (str.indexOf(".") > 2) && (str.indexOf("@") > 0) ; } var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)") ; var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,4})(\\]?)$") ; return (!r1.test(entree) && r2.test(entree)) ; } // fin f_TestEmail //****************************************************************************** //** Test si une valeur est une date valide //****************************************************************************** function f_TestDate(entree) { expression_regulaire=/^[0123]{1}\d{1}\/[01]{1}\d{1}\/\d{4}$/ ; if (expression_regulaire.test(entree)) { return true ; } else { return false ; } } // fin f_TestDate //****************************************************************************** //** Test la validité de noms d'images //****************************************************************************** function f_TestImage(entree) { tableau=entree.split(".") if ((tableau[tableau.length-1] != "jpg") && (tableau[tableau.length-1] != "gif") && (tableau[tableau.length-1] != "png") && (tableau[tableau.length-1] != "JPG") && (tableau[tableau.length-1] != "GIF") && (tableau[tableau.length-1] != "PNG")&&(tableau[tableau.length-1] != "jpeg")&&(tableau[tableau.length-1] != "JPEG")) { return false ; } else { return true ; } } // fin f_TestImage //****************************************************************************** //** Test la longueur d'une chaîne //****************************************************************************** function f_TestTaille(entree,longueur) { expression_regulaire=new RegExp("^[a-zA-Z0-9]{0,"+longueur+"}$") ; if (expression_regulaire.test(entree)) { return true ; } else { return false ; } } // fin f_TestTaille //****************************************************************************** //** Fenêtre de l'admin visuelle - Ouvre l'administration dans une fenêtre séparée //****************************************************************************** function f_fenetre_admin (URL, Question) { if (Question == "") { bOuvrir = true ; } else { if (confirm(Question)) bOuvrir = true ; else bOuvrir = false ; } if (bOuvrir) { P_options_fenetre_adminvisu = "menubar,resizable,scrollbars,status,toolbar,location" ; P_nom_adminvisu = "Iconeweb_administration" ; Adminvisu = window.open(URL,P_nom_adminvisu,P_options_fenetre_adminvisu).focus() ; } } // fin f_fenetre_admin //****************************************************************************** //** Fonction de l'administration rapide permettant l'affichage de l'arbre //****************************************************************************** function f_arbre_deplier(p_entree,p_action) { if (p_action=="deplier") { if ((document.form_arbre.elements[p_entree].value=="deplier") || (document.form_arbre.elements[p_entree].value=="depliertout")) { document.form_arbre.elements[p_entree].value="repliertout" ; } else { document.form_arbre.elements[p_entree].value="deplier" ; } } else { if ((document.form_arbre.elements[p_entree].value=="deplier") || (document.form_arbre.elements[p_entree].value=="depliertout")) { document.form_arbre.elements[p_entree].value="repliertout" ; } else { document.form_arbre.elements[p_entree].value="depliertout" ; } } document.form_arbre.action="#" + p_entree ; document.form_arbre.submit() ; } // f_arbre_deplier //****************************************************************************** //** Fonction qui permet d'appliquer une valeur a plusieurs variables de type form1.v_val1, form1.v_val2, form1.v_val3... //****************************************************************************** function f_appliquer_a_tout(form_in, form_val) { var i=1; while(1) { if(eval(form_in+i)) { eval(form_in+i+".value="+form_val+".value") ; i++ ; } else break ; } } // f_appliquer_a_tout //****************************************************************************** //** Permet dans recherche rapide de faire des search replace dans une colonne entiere //****************************************************************************** function f_rech_rempl_a_tout(form_in, form_rech, form_rempl) { var i=1; if (eval("val_rech = "+form_rech+".value") != "") { while(1) { if(eval(form_in+i)) { eval("val_res = "+form_in+i+".value") ; eval("val_rech = "+form_rech+".value") ; eval("val_rempl = "+form_rempl+".value") ; eval("var n = val_res.replace(/"+val_rech+"/,\""+val_rempl+"\")") ; eval(form_in+i+".value = n" ) ; i++ ; } else break ; } } else alert("Vous devez d'abord indiquer une valeur à rechercher") ; } // f_rech_rempl_a_tout //****************************************************************************** //** //****************************************************************************** function f_popup_aide(p_texte,p_chemin_serveur) { tableau_aide='' ; tableau_aide+=' ' ; tableau_aide+=' ' ; tableau_aide+=' ' ; tableau_aide+=' ' ; tableau_aide+=' ' ; tableau_aide+=' ' ; tableau_aide+=' ' ; tableau_aide+=' ' ; tableau_aide+=' ' ; tableau_aide+=' ' ; tableau_aide+=' ' ; tableau_aide+=' ' ; tableau_aide+=' ' ; tableau_aide+=' ' ; tableau_aide+=' ' ; tableau_aide+=' ' ; tableau_aide+=' ' ; tableau_aide+='
 ' + p_texte + ' 
' ; document.write(tableau_aide) ; } // f_popup_aide //****************************************************************************** //** Fonction de cochage et décochage des cases à cocher //****************************************************************************** function f_checkboxes(p_form, p_valeur) { var elts = document.forms[p_form].elements['selected_tbl[]'] ; var elts_cnt = (typeof(elts.length) != 'undefined') ? elts.length : 0 ; if (elts_cnt) { for (var i = 0; i < elts_cnt; i++) { if (p_valeur == "inverser") { if (elts[i].checked == true) elts[i].checked = false ; else elts[i].checked = true ; } else elts[i].checked = p_valeur; } // end for } else { elts.checked = p_valeur ; } // end if... else return true ; } // f_checkboxes //****************************************************************************** //** Fonction d'ouverture d'un popup //****************************************************************************** function f_popup(p_url, p_nom, p_width, p_height, p_left, p_top, p_menu, p_scroll, p_tool, p_status, p_resizable, p_location) { var strProperties ; var wbg_popup ; if (p_top == "center") p_top = (screen.height - p_height) / 2 ; if (p_left == "center") p_left = (screen.width - p_width) / 2 ; strProperties = 'width=' + p_width + ',height=' + p_height ; strProperties = strProperties + ',left='+ p_left +',top='+ p_top +',directories=0,hotkeys=1' ; strProperties = strProperties + ',menubar='+p_menu +',scrollbars='+p_scroll+',toolbar='+p_tool+',status='+p_status ; strProperties = strProperties + ',resizable='+p_resizable+',location='+p_location ; wbg_popup = window.open(p_url, p_nom, strProperties) ; return ; } //****************************************************************************** //** Popup diaporama //****************************************************************************** function f_popup_diaporama(p_chemin,code_diaporama) { // Définition de la largeur et de la hauteur de la fenêtre, à modifier selon les cas LargeurFenetre = 400; HauteurFenetre = 350; // Calcul des coordonnées du point supérieur gauche de la fenêtre PixelsDepuisHaut = (screen.height - HauteurFenetre) / 2 ; PixelsDepuisGauche = (screen.width - LargeurFenetre) / 2 ; // Construction des paramètres du window.open ParametresOuverture = "width=" + LargeurFenetre + " ,height=" + HauteurFenetre + " ,top=" + PixelsDepuisHaut + " ,left =" + PixelsDepuisGauche ; // Ouverture de la fenêtre, à gérer ensuite comme n'importe quelle fenêtre (en utilisant son nom ;-)) url_diaporama = p_chemin+"pages/diaporama.php?s_code="+code_diaporama+"&action=1"; windowscreencenter = window.open(url_diaporama,"Diaporama",ParametresOuverture).focus() ; } // f_popup_diaporama //****************************************************************************** //** f_affecte_valeur_champ //****************************************************************************** function f_affecte_valeur_champ(p_form,p_champ_source,p_champ_cible) { eval("longueur_liste = document." + p_form + "." + p_champ_source + ".length") ; for (var i=0; i < longueur_liste; i++) { eval("selectionne = document." + p_form + "." + p_champ_source + ".options[i].selected") ; if (selectionne) { eval("document." + p_form + "." + p_champ_cible + ".value = document." + p_form + "." + p_champ_source + ".options[i].value") ; } } } // f_affecte_valeur_champ //****************************************************************************** //** Fonction de lecteur d'un cookie //****************************************************************************** function getCookie(name) { var cname = name + "="; var dc = document.cookie; if (dc.length > 0) { begin = dc.indexOf(cname); if (begin != -1) { begin += cname.length; end = dc.indexOf(";", begin); if (end == -1) end = dc.length; return unescape(dc.substring(begin, end)); } } } // getCookie //****************************************************************************** //** Fonction d'écriture d'un cookie : on passe en paramètre son nom, sa valeur, et //** une date d'expiration en milisecondes (1 jour = 1000 * 60 * 60 * 24) //** //** Exemple : var expdate = new Date (); //** expdate.setTime (expdate.getTime() + (12 * 60 * 60 * 1000)); //** setCookie("memento",TexteCookie,expdate) ; //** //****************************************************************************** function setCookie(name, value, expires) { document.cookie = name + "=" + escape(value) + ((expires != null) ? "; expires=" + expires.toGMTString() : "") + "; path=/"; } // setCookie //****************************************************************************** //** Fonction de recherche remplace (p_recherche est un regexp) //****************************************************************************** function f_recherche_remplace(p_recherche,p_remplace,p_var) { resultat=p_var.search(eval(p_recherche)) if(resultat != -1) { p_var = p_var.replace(eval(p_recherche),p_remplace) ; p_var = f_recherche_remplace(p_recherche,p_remplace,p_var) ; } return p_var ; } // f_recherche_remplace //****************************************************************************** //** RollOver Macromedia //****************************************************************************** function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i*/ //***************************** NE PAS EFFACER *****************************// if (eval("p_param."+p_liste_1+".selectedIndex") == 0) { eval("p_param."+p_champ_1+".value = \"\"") ; eval("p_param."+p_champ_2+".value = \"\"") ; } else { window.top.location.href = eval("p_param."+p_liste_1+".options["+eval("p_param."+p_liste_1+".selectedIndex")+"].value") ; eval("p_param."+p_champ_1+".value = p_param."+p_liste_1+".options["+eval("p_param."+p_liste_1+".selectedIndex")+"].text") ; eval("p_param."+p_champ_2+".value = \"\"") ; } }// f_listedyn // f_listedyn_change function f_listedyn_change(p_form,p_champ_1,p_champ_2,p_var_tableau,z) { for (a = eval("document." + p_form + "." + p_champ_2 + ".options.length-1") ; a>0 ; a--) { eval("document." + p_form + "." + p_champ_2 + ".options[a]=null") ; } for (a=0;a0 ) return true; } return false; } // fin f_TestContientChiffre //****************************************************************************** //** Test la validité d'une date, y compris l'adéquation mois / jour / année //****************************************************************************** function f_TestDateEtendu(d) { if (d == "") // si la variable est vide on retourne faux return false; e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{2}|[0-9]{4})$"); if (!e.test(d)) // On teste l'expression régulière pour valider la forme de la date return false; // Si pas bon, retourne faux // On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier j = parseInt(d.split("/")[0], 10); // jour m = parseInt(d.split("/")[1], 10); // mois a = parseInt(d.split("/")[2], 10); // année // Si l'année n'est composée que de 2 chiffres on complète automatiquement if (a < 1000) { if (a < 89) a+=2000; // Si a < 89 alors on ajoute 2000 sinon on ajoute 1900 else a+=1900; } // Définition du dernier jour de février // Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400 if (a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29; else fev = 28; // Nombre de jours pour chaque mois nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31); // Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] ); } //****************************************************************************** //*** permet de tester si une date est bien dans le futur par rapport à la date du jour //****************************************************************************** function f_TestDateFutur(d) { aujourdhui = new Date() ; d = document.form_creation.s_date_maj.value ; j = parseInt(d.split("/")[0], 10); // jour m = parseInt(d.split("/")[1], 10); // mois a = parseInt(d.split("/")[2], 10); // année datemaj = new Date(a,m-1,j,23,59,59) ; if (datemaj.getTime() < aujourdhui.getTime()) return false; return true; } //f_TestDateFutur //***************************************************** //** Affiche ou masque un élément et change une image //** en correspondance (facultatif) //**************************************************** function f_Affiche(p_Element,p_Image,p_Image2,p_chemin) { var elem = document.getElementById(p_Element); if( elem.style.display == '') { elem.style.display='none'; if (p_Image != '') { document.images[p_Image].src = p_chemin + "img/display/" + p_Image2 + ".gif"; } } else { elem.style.display=''; if (p_Image != '') { document.images[p_Image].src = p_chemin + "img/display/" + p_Image2 + "2.gif"; } } } //***************************************************** //** Affiche ou masque un groupe d'éléments et change une image //** en correspondance (facultatif) //**************************************************** function f_Affiche2(p_Element,p_Image,p_Image2,p_chemin) { for (i = 1 ; i < p_Element.length ; i++) { var elem = document.getElementById(p_Element[i]); if( elem.style.display == '') { elem.style.display='none'; if (p_Image != '') { document.images[p_Image].src = p_chemin + "img/display/" + p_Image2 + ".gif"; } } else { elem.style.display=''; if (p_Image != '') { document.images[p_Image].src = p_chemin + "img/display/" + p_Image2 + "2.gif"; } } } } // Cette fonction est utilisé pour les boutons "suite" qui affichent leur contenu sur une ligne inférieure. function ChangeText(text, p_chemin, tableau_valeur, ligne, colonne) { var elemTR1 = document.getElementById("L" + ligne); var elemTD1 = document.getElementById("ligne_aveugle" + ligne); var elemImg1 = document.getElementById("img_" + colonne + "_" + ligne); if (elemTD1.innerHTML.indexOf(text) == -1) { for (i = 0 ; i < tableau_valeur.length ; i++) //RAZ { var elemTR = document.getElementById("L" + ligne); var elemTD = document.getElementById("ligne_aveugle" + ligne); var elemImg = document.getElementById("img_" + tableau_valeur[i] + "_" + ligne); elemTD.innerHTML = ''; elemImg.src = p_chemin+"suite.gif"; elemTR.style.display='none'; } elemTD1.innerHTML = ""+elemImg1.alt; elemTR1.style.display=''; elemImg1.src = p_chemin+"suite2.gif"; } else { for (i = 0 ; i < tableau_valeur.length ; i++) //RAZ { var elemTR = document.getElementById("L" + ligne); var elemTD = document.getElementById("ligne_aveugle" + ligne); var elemImg = document.getElementById("img_" + tableau_valeur[i] + "_" + ligne); elemTD.innerHTML = ''; elemImg.src = p_chemin+"suite.gif"; elemTR.style.display='none'; } } } // Fonction pour preloader des images. Utilisée pour les regroupements / degroupements et les icones de texte "suite"... function preload_em() { img_1 = new Image img_2 = new Image img_3 = new Image img_4 = new Image img_1.src = "../img/defaut/suite2.gif" img_2.src = "../img/defaut/suite.gif" img_3.src = "../../themes/defaut/img/display/plus2.gif" img_4.src = "../../themes/defaut/img/display/plus.gif" } //************************************************************************// //*************** Fonctions de protection des emails**********************// //************************************************************************// // echange un caractere function replaceChar(theString, oldChar, newChar) { var i = 0; var j = theString.length; for(i=0; i < theString.length; i++) { if(theString.charAt(i) == oldChar) { theString = theString.substring(0,i) + newChar + theString.substring(i+1,theString.length); if(i > j) { // loop-killer, just in case we mess with the code break; } } } return theString; } // lien mailto avec ("mail|domaine.com") function protected_mail_display(mail){ if(mail.length !=0){ var i=0; for (i=0;i<=mail.length;i++){ if (mail.charAt(i) == "|"){ mail = replaceChar(mail,"|","@"); } } document.write(""+mail+""); } } // lien mailto avec ("mail|domaine.com") function protected_mail_display_text(mail,text,classss){ if(mail.length !=0){ var i=0; for (i=0;i<=mail.length;i++){ if (mail.charAt(i) == "|"){ mail = replaceChar(mail,"|","@"); } } document.write(""+text+""); } } // lien mailto avec ("mail|domaine.com",subject) // sans le texte correspondant // util pour placer des images // !!! fermer la balise !!! function protected_mail_display2(mail,subject){ if(mail.length !=0){ var i=0; for (i=0;i<=mail.length;i++){ if (mail.charAt(i) == "|"){ mail = replaceChar(mail,"|","@"); } } document.write(""); } } // lien mailto avec ("mail|domaine.com",subject) // avec le texte correspondant function protected_mail_display3(mail,subject){ if(mail.length !=0){ var i=0; for (i=0;i<=mail.length;i++){ if (mail.charAt(i) == "|"){ mail = replaceChar(mail,"|","@"); } } document.write(""+mail+""); } } // ------------------------------------------------------------------------------------------------------------------- // Fonctions de lecture et d'écriture d'un cookie // ------------------------------------------------------------------------------------------------------------------- // Fonction de lecteur d'un cookie function f_getCookie(name) { var cname = name + "="; var dc = document.cookie; //alert(dc.length); if (dc.length > 0) { begin = dc.indexOf(cname); if (begin != -1) { begin += cname.length; end = dc.indexOf(";", begin); if (end == -1) { end = dc.length; return unescape(dc.substring(begin, end)); } } return ""; } } // Fonction d'écriture d'un cookie : on passe en paramètre son nom, sa valeur, et // une durée de validité en minutes function f_setCookie(name, value, duree) { var expires=new Date() ; expires.setTime(expires.getTime() + (1000 * 60 * duree)) ; document.cookie = name + "=" + escape(value) + ((expires != null) ? "; expires=" + expires.toGMTString() : "") + "; path=/"; }