/**
* Affiche un message de confirmation avant la suppression d'un élément
**/
function confirmerSuppression()
{
	return confirm("Confirmez-vous la suppression de cet élément ?") ;
}

/**
* Vérifie si l'ensemble des champs ont été complétés
**/
function verifie_saisie(NomFormulaire)
{
	var paiement_actif = document.getElementsByName("paiement_active") ;

	var formulaire = document.getElementById(NomFormulaire) ;
	var valide     = true ;

	var select_compte = document.getElementById("cpt_numero"); // compte financier
	
	if(select_compte!=null)
	{
		if(select_compte.type == 'text' )
		{
			var compte_financier_selectionner = select_compte.value;
		}
		else
		{
			var indexsite = document.getElementById('cpt_numero') ;
			var compte_financier_selectionner = select_compte.options[indexsite.selectedIndex].value ;
		}

		if( compte_financier_selectionner == "-" && paiement_actif.checked)
		{
			alert("Veuillez selectionner un compte financier") ;
			return false ;
		}
	}

	for(i=0; i<formulaire.elements.length; i++)
	{
		id	= formulaire.elements[i].id;

		classe	= formulaire.elements[i].className;
		
		if(classe=='nombre')
			if(!isNumeric(formulaire.elements[i].value))
			{
				alert('Les données sont entrées dans un format incorrect');
				return false;
			}

		if( formulaire.elements[i].type != "text" && formulaire.elements[i].type != "password" || id.substr(0,1)=='_')
		{
			continue ;
		}
		
		var saisie = formulaire.elements[i] ;

		if(saisie!=null)
		{
			if (saisie.name!='date_ouv' && saisie.name!='date_ferm')
			{
				if( ( ! saisie.readOnly ) && ( saisie.value == null || saisie.value.length == 0) )
				{
					saisie.style.backgroundColor = "#DE93A7" ;
					valide = false ;
				}
				else
				{
					saisie.style.backgroundColor = "#FFFFFF" ;
				}
			}
		}
	}

	if( ! verifier_champ('nom') )
	{
		valide = false ;
		return false;
	}

	if( ! valide )
	{
		alert("Veuillez remplir tous les champs obligatoires") ;
	}

	return valide ;
}

function verifie_saisie1(NomFormulaire)
{
	var formulaire = document.getElementById(NomFormulaire) ;

	for( i in formulaire.elements )
	{
		var id, valeur, type;
		
		if(formulaire.elements[i].id)
			id	= formulaire.elements[i].id;
		if(formulaire.elements[i].value)
			valeur = formulaire.elements[i].value;
		if(formulaire.elements[i].type)
			type = formulaire.elements[i].type;

		if(type=="text")
		{
			if(valeur!=null && !isNumeric(valeur))
			{
				alert('Les données sont entrées dans un format incorrect');
				return false;
			}

			if(id=='nbparts' && (valeur==null || valeur=='' || valeur==0))
			{
				alert('Le nombre de parts doit être indiqué et non nul');
				return false;
			}
		}
	}
	
	return true ;
}

function isNumeric(sText)
{
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;
	for (i = 0; i < sText.length && IsNumber == true; i++)
	{
		Char = sText.charAt(i);
		if (ValidChars.indexOf(Char) == -1)
			IsNumber = false;
	}
	
	return IsNumber;
} 

/**
* Valide le formulaire de modification du mot de passe visiteur
**/
function verifie_saisie_mot_passe(NomFormulaire)
{
	if ( ! verifie_saisie(NomFormulaire) )
	{
		return false ;
	}

	return verifie_mot_passe( 'mot_passe', 'confirmation_mot_passe' ) ;
}

/**
* Vérifie que le mot de passe et la confirmation sont identiques
**/
function verifie_mot_passe( id_mot_passe, id_confirmation_mot_passe )
{
	var mot_passe              = document.getElementById(id_mot_passe) ;
	var confirmation_mot_passe = document.getElementById(id_confirmation_mot_passe) ;

	if( mot_passe.value != confirmation_mot_passe.value )
	{
		alert("Veuillez saisir le même mot de passe dans les deux champs") ;
		return false ;
	}

	return true ;
}

