////////////////////////////////////////////////////////////////////////////////////
//
//	R2Na Editor 3.0b
//
// - 20070525
//
////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////
//
//	º¯¼ö ¼±¾ð
//
////////////////////////////////////////////////////////////////////////////////////
var R2Na_area; // Editor area
var R2Na_tools; // Toolbar
var colorMode;

var R2Na_root = "/inc/R2Na"; // ¿¡µðÅÍ°¡ ¼³Ä¡µÈ URL
var baseCSS = "/css/maha.css";
var MR2Na = 0; // ¿¡µðÅÍ ¹øÈ£
var selectedPallette; // ¼±ÅÃµÈ ÆÈ·¹Æ® ¹øÈ£

var is_IE = (window.showModelessDialog) ? true : false;


////////////////////////////////////////////////////////////////////////////////////
//
//	ÀÎÅ¬·çµå
//
////////////////////////////////////////////////////////////////////////////////////
include (R2Na_root+"/classes/R2Na_pallete.js");


////////////////////////////////////////////////////////////////////////////////////
//
//	¿¡µðÅÍ È£Ãâ
//
////////////////////////////////////////////////////////////////////////////////////
function R2Na_Generator(bid,framedesign){

	if (!bid) bid = "content";

	MR2Na++;

	// ±âÁ¸ÀÇ ÅØ½ºÆ® ¿¡¸®¾î¸¦ Ã£¾Æ¼­ ¹é¾÷
	t_textarea = document.getElementById(bid);
	if ( !t_textarea ) return;
	o_textarea = t_textarea;
	o_textarea.style.display = "none";
	o_textarea.no = MR2Na;

	// °¢ °´Ã¼ »ý¼º, Body ¿¡ ºÙÀÓ
	R2Na_init(bid,framedesign);
	var container = t_textarea.parentNode;
	for (i = 0; i < container.children.length; i++ ) {
		if ( container.children(i) == t_textarea ) {
			container.insertBefore(oWe, container.children(i));
			container.removeChild(t_textarea);
			break;
		}
	}

	// »õ·Î »ý±ä °´Ã¼¿¡ °¢ ¿ä¼ÒµéÀ» ¼Ò¼Ó½ÃÅ´
	oWe.appendChild (R2Na_tools);
	oWe.appendChild (o_textarea);
	oWe.appendChild (R2Na_area);
	oWe.appendChild (o_PArea);

	// À§ÁöÀ¨ ¿¡µðÅÍ ¿¡¸®¾î¿¡ µðÀÚÀÎ ¸ðµå ¼Ó¼º ºÎ¿©
	R2Na_insert (bid);
	bt_generator (bid);
	R2Na_Submit (oWe,bid);

	if (is_IE) document.getElementById("R2Na_"+MR2Na).contentWindow.document.designMode = "On";
	setTimeout( function () { document.getElementById("R2Na_"+MR2Na).contentWindow.document.designMode = "On"; },20);
}


function R2Na_init(bid,framedesign) { //	°¢ ÄÄÆ÷³ÍÆ®°¡ Ãß°¡µÉ °ø°£ »ý¼º
	// ÇÁ·¹ÀÓ µðÀÚÀÎ Á¤ÀÇ
	frameBorder = ( framedesign ) ? "0" : "1";
	if ( !framedesign ) framedesign = "editorBody";

	// º£ÀÌ½º ·¹ÀÌ¾î »ý¼º
	oWe = document.createElement("DIV");
	oWe.id = "comment"+MR2Na;

	// À§ÁöÀ¨ ¿¡µðÅÍ ¿¡¸®¾î »ý¼º
	R2Na_area = document.createElement("IFRAME");
	R2Na_area.id = "R2Na_"+MR2Na;
	R2Na_area.className = framedesign;
	R2Na_area.frameBorder = frameBorder;
	R2Na_area.style.width = (t_textarea.style.width) ? t_textarea.style.width : "100%";
	R2Na_area.style.height = (t_textarea.style.height) ? t_textarea.style.height : "350";
	
	// À§ÁöÀ¨ ÄÁÆ®·Ñ ¿¡¸®¾î
	R2Na_tools = document.createElement("DIV");
	R2Na_tools.className = "bt_slot";
	R2Na_tools.id = "layer_r2na_bt_"+MR2Na;
	R2Na_tools.style.width = R2Na_area.style.width;

	// ÆÈ·¿Æ® ¿¡¸®¾î
	o_PArea = document.createElement("DIV");
	o_PArea.id  = "PArea_"+MR2Na;
	o_PArea.style.position = "absolute";
}


