var edit_mode = 1, edt_initdone = 0;
var htmlobj = htmlwin = tmldoc = iframe = null;
var textobj;
var edt_escfg = 0;

function Edit_Init()
{
	textobj = CheckObject("TopicContent");
	edt_disablesc();
}

function edt_disable_esc()
{
	if(event.keyCode==27)return(false);
}
function edt_disablesc()
{
	if(edt_escfg==1)return;
	edt_escfg = 1;
	if (document.all) document.body.attachEvent("onkeydown",edt_disable_esc);
	else document.body.addEventListener("onkeydown",edt_disable_esc,false);
}

function set_Mode(mode)
{
	if (mode == edit_mode) return;
	var obj1 = CheckObject("MODE_TEXT");
	var obj2 = CheckObject("MODE_HTML");
	if (!obj1) return;
	if (!obj2) return;
	if (mode)
	{
		edt_textMod();
		obj1.src = "/post/htmleditor/modetext_1.gif";
		obj2.src = "/post/htmleditor/modehtml_0.gif";
	}
	else
	{
		edt_htmlMod();
		obj1.src = "/post/htmleditor/modetext_0.gif";
		obj2.src = "/post/htmleditor/modehtml_1.gif";
	}
}

function edt_textMod()
{
	if (edit_mode) return;
	edit_mode = 1;
	textobj.value = edt_htm2code(htmldoc.body.innerHTML);
	htmobj.style.display = "none";
	textobj.style.display = "";
	textobj.style.scrolling = "auto";
}

function edt_htmlMod()
{
	if (!edit_mode) return;
	edit_mode = 0;
	iframe = document.createElement('iframe');
	htmobj = textobj.parentNode.appendChild(iframe);
	htmobj.id = 'TopicHtmlContent';
	
	htmlwin = htmobj.contentWindow;
	htmldoc = htmobj.contentWindow.document;

	textobj.style.display = "none";
	htmobj.style.display = "";
	
	htmldoc.designMode = 'on';
	htmldoc.contentEditable = true;
	htmldoc.open('text/html', 'replace');
	htmldoc.write(edt_bbscode(textobj.value));
	htmldoc.close();
	if(isIE())htmldoc.createStyleSheet().cssText += '\n p { margin: 0px;}';
	htmldoc.body.style.wordBreak = "break-all";
	htmldoc.body.style.wordWrap = "break-word";
	htmldoc.body.style.border = "0px";
	htmldoc.body.style.leftmargin = "0";
	htmldoc.body.style.topmargin = "0";
	htmldoc.body.style.fontSize = "12px";
	htmldoc.body.style.fontFamily = "宋体";
	htmldoc.body.style.margin = "5";
	htmldoc.body.style.background = "";
	htmldoc.body.style.lineHeight = "21px";
	
	if(!isIE())
	{
		htmlwin.addEventListener('keydown', function(evt){ctlkey(evt);}, true);
	}
	else
	{
		htmldoc.body.attachEvent("onkeydown", ctlkey);
	}
}

function insertHTML2(ty,html,htm2,htm3)
{
	var obj=$('TopicHtmlContent').document;
	htmlwin.focus();
	var tmp1,tmp2="",tmp3="";
	tmp1 = html;
	if(ty!=2)
	{
		if(!isUndef(htm3))
		{
			tmp1 = html + "=" + htm3;
		}
		if(!ty)tmp1 = "[" + tmp1 + "]";
		if(!isUndef(htm2))
		{
			if(!ty)tmp2 = "[" + htm2 + "]";
		}
	}
	switch(html.toLowerCase())
	{
	case "b":	format('bold');return;
			break;
	case "i":	format('italic');return;
			break;
	case "u":	format('underline');return;
			break;
	case "pp":	format('InsertParagraph');return;
			break;
	case "sup":	format('superscript');return;
			break;
	case "sub":	format('subscript');return;
			break;
	case "color":	format('ForeColor',htm3);return;
			break;
	case "backcolor":
			format('BackColor',htm3);return;
			break;
	case "align":
			tmp3=htm3.toLowerCase();
			if(tmp3=="center"){format("justifycenter");}
			else if(tmp3=="left"){format("justifyleft");}
			else if(tmp3=="right"){format("justifyright");}
			else if(tmp3=="justify"){format("JustifyFull");}
			return;
			break;
	case "face":
			format("fontname",htm3);
			return;
			break;
	case "size":	format("fontsize",htm3);
			return;
			break;
	case "formatblock":
			format("FormatBlock",htm3);
			return;
			break;
	case "cut":
	case "copy":
	case "paste":
	case "delete":
	case "removeformat":
	case "undo":
	case "redo":
	case "insertorderedlist":
	case "insertunorderedlist":
	case "selectall":
	case "unselect":
	case "unlink":
			format(html);
			return;
			break;
	case "strike":
			format("StrikeThrough");
			return;break;
	case "hr":
			format('InsertHorizontalRule');
			return;break;
	}
	if(!isIE())
	{
		obj=htmldoc;
		var sl = htmlwin.getSelection();
		var rg = sl ? sl.getRangeAt(0) : htmldoc.createRange();
		htmldoc.execCommand('insertHTML', false, tmp1+rg+tmp2);
	}
	else
	{
		obj=htmldoc;
		htmlwin.focus();
		var movestart = true;
		if(!isUndef(obj.selection) && obj.selection.type != 'Text' && obj.selection.type != 'None')
		{
			obj.selection.clear();
		}
		var selrang = obj.selection.createRange();
		var str = tmp1 + selrang.htmlText + tmp2;
		selrang.pasteHTML(str);
		if((str!=tmp1+tmp2) && str.indexOf('<') == -1 && str.indexOf('\n') == -1 && str.indexOf('\r') == -1) {
			selrang.moveStart('character', -str.length);
			selrang.select();
		}
	}
}

