function EditorEvent() {

}

function GetWysiwygSource(form,isNull) {
	var object = document.forms[form];
	var eCodes = new Array();
	var eCodesNum = 0;
	for (var i=0, formLength=object.length;i<formLength;i++) {
		if (object[i].name=="wysiwygObject[]") {
			eCodes[eCodesNum] = object[i];
			eCodesNum++;
		}
	}

	var eCodesLength = eCodes.length;
	var isWysiwyg = false;
	var isSuccess = true;

	var eCode;
	var formTag;
	var viewMode;
	var Editor;
	var EditorInner;

	for (var i=0;i<eCodesLength;i++) {
		eCode = eCodes[i].value;

		if (eCode) {
			isWysiwyg = true;
			formTag = document.getElementById(eCode+"FormTag").value;
			viewMode = document.getElementById(eCode+"ViewCode").value;
			Editor = document.getElementById(eCode).contentWindow;
			EditorInner = document.getElementById(eCode).contentWindow.document.body;

			if (viewMode=="editor") {
				object[formTag].value = EditorInner.innerHTML;
			}

			if (isNull!=1) {
				if (!object[formTag].value || object[formTag].value=="<br>" || object[formTag].value=="<P>&nbsp;</P>") {
					isSuccess = false;
					alert(LANG["InsertContent"]);
					if (viewMode!="editor") {
						visualEditor("viewmode",eCode);
					} else {
						Editor.focus();
					}

					return isSuccess;
				}
			}
		}
	}

	if (isWysiwyg==false) {
		isSuccess = false;
		alert(LANG["NotFoundWysiwygEditor"]);

		return isSuccess;
	}

	return isSuccess;
}

function ChangeWyiswygEditor(eCode) {
	var langType = document.getElementById(eCode+"LangType").value;
	var object = document.getElementById(eCode).contentWindow.document;
	var style = document.getElementById(eCode+"Style").value;

	var form = document.getElementById(eCode+"Form").value;
	var formTag = document.getElementById(eCode+"FormTag").value;

	DocInnerStyle = '<html>';
	DocInnerStyle+= '<head>';
	DocInnerStyle+= '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
	DocInnerStyle+= '<link rel="stylesheet" href="'+ENV["dir"]+'/common/wysiwyg/style/'+style+'.css" type="text/css" title="style" />';
	if (langType=="ko") {
		DocInnerStyle+= '<style>BODY, P, TABLE, TR, TD, DIV {font-family:굴림; font-size:12px;}</style>';
	} else {
		DocInnerStyle+= '<style>BODY, P, TABLE, TR, TD, DIV {font-family:Arial; font-size:12px;}</style>';
	}
	DocInnerStyle+= '</head>';

	DocInnerStyle+= '<body>';

	try {
		object.open();
		object.write(DocInnerStyle+""+"</body></html>");
		object.close();
		DocInnerStyle = null;
	} catch (e) {}
}

function WysiwygDesignMode(eCode) {
	var form = document.getElementById(eCode+"Form").value;
	var formTag = document.getElementById(eCode+"FormTag").value;

	if (ENV["browser"]=="IE") {
		document.getElementById(eCode).contentWindow.document.body.contentEditable = true;
	} else {
		document.getElementById(eCode).contentWindow.document.designMode = "on";
	}
	document.getElementById(eCode).contentWindow.document.body.innerHTML = document.forms[form][formTag].value;
}