/**
* Permet de savoir si un champ a été complété
**/
function verifier_champ(id_verifier)
{
	var saisie = document.getElementById(id_verifier) ;

	if( saisie.value == null || saisie.value.length == 0 )
	{
		alert( "Vous devez impérativement compléter le champ '" + saisie.name + "'" ) ;
		saisie.style.backgroundColor = "#DE93A7" ;
		return false ;
	}

	return true ;
}

/**
* Vérifie la longueur d'un champ
**/
function verifie_longueur( longueur, id_champ )
{
	var saisie    = document.getElementById(id_champ).value ;
	var nom_champ = document.getElementById(id_champ).name ;

	if( saisie.length > longueur )
	{
		alert( "La longueur du champ '" + nom_champ + "' ne peut excéder " + longueur + " caractères" ) ;
		return false ;
	}

	return true ;
}

/**
* Valide le formulaire pour lister les activités dans la partie visiteur
**/
function validerListerActivite()
{
	format_date = new RegExp("([0-9]{2})/([0-9]{2})/([0-9]{4})") ;

	var date_du           = document.getElementById("sd") ;
	var date_au           = document.getElementById("ed") ;

	var fragments_date_du = date_du.value.match(format_date) ;
	var fragments_date_au = date_au.value.match(format_date) ;

	if( date_du.value != "" && fragments_date_du == null )
	{
		date_du.style.backgroundColor = "#DE93A7" ;
		return false ;
	}

	date_du.style.backgroundColor = "#FFFFFF" ;

	if( date_au.value != "" && fragments_date_au == null )
	{
		date_au.style.backgroundColor = "#DE93A7" ;
		return false ;
	}

	date_au.style.backgroundColor = "#FFFFFF" ;

	if( fragments_date_du != null && fragments_date_au != null )
	{
		var timestamp_date_du = new Date( fragments_date_du[3], fragments_date_du[2], fragments_date_du[1] ) ;
		var timestamp_date_au = new Date( fragments_date_au[3], fragments_date_au[2], fragments_date_au[1] ) ;

		if( timestamp_date_du.getTime() > timestamp_date_au.getTime() )
		{
			alert("la seconde date doit être supérieure à la première") ;

			date_au.style.backgroundColor = "#DE93A7" ;
			return false ;
		}
	}

	return true ;
}

/**
* Vérifie que la période a été selectionnée le cas échéant
**/
function verifierAjoutPanier()
{
	var periodes = document.getElementsByName("periode") ;

	if( ! periodes.length )
	{
		return true ;
	}

	for( i = 0 ; i < periodes.length ; i++ )
	{
		periode = periodes.item(i) ;

		if(periode.nodeType != 1 || !periode.checked)
		{
			continue ;
		}

		return true ;
	}

	alert("Veuillez choisir une période") ;
	return false ;
}


/**
* Ajoute la quantité spécifiée dans le champ au stock
**/
function ajouterStock( evenement, champ, id_stock )
{
	var stocks = document.getElementsByName( "stock_" + id_stock ) ;
	var valeur = parseInt(champ.value) ;

	if( isNaN(valeur) || evenement.keyCode == 9 || evenement.keyCode == 16 )
	{
		return ;
	}

	for( i = 0 ; i < stocks.length ; i++ )
	{
		stocks[i].value = parseInt(stocks[i].value) + valeur ; 
	}
}

/**
* Retire la quantité spécifiée dans le champ au stock
**/
function retirerStock( evenement, champ, id_stock )
{
	if( evenement.keyCode == 9 || evenement.keyCode == 16 )
	{
		return ;
	}

	var stocks = document.getElementsByName( "stock_" + id_stock ) ;
	var valeur = parseInt(champ.value) ;

	if( isNaN(valeur) )
	{
		champ.value                 = 0 ;
		champ.style.backgroundColor = "#DE93A7" ;
		return ;
	}

	for( i = 0 ; i < stocks.length ; i++ )
	{
		if( parseInt(stocks[i].value) - valeur < 0 )
		{
			champ.style.backgroundColor = "#DE93A7" ;
		}

		stocks[i].value = parseInt(stocks[i].value) - valeur ;
	}
}

/**
* Modifier la valeur du champ ayant pour identifant "id_article"
**/
function setIdArticle(id_article)
{
	document.getElementById("id_article").value = id_article ;
}

/**
* Modifier la valeur du champ ayant pour identifant "id_tarif"
**/
function setIdTarif(id_tarif)
{
	document.getElementById("id_tarif").value = id_tarif ;
}