function format(what,opt) {
	if (opt=="RemoveFormat") {
		what=opt;
		opt=null;
	}
	if (opt==null) htmldoc.execCommand(what,false,true);
	else htmldoc.execCommand(what,"",opt,true);
}
	
function insert(what) {

	switch(what){
	case "nowdate":
		var d = new Date();
		addcontent(1,d.toLocaleDateString());
		break;
	case "nowtime":
		var d = new Date();
		addcontent(1,d.toLocaleTimeString());
		break;
	case "br":
		addcontent(2,"<br>");
		break;
	case "code":
		addcontent(0,'CODE','/CODE');
		break;
	case "quote":
		addcontent(0,'QUOTE','/QUOTE');
		break;
	case "fly":
		addcontent(0,'FLY','/FLY');
		break;
	default:
		addcontent(0,'face','/face',what);
		break;
	}
	sel=null;
}

function addcontent(ty,s1,s2,s3)
{
	if(edit_mode == 1)
	{
		if(ty==2){alert("文本模式无法使用此功能．");return;}
		var str1=s1,str2="";
		if(!isUndef(s3))
		{
			str1 = s1 + "=" + s3;
		}
		if(!ty)str1="["+str1+"]";
		if(!isUndef(s2))
		{
			if(!ty)str2 = "[" + s2 + "]";
		}
		var str=str1 + str2;
		var obj=$("TopicContent");
		obj.focus();

		if(!isUndef(obj.selectionStart)) 
		{
			str = str1 + obj.value.substr(obj.selectionStart,obj.selectionEnd-obj.selectionStart) + str2;
			obj.value = obj.value.substr(0, obj.selectionStart) + str + obj.value.substr(obj.selectionEnd);
		}
		else if ((document.selection)&&(document.selection.type== "Text"))
		{
			var range = document.selection.createRange();
			var ch_text = range.text;
			range.text = str1 + ch_text + str2;
		} 
		else
		{
			if (obj.createTextRange && obj.caretPos)
			{
				var caretPos = obj.caretPos;
				caretPos.text = str1 + caretPos.text + str2;
				obj.focus();
			}
			else{obj.value+=str;obj.focus();}
		}
	}
	else{insertHTML2(ty,s1,s2,s3);return;}
}


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function edt_url_filter(str)
{
	var tmp = str;
	tmp = tmp.replace(/(javascript|jscript|js|about|file|vbscript|vbs)(:)/gim,"$1%3a");
	tmp = tmp.replace(/(value)/gim,"%76alue");
	tmp = tmp.replace(/(document)(.)(cookie)/gim,"$1%2e$3");
	tmp = tmp.replace(/(')/g,"%27");
	tmp = tmp.replace(/(")/g,"%22");
	return(tmp);
}

function edt_PrintTrueText(str)
{
	if(str!="")
	{
		str = str.replace(/\n\ /gim,"<br>&nbsp;");
		str = str.replace(/\n/gim,"<br>");
		str = str.replace(/\ \ \ /gim," &nbsp; ");
		str = str.replace(/\ \ /gim," &nbsp;");
		str = str.replace(/\t/gim," &nbsp; &nbsp; &nbsp;");
		str = str.replace(/\ \[\/(td)\]/gim,"&nbsp;[/$1]");
		if(str.substr(0,1) == " ")str = "&nbsp;" + str.substr(1);
		return str;
	}
	else
	{return "";}
}

function htmlencode(str)
{
	var re = /(<)/gim;
	var rv = str.replace(re,"&lt;");
	re = /(>)/gim;
	rv = rv.replace(re,"&gt;");
	re = /(\")/gim;
	rv = rv.replace(re,"&quot;");
	return(rv);
}

function edt_bbscode(str)
{
	str = edt_PrintTrueText(htmlencode(str));
	str = str.replace(/\n/g, "");

	str = str.replace(/\[em([0-9]{1,4})\]/gi,"<img src=\"/post/htmleditor/em$1.GIF\" emotid=\"$1\">");

	str = str.replace(/\[(\/?(u|b|i|sup|sub|tr|td|strike|ul|ol|pre|p|li))\]/gim,"<$1>");
	str = str.replace(/\[td=([0-9]{1,2}),([0-9]{1,2})\]/gim,"<td colspan=$1 rowspan=$2>");
	str = str.replace(/\[hr\]/gim,"<hr size=1 color=#000000 style='BORDER-BOTTOM-STYLE: dotted; BORDER-LEFT-STYLE: dotted; BORDER-RIGHT-STYLE: dotted; BORDER-TOP-STYLE: dotted'>");
	str = str.replace(/\[(\/?)\*\]/gim,"<$1LI>");
	str = str.replace(/\[(\/?)PP\]/gim,"<$1P>");
	str = str.replace(/\[face=(.+?)\]/gim,function($0,$1){return("<font face=\"" + $1 + "\">");});
	str = str.replace(/\[FIELDSET=(.+?)\](.+?)\[\/FIELDSET\]/gim,"<FIELDSET><LEGEND>$1</LEGEND>$2</FIELDSET>");
	str = str.replace(/\[size=([0-9]{1,1})\]/gim,"<font size=\"$1\">");
	str = str.replace(/\[size=([a-z0-9\-\%]{1,25})\]/gim,"<font style=\"font-size:$1\">");
	str = str.replace(/\[color=([#0-9a-z\(\)\,\ ]{1,25})\]/gim,"<font color=\"$1\">");
	str = str.replace(/\[BGCOLOR=([#0-9a-z]{1,12}),([#0-9a-z]{1,12})\]/gim,"<font style=\"BACKGROUND-COLOR: $1\" color=\"$2\">");
	str = str.replace(/\[BGCOLOR=([#0-9a-z]{1,12})\]/gim,"<font style=\"BACKGROUND-COLOR: $1\">");
	str = str.replace(/\[\/(color|size|face|font|bgcolor)\]/gim,"</font>");
	
	str = str.replace(/\[email=(.+?)\](.+?)\[\/email\]/gi,function($0,$1,$2){return("<a href=\"mailto:" + edt_url_filter($1) + "\">" + $2 + "</a>")});
	str = str.replace(/\[email\](.+?)\[\/email\]/gi,function($0,$1,$2){return("<a href=\"mailto:" + edt_url_filter($1) + "\">" + $1 + "</a>")});
	
	str = str.replace(/\[align=(left|center|right|justify)\]/gim,"<div style=\"text-align:$1\">");
	str = str.replace(/\[\/align\]/gim,"</div>");
	str = str.replace(/\[img\](\/|..\/|http:\/\/|https:\/\/|ftp:\/\/)(.+?)\[\/img\]/gi,function($0,$1,$2){return("<img src=\"" + edt_url_filter($1+$2) + "\" align=middle border=0>")});
	str = str.replace(/\[img=([0-9]{1,2}),(absmiddle|left|right|top|middle|bottom|absbottom|baseline|texttop)\](\/|..\/|http:\/\/|https:\/\/|ftp:\/\/)(.+?)\[\/img\]/gi,function($0,$1,$2,$3,$4){return("<img src=\"" + edt_url_filter($3+$4) + "\" align=" + $2 + " border=\"" + $1 + "\">")});
	str = str.replace(/\[imga\](\/|..\/|http:\/\/|https:\/\/|ftp:\/\/)(.+?)\[\/imga\]/gi,function($0,$1,$2){return("<img src=\"" + edt_url_filter($1+$2) + "\" style=\"CURSOR: hand\" onclick=\"javascript:window.open(this.src);\" align=middle border=0>")});
	str = str.replace(/\[imga=([0-9]{1,2}),(absmiddle|left|right|top|middle|bottom|absbottom|baseline|texttop)\](\/|..\/|http:\/\/|https:\/\/|ftp:\/\/)(.+?)\[\/imga\]/gi,function($0,$1,$2,$3,$4){return("<img src=\"" + edt_url_filter($3+$4) + "\" align=\"" + $2 + "\" border=\"" + $1 + "\" style=\"CURSOR: hand\" onclick=\"javascript:window.open(this.src);\">")});
	str = str.replace(/\[img=([0-9]{1,2}),(absmiddle|left|right|top|middle|bottom|absbottom|baseline|texttop),([0-9\%]{1,5}),([0-9\%]{1,5})\](\/|..\/|http:\/\/|https:\/\/|ftp:\/\/)(.+?)\[\/img\]/gi,function($0,$1,$2,$3,$4,$5,$6){return("<img height=" + $3 + " src=\"" + edt_url_filter($5+$6) + "\" width=" + $4 + " align=\"" + $2 + "\" border=\"" + $1 + "\">")});

	str = str.replace(/\[url=(.+?)\](.+?)\[\/url\]/gi,function($0,$1,$2){return("<a href=" + edt_url_filter($1) + " target=_blank>" + $2 + "</a>")});
	str = str.replace(/\[url\](.+?)\[\/url\]/gi,function($0,$1){return("<a href=" + edt_url_filter($1) + " target=_blank>" + $1 + "</a>")});

	str = str.replace(/\[table\](.+?)\[\/table\]/gim,"<table class=anctb>$1</table>");
	str = str.replace(/\[table=([#0-9a-z]{1,12}),([0-9]{1,3}),([0-9]{1,3}),([0-9\%\|\"\&quot\;]{1,12}),(left|center|right),([#0-9a-z]{1,12}),([0-9]{1,3}),(.+?)\](.+?)\[\/table\]/gim,function($0,$1,$2,$3,$4,$5,$6,$7,$8,$9){return("<table borderColor=" + $1 + " cellSpacing=" + $2 + " cellPadding=" + $3 + " width=" + $4 + " align=" + $5 + " bgColor=" + $6 + " background=\"" + edt_url_filter($8) + "\" border=" + $7 + ">" + $9+ "</table>")});
	str = edt_multscode(str);
	return str;
}

function edt_multscode(s)
{
	var str = s;
	var oldstr = "",tmp;
	tmp = str.toLowerCase();
	while(oldstr != str)
	{	oldstr = str;
		str = str.replace(/\[table\](.+?)\[\/table\]/gim,"<table class=anctb>$1</table>");
		str = str.replace(/\[table=([#0-9a-z]{1,12}),([0-9]{1,3}),([0-9]{1,3}),([0-9\%\|\"\&quot\;]{1,12}),(left|center|right),([#0-9a-z]{1,12}),([0-9]{1,3}),(.+?)\](.+?)\[\/table\]/gim,function($0,$1,$2,$3,$4,$5,$6,$7,$8,$9){return("<table borderColor=" + $1 + " cellSpacing=" + $2 + " cellPadding=" + $3 + " width=" + $4 + " align=" + $5 + " bgColor=" + $6 + " background=\"" + edt_url_filter($8) + "\" border=" + $7 + ">" + $9+ "</table>")});
		tmp = str.toLowerCase();
	}
	return(str);
}

function edt_KillHTMLLabel(str)
{
	var n,m=0,str2;
	n = str.indexOf("<");
	if(n>=0)m = str.indexOf(">",n);
	str2 = str;
	while(n >= 0 && n < m)
	{
		str2 = str2.substr(0,n) + str2.substr(m+1);
		n = str2.indexOf("<");
		if(n>=0)m = str2.indexOf(">",n);
	}
	return(str2);
}

function edt_multpub(s,r1,r2,br1,br2)
{
	var str = s;
	var oldstr = "",tmp;
	tmp = str.toLowerCase();
	
	var regbr1 = new RegExp(br1,"gi");
	var reg1 = new RegExp(r1,"gi");
	while(oldstr != str)
	{
		str = str.replace(/\n/gim,"");
		str = str.replace(regbr1,br2);
		oldstr = str;
		str = str.replace(reg1,r2);
		tmp = str.toLowerCase();
	}
	return(str);
}

function edt_fonttagGet(str)
{
	var arr = new Array("","");
	var size="",bgcolor="",color="",face="",align="",i="",u="";
	tstr = " " + str;
	tstr=tstr.replace(/(\"|\=|\ |\'|\;)(size=|font-size\:|font-size\: )[\"]?([a-z0-9\-\%]{1,15})[\"]?/gi,function($0,$1,$2,$3){size=$3;});
	tstr=tstr.replace(/(BACKGROUND\-COLOR\: |BACKGROUND\-COLOR\:)([#a-z0-9]*)/gi,function($0,$1,$2){bgcolor=$2;});
	tstr=tstr.replace(/(\"|\=|\ |\'|\;)(color=|COLOR\: |COLOR\:)[\"]?([#a-z0-9\(\)\ \,]{1,25})[\"]?/gi,function($0,$1,$2,$3){color=$3;});
	tstr=tstr.replace(/(text-align\: |text-align\:| align=)[\"]?(left|center|right)[\"]?/gi,function($0,$1,$2){align=$2;});
	tstr=tstr.replace(/(font\-family\: |font\-family\:|face=)[\"]?([^\[\<\"\'\;]+)[\"]?/gi,function($0,$1,$2){face=$2;});
	tstr=tstr.replace(/(font\-style\: |font\-style\:)[\"]?(italic|oblique)[\"]?/gi,function($0,$1,$2){i=$2;});
	tstr=tstr.replace(/(text\-decoration\: |text\-decoration\:)[\"]?(underline|line\-through)[\"]?/gi,function($0,$1,$2){u=$2.toLowerCase();});
	if(size!=""){arr[0]="[SIZE=" + size + "]" + arr[0];arr[1]=arr[1] + "[/SIZE]";}
	if(bgcolor!=""){arr[0]="[BGCOLOR=" + bgcolor + "]" + arr[0];arr[1]=arr[1] + "[/BGCOLOR]";}
	if(color!=""){arr[0]="[COLOR=" + color + "]" + arr[0];arr[1]=arr[1] + "[/COLOR]";}
	if(face!=""){arr[0]="[FACE=" + face + "]" + arr[0];arr[1]=arr[1] + "[/FACE]";}
	if(align!=""){arr[0]="[ALIGN=" + align + "]" + arr[0];arr[1]=arr[1] + "[/ALIGN]";}
	if(i!=""){arr[0]="[I]" + arr[0];arr[1]=arr[1] + "[/I]";}
	if(u=="underline"){arr[0]="[U]" + arr[0];arr[1]=arr[1] + "[/U]";}
	else{if(u=="line-through"){arr[0]="[STRIKE]" + arr[0];arr[1]=arr[1] + "[/STRIKE]";}}
	return (arr);
}

function edt_fonttag(str)
{
	var tstr,re;
	var tag = "div|font|span|i|u|b|strong|li|ul|p|blockquote";
	tag = tag.split("|");
	for(var i=0;i<tag.length;i++)
	{
		tstr="";
		while(tstr!=str)
		{
			str = str.replace(/\n/gim,"");
			re = new RegExp("</(" + tag[i] + ")>","gi");
			str = str.replace(re,"</$1>\n");
			tstr=str;
			var re = new RegExp("<(" + tag[i] + ") ([^>]*)>(.*?)\<\/" + tag[i] + "\>","gi");
			str = str.replace(re,function($0,$1,$2,$3,$4){var ar=edt_fonttagGet($2);if($1.toLowerCase()=="font" || $1.toLowerCase()=="span"){return(ar[0] + $3 + ar[1]);}else{return("<" + $1 + ">" + ar[0] + $3 + ar[1] + "</" + $1 + ">");}});
		}
	}
	return(str);
}

function edt_tabletagGet(str)
{
	var borderColor="",cellSpacing="",cellPadding="",width="";
	var align = "",bgColor="",background = "",border="";
	tstr = " " + str;
	tstr=tstr.replace(/ borderColor=[\"]?([#a-z0-9]*)[\"]?/gi,function($0,$1){borderColor=$1;});
	tstr=tstr.replace(/ width=[\"]?([%0-9]*)[\"]?/gi,function($0,$1){width=$1;});
	tstr=tstr.replace(/ cellSpacing=[\"]?(\d+?)[\"]?/gi,function($0,$1){cellSpacing=$1;});
	tstr=tstr.replace(/ cellPadding=[\"]?(\d+?)[\"]?/gi,function($0,$1){cellPadding=$1;});
	tstr=tstr.replace(/ align=[\"]?(absmiddle|center|left|right|top|middle|bottom|absbottom|baseline|texttop)[\"]??/gi,function($0,$1){align=$1;});
	tstr=tstr.replace(/ bgColor=[\"]?([#a-z0-9]*)[\"]?/gi,function($0,$1){bgColor=$1;});
	tstr=tstr.replace(/ background=[\"]?(.[^\[\ \"\>]*)[\"]?/gi,function($0,$1){background=$1;});
	tstr=tstr.replace(/ border=[\"]?(\d+?)[\"]?/gi,function($0,$1){border=$1;});
	
	if(borderColor != "" || cellSpacing != "" || cellPadding!="" || width!="" || align!="" || bgColor!="" || background!="" || border!="")
	{
		if(borderColor=="")borderColor="#000000";
		if(cellSpacing=="")cellSpacing="0";
		if(cellPadding=="")cellPadding="0";
		if(width=="")width="100%";
		if(align=="")align="left";
		if(bgColor=="")bgColor="#ffffff";
		if(background=="")background="#";
		if(border=="")border="0";
	}
	else{return("");} 
	return("=" + borderColor + "," + cellSpacing + "," + cellPadding + "," + width + "," + align + "," + bgColor + "," + border + "," + background);
	return (arr);
}

function edt_tabletag(str)
{
	var tstr="";
	while(tstr!=str)
	{
	str = str.replace(/\n/gim,"");
	str = str.replace(/\<\/(table)>/gi,"</$1>\n");
		tstr=str;
	str = str.replace(/\<table ([^>]*)>(.*?)\<\/table\>/gi,function($0,$1,$2){var ar=edt_tabletagGet($1);return("[TABLE" + ar + "]" + $2 + "[/TABLE]");});
	}
	return(str);
}

function edt_imgtagGet(str)
{
	var tstr=" " + str;
	var src="",align="",border="",width="",height="";
	tstr=tstr.replace(/( align=)[\"]?(top|bottom|middle|left|absmiddle|right)[\"]?/gi,function($0,$1,$2){align=$2;});
	tstr=tstr.replace(/( src=)[\"]?(\/|\.\.\/|http\:\/\/|https\:\/\/|ftp\:\/\/)(.[^\[\ \">]*)[\"]?/gi,function($0,$1,$2,$3){src=$2+$3;});
	tstr=tstr.replace(/ border=[\"]?(\d+?)[\"]?/gi,function($0,$1){border=$1;});
	tstr=tstr.replace(/ width=[\"]?([%0-9]*)[\"]?/gi,function($0,$1){width=$1;});
	tstr=tstr.replace(/ height=[\"]?([%0-9]*)[\"]?/gi,function($0,$1){height=$1;});
	if(src=="")return("");
	if(align == "" && border =="" && width =="" && height =="")return("[IMG]" + src + "[/IMG]");
	if(border=="")border="0";
	if(align=="")align="absmiddle";
	if(width !="" && height !="")
	{
		return("[IMG=" + border + "," + align + "," + height + "," + width + "]" + src + "[/IMG]");
	}
	else
	{
		return("[IMG=" + border + "," + align + "]" + src + "[/IMG]");
	}
}

function edt_imgtag(str)
{
	var tstr="";
	while(tstr!=str)
	{
	str = str.replace(/\n/gim,"");
	str = str.replace(/\<img /gi,"\n\<img ");
		tstr=str;
	str = str.replace(/\<img ([^>]*)>/gi,function($0,$1){return(edt_imgtagGet($1));});
	}
	return(str);
}

function edt_clstag(str)
{
	str = str.replace(/\<(style)/gi,"\n<$1");
	str = str.replace(/\<style.*?>[\\\s\\\S]*?<\/style>/gi,"");
	str = str.replace(/\<script.*?>[\\\s\\\S]*?<\/script>/gi,"");
	str = str.replace(/\<\!\-\-[\\\s\\\S]*?-->/gi,"");
	str = str.replace(/\<object.*?>[\s\S]*?<\/object>/gi,"");
	str = str.replace(/\<select.*?>[\s\S]*?<\/select>/gi,"");
	str = str.replace(/\<noscript.*?>[\\\s\\\S]*?<\/noscript>/gi,"");
	str = str.replace(/\son[\w]{3,16}\s?=\s*([\'\"]).+?\1/gi,'');
	return(str);
}

function edt_htm2code(str)
{
	str = str.replace(/\n/gim,"");
	str = str.replace(/\r/gim,"");
	str = edt_clstag(str);

	str = str.replace(/\<(IMG)\ /gi,"\n<$1 ");
	str = str.replace(/\<IMG[^>]+emotid=\"([0-9]{1,4})\"[^>]*\>/gi,"[EM$1]");
	
	str = edt_imgtag(str);

	str = str.replace(/\n/gim,"");
	str = str.replace(/\<\/(FIELDSET)>/gi,"</$1>\n");
	str = str.replace(/\<FIELDSET[^>]*\>\<LEGEND\>([^>]*)<\/LEGEND>(.*)?<\/FIELDSET>/gi,"[FIELDSET=$1]$2[/FIELDSET]");

	str = edt_tabletag(str);
	str = edt_fonttag(str);

	str = str.replace(/\n/gim,"");

	str = str.replace(/\<div (.[^\[\>]*)\>/gi,"<p $1>");
	str = str.replace(/\<div>/gi,"<p>");
	str = str.replace(/\<\/div>/gi,"</p>");

	str = str.replace(/\<(td)\ /gi,"\n<$1 ");
	str = str.replace(/\<td [^>]*colspan=[\"]?([0-9]{1,2})[\"]? [^>]*rowspan=[\"]?([0-9]{1,2})[\"]?[^>]*>/gi,"[TD=$1,$2]");
	str = str.replace(/\<td [^>]*rowspan=[\"]?([0-9]{1,2})[\"]? [^>]*colspan=[\"]?([0-9]{1,2})[\"]?[^>]*>/gi,"[TD=$1,$2]");
	str = str.replace(/\<td [^>]*colspan=[\"]?([0-9]{1,2})[\"]?\>/gi,"[TD=$1,1]");
	str = str.replace(/\<td [^>]*rowspan=[\"]?([0-9]{1,2})[\"]?[^>]*\>/gi,"[TD=1,$1]");

	str = str.replace(/\<(tr|td|sup|sub|ul|ol|i|u|b|STRIKE|li|hr) (.[^\[\>]*)\>/gi,"[$1]");
	str = str.replace(/\<(tr|td|sup|sub|ul|ol|i|u|b|STRIKE|li|hr)\>/gi,"[$1]");
	str = str.replace(/\<\/(tr|td|sup|sub|ul|ol|i|u|b|STRIKE|li|hr)\>/gi,"[/$1]");

	str = str.replace(/\<li (.[^\[\>]*)\>/gi,"[LI]");
	str = str.replace(/\<li>/gi,"[LI]");
	str = str.replace(/\<\/LI>/gi,"[/LI]");

	str = str.replace(/\<(strong) (.[^\[\>]*)\>/gi,"[B]");
	str = str.replace(/\<(strong)>/gi,"[B]");
	str = str.replace(/\<\/(strong)>/gi,"[/B]");

	str = str.replace(/\<dir (.[^\[\>]*)\>/gi,"[UL]");
	str = str.replace(/\<dir>/gi,"[UL]");
	str = str.replace(/\<\/dir>/gi,"[/UL]");

	str = str.replace(/\<em (.[^\[\>]*)\>/gi,"[i]");
	str = str.replace(/\<em>/gi,"[i]");
	str = str.replace(/\<\/em>/gi,"[/i]");

	str = str.replace(/\<marquee (.[^\[\>]*)\>/gi,"[FLY]");
	str = str.replace(/\<marquee>/gi,"[FLY]");
	str = str.replace(/\<\/marquee>/gi,"[/FLY]");


	str = str.replace(/\<\/(a)>/gi,"</$1>\n");

	str = str.replace(/\<a [^>]*HREF=\"mailto:(.[^\[\ \">]*)\"[^>]*>(.*)?\<\/A\>/gi,"[EMAIL=$1]$2[/EMAIL]");
	str = str.replace(/\<a [^>]*HREF=\"(.[^[\ \"\>]*)\"[^>]*>(.*)?\<\/A\>/gi,"[URL=$1]$2[/URL]");
	str = str.replace(/\<a HREF=\"(.[^[\ \"\>]*)\">(.*)?\<\/A\>/gim,"[URL=$1]$2[/URL]");

	str = str.replace(/\<\/(color|size|face|font)\>/gi,"[/$1]");
	str = str.replace(/\n/gim,"");

	str = edt_htm2txt(str);
	return str;
}

function edt_htm2txt(str)
{
	str = str.replace(/\n/gim, "");

	str = str.replace(/\>/gim,">\n");
	str = str.replace(/(.{1,1})\<p (.[^\[\>]*)\>/gi,"$1\r");
	str = str.replace(/\n/gim,"");
	str = str.replace(/(.{1,1})\<p>/gim, "$1\r");
	str = str.replace(/\<\/p>/gim, "");

	str = str.replace(/<br\s+?style=(["']?)clear: both;?(\1)[^\>]*>/ig, '');
	str = str.replace(/<br[^\>]*>/ig, "\n");
	str = str.replace(/\ \&nbsp; \&nbsp; \&nbsp;/gim,"\t");
	str = str.replace(/\&nbsp;\&nbsp;\&nbsp;\&nbsp;\&nbsp;\&nbsp;/gim,"\t");
	str = str.replace(/\<br>\n/gim,"\n");
	str = str.replace(/\<br>/gim,"\n");
	str = str.replace(/\&nbsp;/gim," ");

	str = str.replace(/\<p (.[^\[\>]*)\>/gi,"\n");
	str = str.replace(/\<\/p>/gim,"\n");
	str = edt_KillHTMLLabel(str);
	str = str.replace(/\&gt;/gim,">");
	str = str.replace(/\&lt;/gim,"<");
	str = str.replace(/\&quot;/gim,"\"");
	//str = str.replace(/\&amp;/gim,"&"); //allow special character
	return(str);
}

function edt_preview(hide)
{
	if(!hide)
	{
		var obj=$('post_form');
		if(obj.User){$('Preview_UserName').innerHTML = htmlencode(obj.User.value);}
		else if(obj.Form_User){$('Preview_UserName').innerHTML = htmlencode(obj.Form_User.value);}
		if(obj.Form_Title&&obj.Form_TitleStyle)$("Preview_Title").innerHTML = DisplayAnnounceTitle(obj.Form_Title.value,obj.Form_TitleStyle.value);
		if(!edt_txtobj)return;
		var cm = edt_getcodemode();
		if(!edit_mode) //htmledit
		{
			if(cm==2)
			{
				//Preview_Content.innerHTML = convertcode(edt_PrintTrueText(htmlencode(edt_htm2code(htmldoc.body.innerHTML))));
				$('Preview_Content').innerHTML = edt_PrintTrueText(htmlencode(edt_htm2code(htmldoc.body.innerHTML)));
				leadcode('Preview_Content');
			}
			else
			{
				if(cm==1)alert('HTML代码预览仅支持显示纯文本状态显示,预览请察看高级模式.');
				$('Preview_Content').innerHTML = edt_PrintTrueText(htmlencode(htmldoc.body.innerHTML));
			}
		}
		else
		{
			if(cm==2)
			{
				//Preview_Content.innerHTML = convertcode(edt_PrintTrueText(htmlencode(edt_txtobj.value)));
				$('Preview_Content').innerHTML = edt_PrintTrueText(htmlencode(edt_txtobj.value));
				leadcode('Preview_Content');
			}
			else
			{
				if(cm==1)alert('HTML代码预览仅支持显示纯文本状态显示,预览请察看高级模式.');
				$('Preview_Content').innerHTML = edt_PrintTrueText(htmlencode(edt_txtobj.value));
			}
		}
		$('Preview').style.display = "";
	}
	else
	{
		$('Preview').style.display = "none";
	}
}

function DisplayAnnounceTitle(str,style)
{
	if(str.substring(0,3).toLowerCase() == "re:" || str=="")return("");
	switch(style)
	{
		case "1": return(str+"<br><br>");
		case "2": return("<font color=red class=redfont>" + htmlencode(str) + "</font><br><br>");
		case "3": return("<font color=green class=greenfont>" + htmlencode(str) + "</font><br><br>");
		case "4": return("<font color=blue class=bluefont>" + htmlencode(str) + "</font><br><br>");
		default: return(htmlencode(str)+"<br><br>");
	}
}

function trim(str)
{
	return((str + '').replace(/(\s+)$/g, '').replace(/^\s+/g, ''));
}

function edt_link()
{
	if(!edit_mode)
	{
		if(!isIE())
		{
			var url = trim(prompt('请输入链接地址', 'http://') + '');
			if(url!="undefined" && url!="null" && url!="http://")
			addcontent(2,"<a href=\"" + url + "\">" + url + "</a>");
		}
		else
		{
			htmlwin.focus();
			htmldoc.execCommand('CreateLink');
		}
	}
	else
	{
		addcontent(0,'URL','/URL');
	}
}

function edt_getdoclen()
{
	return (edit_mode ? $('TopicContent').value.length : htmldoc.body.innerHTML.length);
}

function storeCaret (textEl)
{
	if (textEl.createTextRange) 
	textEl.caretPos = document.selection.createRange().duplicate(); 
}

function ctlkey(event)
{
	var post_form = CheckObject("post_form");
	if (!post_form) return true;
	if(event.ctrlKey && event.keyCode==13){if(post_form_checkdata(post_form)) post_form.submit();return(false);}
	if(event.altKey && event.keyCode==83){if(post_form_checkdata(post_form)) post_form.submit();return(false);}
	return(true);
}

function selcolor_done(saction, color)
{
	if (color.toLowerCase() == "#ffffff") color2 = "#000000";
	else color2 = "#ffffff";
	switch (saction)
	{
		case "forecolor":
			addcontent(0,'color','/color',color) ;
			break;
		case "backcolor":
			if(isIE())
			{
				if(!edit_mode)
				{
					addcontent(2,'BackColor','',color);
				}
				else
				{
					addcontent(0,'bgcolor','/bgcolor',color2 + "," + color);
				}
			}
			break;
		case "bgcolor":
			$("d_bgcolor").value = color;
			$("s_bgcolor").style.backgroundColor = color;
			break;
		case "bordercolor":
			$("d_bordercolor").value = color;
			$("s_bordercolor").style.backgroundColor = color;
			break;
		default:
			break;
	}
}

function create_Color(saction)
{
	var strBody = "<table border=\"0\" cellpadding=\"1\" cellspacing=\"1\" width=\"125\" bgcolor=\"#cccccc\">";
	var aarray = new Array("F", "C", "9", "6", "3", "0");
	var barray = new Array("F", "6", "0");
	for (var i=0; i<aarray.length; i++)
	{
		strBody += "<tr height=\"12\">";
		for (var j=0;j<barray.length ;j++ )
		{
			for (var k=0;k<barray.length ;k++ )
			{
				strBody += "<td width=\"12\" unselectable=on class=\"curhand\" onclick=\"selcolor_done('" + saction + "','#" + aarray[i] + aarray[i] + barray[j] + barray[j] + barray[k] + barray[k] + "')\" bgcolor=\"#" + aarray[i] + aarray[i] + barray[j] + barray[j] + barray[k] + barray[k] + "\"></td>";
			}
		}
		strBody += "</tr>";
	}
	strBody += "</table>";
	return strBody;
}

function create_sy(saction)
{
	var strBody = "<table border=\"0\" cellpadding=\"1\" cellspacing=\"1\" width=\"200\" bgcolor=\"#cccccc\">";
	strBody += "<tr height=\"20\">";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'＃')\">＃</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'＠')\">＠</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'＆')\">＆</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'＊')\">＊</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'※')\">※</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'§')\">§ </td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'〃')\">〃</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'№')\">№</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'〓')\">〓</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'○')\">○</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'●')\">●</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'△')\">△</td>";
	strBody += "</tr><tr height=\"20\">";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'▲')\">▲</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'◎')\">◎</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'☆')\">☆</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'★')\">★</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'◇')\">◇</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'◆')\">◆</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'□')\">□</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'■')\">■</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'▽')\">▽</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'▼')\">▼</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'㊣')\">㊣</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'℅')\">℅</td>";
	strBody += "</tr><tr height=\"20\">";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'♀')\">♀</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'♂')\">♂</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⊕')\">⊕</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⊙')\">⊙</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'↑')\">↑</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'↓')\">↓</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'←')\">←</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'→')\">→</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'↖')\">↖</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'↗')\">↗</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'↙')\">↙</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'↘')\">↘</td>";
	strBody += "</tr><tr height=\"20\">";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'【')\">【</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'】')\">】</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'︻')\">︻</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'︼')\">︼</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'《')\">《</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'》')\">》</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'︽')\">︽</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'︾')\">︾</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'『')\">『</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'』')\">』</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'﹃')\">﹃</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'﹄')\">﹄</td>";
	strBody += "</tr><tr height=\"20\">";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'≈')\">≈</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'≡')\">≡</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'≠')\">≠</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'＝')\">＝</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'≤')\">≤</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'≥')\">≥</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'＜')\">＜</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'＞')\">＞</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'≮')\">≮</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'≯')\">≯</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'∷')\">∷</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'±')\">±</td>";
	strBody += "</tr><tr height=\"20\">";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'＋')\">＋</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'－')\">－</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'×')\">×</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'÷')\">÷</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'／')\">／</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'∫')\">∫</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'∮')\">∮</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'∝')\">∝</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'∞')\">∞</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'∧')\">∧</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'∨')\">∨</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'∑')\">∑</td>";
	strBody += "</tr><tr height=\"20\">";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⊙')\">⊙</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'≌')\">≌</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'∽')\">∽</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'√')\">√</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'≦')\">≦</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'≧')\">≧</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'≒')\">≒</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'°')\">°</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'ⅰ')\">ⅰ</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'ⅱ')\">ⅱ</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'ⅲ')\">ⅲ</td>";
	strBody += "</tr><tr height=\"20\">";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'ⅳ')\">ⅳ</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'ⅴ')\">ⅴ</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'ⅵ')\">ⅵ</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'ⅶ')\">ⅶ</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'ⅷ')\">ⅷ</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'ⅸ')\">ⅸ</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'ⅹ')\">ⅹ</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'Ⅰ')\">Ⅰ</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'Ⅱ')\">Ⅱ</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'Ⅲ')\">Ⅲ</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'Ⅳ')\">Ⅳ</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'Ⅴ')\">Ⅴ</td>";
	strBody += "</tr><tr height=\"20\">";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'Ⅵ')\">Ⅵ</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'Ⅶ')\">Ⅶ</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'Ⅷ')\">Ⅷ</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'Ⅸ')\">Ⅸ</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'Ⅹ')\">Ⅹ</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'Ⅺ')\">Ⅺ</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'Ⅻ')\">Ⅻ</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒈')\">⒈</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒉')\">⒉</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒊')\">⒊</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒋')\">⒋</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒌')\">⒌</td>";
	strBody += "</tr><tr height=\"20\">";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒍')\">⒍</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒎')\">⒎</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒏')\">⒏</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒐')\">⒐</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒑')\">⒑</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒒')\">⒒</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒓')\">⒓</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒔')\">⒔</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒕')\">⒕</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒖')\">⒖</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒗')\">⒗</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒘')\">⒘</td>";
	strBody += "</tr><tr height=\"20\">";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒙')\">⒙</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒚')\">⒚</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒛')\">⒛</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⑴')\">⑴</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⑵')\">⑵</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⑶')\">⑶</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⑷')\">⑷</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⑸')\">⑸</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⑹')\">⑹</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⑺')\">⑺</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⑻')\">⑻</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⑼')\">⑼</td>";
	strBody += "</tr><tr height=\"20\">";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⑽')\">⑽</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⑾')\">⑾</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⑿')\">⑿</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒀')\">⒀</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒁')\">⒁</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒂')\">⒂</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒃')\">⒃</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒄')\">⒄</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒅')\">⒅</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒆')\">⒆</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⒇')\">⒇</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'①')\">①</td>";
	strBody += "</tr><tr height=\"20\">";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'②')\">②</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'③')\">③</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'④')\">④</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⑤')\">⑤</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⑥')\">⑥</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⑦')\">⑦</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⑧')\">⑧</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⑨')\">⑨</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'⑩')\">⑩</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'㈠')\">㈠</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'㈡')\">㈡</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'㈢')\">㈢</td>";
	strBody += "</tr><tr height=\"20\">";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'㈣')\">㈣</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'㈤')\">㈤</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'㈥')\">㈥</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'㈦')\">㈦</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'㈧')\">㈧</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'㈨')\">㈨</td>";
	strBody += "<td width=\"20\" unselectable=on class=\"curhand\" onclick=\"addcontent(1,'㈩')\">㈩</td>";
	strBody += "<td unselectable=on class=\"curhand\" colspan=\"3\"><a href=\"javascript: void(0)\" onclick=\"hiddeno(document.getElementById('menu_info_sy'))\">关闭</a></td>";
	strBody += "</tr>";
	strBody += "</table>";
	return strBody;
}

function showo(o,objname,saction)
{
	var obj = CheckObject(objname);
	if (obj)
	{
		if (saction == "forecolor" || saction == "backcolor")
		{
			obj.innerHTML = create_Color(saction);
		}
		else if (saction == "sy")
		{
			obj.innerHTML = create_sy();
		}
		obj.style.left = calculateSumOffset(o,"offsetLeft");
		obj.style.top = calculateSumOffset(o,"offsetTop") + o.clientHeight - 1;
		obj.style.display = "block";
	}
}

function hiddeno(obj)
{
	obj.style.display = "none";
}

function showo2(obj)
{
	obj.style.display = "block";
}

$ = function(id){
	return document.getElementById(id);
}

$$ = document.getElementsByClassName = function(classname){
	var elems = [];
	var alls = document.getElementsByTagName('div'); 
	for(var i=0; i<alls.length; i++){
		if(alls[i].className && alls[i].className == classname){
			elems.push(alls[i]);	
		}
	}
	var alls = document.getElementsByTagName('span'); 
	for(var i=0; i<alls.length; i++){
		if(alls[i].className && alls[i].className == classname){
			elems.push(alls[i]);	
		}
	}
	return elems;
}

function show_EM()
{
	var strBody = "";
	for (var i=1;i<=20 ;i++ )
	{
		strBody += "<img src=\"/post/htmleditor/em" + i + ".gif\" border=\"0\" class=\"curhand\" onclick=\"edt_icon(" + i + ")\" align=\"absmiddle\">&nbsp;";
	}
	document.write(strBody);
}

function edt_icon(t)
{
	if(!edit_mode)
	{
		addcontent(2,"<IMG SRC=\"/post/htmleditor/em" + t + ".gif\" align=\"absmiddle\" border=0 emotid=\"" + t + "\">");
	}
	else
	{
		addcontent(1,"[EM" + t + "]");
	}
}