var gSetColorType = "";
var gIsIE = 1;
var gIEVer = fGetIEVer();//确定浏览器版本
var ev = null;
function fGetEv(e){
	ev = e;
}

function cyEditor(array){
	var editor = this;// 储存本身对象引用供匿名fucntion使用.
	var mainBar = _$('button');

	//确定浏览器版本
	var iVerNo = 0;
	var sVer = navigator.userAgent;
	if(sVer.indexOf("MSIE")>-1){
		var sVerNo = sVer.split(";")[1];
		sVerNo = sVerNo.replace("MSIE","");
		iVerNo = parseFloat(sVerNo);
	}
	this.gIEVer = iVerNo;//浏览器版本
	this.gIsIE = document.all;//是否为ie

	this.frames = window.frames["HtmlEditor"];//textarea

	this.divHtml = '';

	for(var i=0;i<array.length;i++){//读取配置数组初始化按钮
		this.addButton(array[i]);
		//mainBar.innerHTML="<div class=\"icons icoCut\"><img border=\"0\" width=\"100%\" height=\"100%\" src=\"http://img.cyworld.com.cn/images/writingbox/place.gif\" onclick=\"format('Cut')\" title=\"剪切\" onmousedown=\"fSetBorderMouseDown(this)\"  ></div>";
	}
	mainBar.innerHTML = this.divHtml;

	for(var i=0; i<mainBar.childNodes.length; i++){//循环配置按钮的事件
		var button = mainBar.childNodes[i];
		if(button.className != 'spacerline'){
			button.onmouseover = function (){return editor.fSetBorderMouseOver(this)};
			button.onmouseout = function (){return editor.fSetBorderMouseOut(this)};
			//button.onmousedown = function (){return editor.fSetBorderMouseDown(this)};
			button.onclick = function(){return editor.buttonOnclick(this)};
		}
	}

	//简单初始化函数，打开textarea编辑模式
	this.frames.document.designMode="on";
	//	if(!this.gIsIE){
	//		this.frames.document.execCommand("useCSS",false, true);
	//	}
	//	//未加载完成时鼠标动作会报错
	//	this.frames.document.onmousemove = function(){
	//		window.onblur();
	//	}
	//	this.frames.document.onclick = function(){
	//		editor.HideMenu();//隐藏菜单
	//	}
	//	this.frames.document.onkeypress = fnKeypress;
	//	function fnKeypress(){
	//	    if(document.all){
	//	        var ev = this.frames.event;
	//	        if(ev.keyCode==13 && !ev.shiftKey){//判断回车键
	//	            var s = this.frames.document.selection;
	//	            if (s!=null){
	//	                var r = s.createRange();
	//	                if (r!=null) {
	//	                    r.pasteHTML("<br>");
	//	                    r.select();//将光标移动到新行
	//	                }
	//	            }
	//	            return false;
	//	        }
	//	    }
	//	}
}

cyEditor.prototype.HideMenu = function(){//隐藏菜单
	var fontface = _$("fontface");
	var fontsize = _$("fontsize");
	var dvForeColor =_$("dvForeColor");
	var dvPortrait =_$("dvPortrait");
	var divAlign =_$("divAlign");
	var divList =_$("divList");
	if(dvForeColor) dvForeColor.style.display = "none";
	if(dvPortrait) dvPortrait.style.display = "none";
	if(fontface) fontface.style.display = "none";
	if(fontsize) fontsize.style.display = "none";
	if(divAlign) divAlign.style.display = "none";
	if(divList) divList.style.display = "none";
}