/**
* Modifier la valeur du champ ayant pour identifant "id_participant"
**/
function setIdParticipant(id_participant)
{
	document.getElementById("id_participant").value = id_participant ;
}

/**
* Affiche un message d'alert quelqu'il soit
**/
function msgBox(message)
{
	alert(message,'OdaceWEB') ;	
}

/**
* Permet de formater une date
*/
function dateformat(my)
{
	var value= my.value ;
	if ( value.length==2 ||  value.length==5)
		my.value = my.value + '/';
}

/**
*
*/
function payementEnLigne(input, code_actif)
{
	var select = window.document.getElementById('mode_paiement') ;
	var selectLength = select.options.length ;

	if (input.checked)
	{
		
		for ( var i = 0 ; i < selectLength ; i++ )
		{
			if ( select.options[i].value.startsWith(code_actif) )
			{
				select.options[i].selected = true ;
				select.options[i].disabled = false ;
				select.selectedIndex = i ;
			}
			else
			{
				select.options[i].selected = false ;
				select.options[i].disabled = true ;
			}
		}
	}
	else
	{
		for ( var i = 0 ; i < selectLength ; i++ )
		{
				select.options[i].disabled = false ;
		}
	}
}

function payementEnLigne(input, code_actif)
{
	var select = window.document.getElementById('mode_paiement') ;
	var selectLength = select.options.length ;

	if (input.checked)
	{
		
		for ( var i = 0 ; i < selectLength ; i++ )
		{
			if ( select.options[i].value.startsWith(code_actif) )
			{
				select.options[i].selected = true ;
				select.options[i].disabled = false ;
				select.options[i].style.display = "block" ;
				select.selectedIndex = i ;
			}
			else
			{
				select.options[i].selected = false ;
				select.options[i].disabled = true ;
				select.options[i].style.display = "none" ;
			}
		}
	}
	else
	{
		for ( var i = 0 ; i < selectLength ; i++ )
		{
				select.options[i].disabled = false ;
				select.options[i].style.display = "block" ;
		}
	}

	changementModePaiement(document.getElementById("mode_paiement")) ;
}

function changementModePaiement(select_mode_paiement)
{
	if(select_mode_paiement.value == "CB" )
	{
		var s = document.getElementsByTagName('button') ;
		if (s.length > 0) 
		{
			for (var i=0, button; button = s[i]; i++) 
			{
				button.setAttribute("disabled","disabled");
			}
		}
		
		document.getElementById("echeancier").value = '1' ;
		document.getElementById("periodicite").value = '1' ;

	}
	else
	{
		var s = document.getElementsByTagName('button') ;
		if (s.length > 0) 
		{
			for (var i=0, button; button = s[i]; i++) 
			{
				button.removeAttribute("disabled","disabled");
			}
		}
	}

	
}

function reset()
{
	
	var select_paiement = document.getElementById("mode_paiement");
	var m = select_paiement.length;
	//remettre a zéro la couleur du texte
	for( i = 0 ; i < m ; i++ )
	{
		select_paiement.options[i].style.cssText = "color:black" ;
	}
}

function verifModePaiementIE6(select_mode_paiement)
{
	alert(select_mode_paiement.getAttribut('disabled'));
	// if( select_mode_paiement.color == 'gray' )
		// alert('hui');

}

function activerPaiement( liste_compte )
{
	
	
	if(document.getElementById("paiement_active").checked)
	{
		document.getElementById("infos-paiement").style.display = "block" ;
	}
	else
	{
		document.getElementById("infos-paiement").style.display = "none" ;
	}
	
	//modifierModePaiement( liste_compte );
}

