/**
*	la fonction permet de précharger une liste d'images
*	expl : $.preloadImages("image1.png", "image2.gif");
*/
jQuery.preloadImages = function(){
	for(var i = 0; i<arguments.length; i++){
		jQuery("<img>").attr("src", arguments[i]);
	}
}


/**
*	Gestion du menu
*/
var d = null;
var elementdt = null;
var delais = 500;
var timeOut = null;
var oldCN = null;
var elementdt=null ;

function montre(id, num) {
	annulerCache();
	if (elementdt) {
		cacheMenu();
	}
	d = document.getElementById(id);
	if (d) {d.style.display='block';}
	el= document.getElementById('n'+ num).getElementsByTagName("dt");
	elementdt= el[0];
	oldCN = elementdt.className;
	elementdt.className = 'image on';
	
	//if(id=='smenu1'){ //patch : s'il s'agit du menu long 		(pour tous les menus), et non une seule page
	if (navigator.appName=="Microsoft Internet Explorer"){ //mais uniquement sous IE6
		masquerSelects(); //pour masquer d'éventuels <select>
	}
	//}
}
function cacheDelais(){
	timeOut = setTimeout('cacheMenu()', delais);
}
function cacheMenu(){
	//d.parentNode.getElementsByTagName('dt')[0].className = oldCN;
	elementdt.className = oldCN;
	if (d) {d.style.display = 'none';}
	d = null
	elementdt = null;
	
	afficherSelects(); //pour réafficher d'éventuels <select>
}
function annulerCache(){
	if(timeOut){
		clearTimeout(timeOut);
	}
}
function clear_hover(html_obj, indice){
	html_obj.className = 'niv'+indice ;
}
function set_hover(html_obj, indice){
	html_obj.className = 'niv'+ indice + ' niv' + indice + '_on' ;
}
function clic_hover(html_obj){
	table_html_a = html_obj.getElementsByTagName('a');
	window.location.replace(table_html_a[0].getAttribute('href'));
}

function masquerSelects(){
	oSelects = document.getElementById('contenu').getElementsByTagName('select');
	if (oSelects.length > 0) {
		for (i = 0; i < oSelects.length; i++){
			oSelects[i].style.visibility='hidden';
		}
	}
}

function afficherSelects(){
	oSelects = document.getElementById('contenu').getElementsByTagName('select');
	if (oSelects.length > 0) {
		for (i = 0; i < oSelects.length; i++){
			oSelects[i].style.visibility='visible';
		}
	}
}




/**
 *	Teste sur le texte en paramètre d'entrée est numérique ou non
 *	@param 	sText 		String 	Texte à vérifier la numéricité
 *	@param 	nullIsNumeric 	Boolean 	Doit ont considérer la valeur null comme numérique ?
 *	@return 	Boolean (true => valeur numérique, false => valeur non numérique)
 *
 */
function IsNumeric(sText, nullIsNumeric) {
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;
	
	if((nullIsNumeric && !sText)){
		IsNumber = true;
	}else{
		for (i = 0; i < sText.length && IsNumber == true; i++) {
			Char = sText.charAt(i);
			if (ValidChars.indexOf(Char) == -1) {
				IsNumber = false;
			}
		}
	}
	return IsNumber;
}

/**
 *	Fonction permettant de tester des champs radios
 *	@param 	radio		Object	Liste des champs à tester sous forme d'array
 */
function testerRadio(radio) {
      for (var i=0; i<radio.length;i++) {
         if (radio[i].checked) {
           return radio[i].value;
         }
      }
   }
   

/**
 *	Fonction permettant de récupérer l'extension d'un champs file
 *	@param 	fichier		Object	fichier du champs file
 */
function recup_extension(fichier){ // fonction de récupération extension fichier
	if (fichier!=""){	// si le champ fihier n'est pas vide
		nom_fichier=fichier;// on récupere le chemin complet du fichier
		nbchar = nom_fichier.length;// on compte le nombre de caractere que compose ce chemin
		extension = nom_fichier.substring(nbchar-4,nbchar); // on récupere les 4 derniers caracteres
		extension=extension.toLowerCase(); //on uniforme les caracteres en minuscules au cas ou cela aurait été écris en majuscule...
		return extension; // on renvoi l'extension vers la fonction appelante
	}
}



/**
 *	Fonction permettant de tester la validite d'une date au format JJ/MM/AAAA
 *	@param 	dateEntree		string		chaine de caractères représentant une date (au format DD/MM/YYYY pour qu'elle soit considérée comme valide)
 */
function testTypeDate(dateEntree){
	tst=false;
	try{
		rc=dateEntree.split("/");
		nd=new Date(rc[2],(rc[1]-1),rc[0]);
		tst=(rc[2]>1800&&rc[2]<2200&&rc[2]==nd.getFullYear()&&rc[1]==(nd.getMonth()+1)&&rc[0]==nd.getDate());
	} catch(e) {
	}
	return tst;
}
	
	
	
/**
 *	Fonction permettant de vérifier l'extension d'un champs file
 *	@param 	fichier		Object	fichier du champs file
 */
function verif_extension(fichier){	// fonction vérification de l'extension aprés avoir choisi le fichier
	ext = recup_extension(fichier);// on appelle la fonction de récupération de l'extension et on récupere l'extension
	if(ext==".jpg"||ext==".gif" || ext=="jpeg"){// si extension = a une des extension suivante alors tout est ok donc ... pas d'erreur
		return true;
	}else{	 // sinon on alert l'user de la mauvaise extension
		return false;
	}
}