function visualEditor(sTag,eCode) {
	var form = document.getElementById(eCode+"Form").value;
	var formTag = document.getElementById(eCode+"FormTag").value;

	var object = document.forms[form];
	var viewMode = document.getElementById(eCode+"ViewCode").value;

	var Editor = document.getElementById(eCode).contentWindow;
	var EditorInner = document.getElementById(eCode).contentWindow.document.body;

	switch(sTag) {
		case "viewmode":
			if (viewMode=="editor") {
				document.getElementById(eCode+"EditButton").style.display = "none";
				document.getElementById(eCode+"LayerEditor").style.display = "none";
				document.getElementById(eCode+"LayerViewer").style.display = "";
				document.getElementById(eCode+"ViewCode").value = "tags";
				object[formTag].value = EditorInner.innerHTML;
				object[formTag].focus();
			} else {
				document.getElementById(eCode+"EditButton").style.display = "";
				document.getElementById(eCode+"LayerEditor").style.display = "";
				document.getElementById(eCode+"LayerViewer").style.display = "none";
				document.getElementById(eCode+"ViewCode").value = "editor";
				EditorInner.innerHTML = object[formTag].value;
				Editor.focus();
			}
		break;

		case "bold":
			Editor.document.execCommand("Bold",false,null);
			Editor.focus();
		break;

		case "italic":
			Editor.document.execCommand("Italic",false,null);
			Editor.focus();
		break;

		case "underline":
			Editor.document.execCommand("Underline",false,null);
			Editor.focus();
		break;

		case "strike":
			Editor.document.execCommand("StrikeThrough",false,null);
			Editor.focus();
		break;

		case "left":
			Editor.document.execCommand("JustifyLeft",false,null);
			Editor.focus();
		break;

		case "center":
			Editor.document.execCommand("JustifyCenter",false,null);
			Editor.focus();
		break;

		case "right":
			Editor.document.execCommand("JustifyRight",false,null);
			Editor.focus();
		break;


		case "createLink":
			var selectVar = Math.random();
			var createLinkURL = ENV["dir"]+"/CreateLink.wysiwyg?editor="+eCode+"&selectVar="+selectVar;
			DoOpenWindow(createLinkURL,"540","450","0");
		break;

		case "fontcolor":
			var panel = document.getElementById(eCode+"FontColorPanel");
			var layer = document.getElementById(eCode+"FontColorLayer");

			if (layer.style.display=="none") {
				layer.innerHTML = panel.innerHTML;
				panel.innerHTML = "";
				layer.style.display = "";
			} else {
				panel.innerHTML = layer.innerHTML;
				layer.innerHTML = "";
				layer.style.display = "none";
			}

			var panel = document.getElementById(eCode+"BgColorPanel");
			var layer = document.getElementById(eCode+"BgColorLayer");

			if (layer.style.display=="") {
				panel.innerHTML = layer.innerHTML;
				layer.innerHTML = "";
				layer.style.display = "none";
			}
		break;

		case "bgcolor":
			if (ENV["browser"]!="IE") {
				alert(LANG["ThisFunctionOnlyIE"]);
				Editor.focus();
			} else {
				var panel = document.getElementById(eCode+"BgColorPanel");
				var layer = document.getElementById(eCode+"BgColorLayer");

				if (layer.style.display=="none") {
					layer.innerHTML = panel.innerHTML;
					panel.innerHTML = "";
					layer.style.display = "";
				} else {
					panel.innerHTML = layer.innerHTML;
					layer.innerHTML = "";
					layer.style.display = "none";
				}

				var panel = document.getElementById(eCode+"FontColorPanel");
				var layer = document.getElementById(eCode+"FontColorLayer");

				if (layer.style.display=="") {
					panel.innerHTML = layer.innerHTML;
					layer.innerHTML = "";
					layer.style.display = "none";
				}
			}
		break;
	}
}

function visualColor(sTag,sColor,eCode) {
	var Editor = document.getElementById(eCode).contentWindow;
	sColor = "#"+sColor;

	switch(sTag) {
		case "fontcolor":
			var panel = document.getElementById(eCode+"FontColorPanel");
			var layer = document.getElementById(eCode+"FontColorLayer");

			Editor.document.execCommand("ForeColor",false,sColor);

			panel.innerHTML = layer.innerHTML;
			layer.innerHTML = "";
			layer.style.display = "none";

			Editor.focus();
		break;

		case "bgcolor":
			var panel = document.getElementById(eCode+"BgColorPanel");
			var layer = document.getElementById(eCode+"BgColorLayer");

			Editor.document.execCommand("BackColor",false,sColor);

			panel.innerHTML = layer.innerHTML;
			layer.innerHTML = "";
			layer.style.display = "none";

			Editor.focus();
		break;
	}
}

// File Upload
function GetFileUploaderCode(eCode,fCode) {
	var form = document.getElementById(eCode+"Form").value;
	document.forms[form].fileUploadCode.value = fCode;
}

function GetFileBrowser(eCode) {
	var form = document.getElementById(eCode+"Form").value;
	var Uploader = document.getElementById(eCode+"UploadComponent");

	if (document.forms[form].fileUploadCode.value) {
		Uploader.SetVariable("fileBrowser","true");
	} else {
		alert(LANG["UnLoadUploadComponent"]);
		return false;
	}
}

