//Permet d'enveler les caracteres spéciaux dans une chaine
/****************************************************************************************************/
function cleanString(strName){
/****************************************************************************************************/
	strName = trimAll(strName.toLowerCase());
	strName = strReplace(strName, ' ', '');
	strName = strReplace(strName, '-', '');
	strName = strReplace(strName, '_', '');
	strName = strReplace(strName, '.', '');
	strName = strReplace(strName, ',', '');
	strName = strReplace(strName, ':', '');
	strName = strReplace(strName, ';', '');
	strName = strReplace(strName, '(', '');
	strName = strReplace(strName, ')', '');
	strName = strReplace(strName, '[', '');
	strName = strReplace(strName, ']', '');
	strName = strReplace(strName, '{', '');
	strName = strReplace(strName, '}', '');
	strName = strReplace(strName, '\'', '');
	strName = strReplace(strName, '"', '');
	strName = strReplace(strName, '/', '');
	strName = strReplace(strName, '\\', '');
	strName = strReplace(strName, '|', '');
	strName = strReplace(strName, ':', '');
	strName = strReplace(strName, '\&', '');
	strName = strReplace(strName, '*', '');
	strName = strReplace(strName, '<', '');
	strName = strReplace(strName, '>', '');
	strName = strReplace(strName, '~', '');
	
	return strName;
}

/****************************************************************************************************/
//Fonction qui remplace une chaine 'strSearch' par une chaine 'strReplace' dans une chaine 'strSubject'
/****************************************************************************************************/
function strReplace(string,text,by){
    var strLength = string.length, txtLength = text.length;
    
	if ((strLength == 0) || (txtLength == 0))
		return string;

    var i = string.indexOf(text);
	
    if ((!i) && (text != string.substring(0,txtLength)))
		return string;
		
    if (i == -1)
		return string;

    var newstr = string.substring(0,i) + by;

    if (i+txtLength < strLength)
        newstr += strReplace(string.substring(i+txtLength,strLength),text,by);

    return newstr;
}

/****************************************************************************************************/
//Fonction qui vérifie si la valeur de la confirmation du mot de passe = le mot de passe
/****************************************************************************************************/
function comparePasswords(){
	if(document.form1.TXT_MEM_CONFIRM_PASSWORD.value != document.form1.TXT_MEM_PASSWORD.value){
		alert('An error occrured while you entered your password.\nPlease re-enter your password.');
		document.form1.TXT_MEM_PASSWORD.focus();
		document.form1.TXT_MEM_PASSWORD.select();
		return false;
	}
	else
		return true;
}

/*********************************************************************************/
function getChecked(){
	
/**********************************************************************************
Fonction qui permet de créer la liste des cases à cocher qui sont cochés
Retourne les noms des champs de type 'checkbox' qui sont cochés sous forme de liste de noms séparés par des '¶'.
Retourne "" si aucune case n'est cochée
**********************************************************************************/
	var strFieldName = ""; //Liste de noms de checkbox qui sont cochés
	
	//Liste des objets (buttons, text, hidden, checkbox, etc) qui se trouve
	//dans le premier form de la page
	arrObjets = document.forms[0].elements;

	//Pour tous les objets de la liste
	for (i = 0; i < arrObjets.length; i++){
		
		//Si l'objet i est un checkbox
		if(arrObjets[i].type == "checkbox"){
			
			//Si le checkbox i est coché et que ce n'est pas la case qui permet de tout cocher
			if(arrObjets[i].checked == true && arrObjets[i].name != "chkInactif" && arrObjets[i].name != "all"){
				
				//Si c'est le premier nom de la liste
				if(strFieldName != "")
					strFieldName = strFieldName + "¶";
				
				//Ajout du nom du checkbox à la liste des cases cochées
				strFieldName = strFieldName + arrObjets[i].name;
			}
		}
	}
	
	//Retourne la liste de noms
	return strFieldName;
}

