function dvhtmlencode1(str) {
  if(str=='')
    return str;

	str=str.replace(/  /g,'&nbsp;&nbsp;');
	str=str.replace(/>/g,'&gt;');
	str=str.replace(/</g,'&lt;');
  str=FilterBadWord(str);

  return str;
}

function DvUbbCommon(str) {
  if(str=='')
    return str;

  str=str.replace(/\[URL\](.[^\[]*)\[\/URL\]/ig,'<a href="$1" target=_blank>$1</a>');
  str=str.replace(/\[URL=(.[^\[]*)\](.[^\[]*)\[\/URL\]/ig,'<a href="$1" target=_blank>$2</a>');
  str=str.replace(/\[EMAIL\](\S+\@.[^\[]*)\[\/EMAIL\]/ig,'<a href="mailto:$1" target=_blank>$1</a>');
  str=str.replace(/\[EMAIL=(\S+\@.[^\[]*)\](.[^\[]*)\[\/EMAIL\]/ig,'<a href="mailto:$1" target=_blank>$2</a>');
  str=str.replace(/&amp;/ig,"&");
  str=str.replace(/^((http|https|ftp|rtsp|mms):(\/\/|\\\\)[A-Za-z0-9\./=\?%\-&_~`@[\]\':+!]+)/ig,'<a href="$1" target=_blank>$1</a>');
  str=str.replace(/((http|https|ftp|rtsp|mms):(\/\/|\\\\)[A-Za-z0-9\./=\?%\-&_~`@[\]\':+!]+)$/ig,'<a href="$1" target=_blank>$1</a>');
  str=str.replace(/( |<br>)((http|https|ftp|rtsp|mms):(\/\/|\\\\)[A-Za-z0-9/\.\-_?=&:@%]+)(| |<br>)/ig,'$1<a href="$2" target=_blank>$2</a>$5');
  str=str.replace(/([^>=\"\"])((http|https|ftp|rtsp|mms):(\/\/|\\\\)[A-Za-z0-9\./=\?%\-&_~`@[\]\':+!]+)/ig,'$1<a href="$2" target=_blank>$2</a>');
  str=str.replace(/([^(http:\/\/|http:\\)])((www|cn)[.](\w)+[.]{1,}(net|com|cn|org|cc)(((\/[\~]*|\\[\~]*)(\w)+)|[.](\w)+)*(((([?](\w)+){1}[=]*))*((\w)+){1}([\&](\w)+[\=](\w)+)*)*)/ig,'<a href="http://$2" target=_blank>$2</a>');
  str=str.replace(/\[COLOR=(.[^.:;`\'\"=]*)\](.[^\[]*)\[\/COLOR\]/ig,'<font color="$1">$2</FONT>');
  str=str.replace(/\[b\](.[^\[]*)\[\/b\]/ig,"<b>$1</b>");
  str=str.replace(/\[i\](.[^\[]*)\[\/i\]/ig,"<I>$1</I>");
  str=str.replace(/\[u\](.[^\[]*)\[\/u\]/ig,"<u>$1</u>");
  
  return str;
}

function NotExist(oEm) {
  oEm.parentNode.parentNode.outerHTML=
'<div class=quotetop>系统消息</div>\
<div class=quotemain>本贴所引用的文件"'+oEm.src+'"不存在<br>可能因为地址错误或已被删除</div>'
}

function NotExist_a(oEm) {
  oEm.parentNode.outerHTML='';
}

function DvSignCode(str,PostUserGroup) {
  if(str=='')
    return str;

  if(Dvbbs.Forum_Setting[66]==0)
    str=dvhtmlencode1(str);
  else
    str=str.replace(/(&lt;)/ig,"<");

  str=str.replace(/({br})/ig,"<br>");
  str=str.replace(/(\{p}{p})/ig,"</p><p>");

  if(Dvbbs.Forum_Setting[65]==0 && PostUserGroup>2)
    return str;

  str=FilterJS(str);

  var re=/\[IMG\](.[^\[]*\.)(gif|jpg|jpeg|bmp|png|tif|iff)\[\/IMG\](<br>)?/ig;
  if (Dvbbs.Forum_Setting[67]==1 || PostUserGroup<4)
    str=str.replace(re,'<div><img src="$1$2" onError="javascript:NotExist_a(this);" border=0></a></div>');
  else
    str=str.replace(re,'');


  var re=/\[FLASH\](.[^\[]*\.)(swf|swi)\[\/FLASH\](<br>)?/ig
  var re1=/\[FLASH=*([0-9]*),*([0-9]*)\](.[^\[]*\.)(swf|swi)\[\/FLASH\](<br>)?/ig;
  if (Dvbbs.Forum_Setting[71]==1 || PostUserGroup<4) {
    str=str.replace(re,'<div><OBJECT codeBase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width=500 height=400><PARAM NAME=movie VALUE="$1$2"><PARAM NAME=quality VALUE=high><embed src="$1$2" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width=500 height=400></embed></OBJECT></div>');
    str=str.replace(re1,'<div><OBJECT codeBase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width=500 height=400><PARAM NAME=movie VALUE="$3$4"><PARAM NAME=quality VALUE=high><embed src="$3$4" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="$1" height="$2"></embed></OBJECT></div>');
  }
  else {
    str=str.replace(re,'');
    str=str.replace(re1,'');
  }

  str=DvUbbCommon(str);
  return(str);
}

function DvBCode(str,PostUserGroup,PostType){
  if(str=='')
    return str;

  if (PostType==3 || PostType==2) {
    Dvbbs.Board_Setting=new Array(45);
    Dvbbs.Board_Setting[5]=0;
    Dvbbs.Board_Setting[6]=1;
    Dvbbs.Board_Setting[7]=1;
    Dvbbs.Board_Setting[8]=1;
    Dvbbs.Board_Setting[9]=0;
    Dvbbs.Board_Setting[44]=0;
  }

  if (Dvbbs.Board_Setting[5]==0)
    str=dvhtmlencode1(str);
  else
    str=str.replace(/&lt;/ig,"<");

  str=str.replace(/{br}/ig,"<br>");
  str=str.replace(/\{p}{p}/ig,"</p><p>");

  if(Dvbbs.Board_Setting[6]==0 && PostUserGroup>2)
    return str;

  str=FilterJS(str);
  
  var strAttatch='<div>'+Showpic(Dvbbs.Forum_Info[7]+'default/file_attatched.gif',null,145,15)+'<br>';
  
  var re=/\[IMG\](.[^\[]*\.)(gif|jpg|jpeg|bmp|png|tif|iff)\[\/IMG\](<br>)?/ig;
  var re1=/\[UPLOAD=(gif|jpg|jpeg|bmp|png|tif|iff)\](.[^\[]*\.)(\1)\[\/UPLOAD\](<br>)?/ig;
  var re2=/\[IMG\](\.\.\/pic\.asp\?(.[^\[]*))\[\/IMG\](<br>)?/ig;
  var re3=/\[UPLOAD=(gif|jpg|jpeg|bmp|png|tif|iff)\](\.\.\/pic\.asp\?(.[^\[]*))\[\/UPLOAD\](<br>)?/ig;
  if (Dvbbs.Board_Setting[7]==1 || PostUserGroup<4) {
    str=str.replace(re,strAttatch+'<a href="$1$2" target=_blank><img src="$1$2" onError="javascript:NotExist(this);" border=0></a></div>');
    str=str.replace(re1,strAttatch+'<a href="$2$1" target=_blank><img src="$2$1" onError="javascript:NotExist(this);" border=0></a></div>');
    str=str.replace(re2,strAttatch+'<a href="$1" target=_blank><img src="$1" onError="javascript:NotExist(this);" border=0></a></div>');
    str=str.replace(re3,strAttatch+'<a href="$2" target=_blank><img src="$2" onError="javascript:NotExist(this);" border=0></a></div>')
  }
  else {
    str=str.replace(re,strAttatch+'<a href="$1$2" target=_blank>$1$2</a></div>');
    str=str.replace(re1,strAttatch+'<a href="$2$1" target=_blank>$2$1</a></div>');
    str=str.replace(re2,strAttatch+'<a href="$1" target=_blank>$1</a></div>');
    str=str.replace(re3,strAttatch+'<a href="$2" target=_blank>$2</a></div>');

  }
  var re=/\[FLASH\](.[^\[]*\.)(swf|swi)\[\/FLASH\](<br>)?/ig
  var re1=/\[FLASH=*([0-9]*),*([0-9]*)\](.[^\[]*\.)(swf|swi)\[\/FLASH\](<br>)?/ig;
  var re2=/\[UPLOAD=(swf|swi)\](.[^\[]*\.)(\1)\[\/UPLOAD\](<br>)?/ig;
  if (Dvbbs.Board_Setting[44]==1 || PostUserGroup<4) {
    str=str.replace(re,strAttatch+'<OBJECT codeBase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width=500 height=400><PARAM NAME=movie VALUE="$1$2"><PARAM NAME=quality VALUE=high><embed src="$1$2" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width=500 height=400></embed></OBJECT></div>');
    str=str.replace(re1,strAttatch+'<OBJECT codeBase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width=500 height=400><PARAM NAME=movie VALUE="$3$4"><PARAM NAME=quality VALUE=high><embed src="$3$4" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="$1" height="$2"></embed></OBJECT></div>');
    str=str.replace(re2,strAttatch+'<OBJECT codeBase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width=500 height=400><PARAM NAME=movie VALUE="$2$1"><PARAM NAME=quality VALUE=high><embed src="$2$1" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width=500 height=400></embed></OBJECT></div>');
  }
  else {
    str=str.replace(re,strAttatch+'<a href="$1$2" target=_blank>$1$2</a></div>');
    str=str.replace(re1,strAttatch+'<a href="$3$4" target=_blank>$3$4</a></div>');
    str=str.replace(re2,strAttatch+'<a href="$2$1" target=_blank>$2$1</a></div>');
  }
  str=str.replace(/\[UPLOAD=.[^\[]*\](.[^\[]*)\[\/UPLOAD\]/ig,strAttatch+'<a href="$1" target=_blank>点击浏览该文件</a>');
  
  var re=/\[DIR=*([0-9]*),*([0-9]*)\](.[^\[]*)\[\/DIR\](<br>)?/ig;
  var re1=/\[QT=*([0-9]*),*([0-9]*)\](.[^\[]*)\[\/QT\](<br>)?/ig;
  var re2=/\[MP=*([0-9]*),*([0-9]*)\](.[^\[]*)\[\/MP\](<br>)?/ig
  var re3=/\[RM=*([0-9]*),*([0-9]*)\](.[^\[]*)\[\/RM\](<br>)?/ig;
  var re4=/\[sound\](.[^\[]*)\[\/sound\]/ig;
  if (Dvbbs.Board_Setting[9]==1 || PostUserGroup<4) {
    str=str.replace(re,strAttatch+'<object classid="clsid:166B1BCA-3F9C-11CF-8075-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=7,0,2,0" width="$1" height="$2"><param name=src value="$3"><embed src="$3" pluginspage="http://www.macromedia.com/shockwave/download/" width="$1" height="$2"></embed></object></div>');
    str=str.replace(re1,strAttatch+'<embed src="$3" width="$1" height="$2" autoplay=true loop=false controller=true playeveryframe=false cache=false scale=TOFIT bgcolor=#000000 kioskmode=false targetcache=false pluginspage=http://www.apple.com/quicktime/></div>');
    str=str.replace(re2,strAttatch+'<object classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" class=OBJECT id=MediaPlayer width="$1" height="$2"><param name=ShowStatusBar value=-1><param name=Filename value="$3"><embed type=application/x-oleobject codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" flename=mp src="$3" width="$1" height="$2"></embed></object></div>');
    str=str.replace(re3,strAttatch+'<OBJECT classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" class=OBJECT id=RAOCX width="$1" height="$2"><PARAM NAME=SRC VALUE="$3"><PARAM NAME=CONSOLE VALUE=Clip1><PARAM NAME=CONTROLS VALUE=imagewindow><PARAM NAME=AUTOSTART VALUE=true></OBJECT><br><OBJECT classid=CLSID:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA height=32 id=video2 width="$1"><PARAM NAME=SRC VALUE="$3"><PARAM NAME=AUTOSTART VALUE=-1><PARAM NAME=CONTROLS VALUE=controlpanel><PARAM NAME=CONSOLE VALUE=Clip1></OBJECT></div>');
    str=str.replace(re4,'<bgsound src="$1" loop="-1">');
  }
  else {
    str=str.replace(re,strAttatch+'<a href="$3" target=_blank>$3</a></div>');
    str=str.replace(re1,strAttatch+'<a href="$3" target=_blank>$3</a></div>');
    str=str.replace(re2,strAttatch+'<a href="$3" target=_blank>$3</a></div>');
    str=str.replace(re3,strAttatch+'<a href="$3" target=_blank>$3</a></div>');
    str=str.replace(re4,strAttatch+'<a href="$3" target=_blank>$3</a></div>');
  }

  str=DvUbbCommon(str);

  var re=/(\[em(.[^\[]*)\])/ig
  if (Dvbbs.Board_Setting[8]==1 || PostUserGroup<4)
    str=str.replace(re,'<img src="'+Dvbbs.Forum_Info[10]+'em$2.gif" border=0 widht=18 height=18 align=absmiddle>');
  else
    str=str.replace(re,'');

  str=str.replace(/\[align=(center|left|right)\](.*)\[\/align\](<br>)?/ig,'<div align="$1">$2</div>');
  str=str.replace(/\[center\](.*)\[\/center\](<br>)?/ig,'<div align=center>$1</div>'); 
  str=str.replace(/\[HTML\](.[^\[]*)\[\/HTML\](<br>)?/ig,'<div class=quotetop>以下内容为程序源代码</div><div class=quotemain style="font-family: \\\'Courier New\\\', monospace">$1</div>');
  str=str.replace(/\[CODE\](.[^\[]*)\[\/CODE\](<br>)?/ig,'<div class=quotetop>以下内容为程序源代码</div><div class=quotemain style="font-family: \\\'Courier New\\\', monospace">$1</div>');
  str=str.replace(/\[QUOTE=(.[^\[]*),([0-9\/\-:\s]*)\](.*)\[\/QUOTE\](<br>)?/ig,'<div class=quotetop>以下是引用 $1 在 <font class=texts>$2</font> 的发言</div><div class=quotemain>$3</div>');
  str=str.replace(/\[QUOTE\](.*)\[\/QUOTE\](<br>)?/ig,'<div class=quotetop>以下内容为引用</div><div class=quotemain>$1</div>');
  str=str.replace(/\[QUOTETOP\](.[^\[]*)\[\/QUOTETOP\](<br>)?/ig,'<div class=quotetop>$1</div>');
  str=str.replace(/\[QUOTEBODY\](.*)\[\/QUOTEBODY\](<br>)?/ig,'<div class=quotemain>$1</div>');

  return str;
}

 
 

