// GMI Function that will hide or show ALL select boxes on the page to work around a bug in internet explorer
// GMI TODO: Hidding only minimal select boxes whould also be cool

//
// on utilise ce tableau pour retenir les select qui était caché a la base, et qui ne doivent donc pas etre visible apres l'overlib
var tab_hidden_select = new Array();
var nb_cell_hidden_select = 0;

function EB_setAllSelectsVisibility(visibility) {

	if (navigator.vendor == ("Netscape6") || navigator.vendor == ("Netscape7") || navigator.product == ("Gecko")) // not for Gecko/ns6, only ie(ns4 ?)
		return;
	
	if(visibility == 'hidden'){
		// on écrase tab_hidden_select parceaque d'autre select ont pu etre caché depuis
		nb_cell_hidden_select = 0;
	}
	
	var a,b,i, last_cel;
	for (a=0;a<document.forms.length;a++){
		for (b=0;b<document.forms[a].elements.length;b++){  
			if(document.forms[a].elements[b].type == "select-one" || document.forms[a].elements[b].type == "select-multiple"){
				
				if(visibility == 'hidden'){
					// on mouse over
					if( document.forms[a].elements[b].style.visibility == 'hidden'){
						// ce select est caché, il ne faudra donc pas l'afficher on mouse out
						
						// on mémorise le select caché
						tab_hidden_select[nb_cell_hidden_select] = new Array();
						tab_hidden_select[nb_cell_hidden_select]['a'] = a; 
						tab_hidden_select[nb_cell_hidden_select]['b'] = b;
						
						nb_cell_hidden_select ++;
					}else{
						// ce select était visible, on le cache
						document.forms[a].elements[b].style.visibility = visibility;
					}
				}else{
					// on mouse out	
					
					// on regarde si ce select etait caché avant le on mouse over
					for(i=0;i<nb_cell_hidden_select;i++){
						if( tab_hidden_select[i]['a'] == a && tab_hidden_select[i]['b'] == b){
							break;
							
						}
					}
					
					if(i >= nb_cell_hidden_select){
						// on réaffiche ce select qui etait visible avnant l'overlib
						document.forms[a].elements[b].style.visibility=visibility;
					}
				}
					
				
			}// end-of is this a select ?
		}// end-of for b     
	}// end-of for a
}