cyEditor.prototype.addButton = function (buttonName){//构造编辑器按钮
	switch (buttonName) {
		case "icoCut" :
		this.divHtml += "<div id=\"icoCut\" class=\"icons2 icoCut\"><img border=\"0\" width=\"100%\" height=\"100%\" src=\"http://img.cyworld.com.cn/images/writingbox/place.gif\" title=\"剪切\" style=\"cursor: pointer;\"></div>";
		break;
		case "icoCpy" :
		this.divHtml += "<div id=\"icoCpy\" class=\"icons2 icoCpy\"><img border=\"0\" width=\"100%\" height=\"100%\" src=\"http://img.cyworld.com.cn/images/writingbox/place.gif\" title=\"复制\" style=\"cursor: pointer;\"></div>";
		break;
		case "icoPse" :
		this.divHtml += "<div id=\"icoPse\" class=\"icons2 icoPse\"><img border=\"0\" width=\"100%\" height=\"100%\" src=\"http://img.cyworld.com.cn/images/writingbox/place.gif\" title=\"粘贴\" style=\"cursor: pointer;\"></div>";
		break;
		case "icoFfm" :
		this.divHtml += "<div id=\"icoFfm\" class=\"icons3 icoSty\"><img border=\"0\" width=\"100%\" height=\"100%\" src=\"http://img.cyworld.com.cn/images/writingbox/place.gif\" id=\"imgFontface\" title=\"字体\" style=\"cursor: pointer;\"></div>";
		break;
		case "icoFsz" :
		this.divHtml += "<div id=\"icoFsz\" class=\"icons3 icoSiz\"><img border=\"0\" width=\"100%\" height=\"100%\" src=\"http://img.cyworld.com.cn/images/writingbox/place.gif\" id=\"imgFontsize\" title=\"字号\" style=\"cursor: pointer;\"></div>";
		break;
		case "icoWgt" :
		this.divHtml += "<div id=\"icoWgt\" class=\"icons icoWgt\"><img border=\"0\" width=\"100%\" height=\"100%\" src=\"http://img.cyworld.com.cn/images/writingbox/place.gif\" title=\"加粗\" style=\"cursor: pointer;\"></div>";
		break;
		case "icoIta" :
		this.divHtml += "<div id=\"icoIta\" class=\"icons icolta\"><img border=\"0\" width=\"100%\" height=\"100%\" src=\"http://img.cyworld.com.cn/images/writingbox/place.gif\" title=\"斜体\" style=\"cursor: pointer;\"></div>";
		break;
		case "icoUln" :
		this.divHtml += "<div id=\"icoUln\" class=\"icons icoUln\"><img border=\"0\" width=\"100%\" height=\"100%\" src=\"http://img.cyworld.com.cn/images/writingbox/place.gif\" title=\"下划线\" style=\"cursor: pointer;\"></div>";
		break;
		case "icoFcl" :
		this.divHtml += "<div id=\"icoFcl\" class=\"icons icoFcor\"><img border=\"0\" width=\"100%\" height=\"100%\" src=\"http://img.cyworld.com.cn/images/writingbox/place.gif\" title=\"字体颜色\" id=\"imgFontColor\" style=\"cursor: pointer;\"></div>";
		break;
		case "icoBcl" :
		this.divHtml += "<div id=\"icoBcl\" class=\"icons icoBcor\"><img border=\"0\" width=\"100%\" height=\"100%\" src=\"http://img.cyworld.com.cn/images/writingbox/place.gif\" title=\"背景颜色\" id=\"imgBackColor\" style=\"cursor: pointer;\"></div>";
		break;
		case "icoAgn" :
		this.divHtml += "<div id=\"icoAgn\" class=\"icons icoAlgn\"><img border=\"0\" width=\"100%\" height=\"100%\" id=\"imgAlign\" title=\"对齐\"   src=\"http://img.cyworld.com.cn/images/writingbox/place.gif\" style=\"cursor: pointer;\"></div>";
		break;
		case "icoLst" :
		this.divHtml += "<div id=\"icoLst\" class=\"icons icoNum\"><img border=\"0\" width=\"100%\" height=\"100%\" src=\"http://img.cyworld.com.cn/images/writingbox/place.gif\" id=\"imgList\" title=\"编号\" style=\"cursor: pointer;\"></div>";
		break;
		case "icoOdt" :
		this.divHtml += "<div id=\"icoOdt\" class=\"icons icoRedind\"><img border=\"0\" width=\"100%\" height=\"100%\" src=\"http://img.cyworld.com.cn/images/writingbox/place.gif\" title=\"减少缩进\" style=\"cursor: pointer;\"></div>";
		break;
		case "icoIdt" :
		this.divHtml += "<div id=\"icoIdt\" class=\"icons icoAdind\"><img border=\"0\" width=\"100%\" height=\"100%\" src=\"http://img.cyworld.com.cn/images/writingbox/place.gif\" title=\"增加缩进\" style=\"cursor: pointer;\"></div>";
		break;
		case "icoUrl" :
		this.divHtml += "<div id=\"icoUrl\" class=\"icons4 icoUrl\"><img border=\"0\" width=\"100%\" height=\"100%\" src=\"http://img.cyworld.com.cn/images/writingbox/place.gif\" title=\"超链接\" style=\"cursor: pointer;\"></div>";
		break;
		case "icoImg" :
		this.divHtml += "<div id=\"icoImg\" class=\"icons icoImg\"><img border=\"0\" width=\"100%\" height=\"100%\" src=\"http://img.cyworld.com.cn/images/writingbox/place.gif\" title=\"增加图片\" style=\"cursor: pointer;\"></div>";
		break;
		case "icoMfc" :
		this.divHtml += "<div id=\"icoMfc\" class=\"icons icoFac\"><img border=\"0\" width=\"100%\" height=\"100%\" src=\"http://img.cyworld.com.cn/images/writingbox/place.gif\" title=\"表情\" id=\"imgFace\" style=\"cursor: pointer;\"/></div>";
		break;
		//		case "setMode" :
		//		this.divHtml += "<div id=\"setMode\" class=\"input\"><input id=\"switchMode\" type=\"checkbox\" name=\"switchMode\" language=\"javascript\"></div>";
		//		break;
		//		case "spacerline":
		//		this.divHtml +="<div id=\"spacerline\" class=\"spacerline\"><img src=\"images/line.gif\" width=\"4\" height=\"20\" style=\"margin-left: 5px\" style=\"cursor: pointer;\"/></div>";
		//		break;
	}
}
cyEditor.prototype.buttonOnclick=function(button){
	var command = button.id;//按钮功能
	switch (command){
		case "icoCut" ://剪切
		format('Cut');
		break;

		case "icoCpy" ://拷贝
		format('Copy');
		break;

		case "icoPse" ://粘贴
		format('Paste');
		break;

		case "icoFfm" ://字体
		this.fDisplayElement('fontface','');
		break;

		case "icoFsz" ://字号
		this.fDisplayElement('fontsize','');
		break;

		case "icoWgt" ://加粗
		format('Bold');
		break;

		case "icoIta" ://斜体
		format('Italic');
		break;

		case "icoUln" ://下划线
		format('Underline')
		break;

		case "icoFcl" ://字体颜色
		foreColor(event);
		break;

		case "icoBcl" ://背景颜色
		backColor(event);
		break;

		case "icoAgn" ://对齐方式
		this.fDisplayElement('divAlign','');
		break;

		case "icoLst" ://段落
		this.fDisplayElement('divList','');
		break;

		case "icoOdt" ://减少缩进
		format('Outdent');
		break;

		case "icoIdt" ://增加缩进
		format('Indent');
		break;

		case "icoUrl" ://url
		createLink();
		break;

		case "icoImg" ://图片
		createImg();
		break;

		case "icoMfc" ://表情
		if(gIsIE){
			addPortrait(event)
		}
		break;

		case "setMode" ://切换模式
		var checkedValue = _$("switchMode").checked;
		this.setMode(checkedValue);
		break;
	}
}

