
var wys_config={border:"1px solid #cdcdcd",bgcolor:"#ffffff",font:"normal 12px Arial",color:"#000000",margin:"5px",width:"100%",height:"350px",filepath:".",imgpath:"../jscript/wys_img",over_bordercolor:"#009933",over_bgcolor:"#78CD30",divbtn_bgcolor:"#ffffff",Btn:null,BtnList:{font:["Font face","font.gif"],size:["Font size","size.gif"],undo:["Undo","undo.gif"],redo:["Redo","redo.gif"],bold:["Bold","bold.gif"],italic:["Italic","italic.gif"],strike:["Strike","strike.gif"],underline:["Underline","underline.gif"],left:["Left","left.gif"],center:["Center","center.gif"],right:["Right","right.gif"],justify:["Justify","justify.gif"],clean:["Clean the style","clean.gif"],color:["Font color","color.gif"],hilite:["Background Color","hilite.gif"],link:["Link","link.gif"],unlink:["Unlink","unlink.gif"],ul1:["Ordered List","ul1.gif"],ul2:["Unordered list","ul2.gif"],outdent:["Outdent","outdent.gif"],indent:["Indent","indent.gif"],hr:["Horizon bar","hr.gif"],all:["Select all","selectall.gif"],save:["Save html","save.gif"],source:["View source","source.gif"],bar:["Bar","bar.gif"]},BtnTemplate:{all:["save","bar","all","undo","redo","bar","font","size","bar","color","hilite","bold","italic","underline","strike","bar","clean","bar","outdent","indent","bar","ul1","ul2","bar","left","center","right","justify","bar","hr","link","unlink","bar","image","bar","source"],simple:["font","size","bar","color","hilite","bar","bold","italic","underline","clean","bar","outdent","indent","bar","ul1","ul2","hr","bar","left","center","right","bar","image","source"]}}
function wys_editor(id)
{if(typeof(document.execCommand)=="undefined")return;wys_cmd.init();this.cfg=wys_config;this.cfg.preid=wys_config.name+"_"+id;this.cfg.Btn=wys_config.BtnTemplate["all"];this.mode="wysiwyg";this.btn="";this.sel=null;this.range=null;this.sel_html="";this._doc=null;this._textarea=document.getElementById(id);this._div=document.createElement("div");this._divbtn=document.createElement("div");this._iframe=document.createElement("iframe");this._text=document.createElement("textarea");this._div.id=this.cfg.preid+"_div";this._divbtn.id=this.cfg.preid+"_divbtn";this._iframe.id=this.cfg.preid+"_iframe";this._text.id=this.cfg.preid+"_text";}
wys_editor.prototype.init=function()
{this._textarea.style.display="none";this._text.style.width=this.cfg.width;this._text.style.height=this.cfg.height;this._text.style.border="none";this._text.style.display="none";this._text.style.font="12px Arial";this._text.style.background="#efefef url("+this.cfg.imgpath+"/source_bg.gif) 0 -2px";this._text.style.lineHeight="165%";this._iframe.style.width=this.cfg.width;this._iframe.style.height=this.cfg.height;this._iframe.frameBorder="no";this._div.style.border=this.cfg.border;this._div.style.width=this.cfg.width;this._divbtn.style.padding="2px";this._divbtn.style.backgroundColor=this.cfg.divbtn_bgcolor;this._divbtn.style.borderBottom=this.cfg.border;if(wys_cmd.isIE){this._divbtn.style.width=this.cfg.width;}
this._textarea.parentNode.insertBefore(this._div,this._textarea);this._div.appendChild(this._divbtn);this._div.appendChild(this._iframe);this._div.appendChild(this._text);this.setBtn();this._doc=this._iframe.contentWindow.document;this._doc.designMode="on";var css="body{margin:"+this.cfg.margin+";background-color:"+this.cfg.bgcolor+";}";css+=" body,table,td{font:"+this.cfg.font+";color:"+this.cfg.color+";}";this._iframe.css=css;this._doc.open();this._doc.write('<html><head><style type="text/css">'+css+'</style></head><body>'+this._textarea.value+'</body></html>');this._doc.close();var self=this;wys_cmd.addEvent(this._doc,"mousedown",wys_cmd.hideDiv);if(wys_cmd.isIE)
{wys_cmd.addEvent(this._doc,"keydown",function(e){var range=self._doc.selection.createRange();if(e.keyCode==13&&range.parentElement().tagName!="LI")
{e.cancelBubble=true;e.returnValue=false;range.pasteHTML("<br />");range.select();return false;}});}};wys_editor.prototype.setBtn=function()
{var arr=this.cfg.Btn;var len=arr.length;var str=order=tmp="";var btn=tag=null;var self=this;var bgcolor=this.cfg.divbtn_bgcolor;var over_bordercolor=this.cfg.over_bordercolor;var over_bgcolor=this.cfg.over_bgcolor;for(var i=0;i<len;i++)
{tmp="";order=wys_cmd.trim(arr[i]);btn=this.cfg.BtnList[order];if(order!="br"&&!btn)
{if(order!="")alert("Error! on ("+order+")");continue;}
if(order=="bar")
{tag=document.createElement("img");tag.src=this.cfg.imgpath+"/"+btn[1];tag.width=2;tag.height=21;tag.hspace=4;tag.align="absmiddle";this._divbtn.appendChild(tag);}
else if(order=="br")
{this._divbtn.appendChild(document.createElement("br"));}
else
{tag=document.createElement("img");tag.id=this.cfg.preid+"_btn_"+order;tag.src=this.cfg.imgpath+"/"+btn[1];tag.align="absmiddle";tag.alt=btn[0];tag.cmd=order;tag.style.cursor="pointer";tag.style.border="1px solid "+this.cfg.divbtn_bgcolor;tag.onclick=function(){self.cmd(this,this.cmd);};tag.onmouseover=function()
{this.style.border="1px solid "+over_bordercolor;this.style.backgroundColor=over_bgcolor;};tag.onmouseout=function()
{this.style.border="1px solid "+bgcolor;this.style.backgroundColor="";};this._divbtn.appendChild(tag);}}};wys_editor.prototype.cmd=function(btn,order,value)
{var self=(this)?this:wys_cmd._editor;var doc=self._doc;if(self.mode=="text"&&order!="source"){alert("Cancle the source view");return;}
self.focus();wys_cmd.hideDiv();self.btn=btn;try{var create_func=self.cfg.BtnList[order][2];}catch(e){}
if(typeof(create_func)=="function")order="create_order";switch(order)
{case"create_order":self.setSelection();wys_cmd._editor=self;wys_cmd.order=order;create_func(self);break;case"hyperlink":var link_text=(self.sel_html)?self.sel_html:wys_cmd._linktxt.value;var html="<a href='"+wys_cmd._linktxt.value+"' target='_blank'>"+link_text+"</a>";self.innerHTML(html);break;case"color":case"hilite":case"font":case"size":case"link":var div=null;if(order=="color"){order="forecolor";wys_cmd.tblSet_color();div=wys_cmd._colortbl;}
else if(order=="hilite"){order="hilitecolor";wys_cmd.tblSet_color();div=wys_cmd._colortbl;}
else if(order=="font"){order="fontname";wys_cmd.tblSet_font();div=wys_cmd._fonttbl;}
else if(order=="size"){order="fontsize";wys_cmd.tblSet_size();div=wys_cmd._sizetbl;}
else if(order=="link")
{order="hyperlink";wys_cmd.tblSet_link();div=wys_cmd._linktbl;wys_cmd._linktxt.value="http://";self.setSelection();}
wys_cmd._editor=self;wys_cmd.order=order;wys_cmd.showDiv(div);break;case"source":if(self.mode=="wysiwyg")
{self._text.value=self.getHtml();self._iframe.style.display="none";self._text.style.display="";btn.onmouseout=null;self.mode="text";}
else if(self.mode=="text")
{doc.body.innerHTML=self.getHtml();self._text.style.display="none";self._iframe.style.display="";bgcolor=self.cfg.divbtn_bgcolor;btn.onmouseout=function()
{this.style.border="1px solid "+bgcolor;this.style.backgroundColor="";};self.mode="wysiwyg";}
break;default:if(order=="strike")order="strikethrough";else if(order=="ul1")order="insertorderedlist";else if(order=="ul2")order="insertunorderedlist";else if(order=="hr")order="inserthorizontalrule";else if(order=="clean")order="removeformat";else if(order=="save")order="saveas";else if(order=="all")order="selectall";else if(order=="justify")order="justifyfull";else if(order=="center"||order=="left"||order=="right")order="justify"+order;else if(order=="hilitecolor"&&wys_cmd.isIE)order="backcolor";doc.execCommand(order,false,value);break;}};wys_editor.prototype.focus=function()
{if(this.mode=="text")this._text.focus();else this._iframe.contentWindow.focus();}
wys_editor.prototype.getHtml=function()
{var html="";var doc=this._doc;if(this.mode=="text")html=this._text.value;else
{for(i in doc.links){if(!doc.links[i].target)doc.links[i].target="_blank";}
html=doc.body.innerHTML;}
this._textarea.value=html;return html;}
wys_editor.prototype.setSelection=function()
{var _iframe=this._iframe;var sel=null,range=null,html="";if(this._doc.selection)
{sel=this._doc.selection;range=sel.createRange();html=range.htmlText;}
else if(_iframe.contentWindow.getSelection)
{sel=_iframe.contentWindow.getSelection();if(typeof(sel)!="undefined")range=sel.getRangeAt(0);else range=this._doc.createRange();if(sel.rangeCount>0&&window.XMLSerializer)
{html=new XMLSerializer().serializeToString(range.cloneContents());}}
this.sel=sel;this.range=range;this.sel_html=html;}
wys_editor.prototype.innerHTML=function(html)
{if(wys_cmd.mode=="text")return;if(this.range.pasteHTML)this.range.pasteHTML(html);else this._doc.execCommand("inserthtml",false,html);}
var wys_cmd={_editor:null,_colortbl:null,_fonttbl:null,_sizetbl:null,_linktbl:null,_linktxt:null,arrtbl:new Array("color","font","size","link"),order:"",is_init:0,isIE:(window.showModalDialog)?1:0,init:function()
{if(wys_cmd.is_init)return;var s="<style>";s+=".wys_div a {text-decoration:none;color:#000}"
s+="#"+wys_config.name+"_colortbl a {border:1px solid #f5f5f5;padding:0 6px;height:9px;font:9px Arial;text-decoration:none}";s+="</style>";document.write(s);wys_cmd.is_init=1;},showDiv:function(div)
{var btn=wys_cmd._editor.btn;div.style.top=wys_cmd.curTop(btn)+btn.offsetHeight+"px";div.style.left=wys_cmd.curLeft(btn)+"px";div.style.display="";},hideDiv:function()
{if(typeof(wys_cmd)!="object")return;for(var i=0;i<wys_cmd.arrtbl.length;i++)
{try{eval('wys_cmd._'+wys_cmd.arrtbl[i]+'tbl.style.display="none"');}
catch(e){}}},curTop:function(el)
{var top=el.offsetTop;var parent=el.offsetParent;while(parent){top+=parent.offsetTop;parent=parent.offsetParent;}
return top;},curLeft:function(el)
{var left=el.offsetLeft;var parent=el.offsetParent;while(parent){left+=parent.offsetLeft;parent=parent.offsetParent;}
return left;},tblSet_link:function()
{if(wys_cmd._linktbl)return;var id=wys_config.name+"_linktxt";var s="URL :<br/><input type='text' value='http://' style='width:170px;font:11px Tahoma;color:#000' id='"+id+"'/>";s+="<input type='button' onclick=\"javascript:wys_cmd._editor.cmd(null, wys_cmd.order, '');\" value='OK' style='height:21px; width:30px; font:10px Tahoma;'/>";var div=wys_cmd.getDiv(wys_config.name+"_linktbl",s);div.style.padding="10px";div.style.font="10px Arial";document.body.appendChild(div);wys_cmd._linktbl=div;wys_cmd._linktxt=document.getElementById(id);},tblSet_size:function()
{if(wys_cmd._sizetbl)return;var size=new Array(8,10,12,14,18,24);var s="";for(var i=0;i<size.length;i++)
{s+="<a href='javascript:;' onclick=\"wys_cmd._editor.cmd(null, wys_cmd.order,'"+(i+1)+"');\" style='font:"+size[i]+" Arial;'>ABCD ("+size[i]+")</a><br />";}
var div=wys_cmd.getDiv(wys_config.name+"_sizetbl",s);div.style.padding="5px";document.body.appendChild(div);wys_cmd._sizetbl=div;},tblSet_font:function()
{if(wys_cmd._fonttbl)return;var font=new Array("Arial","Verdana","Tahoma","Times New Roman","Comic Sans MS","굴림체","돋움체","바탕체","궁서체");var s="";for(var i=0;i<font.length;i++)
{s+="<a href='javascript:;' onclick=\"wys_cmd._editor.cmd(null, wys_cmd.order,'"+font[i]+"');\" style='font:14px "+font[i]+";line-height:170%'>"+font[i]+"</a><br />";}
var div=wys_cmd.getDiv(wys_config.name+"_fonttbl",s);div.style.padding="5px";document.body.appendChild(div);wys_cmd._fonttbl=div;},tblSet_color:function()
{if(wys_cmd._colortbl)return;var col=new Array();col[0]=new Array("#ffffff","#e5e4e4","#d9d8d8","#c0bdbd","#a7a4a4","#8e8a8b","#827e7f","#767173","#5c585a","#000000");col[1]=new Array("#fefcdf","#fef4c4","#feed9b","#fee573","#ffed43","#f6cc0b","#e0b800","#c9a601","#ad8e00","#8c7301");col[2]=new Array("#ffded3","#ffc4b0","#ff9d7d","#ff7a4e","#ff6600","#e95d00","#d15502","#ba4b01","#a44201","#8d3901");col[3]=new Array("#ffd2d0","#ffbab7","#fe9a95","#ff7a73","#ff483f","#fe2419","#f10b00","#d40a00","#940000","#6d201b");col[4]=new Array("#ffdaed","#ffb7dc","#ffa1d1","#ff84c3","#ff57ac","#fd1289","#ec0078","#d6006d","#bb005f","#9b014f");col[5]=new Array("#fcd6fe","#fbbcff","#f9a1fe","#f784fe","#f564fe","#f546ff","#f328ff","#d801e5","#c001cb","#8f0197");col[6]=new Array("#e2f0fe","#c7e2fe","#add5fe","#92c7fe","#6eb5ff","#48a2ff","#2690fe","#0162f4","#013add","#0021b0");col[7]=new Array("#d3fdff","#acfafd","#7cfaff","#4af7fe","#1de6fe","#01deff","#00cdec","#01b6de","#00a0c2","#0084a0");col[8]=new Array("#edffcf","#dffeaa","#d1fd88","#befa5a","#a8f32a","#8fd80a","#79c101","#3fa701","#307f00","#156200");col[9]=new Array("#d4c89f","#daad88","#c49578","#c2877e","#ac8295","#c0a5c4","#969ac2","#92b7d7","#80adaf","#9ca53b");var s="";for(var i=0;i<10;i++)
{for(var j=0;j<10;j++)
{color=col[i][j];s+="<a href='javascript:;' onclick=\"wys_cmd._editor.cmd(null, wys_cmd.order,'"+color+"');\" style='background-color:"+color+";'>&nbsp;</a>";}
s+="<br />";}
var div=wys_cmd.getDiv(wys_config.name+"_colortbl",s);document.body.appendChild(div);wys_cmd._colortbl=div;},getDiv:function(id,html)
{var div=document.createElement("div");div.id=id;div.className="wys_div";div.style.position="absolute";div.style.backgroundColor="#f5f5f5";div.style.display="none";div.style.border="1px solid #ccc";div.style.padding="5px";div.innerHTML=html;return div;},addEvent:function(object,type,listener)
{if(object.addEventListener){object.addEventListener(type,listener,false);}
else if(object.attachEvent){object.attachEvent("on"+type,listener);}},trim:function(s){return s.replace(/^\s+|\s+$/g,'');}};wys_config.BtnList.image=["Insert image","image.gif",function(self){var order="image";var txt_id=wys_config.name+"_imagetxt";var div_id=wys_config.name+"_imagetbl";var div=null;if(self.btn)
{if(!document.getElementById(div_id))
{var s="";s+="Image source(URL) :<br/><input type='text' value='http://' style='width:170px;font:11px Tahoma;color:#000' id='"+txt_id+"' />";s+="<input type='button' onclick=\"javascript:wys_cmd._editor.cmd(null, '"+order+"', '');\" value='OK' style='height:21px; width:30px; font:10px Tahoma;'/>";div=wys_cmd.getDiv(div_id,s);div.style.padding="10px";div.style.font="10px Arial";document.body.appendChild(div);wys_cmd._imagetbl=div;wys_cmd.arrtbl.push(order);}
else
{document.getElementById(txt_id).value="http://";div=document.getElementById(div_id);}
wys_cmd.showDiv(div);}
else
{var html="<img src='"+document.getElementById(txt_id).value+"' border='0' />";self.innerHTML(html);}}];
