"); sBodyFooter=arrTmp[1]; s=oEditor.document.documentElement.outerHTML; s=s.substr(s.indexOf("")+1); sBodyTag=s; //XHTML inside BODY tag sBodyContent=recur(oEditor.document.body,""); if(sBodyContent.substr(0,4)=="
")sBodyContent=sBodyContent.substr(4);//remove
if it is added by lineBreak2() //Display idSource.document.body.innerHTML=sBodyContent; idSource.document.body.style.cssText="overflow-x:scroll;overflow-y:scroll;white-space:nowrap"; //Format idSource.document.body.contentEditable=true; idSource.document.body.clearAttributes; idSource.document.body.style.marginTop='4'; idSource.document.body.style.marginLeft='10'; idSource.document.body.style.fontFamily='Tahoma'; idSource.document.body.style.fontSize='11px'; idSource.document.body.style.color='black'; idSource.document.body.style.background='white'; idSource.document.body.onkeydown = new Function("doKeyPress(idSource.event)"); idSource.focus(); doWrap(); //selThis for(var i=0;i
'); evt.cancelBubble = true; evt.returnValue = false; thisSel.select(); thisSel.moveEnd("character", 1); thisSel.moveStart("character", 1); thisSel.collapse(false); return false; idSource.focus(); } if (evt.ctrlKey) { if(evt.keyCode==65)doCmd("SelectAll"); } } function doUpdate() { dialogArguments.oUtil.obj.saveForUndo(); var obj = dialogArguments.oUtil.obj; var sBodyContent = idSource.document.body.innerText; sHTML=obj.docType+sBaseHREF+sBodyHeader+sBodyTag+sBodyContent+""+sBodyFooter; obj.putHTML(sHTML); //*** RUNTIME STYLES *** obj.runtimeBorder(false); obj.runtimeStyles(); //*********************** } /************************ HTML to XHTML (formatted) ************************/ function lineBreak2(tag) //[0]
[1]text[2]
{ arrReturn = ["
","",""]; if( tag=="A"||tag=="B"||tag=="CITE"||tag=="CODE"||tag=="EM"|| tag=="FONT"||tag=="I"||tag=="SMALL"||tag=="STRIKE"||tag=="BIG"|| tag=="STRONG"||tag=="SUB"||tag=="SUP"||tag=="U"||tag=="SAMP"|| tag=="S"||tag=="VAR"||tag=="BASEFONT"||tag=="KBD"||tag=="TT"||tag=="SPAN") arrReturn=["","",""]; if( tag=="TEXTAREA"||tag=="TABLE"||tag=="THEAD"||tag=="TBODY"|| tag=="TR"||tag=="OL"||tag=="UL"||tag=="DIR"||tag=="MENU"|| tag=="FORM"||tag=="SELECT"||tag=="MAP"||tag=="DL"||tag=="HEAD"|| tag=="BODY"||tag=="HTML") arrReturn=["
","","
"]; if( tag=="STYLE"||tag=="SCRIPT") arrReturn=["
","",""]; if(tag=="BR"||tag=="HR") arrReturn=["","
",""]; return arrReturn; } function fixAttr(s) { s = String(s).replace(/&/g, "&");//harus di awal s = String(s).replace(//g, ">");//tdk apa2 s = String(s).replace(/"/g, """); //s = String(s).replace(/'/g, "'");//tdk apa2 return s; } function fixVal(s) { s = String(s).replace(/&/g, "&");//harus di awal s = String(s).replace(/ -1) sCloseTag=sCloseTag.substr(sCloseTag.indexOf(">")+1); sCloseTag = sCloseTag.substring(1, sCloseTag.indexOf(">")); if (sCloseTag.indexOf(" ")>-1) sCloseTag=sCloseTag.substring(0, sCloseTag.indexOf(" ")); var bDoNotProcess=false; if(sTagName.substring(0,1)=="/") { bDoNotProcess=true;//do not process } else { /*** tabs ***/ var sT= sTab; sHTML+= lineBreak2(sTagName)[0]; if(lineBreak2(sTagName)[0] !="") sHTML+= sT;//If new line, use base Tabs /************/ } if(bDoNotProcess) { ;//do not process } else if(sTagName=="OBJECT" || sTagName=="EMBED") { s=oNode.outerHTML; s=s.replace(/\"[^\"]*\"/ig,function(x){ x=x.replace(/&/g, "&").replace(//g, ">").replace(/'/g, "'").replace(/\s+/ig,"#_#").replace(/&/gi,"&"); return x}); s=s.replace(/<([^ >]*)/ig,function(x){return x.toLowerCase()}) s=s.replace(/ ([^=]+)=([^"' >]+)/ig," $1=\"$2\"");//new s=s.replace(/ ([^=]+)=/ig,function(x){return x.toLowerCase()}); s=s.replace(/#_#/ig," "); s=s.replace(/
]*)>/ig,"\n
").replace(/\/ \/>$/ig," \/>");//no closing tag if(sTagName=="EMBED") if(oNode.innerHTML=="") s=s.replace(/>$/ig," \/>").replace(/\/ \/>$/ig,"\/>");//no closing tag s=s.replace(/
/,"
") sSelThis="";//selThis if(oElement==oNode)sSelThis=" selThis='selThis'" /*** format ***/ //selThis sHTML+="
"+s+"
"; /**************/ } else if(sTagName=="TITLE") { //s="
"+oNode.innerHTML+"
"; /*** format ***/ sHTML+="
<<\/font>
title
"+ "
><\/font>" + oNode.innerHTML + "
</
title
"+ "
>
"; /**************/ } else { if(sTagName=="AREA") { var sCoords=oNode.coords; var sShape=oNode.shape; } var oNode2=oNode.cloneNode(); if (oNode.checked) oNode2.checked=oNode.checked; s=oNode2.outerHTML.replace(/<\/[^>]*>/,""); if(sTagName=="STYLE") { var arrTmp=s.match(/<[^>]*>/ig); s=arrTmp[0]; } s=s.replace(/\"[^\"]*\"/ig,function(x){ //x=x.replace(/&/g, "&").replace(//g, ">").replace(/'/g, "'").replace(/\s+/ig,"#_#"); x=x.replace(/&/g, "&").replace(//g, ">").replace(/\s+/ig,"#_#"); return x}); s=s.replace(/<([^ >]*)/ig,function(x){return x.toLowerCase()}) s=s.replace(/ ([^=]+)=([^" >]+)/ig," $1=\"$2\""); s=s.replace(/ ([^=]+)=/ig,function(x){return x.toLowerCase()}); s=s.replace(/#_#/ig," "); //single attribute s=s.replace(/(
]*)(noshade)/ig,"$1noshade=\"noshade\""); s=s.replace(/(
]*)(checked)/ig,"$1checked=\"checked\""); s=s.replace(/(
]*)(multiple)/ig,"$1multiple=\"multiple\""); s=s.replace(/(
]*)(selected)/ig,"$1selected=\"true\""); s=s.replace(/(
]*)(readonly)/ig,"$1readonly=\"readonly\""); s=s.replace(/(
]*)(disabled)/ig,"$1disabled=\"disabled\""); s=s.replace(/(
]*)(nowrap )/ig,"$1nowrap=\"nowrap\" "); s=s.replace(/(
]*)(nowrap\>)/ig,"$1nowrap=\"nowrap\"\>"); s=s.replace(/ contenteditable=\"true\"/ig,""); if(sTagName=="AREA") { s=s.replace(/ coords=\"0,0,0,0\"/ig," coords=\""+sCoords+"\""); s=s.replace(/ shape=\"RECT\"/ig," shape=\""+sShape+"\""); } var bClosingTag=true; if(sTagName=="IMG"||sTagName=="BR"|| sTagName=="AREA"||sTagName=="HR"|| sTagName=="INPUT"||sTagName=="BASE"|| sTagName=="LINK"||sTagName=="META")//no closing tag { s=s.replace(/>$/ig," \/>").replace(/\/ \/>$/ig,"\/>");//no closing tag bClosingTag=false; } sSelThis="";//selThis if(oElement==oNode)sSelThis=" selThis='selThis'" /*** format ***/ //selThis sA1="
<<\/font>
" sA2="<\/font>" sA3="
><\/font>" sA4="
/><\/font>" s=s.replace(/<([^ >]*)([^ \/>]*)/ig,sA1+"$1"+sA2+"$2"); //s=s.replace(/\/>$/ig,sA4);//if there is no closing tag s=s.replace(/>$/ig,sA3); /**************/ sHTML+=s; if(!bClosingTag)sHTML+="
";//selThis /*** tabs ***/ if(sTagName!="TEXTAREA")sHTML+= lineBreak2(sTagName)[1]; if(sTagName!="TEXTAREA")if(lineBreak2(sTagName)[1] !="") sHTML+= sT;//If new line, use base Tabs /************/ if(bClosingTag) { /*** CONTENT ***/ s=oNode.outerHTML if(sTagName=="SCRIPT") { s = s.replace(/
Wrap Text