cyEditor.prototype.fSetBorderMouseOver = function (obj){//鼠标滑过按钮样式
	obj.style.className = "hover";
}

cyEditor.prototype.fSetBorderMouseOut = function (obj){//鼠标离开按钮样式
	obj.style.className = "";
}

cyEditor.prototype.fSetBorderMouseDown = function(obj) {//鼠标点击按钮样式
	obj.style.className = "";
}


cyEditor.prototype.fDisplayElement = function (element,displayValue){
	var editor = this;
	var elementInfo = getElementInfo(element);

	if(this.gIEVer<=5.01 && this.gIsIE){
		if(element == "fontface"){
			var sReturnValue = showModalDialog("FontFaceSelect.htm","", "font-family:Verdana; font-size:12; status:no; unadorned:yes; scroll:no; resizable:yes;dialogWidth:112px; dialogHeight:271px");;
			format("fontname",sReturnValue);
		}else if(element == "fontsize"){
			var sReturnValue = showModalDialog("FontSizeSelect.htm","", "font-family:Verdana; font-size:12; status:no; unadorned:yes; scroll:no; resizable:yes;dialogWidth:130px; dialogHeight:250px");;
			format("fontsize",sReturnValue);
		}else if(element == "divAlign"){
			var sReturnValue = showModalDialog("AlignSelect.htm","", "font-family:Verdana; font-size:12; status:no; unadorned:yes; scroll:no; resizable:yes;dialogWidth:40px; dialogHeight:45px");;
			format(sReturnValue);
		}else if(element == "divList"){
			var sReturnValue = showModalDialog("ListSelect.htm","", "font-family:Verdana; font-size:12; status:no; unadorned:yes; scroll:no; resizable:yes;dialogWidth:60px; dialogHeight:45px");;
			format(sReturnValue);
		}
		return;
	}
	editor.HideMenu();
	if ( typeof element == "string" )
	element = _$(element);
	if (element == null) return;
	element.style.display = displayValue;
	//	if(this.gIsIE){
	//		var e = event;
	//		var iX = e.clientX;
	//		var iY = e.clientY;
	//	}else{
	//		var e = arguments.callee.caller.arguments[0];
	//	}

	element.style.left = elementInfo["x"] + "px";
	element.style.top = elementInfo["y"] + elementInfo["height"] + "px";
	return true;
}
cyEditor.prototype.setMode=function (bStatus){
	var sourceEditor = _$("sourceEditor");
	var HtmlEditor = _$("HtmlEditor");
	var divEditor = _$("divEditor");
	var f = window.frames["HtmlEditor"];
	var body = f.document.getElementsByTagName("BODY")[0];
	if(bStatus){
		sourceEditor.style.display = "";
		HtmlEditor.style.height = "0px";
		divEditor.style.height = "0px";
		sourceEditor.value = body.innerHTML;
	}else{
		sourceEditor.style.display = "none";
		if(gIsIE){
			HtmlEditor.style.height = "286px";
			divEditor.style.height = "286px";
		}else{
			HtmlEditor.style.height = "283px";
			divEditor.style.height = "283px";
		}
		body.innerHTML = sourceEditor.value;
		//fSetEditable();
	}
}

function getElementInfo(element) {
	var elementImg = ""; //被点的按钮
	var elementXY = ""; //被点的坐标
	var elementHeight = ""; //被点的按钮的高度
	switch (element) {
		case "fontface" :
		elementImg = "icoFfm";
		break;
		case "fontsize" :
		elementImg = "icoFsz";
		break;
		case "divAlign" :
		elementImg = "icoAgn";
		break;
		case "divList" :
		elementImg = "icoLst";
		break;
		case "foreColor" :
		elementImg = "icoFcl";
		break;
		case "backcolor" :
		elementImg = "icoBcl";
		break;
		case "dvPortrait" :
		elementImg = "icoMfc";
		break;
	}
	elementXY = getAbsPoint(_$(elementImg));
	elementXY["height"] = _$(elementImg).clientHeight;
	return elementXY;
}

function getAbsPoint(e) {
	var x = e.offsetLeft;
	var y = e.offsetTop;
	while(e = e.offsetParent)
	{
		x += e.offsetLeft;
		y += e.offsetTop;
	}
	var xy = new Array();
	xy["x"] = x;
	xy["y"] = y;
	return xy;
}

