/*     LIMITATION DES CARACTERES */
// args : string moncontroletexte, int nbcar, string moncontroledecompte
// return : aucun
// Affecte à certains événements d'un textarea, le controle de la longueur de son contenu
function LimiterTextArea(nom_controletexte, nbcar, nom_controledecompte)
{
	var moncontroletexte = document.getElementById(nom_controletexte);
	var moncontroledecompte = document.getElementById(nom_controledecompte);

	if (moncontroletexte && moncontroledecompte)
	{
		moncontroletexte.onclick = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};
		moncontroletexte.onblur = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};
		moncontroletexte.onkeyup = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};
		moncontroletexte.onkeypress = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};

		// *** Affichage du nombre de caractères restant
		if(moncontroledecompte.type)
			moncontroledecompte.value = NbCarRestant(moncontroletexte, nbcar); // Pour un input de formulaire
		else
			moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar); // Pour un élément HTML
	}
}

// TextAreaEstRempli
// args : textarea moncontroletexte, int nbcar, element_HTML moncontroledecompte
// return : bool
// Renvoie vrai si le nombre de caractères maximum du textarea n'est pas atteint
function TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)
{
	if (moncontroletexte)
	{
		if (moncontroletexte.value.length <= nbcar)
		{
			// mes actions ...
			// *** Affichage du nombre de caractères restant

			if(moncontroledecompte.type)
				moncontroledecompte.value = NbCarRestant(moncontroletexte, nbcar);
			else
				moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar);

			return true;
		}
		else
		{
			// mes actions ...
			// Affichage du nombre de caractères restant
			moncontroletexte.value = moncontroletexte.value.substr(0, nbcar-moncontroletextetotal.value.length);

			// *** Affichage du nombre de caractères restant
			if(moncontroledecompte.type)
				moncontroledecompte.value = NbCarRestant(moncontroletexte, nbcar);
			else
				moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar);
			return false;
		}
	}
}

// NbCarRestant
// args : textarea moncontroletexte, int nbcar
// return : int
// Renvoie le nombre de caractère à saisir
function NbCarRestant(moncontroletexte, nbcar)
{
	if (moncontroletexte.value.length)
		return new Number(nbcar - moncontroletexte.value.length);
	else
		return new Number(nbcar);
} 

/*     LIMITATION DES CARACTERES */
// args : string moncontroletexte, int nbcar, string moncontroledecompte
// return : aucun
// Affecte à certains événements d'un textarea, le controle de la longueur de son contenu
function LimiterTextAreaDouble(nom_controletexte, nom_controletextetotal, nbcar, nom_controledecompte)
{
	var moncontroletexte = document.getElementById(nom_controletexte);
	var moncontroletextetotal = document.getElementById(nom_controletextetotal);
	var moncontroledecompte = document.getElementById(nom_controledecompte);

	if (moncontroletexte && moncontroledecompte)
	{
		moncontroletexte.onclick = function(){TextAreaEstRempliDouble(moncontroletexte, moncontroletextetotal, nbcar, moncontroledecompte)};
		moncontroletexte.onblur = function(){TextAreaEstRempliDouble(moncontroletexte, moncontroletextetotal, nbcar, moncontroledecompte)};
		moncontroletexte.onkeyup = function(){TextAreaEstRempliDouble(moncontroletexte, moncontroletextetotal, nbcar, moncontroledecompte)};
		moncontroletexte.onkeypress = function(){TextAreaEstRempliDouble(moncontroletexte, moncontroletextetotal, nbcar, moncontroledecompte)};

		// *** Affichage du nombre de caractères restant
		if(moncontroledecompte.type)
			moncontroledecompte.value = NbCarRestantDouble(moncontroletexte, moncontroletextetotal, nbcar); // Pour un input de formulaire
		else
			moncontroledecompte.innerHTML = NbCarRestantDouble(moncontroletexte, moncontroletextetotal, nbcar); // Pour un élément HTML
	}
}

// TextAreaEstRempli
// args : textarea moncontroletexte, int nbcar, element_HTML moncontroledecompte
// return : bool
// Renvoie vrai si le nombre de caractères maximum du textarea n'est pas atteint
function TextAreaEstRempliDouble(moncontroletexte, moncontroletextetotal, nbcar, moncontroledecompte)
{
	if (moncontroletexte || moncontroletextetotal)
	{
		if (moncontroletexte.value.length+moncontroletextetotal.value.length <= nbcar)
		{
			// mes actions ...
			// *** Affichage du nombre de caractères restant

			if(moncontroledecompte.type)
				moncontroledecompte.value = NbCarRestantDouble(moncontroletexte, moncontroletextetotal, nbcar);
			else
				moncontroledecompte.innerHTML = NbCarRestantDouble(moncontroletexte, moncontroletextetotal, nbcar);

			return true;
		}
		else
		{
			// mes actions ...
			// Affichage du nombre de caractères restant
			moncontroletexte.value = moncontroletexte.value.substr(0, nbcar-moncontroletextetotal.value.length);

			// *** Affichage du nombre de caractères restant
			if(moncontroledecompte.type)
				moncontroledecompte.value = NbCarRestantDouble(moncontroletexte, moncontroletextetotal, nbcar);
			else
				moncontroledecompte.innerHTML = NbCarRestantDouble(moncontroletexte, moncontroletextetotal, nbcar);
			return false;
		}
	}
}

// NbCarRestant
// args : textarea moncontroletexte, int nbcar
// return : int
// Renvoie le nombre de caractère à saisir
function NbCarRestantDouble(moncontroletexte, moncontroletextetotal, nbcar)
{
	if (moncontroletexte.value.length || moncontroletextetotal.value.length)
		return new Number(nbcar - (moncontroletexte.value.length+moncontroletextetotal.value.length));
	else
		return new Number(nbcar);
} 