/*********************************************************************************
Fonction qui cache un objet donné en parametre
**********************************************************************************/
function hideObject(objName)
/*********************************************************************************
objName:  ID de l'objet textbox à cacher
**********************************************************************************/
{
	var strLabelName = 'lbl'+objName;
	
	obj = document.getElementById(objName);
	obj.style.visibility = 'hidden';

	//Si une étiquette existe pour ce champ
	if(document.getElementById(strLabelName) != null){
		objLabel = document.getElementById(strLabelName);
		objLabel.style.visibility = 'hidden';
	}
}

/*********************************************************************************
Fonction qui affiche un objet donné en parametre
**********************************************************************************/
function showObject(objName)
/*********************************************************************************
objName:  ID de l'objet textbox à afficher
**********************************************************************************/
{
	var strLabelName = 'lbl'+objName;
	
	obj = document.getElementById(objName);
	obj.style.visibility = 'visible';

	//Si une étiquette existe pour ce champ
	if(document.getElementById(strLabelName) != null){
		objLabel = document.getElementById(strLabelName);
		objLabel.style.visibility = 'visible';
	}
}

/////////////////////////////////////////////////////
//Fonction qui coupe (trim) les espaces devant une chaine donnée en parametre
//strString: Chaine à trimmer
/////////////////////////////////////////////////////
function leftTrim(strString){
	while (strString.substring(0,1) == ' ')
		strString = strString.substring(1, strString.length);
	
	return strString;
}

/////////////////////////////////////////////////////
//Fonction qui coupe (trim) les espaces derrière une chaine donnée en parametre
//strString: Chaine à trimmer
/////////////////////////////////////////////////////
function rightTrim(strString){
	while (strString.substring(strString.length-1, strString.length) == ' ')
		strString = strString.substring(0,strString.length-1);
	
	return strString;
}

/////////////////////////////////////////////////////
//Fonction qui coupe (trim) les espaces devant ET derrière une chaine donnée en parametre
//strString: Chaine à trimmer
/////////////////////////////////////////////////////
function trimAll(strString){
	strString = leftTrim(strString);
	strString = rightTrim(strString);
	
	return strString;
}


/*********************************************************************************
Fonction qui valide le format d'une adresse courriel
(retourne TRUE si l'adresse est bonne; sinon retourne FALSE)
**********************************************************************************/
function ValidEmail(addr){
	alert('BOOM');
/*********************************************************************************
addr:  Adresse de courrier électronique (courriel) à valider
**********************************************************************************/
	//Séparation de l'adresse en 2 parties
	var arr = addr.split("@");
	var local = arr[0];
	var domain = arr[1];
	
	/*** Expressions régulières représentant la facon valide de construire une adresse courriel ***/
	//ER pour la partie 'locale' de l'adresse
	var regexLocal = /^([0-9a-z]*([-|_]?[0-9a-z]+)*)(([-|_]?)\.([-|_]?)[0-9a-z]*([-|_]?[0-9a-z]+)+)*([-|_]?)$/i
	
	//ER pour la partie 'domaine' de l'adresse
	var regexDomain = /^([0-9a-z]+([-]?[0-9a-z]+)*)(([-]?)\.([-]?)[0-9a-z]*([-]?[0-9a-z]+)+)*\.[a-z]{2,4}$/i
	
	//Comparaisons des parties de l'adresse avec leur expression régulière respective
	var match_local = regexLocal.test(local);
	var match_domain = regexDomain.test(domain);
	
	//Retourne TRUE si les deux matchs sont valides
	if (match_local && match_domain)
		return (true)
	else //Retourne FALSE si un ou les deux matchs sont invalides
	   return (false);
}


// Fonction qui permet de créer un popup centré 
// Url: Adresse de la page à ouvrir en popup
// Larg: Largeur désirée du Popup
// Haut: Hauteur désirée du Popup
// Option: Saisie des options du Popup
// Nom: Nom de la fenêtre -->

function popup(url, larg, haut, options, nom){
	var top=(screen.height-haut)/2;
	var left=(screen.width-larg)/2;
	
	window.open(url,nom,"top="+top+",left="+left+",width="+larg+",height="+haut+","+options).focus();
}


