/** Affiche ou masque un élément
 */
function masqueSimple(i){
	var obj = document.getElementById(i).style;
	obj.display = (obj.display=="none") ? "block" : "none";
} 

/** Affiche ou masque un élément
 */
function masquer(obj,s,c){
	var objs = document.getElementById(obj.id+s).style;
	objs.display = (objs.display=="none") ? "block" : "none";
	if (c!=null) fondOver(obj,c);
}

/** Affiche ou masque une ligne de tableau
 */
function masquerTr(i,s){
	var obj = null;
	for (n = 0; obj = document.getElementById(i+s+n); n ++){
		obj.style.display = (obj.style.display=="none") ? ((navigator.userAgent.indexOf('MSIE')!=-1) ? "block" : "table-row") : "none";
	}
}

/** Modifie la couleur de fond d'un élément
 */
function fondOver(obj){ 
	obj.className = "over";
	obj.onmouseout = function (){
		this.className = "";
	}
}

/** Catelogue -----------------------------------------------------------------
 */

/** Affichage de la sous famille
 */
sousFamPre = null;
function sousFam(obj){
	if (sousFamPre){
		if (sFP = document.getElementById(sousFamPre.id+"_ul")) sFP.style.display = "none";
		sousFamPre.firstChild.className = "";
	}
	obj.firstChild.className = "over";
	if (sF = document.getElementById(obj.id+"_ul")) sF.style.display = "block";
	obj.onmouseout = function(){
		if (sFam = document.getElementById(this.id+"_ul")) sFam.style.display = "none";
		this.firstChild.className = "";
	}
	sousFamPre = obj;
}

/** Remplacement de chaque caractère "ancien" d'une chaine par le caractère "nouveau" dans la "chaine" passée en paramètre
 */
function remplacer(chaine,ancien,nouveau){
	while (chaine.indexOf(ancien)!=-1){
		chaine = chaine.replace(ancien,nouveau);
	}
	return(chaine);
}

/** Tri sur une colonne d'un tableau par groupe de "nl" lignes
 */
var tri = false;
var ci = 0;
function trier(obj){
	fondOver(obj);
	// Lors d'un clic sur une en-tête de tableau
	obj.onmouseup = function(){
		// Récupération de l'environnement
		ci = this.cellIndex;
		var t = this.parentNode.parentNode;
		var l = this.parentNode;
		var li = l.rowIndex;
		// Récupération des lignes à trier
		var n = 0;
	    var lignes = new Array(new Array());
	    for (var i = li+1; t.rows[i]; i ++) if (!t.rows[i].id.match(/_tr/)) lignes[n ++] = t.rows[i];
		// Tri des lignes selon le type de données de la colonne
		var v = t.rows[li+1].cells[ci].innerHTML;
		if (isNaN(String(v)) || v=="") lignes.sort(triAlpha);
		else lignes.sort(triNum);
		tri = !tri;
		// Mise à jour de l'affichage du tableau
		for (var i = 0; l = lignes[i]; i ++){
			l.style.backgroundColor = (i%2!=0) ? '#ddd' : '#eee';
			t.appendChild(l);
			for (var j = 0; ln = document.getElementById(lignes[i].id+'_tr'+j); j ++){
				ln.style.backgroundColor = "transparent"/*l.style.backgroundColor*/;
				t.appendChild(ln);
			}
		}
	}
}
/** Tri numérique
 */
function triNum(a,b){
	x = parseInt(a.cells[ci].innerHTML);
	y = parseInt(b.cells[ci].innerHTML);
	return((tri) ? y-x : x-y);
}
/** Tri alphabétique
 */
function triAlpha(a,b){
	x = a.cells[ci].innerHTML.toLowerCase();
	y = b.cells[ci].innerHTML.toLowerCase();
	if (x==y) return(0);
	else return(((x<y && !tri) || (x>=y && tri)) ? 1 : -1);
}

/** Affiche l'agrandissement d'une image
 */
function fenetre(p,i){
	window.open('../image/?a=0&p='+p+'&i='+i,'popup');
}

/** Affiche l'agrandissement d'une image d'un album
 */
function album(p,i){
	window.open('../image/?a=1&p='+p+'&i='+i,'popup');
}

/** Change de page
 */
function changerPage(f,p){
	with (f){
		action = ".?p="+p;
		submit();
	}
}

/** Signale une erreur
 */
function signalerErreur(a,i){
	with (document.erreur){
		idAdm.value = a;
		idNws.value = i;
		changerPage(document.erreur,"erreur");
	}
}
