/**
 *	Attache une fonction à un évenement d'un objet du DOM
 *	@param oElt object : objet du DOM
 *	@param sEvt string : évènement
 *	@param fFct reference : fonction à associer
 *
 */
globalAttachEvent = function(oElt, sEvt, fFct) {
	if ( typeof(oElt)=='object' && sEvt.length ) {
		if (document.all) {
			oElt.attachEvent(sEvt, fFct);
		} else {
			sEvt = sEvt.replace(/^on/, '') ;
			oElt.addEventListener(sEvt, fFct, false);
		}
	}
}

/**
 *	Retourne l'ensemble des élements portant le nom de classe donné.
 *	@param sClassName string : classe
 *	@param sTag string : seulement cette balise (optionnel)
 *	@param sEvt object : à partir de cet élément (optionnel)
 *	@return array
 *
 */
document.getElementsByClassName = function(sClassName, sTag, oElt) {
	var sTag = sTag || '*';
	var oElt = oElt || document;
	var arrayDiv = (sTag == "*" && oElt.all) ? oElt.all : oElt.getElementsByTagName(sTag);
	var re = new RegExp('(?:^|\\s+)' + sClassName + '(?:\\s+|$)') ;
   	var arrayElements = new Array() ;
	for (var i=0;i<arrayDiv.length;i++) {
		if ( re.test(arrayDiv[i].className) ) {
			arrayElements[arrayElements.length] = arrayDiv[i] ;
		}
	}
	return arrayElements ;
}

in_array = function(needle, haystack, strict) {
    var found = false, key, strict = !!strict;
    for (key in haystack) {
        if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
            found = true;
            break;
        }
    }
    return found;
}

openPopup = function(a, width, height) {
	window.open(a.href, '', 'toolbar=no,scrollbars=no,resizable=no,height=' + height + ',width=' + width);
}