function bt_generator(bid){ //	¼ø¼­´ë·Î ¹öÆ°À» »ý¼º
	R2Na_add_select ("ff", "Font@±¼¸²@±Ã¼­@¹ÙÅÁ@¿ï¸ªµµ", "±¼¸²@±¼¸²@±Ã¼­@¹ÙÅÁ@HYM", "R2Na_Exec("+MR2Na+",'fontName',this.value)");
	R2Na_add_select ("fs", "Size@8 pt@10 pt@12 pt@14 pt@18 pt@24 pt@36 pt", "1@1@2@3@4@5@6@7", "R2Na_Exec("+MR2Na+",'fontSize',this.value)");
	R2Na_add_bt ("<img src='"+R2Na_root+"/icon/h_line.gif'>");
	R2Na_add_bt ("set_b","ÁøÇÏ°Ô","R2Na_Exec("+MR2Na+",'bold')");
	R2Na_add_bt ("set_i","±â¿ïÀÓ","R2Na_Exec("+MR2Na+",'italic')");
	R2Na_add_bt ("set_u","¹ØÁÙ","R2Na_Exec("+MR2Na+",'underline')");
	R2Na_add_bt ("set_s","°¡·ÎÁÙ","R2Na_Exec("+MR2Na+",'strikethrough')");
	R2Na_add_bt ("set_color", "±ÛÀÚ»ö", "openPall(1,'"+bid+"',event)");
	R2Na_add_bt ("set_bgcolor", "¹è°æ»ö", "openPall(2,'"+bid+"',event)")
	R2Na_add_bt ("<img src='"+R2Na_root+"/icon/h_line.gif'>");
	R2Na_add_bt ("set_left","ÁÂÃøÁ¤·Ä","R2Na_Exec("+MR2Na+",'justifyleft')");
	R2Na_add_bt ("set_center","°¡¿îµ¥Á¤·Ä","R2Na_Exec("+MR2Na+",'justifycenter')");
	R2Na_add_bt ("set_right","¿ìÃøÁ¤·Ä","R2Na_Exec("+MR2Na+",'justifyright')");
	R2Na_add_bt ("<img src='"+R2Na_root+"/icon/h_line.gif'>");
	R2Na_add_bt ("set_ol","¸ñ·Ï1","R2Na_Exec("+MR2Na+",'insertorderedlist')");
	R2Na_add_bt ("set_ul","¸ñ·Ï2","R2Na_Exec("+MR2Na+",'insertunorderedlist')");
	R2Na_add_bt ("set_in","µé¿©¾²±â","R2Na_Exec("+MR2Na+",'outdent')");
	R2Na_add_bt ("set_out","³»¾î¾²±â","R2Na_Exec("+MR2Na+",'indent')");
	R2Na_add_bt ("<img src='"+R2Na_root+"/icon/h_line.gif'>");
	R2Na_add_bt ("set_cut","ÀÚ¸£±â","R2Na_Exec("+MR2Na+",'cut')");
	R2Na_add_bt ("set_put","ºÙÀÌ±â","R2Na_Exec("+MR2Na+",'paste')");
	R2Na_add_bt ("set_wline","°¡·ÎÁÙ","R2Na_Exec("+MR2Na+",'InsertHorizontalRule')");
	R2Na_add_bt ("<img src='"+R2Na_root+"/icon/h_line.gif'>");
	R2Na_add_bt ("set_html","HTMLÆíÁý","htmlonoff('"+bid+"')");
	//R2Na_add_bt ("set_img","ÀÌ¹ÌÁö »ðÀÔ","R2Na_Exec("+MR2Na+",'InsertImage','http://6th.zardsama.net/image/back_03.jpg')");
}

function R2Na_add_bt (icon, alt, exec) { //	ÄÁÆ®·Ñ ¹öÆ° »ý¼º ½ºÅ©¸³Æ®
	if (exec) var temp = "<img src='"+R2Na_root+"/icon/"+icon+".gif' alt='"+alt+"' onclick="+exec+" class='R2Na_bt'>"; 
	else var temp = icon;

	l = document.getElementById ("layer_r2na_bt_"+MR2Na);
	l.innerHTML += temp;
}


