~ubuntu-branches/debian/jessie/wordpress/jessie

« back to all changes in this revision

Viewing changes to wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.js

  • Committer: Package Import Robot
  • Author(s): Craig Small
  • Date: 2014-04-17 20:56:19 UTC
  • mfrom: (1.2.35)
  • Revision ID: package-import@ubuntu.com-20140417205619-nurbet6eho4yvwfv
Tags: 3.9+dfsg-1
* New upstream release
* 3.9 seems to handle different locations for plugins so the
  plugin directory handling patches have been cut back.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 
2
 
var tinymce = null, tinyMCEPopup, tinyMCE, wpImage;
3
 
 
4
 
tinyMCEPopup = {
5
 
        init: function() {
6
 
                var t = this, w, ti;
7
 
 
8
 
                // Find window & API
9
 
                w = t.getWin();
10
 
                tinymce = w.tinymce;
11
 
                tinyMCE = w.tinyMCE;
12
 
                t.editor = tinymce.EditorManager.activeEditor;
13
 
                t.params = t.editor.windowManager.params;
14
 
                t.features = t.editor.windowManager.features;
15
 
 
16
 
                // Setup local DOM
17
 
                t.dom = t.editor.windowManager.createInstance('tinymce.dom.DOMUtils', document);
18
 
                t.editor.windowManager.onOpen.dispatch(t.editor.windowManager, window);
19
 
        },
20
 
 
21
 
        getWin : function() {
22
 
                return (!window.frameElement && window.dialogArguments) || opener || parent || top;
23
 
        },
24
 
 
25
 
        getParam : function(n, dv) {
26
 
                return this.editor.getParam(n, dv);
27
 
        },
28
 
 
29
 
        close : function() {
30
 
                var t = this;
31
 
 
32
 
                // To avoid domain relaxing issue in Opera
33
 
                function close() {
34
 
                        t.editor.windowManager.close(window);
35
 
                        tinymce = tinyMCE = t.editor = t.params = t.dom = t.dom.doc = null; // Cleanup
36
 
                };
37
 
 
38
 
                if (tinymce.isOpera)
39
 
                        t.getWin().setTimeout(close, 0);
40
 
                else
41
 
                        close();
42
 
        },
43
 
 
44
 
        execCommand : function(cmd, ui, val, a) {
45
 
                a = a || {};
46
 
                a.skip_focus = 1;
47
 
 
48
 
                this.restoreSelection();
49
 
                return this.editor.execCommand(cmd, ui, val, a);
50
 
        },
51
 
 
52
 
        storeSelection : function() {
53
 
                this.editor.windowManager.bookmark = tinyMCEPopup.editor.selection.getBookmark(1);
54
 
        },
55
 
 
56
 
        restoreSelection : function() {
57
 
                var t = tinyMCEPopup;
58
 
 
59
 
                if ( tinymce.isIE )
60
 
                        t.editor.selection.moveToBookmark(t.editor.windowManager.bookmark);
61
 
        }
62
 
}
63
 
tinyMCEPopup.init();
64
 
 
65
 