/*********************************************************************************/
function ValidateTextForm(){
/**********************************************************************************
Fonction qui permet de vérifier les champs textes obligatoires .

Chaque parametre séparer par une virgule doit etre créé en 2 partie séparer par ¶. 
La première partie est le nom réel du champ  et l'autre le libellé qui doit être dans le message d'erreur.
P.S: Le premier parametre doit être obligatoirement le nom du formulaire.

Exemple: onsubmit="ValidateTextForm(form1,'test1¶Libellé1','test2¶Libellé2');"
**********************************************************************************/

var numFields = arguments.length; //Détermine le nombre de paramètre
var Myerreur = ""; // Initialisation de la variable de mesage d'erreur
var MyFormName = arguments[0]; //Récupération du nom du formulaire
var firstField = null;

	//Boucle qui vérifie tous les champs passés en parametre	
	for(i=1; i<numFields; i++){
		Mystring = arguments[i].split("¶");

		if(MyFormName.elements[Mystring[0]].value == ""){
			if(firstField == null)
				firstField = MyFormName.elements[Mystring[0]];
			
			Myerreur = Myerreur + " - " +  Mystring[1] + "\n" ;
		}
	}
	
	if (Myerreur != ""){
		alert("Les informations suivantes sont obligatoires:\n" + Myerreur);

		if(firstField.type != 'hidden'){
			firstField.focus();
			firstField.select();
		}
		
		return false;
	}
	else{
		return true;
	}
}

/*********************************************************************************/
function ValidateTextFormUser(){
/**********************************************************************************
Fonction qui permet de vérifier les champs textes obligatoires .
Valide aussi si le username est unique.

Chaque parametre séparer par une virgule doit etre créé en 2 partie séparer par ¶. 
La première partie est le nom réel du champ  et l'autre le libellé qui doit être dans le message d'erreur.
P.S: Le premier parametre doit être obligatoirement le nom du formulaire.

Exemple: onsubmit="ValidateTextForm(form1,'test1¶Libellé1','test2¶Libellé2');"
**********************************************************************************/

var numFields = arguments.length; //Détermine le nombre de paramètre
var Myerreur = ""; // Initialisation de la variable de mesage d'erreur
var MyFormName = arguments[0]; //Récupération du nom du formulaire
var firstField = null;

	//Boucle qui vérifie tous les champs passé en parametre	
	for(i=1; i<numFields; i++){
		Mystring = arguments[i].split("¶");
		
		if(MyFormName.elements[Mystring[0]].value == ""){
			if(firstField == null)
				firstField = MyFormName.elements[Mystring[0]];

			Myerreur = Myerreur + "- The '" + Mystring[1] + "' field is a mandatory field.\n";
		}			
	}
	

	if (Myerreur == "") 
		return validateUsername(form1.elements['TXT_MEM_USERNAME'].value);
	else{
		alert("An error occured during the recording of the form.\n" + Myerreur);
		
		if(firstField.type != 'hidden'){
			firstField.focus();
			firstField.select();
		}
		
		return false;
	}
}
/**********************************************************************************/

/*********************************************************************************/
function ValidateTextFormUserClub(){
/**********************************************************************************
Fonction qui permet de vérifier les champs textes obligatoires .
Valide aussi si le username est unique.

Chaque parametre séparer par une virgule doit etre créé en 2 partie séparer par ¶. 
La première partie est le nom réel du champ  et l'autre le libellé qui doit être dans le message d'erreur.
P.S: Le premier parametre doit être obligatoirement le nom du formulaire.

Exemple: onsubmit="ValidateTextForm(form1,'test1¶Libellé1','test2¶Libellé2');"
**********************************************************************************/

var numFields = arguments.length; //Détermine le nombre de paramètre
var Myerreur = ""; // Initialisation de la variable de mesage d'erreur
var MyFormName = arguments[0]; //Récupération du nom du formulaire
var firstField = null;

	//Boucle qui vérifie tous les champs passé en parametre	
	for(i=1; i<numFields; i++){
		Mystring = arguments[i].split("¶");
		
		if(MyFormName.elements[Mystring[0]].value == ""){
			if(firstField == null)
				firstField = MyFormName.elements[Mystring[0]];

			Myerreur = Myerreur + "- The '" + Mystring[1] + "' field is a mandatory field.\n";
		}			
	}
	

	if (Myerreur == "") 
		if(!validateClubName(form1.elements['TXT_CLU_NAME'].value))
			return false;
		else
			return validateUsername(form1.elements['TXT_MEM_USERNAME'].value);
	else{
		alert("An error occured during the recording of the form.\n" + Myerreur);
		
		if(firstField.type != 'hidden'){
			firstField.focus();
			firstField.select();
		}
		
		return false;
	}
}
/**********************************************************************************/