function fGetIEVer(){
	var iVerNo = 0;
	var sVer = navigator.userAgent;
	if(sVer.indexOf("MSIE")>-1){
		var sVerNo = sVer.split(";")[1];
		sVerNo = sVerNo.replace("MSIE","");
		iVerNo = parseFloat(sVerNo);
	}
	return iVerNo;
}

function fSetColor(){
	var dvForeColor =_$("dvForeColor");
	if(dvForeColor.getElementsByTagName("TABLE").length == 1){
		dvForeColor.innerHTML = drawCube() + dvForeColor.innerHTML;
	}
}
window.onblur =function(){
	//return;
	var dvForeColor =_$("dvForeColor");
	var dvPortrait =_$("dvPortrait");
	dvForeColor.style.display = "none";
	dvPortrait.style.display = "none";
	if(!gIsIE){
		fHideMenu();
	}
}
document.onmousemove = function(e){
	if(gIsIE){
		var el = event.srcElement;
	} else{
		var el = e.target;
	}
	var tdView = _$("tdView");
	var tdColorCode = _$("tdColorCode");
	var dvForeColor =_$("dvForeColor");
	var dvPortrait =_$("dvPortrait");
	var fontsize =_$("fontsize");
	var fontface =_$("fontface");
	if(el.tagName == "IMG"){
		try{
			if(fCheckIfColorBoard(el)){
				tdView.bgColor = el.parentNode.bgColor;
				tdColorCode.innerHTML = el.parentNode.bgColor;
			}
		}catch(e){}
	}else{
		return;
		dvForeColor.style.display = "none";
		if(!fCheckIfPortraitBoard(el)) dvPortrait.style.display = "none";
		if(!fCheckIfFontFace(el)) fontface.style.display = "none";
		if(!fCheckIfFontSize(el)) fontsize.style.display = "none";
	}
}
document.onclick = function(e){
	if(gIsIE) var el = event.srcElement;
	else var el = e.target;
	var dvForeColor =_$("dvForeColor");
	var dvPortrait =_$("dvPortrait");

	if(el.tagName == "IMG"){
		try{
			if(fCheckIfColorBoard(el)){
				format(gSetColorType, el.parentNode.bgColor);
				dvForeColor.style.display = "none";
				return;
			}
		}catch(e){}
		try{
			if(fCheckIfPortraitBoard(el)){
				format("InsertImage", el.src);
				dvPortrait.style.display = "none";
				return;
			}
		}catch(e){}
	}
	fHideMenu();
	switch(el.id){
		case "imgFontface":
		var fontface = _$("fontface");
		if(fontface){
			fontface.style.display = "";
			if(!gIsIE){
				fontface.style.left = (e.clientX-30) + "px";
				fontface.style.top = 33 + "px";
				return true;
			}
		}
		break;
		case "imgFontsize":
		var fontsize = _$("fontsize");
		if(fontsize){
			fontsize.style.display = "";
			if(!gIsIE){
				fontsize.style.left = (e.clientX-30) + "px";
				fontsize.style.top = 33 + "px";
				return true;
			}
		}
		break;
		case "imgFontColor":
		var dvForeColor = _$("dvForeColor");
		if(dvForeColor)dvForeColor.style.display = "";
		break;
		case "imgBackColor":
		var dvForeColor = _$("dvForeColor");
		if(dvForeColor)dvForeColor.style.display = "";
		break;
		case "imgFace":
		var dvPortrait = _$("dvPortrait");
		if(dvPortrait) dvPortrait.style.display = "";
		if(dvPortrait){
			dvPortrait.style.display = "";
			if(!gIsIE){
				addPortrait(e);
			}
		}
		break;
		case "imgAlign":
		var divAlign = _$("divAlign");
		if(divAlign)divAlign.style.display = "";
		break;
		case "imgList":
		var divList = _$("divList");
		if(divList)divList.style.display = "";
		break;
	}
}
function format(type, para){
	var f = window.frames["HtmlEditor"];
	var sAlert = "";
	if(!gIsIE){
		switch(type){
			case "Cut":
			sAlert = "你的浏览器安全设置不允许编辑器自动执行剪切操作,请使用键盘快捷键(Ctrl+X)来完成";
			break;
			case "Copy":
			sAlert = "你的浏览器安全设置不允许编辑器自动执行拷贝操作,请使用键盘快捷键(Ctrl+C)来完成";
			break;
			case "Paste":
			sAlert = "你的浏览器安全设置不允许编辑器自动执行粘贴操作,请使用键盘快捷键(Ctrl+V)来完成";
			break;
		}
	}
	if(sAlert != ""){
		alert(sAlert);
		return;
	}
	f.focus();
	if(!para){
		//alert(gIsIE);
		//if(gIsIE){
		//f.document.execCommand(type)
		//}else{
		f.document.execCommand(type,false,false)
		//}
	}else{
		f.document.execCommand(type,false,para)
	}
	f.focus();
}
function fHideMenu(){
	var fontface = _$("fontface");
	var fontsize = _$("fontsize");
	var dvForeColor =_$("dvForeColor");
	var dvPortrait =_$("dvPortrait");
	var divAlign =_$("divAlign");
	var divList =_$("divList");
	if(dvForeColor) dvForeColor.style.display = "none";
	if(dvPortrait) dvPortrait.style.display = "none";
	if(fontface) fontface.style.display = "none";
	if(fontsize) fontsize.style.display = "none";
	if(divAlign) divAlign.style.display = "none";
	if(divList) divList.style.display = "none";
}
function foreColor(e) {//字体颜色
	if(gIsIE)
	gSetColorType = "foreColor";
	else
	gSetColorType = "foreColor";
	var sColor = fDisplayColorBoard(e,"foreColor");
	//format(gSetColorType, sColor);
}
function backColor(e){//背景颜色
	if(gIsIE)
	gSetColorType = "backcolor";
	else
	gSetColorType = "backcolor";
	var sColor = fDisplayColorBoard(e,"backcolor");
	// if(gIsIE) format(gSetColorType, sColor);
}
function fDisplayColorBoard(e,pos){//颜色选择
	if(gIsIE){
		var e = window.event;
	}
	if(gIEVer<=5.01 && gIsIE){

		var arr = showModalDialog("ColorSelect.htm", "", "font-family:Verdana; font-size:12; status:no; dialogWidth:21em; dialogHeight:21em");
		if (arr != null) return arr;
		return;
	}
	var elementInfo = getElementInfo(pos);
	var dvForeColor =_$("dvForeColor");
	fSetColor();
	//	var iX = e.clientX;
	//	var iY = e.clientY;
	dvForeColor.style.display = "";
	dvForeColor.style.left = elementInfo["x"] + "px";
	dvForeColor.style.top = elementInfo["y"] + elementInfo["height"] + "px";
	return true;
}
function createLink() {
	var sURL=window.prompt("Enter link location (e.g. http://www.abc.com/):", "http://");
	if ((sURL!=null) && (sURL!="http://")){
		format("CreateLink", sURL);
	}
}
function createImg()	{
	var sPhoto=prompt("请输入图片位置:", "http://");
	if ((sPhoto!=null) && (sPhoto!="http://")){
		format("InsertImage", sPhoto);
	}
}

