112 lines
3.8 KiB
JavaScript
Executable File
112 lines
3.8 KiB
JavaScript
Executable File
// on définit le "indexOf" pour <HTMLCollection> et <NodeList>
|
|
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 <input> si sa valeur correspond aux initères
|
|
*
|
|
* @pInputElement<HTMLInputElement> l'élément <input> en question
|
|
* @pMinLength<int> la taille minimum autorisée
|
|
* @pMaxLength<int> la taille maximum autorisée
|
|
* @optAlpha<String> [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(); |