/*********************************************************************************/
function ValidateTextFormClub(){
/**********************************************************************************
Fonction qui permet de vérifier les champs textes obligatoires .
Valide aussi si le username est unique.

Chaque parametre séparer par une virgule doit etre créé en 2 partie séparer par ¶. 
La première partie est le nom réel du champ  et l'autre le libellé qui doit être dans le message d'erreur.
P.S: Le premier parametre doit être obligatoirement le nom du formulaire.

Exemple: onsubmit="ValidateTextForm(form1,'test1¶Libellé1','test2¶Libellé2');"
**********************************************************************************/

var numFields = arguments.length; //Détermine le nombre de paramètre
var Myerreur = ""; // Initialisation de la variable de mesage d'erreur
var MyFormName = arguments[0]; //Récupération du nom du formulaire
var firstField = null;

	//Boucle qui vérifie tous les champs passé en parametre	
	for(i=1; i<numFields; i++){
		Mystring = arguments[i].split("¶");
		
		if(MyFormName.elements[Mystring[0]].value == ""){
			if(firstField == null)
				firstField = MyFormName.elements[Mystring[0]];

			Myerreur = Myerreur + "- The '" + Mystring[1] + "' field is a mandatory field.\n";
		}			
	}
	

	if (Myerreur == "") 
		return validateClubName(form1.elements['TXT_CLU_NAME'].value);
	else{
		alert("An error occured during the recording of the form.\n" + Myerreur);
		
		if(firstField.type != 'hidden'){
			firstField.focus();
			firstField.select();
		}
		
		return false;
	}
}
/**********************************************************************************/

/*********************************************************************************/
function ValidateTextFormBreed(){
/**********************************************************************************
Fonction qui permet de vérifier les champs textes obligatoires .
Valide aussi si le breed name FR et ENG est unique.

Chaque parametre séparer par une virgule doit etre créé en 2 partie séparer par ¶. 
La première partie est le nom réel du champ  et l'autre le libellé qui doit être dans le message d'erreur.
P.S: Le premier parametre doit être obligatoirement le nom du formulaire.

Exemple: onsubmit="ValidateTextForm(form1,'test1¶Libellé1','test2¶Libellé2');"
**********************************************************************************/

var numFields = arguments.length; //Détermine le nombre de paramètre
var Myerreur = ""; // Initialisation de la variable de mesage d'erreur
var MyFormName = arguments[0]; //Récupération du nom du formulaire
var firstField = null;

	//Boucle qui vérifie tous les champs passé en parametre	
	for(i=1; i<numFields; i++){
		Mystring = arguments[i].split("¶");
		
		if(MyFormName.elements[Mystring[0]].value == ""){
			if(firstField == null)
				firstField = MyFormName.elements[Mystring[0]];

			Myerreur = Myerreur + "- The '" + Mystring[1] + "' field is a mandatory field.\n";
		}			
	}
	
	if (Myerreur == "")
		return validateBreedName(form1.elements['TXT_BRE_NAME'].value);
	else{		
		alert("An error occured during the recording of the form.\n" + Myerreur);
		
		if(firstField.type != 'hidden'){
			firstField.focus();
			firstField.select();
		}
		
		return false;
	}
}
/**********************************************************************************/

