function include( filename )
{ 
    var js = document.createElement('script');
    js.setAttribute('type', 'text/javascript');
    js.setAttribute('src', filename);
    js.setAttribute('defer', 'defer');
    document.getElementsByTagName('HEAD')[0].appendChild(js);
 
    // save include state for reference by include_once
    var cur_file = {};
    cur_file[window.location.href] = 1;
 
    if (!window.php_js) window.php_js = {};
    if (!window.php_js.includes) window.php_js.includes = cur_file;
    if (!window.php_js.includes[filename]) {
        window.php_js.includes[filename] = 1;
    } else {
        window.php_js.includes[filename]++;
    }
 
    return window.php_js.includes[filename];
}
include('inc/javascript/function.js');

function bbcode_insert(text,modebb)
{
	var champ = document.getElementById('message');
	var str = champ.value;
	var msgstart = champ.selectionStart,msgend = champ.selectionEnd; // recupération de la position du curseur
	var balise = text.split("]");
	var balisedebut = balise[0] + "]",balisefin = balise[1] + "]"; //recuperation de la balise de debut et de fin
	if(typeof msgstart == "undefined")// cas IE
	{
		champ.focus();
		var caretPos = document.selection.createRange().duplicate();
		if (champ.curseur) champ.curseur.text = balisedebut + champ.curseur.text + balisefin;
		if(!modebb) caretPos.text = text; // modification du texte séléctionné
		else caretPos.text = balisedebut + caretPos.text + balisefin; // modification du texte séléctionné avec les balises
	}
	else // cas autre
	{
		if(!modebb)
		{
			champ.value = str.substring(0,msgstart) + text + str.substring(msgend,str.length); // ajout simple a partir de la position du curseur
			champ.setSelectionRange(msgstart+text.length,msgstart+text.length); // repositionne le curseur dans la textchamp
		}
		else
		{
			champ.value = str.substring(0,msgstart) + balisedebut + str.substring(msgstart,msgend) + balisefin + str.substring(msgend,str.length); // ici je recupere le texte selectionné et ajoute une balise au début et à la fin
			champ.setSelectionRange(msgstart+balisedebut.length,msgend+balisedebut.length); // repositionne le curseur dans la textchamp
		}
	}
	previsualisation();
	champ.focus();
}
function previsualisation()
{
	var contenu = document.getElementById('message').value;
	contenu = str_replace(';)', '{;)}', contenu); //Bug des accents : &eacute;
	contenu = htmlentities(contenu);
	contenu = str_replace("\n", '<br />', contenu);
	contenu = str_replace("   ", '&nbsp;&nbsp;&nbsp;', contenu);
	contenu = str_replace("  ", '&nbsp;&nbsp;', contenu);
	contenu = str_replace(':D', '<img src="img/smiley/heureux.png" />', contenu);
	contenu = str_replace('{;)}', '<img src="img/smiley/wink.png" />', contenu);
	contenu = str_replace(':p', '<img src="img/smiley/langue.png" />', contenu);
	contenu = str_replace(':mdr:', '<img src="img/smiley/rire.gif" />', contenu);
	contenu = str_replace(':euh:', '<img src="img/smiley/euh.gif" />', contenu);
	contenu = str_replace(':triste:', '<img src="img/smiley/triste.png" />', contenu);
	contenu = str_replace(':o', '<img src="img/smiley/huh.png" />', contenu);
	contenu = str_replace(':colere:', '<img src="img/smiley/colere.png" />', contenu);
	contenu = str_replace(':hein:', '<img src="img/smiley/hein.gif" />', contenu);
	contenu = str_replace('^^', '<img src="img/smiley/hihi.png" />', contenu);
	contenu = str_replace(':lala:', '<img src="img/smiley/siffle.png" />', contenu);
	contenu = str_replace(':)', '<img src="img/smiley/sourire.png" />', contenu);
	contenu = contenu.replace(/\[historique id=[0-9]+\]/g, '<div style="border:1px solid #ad2717;margin:auto;text-align:center;"><br />Information de l\'historique<br /><br /></div>');
	contenu = contenu.replace(/\[b\]([\s\S]*?)\[\/b\]/g, '<span style="font-weight:bold;">$1</span>');
	contenu = contenu.replace(/\[i\]([\s\S]*?)\[\/i\]/g, '<span style="font-style:italic;">$1</span>');
	contenu = contenu.replace(/\[u\]([\s\S]*?)\[\/u\]/g, '<span style="text-decoration:underline;">$1</span>');
	contenu = contenu.replace(/\[p\]([\s\S]*?)\[\/p\]/g, '<p class="p">$1</p>');
	contenu = contenu.replace(/\[barré\]([\s\S]*?)\[\/barré\]/g, '<span style="text-decoration:line-through;">$1</span>');
	contenu = contenu.replace(/\[barr&eacute;\]([\s\S]*?)\[\/barr&eacute;\]/g, '<span style="text-decoration:line-through;">$1</span>');
	contenu = contenu.replace(/\[color=(orange|noir|marron|vert|olive|marine|violet|bleugris|argent|gris|rouge|jaune|bleu|rose|turquoise|blanc)\]([\s\S]*?)\[\/color\]/g, '<span class="$1">$2</span>');
	contenu = contenu.replace(/\[taille=(ttpetit|tpetit|petit|gros|tgros|ttgros)\]([\s\S]*?)\[\/taille\]/g, '<span class="$1">$2</span>');
	contenu = contenu.replace(/\[align=(left|center|right|justify)\]([\s\S]*?)\[\/align\]/g, '<span style="display:block;width:100%;text-align:$1;">$2</span>');
	contenu = contenu.replace(/\[url\](http:\/\/)?([\s\S]*?)\[\/url\]/g, '<a href="http://$2" target="_blank">$2</a>');
	contenu = contenu.replace(/\[url=(http:\/\/)?([\s\S]*?)\]([\s\S]*?)\[\/url\]/g, '<a href="http://$2" target="_blank">$3</a>');
	contenu = contenu.replace(/\[img\]([^"]*?)\[\/img\]/g, '<img src="$1" />');
	contenu = contenu.replace(/\[secret\]([\s\S]*?)\[\/secret\]/g, '<span class="spoiler">Secret (cliquez pour afficher)</span><div class="spoiler2" onclick="switch_spoiler(this);return false;"><div class="spoiler3">$1</div></div>');

	var i = 0; 
	while ((contenu.search(/\[citation (nom|id)=(.*?)\]([\s\S]*?)\[\/citation\]/g) != -1 || contenu.search(/\[citation\]([\s\S]*?)\[\/citation\]/g) != -1) && i < 20) 
	{ 
		contenu = contenu.replace(/\[citation (nom|id)=(.*?)\]([\s\S]*?)\[\/citation\]/g, '<span class="citation">Citation : $2</span><div class="citation2">$3</div>');
		contenu = contenu.replace(/\[citation\]([\s\S]*?)\[\/citation\]/g, '<span class="citation">Citation :</span><div class="citation2">$1</div>');
		i++; 
	}
	document.getElementById('previsualisation').innerHTML = contenu;
}
function add_balise(nom) 
{
	balise = document.getElementById(nom).value; 
	if (balise != '') bbcode_insert('['+nom+'='+balise+'][/'+nom+']',1);
	if (document.getElementById(nom)) document.getElementById(nom).options[0].selected = true; 
}
function lien()
{
	var champ = document.getElementById('message');
	var str = champ.value;
	var msgstart = champ.selectionStart,msgend = champ.selectionEnd; // recupération de la position du curseur
	if(typeof msgstart == "undefined")// cas IE
	{
		champ.focus();
		var caretPos = document.selection.createRange().duplicate();
		// if (champ.curseur) var texte = champ.curseur.text;
		var texte = caretPos.text;
	}
	else // cas autre
	{
		var texte = str.substring(msgstart,msgend);
	}
	var lien = prompt("Saisissez l'adresse du lien");
	if(!empty(lien)) // Annulé ou champs vide
	{
		if(empty(texte)) var texte = prompt("Saisissez le texte du lien (Si vide le lien sera affiché)");
		
		if(empty(texte)) retour = '[url]'+lien+'[/url]';
		else retour = '[url='+lien+']'+texte+'[/url]';
		bbcode_insert(retour);
	}
}
function image()
{
	var champ = document.getElementById('message');
	var str = champ.value;
	var msgstart = champ.selectionStart,msgend = champ.selectionEnd; // recupération de la position du curseur
	if(typeof msgstart == "undefined")// cas IE
	{
		champ.focus();
		var caretPos = document.selection.createRange().duplicate();
		// if (champ.curseur) var texte = champ.curseur.text;
		var texte = caretPos.text;
	}
	else // cas autre
	{
		var texte = str.substring(msgstart,msgend);
	}
	if(empty(texte)) var lien = prompt("Saisissez l'adresse de l'image");
	else var lien = texte;
	if(!empty(lien)) // Annulé ou champs vide
	{
		bbcode_insert('[img]'+lien+'[/img]');
	}
}

function switch_spoiler(div2)
{
	var divs = div2.getElementsByTagName('div');
	var div3 = divs[0];

	if (div3.style.visibility == 'visible') div3.style.visibility = 'hidden';
	else div3.style.visibility = 'visible';
	return false;
}

