var isRichText = false;
var rng;
var currentRTE;
var allRTEs = "";
var isIE;
var isGecko;
var isSafari;
var isKonqueror;
var imagesPath;
var includesPath;
var cssFile;
var command;
var thissettop  = 0;
var thissetleft = 0;
//取得ID
function edit_getbyid(divname)
{
	return document.getElementById(divname);
}
//返回浏览器类型1-IE 2-FF 0-false
function edit_initIsBrowse()
{
	var sUsrAgent=navigator.userAgent;
	var isIE=sUsrAgent.indexOf("MSIE")!=-1;
	var isIE6=isIE&&sUsrAgent.indexOf("MSIE 6.0")!=-1;
	var isIE7=isIE&&sUsrAgent.indexOf("MSIE 7.0")!=-1;
	var isFF=sUsrAgent.indexOf("Firefox")!=-1;
	var isOP=sUsrAgent.indexOf("Opera")!=-1;
	var isSF=sUsrAgent.indexOf("Safari")!=-1
	         &&sUsrAgent.indexOf("Chrome")==-1;
	var isCH=sUsrAgent.indexOf("Chrome")!=-1;
  //以下进行测试
  if(isIE)
  {
  	return 1;
  }
  else if(isFF)
  {
  	return 2;
  }
  else
  {
  	return 0;
  }
}
//取得浏览器iframe对像
function edit_getrteframes(rte)
{
	var isbrowse = edit_initIsBrowse();
	var ishave = false;
	if(isbrowse == 1) 
	{
		for(var i = 0 ; i < document.frames.length ; i++)
		{
			if(document.frames[i].name == rte)
			{
				ishave = true;
				var myframe = document.frames[i];
				return myframe;
			}
		}
		if(ishave == false)
		{
			return false;
		}
	}
	else if(isbrowse == 2)
  {
  	var myframe = edit_getbyid(rte).contentWindow;
  	return myframe;
  }
  else
  {
  	return false;
  }
}
//隐藏select
function edit_setselecthide(newselectstr)
{
	//隐藏选择框
	var newselectarray = newselectstr.split(',');
	for(var i = 0 ; i < newselectarray.length ; i++)
	{
		var divnameobject = edit_getbyid(newselectarray[i]);
		if(divnameobject != null)
		{
			divnameobject.style.display='none';
		}
	}
}
//显示select
function edit_setselectshow(newselectstr)
{
	//隐藏选择框
	var newselectarray = newselectstr.split(',');
	for(var i = 0 ; i < newselectarray.length ; i++)
	{
		var divnameobject = edit_getbyid(newselectarray[i]);
		if(divnameobject != null)
		{
			divnameobject.style.display='';
		}
	}
}

//基本路径设置
function edit_initrte(imgPath, incPath, css) 
{
	imagesPath = imgPath;
	includesPath = incPath;
	cssFile = css;
}

