//// ON SELECTIONNE L'ELEMENT PAR SON ATTRIBUT "ID" OU "NAME" //// function element(id_name) { elem_id = document.getElementById(id_name); elem_name = document.getElementsByName(id_name)[0]; if(elem_id!=undefined && elem_id!=null) { return elem_id; } else if(elem_name!=undefined && elem_name!=null) { return elem_name; } else { return false; } } //// ON DONNE UNE VALEUR A UN ELEMENT //// function set_value(id_elem, valeur) { element(id_elem).value = valeur; } //// ON RECUPERE LA VALEUR D'UN ELEMENT //// function get_value(id_elem) { return element(id_elem).value; } //// VERIFIE L'EXISTANCE D'UN ELEMENT //// function existe(id_elem) { if (element(id_elem)!=false) { return true; } else { return false; } } //// SELECTION D'UNE CHECKBOX / BOUTON RADIO //// function set_check(id_elem, valeur) { if(existe(id_elem)) { if (valeur==true) { element(id_elem).checked = true; } else if (valeur==false) { element(id_elem).checked = false; } else if (valeur=="bascule") { if(element(id_elem).checked==true) { element(id_elem).checked = false; } else { element(id_elem).checked = true; } } } } //// CHECKBOX / BOUTON RADIO SELECTIONNE ? //// function is_checked(id_elem) { if (existe(id_elem) && element(id_elem).checked==true) { return true; } else { return false; } } //// NB DE CHECKBOX SELECTIONNEES (TABLEAU) //// function nb_box_checked(id_elem) { var checked = 0; tab_checkbox = document.getElementsByName(id_elem); for(i=0; ielement cliqué / id_reference=>base de l'identifiant du box et du txt / style=> style du text désélectionné) //// function check_txt_box(id_element, id_reference, style_select) { if(style_select==undefined) style_select = "lien_select"; id_txt = "txt_"+id_reference; id_box = "box_"+id_reference; type_select = element(id_element).type; if(element(id_box).disabled==false) { // Clique texte : bascule valeur checkbox / change couleur du text if(type_select!="checkbox") set_check(id_box,"bascule"); if(is_checked(id_box)==true) element(id_txt).className = style_select; else element(id_txt).className = "lien"; } } //// CONFIRMATION AVANT REDIRECTION //// function confirmer(text_confirm, adresse) { if(confirm(text_confirm)) redir(adresse); } //// CONTROLE D'UN MAIL //// function controle_mail(mail) { verif = new RegExp("^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$"); return verif.test(mail); } //// CHERCHE UNE EXPRESSION DANS UNE CHAINE DE CARACTERES //// function trouver(expression, chaine) { if(chaine.search(expression)==-1) return false; else return true; } //// OUVERTURE D'UNE FENETRE //// function popup(adresse, nom, width, height) { // Nom if(nom==undefined || nom==null) nom = Math.floor(Math.random()*1000); // taille (google map = 500 / popup agora = 300) taille_defaut = (trouver(".php",adresse)==false) ? 500 : 300; if(width==undefined || width==null) width = taille_defaut; if(height==undefined || height==null) height = taille_defaut; // Lance le popup window.open(adresse, nom, "width="+width+",height="+height+",left=100,top=100,scrollbars=yes,resizable=yes,directories=no,location=no,menubar=no,status=no,toolbar=no,dependent=yes"); } //// REDIRECTION D'UNE PAGE //// function redir(adresse) { window.location.href = adresse; } //// CONTRÔLE DE CONNEXION À L'AGORA //// function controle_connexion(text_alert, login, passord) { if(get_value("login")=="" || get_value("login")==login || get_value("password")=="" || get_value("password")==passord){ alert(text_alert); return false; } } //// AFFICHAGE OU MASQUAGE D'UN DIV (valeur=true/false/bascule | type_display=inline/block) //// function afficher(id_elem, valeur, type_display) { // INITIALISATION if(valeur==null || valeur==undefined) valeur = "bascule"; if(type_display==null || type_display==undefined) type_display = "inline"; // AFFICHE / MASQUE / BASCULE if(valeur==true) { element(id_elem).style.display = type_display; } else if(valeur==false) { element(id_elem).style.display = "none"; } else if(valeur=="bascule"){ if($('#'+id_elem).css('display')==type_display) { element(id_elem).style.display = "none"; } else { element(id_elem).style.display = type_display; } } } //// AFFICHAGE OU MASQUAGE D'UN DIV AVEC FADING //// function afficher_dynamic(id_elem, type_affichage, afficher) { if(afficher==undefined) { if($('#'+id_elem).css('display')=="none") { afficher = true; } else { afficher = false; } } if(type_affichage==undefined || type_affichage=="show"){ if(afficher==true) { $("#"+id_elem).slideDown(); } else { $("#"+id_elem).slideUp(); } } else if(type_affichage=="fade"){ if(afficher==true) { $("#"+id_elem).fadeIn(200); } else { $("#"+id_elem).fadeOut(200); } } return afficher; } //// AFFICHAGE / MASQUAGE DU MENU CONTEXTUEL //// function afficher_menu_contextuel(id_elem, clickDroit) { // Affiche le menu contextuel afficher(id_elem, true); // Largeur entre 230 & 350 pixels if(element(id_elem).offsetWidth > 350) element(id_elem).style.width = "350px"; else if(element(id_elem).offsetWidth < 230) element(id_elem).style.width = "230px"; // Position de l'icone "plus" : par rapport à la page & par rapport a l'element parent ico_position_page = $("#icone_"+id_elem).offset(); ico_position_parent = $("#icone_"+id_elem).position(); // Position de référence : icone "plus" OU souris (click droit + pas evt d'agenda) if(clickDroit==true && trouver("evenement",id_elem)==false){ posMenuX = posSourisX; posMenuY = posSourisY; decalagePosMenu = 12; } else { posMenuX = ico_position_parent.left; posMenuY = ico_position_parent.top; decalagePosMenu = 4; } // Position normale du menu (fonction de la position de référence) OU position décalée si on est en bordure de page : si "(position top menu + hauteur menu) > hauteur page" alors "position top menu = position top menu - hauteur menu" menuX = ((posMenuX + element(id_elem).offsetWidth) < $(window).width()) ? (posMenuX - decalagePosMenu) : (posMenuX - element(id_elem).offsetWidth + decalagePosMenu); menuY = ((posMenuY + element(id_elem).offsetHeight) < $(window).height()) ? (posMenuY - decalagePosMenu) : (posMenuY - element(id_elem).offsetHeight + decalagePosMenu); // On place le menu element(id_elem).style.left = menuX+"px"; element(id_elem).style.top = menuY+"px"; } //// RECUPERE EN PERMANENCE LA POSITION DE LA SOURIS //// $(document).mousemove(function(e){ posSourisX = e.pageX; posSourisY = e.pageY; }); //// INFOBULLE //// function bulle(message) { if(message!="") { //// On positionne l'infobulle $(document).mousemove(function(e){ // Position de la souris OU position décalé si en bordure de page => (position Top souris + Hauteur element) > Hauteur page -> position Top element = position Top souris - Hauteur element bulleX = ((e.pageX + element("infobulle").offsetWidth) > $(window).width()) ? (e.pageX - element("infobulle").offsetWidth) : e.pageX; bulleY = ((e.pageY + element("infobulle").offsetHeight) > $(window).height()) ? (e.pageY - element("infobulle").offsetHeight) : e.pageY + 15; // On place l'infobulle element("infobulle").style.left = bulleX+"px"; element("infobulle").style.top = bulleY+"px"; }); //// Texte dans l'"infobulle" element("infobulle").innerHTML = "
"+message+"
"; //// Affichage avec un temps de latence function affiche_bulle(){ if(element("infobulle").style.left.replace("px","")>1) element("infobulle").style.visibility = "visible"; } timeoutID_bulle = window.setTimeout(affiche_bulle,300); } } //// INFOBULLE FIN function bullefin() { if(typeof timeoutID_bulle!=undefined){ window.clearTimeout(timeoutID_bulle); element("infobulle").style.visibility = "hidden"; } } //// AJAX : FONCTION DE LANCEMENT D'UNE REQUETE XMLhttpRequest : PENSER A UTILISER urlencode() DANS CHAQUE VARIABLE LE NESSESSITANT !! //// function requete_ajax(methode, page_requete, donnees) { // On initialise l'objet var xhr_object = null; // XMLHttpRequest sous Firefox ou Internet Explorer if(window.XMLHttpRequest) { xhr_object = new XMLHttpRequest(); } else if(window.ActiveXObject) { xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); } // On lance la requete (true/false : asynchrone), on précise s'il s'agit d'un formulaire et on envoi les données si besoin xhr_object.open(methode, page_requete, false); if(methode=="POST") { xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); } xhr_object.send(donnees); // On retourne le résultat if(xhr_object.readyState==4) return Http_Request_Result = xhr_object.responseText; } //// RECUP' L'EXTENSION D'UN FICHIER //// function extension(chemin_fichier) { var tab_fichier = chemin_fichier.substring(chemin_fichier.lastIndexOf("\\")+1).split("."); if(tab_fichier.length > 0) return tab_fichier[tab_fichier.length-1].toLowerCase(); } //// FONCTION IN_ARRAY() SIMILAIRE A PHP //// function in_array(tableau, valeur) { for(compteur=0; compteur < tableau.length; compteur++){ if(tableau[compteur]==valeur) return true; } return false; } //// AFFICHER DU CONTENU DANS LA PAGE FANTOME //// function contenu_page_fantome(contenu, nocloseicone, nobackground) { if(nobackground!=null) element("page_fantome").style.backgroundImage="url('')"; if(nocloseicone!=null) afficher("page_fantome_fermer",false); element("page_fantome_iframe").src = ""; element("page_fantome_contenu").innerHTML = contenu; afficher("page_fantome",true); } //// AFFICHER UN "PROMPT" DANS LA PAGE FANTOME //// function prompt_page_fantome(libelle, action_js, input_type, input_value) { // Type par défaut : text if(input_type==undefined || input_type==null) input_type = "text"; if(input_value==undefined || input_value==null) input_value = ""; // Construit le formulaire ("return false" pour pas recharger la page sans faire le javascript...) formulaire = "
"; formulaire += "

