imce.hooks.load.push(function() { imce.opAdd({ name : 'search', title : 'Search', content : jQuery('#imce-search-form') }); jQuery('#imce-search-form').submit(function() { jQuery('#imce-search-results div').html('Searching ' + ((imce.conf.dir == '.') ? 'all ' : imce.conf.dir + ' and sub') +'directories for ' + jQuery('#edit-imce-search-term').val()); jQuery('#imce-search-results div').addClass('loading'); var case_insensitive = 0; jQuery('#edit-imce-search-case:checked').each(function() { case_insensitive = 1; }); jQuery.ajax({ url: Drupal.settings.basePath + 'imce_search_callback/' + case_insensitive + '/' + encodeURI(imce.conf.dir + '/' + jQuery('#edit-imce-search-term').val()), type: 'GET', success: function(serverdata, status, xmlhttp) { data = eval('(' + serverdata + ')'); var filelist = jQuery.map(data.files, function(fullpath, index) { var li = document.createElement('li'); jQuery(li).click(function () { file = fullpath.substr(fullpath.lastIndexOf('/') + 1); dir = fullpath.substr(0, fullpath.lastIndexOf('/')); if (dir!=imce.conf.dir) { imce.navigate(dir); imce.dirActivate(dir); } imce.dirActivate(dir); imce.highlight(file); }).css('cursor','pointer').addClass('link'); if (index > 10) { jQuery(li).addClass('toggle'); } jQuery(li).html(fullpath); return li; }); jQuery('#imce-search-results ul').hide(); jQuery('#imce-search-results ul').empty().append(filelist); jQuery('#imce-search-results ul li[class="toggle"]').hide(); jQuery('#imce-search-results ul').show(); jQuery('#imce-search-results div').html(data.search + '. ' + data.files.length + ' results found. '); if (data.files.length > 10) { var toggle = document.createElement('a'); jQuery(toggle).append('Show all'); jQuery(toggle).toggle(function () { jQuery(this).html('Short list'); jQuery('#imce-search-results ul li[class*="toggle"]').show(); }, function () { jQuery(this).html('Show all'); jQuery('#imce-search-results ul li[class*="toggle"]').hide(); } ); jQuery('#imce-search-results div').append(toggle); } jQuery('#imce-search-results div').removeClass('loading'); } }); return false; }); });