/*###########################################*/
/*              Designed by Abcbit           */
/*            Don't modify this text         */
/*###########################################*/

function SymError()
{return true;}
//window.onerror = SymError;

function trans_common(){
	var str = "";
	abcbit.focus();
	abcbit.document.body.innerHTML = "";
	abcbit.document.execCommand("paste");
	str = abcbit.document.body.innerHTML;
	if(str.length == 0) {
		alert("剪贴板不存在超文本数据！");
		return "";
	}
	str = common(str);
	str = str.replace(/<span[^>]*?display\s*?:\s*?none[^>]*?>([\w\W]*?)<\/span>/ig,"");
	str = str.replace(/<span[^>]*?font\s*?-\s*?size\s*?:\s*(0px|0pt)[^>]*?>([\w\W]*?)<\/span>/ig,"");
	str = str.replace(/<font([^>]+)(0px|0pt)+([^>]*)>([\w\W]*?)<\/font>/ig,"");
	str = str.replace(/<a[^>]+href="([^"]+)"[^>]*>(.*?)<\/a>/ig,"[url=$1]$2[/url]");
	str = str.replace(/<font[^>]+color=([^ >]+)[^>]*>(.*?)<\/font>/ig,"[color=$1]$2[/color]");
	return str;
}

function trans_java() {
	var str = "";
	abcbit.focus();
	abcbit.document.body.innerHTML = "";
	abcbit.document.execCommand("paste");
	str = abcbit.document.body.innerHTML;
	if(str.length == 0) {
		alert("剪贴板不存在超文本数据！");
		return "";
	}
	str = str.replace(/\r/g,"");
	str = str.replace('  ','');

	
	str = str.replace(/on(load|click|dbclick|mouseover|mousedown|mouseup)="[^"]+"/ig,"");
	str = str.replace(/<script[^>]*?>([\w\W]*?)<\/script>/ig,"");

	str = str.replace(/<a[^>]+href="([^"]+)"[^>]*>(.*?)<\/a>/ig,"[url=$1]$2[/url]");
	str = str.replace(/<span[^>]*?display\s*?:\s*?none[^>]*?>([\w\W]*?)<\/span>/ig,"");
	str = str.replace(/<span[^>]*?font\s*?-\s*?size\s*?:\s*(0px|0pt)[^>]*?>([\w\W]*?)<\/span>/ig,"");
	str = str.replace(/<font([^>]+)(0px|0pt)+([^>]*)>([\w\W]*?)<\/font>/ig,"");
	str = str.replace(/<font[^>]+color=([^ >]+)[^>]*>(.*?)<\/font>/ig,"[color=$1]$2[/color]");
	str = str.replace(/<font[^>]+face=([^ >]+)[^>]*>(.*?)<\/font>/ig,"[font=$1]$2[/font]");
	
	str = str.replace(/<img[^>]+src="([^"]+)"[^>]*>/ig,"[img]$1[/img]\n\n");
	
	str = str.replace(/<([\/]?)b>/ig,"[$1b]");
	str = str.replace(/<([\/]?)strong>/ig,"[$1b]");
	str = str.replace(/<([\/]?)u>/ig,"[$1u]");
	str = str.replace(/<([\/]?)i>/ig,"[$1i]");
	
	str = str.replace(/&nbsp;/g," ");
	str = str.replace(/&amp;/g,"&");
	str = str.replace(/&quot;/g,"\"");
	str = str.replace(/&lt;/g,"<");
	str = str.replace(/&gt;/g,">");
	
	str = str.replace(/<br>/ig,"\n");
	str = str.replace(/<[^>]*?>/g,"");
	str = str.replace(/\[url=([^\]]+)\]\n(\[img\]\1\[\/img\])\n\[\/url\]/g,"$2");
	str = str.replace(/\n+/g,"\n");

	str = str.replace(/QUOTE:/ig,"");
	str = str.replace("[b][/b]","");

	return str;
}

