/* Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. Available via Academic Free License >= 2.1 OR the modified BSD license. see: http://dojotoolkit.org/license for details */ if(!dojo._hasResource["dijit._editor.RichText"]){ dojo._hasResource["dijit._editor.RichText"]=true; dojo.provide("dijit._editor.RichText"); dojo.require("dijit._Widget"); dojo.require("dijit._CssStateMixin"); dojo.require("dijit._editor.selection"); dojo.require("dijit._editor.range"); dojo.require("dijit._editor.html"); if(!dojo.config["useXDomain"]||dojo.config["allowXdRichTextSave"]){ if(dojo._postLoad){ (function(){ var _1=dojo.doc.createElement("textarea"); _1.id=dijit._scopeName+"._editor.RichText.savedContent"; dojo.style(_1,{display:"none",position:"absolute",top:"-100px",height:"3px",width:"3px"}); dojo.body().appendChild(_1); })(); }else{ try{ dojo.doc.write(""); } catch(e){ } } } dojo.declare("dijit._editor.RichText",[dijit._Widget,dijit._CssStateMixin],{constructor:function(_2){ this.contentPreFilters=[]; this.contentPostFilters=[]; this.contentDomPreFilters=[]; this.contentDomPostFilters=[]; this.editingAreaStyleSheets=[]; this.events=[].concat(this.events); this._keyHandlers={}; this.contentPreFilters.push(dojo.hitch(this,"_preFixUrlAttributes")); if(dojo.isMoz){ this.contentPreFilters.push(this._normalizeFontStyle); this.contentPostFilters.push(this._removeMozBogus); } if(dojo.isWebKit){ this.contentPreFilters.push(this._removeWebkitBogus); this.contentPostFilters.push(this._removeWebkitBogus); } if(dojo.isIE){ this.contentPostFilters.push(this._normalizeFontStyle); } if(_2&&dojo.isString(_2.value)){ this.value=_2.value; } this.onLoadDeferred=new dojo.Deferred(); },baseClass:"dijitEditor",inheritWidth:false,focusOnLoad:false,name:"",styleSheets:"",_content:"",height:"300px",minHeight:"1em",isClosed:true,isLoaded:false,_SEPARATOR:"@@**%%__RICHTEXTBOUNDRY__%%**@@",onLoadDeferred:null,isTabIndent:false,disableSpellCheck:false,postCreate:function(){ if("textarea"==this.domNode.tagName.toLowerCase()){ console.warn("RichText should not be used with the TEXTAREA tag. See dijit._editor.RichText docs."); } this.inherited(arguments); dojo.publish(dijit._scopeName+"._editor.RichText::init",[this]); this.open(); this.setupDefaultShortcuts(); },setupDefaultShortcuts:function(){ var _3=dojo.hitch(this,function(_4,_5){ return function(){ return !this.execCommand(_4,_5); }; }); var _6={b:_3("bold"),i:_3("italic"),u:_3("underline"),a:_3("selectall"),s:function(){ this.save(true); },m:function(){ this.isTabIndent=!this.isTabIndent; },"1":_3("formatblock","h1"),"2":_3("formatblock","h2"),"3":_3("formatblock","h3"),"4":_3("formatblock","h4"),"\\":_3("insertunorderedlist")}; if(!dojo.isIE){ _6.Z=_3("redo"); } for(var _7 in _6){ this.addKeyHandler(_7,true,false,_6[_7]); } },events:["onKeyPress","onKeyDown","onKeyUp","onClick"],captureEvents:[],_editorCommandsLocalized:false,_localizeEditorCommands:function(){ if(this._editorCommandsLocalized){ return; } this._editorCommandsLocalized=true; var _8=["div","p","pre","h1","h2","h3","h4","h5","h6","ol","ul","address"]; var _9="",_a,i=0; while((_a=_8[i++])){ if(_a.charAt(1)!="l"){ _9+="<"+_a+">content
"; }else{ _9+="<"+_a+">
  • content

  • "; } } var _b=dojo.doc.createElement("div"); dojo.style(_b,{position:"absolute",top:"-2000px"}); dojo.doc.body.appendChild(_b); _b.innerHTML=_9; var _c=_b.firstChild; while(_c){ dijit._editor.selection.selectElement(_c.firstChild); dojo.withGlobal(this.window,"selectElement",dijit._editor.selection,[_c.firstChild]); var _d=_c.tagName.toLowerCase(); this._local2NativeFormatNames[_d]=document.queryCommandValue("formatblock"); this._native2LocalFormatNames[this._local2NativeFormatNames[_d]]=_d; _c=_c.nextSibling.nextSibling; } dojo.body().removeChild(_b); },open:function(_e){ if(!this.onLoadDeferred||this.onLoadDeferred.fired>=0){ this.onLoadDeferred=new dojo.Deferred(); } if(!this.isClosed){ this.close(); } dojo.publish(dijit._scopeName+"._editor.RichText::open",[this]); this._content=""; if(arguments.length==1&&_e.nodeName){ this.domNode=_e; } var dn=this.domNode; var _f; if(dojo.isString(this.value)){ _f=this.value; delete this.value; dn.innerHTML=""; }else{ if(dn.nodeName&&dn.nodeName.toLowerCase()=="textarea"){ var ta=(this.textarea=dn); this.name=ta.name; _f=ta.value; dn=this.domNode=dojo.doc.createElement("div"); dn.setAttribute("widgetId",this.id); ta.removeAttribute("widgetId"); dn.cssText=ta.cssText; dn.className+=" "+ta.className; dojo.place(dn,ta,"before"); var _10=dojo.hitch(this,function(){ dojo.style(ta,{display:"block",position:"absolute",top:"-1000px"}); if(dojo.isIE){ var s=ta.style; this.__overflow=s.overflow; s.overflow="hidden"; } }); if(dojo.isIE){ setTimeout(_10,10); }else{ _10(); } if(ta.form){ dojo.connect(ta.form,"onsubmit",this,function(){ ta.value=this.getValue(); }); } }else{ _f=dijit._editor.getChildrenHtml(dn); dn.innerHTML=""; } } var _11=dojo.contentBox(dn); this._oldHeight=_11.h; this._oldWidth=_11.w; this.savedContent=_f; if(dn.nodeName&&dn.nodeName=="LI"){ dn.innerHTML="
    "; } this.header=dn.ownerDocument.createElement("div"); dn.appendChild(this.header); this.editingArea=dn.ownerDocument.createElement("div"); dn.appendChild(this.editingArea); this.footer=dn.ownerDocument.createElement("div"); dn.appendChild(this.footer); if(this.name!==""&&(!dojo.config["useXDomain"]||dojo.config["allowXdRichTextSave"])){ var _12=dojo.byId(dijit._scopeName+"._editor.RichText.savedContent"); if(_12.value!==""){ var _13=_12.value.split(this._SEPARATOR),i=0,dat; while((dat=_13[i++])){ var _14=dat.split(":"); if(_14[0]==this.name){ _f=_14[1]; _13.splice(i,1); break; } } } dojo.addOnUnload(dojo.hitch(this,"_saveContent")); } this.isClosed=false; var ifr=(this.editorObject=this.iframe=dojo.doc.createElement("iframe")); ifr.id=this.id+"_iframe"; this._iframeSrc=this._getIframeDocTxt(); ifr.style.border="none"; ifr.style.width="100%"; if(this._layoutMode){ ifr.style.height="100%"; }else{ if(dojo.isIE>=7){ if(this.height){ ifr.style.height=this.height; } if(this.minHeight){ ifr.style.minHeight=this.minHeight; } }else{ ifr.style.height=this.height?this.height:this.minHeight; } } ifr.frameBorder=0; ifr._loadFunc=dojo.hitch(this,function(win){ this.window=win; this.document=this.window.document; if(dojo.isIE){ this._localizeEditorCommands(); } this.onLoad(_f); }); var s="javascript:parent."+dijit._scopeName+".byId(\""+this.id+"\")._iframeSrc"; ifr.setAttribute("src",s); this.editingArea.appendChild(ifr); if(dn.nodeName=="LI"){ dn.lastChild.style.marginTop="-1.2em"; } dojo.addClass(this.domNode,this.baseClass); },_local2NativeFormatNames:{},_native2LocalFormatNames:{},_getIframeDocTxt:function(){ var _15=dojo.getComputedStyle(this.domNode); var _16=""; var _17=true; if(dojo.isIE||(!this.height&&!dojo.isMoz)){ _16="
    "; _17=false; }else{ if(dojo.isMoz){ this._cursorToStart=true; _16=" "; } } var _18=[_15.fontWeight,_15.fontSize,_15.fontFamily].join(" "); var _19=_15.lineHeight; if(_19.indexOf("px")>=0){ _19=parseFloat(_19)/parseFloat(_15.fontSize); }else{ if(_19.indexOf("em")>=0){ _19=parseFloat(_19); }else{ _19="normal"; } } var _1a=""; var _1b=this; this.style.replace(/(^|;)\s*(line-|font-?)[^;]+/ig,function(_1c){ _1c=_1c.replace(/^;/ig,"")+";"; var s=_1c.split(":")[0]; if(s){ s=dojo.trim(s); s=s.toLowerCase(); var i; var sC=""; for(i=0;i\n\n":"\n\n",(dojo.isMoz&&_1d.length?""+_1d[0].innerHTML+"\n":""),"\n","\n",this._applyEditingAreaStyleSheets(),"\n","\n",_16,"\n"].join(""); },_applyEditingAreaStyleSheets:function(){ var _1e=[]; if(this.styleSheets){ _1e=this.styleSheets.split(";"); this.styleSheets=""; } _1e=_1e.concat(this.editingAreaStyleSheets); this.editingAreaStyleSheets=[]; var _1f="",i=0,url; while((url=_1e[i++])){ var _20=(new dojo._Url(dojo.global.location,url)).toString(); this.editingAreaStyleSheets.push(_20); _1f+=""; } return _1f; },addStyleSheet:function(uri){ var url=uri.toString(); if(url.charAt(0)=="."||(url.charAt(0)!="/"&&!uri.host)){ url=(new dojo._Url(dojo.global.location,url)).toString(); } if(dojo.indexOf(this.editingAreaStyleSheets,url)>-1){ return; } this.editingAreaStyleSheets.push(url); this.onLoadDeferred.addCallback(dojo.hitch(function(){ if(this.document.createStyleSheet){ this.document.createStyleSheet(url); }else{ var _21=this.document.getElementsByTagName("head")[0]; var _22=this.document.createElement("link"); _22.rel="stylesheet"; _22.type="text/css"; _22.href=url; _21.appendChild(_22); } })); },removeStyleSheet:function(uri){ var url=uri.toString(); if(url.charAt(0)=="."||(url.charAt(0)!="/"&&!uri.host)){ url=(new dojo._Url(dojo.global.location,url)).toString(); } var _23=dojo.indexOf(this.editingAreaStyleSheets,url); if(_23==-1){ return; } delete this.editingAreaStyleSheets[_23]; dojo.withGlobal(this.window,"query",dojo,["link:[href=\""+url+"\"]"]).orphan(); },disabled:false,_mozSettingProps:{"styleWithCSS":false},_setDisabledAttr:function(_24){ this.disabled=_24; if(!this.isLoaded){ return; } _24=!!_24; if(dojo.isIE||dojo.isWebKit||dojo.isOpera){ var _25=dojo.isIE&&(this.isLoaded||!this.focusOnLoad); if(_25){ this.editNode.unselectable="on"; } this.editNode.contentEditable=!_24; if(_25){ var _26=this; setTimeout(function(){ _26.editNode.unselectable="off"; },0); } }else{ try{ this.document.designMode=(_24?"off":"on"); } catch(e){ return; } if(!_24&&this._mozSettingProps){ var ps=this._mozSettingProps; for(var n in ps){ if(ps.hasOwnProperty(n)){ try{ this.document.execCommand(n,false,ps[n]); } catch(e2){ } } } } } this._disabledOK=true; },onLoad:function(_27){ if(!this.window.__registeredWindow){ this.window.__registeredWindow=true; this._iframeRegHandle=dijit.registerIframe(this.iframe); } if(!dojo.isIE&&(this.height||dojo.isMoz)){ this.editNode=this.document.body; }else{ this.editNode=this.document.body.firstChild; var _28=this; if(dojo.isIE){ var _29=(this.tabStop=dojo.doc.createElement("
    ")); this.editingArea.appendChild(_29); this.iframe.onfocus=function(){ _28.editNode.setActive(); }; } } this.focusNode=this.editNode; var _2a=this.events.concat(this.captureEvents); var ap=this.iframe?this.document:this.editNode; dojo.forEach(_2a,function(_2b){ this.connect(ap,_2b.toLowerCase(),_2b); },this); if(dojo.isIE){ this.connect(this.document,"onmousedown","_onIEMouseDown"); this.editNode.style.zoom=1; }else{ this.connect(this.document,"onmousedown",function(){ delete this._cursorToStart; }); } if(dojo.isWebKit){ this._webkitListener=this.connect(this.document,"onmouseup","onDisplayChanged"); } if(dojo.isIE){ try{ this.document.execCommand("RespectVisibilityInDesign",true,null); } catch(e){ } } this.isLoaded=true; this.set("disabled",this.disabled); var _2c=dojo.hitch(this,function(){ this.setValue(_27); if(this.onLoadDeferred){ this.onLoadDeferred.callback(true); } this.onDisplayChanged(); if(this.focusOnLoad){ dojo.addOnLoad(dojo.hitch(this,function(){ setTimeout(dojo.hitch(this,"focus"),this.updateInterval); })); } this.savedContent=this.getValue(true); }); if(this.setValueDeferred){ this.setValueDeferred.addCallback(_2c); }else{ _2c(); } },onKeyDown:function(e){ if(e.keyCode===dojo.keys.TAB&&this.isTabIndent){ dojo.stopEvent(e); if(this.queryCommandEnabled((e.shiftKey?"outdent":"indent"))){ this.execCommand((e.shiftKey?"outdent":"indent")); } } if(dojo.isIE){ if(e.keyCode==dojo.keys.TAB&&!this.isTabIndent){ if(e.shiftKey&&!e.ctrlKey&&!e.altKey){ this.iframe.focus(); }else{ if(!e.shiftKey&&!e.ctrlKey&&!e.altKey){ this.tabStop.focus(); } } }else{ if(e.keyCode===dojo.keys.BACKSPACE&&this.document.selection.type==="Control"){ dojo.stopEvent(e); this.execCommand("delete"); }else{ if((65<=e.keyCode&&e.keyCode<=90)||(e.keyCode>=37&&e.keyCode<=40)){ e.charCode=e.keyCode; this.onKeyPress(e); } } } } return true; },onKeyUp:function(e){ return; },setDisabled:function(_2d){ dojo.deprecated("dijit.Editor::setDisabled is deprecated","use dijit.Editor::attr(\"disabled\",boolean) instead",2); this.set("disabled",_2d); },_setValueAttr:function(_2e){ this.setValue(_2e); },_setDisableSpellCheckAttr:function(_2f){ if(this.document){ dojo.attr(this.document.body,"spellcheck",!_2f); }else{ this.onLoadDeferred.addCallback(dojo.hitch(this,function(){ dojo.attr(this.document.body,"spellcheck",!_2f); })); } this.disableSpellCheck=_2f; },onKeyPress:function(e){ var c=(e.keyChar&&e.keyChar.toLowerCase())||e.keyCode,_30=this._keyHandlers[c],_31=arguments; if(_30&&!e.altKey){ dojo.some(_30,function(h){ if(!(h.shift^e.shiftKey)&&!(h.ctrl^(e.ctrlKey||e.metaKey))){ if(!h.handler.apply(this,_31)){ e.preventDefault(); } return true; } },this); } if(!this._onKeyHitch){ this._onKeyHitch=dojo.hitch(this,"onKeyPressed"); } setTimeout(this._onKeyHitch,1); return true; },addKeyHandler:function(key,_32,_33,_34){ if(!dojo.isArray(this._keyHandlers[key])){ this._keyHandlers[key]=[]; } this._keyHandlers[key].push({shift:_33||false,ctrl:_32||false,handler:_34}); },onKeyPressed:function(){ this.onDisplayChanged(); },onClick:function(e){ this.onDisplayChanged(e); },_onIEMouseDown:function(e){ if(!this._focused&&!this.disabled){ this.focus(); } },_onBlur:function(e){ this.inherited(arguments); var _35=this.getValue(true); if(_35!=this.savedContent){ this.onChange(_35); this.savedContent=_35; } },_onFocus:function(e){ if(!this.disabled){ if(!this._disabledOK){ this.set("disabled",false); } this.inherited(arguments); } },blur:function(){ if(!dojo.isIE&&this.window.document.documentElement&&this.window.document.documentElement.focus){ this.window.document.documentElement.focus(); }else{ if(dojo.doc.body.focus){ dojo.doc.body.focus(); } } },focus:function(){ if(!this.isLoaded){ this.focusOnLoad=true; return; } if(this._cursorToStart){ delete this._cursorToStart; if(this.editNode.childNodes){ this.placeCursorAtStart(); return; } } if(!dojo.isIE){ dijit.focus(this.iframe); }else{ if(this.editNode&&this.editNode.focus){ this.iframe.fireEvent("onfocus",document.createEventObject()); } } },updateInterval:200,_updateTimer:null,onDisplayChanged:function(e){ if(this._updateTimer){ clearTimeout(this._updateTimer); } if(!this._updateHandler){ this._updateHandler=dojo.hitch(this,"onNormalizedDisplayChanged"); } this._updateTimer=setTimeout(this._updateHandler,this.updateInterval); },onNormalizedDisplayChanged:function(){ delete this._updateTimer; },onChange:function(_36){ },_normalizeCommand:function(cmd,_37){ var _38=cmd.toLowerCase(); if(_38=="formatblock"){ if(dojo.isSafari&&_37===undefined){ _38="heading"; } }else{ if(_38=="hilitecolor"&&!dojo.isMoz){ _38="backcolor"; } } return _38; },_qcaCache:{},queryCommandAvailable:function(_39){ var ca=this._qcaCache[_39]; if(ca!==undefined){ return ca; } return (this._qcaCache[_39]=this._queryCommandAvailable(_39)); },_queryCommandAvailable:function(_3a){ var ie=1; var _3b=1<<1; var _3c=1<<2; var _3d=1<<3; var _3e=1<<4; function _3f(_40){ return {ie:Boolean(_40&ie),mozilla:Boolean(_40&_3b),webkit:Boolean(_40&_3c),webkit420:Boolean(_40&_3e),opera:Boolean(_40&_3d)}; }; var _41=null; switch(_3a.toLowerCase()){ case "bold": case "italic": case "underline": case "subscript": case "superscript": case "fontname": case "fontsize": case "forecolor": case "hilitecolor": case "justifycenter": case "justifyfull": case "justifyleft": case "justifyright": case "delete": case "selectall": case "toggledir": _41=_3f(_3b|ie|_3c|_3d); break; case "createlink": case "unlink": case "removeformat": case "inserthorizontalrule": case "insertimage": case "insertorderedlist": case "insertunorderedlist": case "indent": case "outdent": case "formatblock": case "inserthtml": case "undo": case "redo": case "strikethrough": case "tabindent": _41=_3f(_3b|ie|_3d|_3e); break; case "blockdirltr": case "blockdirrtl": case "dirltr": case "dirrtl": case "inlinedirltr": case "inlinedirrtl": _41=_3f(ie); break; case "cut": case "copy": case "paste": _41=_3f(ie|_3b|_3e); break; case "inserttable": _41=_3f(_3b|ie); break; case "insertcell": case "insertcol": case "insertrow": case "deletecells": case "deletecols": case "deleterows": case "mergecells": case "splitcell": _41=_3f(ie|_3b); break; default: return false; } return (dojo.isIE&&_41.ie)||(dojo.isMoz&&_41.mozilla)||(dojo.isWebKit&&_41.webkit)||(dojo.isWebKit>420&&_41.webkit420)||(dojo.isOpera&&_41.opera); },execCommand:function(_42,_43){ var _44; this.focus(); _42=this._normalizeCommand(_42,_43); if(_43!==undefined){ if(_42=="heading"){ throw new Error("unimplemented"); }else{ if((_42=="formatblock")&&dojo.isIE){ _43="<"+_43+">"; } } } var _45="_"+_42+"Impl"; if(this[_45]){ _44=this[_45](_43); }else{ _43=arguments.length>1?_43:null; if(_43||_42!="createlink"){ _44=this.document.execCommand(_42,false,_43); } } this.onDisplayChanged(); return _44; },queryCommandEnabled:function(_46){ if(this.disabled||!this._disabledOK){ return false; } _46=this._normalizeCommand(_46); if(dojo.isMoz||dojo.isWebKit){ if(_46=="unlink"){ return this._sCall("hasAncestorElement",["a"]); }else{ if(_46=="inserttable"){ return true; } } } if(dojo.isWebKit){ if(_46=="copy"){ _46="cut"; }else{ if(_46=="paste"){ return true; } } } var _47=dojo.isIE?this.document.selection.createRange():this.document; try{ return _47.queryCommandEnabled(_46); } catch(e){ return false; } },queryCommandState:function(_48){ if(this.disabled||!this._disabledOK){ return false; } _48=this._normalizeCommand(_48); try{ return this.document.queryCommandState(_48); } catch(e){ return false; } },queryCommandValue:function(_49){ if(this.disabled||!this._disabledOK){ return false; } var r; _49=this._normalizeCommand(_49); if(dojo.isIE&&_49=="formatblock"){ r=this._native2LocalFormatNames[this.document.queryCommandValue(_49)]; }else{ if(dojo.isMoz&&_49==="hilitecolor"){ var _4a; try{ _4a=this.document.queryCommandValue("styleWithCSS"); } catch(e){ _4a=false; } this.document.execCommand("styleWithCSS",false,true); r=this.document.queryCommandValue(_49); this.document.execCommand("styleWithCSS",false,_4a); }else{ r=this.document.queryCommandValue(_49); } } return r; },_sCall:function(_4b,_4c){ return dojo.withGlobal(this.window,_4b,dijit._editor.selection,_4c); },placeCursorAtStart:function(){ this.focus(); var _4d=false; if(dojo.isMoz){ var _4e=this.editNode.firstChild; while(_4e){ if(_4e.nodeType==3){ if(_4e.nodeValue.replace(/^\s+|\s+$/g,"").length>0){ _4d=true; this._sCall("selectElement",[_4e]); break; } }else{ if(_4e.nodeType==1){ _4d=true; var tg=_4e.tagName?_4e.tagName.toLowerCase():""; if(/br|input|img|base|meta|area|basefont|hr|link/.test(tg)){ this._sCall("selectElement",[_4e]); }else{ this._sCall("selectElementChildren",[_4e]); } break; } } _4e=_4e.nextSibling; } }else{ _4d=true; this._sCall("selectElementChildren",[this.editNode]); } if(_4d){ this._sCall("collapse",[true]); } },placeCursorAtEnd:function(){ this.focus(); var _4f=false; if(dojo.isMoz){ var _50=this.editNode.lastChild; while(_50){ if(_50.nodeType==3){ if(_50.nodeValue.replace(/^\s+|\s+$/g,"").length>0){ _4f=true; this._sCall("selectElement",[_50]); break; } }else{ if(_50.nodeType==1){ _4f=true; if(_50.lastChild){ this._sCall("selectElement",[_50.lastChild]); }else{ this._sCall("selectElement",[_50]); } break; } } _50=_50.previousSibling; } }else{ _4f=true; this._sCall("selectElementChildren",[this.editNode]); } if(_4f){ this._sCall("collapse",[false]); } },getValue:function(_51){ if(this.textarea){ if(this.isClosed||!this.isLoaded){ return this.textarea.value; } } return this._postFilterContent(null,_51); },_getValueAttr:function(){ return this.getValue(true); },setValue:function(_52){ if(!this.isLoaded){ this.onLoadDeferred.addCallback(dojo.hitch(this,function(){ this.setValue(_52); })); return; } this._cursorToStart=true; if(this.textarea&&(this.isClosed||!this.isLoaded)){ this.textarea.value=_52; }else{ _52=this._preFilterContent(_52); var _53=this.isClosed?this.domNode:this.editNode; if(!_52&&dojo.isWebKit){ _52=" "; } _53.innerHTML=_52; this._preDomFilterContent(_53); } this.onDisplayChanged(); },replaceValue:function(_54){ if(this.isClosed){ this.setValue(_54); }else{ if(this.window&&this.window.getSelection&&!dojo.isMoz){ this.setValue(_54); }else{ if(this.window&&this.window.getSelection){ _54=this._preFilterContent(_54); this.execCommand("selectall"); if(!_54){ this._cursorToStart=true; _54=" "; } this.execCommand("inserthtml",_54); this._preDomFilterContent(this.editNode); }else{ if(this.document&&this.document.selection){ this.setValue(_54); } } } } },_preFilterContent:function(_55){ var ec=_55; dojo.forEach(this.contentPreFilters,function(ef){ if(ef){ ec=ef(ec); } }); return ec; },_preDomFilterContent:function(dom){ dom=dom||this.editNode; dojo.forEach(this.contentDomPreFilters,function(ef){ if(ef&&dojo.isFunction(ef)){ ef(dom); } },this); },_postFilterContent:function(dom,_56){ var ec; if(!dojo.isString(dom)){ dom=dom||this.editNode; if(this.contentDomPostFilters.length){ if(_56){ dom=dojo.clone(dom); } dojo.forEach(this.contentDomPostFilters,function(ef){ dom=ef(dom); }); } ec=dijit._editor.getChildrenHtml(dom); }else{ ec=dom; } if(!dojo.trim(ec.replace(/^\xA0\xA0*/,"").replace(/\xA0\xA0*$/,"")).length){ ec=""; } dojo.forEach(this.contentPostFilters,function(ef){ ec=ef(ec); }); return ec; },_saveContent:function(e){ var _57=dojo.byId(dijit._scopeName+"._editor.RichText.savedContent"); if(_57.value){ _57.value+=this._SEPARATOR; } _57.value+=this.name+":"+this.getValue(true); },escapeXml:function(str,_58){ str=str.replace(/&/gm,"&").replace(//gm,">").replace(/"/gm,"""); if(!_58){ str=str.replace(/'/gm,"'"); } return str; },getNodeHtml:function(_59){ dojo.deprecated("dijit.Editor::getNodeHtml is deprecated","use dijit._editor.getNodeHtml instead",2); return dijit._editor.getNodeHtml(_59); },getNodeChildrenHtml:function(dom){ dojo.deprecated("dijit.Editor::getNodeChildrenHtml is deprecated","use dijit._editor.getChildrenHtml instead",2); return dijit._editor.getChildrenHtml(dom); },close:function(_5a){ if(this.isClosed){ return false; } if(!arguments.length){ _5a=true; } this._content=this.getValue(); var _5b=(this.savedContent!=this._content); if(this.interval){ clearInterval(this.interval); } if(this._webkitListener){ this.disconnect(this._webkitListener); delete this._webkitListener; } if(dojo.isIE){ this.iframe.onfocus=null; } this.iframe._loadFunc=null; if(this._iframeRegHandle){ dijit.unregisterIframe(this._iframeRegHandle); delete this._iframeRegHandle; } if(this.textarea){ var s=this.textarea.style; s.position=""; s.left=s.top=""; if(dojo.isIE){ s.overflow=this.__overflow; this.__overflow=null; } this.textarea.value=_5a?this._content:this.savedContent; dojo.destroy(this.domNode); this.domNode=this.textarea; }else{ this.domNode.innerHTML=_5a?this._content:this.savedContent; } delete this.iframe; dojo.removeClass(this.domNode,this.baseClass); this.isClosed=true; this.isLoaded=false; delete this.editNode; delete this.focusNode; if(this.window&&this.window._frameElement){ this.window._frameElement=null; } this.window=null; this.document=null; this.editingArea=null; this.editorObject=null; return _5b; },destroy:function(){ if(!this.isClosed){ this.close(false); } this.inherited(arguments); },_removeMozBogus:function(_5c){ return _5c.replace(/\stype="_moz"/gi,"").replace(/\s_moz_dirty=""/gi,"").replace(/_moz_resizing="(true|false)"/gi,""); },_removeWebkitBogus:function(_5d){ _5d=_5d.replace(/\sclass="webkit-block-placeholder"/gi,""); _5d=_5d.replace(/\sclass="apple-style-span"/gi,""); return _5d; },_normalizeFontStyle:function(_5e){ return _5e.replace(/<(\/)?strong([ \>])/gi,"<$1b$2").replace(/<(\/)?em([ \>])/gi,"<$1i$2"); },_preFixUrlAttributes:function(_5f){ return _5f.replace(/(?:(]+))/gi,"$1$4$2$3$5$2 _djrealurl=$2$3$5$2").replace(/(?:(]+))/gi,"$1$4$2$3$5$2 _djrealurl=$2$3$5$2"); },_inserthorizontalruleImpl:function(_60){ if(dojo.isIE){ return this._inserthtmlImpl("
    "); } return this.document.execCommand("inserthorizontalrule",false,_60); },_unlinkImpl:function(_61){ if((this.queryCommandEnabled("unlink"))&&(dojo.isMoz||dojo.isWebKit)){ var a=this._sCall("getAncestorElement",["a"]); this._sCall("selectElement",[a]); return this.document.execCommand("unlink",false,null); } return this.document.execCommand("unlink",false,_61); },_hilitecolorImpl:function(_62){ var _63; if(dojo.isMoz){ this.document.execCommand("styleWithCSS",false,true); _63=this.document.execCommand("hilitecolor",false,_62); this.document.execCommand("styleWithCSS",false,false); }else{ _63=this.document.execCommand("hilitecolor",false,_62); } return _63; },_backcolorImpl:function(_64){ if(dojo.isIE){ _64=_64?_64:null; } return this.document.execCommand("backcolor",false,_64); },_forecolorImpl:function(_65){ if(dojo.isIE){ _65=_65?_65:null; } return this.document.execCommand("forecolor",false,_65); },_inserthtmlImpl:function(_66){ _66=this._preFilterContent(_66); var rv=true; if(dojo.isIE){ var _67=this.document.selection.createRange(); if(this.document.selection.type.toUpperCase()=="CONTROL"){ var n=_67.item(0); while(_67.length){ _67.remove(_67.item(0)); } n.outerHTML=_66; }else{ _67.pasteHTML(_66); } _67.select(); }else{ if(dojo.isMoz&&!_66.length){ this._sCall("remove"); }else{ rv=this.document.execCommand("inserthtml",false,_66); } } return rv; },getHeaderHeight:function(){ return this._getNodeChildrenHeight(this.header); },getFooterHeight:function(){ return this._getNodeChildrenHeight(this.footer); },_getNodeChildrenHeight:function(_68){ var h=0; if(_68&&_68.childNodes){ var i; for(i=0;i<_68.childNodes.length;i++){ var _69=dojo.position(_68.childNodes[i]); h+=_69.h; } } return h; }}); }