/*********************************************************************************/
function ValidateTextFormPedigree(){
/**********************************************************************************
Fonction qui permet de vérifier les champs textes obligatoires .
Valide aussi si le breed name FR et ENG est unique.

Chaque parametre séparer par une virgule doit etre créé en 2 partie séparer par ¶. 
La première partie est le nom réel du champ  et l'autre le libellé qui doit être dans le message d'erreur.
P.S: Le premier parametre doit être obligatoirement le nom du formulaire.

Exemple: onsubmit="ValidateTextForm(form1,'test1¶Libellé1','test2¶Libellé2');"
**********************************************************************************/

var numFields = arguments.length; //Détermine le nombre de paramètre
var Myerreur = ""; // Initialisation de la variable de mesage d'erreur
var MyFormName = arguments[0]; //Récupération du nom du formulaire
var firstField = null;

	//Boucle qui vérifie tous les champs passé en parametre	
	for(i=1; i<numFields; i++){
		Mystring = arguments[i].split("¶");
		
		if(MyFormName.elements[Mystring[0]].value == ""){
			if(firstField == null)
				firstField = MyFormName.elements[Mystring[0]];

			Myerreur = Myerreur + "- The '" + Mystring[1] + "' field is a mandatory field.\n";
		}			
	}
	
	if (Myerreur == "")
		return validatePedigreeName(form1.elements['TXT_PED_REGISTERED_NAME'].value);
	else{		
		alert("An error occured during the recording of the form.\n" + Myerreur);
		
		if(firstField.type != 'hidden'){
			firstField.focus();
			firstField.select();
		}
		
		return false;
	}
}
/**********************************************************************************/

/*********************************************************************************
Fonction qui valide une date (retourne TRUE si le format de date est bon; sinon retourne FALSE)
Le format valide est: 2005-12-31 ou 2005-12-31 - 22:59
**********************************************************************************/
function ValidDateTime(mydate, boolTime){
/*********************************************************************************
mydate:   Date à valider
[mytime]: Booléen déterminant si l'heure est inclu dans la variable date (paramètre optionel)
**********************************************************************************/
	/*** Expression régulière représentant la facon valide de construire une date ***/
	//Si le temps est concatené au bout ed la date
	if(boolTime)
		var regex = /^[0-9]{4}[\/|-][0-1][0-9][\/|-][0-3][0-9] - [0-2][0-9]:[0-5][0-9]$/i
	else
		var regex = /^[0-9]{4}[\/|-][0-1][0-9][\/|-][0-3][0-9]$/i
		
	//Comparaisons de la date avec son expression régulière
	var matchDate = regex.test(mydate);
	
	//Retourne TRUE si le match est valide
	if (matchDate)
		return (true)
	else //Retourne FALSE si le match est invalide
	   return (false);
}
/**********************************************************************************/

/////////////////////////////////////////////////////
// Fonction qui permet de recharger la page parente à un popup en lui envoyant
// les variables GET dont il a besoin
//
// Modification à apporter éventuellement:
//  - enlever le OrderBy des GET pour éviter que l'ordre de tri de l'opener change lors du refresh
///////////////////////////////////////////////////
function refreshOpener(){
	//Vérifie si la fenêtre parent est toujours ouverte
	if(!opener.closed){
		//Chemin complet de la page qui a appelé le popup
		var strPath = opener.location.pathname;
	
		//Permet de trouver seulement le nom de la page sans le chemin complet
		while(strPath.indexOf("/") >= 0)
			strPath = strPath.substring(strPath.indexOf("/") + 1);
		
		//Rafraichit la page en lui envoyant aussi les variables GET
		opener.location.href = strPath + opener.location.search;
	}
}
/////////////////////////////////////////////////////

/////////////////////////////////////////////////////

/////////////////////////////////////////////////////
//Fonction qui permet de vérifier les champs sur le lostfocus du champ
//Retourne true si le champ est valide, sinon retourne false
//
//obj = objet html de type input reçu dont on veut valider la valeur
//isZeroValid = si true: une valeur égale à zéro ne sera pas rejetté
//             si false: une valeur égale à zéro sera rejetté
/////////////////////////////////////////////////////
function validInteger(obj, isZeroValid)
{
    var strMessageZero = "";
	var regex = /^([0-9]*)$/i //Valeur régulière pour trouver un entier non négatif
    
    //Comparaison du nombre avec son expression régulière
    var matchNum = regex.test(obj.value);
   
    //Si le zéro est considéré non valide et que la valeur testé égale zéro
	if(matchNum && !isZeroValid && obj.value == 0)
		matchNum = false;
	
    //Retourne TRUE si le match est valide
    if (!matchNum)
    {
    	if(isZeroValid)		
			alert('Ce champ doit être de format numérique.');
		else
			alert('Ce champ doit être de format numérique et suppérieur à 0.');
			
    	obj.focus();
    	obj.select();
    	return false;
    }

	return true;
}



