0byt3m1n1
Path:
/
data
/
17
/
1
/
18
/
11
/
1670011
/
user
/
1801231
/
htdocs
/
marketting
/
js
/
scripts
/
moz
/
[
Home
]
File: source_xhtml.htm
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <link href="../style/editor.css" rel="stylesheet" type="text/css"> <link href="../style/istoolbar.css" rel="stylesheet" type="text/css"> <script language="javascript" src="../istoolbar.js"></script> <script> var sLangDir=window.opener.oUtil.langDir; document.write("<scr"+"ipt src='../language/"+sLangDir+"/source_html.js'></scr"+"ipt>"); </script> <script>writeTitle()</script> <script> var iconOffsetTop = -75; var sBaseHREF=""; var sBodyHeader; var sBodyFooter; var sBodyTag; function init() { var idSource = document.getElementById("idSource").contentWindow; var doc = idSource.document; doc.open(); doc.write("<html><head><head><body></body></html>"); doc.close(); } function doCmd(sCmd,sOption) { var idSource = document.getElementById("idSource").contentWindow; idSource.document.execCommand(sCmd, false, sOption); } function bodyOnLoad() { var oEditor=window.opener.oUtil.oEditor; //base handling sHTML=window.opener.getOuterHTML(oEditor.document.documentElement); var arrTmp=sHTML.match(/<BASE([^>]*)>/ig); if(arrTmp!=null)sBaseHREF=arrTmp[0]; var arrBase = oEditor.document.getElementsByTagName("BASE"); if (arrBase.length != null) { for(var i=0; i<arrBase.length; i++) { arrBase[i].parentNode.removeChild(arrBase[i]); } } //~~~~~~~~~~~~~ //Save sBodyHeader, sBodyFooter, sBodyTag var s=window.opener.getOuterHTML(oEditor.document.documentElement).toLowerCase(); var arrTmp=s.split("<body"); sBodyHeader=arrTmp[0]; s=arrTmp[1]; arrTmp=s.split("</body>"); sBodyFooter=arrTmp[1]; s=window.opener.getOuterHTML(oEditor.document.documentElement).toLowerCase(); s=s.substr(s.indexOf("<body")); s=s.substr(0,s.indexOf(">")+1); sBodyTag=s; //XHTML inside BODY tag var sBodyContent=recur(oEditor.document.body,""); //var sBodyContent= oEditor.document.body.innerHTML; if(sBodyContent.substr(0,4)=="<br>")sBodyContent=sBodyContent.substr(4);//remove <br> 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('<br>'); 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+</gi, "><"); //replace space between tag sHTML = sHTML.replace(/\r/gi, ""); //replace space between tag sHTML = sHTML.replace(/(<br>)\s+/gi, "$1"); //replace space between BR and text sHTML = sHTML.replace(/(<br\s*\/>)\s+/gi, "$1"); //replace space between <BR/> and text. spasi antara <br /> menyebebkan content menggeser kekanan saat di apply //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, " "); //replace spaces with space oEditor.document.body.innerHTML = obj.docType + sHTML; //var sBodyContent = idSource.document.body.innerText; //sHTML=obj.docType+sBaseHREF+sBodyHeader+sBodyTag+sBodyContent+"</body>"+sBodyFooter; //obj.putHTML(sHTML); obj.cleanDeprecated(); } /************************ HTML to XHTML (formatted) ************************/ function lineBreak2(tag) //[0]<TAG>[1]text[2]</TAG> { arrReturn = ["<br>","",""]; 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"||tag=="IMG") 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=["<br>","","<br>"]; if( tag=="STYLE"||tag=="SCRIPT") arrReturn=["<br>","",""]; if(tag=="BR"||tag=="HR") arrReturn=["","<br>",""]; return arrReturn; } function fixAttr(s) { s = String(s).replace(/&/g, "&amp;");//harus di awal s = String(s).replace(/</g, "&lt;"); //s = String(s).replace(/>/g, "&gt;");//tdk apa2 s = String(s).replace(/"/g, "&quot;"); //s = String(s).replace(/'/g, "&apos;");//tdk apa2 return s; } function fixVal(s) { s = String(s).replace(/&/g, "&amp;");//harus di awal s = String(s).replace(/</g, "&lt;"); var x = escape(s); x = unescape(x.replace(/\%A0/gi, "-*REPL*-")); s = x.replace(/-\*REPL\*-/gi, " "); return s; } function recur(oEl,sTab) { var sHTML=""; for(var i=0;i<oEl.childNodes.length;i++) { var oNode=oEl.childNodes[i]; if(oNode.parentNode!=oEl)continue; if(oNode.nodeType==1)//tag { var sTagName = oNode.nodeName; if(sTagName=="BR" && oNode.className=="innova") continue; 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=window.opener.getOuterHTML(oNode); s=s.replace(/\"[^\"]*\"/ig,function(x){ x=x.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/'/g, "'").replace(/\s+/ig,"#_#").replace(/&amp;/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(/<param([^>]*)>/ig,"\n<param$1 />").replace(/\/ \/>$/ig," \/>");//no closing tag if(sTagName=="EMBED") if(oNode.innerHTML=="") s=s.replace(/>$/ig," \/>").replace(/\/ \/>$/ig,"\/>");//no closing tag s=s.replace(/<param name=\"Play\" value=\"0\" \/>/,"<param name=\"Play\" value=\"-1\" \/>") //sSelThis="";//selThis //if(oElement==oNode)sSelThis=" selThis='selThis'" /*** format ***/ //selThis sHTML+="<span style='color:#555555;background:#f7f7f7'><xmp style='font-family:tahoma;margin-top:0px;margin-bottom:0px;'>"+s+"</xmp></span>"; /**************/ } else if(sTagName=="TITLE") { //s="<title>"+oNode.innerHTML+"</title>"; /*** format ***/ sHTML+="<font color='#0000cc'><<\/font><font color='#8b4513'>title</font>"+ "<font color='#0000cc'>><\/font>" + oNode.innerHTML + "<font color='#0000cc'></</font><font color='#8b4513'>title</font>"+ "<font color='#0000cc'>></font>"; /**************/ } 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(/'/g, "'").replace(/\s+/ig,"#_#"); x=x.replace(/&/g, "&").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(/(<hr[^>]*)(noshade="")/ig,"$1noshade=\"noshade\""); s=s.replace(/(<input[^>]*)(checked="")/ig,"$1checked=\"checked\""); s=s.replace(/(<select[^>]*)(multiple="")/ig,"$1multiple=\"multiple\""); s=s.replace(/(<option[^>]*)(selected="")/ig,"$1selected=\"true\""); s=s.replace(/(<input[^>]*)(readonly="")/ig,"$1readonly=\"readonly\""); s=s.replace(/(<input[^>]*)(disabled="")/ig,"$1disabled=\"disabled\""); s=s.replace(/(<td[^>]*)(nowrap="" )/ig,"$1nowrap=\"nowrap\" "); s=s.replace(/(<td[^>]*)(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="<span"+sSelThis+"><font color='#0000cc'><<\/font><font color='#8b4513'>" sA1="<span><font color='#0000cc'><<\/font><font color='#8b4513'>" sA2="<\/font>" sA3="<font color='#0000cc'>><\/font>" sA4="<font color='#0000cc'>/><\/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+="</span>";//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(/<script([^>]*)>[\n+\s+\t+]*/ig,"<script$1>");//clean spaces s = s.replace(/[\n+\s+\t+]*<\/script>/ig,"<\/script>");//clean spaces s = s.replace(/<script([^>]*)>\/\/<!\[CDATA\[/ig,""); s = s.replace(/\/\/\]\]><\/script>/ig,""); s = s.replace(/<script([^>]*)>/ig,""); s = s.replace(/<\/script>/ig,""); s = s.replace(/^\s+/,'').replace(/\s+$/,''); /*** format ***/ sHTML+="<div><span style='color:#828282;'>//<![CDATA[<xmp style='font-family:tahoma;margin-top:0px;margin-bottom:0px;'>"+s+"</xmp>//]]></span></div>"; /**************/ } if(sTagName=="STYLE") { s = s.replace(/<style([^>]*)>[\n+\s+\t+]*/ig,"<style$1>");//clean spaces s = s.replace(/[\n+\s+\t+]*<\/style>/ig,"<\/style>");//clean spaces s = s.replace(/<style([^>]*)><!--/ig,""); s = s.replace(/--><\/style>/ig,""); s = s.replace(/<style([^>]*)>/ig,""); s = s.replace(/<\/style>/ig,""); s = s.replace(/^\s+/,"").replace(/\s+$/,""); /*** format ***/ sHTML+="<div><span style='color:#828282;'><!--<xmp style='font-family:tahoma;margin-top:0px;margin-bottom:0px;'>"+s+"</xmp>--></span></div>"; /**************/ } if(sTagName=="DIV"||sTagName=="P") { if(oNode.innerHTML==""||oNode.innerHTML==" ") { sHTML+="&nbsp;"; } else sHTML+=recur(oNode,sT+" "); } else if (sTagName == "STYLE" || sTagName=="SCRIPT") { //do nothing } else { sHTML+=recur(oNode,sT+" "); } /*** tabs ***/ if(sTagName!="TEXTAREA")sHTML+= lineBreak2(sTagName)[2]; if(sTagName!="TEXTAREA")if(lineBreak2(sTagName)[2] !="") sHTML+= sT;//If new line, use base Tabs /************/ /*** format ***/ //selThis sHTML+="<font color='#0000cc'></</font><font color='#8b4513'>" + sTagName.toLowerCase() + "</font><font color='#0000cc'>></font></span>"; /**************/ } } } else if(oNode.nodeType==3)//text { sHTML+= fixVal(oNode.nodeValue); } else if(oNode.nodeType==8) { if(window.opener.getOuterHTML(oNode).substring(0,2)=="<"+"%") {//server side script sTmp=(window.opener.getOuterHTML(oNode).substring(2)) sTmp=sTmp.substring(0,sTmp.length-2) sTmp=sTmp.replace(/^\s+/,"").replace(/\s+$/,""); sHTML+= "<div><span style='background:yellow'><%<xmp style='font-family:tahoma;margin-top:0px;margin-bottom:0px;'>"+sTmp+"</xmp>%></span></div>"; } else {//comments sTmp=oNode.nodeValue; sTmp = sTmp.replace(/^\s+/,"").replace(/\s+$/,""); sHTML+= "<div><span style='color:#828282;'><!--<xmp style='font-family:tahoma;margin-top:0px;margin-bottom:0px;'>"+sTmp+"</xmp>--></span></div>"; } } else { ;//Not Processed } } return sHTML; } function doWrap() { var inpWrap = document.getElementById("inpWrap"); if(inpWrap.checked==true) { //Wrap Text idSource.document.body.style.whiteSpace="normal"; } else { idSource.document.body.style.whiteSpace="nowrap"; } } //******************* function setupToolbar() { var obj = window.opener.oUtil.obj; var tb=new ISToolbar("srcEdt"); tb.onClick=function(id) {tbAction(tb, id);}; tb.iconPath="../"+obj.iconPath; tb.btnWidth=obj.iconWidth; tb.btnHeight=obj.iconHeight; //tb.addButton("btnCut","btnCut.gif",getTxt("Cut")); //tb.addButton("btnCopy","btnCopy.gif",getTxt("Copy")); //tb.addButton("btnPaste","btnPaste.gif",getTxt("Paste")); //tb.addSeparator(); tb.addButton("btnUndo","btnUndo.gif",getTxt("Undo")); tb.addButton("btnRedo","btnRedo.gif",getTxt("Redo")); tb.addSeparator(); tb.addButton("btnSearch","btnSearch.gif",getTxt("Search")); document.getElementById("idToolbar").innerHTML=tb.render(); } function tbAction(tb, id) { switch(id) { case "btnCut": doCmd('Cut'); break; case "btnCopy": doCmd('Copy'); break; case "btnPaste": doCmd('Paste'); break; case "btnUndo": doCmd('Undo'); break; case "btnRedo": doCmd('Redo'); break; case "btnSearch": modelessDialogShow('search2.htm',375,163); break; } } //******************* function modelessDialogShow(url,width,height) { var left = screen.availWidth/2 - width/2; var top = screen.availHeight/2 - height/2; window.open(url, "", "dependent=yes,width="+width+"px,height="+height+",left="+left+",top="+top); } </script> </head> <body onload="setupToolbar();loadTxt();init();bodyOnLoad();" style="overflow:hidden;margin:0;background: #f4f4f4;"> <table width="100%" height="100%" align="center" cellpadding="0" cellspacing="0"> <tr> <td id="idToolbar"> </td> </tr> <tr> <td style="height:100%"> <iframe style="width:100%;height:100%;" name="idSource" id="idSource"></iframe> </td> </tr> <tr> <td class="dialogFooter" style="padding:13;padding-top:7;padding-bottom:7;" align="right" valign="right"> <table cellpadding=1 cellspacing=0> <td width="100%"> <input type="checkbox" ID="inpWrap" NAME="inpWrap" class="inpChk" onclick="doWrap()" checked> <span id="txtLang" name="txtLang">Wrap Text</span> </td> <td> <input type="button" name="btnCancel" id="btnCancel" value="cancel" onclick="self.close()" class="inpBtn" onmouseover="this.className='inpBtnOver';" onmouseout="this.className='inpBtnOut'"> </td> <td> <input type="button" name="btnApply" id="btnApply" value="apply" onclick="doUpdate();bodyOnLoad()" class="inpBtn" onmouseover="this.className='inpBtnOver';" onmouseout="this.className='inpBtnOut'"> </td> <td> <input type="button" name="btnOk" id="btnOk" value=" ok " onclick="doUpdate();self.close()" class="inpBtn" onmouseover="this.className='inpBtnOver';" onmouseout="this.className='inpBtnOut'"> </td> </table> </td> </tr> </table> </body> </html>