/*
** 	Renvoie un password généré avec un nombre
** 		nombre => nombre de caratéres
*/
function gen_pass(nombre){
	var chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
	var pass = '';
	for (var i=0; i < nombre; i++){
		pass = pass + chars.charAt(Math.floor(Math.random() * chars.length));
	}  return pass;
}

function storeCaret(textEl)
{
	if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}

/*
** Fonction javascript reprises (et modifiées) de phpBB
*/
function Ajouter(fscode_ouvert, texte_defaut, fscode_ferme)
{
    var txtarea = document.form_nom.message;
    var clientPC = navigator.userAgent.toLowerCase();
    var clientVer = parseInt(navigator.appVersion);
    var is_ie = ( ( clientPC.indexOf("msie") != -1 ) && ( clientPC.indexOf("opera") == -1 ) );
    var is_win = ( ( clientPC.indexOf("win")!= -1 ) || ( clientPC.indexOf("16bit") != -1 ) );

    if ( ( clientVer >= 4 ) && is_ie && is_win )
    {
        if ( txtarea.createTextRange )
        {
            var text;
            txtarea.focus( txtarea.caretPos );
            txtarea.caretPos = document.selection.createRange().duplicate();

            if ( txtarea.caretPos.text.length > 0 )
            {
                txtarea.caretPos.text = fscode_ouvert + txtarea.caretPos.text + fscode_ferme;
            }
            else
            {
                txtarea.caretPos.text = fscode_ouvert + texte_defaut + fscode_ferme;
            }
        }
        else
        {
            txtarea.value += fscode_ouvert + texte_defaut + fscode_ferme;
        }
    }
    else
    {
        var selLength = txtarea.textLength;
        var selStart = txtarea.selectionStart;
        var selEnd = txtarea.selectionEnd;
        var scrollPos = txtarea.scrollTop;
        var selection = txtarea.value.substr(selStart, selEnd - selStart);
        if ( selEnd == 1 || selEnd == 2 )
            selEnd = selLength;
        var s1 = txtarea.value.substring(0,selStart);
        var s3 = txtarea.value.substring(selEnd, selLength);

        if (selection.length == 0)
            selection = texte_defaut;
        txtarea.value = s1 + fscode_ouvert + selection + fscode_ferme + s3;
        if (txtarea.setSelectionRange)
            txtarea.setSelectionRange(selStart, selStart + fscode_ouvert.length + selection.length + fscode_ferme.length);
        txtarea.focus();
        txtarea.scrollTop = scrollPos;
    }
}

/*
** Fonction tirée de phpBB pour ajouter des smileys
*/
function Ajouter_Smiley(text)
{
	var txtarea = opener.document.form_nom.message;
	text = ' ' + text + ' ';
	if (txtarea.createTextRange && txtarea.caretPos)
	{
		var caretPos = txtarea.caretPos;
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
	}
	else if ( txtarea.selectionStart || txtarea.selectionStart == 0 )
	{
		var before = (txtarea.value).substring(0, txtarea.selectionStart);
		var after  = (txtarea.value).substring(txtarea.selectionEnd, txtarea.textLength);
		txtarea.value = before + text + after;
	}
	else
	{
		txtarea.value  += text;
	}

	txtarea.focus();
}

/*
** Cette fonction, codée par grummfy, permet l'ajout de smileys là où se trouve le curseur, ce 
** qui s'avère extrèmement pratique. Un grand merci à lui :)
*/
function Smileys(smilies)
{
	var myForm = document.form_nom.message;
	if (document.selection)
	{
		myForm.focus();
		document.selection.createRange().text = smilies;
		document.form_nom.focus();
	}
	else if (myForm.selectionStart)
	{
		var pos_debut = myForm.selectionStart;
		var pos_fin = myForm.selectionEnd;
		var chaine = myForm.value;
		myForm.value = chaine.substring(0, pos_debut) + smilies  + chaine.substring(myForm.selectionEnd, myForm.value.length);
	}
	else
	{
		myForm.value += smilies;
	}
}

/*
** Ces fonctions permettent de cacher ou d'afficher des données.
** Merci à Reddog qui nous a gentiment permis de les utiliser, elles proviennent 
** de son MOD "Bottom Tabs MOD" pour phpBB.
*/
function ShowHide(layer_open, layer_close)
{
	if (layer_open != '')
	{
		expandLayer(layer_open);
	}

	if (layer_close != '')
	{
		expandLayer(layer_close);
	}
}
function expandLayer(name)
{
	var itm = null;

	if (document.getElementById)
	{
		itm = document.getElementById(name);
	}
	else if (document.all)
	{
		itm = document.all[name];
	}
	else if (document.layers)
	{
		itm = document.layers[name];
	}

	if (!itm)
	{
	}
	else if (itm.style)
	{
		if (itm.style.display == "none")
		{
			itm.style.display = "";
		}
		else
		{
			itm.style.display = "none";
		}
	}
	else
	{
		itm.visibility = "show";
	}
}
