var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1

function luohongencode(str){
	document.write (trans(str));//
}
function luohongsign(str){
	document.write (DvSignCode_fox (hencode(str)));//
}

function FilterJS(str){						//屏蔽命令语句
	if (str!='')
	{
		str = str.replace(/(&#)/gi,"<I>&#</I>");
		str = str.replace(/(javascript)/gi,"<I>javascript</I>");
		str = str.replace(/(jscript:)/gi,"<I>jscript:</I>");
		str = str.replace(/(js:)/gi,"<I>js:</I>");
		str = str.replace(/(value)/gi,"<I>value</I>");
		str = str.replace(/(about:)/gi,"<I>about:</I>");
		str = str.replace(/(file:)/gi,"<I>file:</I>");
		str = str.replace(/(ment.cookie)/gi,"<I>ment.cookie</I>");
		str = str.replace(/(vbscript:)/gi,"<I>vbscript:</I>");
		str = str.replace(/(vbs:)/gi,"<I>vbs:</I>");
		str = str.replace(/(on(mouse|exit|error|click|key))/gi,"<I>on$2</I>");
	}
	else{
		str='';
	}
	return(str);
}
function hencode(fString){					//屏蔽'>'和'<'为Html字符
	fString = fString.replace(/>/ig,"&gt;") //>
	fString = fString.replace(/</ig,"&lt;") //<
	return fString;
}
function DvbbsHtmlAn(fString){				//屏蔽各种制表符
	if(fString=="")return("");
	fString=hencode(fString)
	fString = fString.replace(/\t/ig,"&nbsp;&nbsp;&nbsp;")	//Tab
	fString = fString.replace(/"/ig,"&quot;")				//"
	fString = fString.replace(/'/ig,"&#39;")				//'
	fString = fString.replace(/\r/ig,"")					//回车是一个13+10
	fString = fString.replace(/\n\n/ig,"<P>")				// 
	fString = fString.replace(/\n/ig,"<BR>")				//换行
	fString = fString.replace(/\x20/ig,"&nbsp;")			//空格 	
	return(FilterJS(fString));
}
function trans(strContent){
	try{//支持
		var re;
		strContent=DvbbsHtmlAn(strContent);
	 	//过滤网址
		strContent = strContent.replace(re1,"^^^^");
		//过滤字符
		strContent = strContent.replace(re2,"****");
		
		re=/(\[i\])(.*?)(\[\/i\])/ig
		strContent=strContent.replace(re,"<i>$2</i>")
		re=/(\[u\])(.*?)(\[\/u\])/ig
		strContent=strContent.replace(re,"<u>$2</u>")
		re=/(\[b\])(.*?)(\[\/b\])/ig
		strContent=strContent.replace(re,"<b>$2</b>")
		//base64Encode code
		if (strContent.indexOf("aHR0cDo")!=-1){
			re=/[\]](aHR0cDo)(.*?)[\[]/ig;
			var re_m;
			re_m = strContent.match(re);
			for(var i=0;i<re_m.length;i++){
				re_m[i]=re_m[i].replace("]","").replace("[","");
				strContent = strContent.replace(re_m[i],base64decode(re_m[i]));
			}
		}
	
		re=/(\[URL\])(.*?)(\[\/URL\])/ig
		strContent= strContent.replace(re,"<A HREF=$2 TARGET=_blank>$2</A>")
		re=/(\[URL=(.[^\[]*)\])(.*?)(\[\/URL\])/ig
		strContent= strContent.replace(re,"<A HREF=$2 TARGET=_blank>$3</A>")
		re=/(\[EMAIL\])(.*?)(\[\/EMAIL\])/ig
		strContent= strContent.replace(re,"<img align=absmiddle src=/symz/protect/images/pic/email.gif> <A HREF=\"mailto:$2\">$2</A>")
		re=/(\[EMAIL=(.[^\[]*)\])(.*?)(\[\/EMAIL\])/ig
		strContent= strContent.replace(re,"<img align=absmiddle src=/symz/protect/images/pic/email.gif> <A HREF=\"mailto:$2\" TARGET=_blank>$3</A>")
		re =/^(http:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)/ig
		strContent = strContent.replace(re,"<a target=_blank href=$1>$1</a>")
		re =/(http:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)$/ig
		strContent = strContent.replace(re,"<a target=_blank href=$1>$1</a>")
		re =/[^<=""](http:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)/ig
		strContent = strContent.replace(re,"<a target=_blank href=$1>$1</a>")
		re =/^(ftp:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)/ig
		strContent = strContent.replace(re,"<a target=_blank href=$1>$1</a>")
		re =/(ftp:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)$/ig
		strContent = strContent.replace(re,"<a target=_blank href=$1>$1</a>")
		re =/[^>=""](ftp:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)/ig
		strContent = strContent.replace(re,"<a target=_blank href=$1>$1</a>")
		re =/^(rtsp:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)/ig
		strContent = strContent.replace(re,"<a target=_blank href=$1>$1</a>")
		re =/(rtsp:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)$/ig
		strContent = strContent.replace(re,"<a target=_blank href=$1>$1</a>")
		re =/[^>=""](rtsp:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)/ig
		strContent = strContent.replace(re,"<a target=_blank href=$1>$1</a>")
		re =/^(mms:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)/ig
		strContent = strContent.replace(re,"<a target=_blank href=$1>$1</a>")
		re =/(mms:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)$/ig
		strContent = strContent.replace(re,"<a target=_blank href=$1>$1</a>")
		re =/[^>=""](mms:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)/ig
		strContent = strContent.replace(re,"<a target=_blank href=$1>$1</a>")
		re=/(\[color=(.[^\[]*)\])(.*?)(\[\/color\])/ig
		strContent=strContent.replace(re,"<font color=$2>$3</font>")
		re=/(\[face=(.[^\[]*)\])(.*?)(\[\/face\])/ig
		strContent=strContent.replace(re,"<font face=$2>$3</font>")
		re=/(\[align=(.[^\[]*)\])(.*?)(\[\/align\])/ig
		strContent=strContent.replace(re,"<div align=$2>$3</div>")
		//循环转换quote
		re=/(\[QUOTE\])(.*?)(\[\/QUOTE\])/ig
		strContent=strContent.replace(re,"<table style=\"width:90%;border-collapse:collapse\" bgcolor=#FFFFCC bordercolor=#FF6633 cellpadding=3 cellspacing=1 border=1><TR><TD width=\"100%\">$2</TD></TR></table>")
	
		re=/(\[fly\])(.*?)(\[\/fly\])/ig
		strContent=strContent.replace(re,"<marquee width=90% behavior=alternate scrollamount=3>$2</marquee>")
		re=/(\[move\])(.*?)(\[\/move\])/ig
		strContent=strContent.replace(re,"<MARQUEE scrollamount=3>$2</marquee>") 
		re=/\[GLOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\](.*?)\[\/GLOW]/ig
		strContent=strContent.replace(re,"<table width=$1 style=\"filter:glow(color=$2, strength=$3)\">$4</table>")
		re=/\[SHADOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\](.*?)\[\/SHADOW]/ig
		strContent=strContent.replace(re,"<table width=$1 style=\"filter:shadow(color=$2, strength=$3)\">$4</table>")
		re=/(\[size=1\])(.*?)(\[\/size\])/ig
		strContent=strContent.replace(re,"<font size=1>$2</font>")
		re=/(\[size=2\])(.*?)(\[\/size\])/ig
		strContent=strContent.replace(re,"<font size=2>$2</font>")
		re=/(\[size=3\])(.*?)(\[\/size\])/ig
		strContent=strContent.replace(re,"<font size=3>$2</font>")
		re=/(\[size=4\])(.*?)(\[\/size\])/ig
		strContent=strContent.replace(re,"<font size=4>$2</font>")		
		re=/\[size=([+|-]?[0-7])\](.*?)(\[\/size\])/ig
		strContent=strContent.replace(re,"<font size=$1>$2</font>")		
		re=/(\[center\])(.*?)(\[\/center\])/ig
		strContent=strContent.replace(re,"<center>$2</center>")	
		
		strContent = strContent.replace(/\[br\]/gi,"<br>")
		return(strContent);
	}
	catch(e){//不支持
		return(strContent);
	}
}

function DvSignCode_fox(strContent){
	try{//支持
		var re;
		//过滤字符
		strContent = hencode(strContent);
		re=/(\[i\])(.*?)(\[\/i\])/ig
		strContent=strContent.replace(re,"<i>$2</i>")
		re=/(\[u\])(.*?)(\[\/u\])/ig
		strContent=strContent.replace(re,"<u>$2</u>")
		re=/(\[b\])(.*?)(\[\/b\])/ig
		strContent=strContent.replace(re,"<b>$2</b>")
		
		strContent = strContent.replace(/(\[br\] )/gi,"<br>")
		strContent = strContent.replace(re1,"^^^^");
		strContent = strContent.replace(re2,"****");
		
		
		re=/\[IMG\](.[^\[]*?)(gif|jpg|jpeg|bmp|hs|%3D%3D)\[\/IMG\]/ig;
		strContent=strContent.replace(re,"");
	
		re=/(\[URL\])(.*?)(\[\/URL\])/ig
		strContent=strContent.replace(re,"");
		re=/(\[URL=(.[^\[]*)\])(.*?)(\[\/URL\])/ig
		strContent=strContent.replace(re,"");
		
		re=/(\[EMAIL\])(.*?)(\[\/EMAIL\])/ig
		strContent= strContent.replace(re,"<A HREF=\"mailto:$2\">$2</A>")
		re=/(\[EMAIL=(.[^\[]*)\])(.*?)(\[\/EMAIL\])/ig
		strContent= strContent.replace(re,"<A HREF=\"mailto:$2\" TARGET=_blank>$3</A>")
		
		re =/^(http:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)/ig
		strContent=strContent.replace(re,"");
		re =/(http:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)$/ig
		strContent=strContent.replace(re,"");
		re =/[^<=""](http:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)/ig
		strContent=strContent.replace(re,"");
		
		re =/^(ftp:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)/ig
		strContent=strContent.replace(re,"");
		re =/(ftp:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)$/ig
		strContent=strContent.replace(re,"");
		re =/[^>=""](ftp:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)/ig
		strContent=strContent.replace(re,"");
	
		re=/(\[fly\])(.*?)(\[\/fly\])/ig
		strContent=strContent.replace(re,"<marquee width=90% behavior=alternate scrollamount=3>$2</marquee>")
		re=/(\[move\])(.*?)(\[\/move\])/ig
		strContent=strContent.replace(re,"<MARQUEE scrollamount=3>$2</marquee>") 
		re=/\[GLOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\](.*?)\[\/GLOW]/ig
		strContent=strContent.replace(re,"<table width=$1 style=\"filter:glow(color=$2, strength=$3)\">$4</table>")
		re=/\[SHADOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\](.*?)\[\/SHADOW]/ig
		strContent=strContent.replace(re,"<table width=$1 style=\"filter:shadow(color=$2, strength=$3)\">$4</table>")
		re=/(\[size=1\])(.*?)(\[\/size\])/ig
		strContent=strContent.replace(re,"<font size=1>$2</font>")
		re=/(\[size=2\])(.*?)(\[\/size\])/ig
		strContent=strContent.replace(re,"<font size=2>$2</font>")
		re=/(\[size=3\])(.*?)(\[\/size\])/ig
		strContent=strContent.replace(re,"<font size=3>$2</font>")
		re=/(\[size=4\])(.*?)(\[\/size\])/ig
		strContent=strContent.replace(re,"<font size=4>$2</font>")
		
		re=/(\[color=(.[^\[]*)\])(.*?)(\[\/color\])/ig
		strContent=strContent.replace(re,"<font color=$2>$3</font>")
		re=/(\[face=(.[^\[]*)\])(.*?)(\[\/face\])/ig
		strContent=strContent.replace(re,"<font face=$2>$3</font>")
		re=/(\[align=(.[^\[]*)\])(.*?)(\[\/align\])/ig
		strContent=strContent.replace(re,"<div align=$2>$3</div>")
	
		re=/(\[center\])(.*?)(\[\/center\])/ig
		strContent=strContent.replace(re,"<center>$2</center>")
	
		return(strContent);
	}
	catch(e){//不支持
		return(strContent);
	}
}

var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64DecodeChars = new Array(
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
    52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
    -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
    15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
    -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
    41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);

function base64encode(str) {
	try{//支持
	    var out, i, len;
	    var c1, c2, c3;
	
	    len = str.length;
	    i = 0;
	    out = "";
	    while(i < len) {
		    c1 = str.charCodeAt(i++) & 0xff;
		    if(i == len) {
			out += base64EncodeChars.charAt(c1 >> 2);
			out += base64EncodeChars.charAt((c1 & 0x3) << 4);
			out += "==";
			break;
		    }
		    c2 = str.charCodeAt(i++);
		    if(i == len) {
			out += base64EncodeChars.charAt(c1 >> 2);
			out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
			out += base64EncodeChars.charAt((c2 & 0xF) << 2);
			out += "=";
			break;
		    }
		    c3 = str.charCodeAt(i++);
		    out += base64EncodeChars.charAt(c1 >> 2);
		    out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
		    out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6));
		    out += base64EncodeChars.charAt(c3 & 0x3F);
	    }
	    return out;
	}catch(e){//不支持
		return(str);
	}
}

function base64decode(str) {//解码
	try{//支持
		var c1, c2, c3, c4;
		var i, len, out;
		
		len = str.length;
		i = 0;
		out = "";
		while(i < len) {
			/* c1 */
			do {
				c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
			} while(i < len && c1 == -1);
			if(c1 == -1)
				break;
		
			/* c2 */
			do {
				c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
			} while(i < len && c2 == -1);
			if(c2 == -1)
			break;
		
			out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));
		
			/* c3 */
			do {
				c3 = str.charCodeAt(i++) & 0xff;
				if(c3 == 61)
					return out;
				c3 = base64DecodeChars[c3];
			} while(i < len && c3 == -1);
			if(c3 == -1)
				break;
		
			out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));
		
			/* c4 */
			do {
				c4 = str.charCodeAt(i++) & 0xff;
				if(c4 == 61)
					return out;
				c4 = base64DecodeChars[c4];
			} while(i < len && c4 == -1);
			if(c4 == -1)
				break;
			out += String.fromCharCode(((c3 & 0x03) << 6) | c4);
		}
		return out;
	}catch(e){//不支持
		return(str);
	}
}