function fCheckIfColorBoard(obj){//调色板
	if(obj.parentNode){
		if(obj.parentNode.id == "dvForeColor") return true;
		else return fCheckIfColorBoard(obj.parentNode);
	}else{
		return false;
	}
}
function fCheckIfPortraitBoard(obj){//字体及样式面板
	if(obj.parentNode){
		if(obj.parentNode.id == "dvPortrait") return true;
		else return fCheckIfPortraitBoard(obj.parentNode);
	}else{
		return false;
	}
}
function fCheckIfFontFace(obj){//字体
	if(obj.parentNode){
		if(obj.parentNode.id == "fontface") return true;
		else return fCheckIfFontFace(obj.parentNode);
	}else{
		return false;
	}
}
function fCheckIfFontSize(obj){//字号
	if(obj.parentNode){
		if(obj.parentNode.id == "fontsize") return true;
		else return fCheckIfFontSize(obj.parentNode);
	}else{
		return false;
	}
}
function fImgOver(el){//面板鼠标经过样式
	if(el.tagName == "IMG"){
		el.style.borderRight="1px #cccccc solid";
		el.style.borderBottom="1px #cccccc solid";
	}
}
function fImgMoveOut(el){//面板鼠标离开样式
	if(el.tagName == "IMG"){
		el.style.borderRight="1px #F3F8FC solid";
		el.style.borderBottom="1px #F3F8FC solid";
	}
}
String.prototype.trim = function(){//过滤字符串
	return this.replace(/(^\s*)|(\s*$)/g, "");
}

function _$(id){
	return document.getElementById(id);
}
window.onerror = function(){//错误处理函数
	return true;
}

function addPortrait(e){
	if(gIEVer<=5.01 && gIsIE || 1==1){
		// var imgurl = showModalDialog("portraitSelect.htm","", "font-family:Verdana; font-size:12; status:no; unadorned:yes; scroll:no; resizable:yes;dialogWidth:358px; dialogHeight:232px");
		// if (imgurl != null)	format("InsertImage", imgurl);
		var elementInfo = getElementInfo("dvPortrait");

		var dvPortrait =_$("dvPortrait");
		if(dvPortrait){
			dvPortrait.parentNode.removeChild(dvPortrait);
		}
		var div = document.createElement("DIV");
		div.style.position = "absolute";
		div.style.zIndex = "9";
		div.id = "dvPortrait";
		//		var iX = e.clientX;
		div.style.left = elementInfo["x"] + "px";
		div.style.top = elementInfo["y"] + elementInfo["height"] + "px";
		//		div.style.top = 50 + "px";
		//		div.style.left = iX + "px";
		div.innerHTML = '<iframe border=0 marginWidth=0 marginHeight=0 frameBorder=no style="width:294;height:62px" src="/common/include/portraitSelect.htm">';
		document.body.appendChild(div);
		var dvPortrait = _$("dvPortrait");
		dvPortrait.style.display = "";
		return;
	}
	var dvPortrait =_$("dvPortrait");
	var tbPortrait = _$("tbPortrait");
	var iX = e.clientX;
	var iY = e.clientY;
	dvPortrait.style.display = "";
	if(window.screen.width == 1024){
		dvPortrait.style.left = (iX-380) + "px";
	}else{
		if(gIsIE)
		dvPortrait.style.left = (iX-380) + "px";
		else
		dvPortrait.style.left = (iX-380) + "px";
	}
	dvPortrait.style.top = 35 + "px";
	dvPortrait.innerHTML = '<table width="100%" border="0" cellpadding="5" cellspacing="1" style="cursor:hand" bgcolor="black" ID="tbPortrait"><tr align="left" bgcolor="#f8f8f8" class="unnamed1" align="center" ID="trContent">'+ drawPortrats() +'</tr>	</table>';
}

