// TTML·Î ÀÛ¼ºµÈ ÆÄÀÏÀ» HTML ºä¿¡ »Ñ·ÁÁÖ±â À§ÇØ º¯È¯ editor.ttml2html = function(str) { var str = this.textarea.value; var inHTML = false; var sb = new StringBuffer(); // [HTML][/HTML] ºí·°À» Á¦¿ÜÇÑ ºÎºÐ¿¡ Áٹٲ޹®ÀÚ¸¦ BR ű׷Π¹Ù²ãÁØ´Ù while(true) { if(inHTML) { if((offsetEnd = str.indexOf("[/HTML]")) != -1) { sb.append(str.substring(0, offsetEnd)); sb.append(""); str = str.substring(offsetEnd + 7, str.length); inHTML = false; } else break; } else { if((offsetStart = str.indexOf("[HTML]")) != -1) { sb.append(this.nl2br(str.substring(0, offsetStart))); sb.append(""); str = str.substring(offsetStart + 6, str.length); inHTML = true; } else { sb.append(this.nl2br(str)); break; } } } str = sb.toString(); var regImage = new RegExp("\\[##_(([1-3][CLR])(\\|[^|]*?)+)_##\\]", "g"); // À̹ÌÁö ġȯÀÚ Ã³¸® while(result = regImage.exec(str)) { var search = result[0]; var longDesc = " longdesc=\"" + this.addQuot(this.htmlspecialchars(result[1])) + "\" "; // Avoid the bug longDesc = longDesc.replace("<", "&lt;"); longDesc = longDesc.replace(">", "&gt;"); var attributes = result[1].split("|"); var imageType = attributes[0]; if(this.isImageFile(attributes[1])) { var imageName = this.propertyFilePath + attributes[1]; var imageAttr = this.parseImageSize(attributes[2], "string"); } else { var imageName = servicePath + "/image/spacer.gif"; var imageAttr = this.fileStyle; } switch(imageType) { case "1L": var replace = ""; break; case "1R": var replace = ""; break; case "1C": var replace = ""; break; case "2C": imageAttr = "width=\"200\" height=\"100\""; var replace = ""; break; case "3C": imageAttr = "width=\"300\" height=\"100\""; var replace = ""; } str = str.replace(search, replace); } // iMazing ó¸® var regImazing = new RegExp("\\[##_iMazing\\|(.*?)_##\\]", "g"); while(result = regImazing.exec(str)) { var search = result[0]; var longDesc = " longdesc=\"iMazing|" + this.addQuot(this.htmlspecialchars(result[1])) + "\" "; // Avoid the bug longDesc = longDesc.replace("<", "&lt;"); longDesc = longDesc.replace(">", "&gt;"); var imageAttr = this.parseImageSize(result[1], "string"); var replace = ""; str = str.replace(search, replace); } // Gallery ó¸® var regGallery = new RegExp("\\[##_Gallery\\|(.*?)_##\\]", "g"); while(result = regGallery.exec(str)) { var search = result[0]; var longDesc = " longdesc=\"Gallery|" + this.addQuot(this.htmlspecialchars(result[1])) + "\" "; // Avoid the bug longDesc = longDesc.replace("<", "&lt;"); longDesc = longDesc.replace(">", "&gt;"); var imageAttr = this.parseImageSize(result[1], "string"); var replace = ""; str = str.replace(search, replace); } // Jukebox ó¸® var regJukebox = new RegExp("\\[##_Jukebox\\|(.*?)_##\\]", "g"); while(result = regJukebox.exec(str)) { var search = result[0]; var longDesc = " longdesc=\"Jukebox|" + this.addQuot(this.htmlspecialchars(result[1])) + "\" "; // Avoid the bug longDesc = longDesc.replace("<", "&lt;"); longDesc = longDesc.replace(">", "&gt;"); var replace = ""; str = str.replace(search, replace); } // ´ÜÀÏ À̹ÌÁö ġȯÀÚ Ã³¸® var regImage = new RegExp("src=[\"']?(\\[##_ATTACH_PATH_##\\][a-z.0-9/]*)", "gi"); while(result = regImage.exec(str)) str = str.replace(result[0], "class=\"tatterImageFree\" longdesc=\"" + result[1] + "\" src=\"" + this.propertyFilePath.substring(0, this.propertyFilePath.length - 1) + result[1].replace("[##_ATTACH_PATH_##]", "")); // MORE/LESS ó¸® while(true) { var pos1 = str.indexOf("[#M_"); if(pos1 > -1) { var pos2 = str.indexOf("_M#]", pos1); if(pos2 > -1) { var block = str.substring(pos1 + 4, pos2); while(true) { if(block.indexOf("[#M_") == -1) break; else block = block.substring(block.indexOf("[#M_") + 4, block.length); } var more = block.substring(0, block.indexOf("|")); var remain = block.substring(block.indexOf("|") + 1, block.length); var less = remain.substring(0, remain.indexOf("|")); remain = remain.substring(remain.indexOf("|"), remain.length); var body = remain.substring(remain.indexOf("|") + 1, remain.length); str = str.replace("[#M_" + block + "_M#]", '
' + body + '
'); } else break; } else break; } // Music ó¸®(J. Parker) var regMusic = new RegExp("]*id=[\"']?musicPlayer.*?>", "gi"); while(result = regMusic.exec(str)) str = str.replace(result[0], ""); // Flash ó¸® var regEmbed = new RegExp("", "gi"); while(result = regEmbed.exec(str)) str = str.replace(result[0], ""); // Embed ó¸® var regEmbed = new RegExp("", "gi"); while(result = regEmbed.exec(str)) str = str.replace(result[0], ""); return str; } // IFRAME¿¡ ÀÛ¼ºµÈ HTMLÀ» ÅÂÅÍÅøÁî ÅؽºÆ® ¿¡µðÅÍ¿¡¼­ º¼ ¼ö ÀÖ´Â TTML·Î Àüȯ editor.html2ttml = function() { var obj = this.contentDocument.body.cloneNode(true); // MORE/LESS ó¸® while(true) { var divs = obj.getElementsByTagName("div"); if(divs.length > 0) { var exist = false; for(var i=0; i]*)> 

