// on définit le "indexOf" pour et NodeList.prototype.indexOf = HTMLCollection.prototype.indexOf = function(searchedElement){ for( var i = 0 ; i < this.length ; i++ ) // on parcours la collection // si on trouve l'élement, on retourne son rang if( this[i] == searchedElement ) return i; // si on a rien trouvé, on retourne -1 return -1; }; function addClass(el, pClass){ if( el.className.length > 0 && el.className != pClass ) el.className = el.className + ' ' + pClass; else el.className = pClass; } function remClass(el, pClass){ if( el.className.indexOf(pClass) > -1 ) // si la class de l'élement contient la classe à enlever el.className = el.className.substr(0, el.className.indexOf(pClass)) + '' + el.className.substr(el.className.indexOf(pClass)+pClass.length); } // var completeAccentList = "àAAÀAAÁÂÒÓÔÕÖØòÒÓÔÕ-ÖØòó_ôõöøÈÉÊËèéêëÇçÒÓÔÕÖØòÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ"; var accentList = 'àÀÈÉÊËèéêëçîïúû'; /* Met à jour l'état visuel d'un si sa valeur correspond aux initères * * @pInputElement l'élément en question * @pMinLength la taille minimum autorisée * @pMaxLength la taille maximum autorisée * @optAlpha [OPT] TRUE si uniquement alphanumérique */ function checkVARCHAR(pInputElement, pMinLength, pMaxLength, optAlpha){ var optAlpha = (arguments.length > 3) ? optAlpha : false; optAlpha = (typeof optAlpha == 'boolean') ? optAlpha : false; var varcharRegExp; if( optAlpha ) varcharRegExp = new RegExp('^(['+accentList+'a-z]{'+pMinLength+','+pMaxLength+'})$', 'i'); // only alpha characters else varcharRegExp = new RegExp('^(['+accentList+'\\w -]{'+ pMinLength+','+pMaxLength+'})$', 'i'); // any word character if( pInputElement.value.match(varcharRegExp) != null || pInputElement.value == '' ){ // si champ correct addClass(pInputElement, 'validated'); if( pInputElement.required ) remClass(pInputElement, 'invalid'); }else{ remClass(pInputElement, 'validated'); if( pInputElement.required ) addClass(pInputElement, 'invalid'); } } var notifState = false; // VRAI si affiché, sinon FAUX function notif(pType, pTitle, pMessage){ /* [0] Variables globales ======================================================*/ var notifElement = document.getElementById('NOTIFBAR'); var lTitle = [ 'Oups!', // error 'Cool!', // success 'Tout va bien!', // info ]; var lMessage = [ 'Un erreur a eu lieu. Veuillez réessayer.', // error 'Tout s\'est bien passé.', // success 'On va tout vous expliquer.' // info ]; /* [1] On formatte et vérifie les variables ======================================================*/ if( arguments.length == 0 ) return false; // si pas de param, on quitte var pTitle = (arguments.length>1) ? pTitle : null; var pMessage = (arguments.length>2) ? pMessage : null; var index = ['error', 'success', 'info'].indexOf(pType); if( index == -1 ) return false; // si pType incorrect, on quitte /* [2] On initialise la box et les variables ======================================================*/ notifElement.className = ''; // on supprime toute classe existante addClass(notifElement, pType); // on met en page en fonction du type if( pTitle == null ) pTitle = lTitle[index]; if( pMessage == null ) pMessage = lMessage[index]; /* [3] On met en page et on affiche ======================================================*/ notifElement.children[1].children[0].innerHTML = pTitle; // on attribue le titre notifElement.children[1].children[1].innerHTML = pMessage; // on attribue le texte addClass(notifElement, 'active'); // on affiche la boite } var API = new APIClass();