function R2Na_add_select (title, text, value, exec) { //	ÄÁÆ®·Ñ ¼¿·ºÆ® ¹öÆ° »ý¼º ½ºÅ©¸³Æ®
	spt = text.split("@");
	val = value.split("@");

	temp = "<select onchange="+exec+" align='absmiddle'>";
	for (i = 0; i < spt.length; i++) {
		temp += "<option value="+val[i]+">"+spt[i]+"</option>";
	}
	temp += "</select>";

	l = document.getElementById ("layer_r2na_bt_"+MR2Na);
	l.innerHTML += temp;
}


function R2Na_Submit (obj,bid) { // Æû Àü¼Û½Ã ¿¡µðÅÍ³»¿ë µ¿±âÈ­ ÀÌº¥Æ® ºÙÀÓ

	var tag;
	while ( tag != "FORM")	{
		pr = obj.parentNode;
		tag = pr.tagName;
		obj = pr;

		if ( tag == "BODY" || !tag ) break;
	}

	obj.setAttribute("isR2Na", bid);
	addEvent(obj, 'submit', function () { R2NaTocontent (bid) } );
}


////////////////////////////////////////////////////////////////////////////////////
//
//	¿¡µðÅÍ <--> ÅØ½ºÆ® ¿ÏÀü ÀüÈ¯
//
////////////////////////////////////////////////////////////////////////////////////
function user2na (obj) { //	ÀüÈ¯ Ã³¸®

	if (obj.checked == true) R2Na_Generator();
	else R2Na_remove();
}

function R2Na_remove(bid) { // ¿¡µðÅÍ¸¦ ÅØ½ºÆ® ¿¡¸®¾î·Î µÇµ¹¸²
	if (!bid) bid = "content";

	r2nabody = document.getElementById ("comment"+MR2Na);
	t_textarea = document.getElementById(bid);
	t_textarea.style.display = "";
	t_textarea.onkeyup = "";
	t_textarea.onmouseup = "";

	r2nabody.parentNode.appendChild (t_textarea);
}


////////////////////////////////////////////////////////////////////////////////////
//
//	À§ÁöÀ¨ ¸í·ÉµéÀ» ½ÇÇà
//
////////////////////////////////////////////////////////////////////////////////////
function R2Na_Exec(num,excute,values) { // ¿¡µðÅÍ ¹öÆ° ½ÇÇà
	var win = document.getElementById("R2Na_"+num).contentWindow;

	try { // IE, Opega
		var body = eval("R2Na_"+num).document.body;
		var selRange = eval("R2Na_"+num).document.selection;
		var obj = body.document;
	} catch ( gekko ) { // Gekko DOM
		var body = win.document.body;
		var selRange = win.getSelection().getRangeAt(0);
		var obj = win.document;
	} 

	win.focus();

	if (excute == "InsertImage" &&  selRange.type != "Control") {
		toimg = "<img src='"+values+"'>";

		try { // IE
			selRange.createRange().pasteHTML(toimg);
		} catch (gekko) {
			try { // FF
				selRange.deleteContents(); 
				selRange.insertNode(selection.createContextualFragment(toimg));
			} catch (OperaDom) { // Opera
				body.document.execCommand('InsertHTML', false, toimg);
			}
		}

	} else {
		obj.execCommand(excute,'',values);
	}

	win.focus();
}

////////////////////////////////////////////////////////////////////////////////////
//
//	ÅØ½ºÆ® µ¿±âÈ­
//
////////////////////////////////////////////////////////////////////////////////////
function R2Na_insert(bid){ // À§ÁöÀ¨ ¿¡µðÅÍÀÇ ·Îµù ¿Ï·á ÈÄ ±âÁ¸ ÅØ½ºÆ® ³ÖÀ½
	var doc;

	try {
		c = document.getElementById(bid);
		c.rows=10;
		bno = c.no;

		try {
			R2Na = document.frames ("R2Na_"+bno );
		} catch ( gekko ) { // Gekko Browser
			R2Na = document.getElementById("R2Na_"+bno).contentWindow;
		} 

		doc  = "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>\n";
		doc += "<HTML>\n";
		doc += "<HEAD>\n";
		doc += "<style type=\"text/css\">@import url(\""+baseCSS+"\");</style>\n";
		doc += "</HEAD>\n";
		doc += "<BODY style='margin: 5px'>\n";
		doc += c.value;
		doc += "\n</BODY>\n";
		doc += "</HTML>\n";

		R2Na .document.open();
		R2Na .document.write(doc);
		R2Na .document.close();

	} catch ( ex ) {
		setTimeout ("R2Na_insert ('"+bid+"')", 100);
	}
}