function changerCompteFinancier()
{
	var cpt_numero    = document.getElementById("cpt_numero") ;
	var cpt_numero2   = document.getElementById("cpt_numero2") ;
	var id_commission = document.getElementById("module_commission").value ;
	id_commission     = id_commission.substr(id_commission.indexOf(":", 0) + 1 ) ;

	if(comptes_financiers[id_commission] != "")
	{
		if(cpt_numero.nodeName == "SELECT")
		{
			cpt_numero.name           = "cpt_numero2" ;
			cpt_numero.id             = "cpt_numero2" ;
			cpt_numero.style.display  = "none" ;
			cpt_numero2.name          = "cpt_numero" ;
			cpt_numero2.id            = "cpt_numero" ;
			cpt_numero2.style.display = "block" ;
			cpt_numero                = cpt_numero2 ;
		}
		
		cpt_numero.value = comptes_financiers[id_commission] ;
	}
	else
	{
		if(cpt_numero.nodeName != "SELECT")
		{
			cpt_numero.name           = "cpt_numero2" ;
			cpt_numero.id             = "cpt_numero2" ;
			cpt_numero.style.display  = "none" ;
			cpt_numero2.name          = "cpt_numero" ;
			cpt_numero2.id            = "cpt_numero" ;
			cpt_numero2.style.display = "block" ;
		}
	}
}

function modifierModePaiement( liste_compte )
{

	var select_compte = document.getElementById("cpt_numero"); // compte financier
	var select_compte2 = document.getElementById("cpt_numero2"); // compte financier
	var select_paiement = document.getElementById("mode_paiement");
	var m = select_paiement.length;

	if( select_compte.type == 'text' )
	{
		var compte_financier_selectionner = select_compte.value;
	}
	else
	{
		var indexsite = document.getElementById('cpt_numero') ;
		var compte_financier_selectionner = select_compte.options[indexsite.selectedIndex].value ;
	}

	// if( compte_financier_selectionner == '-' )
	// {
		//document.getElementById("mode_paiement").setAttribute('disabled','disabled');
	// }
	// else
	// {
		document.getElementById("mode_paiement").removeAttribute('disabled','disabled');
		var n = liste_compte.length;

		// on parcour le tableau qui contient pour chaque ligne : le compte financier et ses modes de paiement associés
		for( i = 0 ; i < n ; i++ )
		{
			// on ne passe que par le compte financié selectionné
			if( parseInt(liste_compte[i]) == parseInt(compte_financier_selectionner) )
			{
				// on récupère les mode de paiement relatif au compte financier
				var description_compte = liste_compte[i].split(':');
				description_compte.shift() ;

				// si il y a bien des mode de paiement spécifier pour ce compte financier on n'affichera 
				// alors que les modes de paiement associé
				if( description_compte.length >= 1 )
				{
					y = 0 ;
					while( y < m  )
					{
						if( ! in_array(select_paiement.options[y].value,description_compte) )
						{
							if( typeof(select_paiement.options[y]) != 'undefined' || typeof(select_paiement.options[y]) != 'object' )
							{
								select_paiement.options[y].disabled = true ;
								select_paiement.options[y].style.color = "gray" ;
								select_paiement.options[y].style.hidden = true ;
							}
						}
						else
						{
							if( select_paiement.options[y].value == select_paiement.value )
								var option_selectionne = y ;
						}
						y++;
					}
					select_paiement.options[option_selectionne].selected = true ;
				}
				else
				{
					y = 0 ;
					while( y < m  )
					{
						select_paiement.options[y].disabled = false ;
						select_paiement.options[y].style.color = "black" ;
						y++;
					}
				}
			}
		}
	//}	
}


// permet de limiter le choix du mode de paiement en fonction du compte financier
function changerModePaiement( num_compte, liste_compte )
{
	var i;
	var y;
	var select_paiement = document.getElementById("mode_paiement");
	var select_compte = document.getElementById("cpt_numero"); // compte financier
	var m = select_paiement.length;
	var n = liste_compte.length;
	var test = new Array();


	
	if( select_compte.type == 'text' )
	{
		var compte_financier_selectionner = select_compte.value;
	}
	else
	{
		var indexsite = document.getElementById('cpt_numero') ;
		var compte_financier_selectionner = select_compte.options[indexsite.selectedIndex].value ;

		//var compte_financier_selectionner = select_compte.options[select.selectedIndex].value;
	}

	if( compte_financier_selectionner == "-")
	{
		document.getElementById("mode_paiement").setAttribute("disabled","disabled");
	}
	else
	{
		document.getElementById("mode_paiement").removeAttribute("disabled","disabled");
		// on parcour le tableau qui contient pour chaque ligne : le compte financier et ses modes de paiement associés
		for( i = 0 ; i < n ; i++ )
		{
			// on ne passe que par le compte financié selectionné
			if( parseInt(liste_compte[i]) == parseInt(num_compte) )
			{
				// on récupère les mode de paiement relatif au compte financier
				var description_compte = liste_compte[i].split(':');
				description_compte.shift() ;
				
				// si il y a bien des mode de paiement spécifier pour ce compte financier on n'affichera 
				// alors que les modes de paiement associé
				if( description_compte.length >= 1 )
				{
					y = 0 ;
					while( y < m  )
					{
						if( ! in_array(select_paiement.options[y].value,description_compte) )
						{
							if( typeof(select_paiement.options[y]) != 'undefined' || typeof(select_paiement.options[y]) != 'object' )
							{
								select_paiement.options[y].disabled = true ;
								//select_paiement.options[y].style.color = "gray" ;
								
							}
						}
						else
						{
								var option_selectionne = y ;
								select_paiement.options[y].disabled = false;
						}
						y++;
					}
					select_paiement.options[option_selectionne].selected = true ;
				}
				else
				{
					y = 0 ;
					while( y < m  )
					{
						select_paiement.options[y].disabled = false ;
						select_paiement.options[y].style.color = "black" ;

						y++;
					}
				}
			}
		}
	}
	
}

