Upgrade TinyMCE to v3.4.5
[citadel.git] / webcit / tiny_mce / themes / advanced / js / anchor.js
index b5efd1ec9736d60bdd261cdde9987f15e4d095c2..e528e4f42f78a571657b6abe88f429a1d57400dd 100644 (file)
@@ -5,7 +5,7 @@ var AnchorDialog = {
                var action, elm, f = document.forms[0];\r
 \r
                this.editor = ed;\r
-               elm = ed.dom.getParent(ed.selection.getNode(), 'A,IMG');\r
+               elm = ed.dom.getParent(ed.selection.getNode(), 'A');\r
                v = ed.dom.getAttrib(elm, 'name');\r
 \r
                if (v) {\r
@@ -17,18 +17,23 @@ var AnchorDialog = {
        },\r
 \r
        update : function() {\r
-               var ed = this.editor;\r
-               \r
+               var ed = this.editor, elm, name = document.forms[0].anchorName.value;\r
+\r
+               if (!name || !/^[a-z][a-z0-9\-\_:\.]*$/i.test(name)) {\r
+                       tinyMCEPopup.alert('advanced_dlg.anchor_invalid');\r
+                       return;\r
+               }\r
+\r
                tinyMCEPopup.restoreSelection();\r
 \r
                if (this.action != 'update')\r
                        ed.selection.collapse(1);\r
 \r
-               // Webkit acts weird if empty inline element is inserted so we need to use a image instead\r
-               if (tinymce.isWebKit)\r
-                       ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('img', {mce_name : 'a', name : document.forms[0].anchorName.value, 'class' : 'mceItemAnchor'}));\r
+               elm = ed.dom.getParent(ed.selection.getNode(), 'A');\r
+               if (elm)\r
+                       elm.name = name;\r
                else\r
-                       ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', {name : document.forms[0].anchorName.value, 'class' : 'mceItemAnchor'}, ''));\r
+                       ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', {name : name, 'class' : 'mceItemAnchor'}, ''));\r
 \r
                tinyMCEPopup.close();\r
        }\r