function R2NaTocontent(bid) { //	À§ÁöÀ¨ ¿¡µðÅÍ -> ÅØ½ºÆ® ¿¡¸®¾î·Î ³»¿ë Àü¼Û
	cont = document.getElementById (bid);
	bno = cont.no;

	if (cont.style.display == "block" ) return;

	try {
		R2Na = document.frames("R2Na_"+bno);
	} catch (ex) {
		R2Na = document.getElementById("R2Na_"+bno).contentWindow;
	}

	cont.value = R2Na.document.body.innerHTML;
}


function contentToR2Na(bid) { //	ÅØ½ºÆ® ¿¡¸®¾î -> À§ÁöÀ¨ ¿¡µðÅÍ·Î ³»¿ë Àü¼Û
	cont = document.getElementById (bid);
	bno = cont.no;

	try {
		R2Na = document.frames("R2Na_"+bno);
	} catch (ex) {
		R2Na = document.getElementById("R2Na_"+bno).contentWindow;
	}

	R2Na.document.body.innerHTML = cont.value;
}


function htmlonoff(bid){ //	HTML ÆíÁýÃ¢ On/Off
	content = document.getElementById (bid);
	bno = content.no;
	r2 = document.getElementById ("R2Na_"+bno);
	if (content.style.display == "none") {
		R2NaTocontent(bid);
		content.style.display = "block";
		r2.style.display = "none";
		content.focus();
	} else {
		contentToR2Na (bid);
		content.style.display = "none";
		r2.style.display = "block";
		r2.focus();
	}
}


////////////////////////////////////////////////////////////////////////////////////
//
//	»ö»ó ÆÈ·¿Æ® °ü·Ã
//
////////////////////////////////////////////////////////////////////////////////////
function openPall(FB,bid,ev) { //	»ö»ó ÆÈ·¿Æ® ÄÑ±â
	var bno = document.getElementById (bid).no;
	var ev = convevent(ev);
	selectedPallette = bno;

	o_PA = document.getElementById('PArea_'+bno);
	o_PA.style.display = "block";

	o_PA.style.top = document.body.scrollTop + ev.clientY;
	o_PA.style.left = document.body.scrollLeft + ev.clientX;

	temp = R2NaPLT;
	o_PA.innerHTML = temp.replace (/bid/gi, bid);

	colorMode = FB;
}


function closePall(bno) { // »ö»ó ÆÈ·¹Æ® ´Ý±â
	o_PA = document.getElementById('PArea_'+bno);
	o_PA.style.display = "none";
}


function selectColorCode(c,bid) { //	¸¶¿ì½º·Î ¼±ÅÃÇÑ »ö»óÄÚµå¸¦ ¿¡µðÅÍ¿¡ Àû¿ë
	if (colorMode == 1) R2Na_Exec(selectedPallette, 'ForeColor',c);
	else {
		if ( is_IE ) R2Na_Exec(selectedPallette, 'BackColor',c)
		else  R2Na_Exec(selectedPallette, 'Hilitecolor',c)
	}

	closePall(selectedPallette);
}


function viewColorCode(obj) { //	¸¶¿ì½º·Î ¼±ÅÃÇÑ »ö»óÄÚµå¸¦ È­¸é¿¡ Ãâ·Â
	tColor = document.getElementById("sFont");
	tText = document.getElementById("sDiv");

	tColor.color = obj.style.backgroundColor;
	tText.innerText = obj.style.backgroundColor;
}


////////////////////////////////////////////////////////////////////////////////////
//
//	°ü·Ã ½ºÅ©¸³Æ®
//
////////////////////////////////////////////////////////////////////////////////////
function addEvent (object, event ,listener) {  // ºê¶ó¿ìÀú °øÅë ÀÌº¥Æ® Ã·ºÎ
    if (object.addEventListener){ 
        object.addEventListener(event, listener, false); 
    } else if (object.attachEvent){ 
        object.attachEvent('on' + event, listener); 
    } 
}


function convevent(ev) { // Explorer ¹× Firebox ÀÌº¥Æ® °´Ã¼ È£È¯
	e = (window.event) ? window.event : ev;
	return e;
}


function include(sFile){ //	¿ÜºÎ JS ÆÄÀÏ ÀÎÅ¬·çµå
	document.write('<script language="javascript" src="'+ sFile +'"></script>');
}
