/** * Renvoi la longueur du scroll horisontal * * @return number */ function getScrollX() { var scrollX = 0; if (document.body.scrollTop != undefined) // IE model { var ieBox = document.compatMode != "CSS1Compat"; var cont = ieBox ? document.body : document.documentElement; scrollX = cont.scrollLeft; } else { scrollX = window.pageXOffset; } return scrollX; } /** * Renvoi la longueur du scroll vertical * * @return number */ function getScrollY() { var scrollY = 0; if (document.body.scrollTop != undefined) // IE model { var ieBox = document.compatMode != "CSS1Compat"; var cont = ieBox ? document.body : document.documentElement; scrollY = cont.scrollTop; } else { scrollY = window.pageYOffset; } return scrollY; } /** * Renvoi la largeur visible de la fenetre du navigateur * * @return number */ function getClientWidth() { var myWidth = 0; if( typeof( window.innerWidth ) == 'number' ) { //Non-IE myWidth = window.innerWidth; } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { //IE 6+ in 'standards compliant mode' myWidth = document.documentElement.clientWidth; } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { //IE 4 compatible myWidth = document.body.clientWidth; } return myWidth; } /** * Renvoi la hauteur visible de la fenetre du navigateur * * @return number */ function getClientHeight() { var myHeight = 0; if( typeof( window.innerWidth ) == 'number' ) { //Non-IE myHeight = window.innerHeight; } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { //IE 6+ in 'standards compliant mode' myHeight = document.documentElement.clientHeight; } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { //IE 4 compatible myHeight = document.body.clientHeight; } return myHeight; } /** * Renvoi la hauteur totale de la page * * @return number */ function getPageInnerWidth() { var width = 0; if(getBrowserName()=='Explorer') { if(document.body.clientWidth "+obj[i]; } else if(isObject(obj[i])) { obj[i] = "Object"; chaine += "\n"+profondeurElement+"["+i+"] => "+obj[i]; } else if(isString(obj[i])) { obj[i] = obj[i].replace("\r\n",'\n'); obj[i] = obj[i].replace("\n",'\n'); obj[i] = obj[i].replace("\t",'\t'); chaine += "\n"+profondeurElement+"["+i+"] => "+obj[i]; } else if(isNull(obj[i])) { chaine += "\n"+profondeurElement+"["+i+"] => null"; } else if(isNumber(obj[i])) { chaine += "\n"+profondeurElement+"["+i+"] => "+obj[i]; } else if(isBoolean(obj[i])) { chaine += obj[i] ? "\n"+profondeurElement+"["+i+"] => true" : "\n"+profondeurElement+"["+i+"] => false"; } } // marqueur fin tableau chaine += "\n"+profondeurArray+")"; } else chaine = obj; return chaine; } /** * Transoforme un objet en tableau associatif * * @param string nom de la fonction */ function objectToArray(variable) { var typeofvar = typeof(variable); if(typeofvar.toLowerCase()=="object") { var tmpVariable = new Array(); for(var i in variable) { tmpVariable[i] = variable[i]; } variable = tmpVariable; } if(isArray(variable)) { for(i in variable) { variable[i] = objectToArray(variable[i]); } } return variable; } /** * Centre un element HTML dans la page en jouant sur les attributs * left et top CSS de celui ci (element en position absolue necessaire) * Ok sous firefox 1.5, IE6, Safari 1.3 * * @param obj element a centrer */ function centreElement(element) { // dimensions visible de l'element var elementH = element.offsetHeight; var elementL = element.offsetWidth; // dimensions visible de l'ecran var myWidth = getClientWidth(); var myHeight = getClientHeight(); // scroll de l'ecran var scrollX = getScrollX(); var scrollY = getScrollY(); // coordonnées X et Y de la fenetre pour le centrage var elementX = (myWidth/2)-(elementL/2)+scrollX; var elementY = (myHeight/2)-(elementH/2)+scrollY; // applique les nouvelles coordonnées element.style["left"] = elementX+"px"; element.style["top"] = elementY+"px"; } /** * Détection du navigateur * Trouve le nom du navigateur, sa version, et l'OS sur lequel il est lancé * * Récupéré sur http://www.quirksmode.org/js/detect.html * * Utilisation: * BrowserDetect.init(); initialisation * BrowserDetect.browser renvoi le nom du navigateur * BrowserDetect.version renvoi la version du navigateur * BrowserDetect.OS renvoi l'OS du navigateur */ var BrowserDetect = { init: function () { this.browser = this.searchString(this.dataBrowser) || "An unknown browser"; this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "an unknown version"; this.OS = this.searchString(this.dataOS) || "an unknown OS"; }, searchString: function (data) { for (var i=0;i0) { for(var i=0; i0) { for(var indice=0;indice=0;i--) { liste.options[i] = null; } } /** * Indique si une option d'element type SELECT est selectionnee * * @param ojb option du select à traiter * * @return bool */ function formIsOptionSelectSelected(option) { if(option.selected=="selected" || option.selected==true) { return true; } else return false; } /** * Defini le selected de l'option d'un element type SELECT * * @param ojb option du select à traiter * @param bool indique si l'option doit etre selectionnee ou pas * * @return bool */ function formSetOptionSelect(option,selectionne) { if(selectionne==true) { if(option.selected=="selected" || option.selected==null) { option.selected = "selected"; } if(option.selected==true || option.selected==false) { option.selected = true; } } else { if(option.selected=="selected" || option.selected==null) { option.selected = null; } if(option.selected==true || option.selected==false) { option.selected = false; } } } /** * Ajoute un élément à une liste deroulante * * @param ojb l'objet select à traiter * @param sting la valeur de l'option * @param sting le texte de l'option * @param bool si l'element doit etre selectionné ou pas */ function formAddOptionSelect(liste,valeur,texte,selectionne) { var monOption = new Option(texte,valeur,false,selectionne); liste.options[liste.length] = monOption; } /** * Récupere la valeur de l'élément selectionné dans une liste deroulante. * Retourne false en cas d echec * * @param ojb l'objet select à traiter * * @return mixed valeur selectionnée */ function formGetValSelect(liste) { var res = false; try { res = liste.options[liste.selectedIndex].value; } catch(erreur) { res = false; } return res; } /** * Récupere la valeur de l'élément selectionné dans une liste deroulante * * @param ojb l'objet select à traiter * * @return array tableau des valeurs selectionnées */ function formGetValSelectMult(liste) { var valeurs = new Array(); for (var i=0; i0 && objH>0) { obj.style["visibility"] = "visible"; var indice; var inX = false; var inY = false; for(indice=objX;indice=fenX && indice<=(fenX+fenL) ) inX = true; } for(indice=objY;indice=fenY && indice<=(fenY+fenH) ) inY = true; } if(inX==true && inY==true) { return true; } } return false; } /** * Gestion d'une zone d'onglets * Pour fonctionner, le document HTML doit contenir 3 elements: * - une zone qui contiendra les onglets, * - une zone qui contiendra les contenus correspondant aux onglets, * - une zone de declaration des onglets * * Gere le changement de classe CSS au survol et a la selection d'un onglet. * * Exemple d'utilisation: * *
*
*
*
*
Fiche
*
[Fiche] Fusce mattis adipiscing tortor. Morbi sem ligula, convallis at, posuere et, euismod non, nisi. Suspendisse mi. Donec lacus mi, laoreet sollicitudin, viverra non, imperdiet nec, quam. Fusce pellentesque nibh euismod enim. Aliquam sagittis vestibulum massa. Donec ac sapien. Sed sed tellus sit amet ligula auctor iaculis. Sed mattis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nam eget nulla. Nullam sagittis dapibus urna. Maecenas sagittis rutrum ligula. In ultricies aliquet augue. Nulla lorem. Aliquam scelerisque erat viverra erat.
*
*
*
Logs
*
[Logs] Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.
*
*
*
Stats
*
[Stats] Nullam rutrum, nibh ac lobortis euismod, nulla lacus eleifend eros, non fermentum nulla ante at sapien. Fusce mattis adipiscing tortor. Morbi sem ligula, convallis at, posuere et, euismod non, nisi. Suspendisse mi. Donec lacus mi, laoreet sollicitudin, viverra non, imperdiet nec, quam. Fusce pellentesque nibh euismod enim. Aliquam sagittis vestibulum massa. Donec ac sapien. Sed sed tellus sit amet ligula auctor iaculis. Sed mattis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nam eget nulla. Nullam sagittis dapibus urna. Maecenas sagittis rutrum ligula. In ultricies aliquet augue. Nulla lorem. Aliquam scelerisque erat viverra erat.
*
*
* * * * */ var _ongletsParams = new Array(); /** * Initialisation d'une zone d'onglet. * Parse la zone de declaration d'onglets pour remplir les zones onglets et contenus onglets. * Associe les evennement onclick, onmouseout, onmouseover sur chaque onglet * * @param obj element contenant la declaration des onglets * @param obj element destine a contenir les onglets * @param obj element destine a contenir les contenus correspondants aux onglets * @param string classe CSS d'un onglet * @param string classe CSS d'un onglet selectionne * @param string classe CSS d'un onglet survolé * @param string classe CSS d'un contenu d'onglet * @param string classe CSS d'un contenu d'onglet selectionne */ function ongletsInit(ongletsData, ongletsItem, ongletsContent, classCssOngletItem,classCssOngletItemActive,classCssOngletItemOver,classCssOngletContenu,classCssOngletContenuActive) { var indiceOnglet = _ongletsParams.length; // ajoute le novueau systeme d'onglet au parametre global _ongletsParams[indiceOnglet] = { "classCssOngletItem" : classCssOngletItem, "classCssOngletItemActive" : classCssOngletItemActive, "classCssOngletItemOver" : classCssOngletItemOver, "classCssOngletContenu" : classCssOngletContenu, "classCssOngletContenuActive" : classCssOngletContenuActive, "elements" : new Array(), "itemElements" : new Array(), "contentElements" : new Array() }; // parse ongletsData for(var i=0; i','¢','£','¤','¥','¦','§','¨','©','ª','«', '¬','­','®','¯','°','±','²','³','´','µ','¶', '·','¸','¹','º','»','¼','½','¾'); var entities = new Array ('amp','agrave','aacute','acirc','atilde','auml','aring', 'aelig','ccedil','egrave','eacute','ecirc','euml','igrave', 'iacute','icirc','iuml','eth','ntilde','ograve','oacute', 'ocirc','otilde','ouml','oslash','ugrave','uacute','ucirc', 'uuml','yacute','thorn','yuml','Agrave','Aacute','Acirc', 'Atilde','Auml','Aring','AElig','Ccedil','Egrave','Eacute', 'Ecirc','Euml','Igrave','Iacute','Icirc','Iuml','ETH','Ntilde', 'Ograve','Oacute','Ocirc','Otilde','Ouml','Oslash','Ugrave', 'Uacute','Ucirc','Uuml','Yacute','THORN','euro','quot','szlig', 'lt','gt','cent','pound','curren','yen','brvbar','sect','uml', 'copy','ordf','laquo','not','shy','reg','macr','deg','plusmn', 'sup2','sup3','acute','micro','para','middot','cedil','sup1', 'ordm','raquo','frac14','frac12','frac34'); for(var i=0; i'); return newString; } /** * Remplace le contenu d'une chaine entre deux balises * Ok Firefox 1.5, IE6, Safari 1.3 * * @param string chaine a traiter * @param string chaine a inserer * @param string marqueur de debut * @param string marqueur de fin * * @return string */ function replaceIntoStr(string, data, marqueurDepart, marqueurFin) { if(string.search(marqueurDepart)>=0 && string.search(marqueurFin)>=0) { var debut_str = string.search(marqueurDepart) + marqueurDepart.length; var fin_str = string.search(marqueurFin); var tmpStr1 = string.slice(0,debut_str); var tmpStr2 = string.slice(fin_str); var newString = tmpStr1 + data + tmpStr2; return newString; } else return string; } /** * Extrait le contenu d'une chaine entre deux balises * Ok Firefox 1.5, IE6, Safari 1.3 * * @param string chaine a traiter * @param string marqueur de debut * @param string marqueur de fin * * @return string */ function extractFromStr(string, marqueurDepart, marqueurFin) { var debut_str = string.search(marqueurDepart) + marqueurDepart.length; var fin_str = string.search(marqueurFin); return string.slice(debut_str,fin_str); } /** * Supprime les espaces (ou d'autres caractères) en début et fin de chaîne * Ok Firefox 1.5, IE6, Safari 1.3 * * @param string chaine a traiter * * @return string */ function trim(chaine) { return chaine.replace(/^\s*([^ ]*)\s*$/, "$1"); } /** * Encode une chaine de carractère au format UTF-8 * * @param string chaine a traiter * * @return string */ function utf8Encode(string) { string = string.replace(/\r\n/g,"\n"); var utftext = ""; for (var n=0; n127) && (c<2048)) { utftext += String.fromCharCode((c >> 6) | 192); utftext += String.fromCharCode((c & 63) | 128); } else { utftext += String.fromCharCode((c >> 12) | 224); utftext += String.fromCharCode(((c >> 6) & 63) | 128); utftext += String.fromCharCode((c & 63) | 128); } } return utftext; } /** * Decode une chaine de carractère au format UTF-8 * * @param string chaine a traiter * * @return string */ function utf8Decode(utftext) { var string = ""; var i = 0; var c = c1 = c2 = 0; while(i < utftext.length) { c = utftext.charCodeAt(i); if (c < 128) { string += String.fromCharCode(c); i++; } else if((c > 191) && (c < 224)) { c2 = utftext.charCodeAt(i+1); string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2; } else { c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; } } return string; }