/////////////////////////////////////////////////////
// Fonction qui format un nombre décimal en ajoutant les 0 manquants à la fin
///////////////////////////////////////////////////
function formatDecimal(obj)
{
	var arrChaine = obj.value.split(",");

	if(arrChaine[0] != "" && arrChaine.length < 3)
	{
		//Si chaine sans point et non vide (ex.: 99 => 99.00)
		if(arrChaine.length == 1 && arrChaine[0] != "" && arrChaine[1] != "")
		{

			obj.value = obj.value + ",00";
			return true
		}

		//Si partie à droite du point est de longueur 0 (ex.: 99. => 99.00)
		if(arrChaine[1].length == 0 && arrChaine[0] != "")
		{
			obj.value = obj.value + "00";
			return true;
		}

		//Si partie à droite du point est de longueur 1 (ex.: 99.9 => 99.90)
		if(arrChaine[1].length == 1)
		{
			obj.value = obj.value + "0";
			return true;
		}
	}
	else
	{
		//Si valeur est vide
		if(obj.value == "")
			return true;

		//Si partie à gauche du point est de longueur 0 (ex.: .9 => 0.90)
		if(arrChaine[0].length == 0 && arrChaine[1].length != 0)
		{
			obj.value = "0" + obj.value;
			formatDecimal(obj);
			return true;
		}

		//Si seulement un point (ex.: . => 0.00)
		if(obj.value = ',')
		{
			obj.value = "0,00";
			return true;
		}
	}
}

/////////////////////////////////////////////////////
// Fonction qui vérifie si le format décimal est valide
///////////////////////////////////////////////////
function validDecimal(obj)
{
	
	var regex = /^(([0-9]*)|(([0-9]*)\,[0-9]*))$/i //Valeur régulière pour trouver un décimal
	var regexNeg = /^(([\-][0-9]+)|(([\-][0-9]+)\,[0-9]*))$/i //Valeur régulière pour trouver un entier négatif

	//Comparaison du nombre avec son expression régulière
	var matchNumNeg = regexNeg.test(obj.value);

	if (matchNumNeg)
	{
		alert('La valeur ne peut être négative.');
		obj.focus();
		obj.select();
		return false;
	}

	//Comparaison du nombre avec son expression régulière
	var matchNum = regex.test(obj.value);

	//Retourne TRUE si le match est valide
	if (!matchNum)
	{
		alert('Ce champ doit être de format décimal (ex.: 99,99).');
		obj.focus();
		obj.select();
		return false;
	}
	/*else
	{
		formatDecimal(obj);
	}*/
	
	return true;
}

