function bbcode(bbdebut, bbfin)
{
var input = window.document.formulaire.message;
input.focus();
if(typeof document.selection != 'undefined')
{
var range = document.selection.createRange();
var insText = range.text;
range.text = bbdebut + insText + bbfin;
range = document.selection.createRange();
if (insText.length == 0)
{
range.move('character', -bbfin.length);
}
else
{
range.moveStart('character', bbdebut.length + insText.length + bbfin.length);
}
range.select();
}
else if(typeof input.selectionStart != 'undefined')
{
var start = input.selectionStart;
var end = input.selectionEnd;
var insText = input.value.substring(start, end);
input.value = input.value.substr(0, start) + bbdebut + insText + bbfin + input.value.substr(end);
var pos;
if (insText.length == 0)
{
pos = start + bbdebut.length;
}
else
{
pos = start + bbdebut.length + insText.length + bbfin.length;
}
input.selectionStart = pos;
input.selectionEnd = pos;
}
 
else
{
var pos;
var re = new RegExp('^[0-9]{0,3}$');
while(!re.test(pos))
{
pos = prompt("insertion (0.." + input.value.length + "):", "0");
}
if(pos > input.value.length)
{
pos = input.value.length;
}
var insText = prompt("Veuillez taper le texte");
input.value = input.value.substr(0, pos) + bbdebut + insText + bbfin + input.value.substr(pos);
}
}
 


