")+1);
sBodyTag=s;
//XHTML inside BODY tag
var sBodyContent=recur(oEditor.document.body,"");
//var sBodyContent= oEditor.document.body.innerHTML;
if(sBodyContent.substr(0,4)=="
")sBodyContent=sBodyContent.substr(4);//remove
if it is added by lineBreak2()
var idSource = document.getElementById("idSource").contentWindow;
var sourceDocBody = idSource.document.body;
//remove all child
sourceDocBody.innerHTML = "";
sourceDocBody.innerHTML = sBodyContent;
sourceDocBody.style.cssText="overflow-x:scroll;overflow-y:scroll;white-space:nowrap";
sourceDocBody.clearAttributes;
sourceDocBody.style.marginTop='4';
sourceDocBody.style.marginLeft='10';
sourceDocBody.style.fontFamily='Tahoma';
sourceDocBody.style.fontSize='11px';
sourceDocBody.style.color='black';
sourceDocBody.style.background='white';
//idSource.document.addEventListener("keydown", new Function("doKeyPress(arguments[0])"), false);
doWrap()
idSource.document.designMode="on";
idSource.focus();
}
function doKeyPress(evt)
{
/*
if (evt.keyCode==13)
{
var thisSel = document.selection.createRange();
thisSel.pasteHTML('
');
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()
{
window.opener.oUtil.obj.saveForUndo();
var obj = window.opener.oUtil.obj;
var oEditor=window.opener.oUtil.oEditor;
var idSource = document.getElementById("idSource").contentWindow;
var range = idSource.document.body.ownerDocument.createRange();
range.selectNodeContents(idSource.document.body);
var sHTML = range.toString();
sHTML = sHTML.replace(/>\s+<"); //replace space between tag
sHTML = sHTML.replace(/\r/gi, ""); //replace space between tag
sHTML = sHTML.replace(/(
)\s+/gi, "$1"); //replace space between BR and text
sHTML = sHTML.replace(/\s+(<)/gi, "$1"); //replace space between BR and text
sHTML = sHTML.replace(/(>)\s+/gi, "$1"); //replace space between BR and text
oEditor.document.body.innerHTML = obj.docType + sHTML;
//var sBodyContent = idSource.document.body.innerText;
//sHTML=obj.docType+sBaseHREF+sBodyHeader+sBodyTag+sBodyContent+"
"+sBodyFooter;
//obj.putHTML(sHTML);
}
/************************
HTML to XHTML (formatted)
************************/
function lineBreak2(tag) //[0]
","",""];
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")
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(//g, ">").replace(/'/g, "'").replace(/[\s+]/ig,"#_#");
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+="
";
/*** format ***/
sHTML+="<<\/font>title"+
"><\/font>" + oNode.innerHTML +
"</title"+
">";
/**************/
}
else
{
if(sTagName=="AREA")
{
var sCoords=oNode.coords;
var sShape=oNode.shape;
}
var oNode2=oNode.cloneNode(false);
s=window.opener.getOuterHTML(oNode2).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(/[
)/ig,"nowrap=\"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>"
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=window.opener.getOuterHTML(oNode);
if(sTagName=="SCRIPT")
{
s = s.replace(/