"+libelle+"

"; formulaire += "   "; formulaire += ""; formulaire += "
"; // Affiche le prompt et met le focus contenu_page_fantome(formulaire); element("prompt_result").focus(); } //// AFFICHER UNE IFRAME DANS LA PAGE FANTOME //// function iframe_page_fantome(url, page_width) { // Affiche la page fantome afficher("page_fantome",true); // Nouvelle URL -> on charge l'iframe ! url_old_src = element("page_fantome_iframe").src.substring(element("page_fantome_iframe").src.lastIndexOf("/")+1); url_src = url.substring(url.lastIndexOf("/")+1); if(url_old_src=="" || url_old_src!=url_src) { // Largeur de la page if(page_width==undefined) page_width = "0%"; element("page_fantome_iframe").style.width = page_width; // Affichage pleine page, sans marges if(page_width=="100%"){ element("page_fantome_iframe").style.margin = "0px"; element("page_fantome_iframe").style.height = element("page_fantome").offsetHeight + "px"; } // Affichage avec marges else{ element("page_fantome_iframe").style.margin = "30px"; element("page_fantome_iframe").style.height = (element("page_fantome").offsetHeight - 60) + "px"; } // Charge L'iframe element("page_fantome_contenu").innerHTML = ""; element("page_fantome_iframe").src = url; } // On masque la barre de scroll de la page principale document.body.style.overflow = "hidden"; } //// MASQUER L'IFRAME DE LA PAGE FANTOME //// function page_fantome_close() { element('page_fantome_contenu').innerHTML = ""; if(trouver("video",element("page_fantome_iframe").src)==true) element("page_fantome_iframe").src = ""; // réinitialise pour ne pas faire tourner la video en fond.. afficher('page_fantome',false); document.body.style.overflow = "auto"; } //// EDITION D'UN ELEMENT DANS UN POPUP / UNE IFRAME (page fantome) //// function edit_iframe_popup(url) { // Ie 7 : ne redimensionne pas correctement les iframes en basse résolution... special_ie7 = (document.documentElement.clientHeight < 750 && navigateur()=="ie" && version_ie() < 8) ? true : false; if(edition_popup==1 || special_ie7==true) popup(url); else iframe_page_fantome(url); } //// REDIMENSIONNE UNE IFRAME / UN POPUP //// function resize_iframe_popup(width, height) { // Largeur et hauteur : pixels ou % if(isNaN(width)==true) width = (screen.width / 100 ) * width.replace("%",""); if(isNaN(height)==true) height = (screen.height / 100 ) * height.replace("%",""); // Page de l'iframe (si c'est le cas) et de la page principale iframe = window.parent.element("page_fantome_iframe"); page_iframe = (iframe.src) ? iframe.src.substring(iframe.src.lastIndexOf("/")+1) : ""; page_principale = window.location.href.substring(window.location.href.lastIndexOf("/")+1); // Popup : redimensionne tout if(page_iframe!=page_principale) { window.resizeTo(width, height); } // Iframe : redimensionne uniquement la largeur (hauteur toujours de 100%) else{ iframe.style.width = width+"px"; document.body.style.backgroundColor = "transparent"; } } //// CONTENU DU TinyMCE VIDE ? //// function tinymce_vide(nom_champ) { contenu = tinyMCE.get(nom_champ).getContent(); if(contenu.length==0 || contenu=="
 
