var antiflood = false;
var last = 0;
var smilies = new Array(':wizard:',':angry:',':devil:',':angel:',':ninja:','>_<',':pirate:',':zorro:',':shame:',':sun:',':\'\\(',':wow:',':\\)',':D',';\\)',
':p',':lol:',':huh:',':\\(',':o',':angry2:','o_O','\\^\\^',':whistle:');
var smilies_url = new Array('magicien.png','angry.gif','diable.png','ange.png','ninja.png','pinch.png','pirate.png','zorro.png','rouge.png','soleil.png',
'pleure.png','waw.png','smile.png','heureux.png','clin.png','langue.png','rire.gif','unsure.gif','triste.png','huh.png','mechant.png',
'blink.gif','hihi.png','siffle.png');
var smilies_tpl = new Array(':)', ':D', ';)', ':p', ':lol:', ':huh:', ':(', ':o', ':angry2:', 'o_O', '^^', ':whistle:');
var smilies_tpl_url = new Array('smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif',
'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png');
var smilies_more = new Array(':angel:', ':angry:', ':devil:', ':wizard:', ':ninja:', '>_<', ':pirate:', ':\\\'(',
':shame:', ':sun:', ':wow:', ':zorro:');
var smilies_more_url = new Array('ange.png', 'angry.gif', 'diable.png', 'magicien.png', 'ninja.png', 'pinch.png', 'pirate.png',
'pleure.png', 'rouge.png', 'soleil.png', 'waw.png', 'zorro.png');
var page = new Array();
var height_avant = 200;
var height_avant_final = 500;
var zform_names_of_text = Array(); //Tableau de toutes les zform de la page
var last_hash_texte_backup = Array(); //Tableau des hash sha1 du dernier texte autobackupé de chaque formulaire
var period_autobackup = 60; //Période d'auto backup en secondes
var is_first_backup = true; //permet d'empêcher de backuper si aucun changement au tout début
/* STYLE DE LA ZFORM */
//permet d'adapter la taille de la zform
function edit_zform_height(id_textarea, id_prev, id_prev_final, diff)
{
var champ = document.getElementById(id_textarea);
var div_prev = document.getElementById(id_prev);
var div_prev_final = document.getElementById(id_prev_final);
height_avant = height_avant + Number(diff);
if (height_avant < 200)
height_avant = 200;
if (height_avant > 2000)
height_avant = 2000;
height_avant_final = height_avant_final + Number(diff);
if (height_avant_final < 200)
height_avant_final = 200;
if (height_avant_final > 2000)
height_avant_final = 2000;
change = height_avant+"px";
change_final = height_avant_final+"px";
champ.style.height = change;
div_prev.style.height = change;
div_prev_final.style.maxHeight = change_final;
return false;
}
//ouvre la page en popup
function ouvrir_page(page,nom,x,y)
{
window.open(page,nom,'toolbar=yes,personalbar=yes,titlebar=yes,location=yes,directories=yes,width='+x+',height='+y+',scrollbars=yes,resizable=yes');
}
//affiche ou cache la prévisualisation
function switch_activ(textarea,prev)
{
div = document.getElementById(prev);
if (document.getElementById('activ_'+textarea).checked == true)
{
div.style.display = 'block';
storeCaret(textarea);
parse(textarea,prev);
}
else
div.style.display = 'none';
}
/* PARSAGE TEMPS REEL */
//enregistre le curseur du textarea
function storeCaret(id_textarea)
{
champ = document.getElementById(id_textarea);
if (champ.createTextRange)
champ.curseur = document.selection.createRange().duplicate();
}
//insère une balise dans le textarea
function balise(balise_debut, balise_fin, id_textarea)
{
var champ = document.getElementById(id_textarea);
var scroll = champ.scrollTop;
balise_debut = remplace(balise_debut, ' ', "\n");
if(balise_fin == '')
balise_debut = ' ' + balise_debut + ' ';
if (champ.curseur)
{
champ.curseur.text = balise_debut + champ.curseur.text + balise_fin;
}
else if (champ.selectionStart >= 0 && champ.selectionEnd >= 0)
{
var debut = champ.value.substring(0, champ.selectionStart);
var entre = champ.value.substring(champ.selectionStart, champ.selectionEnd);
var fin = champ.value.substring(champ.selectionEnd);
champ.value = debut + balise_debut + entre + balise_fin + fin;
champ.focus();
champ.setSelectionRange(debut.length + balise_debut.length, champ.value.length - fin.length - balise_fin.length);
}
else
{
champ.value += balise_debut + balise_fin;
champ.focus();
}
champ.scrollTop = scroll;
}
//aperçu temps réel
function parse(id_textarea, id_prev)
{
if (parse.arguments.length == 3)
var is_opened_window = true;
else
var is_opened_window = false;
if ((is_opened_window && opener.document.getElementById('activ_'+id_textarea).checked)
|| (!is_opened_window && document.getElementById('activ_'+id_textarea).checked))
{
clearTimeout(last);
last = setTimeout('parse2(\''+id_textarea+'\',\''+id_prev+'\', '+is_opened_window+')',100);
antiflood = true;
}
}
//aperçu temps réel, parsage zcode et smilies
function parse2(id_textarea, id_prev, is_opened_window)
{
if (is_opened_window)
{
var champ = opener.document.getElementById(id_textarea);
var div_prev = opener.document.getElementById(id_prev);
}
else
{
var champ = document.getElementById(id_textarea);
var div_prev = document.getElementById(id_prev);
}
var contenu = champ.value;
antiflood = false;
if (document.body.scrollTop)
var scroll = document.body.scrollTop;
else
var scroll = window.pageYOffset;
if (champ.selectionStart != 'undefined' && !champ.curseur)
{
var pos = champ.selectionStart;
contenu = remplace(remplace(contenu.substring(0, pos).replace(/&/g,'&'),'>','>'),'<','<') + '' +
remplace(remplace(contenu.substring(pos).replace(/&/g,'&'),'>','>'),'<','<');
}
else
contenu = remplace(remplace(contenu.replace(/&/g,'&'),'>','>'),'<','<');
var reg = '';
for (i=0;i$2');
}
contenu = remplace(contenu, "\n", ' ');
/*
var re = /([\s\S]+)<code>([\s\S]*?)<\/code>([\s\S]+)/;
var smil = '';
while (tableau = re.exec(contenu))
{
for (i=0;iCode
'+remplace(tableau[2],'<', '<')+'
'+tableau[3];
}
re = /([\s\S]+)<code type=\"(actionscript|csharp|matlab|qbasic|ada|mpasm|smarty|apache|css|nsis|sql|asm|delphi|objc|vbnet|asp|diff|oobas|vb|bash|d|oracle8|vhdl|caddcl|html|pascal|visualfoxpro|cadlisp|java|perl|xml|c_mac|javascript|php-brief|c|lisp|php|cpp|lua|python)\">([\s\S]*?)<\/code>([\s\S]+)/;
while (tableau = re.exec(contenu))
{
for (i=0;iCode : '+tableau[2]+'