commiting uncommited changes on live site
[weblabels.fsf.org.git] / crm.fsf.org / 20131203 / files / sites / all / modules-old / civicrm / packages / tinymce / jscripts / tiny_mce / themes / advanced / js / anchor.js
1 tinyMCEPopup.requireLangPack();
2
3 var AnchorDialog = {
4 init : function(ed) {
5 var action, elm, f = document.forms[0];
6
7 this.editor = ed;
8 elm = ed.dom.getParent(ed.selection.getNode(), 'A');
9 v = ed.dom.getAttrib(elm, 'name');
10
11 if (v) {
12 this.action = 'update';
13 f.anchorName.value = v;
14 }
15
16 f.insert.value = ed.getLang(elm ? 'update' : 'insert');
17 },
18
19 update : function() {
20 var ed = this.editor, elm, name = document.forms[0].anchorName.value;
21
22 if (!name || !/^[a-z][a-z0-9\-\_:\.]*$/i.test(name)) {
23 tinyMCEPopup.alert('advanced_dlg.anchor_invalid');
24 return;
25 }
26
27 tinyMCEPopup.restoreSelection();
28
29 if (this.action != 'update')
30 ed.selection.collapse(1);
31
32 elm = ed.dom.getParent(ed.selection.getNode(), 'A');
33 if (elm) {
34 elm.setAttribute('name', name);
35 elm.name = name;
36 } else
37 // create with zero-sized nbsp so that in Webkit where anchor is on last line by itself caret cannot be placed after it
38 ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', {name : name, 'class' : 'mceItemAnchor'}, '\uFEFF'));
39
40 tinyMCEPopup.close();
41 }
42 };
43
44 tinyMCEPopup.onInit.add(AnchorDialog.init, AnchorDialog);