", "gi"), "
"); // ¾µ¸ð¾ø´Â   Á¦°Å str = str.replace(new RegExp("([^ ]) ([^ ])", "gi"), "$1 $2"); var inHTML = false; var sb = new StringBuffer(); // ºí·°À» Á¦¿ÜÇÑ ºÎºÐ¿¡ Áٹٲ޹®ÀÚ¸¦ BR ű׷Π¹Ù²ãÁØ´Ù while(true) { if(inHTML) { if((offsetEnd = str.indexOf("")) != -1) { sb.append(str.substring(0, offsetEnd)); sb.append("[/HTML]"); str = str.substring(offsetEnd + 35, str.length); inHTML = false; } else break; } else { if((offsetStart = str.indexOf("")) != -1) { sb.append(str.substring(0, offsetStart).replace(new RegExp("[\r\n]*[\r\n]*", "gi"), "\r\n")); sb.append("[HTML]"); str = str.substring(offsetStart + 37, str.length); inHTML = true; } else if(str.indexOf("") != -1) { // IEÀÇ °æ¿ì ÁÖ¼®ÀÌ Á¦ÀÏ Ã³À½¿¡ ³ª¿À¸é »ç¶óÁö´Â ¹ö±× ÀÖÀ½ // ½ÃÀÛÀº ¾øÁö¸¸ ³¡ÀÌ ÀÖ´Â °æ¿ì¿£ ½ÃÀÛÀ§Ä¡¸¦ 0À¸·Î °£ÁÖ sb.append("[HTML]"); inHTML = true; } else { sb.append(str.replace(new RegExp("[\r\n]*[\r\n]*", "gi"), "\r\n")); break; } } } str = sb.toString(); // À̹ÌÁö ġȯÀÚ Ã³¸® while(true) { var regImage = new RegExp("]*class=[\"']?tatterImage[^>]*>", "gi"); if(result = regImage.exec(str)) { var body = result[0]; var replace = this.parseAttribute(result[0], "longdesc"); if(replace && replace.indexOf("[##_ATTACH_PATH_##]") == -1) str = str.replace(body, "[##_" + this.removeQuot(replace).replace(new RegExp("&?", "gi"), "&") + "_##]"); else str = str.replace(body, ""); } else break; } // iMazing ó¸® while(true) { var regImaging = new RegExp("]*class=[\"']?tatterImazing[^>]*>", "gi"); if(result = regImaging.exec(str)) { var body = result[0]; var size = this.parseImageSize(body, "array"); var longdesc = this.parseAttribute(result[0], "longdesc"); longdesc = this.removeQuot(longdesc); longdesc = longdesc.replace(new RegExp("(width=[\"']?)\\d*", "i"), "$1" + size[0]); longdesc = longdesc.replace(new RegExp("(height=[\"']?)\\d*", "i"), "$1" + size[1]); str = str.replace(body, "[##_" + longdesc.replace(new RegExp("&?", "gi"), "&") + "_##]"); } else break; } // Gallery ó¸® while(true) { var regGallery = new RegExp("]*class=[\"']?tatterGallery[^>]*>", "gi"); if(result = regGallery.exec(str)) { var body = result[0]; var size = this.parseImageSize(body, "array"); var longdesc = this.parseAttribute(result[0], "longdesc"); longdesc = this.removeQuot(longdesc); longdesc = longdesc.replace(new RegExp("(width=[\"']?)\\d*", "i"), "$1" + size[0]); longdesc = longdesc.replace(new RegExp("(height=[\"']?)\\d*", "i"), "$1" + size[1]); longdesc = longdesc.split("|"); // TT 1.0 alpha ~ 1.0.1±îÁö ¾²´ø Gallery ġȯÀÚ¸¦ À§ÇÑ ÄÚµå if(longdesc.length % 2 == 1) longdesc.length--; var files = ""; for(var i=1; i]*class=[\"']?tatterJukebox[^>]*>", "gi"); if(result = regJukebox.exec(str)) { var body = result[0]; var size = this.parseImageSize(body, "array"); var longdesc = this.parseAttribute(result[0], "longdesc"); longdesc = this.removeQuot(longdesc); longdesc = longdesc.replace(new RegExp("(width=[\"']?)\\d*", "i"), "$1" + size[0]); longdesc = longdesc.replace(new RegExp("(height=[\"']?)\\d*", "i"), "$1" + size[1]); longdesc = longdesc.split("|"); var files = ""; for(var i=1; i", "gi"), "_M#]"); // Music ó¸®(J. Parker) while(true) { var regMusic = new RegExp("]*class=[\"']?tatterMusic.*?>", "gi"); if(result = regMusic.exec(str)) { var body = result[0]; var longdesc = this.parseAttribute(body, "longDesc") longdesc = longdesc.replace(new RegExp("&?", "gi"), "&"); str = str.replace(body, ""); } break; } // Embed ó¸® while(true) { var regEmbed = new RegExp("]*class=[\"']?tatterEmbed.*?>", "gi"); if(result = regEmbed.exec(str)) { var body = result[0]; str = str.replace(body, ""); } break; } // Flash ó¸® while(true) { var regFlash = new RegExp("]*class=[\"']?tatterFlash.*?>", "gi"); if(result = regFlash.exec(str)) { var body = result[0]; str = str.replace(body, ''); } break; } if(!this.isSafari) { // XHTML 1.0 Á¤±ÔÈ­ // -> , -> , -> , -> str = str.replace(new RegExp("]*)>(.*?)", "gi"), "$2"); str = str.replace(new RegExp("]*)>(.*?)", "gi"), "$2"); str = str.replace(new RegExp("]*)>(.*?)", "gi"), "$2"); str = str.replace(new RegExp("]*)>(.*?)", "gi"), "$2"); var regTag = new RegExp("<([^\\s>]+)\\s*([^>]*)(/?)>", "gi"); while(result = regTag.exec(str)) { var tagBody = result[0]; var tagStart = "<" + result[1]; var tagFinish = result[3] + ">"; if(tagStart == "