// mettre dans le "onClick" du champ textarea: Compter(this, this.form.CharRestant)

// ===================================== barre d'outils ====================================

function formater(tag)
{
  var str = document.selection.createRange().text;
  if (str=='') { alert("selectionnez une portion de texte à formater !");exit;}
  document.article.message.focus();
  var sel = document.selection.createRange();
  sel.text = "[" + tag + "]" + str + "[/" + tag + "]";
  return;
}

function colorer(clr) {
  var str = document.selection.createRange().text;
  if (str=='') { alert("selectionnez une portion de texte à colorer !");exit;}
  document.article.message.focus();
  var sel = document.selection.createRange();
  sel.text = "[color=" + clr + "]" + str + "[/color]";
  return;
}

function lien() {
  var str = document.selection.createRange().text;
  document.article.message.focus();
  if (str=='') { alert("selectionnez la portion de texte à affecter comme lien");exit;}
  var lien = prompt("URL: veillez à bien faire figurer le \" http:// \" précédant l'adresse. Utilisez cette fonction seulement si votre lien doit être désigné par un mot (voir l'assistant)","http://");
  if (lien != null) {
    var sel = document.selection.createRange();
    sel.text = "[url=" + lien + "]" + str + "[/url]";
  }
  return;
}

function at() {
  var str = document.selection.createRange().text;
  document.article.message.focus();
  if (str=='') { alert("selectionnez la portion de texte à affecter comme e-mail");exit;}
  var at = prompt("MAIL: le texte selectionné pointera vers cet e-mail");
  if (at != null) {
    var sel = document.selection.createRange();
    sel.text = "[email=\"" + at + "\"]" + str + "[/email]";
  }
  return;
}

function visu()
{
  var txt = document.article.message; //.text;
  document.write(txt);	
}

function noHTML()
{
  if (event.keyCode==60 || event.keyCode==62) event.returnValue = false;
  if (event.which==60 || event.which==62) return false;
}

function numOnly()
{
  if(event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;
  if(event.which < 45 || event.which > 57) return false;
}



// ======================================== Limitations ======================================

// ============================ ( PORTION DE CODE A PERSONNALISER ) ==========================

//	Mots interdits. (ne tient pas compte de la casse : 'WaGoN' sera détecté comme 'wagon' )
var mots_interdits = new Array('connard','enculer','enculez','bite','fuck','shit','merde','merdeux','merdique','connasse','pute','salope','pd','pédé','pede','pederaste','pédéraste');
//	Si la variable suivante est à true, les mots interdits sont remplacés par des étoiles.
//	Sinon, il sont effacés.
var RemplacementEtoiles = false;
//	Nombre de caractères maximum du textarea
//	nb char max contenu ds un champ mysql de type "text" est 65535 !
var Nombre_Caracteres_Maximum = 65535;
//	Nombre de caractères minimimal à partir duquel il n'y a plus de doute :
//	Le mot qui est scanné est bien un mot interdit.
//	Valeur par défaut : 4
//	EXEMPLE :
//		Mettez le mot 'con' dans le tableau des mots interdits.
//		Tapez le mot conSpiration.
//		Mettez le curseur du textarea juste avant le S.
//		Tapez un espace. ===> le mot 'con' est remplacé.
//		Si vous mettez la variable suivante à 3, et que vous recommencez l'opération, vous ne pourrez pas taper le mot conspiration.
var Constante_Doute = 4;

// ============================ ! PORTION DE CODE PERMANANTE ! ===============================

var StrLen;
var Contenu;

Constante_Doute--; // on decremente la var constante_doute
function Etoiles(nb)
{
	v = '';
	j=0;
	while(j < nb)
	{
		v += '*';
		j++;
	}
	if(!RemplacementEtoiles) v = '';
	return v;
}

function ReInit(valeur, nb, bool)
{
	if(bool == undefined)	bool = false;
	v = Etoiles(nb);
	espace = (RemplacementEtoiles) ? ' ' : '';
	Contenu = (! bool ) ? (valeur + v) : (v + espace + valeur);
	StrLen = Contenu.length;
}

function Compter(Target, compteur)
{
  ReInit(Target.value, -1);
  for(i=0; i < mots_interdits.length; i++)
  {
    reg = new RegExp(' '+mots_interdits[i]+' ', 'gi');
    v = ' '+Etoiles(mots_interdits[i].length)+' ';
	
    if((!RemplacementEtoiles)&&(i==0)) v += ' ';
    ReInit(Contenu.replace(reg, v), -1);
	
    if(Contenu.substring(0, mots_interdits[i].length+1).toLowerCase() == mots_interdits[i].toLowerCase()+' ')
    ReInit(Contenu.substring(mots_interdits[i].length+1, StrLen), mots_interdits[i].length, true);
	
    if((Contenu.substring(StrLen-mots_interdits[i].length, StrLen).toLowerCase() == mots_interdits[i].toLowerCase()) && (mots_interdits[i].length > Constante_Doute))
    ReInit(Contenu.substring(0, StrLen-mots_interdits[i].length), mots_interdits[i].length);
    // script par SirJojO ===> forums http://www.editeurjavascript.com/
  }
  if (StrLen > Nombre_Caracteres_Maximum)
  {
    Erreur = false;
    for(i=0; i < mots_interdits.length; i++)
    {
      if(Contenu.substring(StrLen-mots_interdits[i].length, StrLen).toLowerCase() == mots_interdits[i].toLowerCase())
      {
        ReInit(Contenu.substring(0, StrLen-mots_interdits[i].length), mots_interdits[i].length, true);
        Erreur = true;
      }
    }
    if(!Erreur) ReInit(Contenu.substring(0,Nombre_Caracteres_Maximum), -1);
  }
  Target.value = Contenu;
  compteur.value = Nombre_Caracteres_Maximum - StrLen;
}
