* serv_ldap.c: upon successful connect to an LDAP server, post an aide message warnin...
[citadel.git] / webcit / tiny_mce / plugins / advlink / editor_plugin_src.js
1 /**\r
2  * $Id: editor_plugin_src.js 268 2007-04-28 15:52:59Z spocke $\r
3  *\r
4  * @author Moxiecode\r
5  * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.\r
6  */\r
7 \r
8 /* Import plugin specific language pack */\r
9 tinyMCE.importPluginLanguagePack('advlink');\r
10 \r
11 var TinyMCE_AdvancedLinkPlugin = {\r
12         getInfo : function() {\r
13                 return {\r
14                         longname : 'Advanced link',\r
15                         author : 'Moxiecode Systems AB',\r
16                         authorurl : 'http://tinymce.moxiecode.com',\r
17                         infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink',\r
18                         version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion\r
19                 };\r
20         },\r
21 \r
22         initInstance : function(inst) {\r
23                 inst.addShortcut('ctrl', 'k', 'lang_advlink_desc', 'mceAdvLink');\r
24         },\r
25 \r
26         getControlHTML : function(cn) {\r
27                 switch (cn) {\r
28                         case "link":\r
29                                 return tinyMCE.getButtonHTML(cn, 'lang_link_desc', '{$themeurl}/images/link.gif', 'mceAdvLink');\r
30                 }\r
31 \r
32                 return "";\r
33         },\r
34 \r
35         execCommand : function(editor_id, element, command, user_interface, value) {\r
36                 switch (command) {\r
37                         case "mceAdvLink":\r
38                                 var inst = tinyMCE.getInstanceById(editor_id), anySelection = false;\r
39                                 var focusElm = inst.getFocusElement(), selectedText = inst.selection.getSelectedText();\r
40 \r
41                                 if (tinyMCE.selectedElement)\r
42                                         anySelection = (tinyMCE.selectedElement.nodeName.toLowerCase() == "img") || (selectedText && selectedText.length > 0);\r
43 \r
44                                 if (anySelection || (focusElm != null && focusElm.nodeName == "A")) {\r
45                                         tinyMCE.openWindow({\r
46                                                 file : '../../plugins/advlink/link.htm',\r
47                                                 width : 480 + tinyMCE.getLang('lang_advlink_delta_width', 0),\r
48                                                 height : 400 + tinyMCE.getLang('lang_advlink_delta_height', 0)\r
49                                         }, {\r
50                                                 editor_id : editor_id,\r
51                                                 inline : "yes"\r
52                                         });\r
53                                 }\r
54 \r
55                                 return true;\r
56                 }\r
57 \r
58                 return false;\r
59         },\r
60 \r
61         handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {\r
62                 if (node == null)\r
63                         return;\r
64 \r
65                 do {\r
66                         if (node.nodeName == "A" && tinyMCE.getAttrib(node, 'href') != "") {\r
67                                 tinyMCE.switchClass(editor_id + '_advlink', 'mceButtonSelected');\r
68                                 return true;\r
69                         }\r
70                 } while ((node = node.parentNode));\r
71 \r
72                 if (any_selection) {\r
73                         tinyMCE.switchClass(editor_id + '_advlink', 'mceButtonNormal');\r
74                         return true;\r
75                 }\r
76 \r
77                 tinyMCE.switchClass(editor_id + '_advlink', 'mceButtonDisabled');\r
78 \r
79                 return true;\r
80         }\r
81 };\r
82 \r
83 tinyMCE.addPlugin("advlink", TinyMCE_AdvancedLinkPlugin);\r