summaryrefslogtreecommitdiff
path: root/public/javascripts/tiny_mce/plugins/xhtmlxtras
diff options
context:
space:
mode:
authorhukl <contact@smyck.org>2009-02-17 21:54:39 +0100
committerhukl <contact@smyck.org>2009-02-17 21:54:39 +0100
commitf61b5b0597e0c25f084ee67d402f12a43a7a9947 (patch)
tree3b4c3f9f38637f1a7ecf703ece4fd3bc4c6e2934 /public/javascripts/tiny_mce/plugins/xhtmlxtras
parent3d3b786cc43266f6292f5edd25733dbb9bd6ed06 (diff)
added tinymce editor for body area of pages
Diffstat (limited to 'public/javascripts/tiny_mce/plugins/xhtmlxtras')
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/xhtmlxtras/abbr.htm149
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/xhtmlxtras/acronym.htm149
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/xhtmlxtras/attributes.htm154
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/xhtmlxtras/cite.htm149
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css11
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/xhtmlxtras/css/popup.css9
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/xhtmlxtras/del.htm170
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js1
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js136
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/xhtmlxtras/ins.htm170
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js25
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js25
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js123
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/xhtmlxtras/js/cite.js25
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/xhtmlxtras/js/del.js60
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js231
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/xhtmlxtras/js/ins.js59
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js32
18 files changed, 1678 insertions, 0 deletions
diff --git a/public/javascripts/tiny_mce/plugins/xhtmlxtras/abbr.htm b/public/javascripts/tiny_mce/plugins/xhtmlxtras/abbr.htm
new file mode 100755
index 0000000..5800284
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/xhtmlxtras/abbr.htm
@@ -0,0 +1,149 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4 <title>{#xhtmlxtras_dlg.title_abbr_element}</title>
5 <script type="text/javascript" src="../../tiny_mce_popup.js"></script>
6 <script type="text/javascript" src="../../utils/mctabs.js"></script>
7 <script type="text/javascript" src="../../utils/form_utils.js"></script>
8 <script type="text/javascript" src="../../utils/editable_selects.js"></script>
9 <script type="text/javascript" src="js/element_common.js"></script>
10 <script type="text/javascript" src="js/abbr.js"></script>
11 <link rel="stylesheet" type="text/css" href="css/popup.css" />
12 <base target="_self" />
13</head>
14<body style="display: none">
15<form onsubmit="insertAbbr();return false;" action="#">
16 <div class="tabs">
17 <ul>
18 <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>
19 <!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->
20 </ul>
21 </div>
22
23 <div class="panel_wrapper">
24 <div id="general_panel" class="panel current">
25 <fieldset>
26 <legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>
27 <table border="0" cellpadding="0" cellspacing="4">
28 <tr>
29 <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td>
30 <td><input id="title" name="title" type="text" value="" class="field mceFocus" /></td>
31 </tr>
32 <tr>
33 <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td>
34 <td><input id="id" name="id" type="text" value="" class="field" /></td>
35 </tr>
36 <tr>
37 <td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td>
38 <td>
39 <select id="class" name="class" class="field mceEditableSelect">
40 <option value="">{#not_set}</option>
41 </select>
42 </td>
43 </tr>
44 <tr>
45 <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td>
46 <td><input id="style" name="style" type="text" value="" class="field" /></td>
47 </tr>
48 <tr>
49 <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td>
50 <td>
51 <select id="dir" name="dir" class="field">
52 <option value="">{#not_set}</option>
53 <option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option>
54 <option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option>
55 </select>
56 </td>
57 </tr>
58 <tr>
59 <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td>
60 <td>
61 <input id="lang" name="lang" type="text" value="" class="field" />
62 </td>
63 </tr>
64 </table>
65 </fieldset>
66 </div>
67 <div id="events_panel" class="panel">
68 <fieldset>
69 <legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>
70
71 <table border="0" cellpadding="0" cellspacing="4">
72 <tr>
73 <td class="label"><label for="onfocus">onfocus</label>:</td>
74 <td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td>
75 </tr>
76
77 <tr>
78 <td class="label"><label for="onblur">onblur</label>:</td>
79 <td><input id="onblur" name="onblur" type="text" value="" class="field" /></td>
80 </tr>
81
82 <tr>
83 <td class="label"><label for="onclick">onclick</label>:</td>
84 <td><input id="onclick" name="onclick" type="text" value="" class="field" /></td>
85 </tr>
86
87 <tr>
88 <td class="label"><label for="ondblclick">ondblclick</label>:</td>
89 <td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td>
90 </tr>
91
92 <tr>
93 <td class="label"><label for="onmousedown">onmousedown</label>:</td>
94 <td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td>
95 </tr>
96
97 <tr>
98 <td class="label"><label for="onmouseup">onmouseup</label>:</td>
99 <td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td>
100 </tr>
101
102 <tr>
103 <td class="label"><label for="onmouseover">onmouseover</label>:</td>
104 <td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td>
105 </tr>
106
107 <tr>
108 <td class="label"><label for="onmousemove">onmousemove</label>:</td>
109 <td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td>
110 </tr>
111
112 <tr>
113 <td class="label"><label for="onmouseout">onmouseout</label>:</td>
114 <td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td>
115 </tr>
116
117 <tr>
118 <td class="label"><label for="onkeypress">onkeypress</label>:</td>
119 <td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td>
120 </tr>
121
122 <tr>
123 <td class="label"><label for="onkeydown">onkeydown</label>:</td>
124 <td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td>
125 </tr>
126
127 <tr>
128 <td class="label"><label for="onkeyup">onkeyup</label>:</td>
129 <td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td>
130 </tr>
131 </table>
132 </fieldset>
133 </div>
134 </div>
135 <div class="mceActionPanel">
136 <div style="float: left">
137 <input type="submit" id="insert" name="insert" value="{#update}" />
138 </div>
139 <div style="float: left">
140 <input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeAbbr();" style="display: none;" />
141 </div>
142 <div style="float: right">
143 <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
144 </div>
145 </div>
146
147</form>
148</body>
149</html>
diff --git a/public/javascripts/tiny_mce/plugins/xhtmlxtras/acronym.htm b/public/javascripts/tiny_mce/plugins/xhtmlxtras/acronym.htm
new file mode 100755
index 0000000..54e4c9d
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/xhtmlxtras/acronym.htm
@@ -0,0 +1,149 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4 <title>{#xhtmlxtras_dlg.title_acronym_element}</title>
5 <script type="text/javascript" src="../../tiny_mce_popup.js"></script>
6 <script type="text/javascript" src="../../utils/mctabs.js"></script>
7 <script type="text/javascript" src="../../utils/form_utils.js"></script>
8 <script type="text/javascript" src="../../utils/editable_selects.js"></script>
9 <script type="text/javascript" src="js/element_common.js"></script>
10 <script type="text/javascript" src="js/acronym.js"></script>
11 <link rel="stylesheet" type="text/css" href="css/popup.css" />
12 <base target="_self" />
13</head>
14<body style="display: none">
15<form onsubmit="insertAcronym();return false;" action="#">
16 <div class="tabs">
17 <ul>
18 <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>
19 <!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->
20 </ul>
21 </div>
22
23 <div class="panel_wrapper">
24 <div id="general_panel" class="panel current">
25 <fieldset>
26 <legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>
27 <table border="0" cellpadding="0" cellspacing="4">
28 <tr>
29 <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td>
30 <td><input id="title" name="title" type="text" value="" class="field mceFocus" /></td>
31 </tr>
32 <tr>
33 <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td>
34 <td><input id="id" name="id" type="text" value="" class="field" /></td>
35 </tr>
36 <tr>
37 <td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td>
38 <td>
39 <select id="class" name="class" class="field mceEditableSelect">
40 <option value="">{#not_set}</option>
41 </select>
42 </td>
43 </tr>
44 <tr>
45 <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td>
46 <td><input id="style" name="style" type="text" value="" class="field" /></td>
47 </tr>
48 <tr>
49 <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td>
50 <td>
51 <select id="dir" name="dir" class="field">
52 <option value="">{#not_set}</option>
53 <option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option>
54 <option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option>
55 </select>
56 </td>
57 </tr>
58 <tr>
59 <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td>
60 <td>
61 <input id="lang" name="lang" type="text" value="" class="field" />
62 </td>
63 </tr>
64 </table>
65 </fieldset>
66 </div>
67 <div id="events_panel" class="panel">
68 <fieldset>
69 <legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>
70
71 <table border="0" cellpadding="0" cellspacing="4">
72 <tr>
73 <td class="label"><label for="onfocus">onfocus</label>:</td>
74 <td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td>
75 </tr>
76
77 <tr>
78 <td class="label"><label for="onblur">onblur</label>:</td>
79 <td><input id="onblur" name="onblur" type="text" value="" class="field" /></td>
80 </tr>
81
82 <tr>
83 <td class="label"><label for="onclick">onclick</label>:</td>
84 <td><input id="onclick" name="onclick" type="text" value="" class="field" /></td>
85 </tr>
86
87 <tr>
88 <td class="label"><label for="ondblclick">ondblclick</label>:</td>
89 <td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td>
90 </tr>
91
92 <tr>
93 <td class="label"><label for="onmousedown">onmousedown</label>:</td>
94 <td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td>
95 </tr>
96
97 <tr>
98 <td class="label"><label for="onmouseup">onmouseup</label>:</td>
99 <td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td>
100 </tr>
101
102 <tr>
103 <td class="label"><label for="onmouseover">onmouseover</label>:</td>
104 <td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td>
105 </tr>
106
107 <tr>
108 <td class="label"><label for="onmousemove">onmousemove</label>:</td>
109 <td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td>
110 </tr>
111
112 <tr>
113 <td class="label"><label for="onmouseout">onmouseout</label>:</td>
114 <td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td>
115 </tr>
116
117 <tr>
118 <td class="label"><label for="onkeypress">onkeypress</label>:</td>
119 <td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td>
120 </tr>
121
122 <tr>
123 <td class="label"><label for="onkeydown">onkeydown</label>:</td>
124 <td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td>
125 </tr>
126
127 <tr>
128 <td class="label"><label for="onkeyup">onkeyup</label>:</td>
129 <td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td>
130 </tr>
131 </table>
132 </fieldset>
133 </div>
134 </div>
135 <div class="mceActionPanel">
136 <div style="float: left">
137 <input type="submit" id="insert" name="insert" value="{#update}" />
138 </div>
139 <div style="float: left">
140 <input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeAcronym();" style="display: none;" />
141 </div>
142 <div style="float: right">
143 <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
144 </div>
145 </div>
146
147</form>
148</body>
149</html>
diff --git a/public/javascripts/tiny_mce/plugins/xhtmlxtras/attributes.htm b/public/javascripts/tiny_mce/plugins/xhtmlxtras/attributes.htm
new file mode 100755
index 0000000..cfbb409
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/xhtmlxtras/attributes.htm
@@ -0,0 +1,154 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4 <title>{#xhtmlxtras_dlg.attribs_title}</title>
5 <script type="text/javascript" src="../../tiny_mce_popup.js"></script>
6 <script type="text/javascript" src="../../utils/mctabs.js"></script>
7 <script type="text/javascript" src="../../utils/editable_selects.js"></script>
8 <script type="text/javascript" src="../../utils/form_utils.js"></script>
9 <script type="text/javascript" src="js/attributes.js"></script>
10 <link rel="stylesheet" type="text/css" href="css/attributes.css" />
11 <base target="_self" />
12</head>
13<body style="display: none">
14<form onsubmit="insertAction();return false;" action="#">
15 <div class="tabs">
16 <ul>
17 <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.attribute_attrib_tab}</a></span></li>
18 <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.attribute_events_tab}</a></span></li>
19 </ul>
20 </div>
21
22 <div class="panel_wrapper">
23 <div id="general_panel" class="panel current">
24 <fieldset>
25 <legend>{#xhtmlxtras_dlg.attribute_attrib_tab}</legend>
26 <table border="0" cellpadding="0" cellspacing="4">
27 <tr>
28 <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td>
29 <td><input id="title" name="title" type="text" value="" class="mceFocus" /></td>
30 </tr>
31 <tr>
32 <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td>
33 <td><input id="id" name="id" type="text" value="" /></td>
34 </tr>
35 <tr>
36 <td><label id="classlabel" for="classlist">{#class_name}</label></td>
37 <td>
38 <select id="classlist" name="classlist" class="mceEditableSelect">
39 <option value="" selected>{#not_set}</option>
40 </select>
41 </td>
42 </tr>
43 <tr>
44 <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td>
45 <td><input id="style" name="style" type="text" value="" /></td>
46 </tr>
47 <tr>
48 <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td>
49 <td>
50 <select id="dir" name="dir">
51 <option value="">{#not_set}</option>
52 <option value="ltr">{#xhtmlxtras_dlg.option_ltr}</option>
53 <option value="rtl">{#xhtmlxtras_dlg.option_rtl}</option>
54 </select>
55 </td>
56 </tr>
57 <tr>
58 <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td>
59 <td>
60 <input id="lang" name="lang" type="text" value="" />
61 </td>
62 </tr>
63 <tr>
64 <td><label id="tabindexlabel" for="tabindex">{#xhtmlxtras_dlg.attribute_label_tabindex}</label></td>
65 <td><input type="text" id="tabindex" name="tabindex" value="" /></td>
66 </tr>
67
68 <tr>
69 <td><label id="accesskeylabel" for="accesskey">{#xhtmlxtras_dlg.attribute_label_accesskey}</label></td>
70 <td><input type="text" id="accesskey" name="accesskey" value="" /></td>
71 </tr>
72 </table>
73 </fieldset>
74 </div>
75 <div id="events_panel" class="panel">
76 <fieldset>
77 <legend>{#xhtmlxtras_dlg.attribute_events_tab}</legend>
78
79 <table border="0" cellpadding="0" cellspacing="4">
80 <tr>
81 <td class="label"><label for="onfocus">onfocus</label>:</td>
82 <td><input id="onfocus" name="onfocus" type="text" value="" /></td>
83 </tr>
84
85 <tr>
86 <td class="label"><label for="onblur">onblur</label>:</td>
87 <td><input id="onblur" name="onblur" type="text" value="" /></td>
88 </tr>
89
90 <tr>
91 <td class="label"><label for="onclick">onclick</label>:</td>
92 <td><input id="onclick" name="onclick" type="text" value="" /></td>
93 </tr>
94
95 <tr>
96 <td class="label"><label for="ondblclick">ondblclick</label>:</td>
97 <td><input id="ondblclick" name="ondblclick" type="text" value="" /></td>
98 </tr>
99
100 <tr>
101 <td class="label"><label for="onmousedown">onmousedown</label>:</td>
102 <td><input id="onmousedown" name="onmousedown" type="text" value="" /></td>
103 </tr>
104
105 <tr>
106 <td class="label"><label for="onmouseup">onmouseup</label>:</td>
107 <td><input id="onmouseup" name="onmouseup" type="text" value="" /></td>
108 </tr>
109
110 <tr>
111 <td class="label"><label for="onmouseover">onmouseover</label>:</td>
112 <td><input id="onmouseover" name="onmouseover" type="text" value="" /></td>
113 </tr>
114
115 <tr>
116 <td class="label"><label for="onmousemove">onmousemove</label>:</td>
117 <td><input id="onmousemove" name="onmousemove" type="text" value="" /></td>
118 </tr>
119
120 <tr>
121 <td class="label"><label for="onmouseout">onmouseout</label>:</td>
122 <td><input id="onmouseout" name="onmouseout" type="text" value="" /></td>
123 </tr>
124
125 <tr>
126 <td class="label"><label for="onkeypress">onkeypress</label>:</td>
127 <td><input id="onkeypress" name="onkeypress" type="text" value="" /></td>
128 </tr>
129
130 <tr>
131 <td class="label"><label for="onkeydown">onkeydown</label>:</td>
132 <td><input id="onkeydown" name="onkeydown" type="text" value="" /></td>
133 </tr>
134
135 <tr>
136 <td class="label"><label for="onkeyup">onkeyup</label>:</td>
137 <td><input id="onkeyup" name="onkeyup" type="text" value="" /></td>
138 </tr>
139 </table>
140 </fieldset>
141 </div>
142 </div>
143 <div class="mceActionPanel">
144 <div style="float: left">
145 <input type="submit" id="insert" name="insert" value="{#insert}" />
146 </div>
147 <div style="float: right">
148 <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
149 </div>
150 </div>
151
152</form>
153</body>
154</html>
diff --git a/public/javascripts/tiny_mce/plugins/xhtmlxtras/cite.htm b/public/javascripts/tiny_mce/plugins/xhtmlxtras/cite.htm
new file mode 100755
index 0000000..7d9eaba
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/xhtmlxtras/cite.htm
@@ -0,0 +1,149 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4 <title>{#xhtmlxtras_dlg.title_cite_element}</title>
5 <script type="text/javascript" src="../../tiny_mce_popup.js"></script>
6 <script type="text/javascript" src="../../utils/mctabs.js"></script>
7 <script type="text/javascript" src="../../utils/form_utils.js"></script>
8 <script type="text/javascript" src="../../utils/editable_selects.js"></script>
9 <script type="text/javascript" src="js/element_common.js"></script>
10 <script type="text/javascript" src="js/cite.js"></script>
11 <link rel="stylesheet" type="text/css" href="css/popup.css" />
12 <base target="_self" />
13</head>
14<body style="display: none">
15<form onsubmit="insertCite();return false;" action="#">
16 <div class="tabs">
17 <ul>
18 <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>
19 <!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->
20 </ul>
21 </div>
22
23 <div class="panel_wrapper">
24 <div id="general_panel" class="panel current">
25 <fieldset>
26 <legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>
27 <table border="0" cellpadding="0" cellspacing="4">
28 <tr>
29 <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td>
30 <td><input id="title" name="title" type="text" value="" class="field mceFocus" /></td>
31 </tr>
32 <tr>
33 <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td>
34 <td><input id="id" name="id" type="text" value="" class="field" /></td>
35 </tr>
36 <tr>
37 <td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td>
38 <td>
39 <select id="class" name="class" class="field mceEditableSelect">
40 <option value="">{#not_set}</option>
41 </select>
42 </td>
43 </tr>
44 <tr>
45 <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td>
46 <td><input id="style" name="style" type="text" value="" class="field" /></td>
47 </tr>
48 <tr>
49 <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td>
50 <td>
51 <select id="dir" name="dir" class="field">
52 <option value="">{#not_set}</option>
53 <option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option>
54 <option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option>
55 </select>
56 </td>
57 </tr>
58 <tr>
59 <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td>
60 <td>
61 <input id="lang" name="lang" type="text" value="" class="field" />
62 </td>
63 </tr>
64 </table>
65 </fieldset>
66 </div>
67 <div id="events_panel" class="panel">
68 <fieldset>
69 <legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>
70
71 <table border="0" cellpadding="0" cellspacing="4">
72 <tr>
73 <td class="label"><label for="onfocus">onfocus</label>:</td>
74 <td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td>
75 </tr>
76
77 <tr>
78 <td class="label"><label for="onblur">onblur</label>:</td>
79 <td><input id="onblur" name="onblur" type="text" value="" class="field" /></td>
80 </tr>
81
82 <tr>
83 <td class="label"><label for="onclick">onclick</label>:</td>
84 <td><input id="onclick" name="onclick" type="text" value="" class="field" /></td>
85 </tr>
86
87 <tr>
88 <td class="label"><label for="ondblclick">ondblclick</label>:</td>
89 <td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td>
90 </tr>
91
92 <tr>
93 <td class="label"><label for="onmousedown">onmousedown</label>:</td>
94 <td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td>
95 </tr>
96
97 <tr>
98 <td class="label"><label for="onmouseup">onmouseup</label>:</td>
99 <td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td>
100 </tr>
101
102 <tr>
103 <td class="label"><label for="onmouseover">onmouseover</label>:</td>
104 <td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td>
105 </tr>
106
107 <tr>
108 <td class="label"><label for="onmousemove">onmousemove</label>:</td>
109 <td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td>
110 </tr>
111
112 <tr>
113 <td class="label"><label for="onmouseout">onmouseout</label>:</td>
114 <td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td>
115 </tr>
116
117 <tr>
118 <td class="label"><label for="onkeypress">onkeypress</label>:</td>
119 <td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td>
120 </tr>
121
122 <tr>
123 <td class="label"><label for="onkeydown">onkeydown</label>:</td>
124 <td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td>
125 </tr>
126
127 <tr>
128 <td class="label"><label for="onkeyup">onkeyup</label>:</td>
129 <td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td>
130 </tr>
131 </table>
132 </fieldset>
133 </div>
134 </div>
135 <div class="mceActionPanel">
136 <div style="float: left">
137 <input type="submit" id="insert" name="insert" value="{#update}" />
138 </div>
139 <div style="float: left">
140 <input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeCite();" style="display: none;" />
141 </div>
142 <div style="float: right">
143 <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
144 </div>
145 </div>
146
147</form>
148</body>
149</html>
diff --git a/public/javascripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css b/public/javascripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css
new file mode 100755
index 0000000..9a6a235
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css
@@ -0,0 +1,11 @@
1.panel_wrapper div.current {
2 height: 290px;
3}
4
5#id, #style, #title, #dir, #hreflang, #lang, #classlist, #tabindex, #accesskey {
6 width: 200px;
7}
8
9#events_panel input {
10 width: 200px;
11}
diff --git a/public/javascripts/tiny_mce/plugins/xhtmlxtras/css/popup.css b/public/javascripts/tiny_mce/plugins/xhtmlxtras/css/popup.css
new file mode 100755
index 0000000..e67114d
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/xhtmlxtras/css/popup.css
@@ -0,0 +1,9 @@
1input.field, select.field {width:200px;}
2input.picker {width:179px; margin-left: 5px;}
3input.disabled {border-color:#F2F2F2;}
4img.picker {vertical-align:text-bottom; cursor:pointer;}
5h1 {padding: 0 0 5px 0;}
6.panel_wrapper div.current {height:160px;}
7#xhtmlxtrasdel .panel_wrapper div.current, #xhtmlxtrasins .panel_wrapper div.current {height: 230px;}
8a.browse span {display:block; width:20px; height:20px; background:url('../../../themes/advanced/img/icons.gif') -140px -20px;}
9#datetime {width:180px;}
diff --git a/public/javascripts/tiny_mce/plugins/xhtmlxtras/del.htm b/public/javascripts/tiny_mce/plugins/xhtmlxtras/del.htm
new file mode 100755
index 0000000..d03c456
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/xhtmlxtras/del.htm
@@ -0,0 +1,170 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4 <title>{#xhtmlxtras_dlg.title_del_element}</title>
5 <script type="text/javascript" src="../../tiny_mce_popup.js"></script>
6 <script type="text/javascript" src="../../utils/mctabs.js"></script>
7 <script type="text/javascript" src="../../utils/form_utils.js"></script>
8 <script type="text/javascript" src="../../utils/editable_selects.js"></script>
9 <script type="text/javascript" src="js/element_common.js"></script>
10 <script type="text/javascript" src="js/del.js"></script>
11 <link rel="stylesheet" type="text/css" href="css/popup.css" />
12 <base target="_self" />
13</head>
14<body id="xhtmlxtrasins" style="display: none">
15<form onsubmit="insertDel();return false;" action="#">
16 <div class="tabs">
17 <ul>
18 <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>
19 <!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->
20 </ul>
21 </div>
22
23 <div class="panel_wrapper">
24 <div id="general_panel" class="panel current">
25 <fieldset>
26 <legend>{#xhtmlxtras_dlg.fieldset_general_tab}</legend>
27 <table border="0" cellpadding="0" cellspacing="4">
28 <tr>
29 <td class="label"><label id="datetimelabel" for="datetime">{#xhtmlxtras_dlg.attribute_label_datetime}</label>:</td>
30 <td>
31 <table border="0" cellspacing="0" cellpadding="0">
32 <tr>
33 <td><input id="datetime" name="datetime" type="text" value="" maxlength="19" class="field mceFocus" /></td>
34 <td><a href="javascript:insertDateTime('datetime');" onmousedown="return false;" class="browse"><span class="datetime" alt="{#xhtmlxtras_dlg.insert_date}" title="{#xhtmlxtras_dlg.insert_date}"></span></a></td>
35 </tr>
36 </table>
37 </td>
38 </tr>
39 <tr>
40 <td class="label"><label id="citelabel" for="cite">{#xhtmlxtras_dlg.attribute_label_cite}</label>:</td>
41 <td><input id="cite" name="cite" type="text" value="" class="field" /></td>
42 </tr>
43 </table>
44 </fieldset>
45 <fieldset>
46 <legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>
47 <table border="0" cellpadding="0" cellspacing="4">
48 <tr>
49 <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td>
50 <td><input id="title" name="title" type="text" value="" class="field" /></td>
51 </tr>
52 <tr>
53 <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td>
54 <td><input id="id" name="id" type="text" value="" class="field" /></td>
55 </tr>
56 <tr>
57 <td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td>
58 <td>
59 <select id="class" name="class" class="field mceEditableSelect">
60 <option value="">{#not_set}</option>
61 </select>
62 </td>
63 </tr>
64 <tr>
65 <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td>
66 <td><input id="style" name="style" type="text" value="" class="field" /></td>
67 </tr>
68 <tr>
69 <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td>
70 <td>
71 <select id="dir" name="dir" class="field">
72 <option value="">{#not_set}</option>
73 <option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option>
74 <option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option>
75 </select>
76 </td>
77 </tr>
78 <tr>
79 <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td>
80 <td>
81 <input id="lang" name="lang" type="text" value="" class="field" />
82 </td>
83 </tr>
84 </table>
85 </fieldset>
86 </div>
87 <div id="events_panel" class="panel">
88 <fieldset>
89 <legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>
90
91 <table border="0" cellpadding="0" cellspacing="4">
92 <tr>
93 <td class="label"><label for="onfocus">onfocus</label>:</td>
94 <td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td>
95 </tr>
96
97 <tr>
98 <td class="label"><label for="onblur">onblur</label>:</td>
99 <td><input id="onblur" name="onblur" type="text" value="" class="field" /></td>
100 </tr>
101
102 <tr>
103 <td class="label"><label for="onclick">onclick</label>:</td>
104 <td><input id="onclick" name="onclick" type="text" value="" class="field" /></td>
105 </tr>
106
107 <tr>
108 <td class="label"><label for="ondblclick">ondblclick</label>:</td>
109 <td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td>
110 </tr>
111
112 <tr>
113 <td class="label"><label for="onmousedown">onmousedown</label>:</td>
114 <td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td>
115 </tr>
116
117 <tr>
118 <td class="label"><label for="onmouseup">onmouseup</label>:</td>
119 <td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td>
120 </tr>
121
122 <tr>
123 <td class="label"><label for="onmouseover">onmouseover</label>:</td>
124 <td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td>
125 </tr>
126
127 <tr>
128 <td class="label"><label for="onmousemove">onmousemove</label>:</td>
129 <td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td>
130 </tr>
131
132 <tr>
133 <td class="label"><label for="onmouseout">onmouseout</label>:</td>
134 <td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td>
135 </tr>
136
137 <tr>
138 <td class="label"><label for="onkeypress">onkeypress</label>:</td>
139 <td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td>
140 </tr>
141
142 <tr>
143 <td class="label"><label for="onkeydown">onkeydown</label>:</td>
144 <td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td>
145 </tr>
146
147 <tr>
148 <td class="label"><label for="onkeyup">onkeyup</label>:</td>
149 <td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td>
150 </tr>
151 </table>
152 </fieldset>
153 </div>
154 </div>
155 <div class="mceActionPanel">
156 <div style="float: left">
157 <input type="submit" id="insert" name="insert" value="{#update}" />
158 </div>
159 <div style="float: left">
160 <input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeDel();" style="display: none;" />
161 </div>
162 <div style="float: right">
163 <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
164 </div>
165 </div>
166
167</form>
168
169</body>
170</html>
diff --git a/public/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js b/public/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js
new file mode 100755
index 0000000..00c178e
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js
@@ -0,0 +1 @@
(function(){tinymce.create('tinymce.plugins.XHTMLXtrasPlugin',{init:function(ed,url){ed.addCommand('mceCite',function(){ed.windowManager.open({file:url+'/cite.htm',width:350+parseInt(ed.getLang('xhtmlxtras.cite_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.cite_delta_height',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAcronym',function(){ed.windowManager.open({file:url+'/acronym.htm',width:350+parseInt(ed.getLang('xhtmlxtras.acronym_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.acronym_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAbbr',function(){ed.windowManager.open({file:url+'/abbr.htm',width:350+parseInt(ed.getLang('xhtmlxtras.abbr_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.abbr_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceDel',function(){ed.windowManager.open({file:url+'/del.htm',width:340+parseInt(ed.getLang('xhtmlxtras.del_delta_width',0)),height:310+parseInt(ed.getLang('xhtmlxtras.del_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceIns',function(){ed.windowManager.open({file:url+'/ins.htm',width:340+parseInt(ed.getLang('xhtmlxtras.ins_delta_width',0)),height:310+parseInt(ed.getLang('xhtmlxtras.ins_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAttributes',function(){ed.windowManager.open({file:url+'/attributes.htm',width:380,height:370,inline:1},{plugin_url:url});});ed.addButton('cite',{title:'xhtmlxtras.cite_desc',cmd:'mceCite'});ed.addButton('acronym',{title:'xhtmlxtras.acronym_desc',cmd:'mceAcronym'});ed.addButton('abbr',{title:'xhtmlxtras.abbr_desc',cmd:'mceAbbr'});ed.addButton('del',{title:'xhtmlxtras.del_desc',cmd:'mceDel'});ed.addButton('ins',{title:'xhtmlxtras.ins_desc',cmd:'mceIns'});ed.addButton('attribs',{title:'xhtmlxtras.attribs_desc',cmd:'mceAttributes'});if(tinymce.isIE){function fix(ed,o){if(o.set){o.content=o.content.replace(/<abbr([^>]+)>/gi,'<html:abbr $1>');o.content=o.content.replace(/<\/abbr>/gi,'</html:abbr>');}};ed.onBeforeSetContent.add(fix);ed.onPostProcess.add(fix);}ed.onNodeChange.add(function(ed,cm,n,co){n=ed.dom.getParent(n,'CITE,ACRONYM,ABBR,DEL,INS');cm.setDisabled('cite',co);cm.setDisabled('acronym',co);cm.setDisabled('abbr',co);cm.setDisabled('del',co);cm.setDisabled('ins',co);cm.setDisabled('attribs',n&&n.nodeName=='BODY');cm.setActive('cite',0);cm.setActive('acronym',0);cm.setActive('abbr',0);cm.setActive('del',0);cm.setActive('ins',0);if(n){do{cm.setDisabled(n.nodeName.toLowerCase(),0);cm.setActive(n.nodeName.toLowerCase(),1);}while(n=n.parentNode);}});},getInfo:function(){return{longname:'XHTML Xtras Plugin',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('xhtmlxtras',tinymce.plugins.XHTMLXtrasPlugin);})(); \ No newline at end of file
diff --git a/public/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js b/public/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js
new file mode 100755
index 0000000..bef06f2
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js
@@ -0,0 +1,136 @@
1/**
2 * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
3 *
4 * @author Moxiecode
5 * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
6 */
7
8(function() {
9 tinymce.create('tinymce.plugins.XHTMLXtrasPlugin', {
10 init : function(ed, url) {
11 // Register commands
12 ed.addCommand('mceCite', function() {
13 ed.windowManager.open({
14 file : url + '/cite.htm',
15 width : 350 + parseInt(ed.getLang('xhtmlxtras.cite_delta_width', 0)),
16 height : 250 + parseInt(ed.getLang('xhtmlxtras.cite_delta_height', 0)),
17 inline : 1
18 }, {
19 plugin_url : url
20 });
21 });
22
23 ed.addCommand('mceAcronym', function() {
24 ed.windowManager.open({
25 file : url + '/acronym.htm',
26 width : 350 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_width', 0)),
27 height : 250 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_width', 0)),
28 inline : 1
29 }, {
30 plugin_url : url
31 });
32 });
33
34 ed.addCommand('mceAbbr', function() {
35 ed.windowManager.open({
36 file : url + '/abbr.htm',
37 width : 350 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_width', 0)),
38 height : 250 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_width', 0)),
39 inline : 1
40 }, {
41 plugin_url : url
42 });
43 });
44
45 ed.addCommand('mceDel', function() {
46 ed.windowManager.open({
47 file : url + '/del.htm',
48 width : 340 + parseInt(ed.getLang('xhtmlxtras.del_delta_width', 0)),
49 height : 310 + parseInt(ed.getLang('xhtmlxtras.del_delta_width', 0)),
50 inline : 1
51 }, {
52 plugin_url : url
53 });
54 });
55
56 ed.addCommand('mceIns', function() {
57 ed.windowManager.open({
58 file : url + '/ins.htm',
59 width : 340 + parseInt(ed.getLang('xhtmlxtras.ins_delta_width', 0)),
60 height : 310 + parseInt(ed.getLang('xhtmlxtras.ins_delta_width', 0)),
61 inline : 1
62 }, {
63 plugin_url : url
64 });
65 });
66
67 ed.addCommand('mceAttributes', function() {
68 ed.windowManager.open({
69 file : url + '/attributes.htm',
70 width : 380,
71 height : 370,
72 inline : 1
73 }, {
74 plugin_url : url
75 });
76 });
77
78 // Register buttons
79 ed.addButton('cite', {title : 'xhtmlxtras.cite_desc', cmd : 'mceCite'});
80 ed.addButton('acronym', {title : 'xhtmlxtras.acronym_desc', cmd : 'mceAcronym'});
81 ed.addButton('abbr', {title : 'xhtmlxtras.abbr_desc', cmd : 'mceAbbr'});
82 ed.addButton('del', {title : 'xhtmlxtras.del_desc', cmd : 'mceDel'});
83 ed.addButton('ins', {title : 'xhtmlxtras.ins_desc', cmd : 'mceIns'});
84 ed.addButton('attribs', {title : 'xhtmlxtras.attribs_desc', cmd : 'mceAttributes'});
85
86 if (tinymce.isIE) {
87 function fix(ed, o) {
88 if (o.set) {
89 o.content = o.content.replace(/<abbr([^>]+)>/gi, '<html:abbr $1>');
90 o.content = o.content.replace(/<\/abbr>/gi, '</html:abbr>');
91 }
92 };
93
94 ed.onBeforeSetContent.add(fix);
95 ed.onPostProcess.add(fix);
96 }
97
98 ed.onNodeChange.add(function(ed, cm, n, co) {
99 n = ed.dom.getParent(n, 'CITE,ACRONYM,ABBR,DEL,INS');
100
101 cm.setDisabled('cite', co);
102 cm.setDisabled('acronym', co);
103 cm.setDisabled('abbr', co);
104 cm.setDisabled('del', co);
105 cm.setDisabled('ins', co);
106 cm.setDisabled('attribs', n && n.nodeName == 'BODY');
107 cm.setActive('cite', 0);
108 cm.setActive('acronym', 0);
109 cm.setActive('abbr', 0);
110 cm.setActive('del', 0);
111 cm.setActive('ins', 0);
112
113 // Activate all
114 if (n) {
115 do {
116 cm.setDisabled(n.nodeName.toLowerCase(), 0);
117 cm.setActive(n.nodeName.toLowerCase(), 1);
118 } while (n = n.parentNode);
119 }
120 });
121 },
122
123 getInfo : function() {
124 return {
125 longname : 'XHTML Xtras Plugin',
126 author : 'Moxiecode Systems AB',
127 authorurl : 'http://tinymce.moxiecode.com',
128 infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',
129 version : tinymce.majorVersion + "." + tinymce.minorVersion
130 };
131 }
132 });
133
134 // Register plugin
135 tinymce.PluginManager.add('xhtmlxtras', tinymce.plugins.XHTMLXtrasPlugin);
136})(); \ No newline at end of file
diff --git a/public/javascripts/tiny_mce/plugins/xhtmlxtras/ins.htm b/public/javascripts/tiny_mce/plugins/xhtmlxtras/ins.htm
new file mode 100755
index 0000000..c0f056f
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/xhtmlxtras/ins.htm
@@ -0,0 +1,170 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4 <title>{#xhtmlxtras_dlg.title_ins_element}</title>
5 <script type="text/javascript" src="../../tiny_mce_popup.js"></script>
6 <script type="text/javascript" src="../../utils/mctabs.js"></script>
7 <script type="text/javascript" src="../../utils/form_utils.js"></script>
8 <script type="text/javascript" src="../../utils/editable_selects.js"></script>
9 <script type="text/javascript" src="js/element_common.js"></script>
10 <script type="text/javascript" src="js/ins.js"></script>
11 <link rel="stylesheet" type="text/css" href="css/popup.css" />
12 <base target="_self" />
13</head>
14<body id="xhtmlxtrasins" style="display: none">
15<form onsubmit="insertIns();return false;" action="#">
16 <div class="tabs">
17 <ul>
18 <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>
19 <!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->
20 </ul>
21 </div>
22
23 <div class="panel_wrapper">
24 <div id="general_panel" class="panel current">
25 <fieldset>
26 <legend>{#xhtmlxtras_dlg.fieldset_general_tab}</legend>
27 <table border="0" cellpadding="0" cellspacing="4">
28 <tr>
29 <td class="label"><label id="datetimelabel" for="datetime">{#xhtmlxtras_dlg.attribute_label_datetime}</label>:</td>
30 <td>
31 <table border="0" cellspacing="0" cellpadding="0">
32 <tr>
33 <td><input id="datetime" name="datetime" type="text" value="" maxlength="19" class="field mceFocus" /></td>
34 <td><a href="javascript:insertDateTime('datetime');" onmousedown="return false;" class="browse"><span class="datetime" alt="{#xhtmlxtras_dlg.insert_date}" title="{#xhtmlxtras_dlg.insert_date}"></span></a></td>
35 </tr>
36 </table>
37 </td>
38 </tr>
39 <tr>
40 <td class="label"><label id="citelabel" for="cite">{#xhtmlxtras_dlg.attribute_label_cite}</label>:</td>
41 <td><input id="cite" name="cite" type="text" value="" class="field" /></td>
42 </tr>
43 </table>
44 </fieldset>
45 <fieldset>
46 <legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>
47 <table border="0" cellpadding="0" cellspacing="4">
48 <tr>
49 <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td>
50 <td><input id="title" name="title" type="text" value="" class="field" /></td>
51 </tr>
52 <tr>
53 <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td>
54 <td><input id="id" name="id" type="text" value="" class="field" /></td>
55 </tr>
56 <tr>
57 <td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td>
58 <td>
59 <select id="class" name="class" class="field mceEditableSelect">
60 <option value="">{#not_set}</option>
61 </select>
62 </td>
63 </tr>
64 <tr>
65 <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td>
66 <td><input id="style" name="style" type="text" value="" class="field" /></td>
67 </tr>
68 <tr>
69 <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td>
70 <td>
71 <select id="dir" name="dir" class="field">
72 <option value="">{#not_set}</option>
73 <option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option>
74 <option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option>
75 </select>
76 </td>
77 </tr>
78 <tr>
79 <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td>
80 <td>
81 <input id="lang" name="lang" type="text" value="" class="field" />
82 </td>
83 </tr>
84 </table>
85 </fieldset>
86 </div>
87 <div id="events_panel" class="panel">
88 <fieldset>
89 <legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>
90
91 <table border="0" cellpadding="0" cellspacing="4">
92 <tr>
93 <td class="label"><label for="onfocus">onfocus</label>:</td>
94 <td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td>
95 </tr>
96
97 <tr>
98 <td class="label"><label for="onblur">onblur</label>:</td>
99 <td><input id="onblur" name="onblur" type="text" value="" class="field" /></td>
100 </tr>
101
102 <tr>
103 <td class="label"><label for="onclick">onclick</label>:</td>
104 <td><input id="onclick" name="onclick" type="text" value="" class="field" /></td>
105 </tr>
106
107 <tr>
108 <td class="label"><label for="ondblclick">ondblclick</label>:</td>
109 <td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td>
110 </tr>
111
112 <tr>
113 <td class="label"><label for="onmousedown">onmousedown</label>:</td>
114 <td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td>
115 </tr>
116
117 <tr>
118 <td class="label"><label for="onmouseup">onmouseup</label>:</td>
119 <td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td>
120 </tr>
121
122 <tr>
123 <td class="label"><label for="onmouseover">onmouseover</label>:</td>
124 <td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td>
125 </tr>
126
127 <tr>
128 <td class="label"><label for="onmousemove">onmousemove</label>:</td>
129 <td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td>
130 </tr>
131
132 <tr>
133 <td class="label"><label for="onmouseout">onmouseout</label>:</td>
134 <td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td>
135 </tr>
136
137 <tr>
138 <td class="label"><label for="onkeypress">onkeypress</label>:</td>
139 <td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td>
140 </tr>
141
142 <tr>
143 <td class="label"><label for="onkeydown">onkeydown</label>:</td>
144 <td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td>
145 </tr>
146
147 <tr>
148 <td class="label"><label for="onkeyup">onkeyup</label>:</td>
149 <td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td>
150 </tr>
151 </table>
152 </fieldset>
153 </div>
154 </div>
155 <div class="mceActionPanel">
156 <div style="float: left">
157 <input type="submit" id="insert" name="insert" value="{#update}" />
158 </div>
159 <div style="float: left">
160 <input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeIns();" style="display: none;" />
161 </div>
162 <div style="float: right">
163 <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
164 </div>
165 </div>
166
167</form>
168
169</body>
170</html>
diff --git a/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js b/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js
new file mode 100755
index 0000000..e84b6a8
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js
@@ -0,0 +1,25 @@
1 /**
2 * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $
3 *
4 * @author Moxiecode - based on work by Andrew Tetlaw
5 * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
6 */
7
8function init() {
9 SXE.initElementDialog('abbr');
10 if (SXE.currentAction == "update") {
11 SXE.showRemoveButton();
12 }
13}
14
15function insertAbbr() {
16 SXE.insertElement(tinymce.isIE ? 'html:abbr' : 'abbr');
17 tinyMCEPopup.close();
18}
19
20function removeAbbr() {
21 SXE.removeElement('abbr');
22 tinyMCEPopup.close();
23}
24
25tinyMCEPopup.onInit.add(init);
diff --git a/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js b/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js
new file mode 100755
index 0000000..933d122
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js
@@ -0,0 +1,25 @@
1 /**
2 * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $
3 *
4 * @author Moxiecode - based on work by Andrew Tetlaw
5 * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
6 */
7
8function init() {
9 SXE.initElementDialog('acronym');
10 if (SXE.currentAction == "update") {
11 SXE.showRemoveButton();
12 }
13}
14
15function insertAcronym() {
16 SXE.insertElement('acronym');
17 tinyMCEPopup.close();
18}
19
20function removeAcronym() {
21 SXE.removeElement('acronym');
22 tinyMCEPopup.close();
23}
24
25tinyMCEPopup.onInit.add(init);
diff --git a/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js b/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js
new file mode 100755
index 0000000..23c7fa4
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js
@@ -0,0 +1,123 @@
1 /**
2 * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $
3 *
4 * @author Moxiecode - based on work by Andrew Tetlaw
5 * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved.
6 */
7
8function init() {
9 tinyMCEPopup.resizeToInnerSize();
10 var inst = tinyMCEPopup.editor;
11 var dom = inst.dom;
12 var elm = inst.selection.getNode();
13 var f = document.forms[0];
14 var onclick = dom.getAttrib(elm, 'onclick');
15
16 setFormValue('title', dom.getAttrib(elm, 'title'));
17 setFormValue('id', dom.getAttrib(elm, 'id'));
18 setFormValue('style', dom.getAttrib(elm, "style"));
19 setFormValue('dir', dom.getAttrib(elm, 'dir'));
20 setFormValue('lang', dom.getAttrib(elm, 'lang'));
21 setFormValue('tabindex', dom.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : ""));
22 setFormValue('accesskey', dom.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : ""));
23 setFormValue('onfocus', dom.getAttrib(elm, 'onfocus'));
24 setFormValue('onblur', dom.getAttrib(elm, 'onblur'));
25 setFormValue('onclick', onclick);
26 setFormValue('ondblclick', dom.getAttrib(elm, 'ondblclick'));
27 setFormValue('onmousedown', dom.getAttrib(elm, 'onmousedown'));
28 setFormValue('onmouseup', dom.getAttrib(elm, 'onmouseup'));
29 setFormValue('onmouseover', dom.getAttrib(elm, 'onmouseover'));
30 setFormValue('onmousemove', dom.getAttrib(elm, 'onmousemove'));
31 setFormValue('onmouseout', dom.getAttrib(elm, 'onmouseout'));
32 setFormValue('onkeypress', dom.getAttrib(elm, 'onkeypress'));
33 setFormValue('onkeydown', dom.getAttrib(elm, 'onkeydown'));
34 setFormValue('onkeyup', dom.getAttrib(elm, 'onkeyup'));
35 className = dom.getAttrib(elm, 'class');
36
37 addClassesToList('classlist', 'advlink_styles');
38 selectByValue(f, 'classlist', className, true);
39
40 TinyMCE_EditableSelects.init();
41}
42
43function setFormValue(name, value) {
44 if(value && document.forms[0].elements[name]){
45 document.forms[0].elements[name].value = value;
46 }
47}
48
49function insertAction() {
50 var inst = tinyMCEPopup.editor;
51 var elm = inst.selection.getNode();
52
53 tinyMCEPopup.execCommand("mceBeginUndoLevel");
54 setAllAttribs(elm);
55 tinyMCEPopup.execCommand("mceEndUndoLevel");
56 tinyMCEPopup.close();
57}
58
59function setAttrib(elm, attrib, value) {
60 var formObj = document.forms[0];
61 var valueElm = formObj.elements[attrib.toLowerCase()];
62 var inst = tinyMCEPopup.editor;
63 var dom = inst.dom;
64
65 if (typeof(value) == "undefined" || value == null) {
66 value = "";
67
68 if (valueElm)
69 value = valueElm.value;
70 }
71
72 if (value != "") {
73 dom.setAttrib(elm, attrib.toLowerCase(), value);
74
75 if (attrib == "style")
76 attrib = "style.cssText";
77
78 if (attrib.substring(0, 2) == 'on')
79 value = 'return true;' + value;
80
81 if (attrib == "class")
82 attrib = "className";
83
84 elm[attrib]=value;
85 } else
86 elm.removeAttribute(attrib);
87}
88
89function setAllAttribs(elm) {
90 var f = document.forms[0];
91
92 setAttrib(elm, 'title');
93 setAttrib(elm, 'id');
94 setAttrib(elm, 'style');
95 setAttrib(elm, 'class', getSelectValue(f, 'classlist'));
96 setAttrib(elm, 'dir');
97 setAttrib(elm, 'lang');
98 setAttrib(elm, 'tabindex');
99 setAttrib(elm, 'accesskey');
100 setAttrib(elm, 'onfocus');
101 setAttrib(elm, 'onblur');
102 setAttrib(elm, 'onclick');
103 setAttrib(elm, 'ondblclick');
104 setAttrib(elm, 'onmousedown');
105 setAttrib(elm, 'onmouseup');
106 setAttrib(elm, 'onmouseover');
107 setAttrib(elm, 'onmousemove');
108 setAttrib(elm, 'onmouseout');
109 setAttrib(elm, 'onkeypress');
110 setAttrib(elm, 'onkeydown');
111 setAttrib(elm, 'onkeyup');
112
113 // Refresh in old MSIE
114// if (tinyMCE.isMSIE5)
115// elm.outerHTML = elm.outerHTML;
116}
117
118function insertAttribute() {
119 tinyMCEPopup.close();
120}
121
122tinyMCEPopup.onInit.add(init);
123tinyMCEPopup.requireLangPack();
diff --git a/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/cite.js b/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/cite.js
new file mode 100755
index 0000000..c36f7fd
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/cite.js
@@ -0,0 +1,25 @@
1 /**
2 * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $
3 *
4 * @author Moxiecode - based on work by Andrew Tetlaw
5 * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
6 */
7
8function init() {
9 SXE.initElementDialog('cite');
10 if (SXE.currentAction == "update") {
11 SXE.showRemoveButton();
12 }
13}
14
15function insertCite() {
16 SXE.insertElement('cite');
17 tinyMCEPopup.close();
18}
19
20function removeCite() {
21 SXE.removeElement('cite');
22 tinyMCEPopup.close();
23}
24
25tinyMCEPopup.onInit.add(init);
diff --git a/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/del.js b/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/del.js
new file mode 100755
index 0000000..7049f2b
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/del.js
@@ -0,0 +1,60 @@
1 /**
2 * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $
3 *
4 * @author Moxiecode - based on work by Andrew Tetlaw
5 * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
6 */
7
8function init() {
9 SXE.initElementDialog('del');
10 if (SXE.currentAction == "update") {
11 setFormValue('datetime', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'datetime'));
12 setFormValue('cite', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'cite'));
13 SXE.showRemoveButton();
14 }
15}
16
17function setElementAttribs(elm) {
18 setAllCommonAttribs(elm);
19 setAttrib(elm, 'datetime');
20 setAttrib(elm, 'cite');
21}
22
23function insertDel() {
24 var elm = tinyMCEPopup.editor.dom.getParent(SXE.focusElement, 'DEL');
25
26 tinyMCEPopup.execCommand('mceBeginUndoLevel');
27 if (elm == null) {
28 var s = SXE.inst.selection.getContent();
29 if(s.length > 0) {
30 insertInlineElement('del');
31 var elementArray = tinymce.grep(SXE.inst.dom.select('del'), function(n) {return n.id == '#sxe_temp_del#';});
32 for (var i=0; i<elementArray.length; i++) {
33 var elm = elementArray[i];
34 setElementAttribs(elm);
35 }
36 }
37 } else {
38 setElementAttribs(elm);
39 }
40 tinyMCEPopup.editor.nodeChanged();
41 tinyMCEPopup.execCommand('mceEndUndoLevel');
42 tinyMCEPopup.close();
43}
44
45function insertInlineElement(en) {
46 var ed = tinyMCEPopup.editor, dom = ed.dom;
47
48 ed.getDoc().execCommand('FontName', false, 'mceinline');
49 tinymce.each(dom.select(tinymce.isWebKit ? 'span' : 'font'), function(n) {
50 if (n.style.fontFamily == 'mceinline' || n.face == 'mceinline')
51 dom.replace(dom.create(en), n, 1);
52 });
53}
54
55function removeDel() {
56 SXE.removeElement('del');
57 tinyMCEPopup.close();
58}
59
60tinyMCEPopup.onInit.add(init);
diff --git a/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js b/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js
new file mode 100755
index 0000000..5cdeb21
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js
@@ -0,0 +1,231 @@
1 /**
2 * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $
3 *
4 * @author Moxiecode - based on work by Andrew Tetlaw
5 * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
6 */
7
8tinyMCEPopup.requireLangPack();
9
10function initCommonAttributes(elm) {
11 var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
12
13 // Setup form data for common element attributes
14 setFormValue('title', dom.getAttrib(elm, 'title'));
15 setFormValue('id', dom.getAttrib(elm, 'id'));
16 selectByValue(formObj, 'class', dom.getAttrib(elm, 'class'), true);
17 setFormValue('style', dom.getAttrib(elm, 'style'));
18 selectByValue(formObj, 'dir', dom.getAttrib(elm, 'dir'));
19 setFormValue('lang', dom.getAttrib(elm, 'lang'));
20 setFormValue('onfocus', dom.getAttrib(elm, 'onfocus'));
21 setFormValue('onblur', dom.getAttrib(elm, 'onblur'));
22 setFormValue('onclick', dom.getAttrib(elm, 'onclick'));
23 setFormValue('ondblclick', dom.getAttrib(elm, 'ondblclick'));
24 setFormValue('onmousedown', dom.getAttrib(elm, 'onmousedown'));
25 setFormValue('onmouseup', dom.getAttrib(elm, 'onmouseup'));
26 setFormValue('onmouseover', dom.getAttrib(elm, 'onmouseover'));
27 setFormValue('onmousemove', dom.getAttrib(elm, 'onmousemove'));
28 setFormValue('onmouseout', dom.getAttrib(elm, 'onmouseout'));
29 setFormValue('onkeypress', dom.getAttrib(elm, 'onkeypress'));
30 setFormValue('onkeydown', dom.getAttrib(elm, 'onkeydown'));
31 setFormValue('onkeyup', dom.getAttrib(elm, 'onkeyup'));
32}
33
34function setFormValue(name, value) {
35 if(document.forms[0].elements[name]) document.forms[0].elements[name].value = value;
36}
37
38function insertDateTime(id) {
39 document.getElementById(id).value = getDateTime(new Date(), "%Y-%m-%dT%H:%M:%S");
40}
41
42function getDateTime(d, fmt) {
43 fmt = fmt.replace("%D", "%m/%d/%y");
44 fmt = fmt.replace("%r", "%I:%M:%S %p");
45 fmt = fmt.replace("%Y", "" + d.getFullYear());
46 fmt = fmt.replace("%y", "" + d.getYear());
47 fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));
48 fmt = fmt.replace("%d", addZeros(d.getDate(), 2));
49 fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));
50 fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));
51 fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));
52 fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));
53 fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));
54 fmt = fmt.replace("%%", "%");
55
56 return fmt;
57}
58
59function addZeros(value, len) {
60 var i;
61
62 value = "" + value;
63
64 if (value.length < len) {
65 for (i=0; i<(len-value.length); i++)
66 value = "0" + value;
67 }
68
69 return value;
70}
71
72function selectByValue(form_obj, field_name, value, add_custom, ignore_case) {
73 if (!form_obj || !form_obj.elements[field_name])
74 return;
75
76 var sel = form_obj.elements[field_name];
77
78 var found = false;
79 for (var i=0; i<sel.options.length; i++) {
80 var option = sel.options[i];
81
82 if (option.value == value || (ignore_case && option.value.toLowerCase() == value.toLowerCase())) {
83 option.selected = true;
84 found = true;
85 } else
86 option.selected = false;
87 }
88
89 if (!found && add_custom && value != '') {
90 var option = new Option('Value: ' + value, value);
91 option.selected = true;
92 sel.options[sel.options.length] = option;
93 }
94
95 return found;
96}
97
98function setAttrib(elm, attrib, value) {
99 var formObj = document.forms[0];
100 var valueElm = formObj.elements[attrib.toLowerCase()];
101 tinyMCEPopup.editor.dom.setAttrib(elm, attrib, value || valueElm.value);
102}
103
104function setAllCommonAttribs(elm) {
105 setAttrib(elm, 'title');
106 setAttrib(elm, 'id');
107 setAttrib(elm, 'class');
108 setAttrib(elm, 'style');
109 setAttrib(elm, 'dir');
110 setAttrib(elm, 'lang');
111 /*setAttrib(elm, 'onfocus');
112 setAttrib(elm, 'onblur');
113 setAttrib(elm, 'onclick');
114 setAttrib(elm, 'ondblclick');
115 setAttrib(elm, 'onmousedown');
116 setAttrib(elm, 'onmouseup');
117 setAttrib(elm, 'onmouseover');
118 setAttrib(elm, 'onmousemove');
119 setAttrib(elm, 'onmouseout');
120 setAttrib(elm, 'onkeypress');
121 setAttrib(elm, 'onkeydown');
122 setAttrib(elm, 'onkeyup');*/
123}
124
125SXE = {
126 currentAction : "insert",
127 inst : tinyMCEPopup.editor,
128 updateElement : null
129}
130
131SXE.focusElement = SXE.inst.selection.getNode();
132
133SXE.initElementDialog = function(element_name) {
134 addClassesToList('class', 'xhtmlxtras_styles');
135 TinyMCE_EditableSelects.init();
136
137 element_name = element_name.toLowerCase();
138 var elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase());
139 if (elm != null && elm.nodeName.toUpperCase() == element_name.toUpperCase()) {
140 SXE.currentAction = "update";
141 }
142
143 if (SXE.currentAction == "update") {
144 initCommonAttributes(elm);
145 SXE.updateElement = elm;
146 }
147
148 document.forms[0].insert.value = tinyMCEPopup.getLang(SXE.currentAction, 'Insert', true);
149}
150
151SXE.insertElement = function(element_name) {
152 var elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase()), h, tagName;
153
154 tinyMCEPopup.execCommand('mceBeginUndoLevel');
155 if (elm == null) {
156 var s = SXE.inst.selection.getContent();
157 if(s.length > 0) {
158 tagName = element_name;
159
160 if (tinymce.isIE && element_name.indexOf('html:') == 0)
161 element_name = element_name.substring(5).toLowerCase();
162
163 insertInlineElement(element_name);
164 var elementArray = tinymce.grep(SXE.inst.dom.select(element_name));
165 for (var i=0; i<elementArray.length; i++) {
166 var elm = elementArray[i];
167
168 if (SXE.inst.dom.getAttrib(elm, '_mce_new')) {
169 elm.id = '';
170 elm.setAttribute('id', '');
171 elm.removeAttribute('id');
172 elm.removeAttribute('_mce_new');
173
174 setAllCommonAttribs(elm);
175 }
176 }
177 }
178 } else {
179 setAllCommonAttribs(elm);
180 }
181 SXE.inst.nodeChanged();
182 tinyMCEPopup.execCommand('mceEndUndoLevel');
183}
184
185SXE.removeElement = function(element_name){
186 element_name = element_name.toLowerCase();
187 elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase());
188 if(elm && elm.nodeName.toUpperCase() == element_name.toUpperCase()){
189 tinyMCEPopup.execCommand('mceBeginUndoLevel');
190 tinyMCE.execCommand('mceRemoveNode', false, elm);
191 SXE.inst.nodeChanged();
192 tinyMCEPopup.execCommand('mceEndUndoLevel');
193 }
194}
195
196SXE.showRemoveButton = function() {
197 document.getElementById("remove").style.display = 'block';
198}
199
200SXE.containsClass = function(elm,cl) {
201 return (elm.className.indexOf(cl) > -1) ? true : false;
202}
203
204SXE.removeClass = function(elm,cl) {
205 if(elm.className == null || elm.className == "" || !SXE.containsClass(elm,cl)) {
206 return true;
207 }
208 var classNames = elm.className.split(" ");
209 var newClassNames = "";
210 for (var x = 0, cnl = classNames.length; x < cnl; x++) {
211 if (classNames[x] != cl) {
212 newClassNames += (classNames[x] + " ");
213 }
214 }
215 elm.className = newClassNames.substring(0,newClassNames.length-1); //removes extra space at the end
216}
217
218SXE.addClass = function(elm,cl) {
219 if(!SXE.containsClass(elm,cl)) elm.className ? elm.className += " " + cl : elm.className = cl;
220 return true;
221}
222
223function insertInlineElement(en) {
224 var ed = tinyMCEPopup.editor, dom = ed.dom;
225
226 ed.getDoc().execCommand('FontName', false, 'mceinline');
227 tinymce.each(dom.select(tinymce.isWebKit ? 'span' : 'font'), function(n) {
228 if (n.style.fontFamily == 'mceinline' || n.face == 'mceinline')
229 dom.replace(dom.create(en, {_mce_new : 1}), n, 1);
230 });
231}
diff --git a/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/ins.js b/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/ins.js
new file mode 100755
index 0000000..4fcc998
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/ins.js
@@ -0,0 +1,59 @@
1 /**
2 * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $
3 *
4 * @author Moxiecode - based on work by Andrew Tetlaw
5 * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
6 */
7
8function init() {
9 SXE.initElementDialog('ins');
10 if (SXE.currentAction == "update") {
11 setFormValue('datetime', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'datetime'));
12 setFormValue('cite', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'cite'));
13 SXE.showRemoveButton();
14 }
15}
16
17function setElementAttribs(elm) {
18 setAllCommonAttribs(elm);
19 setAttrib(elm, 'datetime');
20 setAttrib(elm, 'cite');
21}
22
23function insertIns() {
24 var elm = tinyMCEPopup.editor.dom.getParent(SXE.focusElement, 'INS');
25 tinyMCEPopup.execCommand('mceBeginUndoLevel');
26 if (elm == null) {
27 var s = SXE.inst.selection.getContent();
28 if(s.length > 0) {
29 insertInlineElement('INS');
30 var elementArray = tinymce.grep(SXE.inst.dom.select('ins'), function(n) {return n.id == '#sxe_temp_ins#';});
31 for (var i=0; i<elementArray.length; i++) {
32 var elm = elementArray[i];
33 setElementAttribs(elm);
34 }
35 }
36 } else {
37 setElementAttribs(elm);
38 }
39 tinyMCEPopup.editor.nodeChanged();
40 tinyMCEPopup.execCommand('mceEndUndoLevel');
41 tinyMCEPopup.close();
42}
43
44function removeIns() {
45 SXE.removeElement('ins');
46 tinyMCEPopup.close();
47}
48
49function insertInlineElement(en) {
50 var ed = tinyMCEPopup.editor, dom = ed.dom;
51
52 ed.getDoc().execCommand('FontName', false, 'mceinline');
53 tinymce.each(dom.select(tinymce.isWebKit ? 'span' : 'font'), function(n) {
54 if (n.style.fontFamily == 'mceinline' || n.face == 'mceinline')
55 dom.replace(dom.create(en), n, 1);
56 });
57}
58
59tinyMCEPopup.onInit.add(init);
diff --git a/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js b/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js
new file mode 100755
index 0000000..45b6b26
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js
@@ -0,0 +1,32 @@
1tinyMCE.addI18n('en.xhtmlxtras_dlg',{
2attribute_label_title:"Title",
3attribute_label_id:"ID",
4attribute_label_class:"Class",
5attribute_label_style:"Style",
6attribute_label_cite:"Cite",
7attribute_label_datetime:"Date/Time",
8attribute_label_langdir:"Text Direction",
9attribute_option_ltr:"Left to right",
10attribute_option_rtl:"Right to left",
11attribute_label_langcode:"Language",
12attribute_label_tabindex:"TabIndex",
13attribute_label_accesskey:"AccessKey",
14attribute_events_tab:"Events",
15attribute_attrib_tab:"Attributes",
16general_tab:"General",
17attrib_tab:"Attributes",
18events_tab:"Events",
19fieldset_general_tab:"General Settings",
20fieldset_attrib_tab:"Element Attributes",
21fieldset_events_tab:"Element Events",
22title_ins_element:"Insertion Element",
23title_del_element:"Deletion Element",
24title_acronym_element:"Acronym Element",
25title_abbr_element:"Abbreviation Element",
26title_cite_element:"Citation Element",
27remove:"Remove",
28insert_date:"Insert current date/time",
29option_ltr:"Left to right",
30option_rtl:"Right to left",
31attribs_title:"Insert/Edit Attributes"
32}); \ No newline at end of file