diff --git a/assets/javascripts/plupload/js/jquery.plupload.queue/css/jquery.plupload.queue.css b/assets/javascripts/plupload/js/jquery.plupload.queue/css/jquery.plupload.queue.css deleted file mode 100644 index 6bfe0e5e..00000000 --- a/assets/javascripts/plupload/js/jquery.plupload.queue/css/jquery.plupload.queue.css +++ /dev/null @@ -1,185 +0,0 @@ -/* - Plupload -------------------------------------------------------------------- */ - -.plupload_wrapper * { - box-sizing: content-box; -} - -.plupload_button { - display: -moz-inline-box; /* FF < 3*/ - display: inline-block; - font: normal 12px sans-serif; - text-decoration: none; - color: #42454a; - border: 1px solid #bababa; - padding: 2px 8px 3px 20px; - margin-right: 4px; - background: #f3f3f3 url('../img/buttons.png') no-repeat 0 center; - outline: 0; - - /* Optional rounded corners for browsers that support it */ - -moz-border-radius: 3px; - -khtml-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; -} - -.plupload_button:hover { - color: #000; - text-decoration: none; -} - -.plupload_disabled, a.plupload_disabled:hover { - color: #737373; - border-color: #c5c5c5; - background: #ededed url('../img/buttons-disabled.png') no-repeat 0 center; - cursor: default; -} - -.plupload_add { - background-position: -181px center; -} - -.plupload_wrapper { - font: normal 11px Verdana,sans-serif; - width: 100%; -} - -.plupload_container { - padding: 8px; - background: url('../img/transp50.png'); - /*-moz-border-radius: 5px;*/ -} - -.plupload_container input { - border: 1px solid #DDD; - font: normal 11px Verdana,sans-serif; - width: 98%; -} - -.plupload_header {background: #2A2C2E url('../img/backgrounds.gif') repeat-x;} -.plupload_header_content { - background: url('../img/backgrounds.gif') no-repeat 0 -317px; - min-height: 56px; - padding-left: 60px; - color: #FFF; -} -.plupload_header_title { - font: normal 18px sans-serif; - padding: 6px 0 3px; -} -.plupload_header_text { - font: normal 12px sans-serif; -} - -.plupload_filelist { - margin: 0; - padding: 0; - list-style: none; -} - -.plupload_scroll .plupload_filelist { - height: 185px; - background: #F5F5F5; - overflow-y: scroll; -} - -.plupload_filelist li { - padding: 10px 8px; - background: #F5F5F5 url('../img/backgrounds.gif') repeat-x 0 -156px; - border-bottom: 1px solid #DDD; -} - -.plupload_filelist_header, .plupload_filelist_footer { - background: #DFDFDF; - padding: 8px 8px; - color: #42454A; -} -.plupload_filelist_header { - border-top: 1px solid #EEE; - border-bottom: 1px solid #CDCDCD; -} - -.plupload_filelist_footer {border-top: 1px solid #FFF; height: 22px; line-height: 20px; vertical-align: middle;} -.plupload_file_name {float: left; overflow: hidden} -.plupload_file_status {color: #777;} -.plupload_file_status span {color: #42454A;} -.plupload_file_size, .plupload_file_status, .plupload_progress { - float: right; - width: 80px; -} -.plupload_file_size, .plupload_file_status, .plupload_file_action {text-align: right;} - -.plupload_filelist .plupload_file_name { - width: 205px; - white-space: nowrap; - text-overflow: ellipsis; -} - -.plupload_file_action { - float: right; - width: 16px; - height: 16px; - margin-left: 15px; -} - -.plupload_file_action * { - display: none; - width: 16px; - height: 16px; -} - -li.plupload_uploading {background: #ECF3DC url('../img/backgrounds.gif') repeat-x 0 -238px;} -li.plupload_done {color:#AAA} - -li.plupload_delete a { - background: url('../img/delete.gif'); -} - -li.plupload_failed a { - background: url('../img/error.gif'); - cursor: default; -} - -li.plupload_done a { - background: url('../img/done.gif'); - cursor: default; -} - -.plupload_progress, .plupload_upload_status { - display: none; -} - -.plupload_progress_container { - margin-top: 3px; - border: 1px solid #CCC; - background: #FFF; - padding: 1px; -} -.plupload_progress_bar { - width: 0px; - height: 7px; - background: #CDEB8B; -} - -.plupload_scroll .plupload_filelist_header .plupload_file_action, .plupload_scroll .plupload_filelist_footer .plupload_file_action { - margin-right: 17px; -} - -/* Floats */ - -.plupload_clear,.plupload_clearer {clear: both;} -.plupload_clearer, .plupload_progress_bar { - display: block; - font-size: 0; - line-height: 0; -} - -li.plupload_droptext { - background: transparent; - text-align: center; - vertical-align: middle; - border: 0; - line-height: 165px; -} diff --git a/assets/javascripts/plupload/js/jquery.plupload.queue/img/backgrounds.gif b/assets/javascripts/plupload/js/jquery.plupload.queue/img/backgrounds.gif deleted file mode 100644 index 39e33ebc..00000000 Binary files a/assets/javascripts/plupload/js/jquery.plupload.queue/img/backgrounds.gif and /dev/null differ diff --git a/assets/javascripts/plupload/js/jquery.plupload.queue/img/buttons-disabled.png b/assets/javascripts/plupload/js/jquery.plupload.queue/img/buttons-disabled.png deleted file mode 100644 index c759e402..00000000 Binary files a/assets/javascripts/plupload/js/jquery.plupload.queue/img/buttons-disabled.png and /dev/null differ diff --git a/assets/javascripts/plupload/js/jquery.plupload.queue/img/buttons.png b/assets/javascripts/plupload/js/jquery.plupload.queue/img/buttons.png deleted file mode 100644 index 02a61222..00000000 Binary files a/assets/javascripts/plupload/js/jquery.plupload.queue/img/buttons.png and /dev/null differ diff --git a/assets/javascripts/plupload/js/jquery.plupload.queue/img/delete.gif b/assets/javascripts/plupload/js/jquery.plupload.queue/img/delete.gif deleted file mode 100644 index 78ca8b3b..00000000 Binary files a/assets/javascripts/plupload/js/jquery.plupload.queue/img/delete.gif and /dev/null differ diff --git a/assets/javascripts/plupload/js/jquery.plupload.queue/img/done.gif b/assets/javascripts/plupload/js/jquery.plupload.queue/img/done.gif deleted file mode 100644 index 29f3ed7c..00000000 Binary files a/assets/javascripts/plupload/js/jquery.plupload.queue/img/done.gif and /dev/null differ diff --git a/assets/javascripts/plupload/js/jquery.plupload.queue/img/error.gif b/assets/javascripts/plupload/js/jquery.plupload.queue/img/error.gif deleted file mode 100644 index 4682b630..00000000 Binary files a/assets/javascripts/plupload/js/jquery.plupload.queue/img/error.gif and /dev/null differ diff --git a/assets/javascripts/plupload/js/jquery.plupload.queue/img/throbber.gif b/assets/javascripts/plupload/js/jquery.plupload.queue/img/throbber.gif deleted file mode 100644 index 4ae8b16a..00000000 Binary files a/assets/javascripts/plupload/js/jquery.plupload.queue/img/throbber.gif and /dev/null differ diff --git a/assets/javascripts/plupload/js/jquery.plupload.queue/img/transp50.png b/assets/javascripts/plupload/js/jquery.plupload.queue/img/transp50.png deleted file mode 100644 index 61e6b217..00000000 Binary files a/assets/javascripts/plupload/js/jquery.plupload.queue/img/transp50.png and /dev/null differ diff --git a/assets/javascripts/plupload/js/jquery.plupload.queue/jquery.plupload.queue.js b/assets/javascripts/plupload/js/jquery.plupload.queue/jquery.plupload.queue.js deleted file mode 100644 index f3f46288..00000000 --- a/assets/javascripts/plupload/js/jquery.plupload.queue/jquery.plupload.queue.js +++ /dev/null @@ -1,433 +0,0 @@ -/** - * jquery.plupload.queue.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under GPL License. - * - * License: http://www.plupload.com/license - * Contributing: http://www.plupload.com/contributing - */ - -/* global jQuery:true, alert:true */ - -/** -jQuery based implementation of the Plupload API - multi-runtime file uploading API. - -To use the widget you must include _jQuery_. It is not meant to be extended in any way and is provided to be -used as it is. - -@example - -
-

Your browser doesn't have Flash, Silverlight or HTML5 support.

-
- - - -@example - // Retrieving a reference to plupload.Uploader object - var uploader = $('#uploader').pluploadQueue(); - - uploader.bind('FilesAdded', function() { - - // Autostart - setTimeout(uploader.start, 1); // "detach" from the main thread - }); - -@class pluploadQueue -@constructor -@param {Object} settings For detailed information about each option check documentation. - @param {String} settings.url URL of the server-side upload handler. - @param {Number|String} [settings.chunk_size=0] Chunk size in bytes to slice the file into. Shorcuts with b, kb, mb, gb, tb suffixes also supported. `e.g. 204800 or "204800b" or "200kb"`. By default - disabled. - @param {String} [settings.file_data_name="file"] Name for the file field in Multipart formated message. - @param {Array} [settings.filters=[]] Set of file type filters, each one defined by hash of title and extensions. `e.g. {title : "Image files", extensions : "jpg,jpeg,gif,png"}`. Dispatches `plupload.FILE_EXTENSION_ERROR` - @param {String} [settings.flash_swf_url] URL of the Flash swf. - @param {Object} [settings.headers] Custom headers to send with the upload. Hash of name/value pairs. - @param {Number|String} [settings.max_file_size] Maximum file size that the user can pick, in bytes. Optionally supports b, kb, mb, gb, tb suffixes. `e.g. "10mb" or "1gb"`. By default - not set. Dispatches `plupload.FILE_SIZE_ERROR`. - @param {Number} [settings.max_retries=0] How many times to retry the chunk or file, before triggering Error event. - @param {Boolean} [settings.multipart=true] Whether to send file and additional parameters as Multipart formated message. - @param {Object} [settings.multipart_params] Hash of key/value pairs to send with every file upload. - @param {Boolean} [settings.multi_selection=true] Enable ability to select multiple files at once in file dialog. - @param {Boolean} [settings.prevent_duplicates=false] Do not let duplicates into the queue. Dispatches `plupload.FILE_DUPLICATE_ERROR`. - @param {String|Object} [settings.required_features] Either comma-separated list or hash of required features that chosen runtime should absolutely possess. - @param {Object} [settings.resize] Enable resizng of images on client-side. Applies to `image/jpeg` and `image/png` only. `e.g. {width : 200, height : 200, quality : 90, crop: true}` - @param {Number} [settings.resize.width] If image is bigger, it will be resized. - @param {Number} [settings.resize.height] If image is bigger, it will be resized. - @param {Number} [settings.resize.quality=90] Compression quality for jpegs (1-100). - @param {Boolean} [settings.resize.crop=false] Whether to crop images to exact dimensions. By default they will be resized proportionally. - @param {String} [settings.runtimes="html5,flash,silverlight,html4"] Comma separated list of runtimes, that Plupload will try in turn, moving to the next if previous fails. - @param {String} [settings.silverlight_xap_url] URL of the Silverlight xap. - @param {Boolean} [settings.unique_names=false] If true will generate unique filenames for uploaded files. - - @param {Boolean} [settings.dragdrop=true] Enable ability to add file to the queue by drag'n'dropping them from the desktop. - @param {Boolean} [settings.rename=false] Enable ability to rename files in the queue. - @param {Boolean} [settings.multiple_queues=true] Re-activate the widget after each upload procedure. -*/ -;(function($, plupload) { - var uploaders = {}; - - function _(str) { - return plupload.translate(str) || str; - } - - function renderUI(id, target) { - // Remove all existing non plupload items - target.contents().each(function(i, node) { - node = $(node); - - if (!node.is('.plupload')) { - node.remove(); - } - }); - - target.prepend( - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + _('Select files') + '
' + - '
' + _('Add files to the upload queue and click the start button.') + '
' + - '
' + - '
' + - - '
' + - '
' + - '
' + _('Filename') + '
' + - '
 
' + - '
' + _('Status') + '
' + - '
' + _('Size') + '
' + - '
 
' + - '
' + - - '
    ' + - - '' + - '
    ' + - '
    ' + - '
    ' + - '' + - '
    ' - ); - } - - $.fn.pluploadQueue = function(settings) { - if (settings) { - this.each(function() { - var uploader, target, id, contents_bak; - - target = $(this); - id = target.attr('id'); - - if (!id) { - id = plupload.guid(); - target.attr('id', id); - } - - contents_bak = target.html(); - renderUI(id, target); - - settings = $.extend({ - dragdrop : true, - browse_button : id + '_browse', - container : id - }, settings); - - // Enable drag/drop (see PostInit handler as well) - if (settings.dragdrop) { - settings.drop_element = id + '_filelist'; - } - - uploader = new plupload.Uploader(settings); - - uploaders[id] = uploader; - - function handleStatus(file) { - var actionClass; - - if (file.status == plupload.DONE) { - actionClass = 'plupload_done'; - } - - if (file.status == plupload.FAILED) { - actionClass = 'plupload_failed'; - } - - if (file.status == plupload.QUEUED) { - actionClass = 'plupload_delete'; - } - - if (file.status == plupload.UPLOADING) { - actionClass = 'plupload_uploading'; - } - - var icon = $('#' + file.id).attr('class', actionClass).find('a').css('display', 'block'); - if (file.hint) { - icon.attr('title', file.hint); - } - } - - function updateTotalProgress() { - $('span.plupload_total_status', target).html(uploader.total.percent + '%'); - $('div.plupload_progress_bar', target).css('width', uploader.total.percent + '%'); - $('span.plupload_upload_status', target).html( - plupload.sprintf(_('Uploaded %d/%d files'), uploader.total.uploaded, uploader.files.length) - ); - } - - function updateList() { - var fileList = $('ul.plupload_filelist', target).html(''), inputCount = 0, inputHTML; - - $.each(uploader.files, function(i, file) { - inputHTML = ''; - - if (file.status == plupload.DONE) { - if (file.target_name) { - inputHTML += ''; - } - - inputHTML += ''; - inputHTML += ''; - - inputCount++; - - $('#' + id + '_count').val(inputCount); - } - - fileList.append( - '
  • ' + - '
    ' + file.name + '
    ' + - '
    ' + - '
    ' + file.percent + '%
    ' + - '
    ' + plupload.formatSize(file.size) + '
    ' + - '
     
    ' + - inputHTML + - '
  • ' - ); - - handleStatus(file); - - $('#' + file.id + '.plupload_delete a').click(function(e) { - $('#' + file.id).remove(); - uploader.removeFile(file); - - e.preventDefault(); - }); - }); - - $('span.plupload_total_file_size', target).html(plupload.formatSize(uploader.total.size)); - - if (uploader.total.queued === 0) { - $('span.plupload_add_text', target).html(_('Add Files')); - } else { - $('span.plupload_add_text', target).html(plupload.sprintf(_('%d files queued'), uploader.total.queued)); - } - - $('a.plupload_start', target).toggleClass('plupload_disabled', uploader.files.length == (uploader.total.uploaded + uploader.total.failed)); - - // Scroll to end of file list - fileList[0].scrollTop = fileList[0].scrollHeight; - - updateTotalProgress(); - - // Re-add drag message if there is no files - if (!uploader.files.length && uploader.features.dragdrop && uploader.settings.dragdrop) { - $('#' + id + '_filelist').append('
  • ' + _("Drag files here.") + '
  • '); - } - } - - function destroy() { - delete uploaders[id]; - uploader.destroy(); - target.html(contents_bak); - uploader = target = contents_bak = null; - } - - uploader.bind("UploadFile", function(up, file) { - $('#' + file.id).addClass('plupload_current_file'); - }); - - uploader.bind('Init', function(up, res) { - // Enable rename support - if (!settings.unique_names && settings.rename) { - target.on('click', '#' + id + '_filelist div.plupload_file_name span', function(e) { - var targetSpan = $(e.target), file, parts, name, ext = ""; - var fileContainer = targetSpan.closest('li'); - - if (!fileContainer.hasClass('plupload_delete')) { - return; - } - - // Get file name and split out name and extension - file = up.getFile(targetSpan.parents('li')[0].id); - name = file.name; - parts = /^(.+)(\.[^.]+)$/.exec(name); - if (parts) { - name = parts[1]; - ext = parts[2]; - } - - // Display input element - targetSpan.hide().after(''); - targetSpan.next().val(name).focus().blur(function() { - targetSpan.show().next().remove(); - }).keydown(function(e) { - var targetInput = $(this); - - if (e.keyCode == 13) { - e.preventDefault(); - - // Rename file and glue extension back on - file.name = targetInput.val() + ext; - targetSpan.html(file.name); - targetInput.blur(); - } - }); - }); - } - - $('#' + id + '_container').attr('title', 'Using runtime: ' + res.runtime); - - $('a.plupload_start', target).click(function(e) { - if (!$(this).hasClass('plupload_disabled')) { - uploader.start(); - } - - e.preventDefault(); - }); - - $('a.plupload_stop', target).click(function(e) { - e.preventDefault(); - uploader.stop(); - }); - - $('a.plupload_start', target).addClass('plupload_disabled'); - }); - - uploader.bind("Error", function(up, err) { - var file = err.file, message; - - if (file) { - message = err.message; - - if (err.details) { - message += " (" + err.details + ")"; - } - - if (err.code == plupload.FILE_SIZE_ERROR) { - alert(_("Error: File too large:") + " " + file.name); - } - - if (err.code == plupload.FILE_EXTENSION_ERROR) { - alert(_("Error: Invalid file extension:") + " " + file.name); - } - - file.hint = message; - $('#' + file.id).attr('class', 'plupload_failed').find('a').css('display', 'block').attr('title', message); - } - - if (err.code === plupload.INIT_ERROR) { - setTimeout(function() { - destroy(); - }, 1); - } - }); - - uploader.bind("PostInit", function(up) { - // features are populated only after input components are fully instantiated - if (up.settings.dragdrop && up.features.dragdrop) { - $('#' + id + '_filelist').append('
  • ' + _("Drag files here.") + '
  • '); - } - }); - - uploader.init(); - - uploader.bind('StateChanged', function() { - if (uploader.state === plupload.STARTED) { - $('li.plupload_delete a,div.plupload_buttons', target).hide(); - uploader.disableBrowse(true); - - $('span.plupload_upload_status,div.plupload_progress,a.plupload_stop', target).css('display', 'block'); - $('span.plupload_upload_status', target).html('Uploaded ' + uploader.total.uploaded + '/' + uploader.files.length + ' files'); - - if (settings.multiple_queues) { - $('span.plupload_total_status,span.plupload_total_file_size', target).show(); - } - } else { - updateList(); - $('a.plupload_stop,div.plupload_progress', target).hide(); - $('a.plupload_delete', target).css('display', 'block'); - - if (settings.multiple_queues && uploader.total.uploaded + uploader.total.failed == uploader.files.length) { - $(".plupload_buttons,.plupload_upload_status", target).css("display", "inline"); - uploader.disableBrowse(false); - - $(".plupload_start", target).addClass("plupload_disabled"); - $('span.plupload_total_status,span.plupload_total_file_size', target).hide(); - } - } - }); - - uploader.bind('FilesAdded', updateList); - - uploader.bind('FilesRemoved', function() { - // since the whole file list is redrawn for every change in the queue - // we need to scroll back to the file removal point to avoid annoying - // scrolling to the bottom bug (see #926) - var scrollTop = $('#' + id + '_filelist').scrollTop(); - updateList(); - $('#' + id + '_filelist').scrollTop(scrollTop); - }); - - uploader.bind('FileUploaded', function(up, file) { - handleStatus(file); - }); - - uploader.bind("UploadProgress", function(up, file) { - // Set file specific progress - $('#' + file.id + ' div.plupload_file_status', target).html(file.percent + '%'); - - handleStatus(file); - updateTotalProgress(); - }); - - // Call setup function - if (settings.setup) { - settings.setup(uploader); - } - }); - - return this; - } else { - // Get uploader instance for specified element - return uploaders[$(this[0]).attr('id')]; - } - }; -})(jQuery, plupload); diff --git a/assets/javascripts/plupload/js/jquery.plupload.queue/jquery.plupload.queue.min.js b/assets/javascripts/plupload/js/jquery.plupload.queue/jquery.plupload.queue.min.js deleted file mode 100644 index aaa71d9d..00000000 --- a/assets/javascripts/plupload/js/jquery.plupload.queue/jquery.plupload.queue.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){function i(e){return t.translate(e)||e}function s(t,s){s.contents().each(function(t,i){i=e(i),i.is(".plupload")||i.remove()}),s.prepend('
    '+'
    '+'
    '+'
    '+'
    '+i("Select files")+"
    "+'
    '+i("Add files to the upload queue and click the start button.")+"
    "+"
    "+"
    "+'
    '+'
    '+'
    '+i("Filename")+"
    "+'
     
    '+'
    '+i("Status")+"
    "+'
    '+i("Size")+"
    "+'
     
    '+"
    "+'
      '+'"+"
      "+"
      "+"
      "+''+"
      ")}var l={};e.fn.pluploadQueue=function(a){return a?(this.each(function(){function n(i){var s;i.status==t.DONE&&(s="plupload_done"),i.status==t.FAILED&&(s="plupload_failed"),i.status==t.QUEUED&&(s="plupload_delete"),i.status==t.UPLOADING&&(s="plupload_uploading");var l=e("#"+i.id).attr("class",s).find("a").css("display","block");i.hint&&l.attr("title",i.hint)}function o(){e("span.plupload_total_status",p).html(u.total.percent+"%"),e("div.plupload_progress_bar",p).css("width",u.total.percent+"%"),e("span.plupload_upload_status",p).html(t.sprintf(i("Uploaded %d/%d files"),u.total.uploaded,u.files.length))}function r(){var s,l=e("ul.plupload_filelist",p).html(""),a=0;e.each(u.files,function(i,o){s="",o.status==t.DONE&&(o.target_name&&(s+=''),s+='',s+='',a++,e("#"+c+"_count").val(a)),l.append('
    • '+'
      '+o.name+"
      "+'
      '+'
      '+o.percent+"%
      "+'
      '+t.formatSize(o.size)+"
      "+'
       
      '+s+"
    • "),n(o),e("#"+o.id+".plupload_delete a").click(function(t){e("#"+o.id).remove(),u.removeFile(o),t.preventDefault()})}),e("span.plupload_total_file_size",p).html(t.formatSize(u.total.size)),0===u.total.queued?e("span.plupload_add_text",p).html(i("Add Files")):e("span.plupload_add_text",p).html(t.sprintf(i("%d files queued"),u.total.queued)),e("a.plupload_start",p).toggleClass("plupload_disabled",u.files.length==u.total.uploaded+u.total.failed),l[0].scrollTop=l[0].scrollHeight,o(),!u.files.length&&u.features.dragdrop&&u.settings.dragdrop&&e("#"+c+"_filelist").append('
    • '+i("Drag files here.")+"
    • ")}function d(){delete l[c],u.destroy(),p.html(_),u=p=_=null}var u,p,c,_;p=e(this),c=p.attr("id"),c||(c=t.guid(),p.attr("id",c)),_=p.html(),s(c,p),a=e.extend({dragdrop:!0,browse_button:c+"_browse",container:c},a),a.dragdrop&&(a.drop_element=c+"_filelist"),u=new t.Uploader(a),l[c]=u,u.bind("UploadFile",function(t,i){e("#"+i.id).addClass("plupload_current_file")}),u.bind("Init",function(t,i){!a.unique_names&&a.rename&&p.on("click","#"+c+"_filelist div.plupload_file_name span",function(i){var s,l,a,n=e(i.target),o="",r=n.closest("li");r.hasClass("plupload_delete")&&(s=t.getFile(n.parents("li")[0].id),a=s.name,l=/^(.+)(\.[^.]+)$/.exec(a),l&&(a=l[1],o=l[2]),n.hide().after(''),n.next().val(a).focus().blur(function(){n.show().next().remove()}).keydown(function(t){var i=e(this);13==t.keyCode&&(t.preventDefault(),s.name=i.val()+o,n.html(s.name),i.blur())}))}),e("#"+c+"_container").attr("title","Using runtime: "+i.runtime),e("a.plupload_start",p).click(function(t){e(this).hasClass("plupload_disabled")||u.start(),t.preventDefault()}),e("a.plupload_stop",p).click(function(e){e.preventDefault(),u.stop()}),e("a.plupload_start",p).addClass("plupload_disabled")}),u.bind("Error",function(s,l){var a,n=l.file;n&&(a=l.message,l.details&&(a+=" ("+l.details+")"),l.code==t.FILE_SIZE_ERROR&&alert(i("Error: File too large:")+" "+n.name),l.code==t.FILE_EXTENSION_ERROR&&alert(i("Error: Invalid file extension:")+" "+n.name),n.hint=a,e("#"+n.id).attr("class","plupload_failed").find("a").css("display","block").attr("title",a)),l.code===t.INIT_ERROR&&setTimeout(function(){d()},1)}),u.bind("PostInit",function(t){t.settings.dragdrop&&t.features.dragdrop&&e("#"+c+"_filelist").append('
    • '+i("Drag files here.")+"
    • ")}),u.init(),u.bind("StateChanged",function(){u.state===t.STARTED?(e("li.plupload_delete a,div.plupload_buttons",p).hide(),u.disableBrowse(!0),e("span.plupload_upload_status,div.plupload_progress,a.plupload_stop",p).css("display","block"),e("span.plupload_upload_status",p).html("Uploaded "+u.total.uploaded+"/"+u.files.length+" files"),a.multiple_queues&&e("span.plupload_total_status,span.plupload_total_file_size",p).show()):(r(),e("a.plupload_stop,div.plupload_progress",p).hide(),e("a.plupload_delete",p).css("display","block"),a.multiple_queues&&u.total.uploaded+u.total.failed==u.files.length&&(e(".plupload_buttons,.plupload_upload_status",p).css("display","inline"),u.disableBrowse(!1),e(".plupload_start",p).addClass("plupload_disabled"),e("span.plupload_total_status,span.plupload_total_file_size",p).hide()))}),u.bind("FilesAdded",r),u.bind("FilesRemoved",function(){var t=e("#"+c+"_filelist").scrollTop();r(),e("#"+c+"_filelist").scrollTop(t)}),u.bind("FileUploaded",function(e,t){n(t)}),u.bind("UploadProgress",function(t,i){e("#"+i.id+" div.plupload_file_status",p).html(i.percent+"%"),n(i),o()}),a.setup&&a.setup(u)}),this):l[e(this[0]).attr("id")]}}(jQuery,plupload); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/jquery.ui.plupload/img/loading.gif b/assets/stylesheets/img/loading.gif similarity index 100% rename from assets/javascripts/plupload/js/jquery.ui.plupload/img/loading.gif rename to assets/stylesheets/img/loading.gif diff --git a/assets/javascripts/plupload/js/jquery.ui.plupload/img/plupload.png b/assets/stylesheets/img/plupload.png similarity index 100% rename from assets/javascripts/plupload/js/jquery.ui.plupload/img/plupload.png rename to assets/stylesheets/img/plupload.png diff --git a/assets/javascripts/plupload/js/jquery.ui.plupload/css/jquery.ui.plupload.css b/assets/stylesheets/plupload/jquery.ui.plupload.css similarity index 100% rename from assets/javascripts/plupload/js/jquery.ui.plupload/css/jquery.ui.plupload.css rename to assets/stylesheets/plupload/jquery.ui.plupload.css