//////////////////////////////////////////////// // G-Editor ver. 1.0.0 // // GPL License / www.sir.co.kr / 2007-11-13 //////////////////////////////////////////////// geditor = function(name) { /////////////// »ç¿ëÀÚ ¼³Á¤ ½ÃÀÛ /////////////// // geditor.js ÆÄÀÏ °æ·Î var ge_path = '/conf/geditor'; // »ó´Ü Åø¹Ù À̹ÌÁö °æ·Î var ge_icon_path = ge_path + '/icons'; // À̸ðƼÄÜ À̹ÌÁö °æ·Î var ge_emoticon_path = ge_path + '/emoticons'; // À̸ðƼÄÜ °¹¼ö var ge_emoticon_count = 43; /////////////// »ç¿ëÀÚ ¼³Á¤ ³¡ /////////////// var ge_empty_path = ge_icon_path + '/empty.gif'; var IS_IE = true; var _WYSIWYG = 'WYSIWYG'; var _TEXT = 'TEXT'; var _HTML = 'HTML'; var ge_name = 'geditor_'+name; var ge_content = name; var ge_mode = _WYSIWYG; var ge_code = ''; var ge_editor = null; var ge_width = 0; var ge_height = 0; var ge_image_width = 0; var ge_iframe = ge_name+'_frame'; var ge_textarea = ge_name+'_textarea'; var ge_source = ge_name+'_source'; var ge_table_rows = 3; var ge_table_cols = 3; var ge_table_x = 0; var ge_table_y = 0; var ge_is_empty = null; var ge_range = null; var ge_image_preview = null; var ge_is_image = false; var ge_notag = false; var ge_nomode = false; var ge_noimg = false; var ge_color = [ "#FFFFFF","#FFCCCC","#FFCC99","#FFFF99","#FFFFCC", "#99FF99","#99FFFF","#CCFFFF","#CCCCFF","#FFCCFF", "#CCCCCC","#FF6666","#FF9966","#FFFF66","#FFFF33", "#66FF99","#33FFFF","#66FFFF","#9999FF","#FF99FF", "#C0C0C0","#FF0000","#FF9900","#FFCC66","#FFFF00", "#33FF33","#66CCCC","#33CCFF","#6666CC","#CC66CC", "#999999","#CC0000","#FF6600","#FFCC33","#FFCC00", "#33CC00","#00CCCC","#3366FF","#6633FF","#CC33CC", "#666666","#990000","#CC6600","#CC9933","#999900", "#009900","#339999","#3333FF","#6600CC","#993399", "#333333","#660000","#993300","#996633","#666600", "#006600","#336666","#000099","#333399","#663366", "#000000","#330000","#663300","#663333","#333300", "#003300","#003333","#000066","#330099","#330033"]; this.notag = function() { ge_notag = true; } this.nomode = function() { ge_nomode = true; } this.noimg = function() { ge_noimg = true; } this.get_mode = function() { return ge_mode; } this.init = function() { ge_editor = document.getElementById(ge_iframe).contentWindow.document; ge_editor.designMode = "on"; ge_editor.write(""); ge_editor.write(""); ge_editor.write(""); ge_editor.write(""); ge_editor.write(ge_code); ge_editor.write(""); ge_editor.close(); if (navigator.appName.indexOf("Microsoft") != -1) IS_IE = true; else IS_IE = false; var self = this; var editor = ge_editor; var name = ge_name; if (IS_IE) { ge_editor.attachEvent("onclick", function(event) { self.eventHandler(event, editor, name); }); ge_editor.attachEvent("onkeypress", function(event) { self.eventHandler(event, editor, name); }); ge_editor.attachEvent("onkeyup", function(event) { self.eventHandler(event, editor, name); }); document.getElementById(ge_iframe).contentWindow.attachEvent("onblur", function(event) { self.eventHandler(event, editor, name); }); document.getElementById(ge_textarea).attachEvent("onchange", this.update); document.getElementById(ge_source).attachEvent("onchange", this.update); } else { ge_editor.addEventListener("click", function(event) { self.eventHandler(event, editor, name); }, false); ge_editor.addEventListener("blur", function(event) { self.eventHandler(event, editor, name); }, false); document.getElementById(ge_textarea).addEventListener("change", this.update, false); document.getElementById(ge_source).addEventListener("change", this.update, false); } if (ge_nomode == false) document.getElementById(ge_name+"_geditor_html_source_button").checked = false; ge_editor.body.focus(); ge_range = this.get_range(); } this.update = function() { switch(ge_mode) { case _WYSIWYG : ge_code = ge_editor.body.innerHTML; break; case _TEXT : ge_code = document.getElementById(ge_textarea).value; break; case _HTML : ge_code = document.getElementById(ge_source).value; break; } document.getElementById(ge_content).style.backgroundImage = ''; document.getElementById(ge_content).value = ge_code; } this.eventHandler = function(event, editor, ge_name) { if (event.type == "blur") { eval(ge_name + ".update()"); return; } if (event.type == "click") { eval(ge_name + ".clear_option()"); eval(ge_name + ".get_tags()"); } if (event.type == "keypress" && IS_IE) { // IE ÀÇ °æ¿ì ¿£Å͸¦ ÀÔ·ÂÇϸé