function preview(textareaId, previewDiv) {
	var field = textareaId.value;
	if (document.getElementById('previsualisation').checked && field) {
		
		var smiliesName = new Array(':colere:', ':ange:','&gt;_&lt;', ':soleil:', ':\'\\(', ':D', ':p',':mechant:', 'oO', '\\^\\^');
		var smiliesUrl  = new Array('angry.png', 'ange.png','pinch.png', 'soleil.png', 'pleure.png', 'smileD.png', 'langue.png', 'grr.png', 'blink.png', 'smile.png');
		var smiliesPath = "http://www.newbies.fr/Templates/images/smilies/";
	
		field = field.replace(/&/g, '&amp;');
		field = field.replace(/</g, '&lt;').replace(/>/g, '&gt;');
		field = field.replace(/\n/g, '<br />').replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
		
		
		
		field = field.replace(/&lt;youtube&gt;http:\/\/www.youtube.com\/watch?v=([\s\S]*?)&feature=([\s\S]*?)&lt;\/youtube&gt;/g, '<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/$1?fs=1&amp;hl=fr_FR&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/$1?fs=1&amp;hl=fr_FR&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>');
		
		
				// Formatage du texte
		field = field.replace(/&lt;legende&gt;([\s\S]*?)&lt;\/legende&gt;/g, '<center><em>$1</em></center>');
		field = field.replace(/&lt;gras&gt;([\s\S]*?)&lt;\/gras&gt;/g, '<strong>$1</strong>');
		field = field.replace(/&lt;acronyme titre="([\s\S]*?)"&gt;([\s\S]*?)&lt;\/acronyme&gt;/g, '<acronym title="$1">$2</acronym>');
		field = field.replace(/&lt;italique&gt;([\s\S]*?)&lt;\/italique&gt;/g, '<em>$1</em>');
		field = field.replace(/&lt;souligne&gt;([\s\S]*?)&lt;\/souligne&gt;/g, '<u>$1</u>');
		field = field.replace(/&lt;barre&gt;([\s\S]*?)&lt;\/barre&gt;/g, '<strike>$1</strike>');
		field = field.replace(/&lt;separateur&gt;([\s\S]*?)&lt;\/separateur&gt;/g, '<br /><hr /><br />');
		
		
		field = field.replace(/&lt;lien url="([\s\S]*?)"&gt;([\s\S]*?)&lt;\/lien&gt;/g, '<a href="$1" title="$2">$2</a>');
		field = field.replace(/&lt;image h="([\s\S]*?) l="([\s\S]*?)"&gt;([\s\S]*?)&lt;\/image&gt;/g, '<img style="height: $1px; width: $2px;" src="$3" alt="Image" />');
		
		// allignement
		field = field.replace(/&lt;gauche&gt;([\s\S]*?)&lt;\/gauche&gt;/g, '<span class="gauche">$1</span>');
		field = field.replace(/&lt;droite&gt;([\s\S]*?)&lt;\/droite&gt;/g, '<span class="droite">$1</span>');
		field = field.replace(/&lt;centre&gt;([\s\S]*?)&lt;\/centre&gt;/g, '<center>$1</center>');
		field = field.replace(/&lt;justifie&gt;([\s\S]*?)&lt;\/justifie&gt;/g, '<span class="justifie">$1</span>');
		
		// couleur
		field = field.replace(/&lt;bleu&gt;([\s\S]*?)&lt;\/bleu&gt;/g, '<span class="bleu">$1</span>');
		field = field.replace(/&lt;rouge&gt;([\s\S]*?)&lt;\/rouge&gt;/g, '<span class="rouge">$1</span>');
		field = field.replace(/&lt;rose&gt;([\s\S]*?)&lt;\/rose&gt;/g, '<span class="rose">$1</span>');
		field = field.replace(/&lt;vertc&gt;([\s\S]*?)&lt;\/vertc&gt;/g, '<span class="vertc">$1</span>');
		field = field.replace(/&lt;vertf&gt;([\s\S]*?)&lt;\/vertf&gt;/g, '<span class="vertf">$1</span>');
		field = field.replace(/&lt;jaune&gt;([\s\S]*?)&lt;\/jaune&gt;/g, '<span class="jaune">$1</span>');
		field = field.replace(/&lt;blanc&gt;([\s\S]*?)&lt;\/blanc&gt;/g, '<span class="blanc">$1</span>');
		field = field.replace(/&lt;turquoise&gt;([\s\S]*?)&lt;\/turquoise&gt;/g, '<span class="turquoise">$1</span>');
		field = field.replace(/&lt;gris&gt;([\s\S]*?)&lt;\/gris&gt;/g, '<span class="gris">$1</span>');
		field = field.replace(/&lt;argent&gt;([\s\S]*?)&lt;\/argent&gt;/g, '<span class="argent">$1</span>');
		field = field.replace(/&lt;orange&gt;([\s\S]*?)&lt;\/orange&gt;/g, '<span class="orange">$1</span>');
		field = field.replace(/&lt;noir&gt;([\s\S]*?)&lt;\/noir&gt;/g, '<span class="noir">$1</span>');
		field = field.replace(/&lt;marron&gt;([\s\S]*?)&lt;\/marron&gt;/g, '<span class="marron">$1</span>');
		field = field.replace(/&lt;olive&gt;([\s\S]*?)&lt;\/olive&gt;/g, '<span class="olive">$1</span>');
		field = field.replace(/&lt;marine&gt;([\s\S]*?)&lt;\/marine&gt;/g, '<span class="marine">$1</span>');
		field = field.replace(/&lt;violet&gt;([\s\S]*?)&lt;\/violet&gt;/g, '<span class="violet">$1</span>');
		field = field.replace(/&lt;bleugrist&gt;([\s\S]*?)&lt;\/bleugris&gt;/g, '<span class="bleugris">$1</span>');
		field = field.replace(/&lt;bleuazur&gt;([\s\S]*?)&lt;\/bleuazur&gt;/g, '<span class="bleuazur">$1</span>');

		// FONDS
		field = field.replace(/&lt;fond-bleu&gt;([\s\S]*?)&lt;\/fond-bleu&gt;/g, '<span class="fond_bleu">$1</span>');
		field = field.replace(/&lt;fond-rouge&gt;([\s\S]*?)&lt;\/fond-rouge&gt;/g, '<span class="fond_rouge">$1</span>');
		field = field.replace(/&lt;fond-rose&gt;([\s\S]*?)&lt;\/fond-rose&gt;/g, '<span class="fond_rose">$1</span>');
		field = field.replace(/&lt;fond-vertc&gt;([\s\S]*?)&lt;\/fond-vertc&gt;/g, '<span class="fond_vertc">$1</span>');
		field = field.replace(/&lt;fond-vertf&gt;([\s\S]*?)&lt;\/fond-vertf&gt;/g, '<span class="fond_vertf">$1</span>');
		field = field.replace(/&lt;fond-jaune&gt;([\s\S]*?)&lt;\/fond-jaune&gt;/g, '<span class="fond_jaune">$1</span>');
		field = field.replace(/&lt;fond-blanc&gt;([\s\S]*?)&lt;\/fond-blanc&gt;/g, '<span class="fond_blanc">$1</span>');
		field = field.replace(/&lt;fond-turquoise&gt;([\s\S]*?)&lt;\/fond-turquoise&gt;/g, '<span class="fond_turquoise">$1</span>');
		field = field.replace(/&lt;fond-gris&gt;([\s\S]*?)&lt;\/fond-gris&gt;/g, '<span class="fond_gris">$1</span>');
		field = field.replace(/&lt;fond-argent&gt;([\s\S]*?)&lt;\/fond-argent&gt;/g, '<span class="fond_argent">$1</span>');
		field = field.replace(/&lt;fond-orange&gt;([\s\S]*?)&lt;\/fond-orange&gt;/g, '<span class="fond_orange">$1</span>');
		field = field.replace(/&lt;fond-noir&gt;([\s\S]*?)&lt;\/fond-noir&gt;/g, '<span class="fond_noir">$1</span>');
		field = field.replace(/&lt;fond-marron&gt;([\s\S]*?)&lt;\/fond-marron&gt;/g, '<span class="fond_marron">$1</span>');
		field = field.replace(/&lt;fond-olive&gt;([\s\S]*?)&lt;\/fond-olive&gt;/g, '<span class="fond_olive">$1</span>');
		field = field.replace(/&lt;fond-marine&gt;([\s\S]*?)&lt;\/fond-marine&gt;/g, '<span class="fond_marine">$1</span>');
		field = field.replace(/&lt;fond-violet&gt;([\s\S]*?)&lt;\/fond-violet&gt;/g, '<span class="fond_violet">$1</span>');
		field = field.replace(/&lt;fond-bleugrist&gt;([\s\S]*?)&lt;\/fond-bleugris&gt;/g, '<span class="fond_bleugris">$1</span>');
		field = field.replace(/&lt;fond-bleuazur&gt;([\s\S]*?)&lt;\/fond-bleuazur&gt;/g, '<span class="fond_bleuazur">$1</span>');
		
		// fond couleur personnalisée 
		field = field.replace(/&lt;fond-([\s\S]*?)&gt;([\s\S]*?)&lt;\/fond-couleur&gt;/g, '<span style="color: $1;">$2</span>');
		
		// Polices
		field = field.replace(/&lt;arial&gt;([\s\S]*?)&lt;\/arial&gt;/g, '<span class="arial">$1</span>');
		field = field.replace(/&lt;times&gt;([\s\S]*?)&lt;\/times&gt;/g, '<span class="times">$1</span>');
		field = field.replace(/&lt;impact&gt;([\s\S]*?)&lt;\/impact&gt;/g, '<span class="impact">$1</span>');
		field = field.replace(/&lt;geneva&gt;([\s\S]*?)&lt;\/geneva&gt;/g, '<span class="geneva">$1</span>');
		field = field.replace(/&lt;optima&gt;([\s\S]*?)&lt;\/optima&gt;/g, '<span class="optima">$1</span>');
		
		// taille
		field = field.replace(/&lt;minuscule&gt;([\s\S]*?)&lt;\/minuscule&gt;/g, '<span class="ttpetit">$1</span>');
		field = field.replace(/&lt;tres-petit&gt;([\s\S]*?)&lt;\/tres-petit&gt;/g, '<span class="tpetit">$1</span>');
		field = field.replace(/&lt;petit&gt;([\s\S]*?)&lt;\/petit&gt;/g, '<span class="petit">$1</span>');
		field = field.replace(/&lt;gros&gt;([\s\S]*?)&lt;\/gros&gt;/g, '<span class="gros">$1</span>');
		field = field.replace(/&lt;tres-gros&gt;([\s\S]*?)&lt;\/tres-gros&gt;/g, '<span class="tgros">$1</span>');
		field = field.replace(/&lt;enorme&gt;([\s\S]*?)&lt;\/enorme&gt;/g, '<span class="ttgros">$1</span>');
		
		// Remarques 
		field = field.replace(/&lt;info&gt;([\s\S]*?)&lt;\/info&gt;/g, '<div class="rmq information">$1</div>');
		field = field.replace(/&lt;question&gt;([\s\S]*?)&lt;\/question&gt;/g, '<div class="rmq question">$1</div>');
		field = field.replace(/&lt;erreur&gt;([\s\S]*?)&lt;\/erreur&gt;/g, '<div class="rmq erreur">$1</div>');
		field = field.replace(/&lt;danger&gt;([\s\S]*?)&lt;\/danger&gt;/g, '<div class="rmq attention">$1</div>');

		
		// titres
		field = field.replace(/&lt;titre1&gt;([\s\S]*?)&lt;\/titre1&gt;/g, '<span class="titre_1">$1</span>');
		field = field.replace(/&lt;titre2&gt;([\s\S]*?)&lt;\/titre2&gt;/g, '<span class="titre_2">$1</span>');
		field = field.replace(/&lt;titre3&gt;([\s\S]*?)&lt;\/titre3&gt;/g, '<span class="titre_3">$1</span>');
		
		// Listes
		field = field.replace(/&lt;bloc-liste&gt;([\s\S]*?)&lt;\/bloc-liste&gt;/g, '<ul>$1</ul>');
		field = field.replace(/&lt;ligne-liste&gt;([\s\S]*?)&lt;\/ligne-liste&gt;/g, '<li>$1</li>');
		
		// Tableaux [ NO DATA OK ]
		// field = field.replace(/&lt;tableau&gt;([\s\S]*?)&lt;\/tableau&gt;/g, '<table>$1</table>');
		// field = field.replace(/&lt;en-tete&gt;([\s\S]*?)&lt;\/en-tete&gt;/g, '<thead>$1</thead>');
		// field = field.replace(/&lt;pied-tableau&gt;([\s\S]*?)&lt;\/pied-tableau&gt;/g, '<tfoot>$1</tfoot>');
		// field = field.replace(/&lt;ligne&gt;([\s\S]*?)&lt;\/ligne&gt;/g, '<tr>$1</tr>');
		// field = field.replace(/&lt;cellule&gt;([\s\S]*?)&lt;\/cellule&gt;/g, '<td>$1</td>');
		// field = field.replace(/&lt;titre-tableau&gt;([\s\S]*?)&lt;\/titre-tableau&gt;/g, '<caption>$1</caption>');

		
		for (var i=0, c=smiliesName.length; i<c; i++) {
			field = field.replace(new RegExp(" " + smiliesName[i] + " ", "g"), "&nbsp;<img src=\"" + smiliesPath + smiliesUrl[i] + "\" alt=\"" + smiliesUrl[i] + "\" />&nbsp;");
		}
		
		document.getElementById(previewDiv).innerHTML = field;
	}
}

