blob: 9303b6dd713b833a7212e36e484d572ee4251c63 [file] [log] [blame]
/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
/* The URL of the most recent version of this file is http://svn.xinha.org/trunk/modules/CreateLink/pluginMethods.js */
CreateLink.prototype.show=function(a){
if(!this.dialog){
this.prepareDialog();
}
var _2=this.editor;
this.a=a;
if(!a&&this.editor.selectionEmpty(this.editor.getSelection())){
alert(this._lc("You need to select some text before creating a link"));
return false;
}
var _3={f_href:"",f_title:"",f_target:"",f_other_target:""};
if(a&&a.tagName.toLowerCase()=="a"){
_3.f_href=this.editor.fixRelativeLinks(a.getAttribute("href"));
_3.f_title=a.title;
if(a.target){
if(!/_self|_top|_blank/.test(a.target)){
_3.f_target="_other";
_3.f_other_target=a.target;
}else{
_3.f_target=a.target;
_3.f_other_target="";
}
}
}
this.dialog.show(_3);
};
CreateLink.prototype.apply=function(){
var _4=this.dialog.hide();
var a=this.a;
var _6=this.editor;
var _7={href:"",target:"",title:""};
if(_4.f_href){
_7.href=_4.f_href;
_7.title=_4.f_title;
if(_4.f_target.value){
if(_4.f_target.value=="other"){
_7.target=_4.f_other_target;
}else{
_7.target=_4.f_target.value;
}
}
}
if(_4.f_target.value){
if(_4.f_target.value!="_other"){
_7.target=_4.f_target.value;
}else{
_7.target=_4.f_other_target;
}
}
if(a&&a.tagName.toLowerCase()=="a"){
if(!_7.href){
if(confirm(this._lc("Are you sure you wish to remove this link?"))){
var p=a.parentNode;
while(a.hasChildNodes()){
p.insertBefore(a.removeChild(a.childNodes[0]),a);
}
p.removeChild(a);
_6.updateToolbar();
return;
}
}else{
for(var i in _7){
a.setAttribute(i,_7[i]);
}
if(Xinha.is_ie){
if(/mailto:([^?<>]*)(\?[^<]*)?$/i.test(a.innerHTML)){
a.innerHTML=RegExp.$1;
}
}
}
}else{
if(!_7.href){
return true;
}
var _a=Xinha.uniq("http://www.example.com/Link");
_6._doc.execCommand("createlink",false,_a);
var _b=_6._doc.getElementsByTagName("a");
for(var i=0;i<_b.length;i++){
var _c=_b[i];
if(_c.href==_a){
if(!a){
a=_c;
}
for(var j in _7){
_c.setAttribute(j,_7[j]);
}
}
}
}
_6.selectNodeContents(a);
_6.updateToolbar();
};
CreateLink.prototype._getSelectedAnchor=function(){
var _e=this.editor.getSelection();
var _f=this.editor.createRange(_e);
var a=this.editor.activeElement(_e);
if(a!=null&&a.tagName.toLowerCase()=="a"){
return a;
}else{
a=this.editor._getFirstAncestor(_e,"a");
if(a!=null){
return a;
}
}
return null;
};