3 var gallerySortableInit = function() {
4 gallerySortable = $('#media-items').sortable( {
6 placeholder: 'sorthelper',
13 // When an update has occurred, adjust the order for each item
14 var galleryReorder = function(e, sort) {
15 jQuery.each(sort['element'].sortable('toArray'), function(i, id) {
16 jQuery('#' + id + ' .menu_order input')[0].value = (1+i);
20 // initialize sortable
21 gallerySortableInit();
24 jQuery(document).ready(function($){
25 $('.menu_order_input').each(function(){
26 if ( this.value == '0' ) this.value = '';
29 if ( $('#media-items>*').length > 1 ) {
30 var w = wpgallery.getWin();
32 $('#save-all, #gallery-settings').show();
33 if ( typeof w.tinyMCE != 'undefined' && w.tinyMCE.activeEditor && ! w.tinyMCE.activeEditor.isHidden() ) {
34 wpgallery.mcemode = true;
37 $('#insert-gallery').show();
42 jQuery(window).unload( function () { tinymce = tinyMCE = wpgallery = null; } ); // Cleanup
44 /* gallery settings */
45 var tinymce = null, tinyMCE;
55 return document.getElementById(e);
59 var t = this, li, q, i, it, w = t.getWin();
61 if ( ! t.mcemode ) return;
63 li = ('' + document.location.search).replace(/^\?/, '').split('&');
65 for (i=0; i<li.length; i++) {
66 it = li[i].split('=');
67 q[unescape(it[0])] = unescape(it[1]);
71 document.domain = q.mce_rdomain;
76 t.editor = tinymce.EditorManager.activeEditor;
82 return window.dialogArguments || opener || parent || top;
85 restoreSelection : function() {
89 t.editor.selection.moveToBookmark(t.editor.windowManager.bookmark);
93 var t = this, a, f = document.forms[0], ed = t.editor, el, g;
94 if ( ! t.mcemode ) return;
97 t.el = ed.selection.getNode();
99 if ( t.el.nodeName != 'IMG' || ! ed.dom.hasClass(t.el, 'wpGallery') ) {
100 if ( (g = ed.dom.select('img.wpGallery')) && g[0] ) {
103 if ( getUserSetting('galfile') == '1' ) t.I('linkto-file').checked = "checked";
104 if ( getUserSetting('galdesc') == '1' ) t.I('order-desc').checked = "checked";
105 if ( getUserSetting('galcols') ) t.I('columns').value = getUserSetting('galcols');
106 if ( getUserSetting('galord') ) t.I('orderby').value = getUserSetting('galord');
107 jQuery('#insert-gallery').show();
112 a = ed.dom.getAttrib(t.el, 'title');
113 a = ed.dom.decode(a);
116 jQuery('#update-gallery').show();
119 var columns = a.match(/columns=['"]([0-9]+)['"]/), link = a.match(/link=['"]([^'"]+)['"]/i);
120 var order = a.match(/order=['"]([^'"]+)['"]/i), orderby = a.match(/orderby=['"]([^'"]+)['"]/i), all = '';
122 if ( link && link[1] ) t.I('linkto-file').checked = "checked";
123 if ( order && order[1] ) t.I('order-desc').checked = "checked";
124 if ( columns && columns[1] ) t.I('columns').value = ''+columns[1];
125 if ( orderby && orderby[1] ) t.I('orderby').value = orderby[1];
127 jQuery('#insert-gallery').show();
131 update : function() {
132 var t = this, ed = t.editor, el, all = '';
134 if ( ! t.mcemode || ! t.is_update ) {
135 var s = '[gallery'+t.getSettings()+']';
136 t.getWin().send_to_editor(s);
140 if (t.el.nodeName != 'IMG') return;
142 all = ed.dom.decode(ed.dom.getAttrib(t.el, 'title'));
143 all = all.replace(/\s*(order|link|columns|orderby)=['"]([^'"]+)['"]/gi, '');
144 all += t.getSettings();
146 ed.dom.setAttrib(t.el, 'title', all);
147 t.getWin().tb_remove();
150 getSettings : function() {
151 var I = this.I, s = '';
153 if ( I('linkto-file').checked ) {
155 setUserSetting('galfile', '1');
158 if ( I('order-desc').checked ) {
159 s += ' order="DESC"';
160 setUserSetting('galdesc', '1');
163 if ( I('columns').value != 3 ) {
164 s += ' columns="'+I('columns').value+'"';
165 setUserSetting('galcols', I('columns').value);
168 if ( I('orderby').value != 'menu_order' ) {
169 s += ' orderby="'+I('orderby').value+'"';
170 setUserSetting('galord', I('orderby').value);