1 jQuery(document).ready(function($) {
2 var gallerySortable, gallerySortableInit, w, desc = false;
4 gallerySortableInit = function() {
5 gallerySortable = $('#media-items').sortable( {
6 items: 'div.media-item',
7 placeholder: 'sorthelper',
10 handle: 'div.filename',
11 stop: function(e, ui) {
12 // When an update has occurred, adjust the order for each item
13 var all = $('#media-items').sortable('toArray'), len = all.length;
14 $.each(all, function(i, id) {
15 var order = desc ? (len - i) : (1 + i);
16 $('#' + id + ' .menu_order input').val(order);
23 var all = $('.menu_order_input'), len = all.length;
25 var order = desc ? (len - i) : (1 + i);
30 clearAll = function(c) {
32 $('.menu_order_input').each(function(){
33 if ( this.value == '0' || c ) this.value = '';
37 $('#asc').click(function(){desc = false; sortIt(); return false;});
38 $('#desc').click(function(){desc = true; sortIt(); return false;});
39 $('#clear').click(function(){clearAll(1); return false;});
40 $('#showall').click(function(){
41 $('#sort-buttons span a').toggle();
42 $('a.describe-toggle-on').hide();
43 $('a.describe-toggle-off, table.slidetoggle').show();
44 $('img.pinkynail').toggle(false);
47 $('#hideall').click(function(){
48 $('#sort-buttons span a').toggle();
49 $('a.describe-toggle-on').show();
50 $('a.describe-toggle-off, table.slidetoggle').hide();
51 $('img.pinkynail').toggle(true);
55 // initialize sortable
56 gallerySortableInit();
59 if ( $('#media-items>*').length > 1 ) {
60 w = wpgallery.getWin();
62 $('#save-all, #gallery-settings').show();
63 if ( typeof w.tinyMCE != 'undefined' && w.tinyMCE.activeEditor && ! w.tinyMCE.activeEditor.isHidden() ) {
64 wpgallery.mcemode = true;
67 $('#insert-gallery').show();
72 jQuery(window).unload( function () { tinymce = tinyMCE = wpgallery = null; } ); // Cleanup
74 /* gallery settings */
75 var tinymce = null, tinyMCE, wpgallery;
85 return document.getElementById(e);
89 var t = this, li, q, i, it, w = t.getWin();
91 if ( ! t.mcemode ) return;
93 li = ('' + document.location.search).replace(/^\?/, '').split('&');
95 for (i=0; i<li.length; i++) {
96 it = li[i].split('=');
97 q[unescape(it[0])] = unescape(it[1]);
101 document.domain = q.mce_rdomain;
106 t.editor = tinymce.EditorManager.activeEditor;
111 getWin : function() {
112 return window.dialogArguments || opener || parent || top;
116 var t = this, a, ed = t.editor, g, columns, link, order, orderby;
117 if ( ! t.mcemode ) return;
119 t.el = ed.selection.getNode();
121 if ( t.el.nodeName != 'IMG' || ! ed.dom.hasClass(t.el, 'wpGallery') ) {
122 if ( (g = ed.dom.select('img.wpGallery')) && g[0] ) {
125 if ( getUserSetting('galfile') == '1' ) t.I('linkto-file').checked = "checked";
126 if ( getUserSetting('galdesc') == '1' ) t.I('order-desc').checked = "checked";
127 if ( getUserSetting('galcols') ) t.I('columns').value = getUserSetting('galcols');
128 if ( getUserSetting('galord') ) t.I('orderby').value = getUserSetting('galord');
129 jQuery('#insert-gallery').show();
134 a = ed.dom.getAttrib(t.el, 'title');
135 a = ed.dom.decode(a);
138 jQuery('#update-gallery').show();
141 columns = a.match(/columns=['"]([0-9]+)['"]/);
142 link = a.match(/link=['"]([^'"]+)['"]/i);
143 order = a.match(/order=['"]([^'"]+)['"]/i);
144 orderby = a.match(/orderby=['"]([^'"]+)['"]/i);
146 if ( link && link[1] ) t.I('linkto-file').checked = "checked";
147 if ( order && order[1] ) t.I('order-desc').checked = "checked";
148 if ( columns && columns[1] ) t.I('columns').value = ''+columns[1];
149 if ( orderby && orderby[1] ) t.I('orderby').value = orderby[1];
151 jQuery('#insert-gallery').show();
155 update : function() {
156 var t = this, ed = t.editor, all = '', s;
158 if ( ! t.mcemode || ! t.is_update ) {
159 s = '[gallery'+t.getSettings()+']';
160 t.getWin().send_to_editor(s);
164 if (t.el.nodeName != 'IMG') return;
166 all = ed.dom.decode(ed.dom.getAttrib(t.el, 'title'));
167 all = all.replace(/\s*(order|link|columns|orderby)=['"]([^'"]+)['"]/gi, '');
168 all += t.getSettings();
170 ed.dom.setAttrib(t.el, 'title', all);
171 t.getWin().tb_remove();
174 getSettings : function() {
175 var I = this.I, s = '';
177 if ( I('linkto-file').checked ) {
179 setUserSetting('galfile', '1');
182 if ( I('order-desc').checked ) {
183 s += ' order="DESC"';
184 setUserSetting('galdesc', '1');
187 if ( I('columns').value != 3 ) {
188 s += ' columns="'+I('columns').value+'"';
189 setUserSetting('galcols', I('columns').value);
192 if ( I('orderby').value != 'menu_order' ) {
193 s += ' orderby="'+I('orderby').value+'"';
194 setUserSetting('galord', I('orderby').value);