//>>built define("dojox/editor/plugins/InsertAnchor",["dojo","dijit","dojox","dijit/_editor/_Plugin","dijit/_base/manager","dijit/_editor/range","dijit/_Templated","dijit/TooltipDialog","dijit/form/ValidationTextBox","dijit/form/Select","dijit/form/Button","dijit/form/DropDownButton","dijit/_editor/range","dijit/_editor/selection","dojo/_base/connect","dojo/_base/declare","dojo/i18n","dojo/string","dojo/NodeList-dom","dojox/editor/plugins/ToolbarLineBreak","dojo/i18n!dojox/editor/plugins/nls/InsertAnchor","dojo/i18n!dijit/nls/common"],function(_1,_2,_3,_4){ _1.declare("dojox.editor.plugins.InsertAnchor",_4,{htmlTemplate:"${textInput}",iconClassPrefix:"dijitAdditionalEditorIcon",_template:["","
","","","","
","","","","
","","","
"].join(""),_initButton:function(){ var _5=this; var _6=_1.i18n.getLocalization("dojox.editor.plugins","InsertAnchor",this.lang); var _7=(this.dropDown=new _2.TooltipDialog({title:_6["title"],execute:_1.hitch(this,"setValue"),onOpen:function(){ _5._onOpenDialog(); _2.TooltipDialog.prototype.onOpen.apply(this,arguments); },onCancel:function(){ setTimeout(_1.hitch(_5,"_onCloseDialog"),0); }})); this.button=new _2.form.DropDownButton({label:_6["insertAnchor"],showLabel:false,iconClass:this.iconClassPrefix+" "+this.iconClassPrefix+"InsertAnchor",tabIndex:"-1",dropDown:this.dropDown}); _6.id=_2.getUniqueId(this.editor.id); this._uniqueId=_6.id; this.dropDown.set("content",_7.title+"
"+_1.string.substitute(this._template,_6)); _7.startup(); this._anchorInput=_2.byId(this._uniqueId+"_anchorInput"); this._textInput=_2.byId(this._uniqueId+"_textInput"); this._setButton=_2.byId(this._uniqueId+"_setButton"); this.connect(_2.byId(this._uniqueId+"_cancelButton"),"onClick",function(){ this.dropDown.onCancel(); }); if(this._anchorInput){ this.connect(this._anchorInput,"onChange","_checkInput"); } if(this._textInput){ this.connect(this._anchorInput,"onChange","_checkInput"); } this.editor.contentDomPreFilters.push(_1.hitch(this,this._preDomFilter)); this.editor.contentDomPostFilters.push(_1.hitch(this,this._postDomFilter)); this._setup(); },updateState:function(){ this.button.set("disabled",this.get("disabled")); },setEditor:function(_8){ this.editor=_8; this._initButton(); },_checkInput:function(){ var _9=true; if(this._anchorInput.isValid()){ _9=false; } this._setButton.set("disabled",_9); },_setup:function(){ this.editor.onLoadDeferred.addCallback(_1.hitch(this,function(){ this.connect(this.editor.editNode,"ondblclick",this._onDblClick); setTimeout(_1.hitch(this,function(){ this._applyStyles(); }),100); })); },getAnchorStyle:function(){ var _a="@media screen {\n"+"\t.dijitEditorPluginInsertAnchorStyle {\n"+"\t\tbackground-image: url({MODURL}/images/anchor.gif);\n"+"\t\tbackground-repeat: no-repeat;\n"+"\t\tbackground-position: top left;\n"+"\t\tborder-width: 1px;\n"+"\t\tborder-style: dashed;\n"+"\t\tborder-color: #D0D0D0;\n"+"\t\tpadding-left: 20px;\n"+"\t}\n"+"}\n"; var _b=_1.moduleUrl(_3._scopeName,"editor/plugins/resources").toString(); if(!(_b.match(/^https?:\/\//i))&&!(_b.match(/^file:\/\//i))){ var _c; if(_b.charAt(0)==="/"){ var _d=_1.doc.location.protocol; var _e=_1.doc.location.host; _c=_d+"//"+_e; }else{ _c=this._calcBaseUrl(_1.global.location.href); } if(_c[_c.length-1]!=="/"&&_b.charAt(0)!=="/"){ _c+="/"; } _b=_c+_b; } return _a.replace(/\{MODURL\}/gi,_b); },_applyStyles:function(){ if(!this._styled){ try{ this._styled=true; var _f=this.editor.document; var _10=this.getAnchorStyle(); if(!_1.isIE){ var _11=_f.createElement("style"); _11.appendChild(_f.createTextNode(_10)); _f.getElementsByTagName("head")[0].appendChild(_11); }else{ var ss=_f.createStyleSheet(""); ss.cssText=_10; } } catch(e){ } } },_calcBaseUrl:function(_12){ var _13=null; if(_12!==null){ var _14=_12.indexOf("?"); if(_14!=-1){ _12=_12.substring(0,_14); } _14=_12.lastIndexOf("/"); if(_14>0&&_14<_12.length){ _13=_12.substring(0,_14); }else{ _13=_12; } } return _13; },_checkValues:function(_15){ if(_15){ if(_15.anchorInput){ _15.anchorInput=_15.anchorInput.replace(/"/g,"""); } if(!_15.textInput){ _15.textInput=" "; } } return _15; },setValue:function(_16){ this._onCloseDialog(); if(!this.editor.window.getSelection){ var sel=_2.range.getSelection(this.editor.window); var _17=sel.getRangeAt(0); var a=_17.endContainer; if(a.nodeType===3){ a=a.parentNode; } if(a&&(a.nodeName&&a.nodeName.toLowerCase()!=="a")){ a=this.editor._sCall("getSelectedElement",["a"]); } if(a&&(a.nodeName&&a.nodeName.toLowerCase()==="a")){ if(this.editor.queryCommandEnabled("unlink")){ this.editor._sCall("selectElementChildren",[a]); this.editor.execCommand("unlink"); } } } _16=this._checkValues(_16); this.editor.execCommand("inserthtml",_1.string.substitute(this.htmlTemplate,_16)); },_onCloseDialog:function(){ this.editor.focus(); },_getCurrentValues:function(a){ var _18,_19; if(a&&a.tagName.toLowerCase()==="a"&&_1.attr(a,"name")){ _18=_1.attr(a,"name"); _19=a.textContent||a.innerText; this.editor._sCall("selectElement",[a,true]); }else{ _19=this.editor._sCall("getSelectedText"); } return {anchorInput:_18||"",textInput:_19||""}; },_onOpenDialog:function(){ var a; if(!this.editor.window.getSelection){ var sel=_2.range.getSelection(this.editor.window); var _1a=sel.getRangeAt(0); a=_1a.endContainer; if(a.nodeType===3){ a=a.parentNode; } if(a&&(a.nodeName&&a.nodeName.toLowerCase()!=="a")){ a=this.editor._sCall("getSelectedElement",["a"]); } }else{ a=this.editor._sCall("getAncestorElement",["a"]); } this.dropDown.reset(); this._setButton.set("disabled",true); this.dropDown.set("value",this._getCurrentValues(a)); },_onDblClick:function(e){ if(e&&e.target){ var t=e.target; var tg=t.tagName?t.tagName.toLowerCase():""; if(tg==="a"&&_1.attr(t,"name")){ this.editor.onDisplayChanged(); this.editor._sCall("selectElement",[t]); setTimeout(_1.hitch(this,function(){ this.button.set("disabled",false); this.button.openDropDown(); if(this.button.dropDown.focus){ this.button.dropDown.focus(); } }),10); } } },_preDomFilter:function(_1b){ _1.query("a[name]:not([href])",this.editor.editNode).addClass("dijitEditorPluginInsertAnchorStyle"); },_postDomFilter:function(_1c){ if(_1c){ _1.query("a[name]:not([href])",_1c).removeClass("dijitEditorPluginInsertAnchorStyle"); } return _1c; }}); _1.subscribe(_2._scopeName+".Editor.getPlugin",null,function(o){ if(o.plugin){ return; } var _1d=o.args.name; if(_1d){ _1d=_1d.toLowerCase(); } if(_1d==="insertanchor"){ o.plugin=new _3.editor.plugins.InsertAnchor(); } }); return _3.editor.plugins.InsertAnchor; });