°¡ ÀԷµDZ⠶§¹®¿¡ À̸¦
·Î º¯°æÇÑ´Ù. var range = editor.selection.createRange(); if (event.keyCode == 13 && range.parentElement().tagName != "LI") { event.returnValue = false; event.cancelBubble = true; range.pasteHTML("
"); range.collapse(false); range.select(); } } /* if (event.type == "blur") { eval(ge_name + ".update()"); } */ if (event.type == "keyup") { switch (event.keyCode) { case 37: case 38: case 39: case 40: case 8: eval(ge_name + ".get_tags()"); } } } this.get_range = function() { ge_editor.body.focus(); if (IS_IE) ge_range = ge_editor.selection.createRange(); } this.get_tags = function() { var _parent = null; var ancestors = []; if (IS_IE) { var sel = ge_editor.selection; var rng = sel.createRange(); if (sel.type == "Text" || sel.type == "None") _parent = rng.parentElement(); else if (sel.type == "Control") _parent = rng.item(0); else _parent = ge_editor.document.body; } else { var sel = document.getElementById(ge_iframe).contentWindow.getSelection(); var rng = sel.getRangeAt(0); _parent = rng.commonAncestorContainer; if (!rng.collapsed && rng.startContainer == rng.endContainer && rng.startOffset - rng.endOffset < 2 && rng.startContainer.hasChildNodes()) { _parent = rng.startContainer.childNodes[rng.startOffset]; } while (_parent.nodeType == 3) { _parent = _parent.parentNode; } } while (_parent && (_parent.nodeType == 1) && (_parent.tagName.toLowerCase() != 'body')) { ancestors.push(_parent); _parent = _parent.parentNode; } ancestors.push(ge_editor.body); var path = ' <BODY> '; for (var i = ancestors.length; --i >= 0;) { el = ancestors[i]; if (!el || el.tagName.toUpperCase() == 'HTML' || el.tagName.toUpperCase() == 'BODY') continue; path += '<'+el.tagName.toUpperCase()+'> '; } if (ge_notag == false) document.getElementById("geditor_"+ge_name+"_path").innerHTML = path; } this.edit = function(key, value) { if (ge_mode!=_WYSIWYG) return; if (typeof value == 'undefined') value = null; ge_editor.body.focus(); ge_editor.execCommand(key, false, value); this.update(); this.get_tags(); } this.text2html = function() { ge_code = document.getElementById(ge_textarea).value; ge_code = ge_code.replace(new RegExp("\n", "gi"), "
"); ge_code = ge_code.replace(new RegExp("
 

", "gi"), "
"); ge_code = ge_code.replace(new RegExp("

", "gi"), ""); ge_code = ge_code.replace(new RegExp("

", "gi"), "
"); ge_code = ge_code.replace(new RegExp("
", "gi"), "
"); ge_code = ge_code.replace(new RegExp("
", "gi"), "\n"); ge_code = ge_code.replace(new RegExp("
", "gi"), "\n"); ge_code = ge_code.replace(new RegExp("\n\r", "gi"), ""); } this.mode_change = function() { this.clear_option(); switch(ge_mode) { case _WYSIWYG: ge_mode = _TEXT; this.html2text(ge_editor.body.innerHTML); document.getElementById(ge_iframe).style.display = 'none'; document.getElementById(ge_iframe).style.display = 'none'; document.getElementById(ge_source).style.display = 'none'; document.getElementById(ge_textarea).style.display = 'block'; document.getElementById(ge_textarea).value = ge_code; document.getElementById(ge_name+"_geditor_html_source_button").checked = false; document.getElementById(ge_name+"_geditor_html_source_div").style.display = 'none'; document.getElementById(ge_name+"_geditor_status").value = _TEXT; document.getElementById(ge_name+"_geditor_toolbar").style.visibility = 'hidden'; break; case _TEXT: ge_mode = _WYSIWYG; this.text2html(); document.getElementById(ge_textarea).value = ''; document.getElementById(ge_iframe).style.display = 'block'; document.getElementById(ge_source).style.display = 'none'; document.getElementById(ge_textarea).style.display = 'none'; document.getElementById(ge_name+"_geditor_html_source_div").style.display = 'block'; document.getElementById(ge_name+"_geditor_html_source_button").checked = false; document.getElementById(ge_name+"_geditor_status").value = _WYSIWYG; document.getElementById(ge_name+"_geditor_toolbar").style.visibility = 'visible'; this.init(); break; case _HTML: ge_mode = _TEXT; this.html2text(document.getElementById(ge_source).value); document.getElementById(ge_source).value = ''; document.getElementById(ge_iframe).style.display = 'none'; document.getElementById(ge_source).style.display = 'none'; document.getElementById(ge_textarea).style.display = 'block'; document.getElementById(ge_textarea).value = ge_code; document.getElementById(ge_name+"_geditor_html_source_button").checked = false; document.getElementById(ge_name+"_geditor_html_source_div").style.display = 'none'; document.getElementById(ge_name+"_geditor_status").value = _TEXT; document.getElementById(ge_name+"_geditor_toolbar").style.visibility = 'hidden'; break; } } this.html_source = function(code) { code = code.replace(new RegExp("

 

", "gi"), "
"); code = code.replace(new RegExp("

", "gi"), ""); code = code.replace(new RegExp("

", "gi"), "
"); code = code.replace(new RegExp("
", "gi"), "
"); return code; } this.mode_source = function(flag) { if (flag==true) { ge_code = this.html_source(ge_editor.body.innerHTML); document.getElementById(ge_iframe).style.display = 'none'; document.getElementById(ge_source).style.display = 'block'; document.getElementById(ge_source).value = ge_code; document.getElementById(ge_name+"_geditor_status").value = _WYSIWYG; document.getElementById(ge_name+"_geditor_toolbar").style.visibility = 'hidden'; ge_mode = _HTML; } else { ge_code = document.getElementById(ge_source).value; ge_mode = _WYSIWYG; document.getElementById(ge_source).value = ''; document.getElementById(ge_iframe).style.display = 'block'; document.getElementById(ge_source).style.display = 'none'; document.getElementById(ge_name+"_geditor_toolbar").style.visibility = 'visible'; this.init(); } } this.run = function() { var content = document.getElementById(ge_content); if (content.style.width) ge_width = content.style.width; else if (content.offsetWidth) ge_width = content.offsetWidth; else if (content.cols) ge_width = content.cols*6.5; if (content.style.height) ge_height = content.style.height; else if (content.offsetHeight) ge_height = content.offsetHeight; else if (content.cols) ge_height = content.rows*20; ge_code = content.value; var div = document.createElement('div'); draw = "
"; draw += "
"; draw += ""; draw += ""; draw += ""; draw += "
"; draw += "
"; draw += ""; draw += ""; draw += ""; draw += ""; draw += ""; draw += ""; draw += ""; draw += " "; draw += ""; draw += ""; draw += ""; draw += ""; draw += ""; draw += ""; draw += ""; draw += ""; draw += ""; draw += ""; draw += ""; if (ge_noimg == false) { draw += ""; } draw += ""; draw += ""; draw += ""; draw += ""; draw += "  Åõ¾î½ºÄÉÁÙ"; // draw += "  Á¤º¸³Ö±â"; draw += "
"; draw += "
"; draw += ""; draw += ""; draw += ""; draw += "
"; if (ge_notag == false) { draw += "
"; } if (ge_nomode == false) { draw += ""; draw += ""; draw += ""; draw += ""; draw += "
¿¡µðÅÍ »óÅ : [¹Ì¸®º¸±â]HTML Source
"; } draw += "
"; draw += ""; draw += ""; div.innerHTML = draw; document.getElementById(ge_content).parentNode.insertBefore(div, document.getElementById(ge_content)); document.getElementById(ge_content).style.backgroundImage = ''; document.getElementById(ge_content).style.display = 'none'; this.init(); } this.font_family = function(obj) { var font_kor = ['malgun gothic','Gulim', 'GulimChe', 'Dotum', 'DotumChe', 'Batang', 'BatangChe', 'Gungsuh', 'GungsuhChe']; var font_kori = ['¸¼Àº °íµñ', '±¼¸²', '±¼¸²Ã¼', 'µ¸¿ò', 'µ¸¿òü', '¹ÙÅÁ', '¹ÙÅÁü', '±Ã¼­', '±Ã¼­Ã¼']; var font_eng = ['Verdana', 'Tahoma', 'Arial', 'Arial Black', 'Courier', 'Times New Roman']; var kor = '°¡³ª´Ù¶ó¸¶¹Ù»ç'; var eng = 'ABCDEFGHIJKLMN'; this.get_range(); this.clear_option(); var div = this.get_option_div(obj); div.id = "geditor_option_div"; for(var i=0; i
\n"; if (where == 'center') html = "
" + html + "
"; ge_is_image = true; self.insert_editor(html); } else { self.clear_option(); } } var close = this.button('´Ý±â'); close.onclick = function() { self.clear_option(); } button_div.appendChild(submit); button_div.appendChild(close); div.appendChild(img_div); div.appendChild(file_div); div.appendChild(addr_div); div.appendChild(align_div); div.appendChild(info_div); div.appendChild(button_div); document.body.appendChild(div); } this.button = function(text) { var btn = document.createElement("input"); btn.type = 'button'; btn.value = text; btn.style.backgroundColor = '#ffffff'; btn.style.border = '1px solid #ccc'; btn.style.width = '40px'; btn.style.height = '22px'; btn.style.marginLeft = '10px'; return btn; } this.insert_image_preview = function(file) { ge_image_preview.src = file; } this.insert_emoticon = function(obj) { this.clear_option(); this.get_range(); var div = this.get_option_div(obj, 250); div.id = "geditor_option_div"; div.style.width = '300px'; var info = document.createElement("div"); info.style.fontSize = 11; info.innerHTML = "À̸ðƼÄÜ [´Ý±â]"; var emoticons = document.createElement("div"); for (var i=1; i<=ge_emoticon_count; i++) { var span = document.createElement("span"); span.style.paddingRight = '5px'; var img = document.createElement("img"); img.src = ge_emoticon_path + "/" + i + ".gif"; img.style.cursor = 'pointer'; img.onclick = new Function(ge_name+".insert_emoticon_to_editor(\""+img.src+"\")"); span.appendChild(img) emoticons.appendChild(span); } div.appendChild(info); div.appendChild(emoticons); document.body.appendChild(div); } this.insert_emoticon_to_editor = function(file) { this.insert_editor(""); } this.insert_box = function(obj) { this.clear_option(); this.get_range(); var self = this; var div = this.get_option_div(obj); div.id = "geditor_option_div"; div.style.width = '200px'; var info = document.createElement("p"); info.style.fontSize = 11; info.innerHTML = "¹Ú½º [´Ý±â]"; div.appendChild(info); var bgcolor = [ "#FFDAED","#C9EDFF","#D0FF9D","#FAFFA9","#E4E4E4","#FFFFFF","#FFFFFF","#FFFFFF","#FFFFFF","#FFFFFF"]; var bordercolor = [ "#FF80C2","#71D0FF","#6FD200","#CED900","#919191","#FF80C2","#71D0FF","#6FD200","#CED900","#919191"]; for (var i=0; i<10; i++) { var color = bgcolor[i]; var linekind = 'solid'; var box_div = document.createElement("p"); var box = document.createElement("input"); box.type = 'button'; box.style.border = '1px solid ' + bordercolor[i]; box.style.backgroundColor = bgcolor[i]; box.style.height = '10px'; box.style.marginBottom = '5px'; box.style.cursor = 'pointer'; box.style.width = '200px'; box.style.height = '20px'; box.value = ""; box.onclick = new Function(ge_name+".insert_box_to_editor(\""+bgcolor[i]+"\", \""+bordercolor[i]+"\", \""+linekind+"\")"); box_div.appendChild(box) div.appendChild(box_div); } for (var i=0; i<10; i++) { var color = bgcolor[i]; var linekind = 'dashed'; var box_div = document.createElement("p"); var box = document.createElement("input"); box.type = 'button'; box.style.border = '1px dashed ' + bordercolor[i]; box.style.backgroundColor = bgcolor[i]; box.style.height = '10px'; box.style.marginBottom = '5px'; box.style.cursor = 'pointer'; box.style.width = '200px'; box.style.height = '20px'; box.value = ""; box.onclick = new Function(ge_name+".insert_box_to_editor(\""+bgcolor[i]+"\", \""+bordercolor[i]+"\", \""+linekind+"\")"); box_div.appendChild(box) div.appendChild(box_div); } document.body.appendChild(div); } this.insert_box_to_editor = function(bgcolor, bordercolor, linekind) { this.insert_editor("

", "


"); } this.insert_movie = function(obj) { this.clear_option(); this.get_range(); var self = this; var div = this.get_option_div(obj, 100); div.id = "geditor_option_div"; var info = document.createElement("div"); info.style.fontSize = '11px'; info.style.border = '1px solid #ccc'; info.style.padding = '5px'; info.style.marginBottom = '10px'; info.innerHTML = '¹«ºñŬ¸³ ÁÖ¼Ò ³Ö±â'; var src_div = document.createElement("div"); var info2 = document.createElement("span"); info2.style.fontSize = '11px'; info2.innerHTML = 'ÁÖ¼Ò : '; var src = document.createElement("input"); src.size = 25; src.style.fontSize = '11px'; src.id = 'geditor_' + ge_name + '_insert_movie_src'; src_div.appendChild(info2); src_div.appendChild(src); var size_div = document.createElement("div"); size_div.style.fontSize = '11px'; var info3 = document.createElement("span"); info3.innerHTML = '°¡·Î : '; var info4 = document.createElement("span"); info4.innerHTML = '¼¼·Î : '; info4.style.marginLeft = '10px'; var width = document.createElement("input"); width.size = 5; width.id = 'geditor_' + ge_name + '_insert_movie_width'; var height = document.createElement("input"); height.size = 5; height.id = 'geditor_' + ge_name + '_insert_movie_height'; size_div.appendChild(info3); size_div.appendChild(width); size_div.appendChild(info4); size_div.appendChild(height); var button = document.createElement("div"); button.style.paddingTop = '10px'; button.style.paddingBottom = '5px'; button.style.textAlign = 'center'; var submit = this.button('È®ÀÎ'); submit.onclick = function() { alert("À§ÁöÀ¨ ¿¡µðÅÍ¿¡¼­´Â Á¤»óÀûÀ¸·Î º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù.\n\n¹Ìµð¾î »ðÀԽà HTML source ¸ðµå ȤÀº TEXT ¸ðµå·Î ²À È®ÀÎÇØÁÖ¼¼¿ä."); var html = ""; self.insert_editor(html); } var close = this.button('´Ý±â'); close.onclick = function() { self.clear_option(); } button.appendChild(submit); button.appendChild(close); info.appendChild(src_div); info.appendChild(size_div); info.appendChild(button); div.appendChild(info); var info = document.createElement("div"); info.style.fontSize = '11px'; info.style.border = '1px solid #ccc'; info.style.padding = '5px'; info.innerHTML = '¹«ºñŬ¸³ HTML ³Ö±â'; var input_div = document.createElement("div"); var input = document.createElement("textarea"); input.cols = 30; input.rows = 3; input.style.fontSize = '11px'; input_div.appendChild(input); var button = document.createElement("div"); button.style.paddingTop = '10px'; button.style.paddingBottom = '5px'; button.style.textAlign = 'center'; var submit = this.button('È®ÀÎ'); submit.onclick = function() { alert("À§ÁöÀ¨ ¿¡µðÅÍ¿¡¼­´Â Á¤»óÀûÀ¸·Î º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù.\n\n¹Ìµð¾î »ðÀԽà HTML source ¸ðµå ȤÀº TEXT ¸ðµå·Î ²À È®ÀÎÇØÁÖ¼¼¿ä."); self.insert_editor(input.value); } var close = this.button('´Ý±â'); close.onclick = function() { self.clear_option(); } button.appendChild(submit); button.appendChild(close); info.appendChild(input_div); info.appendChild(button); div.appendChild(info); document.body.appendChild(div); } this.insert_link = function(obj) { this.clear_option(); this.get_range(); var self = this; var div = this.get_option_div(obj, 100); div.id = "geditor_option_div"; var info = document.createElement("div"); info.style.fontSize = 11; info.innerHTML = '¸µÅ© ³Ö±â'; var select = document.createElement("select"); var option = document.createElement("option"); option.value = '_blank'; option.innerHTML = '»õâ'; select.appendChild(option); var option = document.createElement("option"); option.value = '_self'; option.innerHTML = 'ÇöÀçâ'; select.appendChild(option); var protocol = document.createElement("select"); var protocol_list = ['http://', 'ftp://', 'mailto:'] for (i=0; i", ""); } var close = this.button('´Ý±â'); close.onclick = function() { self.clear_option(); } div.appendChild(info); div.appendChild(select); div.appendChild(protocol); div.appendChild(input); div.appendChild(submit); div.appendChild(close); document.body.appendChild(div); } // È£ÁÖ ½ºÄÉÁÙ this.insert_schedule = function(obj) { this.clear_option(); this.get_range(); var self = this; var div = this.get_option_div(obj); div.id = "geditor_option_div"; div.style.width = '200px'; var info = document.createElement("p"); info.style.fontSize = 11; info.innerHTML = "½ºÄÉÁÙ [´Ý±â]"; div.appendChild(info); for (var i=1; i<=10; i++) { var box_div = document.createElement("p"); var box = document.createElement("input"); box.type = 'button'; box.style.border = '1px solid #000'; box.style.height = '10px'; box.style.marginBottom = '5px'; box.style.cursor = 'pointer'; box.style.width = '200px'; box.style.height = '20px'; box.value = i + " ÀÏ"; box.onclick = new Function(ge_name+".insert_schedule_click(\""+i+"\")"); box_div.appendChild(box) div.appendChild(box_div); } document.body.appendChild(div); } this.insert_schedule_click = function(row) { var schedule = ""; schedule += ""; schedule += ""; schedule += ""; schedule += ""; schedule += ""; for (var i=1; i<=row; i++) { schedule += ""; schedule += ""; schedule += ""; schedule += ""; schedule += ""; schedule += ""; schedule += ""; } schedule += "
DayÃâ¹ß/µµÂø±³Åë½Ä»çÀÏÁ¤
"+i+"ÀÏ     