function verifierDates(date)
{
	format_date = new RegExp("([0-9]{2})/([0-9]{2})/([0-9]{4})") ;
	var fragments_date = date.value.match(format_date) ;

	if( fragments_date == null )
	{
		return false ;
	}
	else
	{
		return true ;
	}
}

function verifierDifferenceDates(obj)
{
	//je recupere le numéro du input actif (la 2eme date)
	number_input_actif = obj.id.substr(13,2);
	
	if(obj.value != 0)
	{
		// on verifie que la 1er date est saisie
		if( !verifierDates(document.getElementById("date_" + (number_input_actif) ) ) )
		{
			alert('veuillez saisir la date sous la forme JJ/MM/AAAA') ;
			document.getElementById("date_" + (number_input_actif) ).style.backgroundColor = "#DE93A7" ;
			return false;
		}
		else
		{
			document.getElementById("date_" + (number_input_actif) ).style.backgroundColor = "#FFFFFF" ;
		}
		// on verifie que la 2eme date est saisie
		if( !verifierDates(document.getElementById("date_" + ( parseInt(number_input_actif) + 1 ) ) ) )
		{
			alert('veuillez saisir la date sous la forme JJ/MM/AAAA') ;
			document.getElementById("date_" + (parseInt(number_input_actif) + 1 ) ).style.backgroundColor = "#DE93A7" ;
			return false;
		}
		else
		{
			document.getElementById("date_" + (parseInt(number_input_actif) + 1 )).style.backgroundColor = "#FFFFFF" ;
		}
		
		var fragments_date_du = document.getElementById("date_" + (number_input_actif) ).value.match(format_date) ;
		var fragments_date_au = document.getElementById("date_" + (parseInt(number_input_actif) + 1 ) ).value.match(format_date) ;
		
		if( fragments_date_du != null && fragments_date_au != null )
		{
			var timestamp_date_du = new Date( fragments_date_du[3], fragments_date_du[2], fragments_date_du[1] ) ;
			var timestamp_date_au = new Date( fragments_date_au[3], fragments_date_au[2], fragments_date_au[1] ) ;

			if( timestamp_date_du.getTime() > timestamp_date_au.getTime() )
			{
				alert("la seconde date doit être supérieure à la première") ;

				document.getElementById("date_" + (parseInt(number_input_actif) + 1 ) ).style.backgroundColor = "#DE93A7" ;
				return false ;
			}
		}
	}	
}

