]> scripts.mit.edu Git - autoinstalls/wordpress.git/blob - wp-includes/js/tinymce/themes/advanced/jscripts/anchor.js
Wordpress 2.3.3-scripts
[autoinstalls/wordpress.git] / wp-includes / js / tinymce / themes / advanced / jscripts / anchor.js
1 var action, element;
2
3 function init() {
4         tinyMCEPopup.resizeToInnerSize();
5
6         var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
7         var anchor = tinyMCE.getParentElement(inst.getFocusElement(), "a", "name");
8         var img = inst.getFocusElement();
9         action = 'insert';
10
11         if (anchor != null) {
12                 element = anchor;
13                 action = "update";
14         }
15
16         if (tinyMCE.getAttrib(img, "class") == "mceItemAnchor") {
17                 element = img;
18                 action = "update";
19         }
20
21         if (action == "update")
22                 document.forms[0].anchorName.value = element.nodeName == "IMG" ? element.getAttribute("title") : element.getAttribute("name");
23
24         document.forms[0].insert.value = tinyMCE.getLang('lang_' + action, 'Insert', true);
25 }
26
27 function insertAnchor() {
28         var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
29         var name = document.forms[0].anchorName.value, e;
30
31         tinyMCEPopup.execCommand("mceBeginUndoLevel");
32
33         if (action == "update") {
34                 if (element.nodeName == "IMG")
35                         element.setAttribute("title", name);
36                 else
37                         element.setAttribute("name", name);
38         } else {
39                 var rng = inst.getRng();
40
41                 if (rng.collapse)
42                         rng.collapse(false);
43
44                 name = name.replace(/&/g, '&');
45                 name = name.replace(/\"/g, '"');
46                 name = name.replace(/</g, '&lt;');
47                 name = name.replace(/>/g, '&gt;');
48
49                 // Fix for bug #1447335
50                 if (tinyMCE.isGecko)
51                         html = '<a id="mceNewAnchor" name="' + name + '"></a>';
52                 else
53                         html = '<a name="' + name + '"></a>';
54
55                 tinyMCEPopup.execCommand("mceInsertContent", false, html);
56
57                 // Fix for bug #1447335 force cursor after the anchor element
58                 if (tinyMCE.isGecko) {
59                         e = inst.getDoc().getElementById('mceNewAnchor');
60
61                         if (e) {
62                                 inst.selection.selectNode(e, true, false, false);
63                                 e.removeAttribute('id');
64                         }
65                 }
66
67                 tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
68         }
69
70         tinyMCEPopup.execCommand("mceEndUndoLevel");
71
72         tinyMCE.triggerNodeChange();
73         tinyMCEPopup.close();
74 }