//MyZ 2008-11-03

var submitForm = ""; //提交的表单
var writingboxElementName = ""; //编辑器
var cleanContent = 0; //

//得到编辑器的父表单
function getParentForm() {
	return submitForm;
}

//编辑器内容区点击事件
function editorBodyClick() {
	if (cleanContent == 1) {
		cleanContent += 1;
	}
	fHideMenu();
}

//编辑器粘贴
function editorBodyOnPaste(e) {
	var f = window.frames["HtmlEditor"];
	var body = f.document.getElementsByTagName("body")[0];
	oDiv = document.createElement( 'DIV' ) ;
	oDiv.id = 'cywebeditor_temp_html_create' ;
	var oDivStyle = oDiv.style ;
	oDivStyle.position		= 'absolute' ;
	oDivStyle.visibility	= oDivStyle.overflow	= 'hidden' ;
	oDivStyle.width			= oDivStyle.height		= 1 ;
	document.body.appendChild( oDiv ) ;

	body.detachEvent('onpaste',function(e){editorBodyOnPaste(e)});

	oDiv.innerHTML = "" ;
	if(document.createRange) {
		var oTextRange = document.createRange();
	} else {
		var oTextRange = document.body.createTextRange();
	}
	oTextRange.moveToElementText(oDiv);

	//	window.clipboardData.setData("Text", window.clipboardData.getData("Text"));
	oTextRange.execCommand("Paste");
	var copyHtml = oDiv.innerHTML;//粘贴出来的内容.
	copyHtml = contentFilter(copyHtml);//清理代码.
	insertFocusToEditor();
	f.document.selection.createRange().pasteHTML(copyHtml);

	//body.attachEvent('onpaste',function(e){editorBodyOnPaste(e)});

	e.returnValue = false ;
	e.cancelBubble = true ;
}

//编辑器拖拽
function editorBodyOnDrop(e) {
	var f = window.frames["HtmlEditor"];
	var body = f.document.getElementsByTagName("body")[0];
	var copyHtml = textToHtml(e.dataTransfer.getData('Text'));
	insertFocusToEditor();
	f.document.selection.createRange().pasteHTML(copyHtml);
	e.returnValue = false ;
	e.cancelBubble = true ;
}

//FF下的编辑器粘贴
function editorBodyOnPasteFireFox(e) {
	//	var f = window.frames["HtmlEditor"];
	//	var body = f.document.getElementsByTagName("body")[0];
	//alert(e.dataTransfer.getData('Text'));
	//src = "<img src='http://img7.cy-inc.com.cn/images/pageheader/20080305/logo_07.gif' />";
	//format("insertHTML", src);//e.dataTransfer.getData('Text')
	e.preventDefault();
	e.stopPropagation();
}

//FF下的编辑器拖拽
function editorBodyOnDropFireFox(e) {
	var f = window.frames["HtmlEditor"];
	var body = f.document.getElementsByTagName("body")[0];
	//alert(e.dataTransfer.getData('Text'));
	//src = "<img src='http://img7.cy-inc.com.cn/images/pageheader/20080305/logo_01.gif' />";
	//format("insertHTML", src);//e.dataTransfer.getData('Text');
	e.preventDefault();
	e.stopPropagation();
}

//编辑器键盘事件
function editorBodyOnKeyDown(e) {
	//	if (f.event.ctrlKey&&f.event.keyCode==10) { //ctrl+enter
	//		synchContent();
	//	}
	//	if(e.ctrlKey&&(e.keyCode==86||e.keyCode==118)){
	//		alert(1);
	//		if (document.all) {
	//			pasteContent();
	//			e.returnValue = false ;
	//			e.cancelBubble = true ;
	//		}
	//	}
}

//iframe同步到textarea,并提交
function synchContent() {
	writingboxElementName.value = getEditContent();
	writingboxElementName.value = contentSubmitFilter(writingboxElementName.value);
	submitForm._submit();
}

//textarea的默认值同步到iframe
function synchContentBack() {
	var f = window.frames["HtmlEditor"];
	var body = f.document.getElementsByTagName("body")[0];
	body.innerHTML = writingboxElementName.value;
	if (document.all) { //IE
		body.attachEvent('onclick',editorBodyClick);
		body.attachEvent('onpaste',function(e){editorBodyOnPaste(e)});
		body.attachEvent('ondrop',function(e){editorBodyOnDrop(e)});
		//body.attachEvent('onkeydown',function(e){editorBodyOnKeyDown(e)});
	}
	else { //FF
		f.document.addEventListener('click',editorBodyClick, false);
		f.document.addEventListener('paste',function(event){editorBodyOnPasteFireFox(event)},false);
		f.document.addEventListener('dragdrop',function(event){editorBodyOnDropFireFox(event)}, true);
		//f.document.addEventListener('keydown',function(event){editorBodyOnKeyDown(event)}, true);
	}
}

