summaryrefslogtreecommitdiff
path: root/public/javascripts/tiny_mce/plugins/advimage
diff options
context:
space:
mode:
Diffstat (limited to 'public/javascripts/tiny_mce/plugins/advimage')
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/advimage/css/advimage.css13
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/advimage/editor_plugin.js1
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/advimage/editor_plugin_src.js47
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/advimage/image.htm238
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/advimage/img/sample.gifbin0 -> 1624 bytes
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/advimage/js/image.js441
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/advimage/langs/en_dlg.js43
7 files changed, 783 insertions, 0 deletions
diff --git a/public/javascripts/tiny_mce/plugins/advimage/css/advimage.css b/public/javascripts/tiny_mce/plugins/advimage/css/advimage.css
new file mode 100755
index 0000000..0a6251a
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/advimage/css/advimage.css
@@ -0,0 +1,13 @@
1#src_list, #over_list, #out_list {width:280px;}
2.mceActionPanel {margin-top:7px;}
3.alignPreview {border:1px solid #000; width:140px; height:140px; overflow:hidden; padding:5px;}
4.checkbox {border:0;}
5.panel_wrapper div.current {height:305px;}
6#prev {margin:0; border:1px solid #000; width:428px; height:150px; overflow:auto;}
7#align, #classlist {width:150px;}
8#width, #height {vertical-align:middle; width:50px; text-align:center;}
9#vspace, #hspace, #border {vertical-align:middle; width:30px; text-align:center;}
10#class_list {width:180px;}
11input {width: 280px;}
12#constrain, #onmousemovecheck {width:auto;}
13#id, #dir, #lang, #usemap, #longdesc {width:200px;}
diff --git a/public/javascripts/tiny_mce/plugins/advimage/editor_plugin.js b/public/javascripts/tiny_mce/plugins/advimage/editor_plugin.js
new file mode 100755
index 0000000..3af5057
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/advimage/editor_plugin.js
@@ -0,0 +1 @@
(function(){tinymce.create('tinymce.plugins.AdvancedImagePlugin',{init:function(ed,url){ed.addCommand('mceAdvImage',function(){if(ed.dom.getAttrib(ed.selection.getNode(),'class').indexOf('mceItem')!=-1)return;ed.windowManager.open({file:url+'/image.htm',width:480+parseInt(ed.getLang('advimage.delta_width',0)),height:385+parseInt(ed.getLang('advimage.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('image',{title:'advimage.image_desc',cmd:'mceAdvImage'});},getInfo:function(){return{longname:'Advanced image',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('advimage',tinymce.plugins.AdvancedImagePlugin);})(); \ No newline at end of file
diff --git a/public/javascripts/tiny_mce/plugins/advimage/editor_plugin_src.js b/public/javascripts/tiny_mce/plugins/advimage/editor_plugin_src.js
new file mode 100755
index 0000000..f526842
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/advimage/editor_plugin_src.js
@@ -0,0 +1,47 @@
1/**
2 * $Id: editor_plugin_src.js 677 2008-03-07 13:52:41Z 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.AdvancedImagePlugin', {
10 init : function(ed, url) {
11 // Register commands
12 ed.addCommand('mceAdvImage', function() {
13 // Internal image object like a flash placeholder
14 if (ed.dom.getAttrib(ed.selection.getNode(), 'class').indexOf('mceItem') != -1)
15 return;
16
17 ed.windowManager.open({
18 file : url + '/image.htm',
19 width : 480 + parseInt(ed.getLang('advimage.delta_width', 0)),
20 height : 385 + parseInt(ed.getLang('advimage.delta_height', 0)),
21 inline : 1
22 }, {
23 plugin_url : url
24 });
25 });
26
27 // Register buttons
28 ed.addButton('image', {
29 title : 'advimage.image_desc',
30 cmd : 'mceAdvImage'
31 });
32 },
33
34 getInfo : function() {
35 return {
36 longname : 'Advanced image',
37 author : 'Moxiecode Systems AB',
38 authorurl : 'http://tinymce.moxiecode.com',
39 infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',
40 version : tinymce.majorVersion + "." + tinymce.minorVersion
41 };
42 }
43 });
44
45 // Register plugin
46 tinymce.PluginManager.add('advimage', tinymce.plugins.AdvancedImagePlugin);
47})(); \ No newline at end of file
diff --git a/public/javascripts/tiny_mce/plugins/advimage/image.htm b/public/javascripts/tiny_mce/plugins/advimage/image.htm
new file mode 100755
index 0000000..dd84083
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/advimage/image.htm
@@ -0,0 +1,238 @@
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>{#advimage_dlg.dialog_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/form_utils.js"></script>
8 <script type="text/javascript" src="../../utils/validate.js"></script>
9 <script type="text/javascript" src="../../utils/editable_selects.js"></script>
10 <script type="text/javascript" src="js/image.js"></script>
11 <link href="css/advimage.css" rel="stylesheet" type="text/css" />
12 <base target="_self" />
13</head>
14<body id="advimage" style="display: none">
15 <form onsubmit="ImageDialog.insert();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;">{#advimage_dlg.tab_general}</a></span></li>
19 <li id="appearance_tab"><span><a href="javascript:mcTabs.displayTab('appearance_tab','appearance_panel');" onmousedown="return false;">{#advimage_dlg.tab_appearance}</a></span></li>
20 <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#advimage_dlg.tab_advanced}</a></span></li>
21 </ul>
22 </div>
23
24 <div class="panel_wrapper">
25 <div id="general_panel" class="panel current">
26 <fieldset>
27 <legend>{#advimage_dlg.general}</legend>
28
29 <table class="properties">
30 <tr>
31 <td class="column1"><label id="srclabel" for="src">{#advimage_dlg.src}</label></td>
32 <td colspan="2"><table border="0" cellspacing="0" cellpadding="0">
33 <tr>
34 <td><input name="src" type="text" id="src" value="" class="mceFocus" onchange="ImageDialog.showPreviewImage(this.value);" /></td>
35 <td id="srcbrowsercontainer">&nbsp;</td>
36 </tr>
37 </table></td>
38 </tr>
39 <tr>
40 <td><label for="src_list">{#advimage_dlg.image_list}</label></td>
41 <td><select id="src_list" name="src_list" onchange="document.getElementById('src').value=this.options[this.selectedIndex].value;document.getElementById('alt').value=this.options[this.selectedIndex].text;document.getElementById('title').value=this.options[this.selectedIndex].text;ImageDialog.showPreviewImage(this.options[this.selectedIndex].value);"></select></td>
42 </tr>
43 <tr>
44 <td class="column1"><label id="altlabel" for="alt">{#advimage_dlg.alt}</label></td>
45 <td colspan="2"><input id="alt" name="alt" type="text" value="" /></td>
46 </tr>
47 <tr>
48 <td class="column1"><label id="titlelabel" for="title">{#advimage_dlg.title}</label></td>
49 <td colspan="2"><input id="title" name="title" type="text" value="" /></td>
50 </tr>
51 </table>
52 </fieldset>
53
54 <fieldset>
55 <legend>{#advimage_dlg.preview}</legend>
56 <div id="prev"></div>
57 </fieldset>
58 </div>
59
60 <div id="appearance_panel" class="panel">
61 <fieldset>
62 <legend>{#advimage_dlg.tab_appearance}</legend>
63
64 <table border="0" cellpadding="4" cellspacing="0">
65 <tr>
66 <td class="column1"><label id="alignlabel" for="align">{#advimage_dlg.align}</label></td>
67 <td><select id="align" name="align" onchange="ImageDialog.updateStyle('align');ImageDialog.changeAppearance();">
68 <option value="">{#not_set}</option>
69 <option value="baseline">{#advimage_dlg.align_baseline}</option>
70 <option value="top">{#advimage_dlg.align_top}</option>
71 <option value="middle">{#advimage_dlg.align_middle}</option>
72 <option value="bottom">{#advimage_dlg.align_bottom}</option>
73 <option value="text-top">{#advimage_dlg.align_texttop}</option>
74 <option value="text-bottom">{#advimage_dlg.align_textbottom}</option>
75 <option value="left">{#advimage_dlg.align_left}</option>
76 <option value="right">{#advimage_dlg.align_right}</option>
77 </select>
78 </td>
79 <td rowspan="6" valign="top">
80 <div class="alignPreview">
81 <img id="alignSampleImg" src="img/sample.gif" alt="{#advimage_dlg.example_img}" />
82 Lorem ipsum, Dolor sit amet, consectetuer adipiscing loreum ipsum edipiscing elit, sed diam
83 nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Loreum ipsum
84 edipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam
85 erat volutpat.
86 </div>
87 </td>
88 </tr>
89
90 <tr>
91 <td class="column1"><label id="widthlabel" for="width">{#advimage_dlg.dimensions}</label></td>
92 <td nowrap="nowrap">
93 <input name="width" type="text" id="width" value="" size="5" maxlength="5" class="size" onchange="ImageDialog.changeHeight();" /> x
94 <input name="height" type="text" id="height" value="" size="5" maxlength="5" class="size" onchange="ImageDialog.changeWidth();" /> px
95 </td>
96 </tr>
97
98 <tr>
99 <td>&nbsp;</td>
100 <td><table border="0" cellpadding="0" cellspacing="0">
101 <tr>
102 <td><input id="constrain" type="checkbox" name="constrain" class="checkbox" /></td>
103 <td><label id="constrainlabel" for="constrain">{#advimage_dlg.constrain_proportions}</label></td>
104 </tr>
105 </table></td>
106 </tr>
107
108 <tr>
109 <td class="column1"><label id="vspacelabel" for="vspace">{#advimage_dlg.vspace}</label></td>
110 <td><input name="vspace" type="text" id="vspace" value="" size="3" maxlength="3" class="number" onchange="ImageDialog.updateStyle('vspace');ImageDialog.changeAppearance();" onblur="ImageDialog.updateStyle('vspace');ImageDialog.changeAppearance();" />
111 </td>
112 </tr>
113
114 <tr>
115 <td class="column1"><label id="hspacelabel" for="hspace">{#advimage_dlg.hspace}</label></td>
116 <td><input name="hspace" type="text" id="hspace" value="" size="3" maxlength="3" class="number" onchange="ImageDialog.updateStyle('hspace');ImageDialog.changeAppearance();" onblur="ImageDialog.updateStyle('hspace');ImageDialog.changeAppearance();" /></td>
117 </tr>
118
119 <tr>
120 <td class="column1"><label id="borderlabel" for="border">{#advimage_dlg.border}</label></td>
121 <td><input id="border" name="border" type="text" value="" size="3" maxlength="3" class="number" onchange="ImageDialog.updateStyle('border');ImageDialog.changeAppearance();" onblur="ImageDialog.updateStyle('border');ImageDialog.changeAppearance();" /></td>
122 </tr>
123
124 <tr>
125 <td><label for="class_list">{#class_name}</label></td>
126 <td colspan="2"><select id="class_list" name="class_list" class="mceEditableSelect"></select></td>
127 </tr>
128
129 <tr>
130 <td class="column1"><label id="stylelabel" for="style">{#advimage_dlg.style}</label></td>
131 <td colspan="2"><input id="style" name="style" type="text" value="" onchange="ImageDialog.changeAppearance();" /></td>
132 </tr>
133
134 <!-- <tr>
135 <td class="column1"><label id="classeslabel" for="classes">{#advimage_dlg.classes}</label></td>
136 <td colspan="2"><input id="classes" name="classes" type="text" value="" onchange="selectByValue(this.form,'classlist',this.value,true);" /></td>
137 </tr> -->
138 </table>
139 </fieldset>
140 </div>
141
142 <div id="advanced_panel" class="panel">
143 <fieldset>
144 <legend>{#advimage_dlg.swap_image}</legend>
145
146 <input type="checkbox" id="onmousemovecheck" name="onmousemovecheck" class="checkbox" onclick="ImageDialog.setSwapImage(this.checked);" />
147 <label id="onmousemovechecklabel" for="onmousemovecheck">{#advimage_dlg.alt_image}</label>
148
149 <table border="0" cellpadding="4" cellspacing="0" width="100%">
150 <tr>
151 <td class="column1"><label id="onmouseoversrclabel" for="onmouseoversrc">{#advimage_dlg.mouseover}</label></td>
152 <td><table border="0" cellspacing="0" cellpadding="0">
153 <tr>
154 <td><input id="onmouseoversrc" name="onmouseoversrc" type="text" value="" /></td>
155 <td id="onmouseoversrccontainer">&nbsp;</td>
156 </tr>
157 </table></td>
158 </tr>
159 <tr>
160 <td><label for="over_list">{#advimage_dlg.image_list}</label></td>
161 <td><select id="over_list" name="over_list" onchange="document.getElementById('onmouseoversrc').value=this.options[this.selectedIndex].value;"></select></td>
162 </tr>
163 <tr>
164 <td class="column1"><label id="onmouseoutsrclabel" for="onmouseoutsrc">{#advimage_dlg.mouseout}</label></td>
165 <td class="column2"><table border="0" cellspacing="0" cellpadding="0">
166 <tr>
167 <td><input id="onmouseoutsrc" name="onmouseoutsrc" type="text" value="" /></td>
168 <td id="onmouseoutsrccontainer">&nbsp;</td>
169 </tr>
170 </table></td>
171 </tr>
172 <tr>
173 <td><label for="out_list">{#advimage_dlg.image_list}</label></td>
174 <td><select id="out_list" name="out_list" onchange="document.getElementById('onmouseoutsrc').value=this.options[this.selectedIndex].value;"></select></td>
175 </tr>
176 </table>
177 </fieldset>
178
179 <fieldset>
180 <legend>{#advimage_dlg.misc}</legend>
181
182 <table border="0" cellpadding="4" cellspacing="0">
183 <tr>
184 <td class="column1"><label id="idlabel" for="id">{#advimage_dlg.id}</label></td>
185 <td><input id="id" name="id" type="text" value="" /></td>
186 </tr>
187
188 <tr>
189 <td class="column1"><label id="dirlabel" for="dir">{#advimage_dlg.langdir}</label></td>
190 <td>
191 <select id="dir" name="dir" onchange="ImageDialog.changeAppearance();">
192 <option value="">{#not_set}</option>
193 <option value="ltr">{#advimage_dlg.ltr}</option>
194 <option value="rtl">{#advimage_dlg.rtl}</option>
195 </select>
196 </td>
197 </tr>
198
199 <tr>
200 <td class="column1"><label id="langlabel" for="lang">{#advimage_dlg.langcode}</label></td>
201 <td>
202 <input id="lang" name="lang" type="text" value="" />
203 </td>
204 </tr>
205
206 <tr>
207 <td class="column1"><label id="usemaplabel" for="usemap">{#advimage_dlg.map}</label></td>
208 <td>
209 <input id="usemap" name="usemap" type="text" value="" />
210 </td>
211 </tr>
212
213 <tr>
214 <td class="column1"><label id="longdesclabel" for="longdesc">{#advimage_dlg.long_desc}</label></td>
215 <td><table border="0" cellspacing="0" cellpadding="0">
216 <tr>
217 <td><input id="longdesc" name="longdesc" type="text" value="" /></td>
218 <td id="longdesccontainer">&nbsp;</td>
219 </tr>
220 </table></td>
221 </tr>
222 </table>
223 </fieldset>
224 </div>
225 </div>
226
227 <div class="mceActionPanel">
228 <div style="float: left">
229 <input type="submit" id="insert" name="insert" value="{#insert}" />
230 </div>
231
232 <div style="float: right">
233 <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
234 </div>
235 </div>
236 </form>
237</body>
238</html>
diff --git a/public/javascripts/tiny_mce/plugins/advimage/img/sample.gif b/public/javascripts/tiny_mce/plugins/advimage/img/sample.gif
new file mode 100755
index 0000000..53bf689
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/advimage/img/sample.gif
Binary files differ
diff --git a/public/javascripts/tiny_mce/plugins/advimage/js/image.js b/public/javascripts/tiny_mce/plugins/advimage/js/image.js
new file mode 100755
index 0000000..64fc6f6
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/advimage/js/image.js
@@ -0,0 +1,441 @@
1var ImageDialog = {
2 preInit : function() {
3 var url;
4
5 tinyMCEPopup.requireLangPack();
6
7 if (url = tinyMCEPopup.getParam("external_image_list_url"))
8 document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
9 },
10
11 init : function(ed) {
12 var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, dom = ed.dom, n = ed.selection.getNode();
13
14 tinyMCEPopup.resizeToInnerSize();
15 this.fillClassList('class_list');
16 this.fillFileList('src_list', 'tinyMCEImageList');
17 this.fillFileList('over_list', 'tinyMCEImageList');
18 this.fillFileList('out_list', 'tinyMCEImageList');
19 TinyMCE_EditableSelects.init();
20
21 if (n.nodeName == 'IMG') {
22 nl.src.value = dom.getAttrib(n, 'src');
23 nl.width.value = dom.getAttrib(n, 'width');
24 nl.height.value = dom.getAttrib(n, 'height');
25 nl.alt.value = dom.getAttrib(n, 'alt');
26 nl.title.value = dom.getAttrib(n, 'title');
27 nl.vspace.value = this.getAttrib(n, 'vspace');
28 nl.hspace.value = this.getAttrib(n, 'hspace');
29 nl.border.value = this.getAttrib(n, 'border');
30 selectByValue(f, 'align', this.getAttrib(n, 'align'));
31 selectByValue(f, 'class_list', dom.getAttrib(n, 'class'), true, true);
32 nl.style.value = dom.getAttrib(n, 'style');
33 nl.id.value = dom.getAttrib(n, 'id');
34 nl.dir.value = dom.getAttrib(n, 'dir');
35 nl.lang.value = dom.getAttrib(n, 'lang');
36 nl.usemap.value = dom.getAttrib(n, 'usemap');
37 nl.longdesc.value = dom.getAttrib(n, 'longdesc');
38 nl.insert.value = ed.getLang('update');
39
40 if (/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/.test(dom.getAttrib(n, 'onmouseover')))
41 nl.onmouseoversrc.value = dom.getAttrib(n, 'onmouseover').replace(/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/, '$1');
42
43 if (/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/.test(dom.getAttrib(n, 'onmouseout')))
44 nl.onmouseoutsrc.value = dom.getAttrib(n, 'onmouseout').replace(/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/, '$1');
45
46 if (ed.settings.inline_styles) {
47 // Move attribs to styles
48 if (dom.getAttrib(n, 'align'))
49 this.updateStyle('align');
50
51 if (dom.getAttrib(n, 'hspace'))
52 this.updateStyle('hspace');
53
54 if (dom.getAttrib(n, 'border'))
55 this.updateStyle('border');
56
57 if (dom.getAttrib(n, 'vspace'))
58 this.updateStyle('vspace');
59 }
60 }
61
62 // Setup browse button
63 document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image');
64 if (isVisible('srcbrowser'))
65 document.getElementById('src').style.width = '260px';
66
67 // Setup browse button
68 document.getElementById('onmouseoversrccontainer').innerHTML = getBrowserHTML('overbrowser','onmouseoversrc','image','theme_advanced_image');
69 if (isVisible('overbrowser'))
70 document.getElementById('onmouseoversrc').style.width = '260px';
71
72 // Setup browse button
73 document.getElementById('onmouseoutsrccontainer').innerHTML = getBrowserHTML('outbrowser','onmouseoutsrc','image','theme_advanced_image');
74 if (isVisible('outbrowser'))
75 document.getElementById('onmouseoutsrc').style.width = '260px';
76
77 // If option enabled default contrain proportions to checked
78 if (ed.getParam("advimage_constrain_proportions", true))
79 f.constrain.checked = true;
80
81 // Check swap image if valid data
82 if (nl.onmouseoversrc.value || nl.onmouseoutsrc.value)
83 this.setSwapImage(true);
84 else
85 this.setSwapImage(false);
86
87 this.changeAppearance();
88 this.showPreviewImage(nl.src.value, 1);
89 },
90
91 insert : function(file, title) {
92 var ed = tinyMCEPopup.editor, t = this, f = document.forms[0];
93
94 if (f.src.value === '') {
95 if (ed.selection.getNode().nodeName == 'IMG') {
96 ed.dom.remove(ed.selection.getNode());
97 ed.execCommand('mceRepaint');
98 }
99
100 tinyMCEPopup.close();
101 return;
102 }
103
104 if (tinyMCEPopup.getParam("accessibility_warnings", 1)) {
105 if (!f.alt.value) {
106 tinyMCEPopup.confirm(tinyMCEPopup.getLang('advimage_dlg.missing_alt'), function(s) {
107 if (s)
108 t.insertAndClose();
109 });
110
111 return;
112 }
113 }
114
115 t.insertAndClose();
116 },
117
118 insertAndClose : function() {
119 var ed = tinyMCEPopup.editor, f = document.forms[0], nl = f.elements, v, args = {}, el;
120
121 tinyMCEPopup.restoreSelection();
122
123 // Fixes crash in Safari
124 if (tinymce.isWebKit)
125 ed.getWin().focus();
126
127 if (!ed.settings.inline_styles) {
128 args = {
129 vspace : nl.vspace.value,
130 hspace : nl.hspace.value,
131 border : nl.border.value,
132 align : getSelectValue(f, 'align')
133 };
134 } else {
135 // Remove deprecated values
136 args = {
137 vspace : '',
138 hspace : '',
139 border : '',
140 align : ''
141 };
142 }
143
144 tinymce.extend(args, {
145 src : nl.src.value,
146 width : nl.width.value,
147 height : nl.height.value,
148 alt : nl.alt.value,
149 title : nl.title.value,
150 'class' : getSelectValue(f, 'class_list'),
151 style : nl.style.value,
152 id : nl.id.value,
153 dir : nl.dir.value,
154 lang : nl.lang.value,
155 usemap : nl.usemap.value,
156 longdesc : nl.longdesc.value
157 });
158
159 args.onmouseover = args.onmouseout = '';
160
161 if (f.onmousemovecheck.checked) {
162 if (nl.onmouseoversrc.value)
163 args.onmouseover = "this.src='" + nl.onmouseoversrc.value + "';";
164
165 if (nl.onmouseoutsrc.value)
166 args.onmouseout = "this.src='" + nl.onmouseoutsrc.value + "';";
167 }
168
169 el = ed.selection.getNode();
170
171 if (el && el.nodeName == 'IMG') {
172 ed.dom.setAttribs(el, args);
173 } else {
174 ed.execCommand('mceInsertContent', false, '<img id="__mce_tmp" />', {skip_undo : 1});
175 ed.dom.setAttribs('__mce_tmp', args);
176 ed.dom.setAttrib('__mce_tmp', 'id', '');
177 ed.undoManager.add();
178 }
179
180 tinyMCEPopup.close();
181 },
182
183 getAttrib : function(e, at) {
184 var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2;
185
186 if (ed.settings.inline_styles) {
187 switch (at) {
188 case 'align':
189 if (v = dom.getStyle(e, 'float'))
190 return v;
191
192 if (v = dom.getStyle(e, 'vertical-align'))
193 return v;
194
195 break;
196
197 case 'hspace':
198 v = dom.getStyle(e, 'margin-left')
199 v2 = dom.getStyle(e, 'margin-right');
200
201 if (v && v == v2)
202 return parseInt(v.replace(/[^0-9]/g, ''));
203
204 break;
205
206 case 'vspace':
207 v = dom.getStyle(e, 'margin-top')
208 v2 = dom.getStyle(e, 'margin-bottom');
209 if (v && v == v2)
210 return parseInt(v.replace(/[^0-9]/g, ''));
211
212 break;
213
214 case 'border':
215 v = 0;
216
217 tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) {
218 sv = dom.getStyle(e, 'border-' + sv + '-width');
219
220 // False or not the same as prev
221 if (!sv || (sv != v && v !== 0)) {
222 v = 0;
223 return false;
224 }
225
226 if (sv)
227 v = sv;
228 });
229
230 if (v)
231 return parseInt(v.replace(/[^0-9]/g, ''));
232
233 break;
234 }
235 }
236
237 if (v = dom.getAttrib(e, at))
238 return v;
239
240 return '';
241 },
242
243 setSwapImage : function(st) {
244 var f = document.forms[0];
245
246 f.onmousemovecheck.checked = st;
247 setBrowserDisabled('overbrowser', !st);
248 setBrowserDisabled('outbrowser', !st);
249
250 if (f.over_list)
251 f.over_list.disabled = !st;
252
253 if (f.out_list)
254 f.out_list.disabled = !st;
255
256 f.onmouseoversrc.disabled = !st;
257 f.onmouseoutsrc.disabled = !st;
258 },
259
260 fillClassList : function(id) {
261 var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
262
263 if (v = tinyMCEPopup.getParam('theme_advanced_styles')) {
264 cl = [];
265
266 tinymce.each(v.split(';'), function(v) {
267 var p = v.split('=');
268
269 cl.push({'title' : p[0], 'class' : p[1]});
270 });
271 } else
272 cl = tinyMCEPopup.editor.dom.getClasses();
273
274 if (cl.length > 0) {
275 lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');
276
277 tinymce.each(cl, function(o) {
278 lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']);
279 });
280 } else
281 dom.remove(dom.getParent(id, 'tr'));
282 },
283
284 fillFileList : function(id, l) {
285 var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
286
287 l = window[l];
288
289 if (l && l.length > 0) {
290 lst.options[lst.options.length] = new Option('', '');
291
292 tinymce.each(l, function(o) {
293 lst.options[lst.options.length] = new Option(o[0], o[1]);
294 });
295 } else
296 dom.remove(dom.getParent(id, 'tr'));
297 },
298
299 resetImageData : function() {
300 var f = document.forms[0];
301
302 f.elements.width.value = f.elements.height.value = '';
303 },
304
305 updateImageData : function(img, st) {
306 var f = document.forms[0];
307
308 if (!st) {
309 f.elements.width.value = img.width;
310 f.elements.height.value = img.height;
311 }
312
313 this.preloadImg = img;
314 },
315
316 changeAppearance : function() {
317 var ed = tinyMCEPopup.editor, f = document.forms[0], img = document.getElementById('alignSampleImg');
318
319 if (img) {
320 if (ed.getParam('inline_styles')) {
321 ed.dom.setAttrib(img, 'style', f.style.value);
322 } else {
323 img.align = f.align.value;
324 img.border = f.border.value;
325 img.hspace = f.hspace.value;
326 img.vspace = f.vspace.value;
327 }
328 }
329 },
330
331 changeHeight : function() {
332 var f = document.forms[0], tp, t = this;
333
334 if (!f.constrain.checked || !t.preloadImg) {
335 return;
336 }
337
338 if (f.width.value == "" || f.height.value == "")
339 return;
340
341 tp = (parseInt(f.width.value) / parseInt(t.preloadImg.width)) * t.preloadImg.height;
342 f.height.value = tp.toFixed(0);
343 },
344
345 changeWidth : function() {
346 var f = document.forms[0], tp, t = this;
347
348 if (!f.constrain.checked || !t.preloadImg) {
349 return;
350 }
351
352 if (f.width.value == "" || f.height.value == "")
353 return;
354
355 tp = (parseInt(f.height.value) / parseInt(t.preloadImg.height)) * t.preloadImg.width;
356 f.width.value = tp.toFixed(0);
357 },
358
359 updateStyle : function(ty) {
360 var dom = tinyMCEPopup.dom, st, v, f = document.forms[0], img = dom.create('img', {style : dom.get('style').value});
361
362 if (tinyMCEPopup.editor.settings.inline_styles) {
363 // Handle align
364 if (ty == 'align') {
365 dom.setStyle(img, 'float', '');
366 dom.setStyle(img, 'vertical-align', '');
367
368 v = getSelectValue(f, 'align');
369 if (v) {
370 if (v == 'left' || v == 'right')
371 dom.setStyle(img, 'float', v);
372 else
373 img.style.verticalAlign = v;
374 }
375 }
376
377 // Handle border
378 if (ty == 'border') {
379 dom.setStyle(img, 'border', '');
380
381 v = f.border.value;
382 if (v || v == '0') {
383 if (v == '0')
384 img.style.border = '0';
385 else
386 img.style.border = v + 'px solid black';
387 }
388 }
389
390 // Handle hspace
391 if (ty == 'hspace') {
392 dom.setStyle(img, 'marginLeft', '');
393 dom.setStyle(img, 'marginRight', '');
394
395 v = f.hspace.value;
396 if (v) {
397 img.style.marginLeft = v + 'px';
398 img.style.marginRight = v + 'px';
399 }
400 }
401
402 // Handle vspace
403 if (ty == 'vspace') {
404 dom.setStyle(img, 'marginTop', '');
405 dom.setStyle(img, 'marginBottom', '');
406
407 v = f.vspace.value;
408 if (v) {
409 img.style.marginTop = v + 'px';
410 img.style.marginBottom = v + 'px';
411 }
412 }
413
414 // Merge
415 dom.get('style').value = dom.serializeStyle(dom.parseStyle(img.style.cssText));
416 }
417 },
418
419 changeMouseMove : function() {
420 },
421
422 showPreviewImage : function(u, st) {
423 if (!u) {
424 tinyMCEPopup.dom.setHTML('prev', '');
425 return;
426 }
427
428 if (!st && tinyMCEPopup.getParam("advimage_update_dimensions_onchange", true))
429 this.resetImageData();
430
431 u = tinyMCEPopup.editor.documentBaseURI.toAbsolute(u);
432
433 if (!st)
434 tinyMCEPopup.dom.setHTML('prev', '<img id="previewImg" src="' + u + '" border="0" onload="ImageDialog.updateImageData(this);" onerror="ImageDialog.resetImageData();" />');
435 else
436 tinyMCEPopup.dom.setHTML('prev', '<img id="previewImg" src="' + u + '" border="0" onload="ImageDialog.updateImageData(this, 1);" />');
437 }
438};
439
440ImageDialog.preInit();
441tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog);
diff --git a/public/javascripts/tiny_mce/plugins/advimage/langs/en_dlg.js b/public/javascripts/tiny_mce/plugins/advimage/langs/en_dlg.js
new file mode 100755
index 0000000..f493d19
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/advimage/langs/en_dlg.js
@@ -0,0 +1,43 @@
1tinyMCE.addI18n('en.advimage_dlg',{
2tab_general:"General",
3tab_appearance:"Appearance",
4tab_advanced:"Advanced",
5general:"General",
6title:"Title",
7preview:"Preview",
8constrain_proportions:"Constrain proportions",
9langdir:"Language direction",
10langcode:"Language code",
11long_desc:"Long description link",
12style:"Style",
13classes:"Classes",
14ltr:"Left to right",
15rtl:"Right to left",
16id:"Id",
17map:"Image map",
18swap_image:"Swap image",
19alt_image:"Alternative image",
20mouseover:"for mouse over",
21mouseout:"for mouse out",
22misc:"Miscellaneous",
23example_img:"Appearance preview image",
24missing_alt:"Are you sure you want to continue without including an Image Description? Without it the image may not be accessible to some users with disabilities, or to those using a text browser, or browsing the Web with images turned off.",
25dialog_title:"Insert/edit image",
26src:"Image URL",
27alt:"Image description",
28list:"Image list",
29border:"Border",
30dimensions:"Dimensions",
31vspace:"Vertical space",
32hspace:"Horizontal space",
33align:"Alignment",
34align_baseline:"Baseline",
35align_top:"Top",
36align_middle:"Middle",
37align_bottom:"Bottom",
38align_texttop:"Text top",
39align_textbottom:"Text bottom",
40align_left:"Left",
41align_right:"Right",
42image_list:"Image list"
43}); \ No newline at end of file