/**
* Vérifie que la période a été selectionnée le cas échéant
* Vérifie les dates de début et de fin
* Vérifier si le montant est bien du numérique
**/
function verifierAjoutPanierSubvention()
{
	var f = document.getElementById("form_subvention" ) ;
	var tab_date = new Array() ;
	format_date = new RegExp("([0-9]{2})/([0-9]{2})/([0-9]{4})") ;
	
	if(f) {
		var champs = f.getElementsByTagName("input");
		var nb_champs = 0 ;
		
		for(var i=0, n=champs.length; i<n; i++) {
			
			tab_date[champs[i].id] = new Array() ;
			
			if( champs[i].name.substr(0,6) == 'dateds' )
			{
				tab_date[champs[i].id]['debut'] = champs[i].value ;
				nb_champs ++ ;
			}

			if( champs[i].name.substr(0,6) == 'datefs' )
			{
				tab_date[champs[i].id]['fin'] = champs[i].value ;
			}

		}

		var compteur  = 1 ;
		while( compteur <= ( nb_champs + 1 ) )
		{
			if( document.getElementById("montanttotal_" + parseInt( compteur )).value != 0  )
			{
				if( tab_date['date_' + parseInt(compteur) ]['debut'] != "" && tab_date['date_' + parseInt( compteur + 1 ) ]['fin'] != "" )
				{
					var fragments_date_du = document.getElementById("date_" + parseInt(compteur) ).value.match(format_date) ;
					var fragments_date_au = document.getElementById("date_" + parseInt( compteur + 1 ) ).value.match(format_date) ;
					
					if( fragments_date_du != null && fragments_date_au != null )
					{
						var timestamp_date_du = new Date( fragments_date_du[3], fragments_date_du[2], fragments_date_du[1] ) ;
						var timestamp_date_au = new Date( fragments_date_au[3], fragments_date_au[2], fragments_date_au[1] ) ;
												
						if( timestamp_date_du.getTime() > timestamp_date_au.getTime() )
						{
							alert("la seconde date doit être supérieure à la première") ;

							document.getElementById("date_" + parseInt( compteur+1 )).style.backgroundColor = "#DE93A7" ;
							return false ;
						}
						else
						{
							document.getElementById("date_" + parseInt( compteur+1 )).style.backgroundColor = "#FFFFFF" ;
						}
					}
					else
					{
						alert('veuillez saisir les dates au format jj/mm/aaaa');
						return false;
					}
				}
				else
				{
					alert('Veuillez saisir les dates de début et de fin ! ');
					return false;
				}
			}

			compteur = compteur + 2 ;
		}
		return true;
	}

	/*
	format_date = new RegExp("([0-9]{2})/([0-9]{2})/([0-9]{4})") ;
	var tab_date = new Array() ;
	
	for( i = 1 ; i < 5 ; i++)
	{
		var date = document.getElementById("date_"+i) ;
		var fragments_date = date.value.match(format_date) ;
		
		tab_date[i] = new Array();
		
		if( date.value == "" || fragments_date == null )
		{
			date.style.backgroundColor = "#DE93A7" ;
			date.value = "JJ/MM/AAAA" ;
			return false ;
		}
		else
		{
			date.style.backgroundColor = "#FFFFFF" ;
			return true;
		}
	}
*/
	return false ;
}



function in_array(needle, haystack, strict) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);
    // *     returns 1: true
 
    var found = false, key, strict = !!strict;
 
    for (key in haystack) {
        if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
            found = true;
            break;
        }
    }
 
    return found;
}

function isDateValid(chaineDate) 
{
	// Je regarde tout d'abord si la chaîne n'est pas vide, sinon pas la peine d'aller plus loin
	if (chaineDate == "") 
		return false;
   
	// J'utilise split pour créer un tableau dans lequel je récupère les jour mois année
	// J'attend bien sûr une date formatée en JJ/MM/AAAA
	var ladate = chaineDate.split("/");
   
	// Si je n'ai pas récupéré trois éléments ou bien s'il ne s'agit pas d'entiers, pas la peine non plus d'aller plus loin
	if ((ladate.length != 3) || isNaN(parseInt(ladate[0])) || isNaN(parseInt(ladate[1])) || isNaN(parseInt(ladate[2]))) 
		return false;
   
	// Sinon, c'est maintenant que je créé la date correspondante. Attention, les mois sont étalonnés de 0 à 11
	var unedate = new Date(eval(ladate[2]),eval(ladate[1])-1,eval(ladate[0]));

	// Bug de l'an 2000 oblige, lorsque je récupère l'année, je n'ai pas toujours 4 chiffres selon les navigateurs, je rectifie donc ici le tir.
	var annee = unedate.getYear();
	if ((Math.abs(annee)+"").length < 4) annee = annee + 1900;

	// Il ne reste plus qu'à vérifier si le jour, le mois et l'année obtenus sont les mêmes que ceux saisis par l'utilisateur.
	return ((unedate.getDate() == eval(ladate[0])) && (unedate.getMonth() == eval(ladate[1])-1) && (annee == eval(ladate[2])));
}