//提供一个可以得到正在编辑的内容的接口
function getEditContent() {
	var f = window.frames["HtmlEditor"];
	var body = f.document.getElementsByTagName("body")[0];
	var bodyContent = body.innerHTML.replace(/<img([^>]*?)>/gim,"[img$1]");
	bodyContent = bodyContent.replace(/<\/?[^>]*?>/gim,"");
	bodyContent = bodyContent.replace(/\[img([^\]]*?)\]/gim,"<img$1>");
	bodyContent = trim(bodyContent);
	if (bodyContent == " " || bodyContent == "&nbsp;" || bodyContent == "") {
		return "";
	}
	else {
		return body.innerHTML;
	}
}

//提供一个可以清空编辑内容的接口
function cleanEditContent() {
	if (cleanContent == 1) {
		cleanContent += 1;
	}
	var f = window.frames["HtmlEditor"];
	var body = f.document.getElementsByTagName("body")[0];
	body.innerHTML = "";
	insertFocusToEditor();
	return true;
}

//提供一个可以插入图片的接口
function insertImageToEditor(src) {
	var f = window.frames["HtmlEditor"];
	var body = f.document.getElementsByTagName("body")[0];
	insertFocusToEditor();
	if (document.all) {
		f.document.selection.createRange().pasteHTML(src);
	}
	else {
		format("insertHTML", src);
	}
	return true;
}

//提供一个可以将焦点插入到编辑器的接口
function insertFocusToEditor() {
	var f = window.frames["HtmlEditor"];
	var body = f.document.getElementsByTagName("body")[0];
	if (document.all) {
		body.focus();
	}
	else {
		f.focus();
	}
	return true;
}

//过滤
function contentFilter(str) {
	var MajorVer = navigator.appVersion.match(/MSIE (.)/)[1] ;
	var MinorVer = navigator.appVersion.match(/MSIE .\.(.)/)[1] ;
	var IsIE55OrMore = MajorVer >= 6 || ( MajorVer >= 5 && MinorVer >= 5 ) ;
	if (IsIE55OrMore) {
		var re = /<\w[^>]* class="?MsoNormal"?/gi ;
		if ( re.test(str)){
			alert( "您粘贴的内容好象是从Word中拷出来的，我们将清除Word格式." );
			str = cleanWord(str) ;
		}
	}

	str = str.replace(/<script[^>]*?>(.|\n)*?<\/script[^>]*?>/gim,"");  //script
	str = str.replace(/<(i?frame|frameset)[^>]*?>(.|\n)*?<\/i?frame[^>]*?>/gim,""); //框架
	str = str.replace(/<object[^>]*?>(.|\n)*?<\/object[^>]*?>/gim,""); //对象
	str = str.replace(/<\/?(!DOCTYPE|html|head|meta|link|title|body|style|form|object|frame|iframe|frameset|script)[^>]*?>/gim,""); //非法html标签
	str = str.replace(/(<[%|\?])|([%|\?]>)/gim,""); //服务器标签
	//		str = str.replace(/(<[^>]*?)(on[^=]*?)=/gim,"$1"); //标签中的onxxx事件
	str = str.replace(/\s{1}on[^=]*=[^>]+/gim, ""); //标签中的onxxx事件
	//		str = str.replace(/<(.*?)=(.*?)(javascript|vbscript):/gim,"$1=$2"); //标签中直接写的javascript
	str = str.replace(/<(.*)=(.*)(javascript|vbscript):[^>]+/gim,"<$1=\"$2"); //标签中直接写的javascript


	//	str = str.replace(/<(div|p|span|(h[1-9])|li|td)[^>]*?>/gim, "[p]");
	//	str = str.replace(/<\/(div|p|span|h[1-9]|li|td)[^>]*?>/gim, "[/p]");
	//		str = str.replace(/<\/(div|p|span|h[1-9]|li|td)[^>]*?>/gim, "[br/]");
	//		str = str.replace(/(\r\n)|(\n)|(\r)|(<br>)|(<br \/>)|(<br\/>)/gim, "[br/]");
	//		str = str.replace(/<[^>]*?>/gim, "");
	//	str = str.replace(/\[(\/?p)\]/gim, "<$1>");
	//		str = str.replace(/\[br\/\]/gim, "<br/>");

	return str;
}