") return true; } //// URLENCODE POUR JAVASCRIPT //// function urlencode(texte) { texte = texte.replace('!', '%21'); texte = texte.replace('"', '%22'); texte = texte.replace('$', '%24'); texte = texte.replace('%', '%25'); texte = texte.replace('&', '%26'); texte = texte.replace('\'', '%27'); texte = texte.replace('(', '%28'); texte = texte.replace(')', '%29'); texte = texte.replace('*', '%2A'); texte = texte.replace('+', '%2B'); texte = texte.replace(',', '%2C'); texte = texte.replace('/', '%2F'); texte = texte.replace(':', '%3A'); texte = texte.replace(';', '%3B'); texte = texte.replace('?', '%3F'); texte = texte.replace('\\', '%5C'); texte = texte.replace('[', '%5B'); texte = texte.replace(']', '%5D'); texte = texte.replace('^', '%5E'); texte = texte.replace('`', '%60'); texte = texte.replace('{', '%7B'); texte = texte.replace('|', '%7C'); texte = texte.replace('}', '%7D'); texte = texte.replace('~', '%7E'); texte = texte.replace('=', '%3D'); texte = texte.replace('£', '%A3'); texte = texte.replace('§', '%A7'); texte = texte.replace('@', '%40'); return texte; } //// ANCRE NOMMEE : SCROLL VERS UN ELEMENT AVEC JQUERY //// function goToByScroll(id_elem) { $('html,body').animate({scrollTop: $("#"+id_elem).offset().top},'slow'); } //// CHANGE LA COULEUR ET LE STYLE D'UN INPUT