function ToggleFileUploadButton(eCode,type) {
	if (document.getElementById(eCode+"BrowserButton")!=null && document.getElementById(eCode+"BrowserButton")!=undefined) {
		if (type=="hidden") {
			document.getElementById(eCode+"BrowserButton").style.display = "none";
		} else {
			document.getElementById(eCode+"BrowserButton").style.display = "";
		}
	}
}

function GetFileUploadList(eCode) {
	ToggleLoadingBox("show",160,40,LANG["LoadingUploadFileList"]);

	var form = document.getElementById(eCode+"Form").value;
	var mode = document.getElementById(eCode+"FileMode").value;
	var code = document.forms[form].fileUploadCode.value;
	var id = 0;

	if (mode=="board") {
		if (document.forms[form]["exec"].value=="modifyPost") {
			id = document.forms[form]["bid"].value;
		}
	} else if (mode=="blopy") {
		if (document.forms[form]["exec"].value=="modifyPost") {
			id = document.forms[form]["id"].value;
		}
	} else if (mode=="inqQ") {
		id = document.forms[form]["iid"].value;
	} else if (mode=="knowhow") {
		id = document.forms[form]["kid"].value;
	}

	var InnerFunctionValue = new Array();
	InnerFunctionValue[0] = eCode;
	var FileXML = GetHttpRequestXML(ENV["dir"]+"/fileUploadList.xml","mode="+mode+"&id="+id+"&code="+code,"GetFileUploadListInner",InnerFunctionValue);
}

function GetFileUploadListInner(eCode,XML) {
	if (XML) {
		var root = XML.documentElement;
		var fileNo = new Array();
		var fileName = new Array();
		var fileSize = new Array();

		if (root.childNodes.length>0) {
			for (var i=0, xmlTotal=root.childNodes.length;i<xmlTotal;i++) {
				fileNo[i] = root.childNodes.item(i).getAttribute("fileno");
				fileName[i] = root.childNodes.item(i).getAttribute("filename")+" ("+root.childNodes.item(i).getAttribute("filesize")+")";
			}

			InsertSelectBox(eCode+"UploadList",fileName,fileNo,1);
		}
	}
	ToggleLoadingBox("hidden","","","");
	ToggleFileUploadButton(eCode,"show");
}

function GetFileUploadInfor(eCode) {
	var selected = GetSelectBox("selected",eCode+"UploadList");

	if (!selected) return false;

	document.getElementById(eCode+"FileSelector").value = selected;
	selected = selected.split(",");

	if (selected.length==1) {
		var no = selected[0];
		var form = document.getElementById(eCode+"Form").value;
		var mode = document.getElementById(eCode+"FileMode").value;
		var id = 0;

		if (mode=="board") {
			if (document.forms[form]["exec"].value=="modifyPost") {
				id = document.forms[form]["bid"].value;
			} else {
				id = '';
			}
		} else if (mode=="blopy") {
			if (document.forms[form]["exec"].value=="modifyPost") {
				id = document.forms[form]["id"].value;
			}
		} else if (mode=="inqQ") {
			id = document.forms[form]["iid"].value;
		} else if (mode=="knowhow") {
			id = document.forms[form]["kid"].value;
		}
		ToggleLoadingBox("show",100,40,LANG["LoadingUploadFileInfor"]);

		document.getElementById(eCode+"FilePath").value = "";
		document.getElementById(eCode+"FileType").value = "";

		document.getElementById(eCode+"InsertGallery").className = "opacity70";

		var InnerFunctionValue = new Array();
		InnerFunctionValue[0] = eCode;
		var FileXML = GetHttpRequestXML(ENV["dir"]+"/fileUploadList.xml","mode="+mode+"&id="+id+"&no="+no,"GetFileUploadInforInner",InnerFunctionValue);
	} else {
		ToggleLoadingBox("hidden","","","");
		document.images[eCode+"PreviewImage"].src = ENV["dir"]+"/common/wysiwyg/images/t.gif";
		document.images[eCode+"PreviewImage"].className = "width100 height100";

		document.getElementById(eCode+"FilePath").value = "";
		document.getElementById(eCode+"FileType").value = "";

		if (document.getElementById(eCode+"InsertFile").value=="0") {
			document.getElementById(eCode+"InsertLeft").className = "opacity70";
			document.getElementById(eCode+"InsertCenter").className = "opacity70";
			document.getElementById(eCode+"InsertRight").className = "opacity70";
			document.getElementById(eCode+"InsertMovie").className = "opacity70";
			document.getElementById(eCode+"InsertSound").className = "opacity70";
			document.getElementById(eCode+"InsertGallery").className = "opacity70";
		} else {
			document.getElementById(eCode+"InsertLeft").className = "opacity70";
			document.getElementById(eCode+"InsertCenter").className = "opacity70";
			document.getElementById(eCode+"InsertRight").className = "opacity70";
			document.getElementById(eCode+"InsertMovie").className = "opacity70";
			document.getElementById(eCode+"InsertSound").className = "opacity70";
			document.getElementById(eCode+"InsertGallery").className = "opacity10";
		}
	}
}

