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]+'
'+remplace(tableau[3],'<', '<')+'
'+tableau[4]; } */ contenu = contenu.replace(/<img2_([\s\S]*?)</g, ''); contenu = contenu.replace(/<bold>([\s\S]*?)<\/bold>/g, '$1'); contenu = contenu.replace(/<title1>([\s\S]*?)<\/title1>/g, '

$1

'); contenu = contenu.replace(/<title2>([\s\S]*?)<\/title2>/g, '

$1

'); contenu = contenu.replace(/<underlined>([\s\S]*?)<\/underlined>/g, '$1'); contenu = contenu.replace(/<italic>([\s\S]*?)<\/italic>/g, '$1'); contenu = contenu.replace(/<strike>([\s\S]*?)<\/strike>/g, '$1'); contenu = contenu.replace(/<color name="(orange|black|maroon|green|olive|navy|violet|teal|silver|grey|red|lime|yellow|blue|pink|white|turquoise)">([\s\S]*?)<\/color>/g, '$2'); contenu = contenu.replace(/<font name="(arial|times|courrier|impact|geneva|optima)">([\s\S]*?)<\/font>/g, '$2'); contenu = contenu.replace(/<size value="(vvsmall|vsmall|small|big|vbig|vvbig)">([\s\S]*?)<\/size>/g, '$2'); contenu = contenu.replace(/<image[ \w="]*>([^"]*?)<\/image>/g, 'Image'); contenu = contenu.replace(/<video[ \w="]*>([^"]*?)<\/video>/g, ''); contenu = contenu.replace(/<position value="(left|right|center|justify)">([\s\S]*?)<\/position>/g, '
$2
'); contenu = contenu.replace(/<floating value="(left|right)">([\s\S]*?)<\/floating>/g, '
$2
'); contenu = contenu.replace(/<link>([\s\S]*?)<\/link>/g, '$1'); contenu = contenu.replace(/<link url="([\s\S]*?)">([\s\S]*?)<\/link>/g, '$2'); contenu = contenu.replace(/<email>([\s\S]*?)<\/email>/g, '$1'); contenu = contenu.replace(/<email name="([\s\S]*?)">([\s\S]*?)<\/email>/g, '$2'); contenu = contenu.replace(/<(information|warning|error|question)>([\s\S]*?)<\/\1>/g, '
$2
'); contenu = contenu.replace(/<list>\s*(
)?\s*([\s\S]*?)\s*(
)?\s*<\/list>/g, '
    $2
'); contenu = contenu.replace(/<list type="(disk|circle|rectangle|nothing)">\s*(
)?\s*([\s\S]*?)\s*(
)?\s*<\/list>/g, '
    $3
'); contenu = contenu.replace(/<list type="([1iIaA])">\s*(
)?\s*([\s\S]*?)\s*(
)?\s*<\/list>/g, '
    $3
'); contenu = contenu.replace(/<item>([\s\S]*?)<\/item>\s*(
)?\s*/g, '
  • $1
  • '); contenu = contenu.replace(/<acronym value="([\s\S]*?)">([\s\S]*?)<\/acronym>/g, '$2'); var i = 0; while ((contenu.search(/<quote (name|rid)=\"(.*?)\">([\s\S]*?)<\/quote>/g) != -1 || contenu.search(/<quote>([\s\S]*?)<\/quote>/g) != -1) && i < 20) { contenu = contenu.replace(/<quote (name|rid)=\"(.*?)\">([\s\S]*?)<\/quote>/g, '
    Quote: $2
    $3
    '); contenu = contenu.replace(/<quote>([\s\S]*?)<\/quote>/g, '
    Quote:
    $1
    '); i++; } var e = 0; while ((contenu.search(/<fquote (link)=\"(.*?)\">([\s\S]*?)<\/fquote>/g) != -1 || contenu.search(/<fquote>([\s\S]*?)<\/fquote>/g) != -1) && e < 20) { contenu = contenu.replace(/<fquote (link)=\"(.*?)\" (author)=\"(.*?)\">([\s\S]*?)<\/fquote>/g, '
    Quote: $4
    $5
    '); contenu = contenu.replace(/<fquote>([\s\S]*?)<\/fquote>/g, '
    Quote:
    $1
    '); e++; } div_prev.innerHTML = contenu; if (is_opened_window) { if (opener.document.getElementById('prev_ancre_suivi')) opener.document.getElementById('prev_ancre_suivi').focus(); opener.document.getElementById(id_textarea).focus(); } else { if (document.getElementById('prev_ancre_suivi')) document.getElementById('prev_ancre_suivi').focus(); document.getElementById(id_textarea).focus(); } } //remplace search par replace dans data function remplace(data, search, replace) { var temp = data; var longueur = search.length; while (temp.indexOf(search) > -1) { pos = temp.indexOf(search); temp = (temp.substring(0, pos) + replace + temp.substring((pos + longueur), temp.length)); } return temp; } /* AJOUT DE BALISES */ //ajoute une balise au textarea (menu déroulant) function add_bal(nom, val, id_liste, id_textarea, id_prev) { bal = document.getElementById(id_liste).value; if (bal != '') balise('<'+nom+' '+val+'="'+bal+'">','', id_textarea); else balise('<'+nom+'>','', id_textarea); parse(id_textarea, id_prev); if (document.getElementById(id_liste)) document.getElementById(id_liste).options[0].selected = true; } //ajoute une balise au textarea (prompt pour l'argument) function add_bal2(nom, val, id_textarea, id_prev) { var champ = document.getElementById(id_textarea); var texte = ''; if (nom == 'quote') { texte = 'Please give the quote author'; bal = prompt(texte); if (!bal && nom == 'quote') bal = 'Untitled'; balise_debut = '<'+nom+' '+val+'="'+bal+'">'; balise_fin = ''; } else if (nom == 'link') { if (champ.curseur) txt_selectionne = champ.curseur.text; else if (champ.selectionStart >= 0 && champ.selectionEnd >= 0) txt_selectionne = champ.value.substring(champ.selectionStart, champ.selectionEnd); else txt_selectionne = ''; if (txt_selectionne.indexOf('http://') == 0 || txt_selectionne.indexOf('https://') == 0 || txt_selectionne.indexOf('apt://') == 0 || txt_selectionne.indexOf('ftp://') == 0) { texte = 'Please give the link text'; bal2 = prompt(texte); balise_debut = '<'+nom+' '+val+'="'; balise_fin = '">'+bal2+''; } else if (txt_selectionne == '') { texte = 'Please give the link'; bal = prompt(texte); bal2 = prompt('Please give the link text'); balise_debut = '<'+nom+' '+val+'="'+bal+'">'+bal2; balise_fin = ''; } else { texte = 'Please give the link'; bal = prompt(texte); balise_debut = '<'+nom+' '+val+'="'+bal+'">'+bal2; balise_fin = ''; } } else if (nom == 'email') { texte = 'Please give the email'; bal = prompt(texte); balise_debut = '<'+nom+' '+val+'="'+bal+'">'; balise_fin = ''; } balise(balise_debut,balise_fin, id_textarea);parse(id_textarea, id_prev); if (document.getElementById(nom)) document.getElementById(nom).options[0].selected = true; } //ajoute une liste au textarea function add_liste(id_textarea, id_prev) { var texte = ''; while (tmp = prompt('Give the item text (if you want to stop here, click on "cancel")')) texte += ''+tmp+''+"\n"; balise(''+"\n"+texte,'', id_textarea);parse(id_textarea, id_prev); }