function trans_more(){
	var str = "";
	abcbit.focus();
	abcbit.document.body.innerHTML = "";
	abcbit.document.execCommand("paste");
	str = abcbit.document.body.innerHTML;
	if(str.length == 0) {
		alert("剪贴板不存在超文本数据！");
		return "";
	}
	str = common(str);
	str = str.replace(/<font[^>]+color=([^ >]+)[^>]*>(.*?)<\/font>/ig,"$2");
	str = str.replace(/<([\/]?)b>/ig,"");
	str = str.replace(/<([\/]?)strong>/ig,"");
	str = str.replace(/<a[^>]+href="([^"]+)"[^>]*>(.*?)<\/a>/ig,"$1");
	return str;
}

function copytext(cid,sname)
{
var str = document.body.createTextRange();
var str2 = "";
        str2 = document.getElementById('textID').value
	if(str2.length == 0) {
		alert("不存在数据！请先转换。");
		window.clipboardData.clearData();
		return
	}
		if (cid==''){
			str.moveToElementText;
			str.execCommand("Copy");
			str.select();
//			alert('「'+sname+'」已经复制至剪贴板！');
		}else{
			str.moveToElementText (cid);
			str.execCommand("Copy");
			str.select();
//			alert('「'+sname+'」已经复制至剪贴板！');
		}
}
function headPost(content,select,agent,cookie,allget)
{
	var Bit = new ActiveXObject("Microsoft.XMLHTTP");
	content = content.replace(/\+/ig,"^20");	//转义码
	content = content.replace(/\_/ig,"^21");	//转义码
	content = content.replace(/·/ig,"^22");		//转义码
	var Info = "content="+content+"&head=1&select="+select+"&agent="+agent+"&cookie="+cookie+"&allget="+allget;
	Bit.open("POST","ubb.php",false);
	Bit.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
	Bit.send(Info);
	document.all.textID.value="";
	content=unescape(Bit.responseText);
	content=content.replace(/\^22/ig,"·");
	content=content.replace(/\^21/ig,"_");
	content=content.replace(/\^20/ig,"+");
	str=unescape(content);
	var str_array =str.split("@#abcbit#@");
	document.all.textID.value=str_array[0];
	if (str_array[1]!=''){document.all.cookie.value+=str_array[1];}
}


function AddDataPost(content,type,select)
{
	content=escape(content);
	var Bit = new ActiveXObject("Microsoft.XMLHTTP");
	var Info = "content="+content+"&type="+type+"&select="+select;
	Bit.open("POST","ubb.php",false);
	Bit.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
	Bit.send(Info);
	document.all.textID.value="";
	str=unescape(Bit.responseText);
	str=str.replace(/\^23/ig,"%");		//转义码
	str=str.replace(/\^22/ig,"·");		//转义码
	document.all.textID.value=str;
}

function AddDataPostcommon(content,type,select)
{
	content=escape(content);
	var Bit = new ActiveXObject("Microsoft.XMLHTTP");
	var Info = "content="+content+"&type="+type+"&select="+select;
	Bit.open("POST","ubb.php",false);
	Bit.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
	Bit.send(Info);
	str=unescape(Bit.responseText);
	str = str.replace(/<font[^>]+color=([^ >]+)[^>]*>(.*?)<\/font>/ig,"[color=$1]$2[/color]");
	str = str.replace(/<img[^>]+src="([^"]+)"[^>]*>/ig,"[img]$1[/img]");
	
	str = str.replace(/<[^>]*?>/g,"");
	str = str.replace(/\[url=([^\]]+)\]\n(\[img\]\1\[\/img\])\n\[\/url\]/g,"$2");
	str = str.replace(/\n+/g,"\n");
	str = str.replace(/\\\\/g,"\\");
	document.all.textID.value="";
	str=unescape(Bit.responseText);
	str=str.replace(/\^23/ig,"%");		//转义码
	str=str.replace(/\^22/ig,"·");		//转义码
	document.all.textID.value=str;
}

function common(str) {
	str = str.replace(/\r/g,'');
	str = str.replace('  ','');
	str = str.replace(/on(load|click|dbclick|mouseover|mousedown|mouseup|mousewheel)="[^"]+"/ig,"");
//	str = str.replace(/<script[^>]*?>([\w\W]*?)<\/script>/ig,"");
	str = str.replace(/\+/ig,"^20");	//转义码
	str = str.replace(/\_/ig,"^21");	//转义码
	str = str.replace(/·/ig,"^22");		//转义码
	return str;

	
}