function GetFileUploadInforInner(eCode,XML) {
	if (XML) {
		var root = XML.documentElement;
		var filetype = root.childNodes.item(0).getAttribute("filetype");
		var filepath = root.childNodes.item(0).getAttribute("filepath");
		var isPreview = false;

		var temp = filepath.split("/");
		if (temp.length==1) {
			filepath = "/temp/"+filepath;
		}
		filepath = ENV["dir"]+"/userfile"+filepath;

		document.getElementById(eCode+"InsertLeft").className = "opacity70";
		document.getElementById(eCode+"InsertCenter").className = "opacity70";
		document.getElementById(eCode+"InsertRight").className = "opacity70";
		document.getElementById(eCode+"InsertMovie").className = "opacity70";
		document.getElementById(eCode+"InsertGallery").className = "opacity70";
		document.getElementById(eCode+"InsertSound").className = "opacity70";

		document.images[eCode+"PreviewImage"].src = ENV["dir"]+"/common/wysiwyg/images/t.gif";
		document.images[eCode+"PreviewImage"].className = "width100 height100";

		switch (filetype) {
			case "img" :
				isPreview = true;
				var previewImage = new Image();
				previewImage.src = filepath;

				if (document.getElementById(eCode+"InsertFile").value=="1") {
					document.getElementById(eCode+"InsertLeft").className = "opacity10";
					document.getElementById(eCode+"InsertCenter").className = "opacity10";
					document.getElementById(eCode+"InsertRight").className = "opacity10";
				}
				document.images[eCode+"PreviewImage"].src = previewImage.src;
				document.images[eCode+"PreviewImage"].className = "width100 height100";
			break;

			case "movie" :
				document.getElementById(eCode+"InsertMovie").className = "opacity10";
			break;
		}

		document.getElementById(eCode+"FilePath").value = filepath;
		document.getElementById(eCode+"FileType").value = filetype;

		if (isPreview==true) {
			document.getElementById(eCode+"PreviewArea").className = "width100";
		} else {
			document.getElementById(eCode+"PreviewArea").className = "width100";
		}
	}

	ToggleLoadingBox("hidden","","","");
}