function isDateValid1(chaineDate) 
{
	// Je regarde tout d'abord si la chaîne n'est pas vide, sinon pas la peine d'aller plus loin
	if (chaineDate == "") 
		return true;
   
	// J'utilise split pour créer un tableau dans lequel je récupère les jour mois année
	// J'attend bien sûr une date formatée en JJ/MM/AAAA
	var ladate = chaineDate.split("/");
   
	// Si je n'ai pas récupéré trois éléments ou bien s'il ne s'agit pas d'entiers, pas la peine non plus d'aller plus loin
	if ((ladate.length != 3) || isNaN(parseInt(ladate[0])) || isNaN(parseInt(ladate[1])) || isNaN(parseInt(ladate[2]))) 
		return false;
   
	// Sinon, c'est maintenant que je créé la date correspondante. Attention, les mois sont étalonnés de 0 à 11
	var unedate = new Date(eval(ladate[2]),eval(ladate[1])-1,eval(ladate[0]));

	// Bug de l'an 2000 oblige, lorsque je récupère l'année, je n'ai pas toujours 4 chiffres selon les navigateurs, je rectifie donc ici le tir.
	var annee = unedate.getYear();
	if ((Math.abs(annee)+"").length < 4) annee = annee + 1900;

	// Il ne reste plus qu'à vérifier si le jour, le mois et l'année obtenus sont les mêmes que ceux saisis par l'utilisateur.
	return ((unedate.getDate() == eval(ladate[0])) && (unedate.getMonth() == eval(ladate[1])-1) && (annee == eval(ladate[2])));
}

function areDatesValid(chaineDate1, chaineDate2) 
{
	if (!isDateValid(chaineDate1))
	{
		alert ("La date de début n'est pas une date valide : veuillez saisir une date correcte au format JJ/MM/AAAA.");
		return false;
	}
	
	if (!isDateValid(chaineDate2))
	{
		alert ("La date de fin n'est pas une date valide : veuillez saisir une date correcte au format JJ/MM/AAAA.");
		return false;
	}
	
	var tdate1 = (chaineDate1).split("/");
	var date1 = new Date(eval(tdate1[2]),eval(tdate1[1])-1,eval(tdate1[0]));
		
	var tdate2 = (chaineDate2).split("/");
	var date2 = new Date(eval(tdate2[2]),eval(tdate2[1])-1,eval(tdate2[0]));
	
	if (date2.getTime() <= date1.getTime())
	{
		alert ("La date de fin doit être supérieure à la date de début");
		return false;
	}
	
	return true;
}

function areDatesValid1(chaineDate1, chaineDate2)
{
	if (!isDateValid1(chaineDate1) || !isDateValid1(chaineDate2))
	{
		alert("Une des dates saisies n'est pas au format JJ/MM/AAAA ou est incorrecte.");
		return false;
	}
}

function isMail(mail)
{
	var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]­{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');

	if (mail == '')
		return true ;
		
	if(reg.test(mail))
		return true;
	else
		return false;
}


function Check_all(container_id,state)
 {
	var checkboxes = document.getElementById(container_id).getElementsByTagName('input');

	for (var i=0;i<checkboxes.length;i++)
	{
		if(checkboxes[i].type == 'checkbox')
		{
			checkboxes[i].checked = state;
		}
	}
	return true;
 }

function Check_all_multiple(container_id,state)
 {
	var checkboxes = document.getElementById(container_id).getElementsByTagName('input');

	for (var i=0;i<checkboxes.length;i++)
	{

		if(checkboxes[i].type == 'checkbox' && checkboxes[i].name != 'droits_globaux[]' )
		{
			checkboxes[i].checked = state;
		}
	}
	return true;
}

function emulateDisabled(selectBox) {

	for (var i=0, option; option = selectBox.options[i]; i++) {
		if (option.disabled) 
		{
			option.style.color = "graytext";
		}
		else
		{
			option.style.color = "black";
		}
	}
}

function restoreEmulateDisabled(e) 
{
	if (e.options[e.selectedIndex].disabled) {
		e.selectedIndex = window.select_current[e.id];
	}
}

function addEmulation(selectBox){
	window.select_current = new Array();
	selectBox.onfocus = function(){ window.select_current[this.id] = this.selectedIndex; }
	selectBox.onchange = function(){ restoreEmulateDisabled(this); }
}

