function jsDoTohtml(tohtmlstr) { tohtmlstr=tohtmlstr.replace(/\&/g, "&"); tohtmlstr=tohtmlstr.replace(/\"/g, """); tohtmlstr=tohtmlstr.replace(/ /g, " "); tohtmlstr=tohtmlstr.replace(/\|/g, "|"); tohtmlstr=tohtmlstr.replace(/\/g, ">"); return tohtmlstr } function jsDoUbbc(ubbcstr,codestrg,quotstrg,squotstrg,editxt,dspname,scriptul,imagesdir,smilieurl,parsflash,fontmax,fontmin,autolinkurls) { ubbcstr=ubbcstr.replace(/\r/g, ""); ubbcstr=ubbcstr.replace(/\cM/g, ""); ubbcstr=ubbcstr.replace(/\[([^\]]{0,30})\n([^\]]{0,30})\]/g, '[$1$2]'); ubbcstr=ubbcstr.replace(/\[\/([^\]]{0,30})\n([^\]]{0,30})\]/g, '[/$1$2]'); ubbcstr=ubbcstr.replace(/(\w+:\/\/[^<>\s\n\"\]\[]+)\n([^<>\s\n\"\]\[]+)/g, '$1$2'); ubbcstr=ubbcstr.replace(/\&/g, "&"); ubbcstr=ubbcstr.replace(/\"/g, """); ubbcstr=ubbcstr.replace(/ /g, " "); ubbcstr=ubbcstr.replace(/\|/g, "|"); ubbcstr=ubbcstr.replace(/\$/g, "$"); ubbcstr=ubbcstr.replace(/\/g, ">"); ubbcstr=ubbcstr.replace(/\n/g, "
"); ubbcstr=ubbcstr.replace(/\t/g, "      "); ubbcstr=ubbcstr.replace(/\[ch(\d{3,}?)\]/ig, "&#$1;"); ubbcstr=ubbcstr.replace(/\[code\]/ig, " [code]"); ubbcstr=ubbcstr.replace(/\[\/code\]/ig, " [/code]"); ubbcstr=ubbcstr.replace(/\[quote\]/ig, " [quote]"); ubbcstr=ubbcstr.replace(/\[\/quote\]/ig, " [/quote]"); ubbcstr=ubbcstr.replace(/\[glow\]/ig, " [glow]"); ubbcstr=ubbcstr.replace(/\[\/glow\]/ig, " [/glow]"); function codeConvStr() { comessage='$1'; codestrg=codestrg.replace(/CODE/g, comessage); return codestrg; } ubbcstr=ubbcstr.replace(/(\[code\]\n*(.+?)\n*\[\/code\])/ig, codeConvStr()); while( a=ubbcstr.match(/\[code\]\n*(.*?)\n*\[\/code\]/i) ) { var cmessage=a[1]; linepatt = /\
/; linecount = cmessage.split(linepatt); if (linecount.length > 20) { theight = " height: 300px; "; } else { theight = " "; } if(! cmessage.match(/\&\S*\;/g)) { cmessage=cmessage.replace(/\;/g, ";"); } cmessage=cmessage.replace(/\!/g, "!"); cmessage=cmessage.replace(/\(/g, "("); cmessage=cmessage.replace(/\)/g, ")"); cmessage=cmessage.replace(/\-/g, "-"); cmessage=cmessage.replace(/\./g, "."); cmessage=cmessage.replace(/\//g, "/"); cmessage=cmessage.replace(/\:/g, ":"); cmessage=cmessage.replace(/\?/g, "?"); cmessage=cmessage.replace(/\[/g, "["); cmessage=cmessage.replace(/\/\//g, "\"); cmessage=cmessage.replace(/\]/g, "]"); cmessage=cmessage.replace(/\^/g, "^"); cmessage=cmessage.replace(/\  \  \ /ig, "\t"); cmessage=cmessage.replace(/\ /ig, " "); cmessage=cmessage.replace(/\n/ig, "[code_br]"); cmessage = "
"+cmessage+"[code_br][code_br]
"; ubbcstr=ubbcstr.replace(/\[code\]\n*(.*?)\n*\[\/code\]/i, cmessage); } if (!document.postmodify.ns.checked) { ubbcstr=ubbcstr.replace(/\[smilie=(\S+\.)(gif|jpg|png|bmp)\]/g, "$1"); ubbcstr=ubbcstr.replace(/\[smiley=(\S+\.)(gif|jpg|png|bmp)\]/g, "$1"); ubbcstr=ubbcstr.replace(/(\W|^)\;\)/g, "$1Wink"); ubbcstr=ubbcstr.replace(/(\W|^)\;\-\)/g, "$1Wink"); ubbcstr=ubbcstr.replace(/(\W|^)\;D/g, "$1Grin"); ubbcstr=ubbcstr.replace(/\:\'\(/g, "Cry"); ubbcstr=ubbcstr.replace(/\:\-\//g, "Undecided"); ubbcstr=ubbcstr.replace(/\:\-X/g, "Lips Sealed"); ubbcstr=ubbcstr.replace(/\:\-\[/g, "Embarassed"); ubbcstr=ubbcstr.replace(/\:\-\*/g, "Kiss"); ubbcstr=ubbcstr.replace(/\>\;\:\(/g, "Angry"); ubbcstr=ubbcstr.replace(/\:\:\)/g, "Roll Eyes"); ubbcstr=ubbcstr.replace(/\:P/g, "Tongue"); ubbcstr=ubbcstr.replace(/\:\)/g, "Smiley"); ubbcstr=ubbcstr.replace(/\:\-\)/g, "Smiley"); ubbcstr=ubbcstr.replace(/\:D/g, "Cheesy"); ubbcstr=ubbcstr.replace(/\:\-\(/g, "Sad"); ubbcstr=ubbcstr.replace(/\:\(/g, "Sad"); ubbcstr=ubbcstr.replace(/\:o/g, "Shocked"); ubbcstr=ubbcstr.replace(/8\-\)/g, "Cool"); ubbcstr=ubbcstr.replace(/\:\-\?/g, "Huh"); } ubbcstr=ubbcstr.replace(/\[([^\]]{0,30})\n([^\]]{0,30})\]/g, '[$1$2]'); ubbcstr=ubbcstr.replace(/\[\/([^\]]{0,30})\n([^\]]{0,30})\]/g, '[/$1$2]'); ubbcstr=ubbcstr.replace(/(\w+:\/\/[^<>\s\n\"\]\[]+)\n([^<>\s\n\"\]\[]+)/g, '$1\n$2'); ubbcstr=ubbcstr.replace(/\[b\](.+?)\[\/b\]/ig, "$1"); ubbcstr=ubbcstr.replace(/\[i\](.+?)\[\/i\]/ig, "$1"); ubbcstr=ubbcstr.replace(/\[u\](.+?)\[\/u\]/ig, "$1"); ubbcstr=ubbcstr.replace(/\[s\](.+?)\[\/s\]/ig, "$1"); ubbcstr=ubbcstr.replace(/\[move\](.+?)\[\/move\]/ig, "$1"); ubbcstr=ubbcstr.replace(/\[color=(.+?)\](.+?)\[\/color\]/ig, "$2"); ubbcstr=ubbcstr.replace(/\[black\](.*?)\[\/black\]/ig, "$1"); ubbcstr=ubbcstr.replace(/\[white\](.*?)\[\/white\]/ig, "$1"); ubbcstr=ubbcstr.replace(/\[red\](.*?)\[\/red\]/ig, "$1"); ubbcstr=ubbcstr.replace(/\[green\](.*?)\[\/green\]/ig, "$1"); ubbcstr=ubbcstr.replace(/\[blue\](.*?)\[\/blue\]/ig, "$1"); while ( c=ubbcstr.match(/\[timestamp=([\d]{9,10})\]/i) ) { var tsdate=c[1]; tsdate=tsdate * 1000; tdate=new Date() tdate.setTime(tsdate); tdate=tdate.toLocaleString(); ubbcstr=ubbcstr.replace(/\[timestamp=[\d]{9,10}\]/i, tdate); } ubbcstr=ubbcstr.replace(/\[highlight\](.*?)\[\/highlight\]/ig, "$1"); ubbcstr=ubbcstr.replace(/\[font=(.+?)\](.+?)\[\/font\]/ig, "$2"); function fontConvSize(tsize, ttext) { var csize = parseInt(tsize); if(csize < fontmin) csize = fontmin; else if(csize > fontmax) csize = fontmax; var resized = '' + ttext + ''; ubbcstr=ubbcstr.replace(/\[size=(\d+)\](.+?)\[\/size\]/i, resized); } while(fontsize=ubbcstr.match(/\[size=(\d+)\](.+?)\[\/size\]/i)) { fontConvSize(fontsize[1], fontsize[2]); } ubbcstr=ubbcstr.replace(/\[yabbimg\](.+?)\[\/yabbimg\]/ig, ''); ubbcstr=ubbcstr.replace(/\[img\][\s*\t*\n*(\ \;)*(\ \;)*]*(http\:\/\/)*(.+?)[\s*\t*\n*(\ \;)*(\ \;)*]*\[\/img\]/ig, ''); function restrictimage(w,h,s) { var maximgwidth = 400; var maximgheight = 500; if (w > maximgwidth) w = maximgwidth; if (h > maximgheight) h = maximgheight; var imgrest = ''; ubbcstr=ubbcstr.replace(/\[img width=(\d+) height=(\d+)\][\s*\t*\n*(\ \;)*(\ \;)*]*(http\:\/\/)*(.+?)[\s*\t*\n*(\ \;)*(\ \;)*]*\[\/img\]/i, imgrest); } while(picr=ubbcstr.match(/\[img width=(\d+) height=(\d+)\][\s*\t*\n*(\ \;)*(\ \;)*]*(http\:\/\/)*(.+?)[\s*\t*\n*(\ \;)*(\ \;)*]*\[\/img\]/i)) { restrictimage(picr[1],picr[2],'http://$4') } ubbcstr=ubbcstr.replace(/\[tt\](.*?)\[\/tt\]/ig, "$1"); ubbcstr=ubbcstr.replace(/\[left\](.+?)\[\/left\]/ig, "

$1

"); ubbcstr=ubbcstr.replace(/\[center\](.+?)\[\/center\]/ig, "
$1
"); ubbcstr=ubbcstr.replace(/\[right\](.+?)\[\/right\]/ig, "

$1

"); ubbcstr=ubbcstr.replace(/\[sub\](.+?)\[\/sub\]/ig, "$1"); ubbcstr=ubbcstr.replace(/\[sup\](.+?)\[\/sup\]/ig, "$1"); ubbcstr=ubbcstr.replace(/\[fixed\](.+?)\[\/fixed\]/ig, "$1"); ubbcstr=ubbcstr.replace(/\[hr\]\n/ig, "
"); ubbcstr=ubbcstr.replace(/\[hr\]/ig, "
"); ubbcstr=ubbcstr.replace(/\[br\]/ig, "\n"); ubbcstr=ubbcstr.replace(/\[url\]\s*www\.(\S+?)\s*\[\/url\]/ig, "www.$1"); ubbcstr=ubbcstr.replace(/\[url=\s*(\S\w+\:\/\/\S+?)\s*\](.+?)\[\/url\]/ig, "$2"); ubbcstr=ubbcstr.replace(/\[url=\s*(\S+?)\](.+?)\s*\[\/url\]/ig, "$2"); ubbcstr=ubbcstr.replace(/\[url\]\s*(\S+?)\s*\[\/url\]/ig, "$1"); ubbcstr=ubbcstr.replace(/\[link\]\s*www\.(\S+?)\s*\[\/link\]/ig, "www.$1"); ubbcstr=ubbcstr.replace(/\[link=\s*(\S\w+\:\/\/\S+?)\s*\](.+?)\[\/link\]/ig, "$2"); ubbcstr=ubbcstr.replace(/\[link=\s*(\S+?)\](.+?)\s*\[\/link\]/ig, "$2"); ubbcstr=ubbcstr.replace(/\[link\]\s*(\S+?)\s*\[\/link\]/ig, "$1"); ubbcstr=ubbcstr.replace(/\[email\]\s*(\S+?\@\S+?)\s*\[\/email\]/ig, "$1"); ubbcstr=ubbcstr.replace(/\[email=\s*(\S+?\@\S+?)\](.*?)\[\/email\]/ig, "$2"); ubbcstr=ubbcstr.replace(/\[news\](\S+?)\[\/news\]/ig, '$1'); ubbcstr=ubbcstr.replace(/\[gopher\](\S+?)\[\/gopher\]/ig, '$1'); ubbcstr=ubbcstr.replace(/\[ftp\](\S+?)\[\/ftp\]/ig, '$1'); function squoteConv(nosqmessage, sqauthor, sqlink, sqdate, sqmessage) { if ( !sqauthor || !sqlink || !sqdate ) stquotstrg = squotstrg; else stquotstrg = quotstrg; sqmessage=sqmessage.replace(/([\S]{80})/g, "$1
"); if ( sqauthor ) { sqmessage=sqmessage.replace(/\/me\s+(.*?)(\
|$)(.*?)/ig, "* " + sqauthor + " $1$2$3"); } else { sqmessage=sqmessage.replace(/\/me\s+(.*?)(\
|$)(.*?)/ig, "* " + dspname + " $1$2$3"); } stquotstrg=stquotstrg.replace(/AUTHOR/g, sqauthor); stquotstrg=stquotstrg.replace(/QUOTELINK/g, scriptul+'?'+sqlink+'" target="_blank'); stquotstrg=stquotstrg.replace(/DATE/g, sqdate); stquotstrg=stquotstrg.replace(/QUOTE/g, sqmessage); ubbcstr=ubbcstr.replace(/\[quote(\s+author=(.*?)\s+link=(.*?)\s+date=(.*?)\s*)?\]\n*(.+?)\n*\[\/quote\]/i, nosqmessage + stquotstrg); } function nstsquoteConv(nsqmessage) { c=nsqmessage.match(/(.*)\[quote(\s+author=(.*?)\s+link=(.*?)\s+date=(.*?)\s*)?\]\n*(.+?)\n*\[\/quote\]/i); squoteConv(c[1], c[3], c[4], c[5], c[6]); } while ( d=ubbcstr.match(/(\[quote(\s+author=(.*?)\s+link=(.*?)\s+date=(.*?)\s*)?\]\n*(.+?)\n*\[\/quote\])/i) ) { nstsquoteConv(d[1]); } ubbcstr=ubbcstr.replace(/\/me\s+(.*?)(\
|$)/ig, "* " + dspname + " $1
"); function wrapstr(wraptext) { wraptext=wraptext.replace(/([\S]{80})/g, "$1\n"); ubbcstr=ubbcstr.replace(/\[edit\]\n*(.+?)\n*\[\/edit\]/i, "" + editxt + ":
" + wraptext + "
"); } while(longstrg=ubbcstr.match(/\[edit\](.+?)\[\/edit\]/i)) { wrapstr(longstrg[1]); } ubbcstr=ubbcstr.replace(/\[\*\]/ig, "
  • "); ubbcstr=ubbcstr.replace(/\[olist\]/ig, "
      "); ubbcstr=ubbcstr.replace(/\[\/olist\]/ig, "
    "); ubbcstr=ubbcstr.replace(/\<\/li\>\/ig, "
      "); ubbcstr=ubbcstr.replace(/\\<\/li\>/ig, "
        "); ubbcstr=ubbcstr.replace(/\[\*\]/ig, "
      1. "); ubbcstr=ubbcstr.replace(/\[list\]/ig, "
          "); ubbcstr=ubbcstr.replace(/\[\/list\]/ig, "
        "); ubbcstr=ubbcstr.replace(/\<\/li\>\/ig, "
          "); ubbcstr=ubbcstr.replace(/\\<\/li\>/ig, "
            "); ubbcstr=ubbcstr.replace(/\[list\]/ig, "
              "); ubbcstr=ubbcstr.replace(/\[list (.+?)\]/ig, "
                "); ubbcstr=ubbcstr.replace(/\[\*\]/ig, "
              • "); ubbcstr=ubbcstr.replace(/\[\/list\]/ig, "
              "); function jsdopre(prestrg) { prestrg=prestrg.replace(/\
              /g, "\n"); ubbcstr=ubbcstr.replace(/\[pre\](.+?)\[\/pre\]/i, "
              "+prestrg+"
              "); } while ( prestr=ubbcstr.match(/\[pre\](.+?)\[\/pre\]/i) ) { jsdopre(prestr[1]) } while(fw=ubbcstr.match(/\[flash\=(\S+?),(\S+?)](\S+?)\[\/flash\]/)) { if(parsflash == 1) { var fwidth = fw[1]; var fheight = fw[2]; if (fwidth > 500) { fwidth = 500; } if (fheight > 500) { fheight = 500; } ubbcstr=ubbcstr.replace(/\[flash\=(\S+?),(\S+?)\](\S+?)\[\/flash\]/, ''); } else { ubbcstr=ubbcstr.replace(/\[flash\=(\S+?),(\S+?)\](\S+?)\[\/flash\]/, "Flash location ($1 x $2): $3"); } } if( ubbcstr.match(/\[table\](?:.*?)\[\/table\]/i) ) { while( ubbcstr.match(/\(.*?)\[table\](.*?)\[\/table\](.*?)\<\/marquee\>/g) ) {ubbcstr=ubbcstr.replace(/\(.*?)\[table\](.*?)\[\/table\](.*?)\<\/marquee\>/, "$1$2<\/table>$3<\/marquee>")} while( ubbcstr.match(/\(.*?)\[table\](.*?)\<\/marquee\>(.*?)\[\/table\]/g) ) {ubbcstr=ubbcstr.replace(/\(.*?)\[table\](.*?)\<\/marquee\>(.*?)\[\/table\]/, "$1\[//table\]$2$3\[//table\]")} while( ubbcstr.match(/\[table\](.*?)\(.*?)\[\/table\](.*?)\<\/marquee\>/g) ) {ubbcstr=ubbcstr.replace(/\[table\](.*?)\(.*?)\[\/table\](.*?)\<\/marquee\>/, "[//table\]$1$2[//table\]$3")} ubbcstr=ubbcstr.replace(/\n{0,1}\[table\]\n*(.+?)\n*\[\/table\]\n{0,1}/ig, "
              $1
              "); while( ubbcstr.match(/\(.*?)\n*\[tr\]\n*(.*?)\n*\[\/tr\]\n*(.*?)\<\/table\>/ig) ) {ubbcstr=ubbcstr.replace(/\(.*?)\n*\[tr\]\n*(.*?)\n*\[\/tr\]\n*(.*?)\<\/table\>/i, "$1$2$3
              ")} while( ubbcstr.match(/\(.*?)\n*\[td\]\n{0,1}(.*?)\n{0,1}\[\/td\]\n*(.*?)\<\/tr\>/ig) ) {ubbcstr=ubbcstr.replace(/\(.*?)\n*\[td\]\n{0,1}(.*?)\n{0,1}\[\/td\]\n*(.*?)\<\/tr\>/i, "$1$2$3")} ubbcstr=ubbcstr.replace(/\((?:(?!\|\<\/tr\>|\|\<\/td\>|\|\<\/table\>).)*)\/ig, ""); ubbcstr=ubbcstr.replace(/\((?:(?!\|\<\/tr\>|\|\<\/td\>|\|\<\/table\>).)*)\/ig, ""); ubbcstr=ubbcstr.replace(/\<\/tr\>((?:(?!\|\<\/tr\>|\|\<\/td\>|\|\<\/table\>).)*)\/ig, ""); ubbcstr=ubbcstr.replace(/\<\/tr\>((?:(?!\|\<\/tr\>|\|\<\/td\>|\|\<\/table\>).)*)\<\/table\>/ig, "
              "); ubbcstr=ubbcstr.replace(/\<\/td\>((?:(?!\|\<\/tr\>|\|\<\/td\>|\|\<\/table\>).)*)\/ig, ""); ubbcstr=ubbcstr.replace(/\<\/td\>((?:(?!\|\<\/tr\>|\|\<\/td\>|\|\<\/table\>).)*)\<\/tr\>/ig, "
              "); } while( ubbcstr.match(/\]*?)\n([^>]*)>/g) ) {ubbcstr=ubbcstr.replace(/\]*?)\n([^>]*)>/, "")} while( ubbcstr.match(/\]*)>([^<]*?)\n([^<]*)<\/a>/g) ) {ubbcstr=ubbcstr.replace(/\]*)>([^<]*?)\n([^<]*)<\/a>/, "$2$3")} while( ubbcstr.match(/\]*?)\&\;([^>]*)>/g) ) {ubbcstr=ubbcstr.replace(/\]*?)\&\;([^>]*)>/, "")} while( ubbcstr.match(/\]*?)\n([^>]*)>/g) ) {ubbcstr=ubbcstr.replace(/\]*?)\n([^>]*)>/, "")} while( ubbcstr.match(/\]*?)\&\;([^>]*)>/g) ) {ubbcstr=ubbcstr.replace(/\]*?)\&\;([^>]*)>/, "")} ubbcstr=ubbcstr.replace(/\[\&table(.*?)\]/g, ""); ubbcstr=ubbcstr.replace(/\[\/\&table\]/g, ""); ubbcstr=ubbcstr.replace(/\n/ig, "
              "); ubbcstr=ubbcstr.replace(/\[code_br\]/ig, "\n"); return ubbcstr; }