// 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 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
}