function zhen(str) {
	strfound=str.replace(/\\/ig,"\\\\");
	strfound=strfound.replace(/\[/ig,"\\[");
	strfound=strfound.replace(/\]/ig,"\\]");
	strfound=strfound.replace(/\{/ig,"\\{");
	strfound=strfound.replace(/\}/ig,"\\}");
	strfound=strfound.replace(/\|/ig,"\\|");
	strfound=strfound.replace(/\//ig,"\\/");
	strfound=strfound.replace(/\^/ig,"\\^");
	strfound=strfound.replace(/\./ig,"\\.");
	strfound=strfound.replace(/\*/ig,"\\*");
	strfound=strfound.replace(/\?/ig,"\\?");
	strfound=strfound.replace(/\+/ig,"\\+");
	return strfound;
}

function dis(){
	document.all.t1.disabled=true;
	document.all.t2.disabled=true;
	document.all.t3.disabled=true;
	document.all.t4.disabled=true;
	document.all.t5.disabled=true;
	document.all.t6.disabled=true;
	//document.all.t7.disabled=true;
	//document.all.t8.disabled=true;
	//document.all.t9.disabled=true;
	document.all.t10.disabled=true;
}
function able(){
	document.all.t1.disabled=false;
	document.all.t2.disabled=false;
	document.all.t3.disabled=false;
	document.all.t4.disabled=false;
	document.all.t5.disabled=false;
	document.all.t6.disabled=false;
	//document.all.t7.disabled=false;
	//document.all.t8.disabled=false;
	//document.all.t9.disabled=false;
	document.all.t10.disabled=false;
}

function codechange(content){
	type=codeget();
	if (type=='escape') {
		document.all.textID.value=escape(content);
	}else if(type=='unescape') {
		document.all.textID.value=unescape(content);
	}else if(type=='jsencode') {

	}else{
		var Bit = new ActiveXObject("Microsoft.XMLHTTP");
		var Info = "content="+escape(content)+"&head=2&type="+codeget()+"&select="+selectget();
		Bit.open("POST","ubb.php",false);
		Bit.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
		Bit.send(Info);
		document.all.textID.value=Bit.responseText;
	}
}


function selectget(){
	return document.all.select.options[document.all.select.options.selectedIndex].text;
}

function agent(){
	return document.all.agent.options[document.all.agent.options.selectedIndex].text;
}

function codeget(){
	return document.all.codeget.options[document.all.codeget.options.selectedIndex].value;
}

function delnull(){
	var str=document.getElementById('textID').value;
	str=str.replace(/([\s]*\r\n[\s]*){2,}/gm,"\r\n");
	document.getElementById('textID').value=str;
}
function refix(){
	var str=document.getElementById('textID').value;
	str=str.replace(/([\s]*\r\n[\s]*){2,}/gm,"\r\n\r\n");
	document.getElementById('textID').value=str;
}
function url(){
	var str=document.getElementById('textID').value;
	str=str.replace(/^[ ]*(http:\/\/|^mms:\/\/|rtsp:\/\/|pnm:\/\/|ftp:\/\/|mmst:\/\/|mmsu:\/\/)([^\r\n]*)$/igm,"[url]$1$2[/url]");
	document.getElementById('textID').value=str;
}

function addbr(){
	var str=document.getElementById('textID').value;
	str=str.replace(/\r\n/gm,"\r\n\r\n");
	document.getElementById('textID').value=str;
}
function replace_star(){
	var str=document.getElementById('textID').value;
	if(!reg.checked)
		strfound=zhen(find_text.value);
	else
		strfound=find_text.value;
	var re = new RegExp(strfound,"ig");
	str=str.replace(re,replace_text.value);
	document.getElementById('textID').value=str;
}

function jsdecode() {
	var str;
	str=strdec(document.all.textID.value);
	str=str.replace(/\'/g," ' ");
	return str;
}

function jsencode() {
	var str;
	str=screncode(document.all.textID.value);
	str=str.replace(/\'/g," ' ");
	return str;
}

function encodeurl() {
	var str;
	str = document.getElementById('textID').value;
	document.getElementById('textID').value='';
	document.getElementById('textID').value=escape(str);
}

function decodeurl() {
	var str;
	str = document.getElementById('textID').value;
	document.getElementById('textID').value='';
	document.getElementById('textID').value=unescape(str);
}

//######################################################
var STATE_COPY_INPUT = 100
var STATE_READLEN = 101
var STATE_DECODE = 102
var STATE_UNESCAPE = 103

var pick_encoding = new Array(
1, 2, 0, 1, 2, 0, 2, 0, 0, 2, 0, 2, 1, 0, 2, 0,
1, 0, 2, 0, 1, 1, 2, 0, 0, 2, 1, 0, 2, 0, 0, 2,
1, 1, 0, 2, 0, 2, 0, 1, 0, 1, 1, 2, 0, 1, 0, 2,
1, 0, 2, 0, 1, 1, 2, 0, 0, 1, 1, 2, 0, 1, 0, 2
)

var rawData = new Array(
0x64,0x37,0x69, 0x50,0x7E,0x2C, 0x22,0x5A,0x65, 0x4A,0x45,0x72,
0x61,0x3A,0x5B, 0x5E,0x79,0x66, 0x5D,0x59,0x75, 0x5B,0x27,0x4C,
0x42,0x76,0x45, 0x60,0x63,0x76, 0x23,0x62,0x2A, 0x65,0x4D,0x43,
0x5F,0x51,0x33, 0x7E,0x53,0x42, 0x4F,0x52,0x20, 0x52,0x20,0x63,
0x7A,0x26,0x4A, 0x21,0x54,0x5A, 0x46,0x71,0x38, 0x20,0x2B,0x79,
0x26,0x66,0x32, 0x63,0x2A,0x57, 0x2A,0x58,0x6C, 0x76,0x7F,0x2B,
0x47,0x7B,0x46, 0x25,0x30,0x52, 0x2C,0x31,0x4F, 0x29,0x6C,0x3D,
0x69,0x49,0x70, 0x3F,0x3F,0x3F, 0x27,0x78,0x7B, 0x3F,0x3F,0x3F,
0x67,0x5F,0x51, 0x3F,0x3F,0x3F, 0x62,0x29,0x7A, 0x41,0x24,0x7E,
0x5A,0x2F,0x3B, 0x66,0x39,0x47, 0x32,0x33,0x41, 0x73,0x6F,0x77,
0x4D,0x21,0x56, 0x43,0x75,0x5F, 0x71,0x28,0x26, 0x39,0x42,0x78,
0x7C,0x46,0x6E, 0x53,0x4A,0x64, 0x48,0x5C,0x74, 0x31,0x48,0x67,
0x72,0x36,0x7D, 0x6E,0x4B,0x68, 0x70,0x7D,0x35, 0x49,0x5D,0x22,
0x3F,0x6A,0x55, 0x4B,0x50,0x3A, 0x6A,0x69,0x60, 0x2E,0x23,0x6A,
0x7F,0x09,0x71, 0x28,0x70,0x6F, 0x35,0x65,0x49, 0x7D,0x74,0x5C,
0x24,0x2C,0x5D, 0x2D,0x77,0x27, 0x54,0x44,0x59, 0x37,0x3F,0x25,
0x7B,0x6D,0x7C, 0x3D,0x7C,0x23, 0x6C,0x43,0x6D, 0x34,0x38,0x28,
0x6D,0x5E,0x31, 0x4E,0x5B,0x39, 0x2B,0x6E,0x7F, 0x30,0x57,0x36,
0x6F,0x4C,0x54, 0x74,0x34,0x34, 0x6B,0x72,0x62, 0x4C,0x25,0x4E,
0x33,0x56,0x30, 0x56,0x73,0x5E, 0x3A,0x68,0x73, 0x78,0x55,0x09,
0x57,0x47,0x4B, 0x77,0x32,0x61, 0x3B,0x35,0x24, 0x44,0x2E,0x4D,
0x2F,0x64,0x6B, 0x59,0x4F,0x44, 0x45,0x3B,0x21, 0x5C,0x2D,0x37,
0x68,0x41,0x53, 0x36,0x61,0x58, 0x58,0x7A,0x48, 0x79,0x22,0x2E,
0x09,0x60,0x50, 0x75,0x6B,0x2D, 0x38,0x4E,0x29, 0x55,0x3D,0x3F
)

var transformed = new Array()
for (var i=0; i<3; i++) transformed[i] = new Array()
for (var i=31; i<=126; i++) for (var j=0; j<3; j++) transformed[j][rawData[(i-31) * 3 + j]] = (i==31) ? 9 : i

var digits = new Array()
for (var i=0; i<26; i++)
{
digits["A".charCodeAt(0)+i] = i
digits["a".charCodeAt(0)+i] = i+26
}
for (var i=0; i<10; i++) digits["0".charCodeAt(0)+i] = i+52
digits[0x2b] = 62
digits[0x2f] = 63

function unescapex(char)
{
var escapes = "#&!*$"
var escaped = "\r\n<>@"

if (char.charCodeAt(0) > 126) return char
if (escapes.indexOf(char) != -1) return escaped.substr(escapes.indexOf(char), 1)
return "?"
}

function decodeBase64(string)
{
var val = 0
val += (digits[string.substr(0,1).charCodeAt(0)] << 2)
val += (digits[string.substr(1,1).charCodeAt(0)] >> 4)
val += (digits[string.substr(1,1).charCodeAt(0)] & 0xf) << 12
val += ((digits[string.substr(2,1).charCodeAt(0)] >> 2) << 8)
val += ((digits[string.substr(2,1).charCodeAt(0)] & 0x3) << 22)
val += (digits[string.substr(3,1).charCodeAt(0)] << 16)
return val
}

function strdec(encodingString)
{

var marker = "#@~^"
var stringIndex = 0
var scriptIndex = -1
var unEncodingIndex = 0
var char = null
var encodingLength = unEncodinglength = 0
var state = STATE_COPY_INPUT
var unEncodingString = ""
var re, arr

while(state)
{
switch (state)
{
case (STATE_COPY_INPUT) :
scriptIndex = encodingString.indexOf(marker, stringIndex)
if (scriptIndex != -1)
{
unEncodingString += encodingString.substring(stringIndex, scriptIndex)
scriptIndex += marker.length
state = STATE_READLEN
}
else
{
stringIndex = stringIndex==0 ? 0 : stringIndex
unEncodingString += encodingString.substr(stringIndex, encodingString.length)
state = 0
}
break

case (STATE_READLEN) :
encodingLength = encodingString.substr(scriptIndex, 6)
unEncodinglength = decodeBase64(encodingLength)
scriptIndex += (6 + "==".length)
state = STATE_DECODE
break

case (STATE_DECODE) :
if (!unEncodinglength)
{
stringIndex = scriptIndex + "DQgAAA==^#~@".length
unEncodingIndex = 0
state = STATE_COPY_INPUT
break
}
char = encodingString.substr(scriptIndex, 1)
if (char == "@") state = STATE_UNESCAPE
else
{
if (char.charCodeAt(0) < 0xFF)
{
unEncodingString += String.fromCharCode(transformed[pick_encoding[unEncodingIndex%64]][char.charCodeAt(0)])
unEncodingIndex++
}
else
{
unEncodingString += char
} 
scriptIndex++
unEncodinglength--
break
}

case STATE_UNESCAPE:
unEncodingString += unescapex(encodingString.substr(++scriptIndex, 1))
scriptIndex++; unEncodinglength -=2
unEncodingIndex++
state = STATE_DECODE
break
}
}

re = new RegExp("(JScript|VBscript).encode", "gmi")
while(arr = re.exec(unEncodingString)) unEncodingString = RegExp.leftContext + RegExp.$1 + RegExp.rightContext
return unEncodingString
}