//iframe组合成编辑器
function edit_writerichtext(rte, html, width, height, buttons) 
{
	var is_browse = edit_initIsBrowse();
	if(is_browse == 1) 
	{
		if (buttons && (width < 540)) width = 540;
		var tablewidth = width;
	} 
	else 
	{
		if (buttons && (width < 540)) width = 540;
		var tablewidth = width + 4;
	}
	document.writeln('<style>.rteImage{cursor:pointer;}</style>');
	document.writeln('<div class="rteDiv">');
	//菜单开始
	document.writeln('<div class="retDiv_menu" id="ret_menu_' + rte + '">');
	document.writeln('<table class="rteBack" cellpadding="0" cellspacing="0" id="Buttons2_' + rte + '" width="' + tablewidth + '">');
	document.writeln('	<tr>');
	document.writeln('		<td><img class="rteImage"   src="' + imagesPath + 'bold.gif" width="25" height="24" alt="Bold" title="Bold" onClick="edit_rteCommand(\'' + rte + '\', \'bold\', \'\')"></td>');
	document.writeln('		<td><img class="rteImage"   src="' + imagesPath + 'italic.gif" width="25" height="24" alt="Italic" title="Italic" onClick="edit_rteCommand(\'' + rte + '\', \'italic\', \'\')"></td>');
	document.writeln('		<td><img class="rteImage"   src="' + imagesPath + 'underline.gif" width="25" height="24" alt="Underline" title="Underline" onClick="edit_rteCommand(\'' + rte + '\', \'underline\', \'\')"></td>');
	document.writeln('		<td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
	document.writeln('		<td><img class="rteImage"   src="' + imagesPath + 'left_just.gif" width="25" height="24" alt="Align Left" title="Align Left" onClick="edit_rteCommand(\'' + rte + '\', \'justifyleft\', \'\')"></td>');
	document.writeln('		<td><img class="rteImage"   src="' + imagesPath + 'centre.gif" width="25" height="24" alt="Center" title="Center" onClick="edit_rteCommand(\'' + rte + '\', \'justifycenter\', \'\')"></td>');
	document.writeln('		<td><img class="rteImage"   src="' + imagesPath + 'right_just.gif" width="25" height="24" alt="Align Right" title="Align Right" onClick="edit_rteCommand(\'' + rte + '\', \'justifyright\', \'\')"></td>');
	document.writeln('		<td><img class="rteImage"   src="' + imagesPath + 'justifyfull.gif" width="25" height="24" alt="Justify Full" title="Justify Full" onclick="edit_rteCommand(\'' + rte + '\', \'justifyfull\', \'\')"></td>');
	document.writeln('		<td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
	document.writeln('		<td><img class="rteImage"   src="' + imagesPath + 'hr.gif" width="25" height="24" alt="Horizontal Rule" title="Horizontal Rule" onClick="edit_rteCommand(\'' + rte + '\', \'inserthorizontalrule\', \'\')"></td>');
	document.writeln('		<td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
	document.writeln('		<td><img class="rteImage"   src="' + imagesPath + 'numbered_list.gif" width="25" height="24" alt="Ordered List" title="Ordered List" onClick="edit_rteCommand(\'' + rte + '\', \'insertorderedlist\', \'\')"></td>');
	document.writeln('		<td><img class="rteImage"   src="' + imagesPath + 'list.gif" width="25" height="24" alt="Unordered List" title="Unordered List" onClick="edit_rteCommand(\'' + rte + '\', \'insertunorderedlist\', \'\')"></td>');
	document.writeln('		<td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
	document.writeln('		<td><img class="rteImage"   src="' + imagesPath + 'outdent.gif" width="25" height="24" alt="Outdent" title="Outdent" onClick="edit_rteCommand(\'' + rte + '\', \'outdent\', \'\')"></td>');
	document.writeln('		<td><img class="rteImage"   src="' + imagesPath + 'indent.gif" width="25" height="24" alt="Indent" title="Indent" onClick="edit_rteCommand(\'' + rte + '\', \'indent\', \'\')"></td>');
	document.writeln('		<td><div   id="forecolor_' + rte + '"><img class="rteImage" src="' + imagesPath + 'textcolor.gif" width="25" height="24" alt="Text Color" title="Text Color" onClick="edit_forecolor(\'' + rte + '\', \'forecolor\', \'\')"></div></td>');
	document.writeln('		<td><div id="hilitecolor_' + rte + '"><img class="rteImage" src="' + imagesPath + 'bgcolor.gif" width="25" height="24" alt="Background Color" title="Background Color" onClick="edit_hilitecolor(\'' + rte + '\', \'hilitecolor\', \'\')"></div></td>');
	document.writeln('		<td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
	document.writeln('		<td><img class="rteImage"   src="' + imagesPath + 'hyperlink.gif" width="25" height="24" alt="Insert Link" title="Insert Link" onClick="edit_insertLink(\'' + rte + '\')"></td>');
	document.writeln('		<td><div  id="image_' + rte + '"><img class="rteImage" src="' + imagesPath + 'image.gif" width="25" height="24" alt="Add Image" title="Add Image" onClick="edit_addimage(\'' + rte + '\',\'image\')"></div></td>');
	document.writeln('		<td><div id="smiley_' + rte + '"><img class="rteImage" src="' + imagesPath + 'smiley.gif" width="25" height="24" alt="Add Smiley" title="Add Smiley" onClick="edit_addsmiley(\'' + rte + '\',\'smiley\')"></div></td>');
	document.writeln('		<td><div  id="table_' + rte + '"><img class="rteImage" src="' + imagesPath + 'insert_table.gif" width="25" height="24" alt="Insert Table" title="Insert Table" onClick="edit_addtable(\'' + rte + '\', \'table\', \'\')"></div></td>');
	document.writeln('		<td width="100%"></td>');
	document.writeln('	</tr>');
	document.writeln('</table>');
	document.writeln('<table class="rteBack" cellpadding=2 cellspacing=0 id="Buttons1_' + rte + '" width="' + tablewidth + '">');
	document.writeln('	<tr>');
	document.writeln('		<td>');
	document.writeln('			<select style="height:20px;padding:0px;" id="formatblock_' + rte + '" onchange="edit_selectFont(\'' + rte + '\', this.id);">');
	document.writeln('				<option value="">选择标题样式</option>');
	document.writeln('				<option value="<p>">Paragraph &lt;p&gt;</option>');
	document.writeln('				<option value="<h1>">Heading 1 &lt;h1&gt;</option>');
	document.writeln('				<option value="<h2>">Heading 2 &lt;h2&gt;</option>');
	document.writeln('				<option value="<h3>">Heading 3 &lt;h3&gt;</option>');
	document.writeln('				<option value="<h4>">Heading 4 &lt;h4&gt;</option>');
	document.writeln('				<option value="<h5>">Heading 5 &lt;h5&gt;</option>');
	document.writeln('				<option value="<h6>">Heading 6 &lt;h6&gt;</option>');
	document.writeln('				<option value="<address>">Address &lt;ADDR&gt;</option>');
	document.writeln('				<option value="<pre>">Formatted &lt;pre&gt;</option>');
	document.writeln('			</select>');
	document.writeln('		</td>');
	document.writeln('		<td>');
	document.writeln('			<select style="height:20px;padding:0px;" id="fontname_' + rte + '" onchange="edit_selectFont(\'' + rte + '\', this.id)">');
	document.writeln('        <option value="楷体_GB2312">楷体</option>');
  document.writeln('        <option value="宋体">宋体</option>');
  document.writeln('        <option value="仿宋_GB2312">仿宋</option>');
  document.writeln('        <option value="黑体">黑体</option>');
  document.writeln('        <option value="隶书">隶书</option>');
	document.writeln('				<option value="Arial, Helvetica, sans-serif">Arial</option>');
	document.writeln('				<option value="Courier New, Courier, mono">Courier New</option>');
	document.writeln('				<option value="Times New Roman, Times, serif">Times New Roman</option>');
	document.writeln('				<option value="Verdana, Arial, Helvetica, sans-serif">Verdana</option>');
	document.writeln('			</select>');
	document.writeln('		</td>');
	document.writeln('		<td>');
	document.writeln('			<select style="height:20px;padding:0px;" unselectable="on" id="fontsize_' + rte + '" onchange="edit_selectFont(\'' + rte + '\', this.id);">');
	document.writeln('				<option value="Size">选择字号</option>');
	document.writeln('				<option value="1">1</option>');
	document.writeln('				<option value="2">2</option>');
	document.writeln('				<option value="3">3</option>');
	document.writeln('				<option value="4">4</option>');
	document.writeln('				<option value="5">5</option>');
	document.writeln('				<option value="6">6</option>');
	document.writeln('				<option value="7">7</option>');
	document.writeln('			</select>');
	document.writeln('		</td>');
	
	document.writeln('		<td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
	document.writeln('		<td><img class="rteImage" src="' + imagesPath + 'cut.gif" width="25" height="24" alt="Cut" title="Cut" onClick="edit_rteCommand(\'' + rte + '\', \'cut\')"></td>');
	document.writeln('		<td><img class="rteImage" src="' + imagesPath + 'copy.gif" width="25" height="24" alt="Copy" title="Copy" onClick="edit_rteCommand(\'' + rte + '\', \'copy\')"></td>');
	document.writeln('		<td><img class="rteImage" src="' + imagesPath + 'paste.gif" width="25" height="24" alt="Paste" title="Paste" onClick="edit_rteCommand(\'' + rte + '\', \'paste\')"></td>');
	document.writeln('		<td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
	document.writeln('		<td><img class="rteImage" src="' + imagesPath + 'undo.gif" width="25" height="24" alt="Undo" title="Undo" onClick="edit_rteCommand(\'' + rte + '\', \'undo\')"></td>');
	document.writeln('		<td><img class="rteImage" src="' + imagesPath + 'redo.gif" width="25" height="24" alt="Redo" title="Redo" onClick="edit_rteCommand(\'' + rte + '\', \'redo\')"></td>');
	
	document.writeln('		<td width="100%">');
	document.writeln('		</td>');
	document.writeln('	</tr>');
	document.writeln('</table>');
	document.writeln('</div>');
	//菜单结束
	document.writeln('<iframe id="' + rte + '" class="rte_class" name="' + rte + '" width="' + width + 'px" height="' + height + 'px" src="' + includesPath + 'blank.htm"></iframe>');
	document.writeln('<iframe width="266" height="326" id="sm' + rte + '" name="sm' + rte + '" src="' + includesPath + 'edit_smiley.php" marginwidth="0" marginheight="0" scrolling="no" style="visibility:hidden; position: absolute;border:1px solid #000000;"></iframe>');
	document.writeln('<iframe width="154" height="104" id="cp' + rte + '" name="cp' + rte + '" src="' + includesPath + 'edit_palette.php" marginwidth="0" marginheight="0" scrolling="no" style="visibility:hidden; position: absolute;border:1px solid #000000;"></iframe>');
	document.writeln('<iframe width="226" height="176" id="tb' + rte + '" name="tb' + rte + '" src="' + includesPath + 'edit_table.php" marginwidth="0" marginheight="0" scrolling="no" style="visibility:hidden; position: absolute;border:1px solid #000000;"></iframe>');
	document.writeln('<iframe width="240" height="80" id="img' + rte + '" name="img' + rte + '" src="' + includesPath + 'edit_upload_up.php" marginwidth="0" marginheight="0" scrolling="no" style="visibility:hidden; position: absolute;border:1px solid #000000;"></iframe>');
	document.writeln('<input type="hidden" id="hdn' + rte + '" name="hdn' + rte + '" value="">');
	document.writeln('<input type="hidden" id="rtename_' + rte + '" name="rtename_' + rte + '" value="' + rte + '">');
	document.writeln('<br /><input type="checkbox" id="chkSrc' + rte + '" onclick="edit_toggleHTMLSrc(\'' + rte + '\');" />&nbsp;原代码编辑模式');
	document.writeln('</div>');
	edit_getbyid('hdn' + rte).value = html;
	edit_enableDesignMode(rte, html);   //将iframe设置为开启
}

function edit_enableDesignMode(rte, html) 
{
	var frameHtml;
	var oRTEframes;
	var oRTE;
	var is_browse = edit_initIsBrowse();
	frameHtml  = "<html id=\"" + rte + "\">\n";
	frameHtml += "<head>\n";
	frameHtml += "<style>\n";
	frameHtml += "body {\n";
	frameHtml += "	background: #FFFFFF;\n";
	frameHtml += "	margin: 0px;\n";
	frameHtml += "	padding: 0px;\n";
	frameHtml += "}\n";
	frameHtml += "</style>\n";
	frameHtml += "</head>\n";
	frameHtml += "<body>\n";
	frameHtml += html + "\n";
	frameHtml += "</body>\n";
	frameHtml += "</html>";
	oRTEframes = edit_getrteframes(rte);
	oRTE = oRTEframes.document;
	oRTE.open();
	oRTE.write(frameHtml);
	oRTE.close();
	oRTE.designMode = "On";
}

//======================显示弹出层部分
//显示图标层
function edit_addsmiley(rte, ifrcommand) 
{
	isdocumentclick = 1;
	edit_closeall(rte , 'sm' + rte);   //关闭所有弹出
	var iframename = 'sm';
	var thisfocus = edit_getrteframes(rte);
	thisfocus.focus();
	edit_dlgColorPalette(rte, ifrcommand , iframename);
}

//显示文本色层
function edit_forecolor(rte, ifrcommand)
{
	isdocumentclick = 1;
	edit_closeall(rte , 'cp' + rte);   //关闭所有弹出
	var iframename = 'cp';
	var thisfocus = edit_getrteframes(rte);
	thisfocus.focus();
	edit_dlgColorPalette(rte, ifrcommand , iframename);
}

//显示背景色层
function edit_hilitecolor(rte, ifrcommand)
{
	isdocumentclick = 1;
	edit_closeall(rte , 'cp' + rte);   //关闭所有弹出
	var iframename = 'cp';
	var thisfocus = edit_getrteframes(rte);
	thisfocus.focus();
	edit_dlgColorPalette(rte, ifrcommand , iframename);
}

//显示表格层
function edit_addtable(rte, ifrcommand) 
{
	isdocumentclick = 1;
	edit_closeall(rte , 'tb' + rte);   //关闭所有弹出
	var iframename = 'tb';
	var thisfocus = edit_getrteframes(rte);
	thisfocus.focus();
	edit_dlgColorPalette(rte, ifrcommand , iframename);
}

//显示图片上传
function edit_addimage(rte, ifrcommand) 
{
	isdocumentclick = 1;
	edit_closeall(rte , 'img' + rte);   //关闭所有弹出
	var iframename = 'img';
	var thisfocus = edit_getrteframes(rte);
	thisfocus.focus();
	var thisuploadframe = edit_getrteframes(iframename + rte);
	edit_dlgColorPalette(rte, ifrcommand , iframename);
}

//设置URL
function edit_insertLink(rte) 
{
	edit_closeall(rte);   //关闭所有弹出
	var szURL = prompt("请输入链接网址(必须在前面加http://)...", "http://");
	if(szURL != null)
	{
		var first_4 = szURL.substring(0,7); 
	}
	else
	{
		var first_4 = 'http://';
	}
	try 
	{
		if(first_4 != 'http://')
		{
			alert("URL前必须加入http://");
		}
		else
		{
			edit_rteCommand(rte, "Unlink", null);
			edit_rteCommand(rte, "CreateLink", szURL);
		}
	} 
	catch (e) 
	{
	}
}

//子层调用，替换文本色
function edit_setColor(color) 
{
	var rte = currentRTE;
	var isbrowse = edit_initIsBrowse();
	var formobj = edit_getrteframes(rte);
	var parentCommand = command;
	if (isbrowse == 1) 
	{
		var sel = formobj.document.selection; 
		if (parentCommand == "hilitecolor") parentCommand = "backcolor";
		if (sel != null) 
		{
			var newRng = sel.createRange();
			newRng = rng;
			newRng.select();
		}
	}
	edit_rteCommand(rte, parentCommand, color);
	edit_showHideElement('cp' + rte, "hide");
}

//取出图片编号并显示
function edit_setSmiley(code , selectfolder)
{
	var isbrowse = edit_initIsBrowse();
	var smileyhtml = '<img src="http://pic.sentfun.com/bbs/images/brow/'+selectfolder+'/'+code+'.gif">';
	var rte = currentRTE;
	var parentCommand = command;
	if(isbrowse == 1) 
	{
		var framesobj = edit_getrteframes(rte);
		var sel = framesobj.document.selection; 
		if (sel != null) 
		{
			var newRng = sel.createRange();
			newRng = rng;
			newRng.select();
		}
	}
	if(isbrowse == 1) 
	{
		newRng.pasteHTML(smileyhtml);
	} 
	else 
	{
		var oRTE;
		oRTE = edit_getrteframes(rte);
		oRTE.focus();
		oRTE.document.execCommand('insertHTML', false, smileyhtml);
	}
	var oDialog = edit_getbyid('sm' + rte);
	edit_showHideElement(oDialog, "hide");
}

//插入html
function edit_setTable(html)
{
	var rte = currentRTE;
	var formobj  = edit_getrteframes(rte);
	var isbrowse = edit_initIsBrowse();
	formobj.focus();
	if (isbrowse == 1) 
	{
		formobj.document.selection.createRange().pasteHTML(html);
	} 
	else 
	{
		formobj.document.execCommand('insertHTML', false, html);
	}
	var oDialog = edit_getbyid('tb' + rte);
	edit_showHideElement(oDialog, "hide");
}

//关闭表格上传
function edit_closetable()
{
	var rte = currentRTE;
	var oDialog = edit_getbyid('tb' + rte);
	edit_showHideElement(oDialog, "hide");
}

//关闭图片上传
function edit_closeimage()
{
	var rte = currentRTE;
	var oDialog = edit_getbyid('img' + rte);
	//重新设置加载
	thisuploadframe = edit_getrteframes('img' + rte);
	thisuploadframe.document.location = includesPath + 'edit_upload_up.php';
	edit_showHideElement(oDialog, "hide");
}

//关闭表情上传
function edit_closesmiley()
{
	var rte = currentRTE;
	var oDialog = edit_getbyid('sm' + rte);
	edit_showHideElement(oDialog, "hide");
}

//关闭色值上传
function edit_closecolor()
{
	var rte = currentRTE;
	var oDialog = edit_getbyid('cp' + rte);
	edit_showHideElement(oDialog, "hide");
}

//关闭所有弹出的iframe
function edit_closeall(rte , thisout)
{
	var allwindowname = new Array;
	allwindowname[0] = 'cp' + rte;
	allwindowname[1] = 'tb' + rte;
	allwindowname[2] = 'sm' + rte;
	allwindowname[3] = 'img' + rte;
	for(var i = 0 ; i < allwindowname.length ; i++)
	{
		var oDialog = edit_getbyid(allwindowname[i]);
		if(thisout != allwindowname[i])
		{
			edit_showHideElement(oDialog, "hide");
		}
	}
}

//图片上传的回调函数
function edit_image_callback(image_path)
{
	var rte = currentRTE;
	var formobj  = edit_getrteframes(rte);
	var isbrowse = edit_initIsBrowse();
	var html = '<img src="' + image_path + '" />';
	formobj.focus();
	if (isbrowse == 1) 
	{
		formobj.document.selection.createRange().pasteHTML(html);
	} 
	else 
	{
		formobj.document.execCommand('insertHTML', false, html);
	}
	edit_closeimage();
}

//设置边界
function edit_dlgColorPalette(rte, ifrcommand , iframename) 
{
	var oDialog = edit_getbyid(iframename + rte);
	var buttonElement = edit_getbyid(ifrcommand + '_' + rte);
	var iLeftPos = edit_getOffsetLeft(buttonElement) + 20 + thissetleft;
	var iTopPos  = edit_getOffsetTop(buttonElement) + buttonElement.offsetHeight + 0 + thissettop;
	edit_setRange(rte);
	oDialog.style.left = (iLeftPos) + "px";
	oDialog.style.top = (iTopPos) + "px";
	if ((ifrcommand == command) && (rte == currentRTE)) 
	{
		if (oDialog.style.visibility == "hidden") 
		{
			edit_showHideElement(oDialog, 'show');
		}
		else 
		{
			edit_showHideElement(oDialog, 'hide');
		}
	} 
	else 
	{
		edit_showHideElement(oDialog, 'show');
	}
	command = ifrcommand;
	currentRTE = rte;
}

//设置选框并替换文字
function edit_selectFont(rte, selectname) 
{
	var idx = edit_getbyid(selectname).selectedIndex;
	if (idx != 0) 
	{
		var selected = edit_getbyid(selectname).options[idx].value;
		var cmd = selectname.replace('_' + rte, '');
		edit_rteCommand(rte, cmd, selected);
		edit_getbyid(selectname).selectedIndex = 0;
	}
}

//设置rng全局变量
function edit_setRange(rte) 
{
	var oRTE;
	var isbrowse = edit_initIsBrowse();
	if (isbrowse == 1) 
	{
		oRTE = edit_getrteframes(rte);
		var selection = oRTE.document.selection; 
		if (selection != null) rng = selection.createRange();
	} 
	else 
	{
		oRTE = edit_getrteframes(rte);
		var selection = oRTE.getSelection();
		rng = selection.getRangeAt(selection.rangeCount - 1).cloneRange();
	}
}

//取出文本框内容
function edit_updateRTE(rte) 
{
	//edit_toggleHTMLSrc(rte);  //把原代码编辑模式转变成可见模式
	var oHdnMessage = edit_getbyid('hdn' + rte);
	var formobj     = edit_getrteframes(rte);
	var isbrowse = edit_initIsBrowse();
	if (oHdnMessage.value == null) oHdnMessage.value = "";
	if (edit_getbyid("chkSrc" + rte).checked) 
	{
		if(isbrowse == 1) 
		{
			var output = escape(formobj.document.body.innerText);
			output = output.replace("%3CP%3E%0D%0A%3CHR%3E", "%3CHR%3E");
			output = output.replace("%3CHR%3E%0D%0A%3C/P%3E", "%3CHR%3E");
			oHdnMessage.value = unescape(output);
		} 
		else 
		{
			var htmlSrc = formobj.document.body.ownerDocument.createRange();
			htmlSrc.selectNodeContents(formobj.document.body);
			oHdnMessage.value = htmlSrc.toString();
		}
	}
	else
	{
		oHdnMessage.value = formobj.document.body.innerHTML;
	}
	if (edit_stripHTML(oHdnMessage.value.replace("&nbsp;", " ")) == "" 
		&& oHdnMessage.value.toLowerCase().search("<hr") == -1
		&& oHdnMessage.value.toLowerCase().search("<img") == -1) oHdnMessage.value = "";
	if (escape(oHdnMessage.value) == "%3Cbr%3E%0D%0A%0D%0A%0D%0A") oHdnMessage.value = "";
	return oHdnMessage.value;
}

//替换文本中的字符
function edit_stripHTML(oldString) 
{
	var newString = oldString.replace(/(<([^>]+)>)/ig,"");
  newString = newString.replace(/\r\n/g," ");
  newString = newString.replace(/\n/g," ");
  newString = newString.replace(/\r/g," ");
	newString = edit_trim(newString);
	return newString;
}

//替换文本中的左右空格函数
function edit_trim(inputString)
{
   if (typeof inputString != "string") return inputString;
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") 
   {
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length - 1, retValue.length);
   while (ch == " ") 
   { 
      retValue = retValue.substring(0, retValue.length - 1);
      ch = retValue.substring(retValue.length - 1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) 
   {
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ") + 1, retValue.length);
   }
   return retValue;
}

//编辑器中的替换函数
function edit_rteCommand(rte, ifrcommand, option) 
{
	var formobj     = edit_getrteframes(rte);
	var isbrowse = edit_initIsBrowse();
	edit_closeall(rte);   //关闭所有弹出
	try {
		formobj.focus();
	  formobj.document.execCommand(ifrcommand, false, option);
		formobj.focus();
	} catch (e) {
	}
}

//显示&隐藏
function edit_showHideElement(element, showHide)
{
	if (edit_getbyid(element)) 
	{
		element = edit_getbyid(element);
	}
	
	if (showHide == "show")
	{
		element.style.visibility = "visible";
	} 
	else if (showHide == "hide") 
	{
		element.style.visibility = "hidden";
	}
}

//显示&隐藏层并替换原代码与可视内容
function edit_toggleHTMLSrc(rte) 
{
	edit_closeall(rte);   //关闭所有弹出
	var formobj     = edit_getrteframes(rte).document;
	var isbrowse    = edit_initIsBrowse();
	var menuname    = "ret_menu_" + rte;
	if (edit_getbyid("chkSrc" + rte).checked) 
	{
		edit_getbyid(menuname).style.display = 'none';
		if (isbrowse == 1) 
		{
			formobj.body.innerText = formobj.body.innerHTML;
		} 
		else 
		{
			var htmlSrc = formobj.createTextNode(formobj.body.innerHTML);
			formobj.body.innerHTML = "";
			formobj.body.appendChild(htmlSrc);
		}
	} 
	else 
	{
		edit_getbyid(menuname).style.display = '';
		if (isbrowse == 1) 
		{
			var output = escape(formobj.body.innerText);
			output = output.replace("%3CP%3E%0D%0A%3CHR%3E", "%3CHR%3E");
			output = output.replace("%3CHR%3E%0D%0A%3C/P%3E", "%3CHR%3E");
			formobj.body.innerHTML = unescape(output);
		} 
		else 
		{
			var htmlSrc = formobj.body.ownerDocument.createRange();
			htmlSrc.selectNodeContents(formobj.body);
			formobj.body.innerHTML = htmlSrc.toString();
		}
	}
}

//取出高
function edit_getOffsetTop(elm) 
{
	/*
	var mOffsetTop = elm.offsetTop;
	var mOffsetParent = elm.offsetParent;
	var parents_up = 2;
	while(parents_up > 0) 
	{
		mOffsetTop += mOffsetParent.offsetTop;
		mOffsetParent = mOffsetParent.offsetParent;
		parents_up--;
	}
	alert("top:" + s.top);
	alert("left:" + s.left);
	*/
	var s = getAbsoluteLocationEx(elm);
	mOffsetTop = s.top;
	return mOffsetTop;
}

//取出左
function edit_getOffsetLeft(elm) 
{
	/*
	var mOffsetLeft = elm.offsetLeft;
	var mOffsetParent = elm.offsetParent;
	var parents_up = 2;
	while(parents_up > 0) 
	{
		mOffsetLeft += mOffsetParent.offsetLeft;
		mOffsetParent = mOffsetParent.offsetParent;
		parents_up--;
	}
	*/
	var s = getAbsoluteLocationEx(elm);
	mOffsetLeft = s.left;
	return mOffsetLeft;
}

//取出宽高
function getAbsoluteLocationEx(element)
{
    var elmt = element;
    var offsetTop = elmt.offsetTop;
    var offsetLeft = elmt.offsetLeft;
    var offsetWidth = elmt.offsetWidth;
    var offsetHeight = elmt.offsetHeight;
    while( elmt = elmt.offsetParent )
    {
        if ( elmt.style.position == 'absolute' || elmt.style.position == 'relative'
            || ( elmt.style.overflow != 'visible' && elmt.style.overflow != '' ) )
        {
            break;
        }
        offsetTop += elmt.offsetTop;
        offsetLeft += elmt.offsetLeft;
    }
    return { 'top': offsetTop, 'left': offsetLeft, 'width': offsetWidth, 'height': offsetHeight };
}