wpImage = {
66
 
        preInit : function() {
67
 
                // import colors stylesheet from parent
68
 
                var ed = tinyMCEPopup.editor, win = tinyMCEPopup.getWin(), styles = win.document.styleSheets, url, i;
69
 
 
70
 
                for ( i = 0; i < styles.length; i++ ) {
71
 
                        url = styles.item(i).href;
72
 
                        if ( url && url.indexOf('colors') != -1 ) {
73
 
                                document.getElementsByTagName('head')[0].appendChild( ed.dom.create('link', {rel:'stylesheet', href: url}) );
74
 
                                break;
75
 
                        }
76
 
                }
77
 
        },
78
 
 
79
 
        I : function(e) {
80
 
                return document.getElementById(e);
81
 
        },
82
 
 
83
 
        current : '',
84
 
        link : '',
85
 
        link_rel : '',
86
 
        target_value : '',
87
 
        current_size_sel : 's100',
88
 
        width : '',
89
 
        height : '',
90
 
        align : '',
91
 
        img_alt : '',
92
 
 
93
 
        setTabs : function(tab) {
94
 
                var t = this;
95
 
 
96
 
                if ( 'current' == tab.className ) return false;
97
 
                t.I('div_advanced').style.display = ( 'tab_advanced' == tab.id ) ? 'block' : 'none';
98
 
                t.I('div_basic').style.display = ( 'tab_basic' == tab.id ) ? 'block' : 'none';
99
 
                t.I('tab_basic').className = t.I('tab_advanced').className = '';
100
 
                tab.className = 'current';
101
 
                return false;
102
 
        },
103
 
 
104
 
        img_seturl : function(u) {
105
 
                var t = this, rel = t.I('link_rel').value;
106
 
 
107
 
                if ( 'current' == u ) {
108
 
                        t.I('link_href').value = t.current;
109
 
                        t.I('link_rel').value = t.link_rel;
110
 
                } else {
111
 
                        t.I('link_href').value = t.link;
112
 
                        if ( rel ) {
113
 
                                rel = rel.replace( /attachment|wp-att-[0-9]+/gi, '' );
114
 
                                t.I('link_rel').value = tinymce.trim(rel);
115
 
                        }
116
 
                }
117
 
        },
118
 
 
119
 
        imgAlignCls : function(v) {
120
 
                var t = this, cls = t.I('img_classes').value;
121
 
 
122
 
                t.I('img_demo').className = t.align = v;
123
 
 
124
 
                cls = cls.replace( /align[^ "']+/gi, '' );
125
 
                cls += (' ' + v);
126
 
                cls = cls.replace( /\s+/g, ' ' ).replace( /^\s/, '' );
127
 
 
128
 
                if ( 'aligncenter' == v ) {
129
 
                        t.I('hspace').value = '';
130
 
                        t.updateStyle('hspace');
131
 
                }
132
 
 
133
 
                t.I('img_classes').value = cls;
134
 
        },
135
 
 
136
 
        showSize : function(el) {
137
 
                var t = this, demo = t.I('img_demo'), w = t.width, h = t.height, id = el.id || 's100', size;
138
 
 
139
 
                size = parseInt(id.substring(1)) / 200;
140
 
                demo.width = Math.round(w * size);
141
 
                demo.height = Math.round(h * size);
142
 
 
143
 
                t.showSizeClear();
144
 
                el.style.borderColor = '#A3A3A3';
145
 
                el.style.backgroundColor = '#E5E5E5';
146
 
        },
147
 
 
148
 
        showSizeSet : function() {
149
 
                var t = this, s130, s120, s110;
150
 
 
151
 
                if ( (t.width * 1.3) > parseInt(t.preloadImg.width) ) {
152
 
                        s130 = t.I('s130'), s120 = t.I('s120'), s110 = t.I('s110');
153
 
 
154
 
                        s130.onclick = s120.onclick = s110.onclick = null;
155
 
                        s130.onmouseover = s120.onmouseover = s110.onmouseover = null;
156
 
                        s130.style.color = s120.style.color = s110.style.color = '#aaa';
157
 
                }
158
 
        },
159
 
 
160
 
        showSizeRem : function() {
161
 
                var t = this, demo = t.I('img_demo'), f = document.forms[0];
162
 
 
163
 
                demo.width = Math.round(f.width.value * 0.5);
164
 
                demo.height = Math.round(f.height.value * 0.5);
165
 
                t.showSizeClear();
166
 
                t.I(t.current_size_sel).style.borderColor = '#A3A3A3';
167
 
                t.I(t.current_size_sel).style.backgroundColor = '#E5E5E5';
168
 
 
169
 
                return false;
170
 
        },
171
 
 
172
 
        showSizeClear : function() {
173
 
                var divs = this.I('img_size').getElementsByTagName('div'), i;
174
 
 
175
 
                for ( i = 0; i < divs.length; i++ ) {
176
 
                        divs[i].style.borderColor = '#f1f1f1';
177
 
                        divs[i].style.backgroundColor = '#f1f1f1';
178
 
                }
179
 
        },
180
 
 
181
 
        imgEditSize : function(el) {
182
 
                var t = this, f = document.forms[0], W, H, w, h, id;
183
 
 
184
 
                if ( ! t.preloadImg || ! t.preloadImg.width || ! t.preloadImg.height )
185
 
                        return;
186
 
                
187
 
                W = parseInt(t.preloadImg.width), H = parseInt(t.preloadImg.height), w = t.width || W, h = t.height || H, id = el.id || 's100';
188
 
 
189
 
                size = parseInt(id.substring(1)) / 100;
190
 
 
191
 
                w = Math.round(w * size);
192
 
                h = Math.round(h * size);
193
 
 
194
 
                f.width.value = Math.min(W, w);
195
 
                f.height.value = Math.min(H, h);
196
 
 
197
 
                t.current_size_sel = id;
198
 
                t.demoSetSize();
199
 
        },
200
 
 
201
 
        demoSetSize : function(img) {
202
 
                var demo = this.I('img_demo'), f = document.forms[0];
203
 
 
204
 
                demo.width = f.width.value ? Math.round(f.width.value * 0.5) : '';
205
 
                demo.height = f.height.value ? Math.round(f.height.value * 0.5) : '';
206
 
        },
207
 
 
208
 
        demoSetStyle : function() {
209
 
                var f = document.forms[0], demo = this.I('img_demo'), dom = tinyMCEPopup.editor.dom;
210
 
 
211
 
                if (demo) {
212
 
                        dom.setAttrib(demo, 'style', f.img_style.value);
213
 
                        dom.setStyle(demo, 'width', '');
214
 
                        dom.setStyle(demo, 'height', '');
215
 
                }
216
 
        },
217
 
 
218
 
        origSize : function() {
219
 
                var t = this, f = document.forms[0], el = t.I('s100');
220
 
 
221
 
                f.width.value = t.width = t.preloadImg.width;
222
 
                f.height.value = t.height = t.preloadImg.height;
223
 
                t.showSizeSet();
224
 
                t.demoSetSize();
225
 
                t.showSize(el);
226
 
        },
227
 
 
228
 
        init : function() {
229
 
                var ed = tinyMCEPopup.editor, h;
230
 
 
231
 
                h = document.body.innerHTML;
232
 
                document.body.innerHTML = ed.translate(h);
233
 
                window.setTimeout( function(){wpImage.setup();}, 500 );
234
 
        },
235
 
 
236
 
        setup : function() {
237
 
                var t = this, c, el, link, fname, f = document.forms[0], ed = tinyMCEPopup.editor,
238
 
                        d = t.I('img_demo'), dom = tinyMCEPopup.dom, DL, DD, caption = '', dlc, pa;
239
 
 
240
 
                document.dir = tinyMCEPopup.editor.getParam('directionality','');
241
 
 
242
 
                if ( tinyMCEPopup.editor.getParam('wpeditimage_disable_captions', false) )
243
 
                        t.I('cap_field').style.display = 'none';
244
 
 
245
 
                tinyMCEPopup.restoreSelection();
246
 
                el = ed.selection.getNode();
247
 
                if (el.nodeName != 'IMG')
248
 
                        return;
249
 
 
250
 
                f.img_src.value = d.src = link = ed.dom.getAttrib(el, 'src');
251
 
                ed.dom.setStyle(el, 'float', '');
252
 
                t.getImageData();
253
 
                c = ed.dom.getAttrib(el, 'class');
254
 
 
255
 
                if ( DL = dom.getParent(el, 'dl') ) {
256
 
                        dlc = ed.dom.getAttrib(DL, 'class');
257
 
                        dlc = dlc.match(/align[^ "']+/i);
258
 
                        if ( dlc && ! dom.hasClass(el, dlc) ) {
259
 
                                c += ' '+dlc;
260
 
                                tinymce.trim(c);
261
 
                        }
262
 
 
263
 
                        DD = ed.dom.select('dd.wp-caption-dd', DL);
264
 
                        if ( DD && DD[0] )
265
 
                                caption = ed.serializer.serialize(DD[0]).replace(/^<p>/, '').replace(/<\/p>$/, '');
266
 
                }
267
 
 
268
 
                f.img_cap_text.value = caption;
269
 
                f.img_title.value = ed.dom.getAttrib(el, 'title');
270
 
                f.img_alt.value = ed.dom.getAttrib(el, 'alt');
271
 
                f.border.value = ed.dom.getAttrib(el, 'border');
272
 
                f.vspace.value = ed.dom.getAttrib(el, 'vspace');
273
 
                f.hspace.value = ed.dom.getAttrib(el, 'hspace');
274
 
                f.align.value = ed.dom.getAttrib(el, 'align');
275
 
                f.width.value = t.width = ed.dom.getAttrib(el, 'width');
276
 
                f.height.value = t.height = ed.dom.getAttrib(el, 'height');
277
 
                f.img_classes.value = c;
278
 
                f.img_style.value = ed.dom.getAttrib(el, 'style');
279
 
 
280
 
                // Move attribs to styles
281
 
                if ( dom.getAttrib(el, 'hspace') )
282
 
                        t.updateStyle('hspace');
283
 
 
284
 
                if ( dom.getAttrib(el, 'border') )
285
 
                        t.updateStyle('border');
286
 
 
287
 
                if ( dom.getAttrib(el, 'vspace') )
288
 
                        t.updateStyle('vspace');
289
 
 
290
 
                if ( pa = ed.dom.getParent(el, 'A') ) {
291
 
                        f.link_href.value = t.current = ed.dom.getAttrib(pa, 'href');
292
 
                        f.link_title.value = ed.dom.getAttrib(pa, 'title');
293
 
                        f.link_rel.value = t.link_rel = ed.dom.getAttrib(pa, 'rel');
294
 
                        f.link_style.value = ed.dom.getAttrib(pa, 'style');
295
 
                        t.target_value = ed.dom.getAttrib(pa, 'target');
296
 
                        f.link_classes.value = ed.dom.getAttrib(pa, 'class');
297
 
                }
298
 
 
299
 
                f.link_target.checked = ( t.target_value && t.target_value == '_blank' ) ? 'checked' : '';
300
 
 
301
 
                fname = link.substring( link.lastIndexOf('/') );
302
 
                fname = fname.replace(/-[0-9]{2,4}x[0-9]{2,4}/, '' );
303
 
                t.link = link.substring( 0, link.lastIndexOf('/') ) + fname;
304
 
 
305
 
                if ( c.indexOf('alignleft') != -1 ) {
306
 
                        t.I('alignleft').checked = "checked";
307
 
                        d.className = t.align = "alignleft";
308
 
                } else if ( c.indexOf('aligncenter') != -1 ) {
309
 
                        t.I('aligncenter').checked = "checked";
310
 
                        d.className = t.align = "aligncenter";
311
 
                } else if ( c.indexOf('alignright') != -1 ) {
312
 
                        t.I('alignright').checked = "checked";
313
 
                        d.className = t.align = "alignright";
314
 
                } else if ( c.indexOf('alignnone') != -1 ) {
315
 
                        t.I('alignnone').checked = "checked";
316
 
                        d.className = t.align = "alignnone";
317
 
                }
318
 
 
319
 
                if ( t.width && t.preloadImg.width )
320
 
                        t.showSizeSet();
321
 
                
322
 
                document.body.style.display = '';
323
 
        },
324
 
 
325
 
        remove : function() {
326
 
                var ed = tinyMCEPopup.editor, p, el;
327
 
 
328
 
                tinyMCEPopup.restoreSelection();
329
 
                el = ed.selection.getNode();
330
 
                if (el.nodeName != 'IMG') return;
331
 
 
332
 
                if ( (p = ed.dom.getParent(el, 'div')) && ed.dom.hasClass(p, 'mceTemp') )
333
 
                        ed.dom.remove(p);
334
 
                else if ( (p = ed.dom.getParent(el, 'A')) && p.childNodes.length == 1 )
335
 
                        ed.dom.remove(p);
336
 
                else ed.dom.remove(el);
337
 
 
338
 
                ed.execCommand('mceRepaint');
339
 
                tinyMCEPopup.close();
340
 
                return;
341
 
        },
342
 
 
343
 
        update : function() {
344
 
                var t = this, f = document.forms[0], ed = tinyMCEPopup.editor, el, b, fixSafari = null,
345
 
                        DL, P, A, DIV, do_caption = null, img_class = f.img_classes.value, html,
346
 
                        id, cap_id = '', cap, DT, DD, cap_width, div_cls, lnk = '', pa, aa, caption;
347
 
 
348
 
                tinyMCEPopup.restoreSelection();
349
 
                el = ed.selection.getNode();
350
 
 
351
 
                if (el.nodeName != 'IMG') return;
352
 
                if (f.img_src.value === '') {
353
 
                        t.remove();
354
 
                        return;
355
 
                }
356
 
 
357
 
                if ( f.img_cap_text.value != '' && f.width.value != '' ) {
358
 
                        do_caption = 1;
359
 
                        img_class = img_class.replace( /align[^ "']+\s?/gi, '' );
360
 
                }
361
 
 
362
 
                A = ed.dom.getParent(el, 'a');
363
 
                P = ed.dom.getParent(el, 'p');
364
 
                DL = ed.dom.getParent(el, 'dl');
365
 
                DIV = ed.dom.getParent(el, 'div');
366
 
 
367
 
                tinyMCEPopup.execCommand("mceBeginUndoLevel");
368
 
 
369
 
                if ( f.width.value != el.width || f.height.value != el.height )
370
 
                        img_class = img_class.replace(/size-[^ "']+/, '');
371
 
 
372
 
                ed.dom.setAttribs(el, {
373
 
                        src : f.img_src.value,
374
 
                        title : f.img_title.value,
375
 
                        alt : f.img_alt.value,
376
 
                        width : f.width.value,
377
 
                        height : f.height.value,
378
 
                        style : f.img_style.value,
379
 
                        'class' : img_class
380
 
                });
381
 
 
382
 
                if ( f.link_href.value ) {
383
 
                        // Create new anchor elements
384
 
                        if ( A == null ) {
385
 
                                if ( ! f.link_href.value.match(/https?:\/\//i) )
386
 
                                        f.link_href.value = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.link_href.value);
387
 
 
388
 
                                ed.getDoc().execCommand("unlink", false, null);
389
 
                                tinyMCEPopup.execCommand("mceInsertLink", false, "#mce_temp_url#", {skip_undo : 1});
390
 
 
391
 
                                tinymce.each(ed.dom.select("a"), function(n) {
392
 
                                        if ( ed.dom.getAttrib(n, 'href') == '#mce_temp_url#' ) {
393
 
 
394
 
                                                ed.dom.setAttribs(n, {
395
 
                                                        href : f.link_href.value,
396
 
                                                        title : f.link_title.value,
397
 
                                                        rel : f.link_rel.value,
398
 
                                                        target : (f.link_target.checked == true) ? '_blank' : '',
399
 
                                                        'class' : f.link_classes.value,
400
 
                                                        style : f.link_style.value
401
 
                                                });
402
 
                                        }
403
 
                                });
404
 
                        } else {
405
 
                                ed.dom.setAttribs(A, {
406
 
                                        href : f.link_href.value,
407
 
                                        title : f.link_title.value,
408
 
                                        rel : f.link_rel.value,
409
 
                                        target : (f.link_target.checked == true) ? '_blank' : '',
410
 
                                        'class' : f.link_classes.value,
411
 
                                        style : f.link_style.value
412
 
                                });
413
 
                        }
414
 
                }
415
 
 
416
 
                if ( do_caption ) {
417
 
                        cap_width = 10 + parseInt(f.width.value);
418
 
                        div_cls = (t.align == 'aligncenter') ? 'mceTemp mceIEcenter' : 'mceTemp';
419
 
                        caption = f.img_cap_text.value;
420
 
 
421
 
                        caption = caption.replace(/\r\n|\r/g, '\n').replace(/<[a-zA-Z0-9]+( [^<>]+)?>/g, function(a){
422
 
                                return a.replace(/[\r\n\t]+/, ' ');
423
 
                        });
424
 
 
425
 
                        caption = caption.replace(/\s*\n\s*/g, '<br />');
426
 
 
427
 
                        if ( DL ) {
428
 
                                ed.dom.setAttribs(DL, {
429
 
                                        'class' : 'wp-caption '+t.align,
430
 
                                        style : 'width: '+cap_width+'px;'
431
 
                                });
432
 
 
433
 
                                if ( DIV )
434
 
                                        ed.dom.setAttrib(DIV, 'class', div_cls);
435
 
 
436
 
                                if ( (DT = ed.dom.getParent(el, 'dt')) && (DD = DT.nextSibling) && ed.dom.hasClass(DD, 'wp-caption-dd') )
437
 
                                        ed.dom.setHTML(DD, caption);
438
 
 
439
 
                        } else {
440
 
                                if ( (id = f.img_classes.value.match( /wp-image-([0-9]{1,6})/ )) && id[1] )
441
 
                                        cap_id = 'attachment_'+id[1];
442
 
 
443
 
                                if ( f.link_href.value && (lnk = ed.dom.getParent(el, 'a')) ) {
444
 
                                        if ( lnk.childNodes.length == 1 ) {
445
 
                                                html = ed.dom.getOuterHTML(lnk);
446
 
                                        } else {
447
 
                                                html = ed.dom.getOuterHTML(lnk);
448
 
                                                html = html.match(/<a [^>]+>/i);
449
 
                                                html = html+ed.dom.getOuterHTML(el)+'</a>';
450
 
                                        }
451
 
                                } else {
452
 
                                        html = ed.dom.getOuterHTML(el);
453
 
                                }
454
 
 
455
 
                                html = '<dl id="'+cap_id+'" class="wp-caption '+t.align+'" style="width: '+cap_width+
456
 
                                'px"><dt class="wp-caption-dt">'+html+'</dt><dd class="wp-caption-dd">'+caption+'</dd></dl>';
457
 
 
458
 
                                cap = ed.dom.create('div', {'class': div_cls}, html);
459
 
 
460
 
                                if ( P ) {
461
 
                                        P.parentNode.insertBefore(cap, P);
462
 
                                        if ( P.childNodes.length == 1 )
463
 
                                                ed.dom.remove(P);
464
 
                                        else if ( lnk && lnk.childNodes.length == 1 )
465
 
                                                ed.dom.remove(lnk);
466
 
                                        else ed.dom.remove(el);
467
 
                                } else if ( pa = ed.dom.getParent(el, 'TD,TH,LI') ) {
468
 
                                        pa.appendChild(cap);
469
 
                                        if ( lnk && lnk.childNodes.length == 1 )
470
 
                                                ed.dom.remove(lnk);
471
 
                                        else ed.dom.remove(el);
472
 
                                }
473
 
                        }
474
 
 
475
 
                } else {
476
 
                        if ( DL && DIV ) {
477
 
                                if ( f.link_href.value && (aa = ed.dom.getParent(el, 'a')) ) html = ed.dom.getOuterHTML(aa);
478
 
                                else html = ed.dom.getOuterHTML(el);
479
 
 
480
 
                                P = ed.dom.create('p', {}, html);
481
 
                                DIV.parentNode.insertBefore(P, DIV);
482
 
                                ed.dom.remove(DIV);
483
 
                        }
484
 
                }
485
 
 
486
 
                if ( f.img_classes.value.indexOf('aligncenter') != -1 ) {
487
 
                        if ( P && ( ! P.style || P.style.textAlign != 'center' ) )
488
 
                                ed.dom.setStyle(P, 'textAlign', 'center');
489
 
                } else {
490
 
                        if ( P && P.style && P.style.textAlign == 'center' )
491
 
                                ed.dom.setStyle(P, 'textAlign', '');
492
 
                }
493
 
 
494
 
                if ( ! f.link_href.value && A ) {
495
 
                        b = ed.selection.getBookmark();
496
 
                        ed.dom.remove(A, 1);
497
 
                        ed.selection.moveToBookmark(b);
498
 
                }
499
 
 
500
 
                ed.execCommand("mceEndUndoLevel");
501
 
                ed.execCommand('mceRepaint');
502
 
                tinyMCEPopup.close();
503
 
        },
504
 
 
505
 
        updateStyle : function(ty) {
506
 
                var dom = tinyMCEPopup.dom, v, f = document.forms[0], img = dom.create('img', {style : f.img_style.value});
507
 
 
508
 
                if (tinyMCEPopup.editor.settings.inline_styles) {
509
 
                        // Handle align
510
 
                        if (ty == 'align') {
511
 
                                dom.setStyle(img, 'float', '');
512
 
                                dom.setStyle(img, 'vertical-align', '');
513
 
 
514
 
                                v = f.align.value;
515
 
                                if (v) {
516
 
                                        if (v == 'left' || v == 'right')
517
 
                                                dom.setStyle(img, 'float', v);
518
 
                                        else
519
 
                                                img.style.verticalAlign = v;
520
 
                                }
521
 
                        }
522
 
 
523
 
                        // Handle border
524
 
                        if (ty == 'border') {
525
 
                                dom.setStyle(img, 'border', '');
526
 
 
527
 
                                v = f.border.value;
528
 
                                if (v || v == '0') {
529
 
                                        if (v == '0')
530
 
                                                img.style.border = '0';
531
 
                                        else
532
 
                                                img.style.border = v + 'px solid black';
533
 
                                }
534
 
                        }
535
 
 
536
 
                        // Handle hspace
537
 
                        if (ty == 'hspace') {
538
 
                                dom.setStyle(img, 'marginLeft', '');
539
 
                                dom.setStyle(img, 'marginRight', '');
540
 
 
541
 
                                v = f.hspace.value;
542
 
                                if (v) {
543
 
                                        img.style.marginLeft = v + 'px';
544
 
                                        img.style.marginRight = v + 'px';
545
 
                                }
546
 
                        }
547
 
 
548
 
                        // Handle vspace
549
 
                        if (ty == 'vspace') {
550
 
                                dom.setStyle(img, 'marginTop', '');
551
 
                                dom.setStyle(img, 'marginBottom', '');
552
 
 
553
 
                                v = f.vspace.value;
554
 
                                if (v) {
555
 
                                        img.style.marginTop = v + 'px';
556
 
                                        img.style.marginBottom = v + 'px';
557
 
                                }
558
 
                        }
559
 
 
560
 
                        // Merge
561
 
                        f.img_style.value = dom.serializeStyle(dom.parseStyle(img.style.cssText));
562
 
                        this.demoSetStyle();
563
 
                }
564
 
        },
565
 
 
566
 
        checkVal : function(f) {
567
 
 
568
 
                if ( f.value == '' ) {
569
 
        //              if ( f.id == 'width' ) f.value = this.width || this.preloadImg.width;
570
 
        //              if ( f.id == 'height' ) f.value = this.height || this.preloadImg.height;
571
 
                        if ( f.id == 'img_src' ) f.value = this.I('img_demo').src || this.preloadImg.src;
572
 
                }
573
 
        },
574
 
 
575
 
        resetImageData : function() {
576
 
                var f = document.forms[0];
577
 
 
578
 
                f.width.value = f.height.value = '';
579
 
        },
580
 
 
581
 
        updateImageData : function() {
582
 
                var f = document.forms[0], t = wpImage, w = f.width.value, h = f.height.value;
583
 
 
584
 
                if ( !w && h )
585
 
                        w = f.width.value = t.width = Math.round( t.preloadImg.width / (t.preloadImg.height / h) );
586
 
                else if ( w && !h )
587
 
                        h = f.height.value = t.height = Math.round( t.preloadImg.height / (t.preloadImg.width / w) );
588
 
 
589
 
                if ( !w )
590
 
                        f.width.value = t.width = t.preloadImg.width;
591
 
 
592
 
                if ( !h )
593
 
                        f.height.value = t.height = t.preloadImg.height;
594
 
 
595
 
                t.showSizeSet();
596
 
                t.demoSetSize();
597
 
                if ( f.img_style.value )
598
 
                        t.demoSetStyle();
599
 
        },
600
 
 
601
 
        getImageData : function() {
602
 
                var t = wpImage, f = document.forms[0];
603
 
 
604
 
                t.preloadImg = new Image();
605
 
                t.preloadImg.onload = t.updateImageData;
606
 
                t.preloadImg.onerror = t.resetImageData;
607
 
                t.preloadImg.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.img_src.value);
608
 
        }
609
 
};
610
 
 
611
 
window.onload = function(){wpImage.init();}
612
 
wpImage.preInit();
613