// 清除Word格式
function cleanWord(str) {
	var html = str ;
	html = html.replace(/<o:p>\s*<\/o:p>/g, '') ;
	html = html.replace(/<o:p>[\s\S]*?<\/o:p>/g, '&nbsp;') ;

	// Remove mso-xxx styles.
	html = html.replace( /\s*mso-[^:]+:[^;"]+;?/gi, '' ) ;

	// Remove margin styles.
	html = html.replace( /\s*MARGIN: 0cm 0cm 0pt\s*;/gi, '' ) ;
	html = html.replace( /\s*MARGIN: 0cm 0cm 0pt\s*"/gi, "\"" ) ;

	html = html.replace( /\s*TEXT-INDENT: 0cm\s*;/gi, '' ) ;
	html = html.replace( /\s*TEXT-INDENT: 0cm\s*"/gi, "\"" ) ;

	html = html.replace( /\s*TEXT-ALIGN: [^\s;]+;?"/gi, "\"" ) ;

	html = html.replace( /\s*PAGE-BREAK-BEFORE: [^\s;]+;?"/gi, "\"" ) ;

	html = html.replace( /\s*FONT-VARIANT: [^\s;]+;?"/gi, "\"" ) ;

	html = html.replace( /\s*tab-stops:[^;"]*;?/gi, '' ) ;
	html = html.replace( /\s*tab-stops:[^"]*/gi, '' ) ;

	// Remove FONT face attributes.
	html = html.replace( /\s*face="[^"]*"/gi, '' ) ;
	html = html.replace( /\s*face=[^ >]*/gi, '' ) ;

	html = html.replace( /\s*FONT-FAMILY:[^;"]*;?/gi, '' ) ;

	// Remove Class attributes
	html = html.replace(/<(\w[^>]*) class="([^\"]*)"([^>]*)/gi, "<$1$3") ;

	// Remove styles.
	html = html.replace( /<(\w[^>]*) style="([^\"]*)"([^>]*)/gi, "<$1$3" ) ;

	// Remove style, meta and link tags
	html = html.replace( /<STYLE[^>]*>[\s\S]*?<\/STYLE[^>]*>/gi, '' ) ;
	html = html.replace( /<(?:META|LINK)[^>]*>\s*/gi, '' ) ;

	// Remove empty styles.
	html =  html.replace( /\s*style="\s*"/gi, '' ) ;

	html = html.replace( /<SPAN\s*[^>]*>\s*&nbsp;\s*<\/SPAN>/gi, '&nbsp;' ) ;

	html = html.replace( /<SPAN\s*[^>]*><\/SPAN>/gi, '' ) ;

	// Remove Lang attributes
	html = html.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3") ;

	html = html.replace( /<SPAN\s*>([\s\S]*?)<\/SPAN>/gi, '$1' ) ;

	html = html.replace( /<FONT\s*>([\s\S]*?)<\/FONT>/gi, '$1' ) ;

	// Remove XML elements and declarations
	html = html.replace(/<\\?\?xml[^>]*>/gi, '' ) ;

	// Remove w: tags with contents.
	html = html.replace( /<w:[^>]*>[\s\S]*?<\/w:[^>]*>/gi, '' ) ;

	// Remove Tags with XML namespace declarations: <o:p><\/o:p>
	html = html.replace(/<\/?\w+:[^>]*>/gi, '' ) ;

	// Remove comments [SF BUG-1481861].
	html = html.replace(/<\!--[\s\S]*?-->/g, '' ) ;

	html = html.replace( /<(U|I|STRIKE)>&nbsp;<\/\1>/g, '&nbsp;' ) ;

	html = html.replace( /<H\d>\s*<\/H\d>/gi, '' ) ;

	// Remove "display:none" tags.
	html = html.replace( /<(\w+)[^>]*\sstyle="[^"]*DISPLAY\s?:\s?none[\s\S]*?<\/\1>/ig, '' ) ;

	// Remove language tags
	html = html.replace( /<(\w[^>]*) language=([^ |>]*)([^>]*)/gi, "<$1$3") ;

	// Remove onmouseover and onmouseout events (from MS Word comments effect)
	html = html.replace( /<(\w[^>]*) onmouseover="([^\"]*)"([^>]*)/gi, "<$1$3") ;
	html = html.replace( /<(\w[^>]*) onmouseout="([^\"]*)"([^>]*)/gi, "<$1$3") ;

	// The original <Hn> tag send from Word is something like this: <Hn style="margin-top:0px;margin-bottom:0px">
	html = html.replace( /<H(\d)([^>]*)>/gi, '<h$1>' ) ;

	// Word likes to insert extra <font> tags, when using MSIE. (Wierd).
	html = html.replace( /<(H\d)><FONT[^>]*>([\s\S]*?)<\/FONT><\/\1>/gi, '<$1>$2<\/$1>' );
	html = html.replace( /<(H\d)><EM>([\s\S]*?)<\/EM><\/\1>/gi, '<$1>$2<\/$1>' );


	return html ;
}

//HTML转成纯文本
function htmlToText(str) {
	str = str.replace(/(<br>)|(<br \/>)|(<br\/>|(<\/p>)|(<\/div>)|(<\/li>)|(<\/tr>))/gim, "[br/]");
	str = str.replace(/<[^>]*?>/gim, "");
	str = str.replace(/\[br\/\]/gim, "</p><p>");
	str = "<p>" + str + "</p>";
	str = str.replace(/(<p><\/p>)/gim,"<p>&nbsp;</p>");
	return str;
}

//纯文本转成HTML
function textToHtml(str) {
	str = str.replace(/(\r\n)|(\n)|(\r)/gim, "</p><p>");
	str = "<p>" + str + "</p>";
	str = str.replace(/(<p><\/p>)/gim,"<p>&nbsp;</p>");
	return str;
}

//提交时的过滤
function contentSubmitFilter(str) {
	//外部链接
	str = str.replace(/(<a[^>]*?)>/gim, "$1 target=\"_blank\">");
	return str;
}