"; this.insert_editor(schedule); } this.insert_table = function(obj) { this.clear_option(); this.get_range(); var self = this; var div = this.get_option_div(obj, 50); div.id = "geditor_option_div"; var info = document.createElement("div"); info.style.fontSize = 11; info.innerHTML = "Å×À̺í [´Ý±â]"; var table = document.createElement("table"); table.border = 0; table.cellSpacing = 2; table.id = 'geditor_insert_table_table'; table.unselectable = "on"; table.style.cursor = 'pointer'; var tbody = document.createElement("tbody"); tbody.id = 'geditor_insert_table_tbody'; for (var i=0; i"; var width = Math.floor(100/col); for (var i=0; i "; } table += ""; } table += "
"; this.insert_editor(table); } this.insert_table_mouse_over = function(row,col) { var table = document.getElementById("geditor_insert_table_table"); var rows = table.firstChild.childNodes; for (var a=0; a= ge_table_rows-1) { for (var i=rows.length-1; i>row; i--) { document.getElementById("geditor_insert_table_tbody").removeChild(document.getElementById("tr"+i)); } } if (col == rows[0].childNodes.length) { for (var i=0; i= ge_table_cols-1 && this.table_x > col) { for (var i=0; i[´Ý±â]"; else info.innerHTML = "¹è°æ»ö [´Ý±â]"; var table = document.createElement("table"); table.border = 0; table.cellSpacing = 2; table.unselectable = "on"; table.style.cursor = 'pointer'; var tbody = document.createElement("tbody"); fi = 0; for (var i=0; i<7; i++) { var tr = document.createElement("tr"); tr.height = 10; tr.id = "tr"+i; for (var j=0; j<10; j++) { var td = document.createElement("td"); td.width = 10; td.style.border = '1px solid #ccc'; td.style.fontSize = '10px'; td.style.backgroundColor = ge_color[fi]; td.innerHTML = ' '; td.unselectable = "on"; td.onclick = new Function(ge_name+"."+flag+"color(\""+ge_color[fi]+"\")"); td.id = "td"+i+""+j; tr.appendChild(td); fi++; } tbody.appendChild(tr); } table.appendChild(tbody) div.appendChild(info); div.appendChild(table); document.body.appendChild(div); } this.forecolor = function(color) { this.edit('forecolor',color); this.clear_option(); } this.backcolor = function(color) { if (IS_IE) this.edit('BackColor',color); else this.edit('Hilitecolor',color); this.clear_option(); } this.insert_editor = function(begin, end) { switch(ge_mode) { case _WYSIWYG: if (typeof end == 'undefined') end = ''; if (IS_IE) ge_range.pasteHTML(begin + ge_range.htmlText + end); else { var editor = document.getElementById(ge_iframe); var range = editor.contentWindow.getSelection(); if (range.focusNode.tagName == 'HTML') { var range = editor.contentDocument.createRange(); range.setStart(editor.contentDocument.body,0); range.setEnd(editor.contentDocument.body,0); var tmp = document.createElement("div"); tmp.appendChild(range.extractContents()); range.insertNode(range.createContextualFragment(begin + tmp.innerHTML + end)); } else { var range = range.getRangeAt(0); var tmp = document.createElement("div"); tmp.appendChild(range.extractContents()); range.insertNode(range.createContextualFragment(begin + tmp.innerHTML + end)); } } this.update(); break; case _TEXT: document.getElementById(ge_textarea).value += html; break; case _HTML: document.getElementById(ge_source).value += html; break; } this.clear_option(); } this.get_option_div = function(obj, left) { if (IS_IE) height = -1; else height = 5; if (typeof left == 'undefined') left = 0; var div = document.createElement("div"); div.style.border = "#CCCCCC 1px solid"; div.style.padding = "10px"; div.style.display = "block"; div.style.position = "absolute"; div.style.zIndex = 1; div.style.backgroundColor = "#FFFFFF"; div.style.top = this.get_top(obj) + obj.offsetHeight + height; div.style.left = this.get_left(obj) - left; div.style.textAlign = "left"; div.style.fontSize = '11px'; div.unselectable = "on"; return div; } this.html_preview = function() { switch(ge_mode) { case _WYSIWYG: ge_code = ge_editor.body.innerHTML; break; case _TEXT: this.text2html(); break; case _HTML: ge_code = document.getElementById(ge_name+"_source").value; break; } var pre = window.open('', 'pre', 'scrollbars=yes,width=700,height=500'); pre.document.write(ge_code); } this.get_content = function() { switch(ge_mode) { case _WYSIWYG: return ge_editor.body.innerHTML; break; case _TEXT: this.text2html(); this.init(); return ge_editor.body.innerHTML; break; case _HTML: ge_mode = _TEXT; return document.getElementById(ge_name+"_source").value; break; } } this.clear_option = function () { if (document.getElementById("geditor_option_div") != null) { document.body.removeChild(document.getElementById("geditor_option_div")); this.get_tags(); } if (document.getElementById("geditor_option_image_div") != null) { if (ge_is_image == false) { if (document.getElementById('ge_is_empty') != null) { if (document.getElementById('ge_is_empty').value == 'false') { document.getElementById("geditor_image_form_work").value = 'delete'; document.getElementById("geditor_image_form").submit(); } } } document.body.removeChild(document.getElementById("geditor_option_image_div")); ge_is_image = false; } } this.get_ext = function(file) { var ext = ''; ext = file.split("."); ext = ext[ext.length-1].toLowerCase(); return ext; } this.get_image_size = function(path) { var size = new Array(); var image = new Image(); image.src = path; size[0] = image.width; size[1] = image.height; return size; } this.get_top = function(obj) { var top = obj.offsetTop; var parent = obj.offsetParent; while(parent) { top += parent.offsetTop; parent = parent.offsetParent; } return top; } this.get_left = function(obj) { var left = obj.offsetLeft; var parent = obj.offsetParent; while(parent) { left += parent.offsetLeft; parent = parent.offsetParent; } return left; } this.height_decrease = function(row) { o = parseInt(document.getElementById(ge_iframe).offsetHeight); h = o - row; if (h > 0) { document.getElementById("geditor_"+ge_name).style.height = h + 5 + 'px'; document.getElementById(ge_iframe).style.height = h + 'px'; document.getElementById(ge_textarea).style.height = h + 'px'; document.getElementById(ge_source).style.height = h + 'px'; } } this.height_original = function() { document.getElementById("geditor_"+ge_name).style.height = parseInt(ge_height) + 5 + 'px'; document.getElementById(ge_iframe).style.height = ge_height; document.getElementById(ge_textarea).style.height = ge_height; document.getElementById(ge_source).style.height = ge_height; } this.height_increase = function(row) { h = parseInt(document.getElementById(ge_iframe).offsetHeight) + row; document.getElementById("geditor_"+ge_name).style.height = h + 5 + 'px'; document.getElementById(ge_iframe).style.height = h + 'px'; document.getElementById(ge_textarea).style.height = h + 'px'; document.getElementById(ge_source).style.height = h + 'px'; } } // end class geditor var geditor_textareas = document.getElementsByTagName("textarea"); for (i=0; i