function InsertUploadFile(eCode,type) {
	if (document.getElementById(eCode+"InsertFile").value=="0") {
		alert(LANG["NotSupportInsertFileInContent"]);
	} else {
		var selectedFile = document.getElementById(eCode+"FileSelector").value.split(",");
		var tags = null;
		var EditorInner = document.getElementById(eCode).contentWindow.document.body;

		if (!document.getElementById(eCode+"FileSelector").value) {
			alert(LANG["SelectInsertFile"]);
			return false;
		}

		if (selectedFile.length==1) {
			var filePath = document.getElementById(eCode+"FilePath").value;
			var fileType = document.getElementById(eCode+"FileType").value;
			var fileNo = document.getElementById(eCode+"FileSelector").value;
			var fileMode = document.getElementById(eCode+"FileMode").value;

			if (!filePath || !fileType) {
				alert(LANG["SelectInsertFile"]);
				return false;
			}

			if (type=="gallery") {
				alert(LANG["SelectInsertFileImages"]);
				return false;
			}

			switch (fileType) {
				case "img" :
					var tags = '<img src="'+filePath+'" style="margin:5px;" alt="UserInsertImage"';
					if (type=="left") {
						tags+= ' align="left" />';
					} else if (type=="right") {
						tags+= ' align="left" />';
					} else {
						tags = '<div class="center" style="padding:5px;">'+tags+' /></div>';
					}
				break;

				case "movie" :
					var tags = '<img component="movie" list="'+fileMode+','+fileNo+'" src="'+ENV["dir"]+'/common/wysiwyg/images/t.gif" style="border:2px dotted #799DD6; background:transparent url('+ENV["dir"]+'/common/wysiwyg/images/componentMovie.gif) no-repeat 50% center; width:400px; height:300px;" />';
				break;

				case "sound" :
					var tags = '<embed src="'+filePath+'" autoplay="false" />';
				break;

				default :
					alert(LANG["NotSupportInsertFile"]);
				break;
			}
		} else {
			if (type!="gallery") {
				alert(LANG["SelectInsertFileOnly"]);
			} else if (type=="gallery") {
				var form = document.getElementById(eCode+"Form").value;
				var mode = document.getElementById(eCode+"FileMode").value;
				var selected = GetSelectBox("selected",eCode+"UploadList");
				var id = "";

				if (mode=="board") {
					if (document.forms[form]["exec"].value=="modifyPost") {
						id = document.forms[form]["bid"].value;
					} else {
						id = "";
					}
				} else if (mode=="blopy") {
					if (document.forms[form]["exec"].value=="modifyPost") {
						id = document.forms[form]["id"].value;
					}
				} else if (mode=="inqQ") {
					id = document.forms[form]["iid"].value;
				}

				var code = document.forms[form]["fileUploadCode"].value;
				ToggleLoadingBox("show",100,40,LANG["LoadingUploadFileInfor"]);

				var InnerFunctionValue = new Array();
				InnerFunctionValue[0] = eCode;
				InnerFunctionValue[1] = type;
				var FileXML = GetHttpRequestXML(ENV["dir"]+"/fileUploadList.xml","mode="+mode+"&id="+id+"&code="+code+"&sel="+selected,"InsertUploadFileInner",InnerFunctionValue);
			}
		}

		if (tags!=null) {
			EditorInner.innerHTML+= tags;
		}
	}
}

function InsertUploadFileInner(eCode,type,XML) {
	var nowSelectedFile = document.getElementById(eCode+"FileSelector").value.split(",");
	var tags = null;
	var EditorInner = document.getElementById(eCode).contentWindow.document.body;
	var selectedFile = new Array();
	var selectedPoint = 0;

	if (XML) {
		var root = XML.documentElement;
		if (root.childNodes.length>0) {
			for (var i=0;i<root.childNodes.length;i++) {
				var temp = root.childNodes.item(i).getAttribute("filepath").split("/");
				if (temp.length==1) {
					var filepath = "/temp/"+root.childNodes.item(i).getAttribute("filepath");
				} else {
					filepath = root.childNodes.item(i).getAttribute("filepath");
				}
				if (type=="gallery") {
					if (root.childNodes.item(i).getAttribute("filetype")=="img") {
						var filepath = ENV["dir"]+"/userfile"+filepath;
						selectedFile[selectedPoint] = filepath;
						selectedPoint++;
					}
				}
			}
		}
	}

	if (selectedFile.length>0) {
		var fileLists = '';
		for (var i=0;i<selectedFile.length;i++) {
			fileLists+= i==0 ? selectedFile[i] : ","+selectedFile[i];
		}
	} else {
		if (type=="gallery") {
			alert(LANG["SelectInsertFileImages"]);
		} else {
			alert(LANG["SelectInsertFile"]);
		}
	}

	if (type=="gallery") {
		if (selectedFile.length<2) {
			alert(LANG["SelectInsertFileImages"]);
		} else {
			tags = '<img component="gallery" list="'+fileLists+'" src="'+ENV["dir"]+'/common/wysiwyg/images/t.gif" style="border:2px dotted #799DD6; background:transparent url('+ENV["dir"]+'/common/wysiwyg/images/componentGallery.gif) no-repeat 50% center; width:400px; height:300px;" />';
		}
	}

	if (tags!=null) {
		EditorInner.innerHTML+= tags;
	}

	ToggleLoadingBox("hidden","","","");

	if (nowSelectedFile.length>selectedFile.length) {
		alert(LANG["RemoveUnSupportFile"]);
	}
}