/////////////////////////////////////////////////////
// Fonction qui fait afficher/cacher des <tr> avec des ID spécifiques
///////////////////////////////////////////////////
function ShowHideRows(select_value,span,rows_id,num_rows,img){
/*select_value = document.report_form.selection_1.value;*/

	//alert(rows_id);
	for(var i=1; i<=num_rows;i++){ 
		
		var id = rows_id + "_" + i;
		//alert(id);

		var obj = '';
		obj = (document.getElementById) ? document.getElementById(id) : ((document.all) ? document.all[id] : ((document.layers) ? document.layers[id] : false));

			if(select_value < 1)	{
				obj.style.display = ( obj.style.display != "none" ) ? "none" : "";//Hide Fields
				/*document.getElementById("docsis_desc").innerHTML ="[-]"; */
				if((!img) || (img=='')){
					document.getElementById(span).innerHTML ="<a href=\"javascript:ShowHideRows(1,'"+span+"','"+rows_id+"','"+num_rows+"');\" class=\"SM_title_ORANGE_plus_moins\">-</a>";
				}else{
					document.getElementById(span).innerHTML ="<a href=\"javascript:ShowHideRows(1,'"+span+"','"+rows_id+"','"+num_rows+"','"+img+"');\"><img src=\"../image/bout_tele_for_moins.gif\" width=\"15\" height=\"14\" border=\"0\"></a>";
				
					document.getElementById(span + "_liste_chaines").innerHTML ="<a href=\"javascript:ShowHideRows(1,'"+span+"','"+rows_id+"','"+num_rows+"','"+img+"');\" class=\"liens_listes_verdana_7pt\">Liste des cha&icirc;nes</a>";

				}
			}
			else{
				obj.style.display = ( obj.style.display != "none" ) ? "none" : "";//Hide Fields
				/*obj.visibility = "show";//Show Fields*/
				if((!img) || (img=='')){
					document.getElementById(span).innerHTML ="<a href=\"javascript:ShowHideRows(0,'"+span+"','"+rows_id+"','"+num_rows+"');\" class=\"SM_title_ORANGE_plus_moins\">+</a>"; 			
				}else{
					document.getElementById(span).innerHTML ="<a href=\"javascript:ShowHideRows(0,'"+span+"','"+rows_id+"','"+num_rows+"','"+img+"');\"><img src=\"../image/bout_tele_for_plus.gif\" width=\"15\" height=\"14\" border=\"0\"></a>";

					document.getElementById(span + "_liste_chaines").innerHTML ="<a href=\"javascript:ShowHideRows(0,'"+span+"','"+rows_id+"','"+num_rows+"','"+img+"');\" class=\"liens_listes_verdana_7pt\">Liste des cha&icirc;nes</a>";
				}
			}
	}
 /*  var select_value = select_value;*/
}


/////////////////////////////////////////////////////
// Fonction qui fait afficher/cacher un élément avec un id spécifique (promotions)
///////////////////////////////////////////////////
function ShowHideElement(select_value,span,element_id,css_style){
/*select_value = document.report_form.selection_1.value;*/

		//alert(css_style);
		
		var id = element_id;

		var obj = '';
		obj = (document.getElementById) ? document.getElementById(id) : ((document.all) ? document.all[id] : ((document.layers) ? document.layers[id] : false));

			if(select_value < 1)	{
				obj.style.display = ( obj.style.display != "none" ) ? "none" : "";//Hide Fields
				document.getElementById(span).innerHTML ="<a href=\"javascript: ShowHideElement(1,'"+span+"','"+element_id+"','"+css_style+"');\" class=\""+css_style+"\">FERMER [ - ]</a>";

			}
			else{
				obj.style.display = ( obj.style.display != "none" ) ? "none" : "";//Hide Fields
				document.getElementById(span).innerHTML ="<a href=\"javascript: ShowHideElement(0,'"+span+"','"+element_id+"','"+css_style+"');\" class=\""+css_style+"\">EN SAVOIR + </a>";

			}
}



/////////////////////////////////////////////////////
// Fonction qui fait afficher/cacher des <tr> avec des ID spécifiques
///////////////////////////////////////////////////
function ShowHideSpecifiedElement(id){
/*select_value = document.report_form.selection_1.value;*/

	//alert(rows_id);
		//alert(id);

		var obj = '';
		obj = (document.getElementById) ? document.getElementById(id) : ((document.all) ? document.all[id] : ((document.layers) ? document.layers[id] : false));
	
		obj.style.display = ( obj.style.display != "none" ) ? "none" : "";//Hide Fields
		 /*  var select_value = select_value;*/
}

/////////////////////////////////////////////////////
// Fonction qui fait afficher/cacher des éléments par id (comme pour une image hover)
///////////////////////////////////////////////////
	function View_hide_item(id){
		var obj = '';
		obj = (document.getElementById) ? document.getElementById(id) : ((document.all) ? document.all[id] : ((document.layers) ? document.layers[id] : false));

		obj.style.display = ( obj.style.display != "none" ) ? "none" : "";//Hide Fields
			
	}
