tinyMCEPopup.requireLangPack();
var
LinkDialog = {
preInit :
function
() {
var
url;
if
(url = tinyMCEPopup.getParam(
"external_link_list_url"
))
document.write(
'<script language="javascript" type="text/javascript" src="'
+ tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) +
'"></script>'
);
},
init :
function
() {
var
f = document.forms[0], ed = tinyMCEPopup.editor;
document.getElementById(
'hrefbrowsercontainer'
).innerHTML = getBrowserHTML(
'hrefbrowser'
,
'href'
,
'file'
,
'theme_advanced_link'
);
if
(isVisible(
'hrefbrowser'
))
document.getElementById(
'href'
).style.width =
'180px'
;
this
.fillClassList(
'class_list'
);
this
.fillFileList(
'link_list'
,
'tinyMCELinkList'
);
this
.fillTargetList(
'target_list'
);
if
(e = ed.dom.getParent(ed.selection.getNode(),
'A'
)) {
f.href.value = ed.dom.getAttrib(e,
'href'
);
f.linktitle.value = ed.dom.getAttrib(e,
'title'
);
f.insert.value = ed.getLang(
'update'
);
selectByValue(f,
'link_list'
, f.href.value);
selectByValue(f,
'target_list'
, ed.dom.getAttrib(e,
'target'
));
selectByValue(f,
'class_list'
, ed.dom.getAttrib(e,
'class'
));
}
},
update :
function
() {
var
f = document.forms[0], ed = tinyMCEPopup.editor, e, b;
tinyMCEPopup.restoreSelection();
e = ed.dom.getParent(ed.selection.getNode(),
'A'
);
if
(!f.href.value) {
if
(e) {
tinyMCEPopup.execCommand(
"mceBeginUndoLevel"
);
b = ed.selection.getBookmark();
ed.dom.remove(e, 1);
ed.selection.moveToBookmark(b);
tinyMCEPopup.execCommand(
"mceEndUndoLevel"
);
tinyMCEPopup.close();
return
;
}
}
tinyMCEPopup.execCommand(
"mceBeginUndoLevel"
);
if
(e ==
null
) {
tinyMCEPopup.execCommand(
"CreateLink"
,
false
,
"#mce_temp_url#"
, {skip_undo : 1});
tinymce.each(ed.dom.select(
"a"
),
function
(n) {
if
(ed.dom.getAttrib(n,
'href'
) ==
'#mce_temp_url#'
) {
e = n;
ed.dom.setAttribs(e, {
href : f.href.value,
title : f.linktitle.value,
target : f.target_list ? f.target_list.options[f.target_list.selectedIndex].value :
null
,
'class'
: f.class_list ? f.class_list.options[f.class_list.selectedIndex].value :
null
});
}
});
}
else
{
ed.dom.setAttribs(e, {
href : f.href.value,
title : f.linktitle.value,
target : f.target_list ? f.target_list.options[f.target_list.selectedIndex].value :
null
,
'class'
: f.class_list ? f.class_list.options[f.class_list.selectedIndex].value :
null
});
}
if
(e.childNodes.length != 1 || e.firstChild.nodeName != 'IMG
') {
ed.focus();
ed.selection.select(e);
ed.selection.collapse(0);
tinyMCEPopup.storeSelection();
}
tinyMCEPopup.execCommand("mceEndUndoLevel");
tinyMCEPopup.close();
},
checkPrefix : function(n) {
if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('
advanced_dlg.link_is_email
')))
n.value = '
mailto:
' + n.value;
if (/^\s*www./i.test(n.value) && confirm(tinyMCEPopup.getLang('
advanced_dlg.link_is_external
')))
n.value = '
http:
},
fillFileList :
function
(id, l) {
var
dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
l = window[l];
if
(l && l.length > 0) {
lst.options[lst.options.length] =
new
Option('
', '
');
tinymce.each(l, function(o) {
lst.options[lst.options.length] = new Option(o[0], o[1]);
});
} else
dom.remove(dom.getParent(id, '
tr
'));
},
fillClassList : function(id) {
var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
if (v = tinyMCEPopup.getParam('
theme_advanced_styles
')) {
cl = [];
tinymce.each(v.split('
;
'), function(v) {
var p = v.split('
=
');
cl.push({'
title
' : p[0], '
class
' : p[1]});
});
} else
cl = tinyMCEPopup.editor.dom.getClasses();
if (cl.length > 0) {
lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('
not_set
'), '
');
tinymce.each(cl, function(o) {
lst.options[lst.options.length] = new Option(o.title || o['
class
'], o['
class
']);
});
} else
dom.remove(dom.getParent(id, '
tr
'));
},
fillTargetList : function(id) {
var dom = tinyMCEPopup.dom, lst = dom.get(id), v;
lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('
not_set
'), '
');
lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('
advanced_dlg.link_target_same
'), '
_self
');
lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('
advanced_dlg.link_target_blank
'), '
_blank
');
if (v = tinyMCEPopup.getParam('
theme_advanced_link_targets
')) {
tinymce.each(v.split('
,
'), function(v) {
v = v.split('
=');
lst.options[lst.options.length] =
new
Option(v[0], v[1]);
});
}
}
};
LinkDialog.preInit();
tinyMCEPopup.onInit.add(LinkDialog.init, LinkDialog);