From bd431ab2e341aa011e821a26a1e69db7d086ed4f Mon Sep 17 00:00:00 2001 From: Espen Antonsen Date: Tue, 24 Apr 2012 12:51:32 +0800 Subject: [PATCH] plupload 1.5.4 --- public/javascripts/plupload/changelog.txt | 46 ++++ public/javascripts/plupload/examples/bg.jpg | Bin 5753 -> 0 bytes .../javascripts/plupload/examples/custom.html | 88 -------- public/javascripts/plupload/examples/dump.php | 36 ---- .../plupload/examples/jquery/events.html | 196 ------------------ .../examples/jquery/jquery_ui_widget.html | 102 --------- .../examples/jquery/queue_widget.html | 174 ---------------- .../plupload/examples/jquery/s3.php | 158 -------------- .../javascripts/plupload/examples/upload.php | 124 ----------- public/javascripts/plupload/js/i18n/de.js | 43 ++-- public/javascripts/plupload/js/i18n/el.js | 14 ++ public/javascripts/plupload/js/i18n/et.js | 33 +++ public/javascripts/plupload/js/i18n/fa.js | 37 ++++ public/javascripts/plupload/js/i18n/fi.js | 33 +++ public/javascripts/plupload/js/i18n/fr-ca.js | 35 ++++ public/javascripts/plupload/js/i18n/fr.js | 2 +- public/javascripts/plupload/js/i18n/hr.js | 25 +++ public/javascripts/plupload/js/i18n/hu.js | 33 +++ public/javascripts/plupload/js/i18n/it.js | 43 ++-- public/javascripts/plupload/js/i18n/ko.js | 36 ++++ public/javascripts/plupload/js/i18n/pl.js | 24 +++ public/javascripts/plupload/js/i18n/ro.js | 24 +++ public/javascripts/plupload/js/i18n/sr.js | 14 ++ .../jquery.ui.plupload/jquery.ui.plupload.js | 2 +- .../plupload/js/plupload.browserplus.js | 2 +- .../javascripts/plupload/js/plupload.flash.js | 2 +- .../plupload/js/plupload.flash.swf | Bin 18746 -> 18873 bytes .../javascripts/plupload/js/plupload.full.js | 4 +- .../javascripts/plupload/js/plupload.gears.js | 2 +- .../javascripts/plupload/js/plupload.html4.js | 2 +- .../javascripts/plupload/js/plupload.html5.js | 2 +- public/javascripts/plupload/js/plupload.js | 4 +- .../plupload/js/plupload.silverlight.js | 2 +- .../plupload/js/plupload.silverlight.xap | Bin 43353 -> 44013 bytes 34 files changed, 410 insertions(+), 932 deletions(-) delete mode 100644 public/javascripts/plupload/examples/bg.jpg delete mode 100644 public/javascripts/plupload/examples/custom.html delete mode 100644 public/javascripts/plupload/examples/dump.php delete mode 100644 public/javascripts/plupload/examples/jquery/events.html delete mode 100644 public/javascripts/plupload/examples/jquery/jquery_ui_widget.html delete mode 100644 public/javascripts/plupload/examples/jquery/queue_widget.html delete mode 100644 public/javascripts/plupload/examples/jquery/s3.php delete mode 100644 public/javascripts/plupload/examples/upload.php create mode 100644 public/javascripts/plupload/js/i18n/el.js create mode 100644 public/javascripts/plupload/js/i18n/et.js create mode 100644 public/javascripts/plupload/js/i18n/fa.js create mode 100644 public/javascripts/plupload/js/i18n/fi.js create mode 100644 public/javascripts/plupload/js/i18n/fr-ca.js create mode 100644 public/javascripts/plupload/js/i18n/hr.js create mode 100644 public/javascripts/plupload/js/i18n/hu.js create mode 100644 public/javascripts/plupload/js/i18n/ko.js create mode 100644 public/javascripts/plupload/js/i18n/pl.js create mode 100644 public/javascripts/plupload/js/i18n/ro.js create mode 100644 public/javascripts/plupload/js/i18n/sr.js diff --git a/public/javascripts/plupload/changelog.txt b/public/javascripts/plupload/changelog.txt index 639ba99..a47fc5a 100644 --- a/public/javascripts/plupload/changelog.txt +++ b/public/javascripts/plupload/changelog.txt @@ -1,3 +1,49 @@ +Version 1.5.4 (2012-04-12) + Flash: Disable scripting if swf was loaded from another domain. +Version 1.5.3 (2012-04-05) + HTML5: Check if xhr object is initialized, before calling abort() on it. + HTML4: Postpone form removal until uploaders state changes, to avoid error on resuming stopped uploads. + BrowserPlus: Fix mechanical typo, that caused error during mime type check. + BrowserPlus: browserPlus.Uploader.Cancel() has two required parameters, dies with the error if not passed. + Flash: Improve runtime's behaviour during upload cancellation. + Flash: Survive the case when GPSVersionID contains unexpected value. + Flash: Fix random freeze in Chrome's bundled Flash Player. + Flash: Avoid the silent break when URLStream not yet open, but close is called on it. + Flash: Move Destroy handler out of Flash:Init handler, since it might be called not only after Flash:Init but also before it. + Flash: Avoid warning during build with mxmlc. + Try removeEventListener first in IE and only if it fails - detachEvent. + Fix plupload.getPos to return proper value in IE8+. + Do not initiate plupload.STARTED state, if file queue is empty. + Additional language packs: Estonian, Polish, Korean, French-Canadian, Greek, Persian/Farsi. +Version 1.5.2 (2012-01-06) + UI Widget: Do not show UI if no runtime can be initialized. + UI Widget: Timely update file size and total size if resize in action. + UI Widget: Constrain renaming feature to queued files only. + UI Widget: Disable Add button properly, if requested, rather then just hide. + HTML4/HTML5/BrowserPlus: Avoid adding mime type twice to dialog trigger. + HTML5: fix regression, when unresized images were failing on FF3.6. + HTML5: Constrain Gecko 2,5,6 workaround to multipart mode only. + HTML5/Flash: Take into account weird possibilities of ExifVersion being a string, rather then standard Undefined. + Flash: Simplify event dispatching in BitmapDataUnlimited class, in order to avoid freezing on resizing in FP11. + Add ability to disable file dialog trigger on request (uploader.disableBrowse(true/false)). + Support for immediate abort of upload process, be it chunked upload or regular one. + Abort all activity, before destroying uploader. + Revive temporary file removal logic in upload.php. + Fix potential vulnerability in dump.php and upload.php. + Additional MIME types: application/vnd.openxmlformats-officedocument.*, application/x-javascript, application/json, text/css,css, application/vnd.oasis.opendocument.formula-templat. + Additional language packs: Hungarian, Croatian, Serbian, Romanian. +Version 1.5.1.1 (2011-09-27) + HTML5: Fix mechanical typo, that successfully broke drag and drop, wherever could. +Version 1.5.1 (2011-09-26) + HTML4: Add support for server responses in HTML format. + HTML5: Disable multiple file selection in Safari 5.x for Windows (see #363). + HTML5: Gecko 2/5/6 should upload chunks as binary strings when in chunking mode and client side resize is requested. + Flash: Enforce URLStream mode when custom headers are passed. + Flash: Fix embedding problems in IE9 (and all other IEs). + Flash/Gears/BrowserPlus/SilverLight: Expose multi_selection feature, to be used in required_features (mainly to overcome Safari for Windows problem). + SilverLight: Properly handle custom and null headers. + UploadComplete moved to fire after the last StateChanged event. + Additional language packs: Finnish. Version 1.5b (2011-09-11) UI Widget: Fix sortable logic. UI Widget: Fix bug, when message was displayed simultaneously across all Plupload UI instances on the page. diff --git a/public/javascripts/plupload/examples/bg.jpg b/public/javascripts/plupload/examples/bg.jpg deleted file mode 100644 index 9b27383bc5e8ef5cbfe8184cb382f57bd6257d3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5753 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 Ms_thXyY}q=0Jy;wm;e9( diff --git a/public/javascripts/plupload/examples/custom.html b/public/javascripts/plupload/examples/custom.html deleted file mode 100644 index 92f73b8..0000000 --- a/public/javascripts/plupload/examples/custom.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - -Plupload - Queue widget example - - - - - - - - - - - - - - - - - - -

Custom example

- -

Shows you how to use the core plupload API.

- -
-
No runtime found.
-
- [Select files] - [Upload files] -
- - - - - \ No newline at end of file diff --git a/public/javascripts/plupload/examples/dump.php b/public/javascripts/plupload/examples/dump.php deleted file mode 100644 index e4b42e4..0000000 --- a/public/javascripts/plupload/examples/dump.php +++ /dev/null @@ -1,36 +0,0 @@ - - - - - -Plupload - Form dump - - - - -

Post dump

- -

Shows the form items posted.

- - - - - - - $value) { ?> - - - - - -
NameValue
- - - diff --git a/public/javascripts/plupload/examples/jquery/events.html b/public/javascripts/plupload/examples/jquery/events.html deleted file mode 100644 index 263e814..0000000 --- a/public/javascripts/plupload/examples/jquery/events.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - -Plupload - Events example - - - - - - - - - - - - - - - - - -
-

Events example

- -

Shows how to bind and use all available events.

- -

Log messages

- - -

Queue widget

-
You browser doesn't support upload.
- Clear queue -
- - - \ No newline at end of file diff --git a/public/javascripts/plupload/examples/jquery/jquery_ui_widget.html b/public/javascripts/plupload/examples/jquery/jquery_ui_widget.html deleted file mode 100644 index dac522e..0000000 --- a/public/javascripts/plupload/examples/jquery/jquery_ui_widget.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - -Plupload - Queue widget example - - - - - - - - - - - - - - - - - - - - - -

jQuery UI Widget

- -

You can see this example with different themes on the www.plupload.com website.

- -
-
-

You browser doesn't have Flash, Silverlight, Gears, BrowserPlus or HTML5 support.

-
-
- - - \ No newline at end of file diff --git a/public/javascripts/plupload/examples/jquery/queue_widget.html b/public/javascripts/plupload/examples/jquery/queue_widget.html deleted file mode 100644 index 569564a..0000000 --- a/public/javascripts/plupload/examples/jquery/queue_widget.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - -Plupload - Queue widget example - - - - - - - - - - - - - - - - - - - -
-

Queue widget example

- -

Shows the jQuery Plupload Queue widget and under different runtimes.

- -
-

Flash runtime

-
You browser doesn't have Flash installed.
- -

Gears runtime

-
You browser doesn't have Gears installed.
-
- -
-

Silverlight runtime

-
You browser doesn't have Silverlight installed.
- -

HTML 5 runtime

-
You browser doesn't support native upload. Try Firefox 3 or Safari 4.
-
- -
-

BrowserPlus runtime

-
You browser doesn't have BrowserPlus installed.
- -

HTML 4 runtime

-
You browser doesn't have HTML 4 support.
-
- -
- - -
- - - - - \ No newline at end of file diff --git a/public/javascripts/plupload/examples/jquery/s3.php b/public/javascripts/plupload/examples/jquery/s3.php deleted file mode 100644 index 6c8be8a..0000000 --- a/public/javascripts/plupload/examples/jquery/s3.php +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - -In our tests SilverLight didn't require anything special and worked with this configuration just fine. It may fail back -to the same crossdomain.xml as last resort. - -!!!Important!!! Plupload UI Widget here, is used only for demo purposes and is not required for uploading to S3. -*/ - -// important variables that will be used throughout this example -$bucket = 'BUCKET'; - -// these can be found on your Account page, under Security Credentials > Access Keys -$accessKeyId = 'ACCESS_KEY_ID'; -$secret = 'SECRET_ACCESS_KEY'; - - -// hash_hmac — Generate a keyed hash value using the HMAC method -// (PHP 5 >= 5.1.2, PECL hash >= 1.1) -if (!function_exists('hash_hmac')) : -// based on: http://www.php.net/manual/en/function.sha1.php#39492 -function hash_hmac($algo, $data, $key, $raw_output = false) -{ - $blocksize = 64; - if (strlen($key) > $blocksize) - $key = pack('H*', $algo($key)); - - $key = str_pad($key, $blocksize, chr(0x00)); - $ipad = str_repeat(chr(0x36), $blocksize); - $opad = str_repeat(chr(0x5c), $blocksize); - $hmac = pack('H*', $algo(($key^$opad) . pack('H*', $algo(($key^$ipad) . $data)))); - - return $raw_output ? $hmac : bin2hex($hmac); -} -endif; - -// prepare policy -$policy = base64_encode(json_encode(array( - // ISO 8601 - date('c'); generates uncompatible date, so better do it manually - 'expiration' => date('Y-m-d\TH:i:s.000\Z', strtotime('+1 day')), - 'conditions' => array( - array('bucket' => $bucket), - array('acl' => 'public-read'), - array('starts-with', '$key', ''), - // for demo purposes we are accepting only images - array('starts-with', '$Content-Type', 'image/'), - // "Some versions of the Adobe Flash Player do not properly handle HTTP responses that have an empty body. - // To configure POST to return a response that does not have an empty body, set success_action_status to 201. - // When set, Amazon S3 returns an XML document with a 201 status code." - // http://docs.amazonwebservices.com/AmazonS3/latest/dev/HTTPPOSTFlash.html - array('success_action_status' => '201'), - // Plupload internally adds name field, so we need to mention it here - array('starts-with', '$name', ''), - // One more field to take into account: Filename - gets silently sent by FileReference.upload() in Flash - // http://docs.amazonwebservices.com/AmazonS3/latest/dev/HTTPPOSTFlash.html - array('starts-with', '$Filename', ''), - ) -))); - -// sign policy -$signature = base64_encode(hash_hmac('sha1', $policy, $secret, true)); - -?> - - - - -Plupload to Amazon S3 Example - - - - - - - - - - - - - - - - - - - - - - - -

Plupload to Amazon S3 Example

- -
-

You browser doesn't have Flash, Silverlight, Gears, BrowserPlus or HTML5 support.

-
- - - - - \ No newline at end of file diff --git a/public/javascripts/plupload/examples/upload.php b/public/javascripts/plupload/examples/upload.php deleted file mode 100644 index 6cf7f85..0000000 --- a/public/javascripts/plupload/examples/upload.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/public/javascripts/plupload/js/i18n/de.js b/public/javascripts/plupload/js/i18n/de.js index 96429d3..4c4de07 100644 --- a/public/javascripts/plupload/js/i18n/de.js +++ b/public/javascripts/plupload/js/i18n/de.js @@ -1,25 +1,24 @@ // German plupload.addI18n({ - 'Select files' : 'Wählen Sie die Dateien:', - 'Add files to the upload queue and click the start button.' : 'Dateien hinzufügen und danach auf \'Starten des Uploads\' klicken und die Datei hochzuladen.', - 'Filename' : 'Dateiname', - 'Status' : 'Status', - 'Size' : 'Größe', - 'Add files' : 'Hinzufügen von Dateien', - 'Stop current upload' : 'Stop aktuellen Upload', - 'Start uploading queue' : 'Starte Upload', - 'Uploaded %d/%d files': '%d/%d Dateien sind Hochgeladen', - 'N/A' : 'Nicht verfügbar', - 'Drag files here.' : 'Ziehen Sie die Dateien hier hin', - 'File extension error.': 'Dateiendungs Fehler.', - 'File size error.': 'Dateigrößen Fehler.', - 'Init error.': 'Initialisierungs Fehler.', - 'HTTP Error.': 'HTTP Fehler.', - 'Security error.': 'Sicherheits Fehler.', - 'Generic error.': 'Generic Fehler.', - 'IO error.': 'Ein/Ausgabe Fehler.', - 'Stop Upload': 'Stoppen des Uploads.', - 'Add Files': 'Dateien hinzufügen', - 'Start Upload': 'Starten des Uploads.', - '%d files queued': '%d Dateien in der Warteschlange.' + 'Select files' : 'Dateien hochladen', + 'Add files to the upload queue and click the start button.' : 'Dateien hinzufügen und auf \'Hochladen\' klicken.', + 'Filename' : 'Dateiname', + 'Status' : 'Status', + 'Size' : 'Größe', + 'Add files' : 'Dateien', // hinzufügen', + 'Stop current upload' : 'Aktuelles Hochladen stoppen', + 'Start uploading queue' : 'Hochladen starten', + 'Uploaded %d/%d files': '%d/%d Dateien sind hochgeladen', + 'N/A' : 'Nicht verfügbar', + 'Drag files here.' : 'Ziehen Sie die Dateien hier hin', + 'File extension error.': 'Fehler bei Dateiendung', + 'File size error.': 'Fehler bei Dateigröße', + 'Init error.': 'Initialisierungsfehler', + 'HTTP Error.': 'HTTP-Fehler', + 'Security error.': 'Sicherheitsfehler', + 'Generic error.': 'Typischer Fehler', + 'IO error.': 'Ein/Ausgabe-Fehler', + 'Stop Upload': 'Hochladen stoppen', + 'Start upload': 'Hochladen', + '%d files queued': '%d Dateien in der Warteschlange' }); \ No newline at end of file diff --git a/public/javascripts/plupload/js/i18n/el.js b/public/javascripts/plupload/js/i18n/el.js new file mode 100644 index 0000000..aafbaf1 --- /dev/null +++ b/public/javascripts/plupload/js/i18n/el.js @@ -0,0 +1,14 @@ +// Greek +plupload.addI18n({ + 'Select files' : 'Επιλέξτε Αρχεία', + 'Add files to the upload queue and click the start button.' : 'Προσθήκη αρχείων στην ουρά μεταφόρτωσης', + 'Filename' : 'Όνομα αρχείου', + 'Status' : 'Κατάσταση', + 'Size' : 'Μέγεθος', + 'Add Files' : 'Προσθέστε αρχεία', + 'Stop current upload' : 'Διακοπή τρέχουσας μεταφόρτωσης', + 'Start uploading queue' : 'Εκκίνηση μεταφόρτωσης ουράς αρχείων', + 'Drag files here.' : 'Σύρετε αρχεία εδώ', + 'Start Upload': 'Εκκίνηση μεταφόρτωσης', + 'Uploaded %d/%d files': 'Ανέβηκαν %d/%d αρχεία' +}); \ No newline at end of file diff --git a/public/javascripts/plupload/js/i18n/et.js b/public/javascripts/plupload/js/i18n/et.js new file mode 100644 index 0000000..a4a5e3a --- /dev/null +++ b/public/javascripts/plupload/js/i18n/et.js @@ -0,0 +1,33 @@ +// Estonian translation, et.js +plupload.addI18n({ + 'Select files' : 'Vali faile', + 'Add files to the upload queue and click the start button.' : 'Lisa failid üleslaadimise järjekorda ja klõpsa alustamise nupule.', + 'Filename' : 'Failinimi', + 'Status' : 'Olek', + 'Size' : 'Suurus', + 'Add files' : 'Lisa faile', + 'Stop current upload' : 'Praeguse üleslaadimise peatamine', + 'Start uploading queue' : 'Järjekorras ootavate failide üleslaadimise alustamine', + 'Drag files here.' : 'Lohista failid siia.', + 'Start upload' : 'Alusta üleslaadimist', + 'Uploaded %d/%d files': 'Üles laaditud %d/%d', + 'Stop upload': 'Peata üleslaadimine', + 'Start upload': 'Alusta üleslaadimist', + '%d files queued': 'Järjekorras on %d faili', + 'File: %s': 'Fail: %s', + 'Close': 'Sulge', + 'Using runtime: ': 'Kasutatakse varianti: ', + 'File: %f, size: %s, max file size: %m': 'Fail: %f, suurus: %s, suurim failisuurus: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'Üleslaadimise element saab vastu võtta ainult %d faili ühe korraga. Ülejäänud failid jäetakse laadimata.', + 'Upload URL might be wrong or doesn\'t exist': 'Üleslaadimise URL võib olla vale või seda pole', + 'Error: File too large: ': 'Viga: fail on liiga suur: ', + 'Error: Invalid file extension: ': 'Viga: sobimatu faililaiend: ', + 'File extension error.': 'Faililaiendi viga.', + 'File size error.': 'Failisuuruse viga.', + 'File count error.': 'Failide arvu viga.', + 'Init error.': 'Lähtestamise viga.', + 'HTTP Error.': 'HTTP ühenduse viga.', + 'Security error.': 'Turvaviga.', + 'Generic error.': 'Üldine viga.', + 'IO error.': 'S/V (I/O) viga.' +}); \ No newline at end of file diff --git a/public/javascripts/plupload/js/i18n/fa.js b/public/javascripts/plupload/js/i18n/fa.js new file mode 100644 index 0000000..af36e22 --- /dev/null +++ b/public/javascripts/plupload/js/i18n/fa.js @@ -0,0 +1,37 @@ +// Persian +plupload.addI18n({ + 'Select files' : 'انتخاب فایل', + 'Add files to the upload queue and click the start button.' : 'اضافه کنید فایل ها را به صف آپلود و دکمه شروع را کلیک کنید.', + 'Filename' : 'نام فایل', + 'Status' : 'وضعیت', + 'Size' : 'سایز', + 'Add Files' : 'افزودن فایل', + 'Stop Upload' : 'توقف انتقال', + 'Start Upload' : 'شروع انتقال', + 'Add files' : 'افزودن فایل', + 'Add files.' : 'افزودن فایل', + 'Stop current upload' : 'توقف انتقال جاری', + 'Start uploading queue' : 'شروع صف انتقال', + 'Stop upload' : 'توقف انتقال', + 'Start upload' : 'شروع انتقال', + 'Uploaded %d/%d files': 'منتقل شد %d/%d از فایلها', + 'N/A' : 'N/A', + 'Drag files here.' : 'بکشید فایل ها رو به اینجا', + 'File extension error.': 'خطا پیشوند فایل', + 'File size error.': 'خطای سایز فایل', + 'File count error.': 'خطای تعداد فایل', + 'Init error.': 'خطا در استارت اسکریپت', + 'HTTP Error.': 'HTTP خطای', + 'Security error.': 'خطای امنیتی', + 'Generic error.': 'خطای عمومی', + 'IO error.': 'IO خطای', + 'File: %s': ' فایل ها : %s', + 'Close': 'بستن', + '%d files queued': '%d فایل در صف', + 'Using runtime: ': 'استفاده میکنید از : ', + 'File: %f, size: %s, max file size: %m': فایل: %f, سایز: %s, بزرگترین سایز فایل: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'عنصر بارگذار فقط %d فایل رو در یک زمان می پذیرد. سایر فایل ها مجرد از این موضوع هستند.', + 'Upload URL might be wrong or doesn\'t exist': 'آدرس آپلود اشتباه می باشد یا وجود ندارد', + 'Error: File too large: ': 'خطا: فایل حجیم است :: ', + 'Error: Invalid file extension: ': 'خطا پسوند فایل معتبر نمی باشد : ' +}); diff --git a/public/javascripts/plupload/js/i18n/fi.js b/public/javascripts/plupload/js/i18n/fi.js new file mode 100644 index 0000000..12a639e --- /dev/null +++ b/public/javascripts/plupload/js/i18n/fi.js @@ -0,0 +1,33 @@ +// .fi file like language pack +plupload.addI18n({ + 'Select files' : 'Valitse tiedostoja', + 'Add files to the upload queue and click the start button.' : 'Lisää tiedostoja latausjonoon ja klikkaa aloita-nappia.', + 'Filename' : 'Tiedostonimi', + 'Status' : 'Tila', + 'Size' : 'Koko', + 'Add files' : 'Lisää tiedostoja', + 'Stop current upload' : 'Pysäytä nykyinen lataus', + 'Start uploading queue' : 'Aloita jonon lataus', + 'Drag files here.' : 'Raahaa tiedostot tänne.', + 'Start upload' : 'Aloita lataus', + 'Uploaded %d/%d files': 'Ladattu %d/%d tiedostoa', + 'Stop upload': 'Pysäytä lataus', + 'Start upload': 'Aloita lataus', + '%d files queued': '%d tiedostoa jonossa', + 'File: %s': 'Tiedosto: %s', + 'Close': 'Sulje', + 'Using runtime: ': 'Käytetään ajonaikaista: ', + 'File: %f, size: %s, max file size: %m': 'Tiedosto: %f, koko: %s, maksimi tiedostokoko: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'Latauselementti sallii ladata vain %d tiedosto(a) kerrallaan. Ylimääräiset tiedostot ohitettiin.', + 'Upload URL might be wrong or doesn\'t exist': 'Lataus URL saattaa olla väärin tai ei ole olemassa', + 'Error: File too large: ': 'Virhe: Tiedosto liian suuri: ', + 'Error: Invalid file extension: ': 'Virhe: Kelpaamaton tiedostopääte: ', + 'File extension error.': 'Tiedostopäätevirhe.', + 'File size error.': 'Tiedostokokovirhe.', + 'File count error.': 'Tiedostolaskentavirhe.', + 'Init error.': 'Init virhe.', + 'HTTP Error.': 'HTTP virhe.', + 'Security error.': 'Tietoturvavirhe.', + 'Generic error.': 'Yleinen virhe.', + 'IO error.': 'I/O virhe.' +}); \ No newline at end of file diff --git a/public/javascripts/plupload/js/i18n/fr-ca.js b/public/javascripts/plupload/js/i18n/fr-ca.js new file mode 100644 index 0000000..61aba23 --- /dev/null +++ b/public/javascripts/plupload/js/i18n/fr-ca.js @@ -0,0 +1,35 @@ +// French-Canadian +plupload.addI18n({ + 'Select files' : 'Sélectionnez les fichiers', + 'Add files to the upload queue and click the start button.' : 'Ajoutez des fichiers à la file d\'attente et appuyez sur le bouton démarrer.', + 'Filename' : 'Nom du fichier', + 'Status' : 'Statut', + 'Size' : 'Taille', + 'Add files' : 'Ajouter Fichiers', + 'Stop current upload' : 'Arrêter le téléversement actuel', + 'Start uploading queue' : 'Démarrer le téléversement', + 'Uploaded %d/%d files': '%d/%d fichiers envoyés', + 'N/A' : 'Non applicable', + 'Drag files here.' : 'Glisser-déposer les fichiers ici', + 'File extension error.': 'Erreur d\'extension de fichier', + 'File size error.': 'Erreur de taille de fichier', + 'Init error.': 'Erreur d\'initialisation', + 'HTTP Error.': 'Erreur HTTP', + 'Security error.': 'Erreur de sécurité', + 'Generic error.': 'Erreur commune', + 'IO error.': 'Erreur E/S', + 'Stop Upload': 'Arrêter le téléversement', + 'Add Files': 'Ajouter des fichiers', + 'Start upload': 'Démarrer le téléversement', + '%d files queued': '%d fichiers en attente', + 'File: %s':'Fichier: %s', + 'Close':'Fermer', + 'Using runtime:':'Moteur logiciel:', + 'File: %f, size: %s, max file size: %m':'Fichier: %f, poids: %s, poids maximal: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.':'La file accepte %d fichier(s) à la fois. Les fichiers en trop sont ignorés', + 'Upload URL might be wrong or doesn\'t exist':'L\'URL de téléversement est erroné ou inexistant', + 'Error: File to large: ':'Fichier trop volumineux: ', + 'Error: Invalid file extension: ':'Extension de fichier invalide: ', + 'File size error.':'Erreur de taile de fichier', + 'File count error.':'Erreur de décompte des fichiers' +}); \ No newline at end of file diff --git a/public/javascripts/plupload/js/i18n/fr.js b/public/javascripts/plupload/js/i18n/fr.js index c534ec4..53dbe28 100644 --- a/public/javascripts/plupload/js/i18n/fr.js +++ b/public/javascripts/plupload/js/i18n/fr.js @@ -1,4 +1,4 @@ -// .po file like language pack +// French plupload.addI18n({ 'Select files' : 'Sélectionnez les fichiers', 'Add files to the upload queue and click the start button.' : 'Ajoutez des fichiers à la file et appuyez sur le bouton démarrer.', diff --git a/public/javascripts/plupload/js/i18n/hr.js b/public/javascripts/plupload/js/i18n/hr.js new file mode 100644 index 0000000..084be51 --- /dev/null +++ b/public/javascripts/plupload/js/i18n/hr.js @@ -0,0 +1,25 @@ +// Croatian +plupload.addI18n({ + 'Select files': 'Izaberite datoteke:', + 'Add files to the upload queue and click the start button.': 'Dodajte datoteke u listu i kliknite Upload.', + 'Filename': 'Ime datoteke', + 'Status': 'Status', + 'Size': 'Veličina', + 'Add files': 'Dodajte datoteke', + 'Stop current upload': 'Zaustavi trenutan upload', + 'Start uploading queue': 'Pokreni Upload', + 'Uploaded %d/%d files': 'Uploadano %d/%d datoteka', + 'N/A': 'N/A', + 'Drag files here.': 'Dovucite datoteke ovdje', + 'File extension error.': 'Greška ekstenzije datoteke.', + 'File size error.': 'Greška veličine datoteke.', + 'Init error.': 'Greška inicijalizacije.', + 'HTTP Error.': 'HTTP greška.', + 'Security error.': 'Sigurnosna greška.', + 'Generic error.': 'Generička greška.', + 'IO error.': 'I/O greška.', + 'Stop Upload': 'Zaustavi upload.', + 'Add Files': 'Dodaj datoteke', + 'Start Upload': 'Pokreni upload.', + '%d files queued': '%d datoteka na čekanju.' +}); \ No newline at end of file diff --git a/public/javascripts/plupload/js/i18n/hu.js b/public/javascripts/plupload/js/i18n/hu.js new file mode 100644 index 0000000..87070ba --- /dev/null +++ b/public/javascripts/plupload/js/i18n/hu.js @@ -0,0 +1,33 @@ +// Hungarian +plupload.addI18n({ + 'Select files' : 'Fájlok kiválasztása', + 'Add files to the upload queue and click the start button.' : 'Válaszd ki a fájlokat, majd kattints az Indítás gombra.', + 'Filename' : 'Fájlnév', + 'Status' : 'Állapot', + 'Size' : 'Méret', + 'Add files' : 'Hozzáadás', + 'Stop current upload' : 'Jelenlegi feltöltés megszakítása', + 'Start uploading queue' : 'Várakozási sor feltöltésének indítása', + 'Uploaded %d/%d files': 'Feltöltött fájlok: %d/%d', + 'N/A': 'Nem elérhető', + 'Drag files here.' : 'Húzd ide a fájlokat.', + 'Stop upload': 'Feltöltés megszakítása', + 'Start upload': 'Indítás', + '%d files queued': '%d fájl sorbaállítva', + 'File: %s': 'Fájl: %s', + 'Close': 'Bezárás', + 'Using runtime: ': 'Használt runtime: ', + 'File: %f, size: %s, max file size: %m': 'Fájl: %f, méret: %s, maximális fájlméret: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'A feltöltés egyszerre csak %d fájlt fogad el, a többi fájl nem lesz feltöltve.', + 'Upload URL might be wrong or doesn\'t exist': 'A megadott URL hibás vagy nem létezik', + 'Error: File too large: ': 'Hiba: A fájl túl nagy: ', + 'Error: Invalid file extension: ': 'Hiba: Érvénytelen fájlkiterjesztés: ', + 'File extension error.': 'Hibás fájlkiterjesztés.', + 'File size error.': 'Hibás fájlméret.', + 'File count error.': 'A fájlok számával kapcsolatos hiba.', + 'Init error.': 'Init hiba.', + 'HTTP Error.': 'HTTP hiba.', + 'Security error.': 'Biztonsági hiba.', + 'Generic error.': 'Általános hiba.', + 'IO error.': 'I/O hiba.' +}); diff --git a/public/javascripts/plupload/js/i18n/it.js b/public/javascripts/plupload/js/i18n/it.js index 7946578..891e4fb 100644 --- a/public/javascripts/plupload/js/i18n/it.js +++ b/public/javascripts/plupload/js/i18n/it.js @@ -1,21 +1,24 @@ -// .po file like language pack -plupload.addI18n({ - 'Select files' : 'Seleziona i files', - 'Add files to the upload queue and click the start button.' : 'Aggiungi i file alla coda di caricamento e clicca il pulsante di avvio.', - 'Filename' : 'Nome file', - 'Status' : 'Stato', - 'Size' : 'Dimensione', - 'Add files' : 'Aggiungi file', - 'Stop current upload' : 'Interrompi il caricamento', - 'Start uploading queue' : 'Avvia il caricamento', - 'Uploaded %d/%d files': 'Caricati %d/%d file', - 'N/A' : 'N/D', - 'Drag files here.' : 'Trascina i file qui.', - 'File extension error.': 'Errore estensione file.', - 'File size error.': 'Errore dimensione file.', - 'Init error.': 'Errore inizializzazione.', - 'HTTP Error.': 'Errore HTTP.', - 'Security error.': 'Errore sicurezza.', - 'Generic error.': 'Errore generico.', - 'IO error.': 'Errore IO.' +// Italian +plupload.addI18n({ + 'Select files' : 'Seleziona i files', + 'Add files to the upload queue and click the start button.' : 'Aggiungi i file alla coda di caricamento e clicca il pulsante di avvio.', + 'Filename' : 'Nome file', + 'Status' : 'Stato', + 'Size' : 'Dimensione', + 'Add Files' : 'Aggiungi file', + 'Stop current upload' : 'Interrompi il caricamento', + 'Start uploading queue' : 'Avvia il caricamento', + 'Uploaded %d/%d files': 'Caricati %d/%d file', + 'N/A' : 'N/D', + 'Drag files here.' : 'Trascina i file qui.', + 'File extension error.': 'Errore estensione file.', + 'File size error.': 'Errore dimensione file.', + 'Init error.': 'Errore inizializzazione.', + 'HTTP Error.': 'Errore HTTP.', + 'Security error.': 'Errore sicurezza.', + 'Generic error.': 'Errore generico.', + 'IO error.': 'Errore IO.', + 'Stop Upload': 'Ferma Upload', + 'Start Upload': 'Inizia Upload', + '%d files queued': '%d file in lista' }); \ No newline at end of file diff --git a/public/javascripts/plupload/js/i18n/ko.js b/public/javascripts/plupload/js/i18n/ko.js new file mode 100644 index 0000000..a2c5e66 --- /dev/null +++ b/public/javascripts/plupload/js/i18n/ko.js @@ -0,0 +1,36 @@ +// Republic of Korea +plupload.addI18n({ + 'Select files' : '파일 선택', + 'Add files to the upload queue and click the start button.' : '파일을 업로드 큐에 추가하여 시작 버튼을 클릭하십시오.', + 'Filename' : '파일 이름', + 'Status' : '상태', + 'Size' : '크기', + 'Add Files' : '파일 추가', + 'Stop Upload': '업로드 중지', + 'Start Upload': '업로드', + 'Add files': '파일 추가', + 'Stop current upload': '현재 업로드를 정지', + 'Start uploading queue': '업로드', + 'Stop upload': '업로드 중지', + 'Start upload': '업로드', + 'Uploaded % d / % d files': '업로드 중 % d / % d 파일', + 'N / A': 'N / A', + 'Drag files here': '여기에 파일을 드래그', + 'File extension error': '파일 확장자 오류', + 'File size error': '파일 크기 오류', + 'File count error': '이미지 : 오류', + 'Init error': '초기화 오류', + 'HTTP Error': 'HTTP 오류', + 'Security error': '보안 오류', + 'Generic error': '오류', + 'IO error': 'IO 오류', + 'File : % s': '파일 % s', + 'Close': '닫기', + '% d files queued': '% d 파일이 추가되었습니다', + 'Using runtime :': '모드', + 'File : % f, size : % s, max file size : % m': '파일 : % f, 크기 : % s, 최대 파일 크기 : % m', + 'Upload element accepts only % d file (s) at a time. Extra files were stripped': '업로드 가능한 파일의 수는 % d입니다. 불필요한 파일은 삭제되었습니다 ', + 'Upload URL might be wrong or doesn \'t exist ':'업로드할 URL이 존재하지 않습니다 ', + 'Error : File too large :': '오류 : 크기가 너무 큽니다', + 'Error : Invalid file extension :': '오류 : 확장자가 허용되지 않습니다 :' +}); \ No newline at end of file diff --git a/public/javascripts/plupload/js/i18n/pl.js b/public/javascripts/plupload/js/i18n/pl.js new file mode 100644 index 0000000..3d1b9be --- /dev/null +++ b/public/javascripts/plupload/js/i18n/pl.js @@ -0,0 +1,24 @@ +plupload.addI18n({ +'Select files' : 'Wybierz pliki:', +'Add files to the upload queue and click the start button.' : 'Dodaj pliki i kliknij \'Rozpocznij transfer\'.', +'Filename' : 'Nazwa pliku', +'Status' : 'Status', +'Size' : 'Rozmiar', +'Add files' : 'Dodaj pliki', +'Stop current upload' : 'Przerwij aktualny transfer', +'Start uploading queue' : 'Rozpocznij wysyłanie', +'Uploaded %d/%d files': 'Wysłano %d/%d plików', +'N/A' : 'Nie dostępne', +'Drag files here.' : 'Przeciągnij tu pliki', +'File extension error.': 'Nieobsługiwany format pliku.', +'File size error.': 'Plik jest zbyt duży.', +'Init error.': 'Błąd inicjalizacji.', +'HTTP Error.': 'Błąd HTTP.', +'Security error.': 'Błąd bezpieczeństwa.', +'Generic error.': 'Błąd ogólny.', +'IO error.': 'Błąd IO.', +'Stop Upload': 'Przerwij transfer.', +'Add Files': 'Dodaj pliki', +'Start upload': 'Rozpocznij transfer.', +'%d files queued': '%d plików w kolejce.' +}); diff --git a/public/javascripts/plupload/js/i18n/ro.js b/public/javascripts/plupload/js/i18n/ro.js new file mode 100644 index 0000000..fd198f0 --- /dev/null +++ b/public/javascripts/plupload/js/i18n/ro.js @@ -0,0 +1,24 @@ +// Romanian +plupload.addI18n({ + 'Select files' : 'Selectare fişiere', + 'Add files to the upload queue and click the start button.' : 'Adaugă fişiere în lista apoi apasă butonul \'Începe încărcare\'.', + 'Filename' : 'Nume fişier', + 'Status' : 'Stare', + 'Size' : 'Mărime', + 'Add files' : 'Adăugare fişiere', + 'Stop current upload' : 'Întrerupe încărcarea curentă', + 'Start uploading queue' : 'Începe incărcarea', + 'Uploaded %d/%d files': 'Fişiere încărcate %d/%d', + 'N/A' : 'N/A', + 'Drag files here.' : 'Trage aici fişierele', + 'File extension error.': 'Extensie fişier eronată', + 'File size error.': 'Eroare dimensiune fişier', + 'Init error.': 'Eroare iniţializare', + 'HTTP Error.': 'Eroare HTTP', + 'Security error.': 'Eroare securitate', + 'Generic error.': 'Eroare generică', + 'IO error.': 'Eroare Intrare/Ieşire', + 'Stop Upload': 'Oprire încărcare', + 'Start upload': 'Începe încărcare', + '%d files queued': '%d fişiere listate' +}); \ No newline at end of file diff --git a/public/javascripts/plupload/js/i18n/sr.js b/public/javascripts/plupload/js/i18n/sr.js new file mode 100644 index 0000000..59dc0a9 --- /dev/null +++ b/public/javascripts/plupload/js/i18n/sr.js @@ -0,0 +1,14 @@ +// Serbian +plupload.addI18n({ + 'Select files' : 'Izaberite fajlove', + 'Add files to the upload queue and click the start button.' : 'Dodajte fajlove u listu i kliknite na dugme Start.', + 'Filename' : 'Naziv fajla', + 'Status' : 'Status', + 'Size' : 'Veličina', + 'Add Files' : 'Dodaj fajlove', + 'Stop current upload' : 'Zaustavi upload', + 'Start uploading queue' : 'Počni upload', + 'Drag files here.' : 'Prevucite fajlove ovde.', + 'Start Upload': 'Počni upload', + 'Uploaded %d/%d files': 'Snimljeno %d/%d fajlova' +}); \ No newline at end of file diff --git a/public/javascripts/plupload/js/jquery.ui.plupload/jquery.ui.plupload.js b/public/javascripts/plupload/js/jquery.ui.plupload/jquery.ui.plupload.js index 3076e13..a836bb6 100644 --- a/public/javascripts/plupload/js/jquery.ui.plupload/jquery.ui.plupload.js +++ b/public/javascripts/plupload/js/jquery.ui.plupload/jquery.ui.plupload.js @@ -1 +1 @@ -(function(f,a,c,g,e){var h={};function b(i){return c.translate(i)||i}function d(i){i.html('
'+b("Select files")+'
'+b("Add files to the upload queue and click the start button.")+'
'+b("Filename")+''+b("Status")+''+b("Size")+' 
')}g.widget("ui.plupload",{contents_bak:"",runtime:null,options:{browse_button_hover:"ui-state-hover",browse_button_active:"ui-state-active",dragdrop:true,multiple_queues:true,buttons:{browse:true,start:true,stop:true},autostart:false,sortable:false,rename:false,max_file_count:0},FILE_COUNT_ERROR:-9001,_create:function(){var i=this,k,j;k=this.element.attr("id");if(!k){k=c.guid();this.element.attr("id",k)}this.id=k;this.contents_bak=this.element.html();d(this.element);this.container=g(".plupload_container",this.element).attr("id",k+"_container");this.filelist=g(".plupload_filelist_content",this.container).attr({id:k+"_filelist",unselectable:"on"});this.browse_button=g(".plupload_add",this.container).attr("id",k+"_browse");this.start_button=g(".plupload_start",this.container).attr("id",k+"_start");this.stop_button=g(".plupload_stop",this.container).attr("id",k+"_stop");if(g.ui.button){this.browse_button.button({icons:{primary:"ui-icon-circle-plus"}});this.start_button.button({icons:{primary:"ui-icon-circle-arrow-e"},disabled:true});this.stop_button.button({icons:{primary:"ui-icon-circle-close"}})}if(!this.options.buttons.browse){this.browse_button.button("disable").hide();g("#"+k+i.runtime+"_container").hide()}if(!this.options.buttons.start){this.start_button.button("disable").hide()}if(!this.options.buttons.stop){this.stop_button.button("disable").hide()}this.progressbar=g(".plupload_progress_container",this.container);if(g.ui.progressbar){this.progressbar.progressbar()}this.counter=g(".plupload_count",this.element).attr({id:k+"_count",name:k+"_count"});j=this.uploader=h[k]=new c.Uploader(g.extend({container:k,browse_button:k+"_browse"},this.options));j.bind("Init",function(l,m){if(!i.options.unique_names&&i.options.rename){i._enableRenaming()}if(j.features.dragdrop&&i.options.dragdrop){i._enableDragAndDrop()}i.container.attr("title",b("Using runtime: ")+(i.runtime=m.runtime));i.start_button.click(function(n){if(!g(this).button("option","disabled")){i.start()}n.preventDefault()});i.stop_button.click(function(n){j.stop();n.preventDefault()})});if(i.options.max_file_count){j.bind("FilesAdded",function(l,n){var o=[],m=n.length;var p=l.files.length+m-i.options.max_file_count;if(p>0){o=n.splice(m-p,p);l.trigger("Error",{code:i.FILE_COUNT_ERROR,message:b("File count error."),file:o})}})}j.init();j.bind("FilesAdded",function(l,m){i._trigger("selected",null,{up:l,files:m});if(i.options.autostart){i.start()}});j.bind("FilesRemoved",function(l,m){i._trigger("removed",null,{up:l,files:m})});j.bind("QueueChanged",function(){i._updateFileList()});j.bind("StateChanged",function(){i._handleState()});j.bind("UploadFile",function(l,m){i._handleFileStatus(m)});j.bind("FileUploaded",function(l,m){i._handleFileStatus(m);i._trigger("uploaded",null,{up:l,file:m})});j.bind("UploadProgress",function(l,m){g("#"+m.id+" .plupload_file_status",i.element).html(m.percent+"%");i._handleFileStatus(m);i._updateTotalProgress();i._trigger("progress",null,{up:l,file:m})});j.bind("UploadComplete",function(l,m){i._trigger("complete",null,{up:l,files:m})});j.bind("Error",function(l,p){var n=p.file,o,m;if(n){o=""+p.message+"";m=p.details;if(m){o+="
"+p.details+""}else{switch(p.code){case c.FILE_EXTENSION_ERROR:m=b("File: %s").replace("%s",n.name);break;case c.FILE_SIZE_ERROR:m=b("File: %f, size: %s, max file size: %m").replace(/%([fsm])/g,function(r,q){switch(q){case"f":return n.name;case"s":return n.size;case"m":return c.parseSize(i.options.max_file_size)}});break;case i.FILE_COUNT_ERROR:m=b("Upload element accepts only %d file(s) at a time. Extra files were stripped.").replace("%d",i.options.max_file_count);break;case c.IMAGE_FORMAT_ERROR:m=c.translate("Image format either wrong or not supported.");break;case c.IMAGE_MEMORY_ERROR:m=c.translate("Runtime ran out of available memory.");break;case c.IMAGE_DIMENSIONS_ERROR:m=c.translate("Resoultion out of boundaries! %s runtime supports images only up to %wx%hpx.").replace(/%([swh])/g,function(r,q){switch(q){case"s":return l.runtime;case"w":return l.features.maxWidth;case"h":return l.features.maxHeight}});break;case c.HTTP_ERROR:m=b("Upload URL might be wrong or doesn't exist");break}o+="
"+m+""}i.notify("error",o);i._trigger("error",null,{up:l,file:n,error:o})}})},_setOption:function(j,k){var i=this;if(j=="buttons"&&typeof(k)=="object"){k=g.extend(i.options.buttons,k);if(!k.browse){i.browse_button.button("disable").hide();g("#"+i.id+i.runtime+"_container").hide()}else{i.browse_button.button("enable").show();g("#"+i.id+i.runtime+"_container").show()}if(!k.start){i.start_button.button("disable").hide()}else{i.start_button.button("enable").show()}if(!k.stop){i.stop_button.button("disable").hide()}else{i.start_button.button("enable").show()}}i.uploader.settings[j]=k},start:function(){this.uploader.start();this._trigger("start",null)},stop:function(){this.uploader.stop();this._trigger("stop",null)},getFile:function(j){var i;if(typeof j==="number"){i=this.uploader.files[j]}else{i=this.uploader.getFile(j)}return i},removeFile:function(j){var i=this.getFile(j);if(i){this.uploader.removeFile(i)}},clearQueue:function(){this.uploader.splice()},getUploader:function(){return this.uploader},refresh:function(){this.uploader.refresh()},_handleState:function(){var i=this,j=this.uploader;if(j.state===c.STARTED){g(i.start_button).button("disable");g([]).add(i.stop_button).add(".plupload_started").removeClass("plupload_hidden");g(".plupload_upload_status",i.element).text(b("Uploaded %d/%d files").replace("%d/%d",j.total.uploaded+"/"+j.files.length));g(".plupload_header_content",i.element).addClass("plupload_header_content_bw")}else{g([]).add(i.stop_button).add(".plupload_started").addClass("plupload_hidden");if(i.options.multiple_queues){g(i.start_button).button("enable");g(".plupload_header_content",i.element).removeClass("plupload_header_content_bw")}i._updateFileList()}},_handleFileStatus:function(l){var n,j;switch(l.status){case c.DONE:n="plupload_done";j="ui-icon ui-icon-circle-check";break;case c.FAILED:n="ui-state-error plupload_failed";j="ui-icon ui-icon-alert";break;case c.QUEUED:n="plupload_delete";j="ui-icon ui-icon-circle-minus";break;case c.UPLOADING:n="ui-state-highlight plupload_uploading";j="ui-icon ui-icon-circle-arrow-w";var i=g(".plupload_scroll",this.container),m=i.scrollTop(),o=i.height(),k=g("#"+l.id).position().top+g("#"+l.id).height();if(o'}i+='';i+='';k++;j.counter.val(k)}l.append(''+p.name+''+p.percent+'%'+c.formatSize(p.size)+'
'+i+"");j._handleFileStatus(p);g("#"+p.id+".plupload_delete .ui-icon, #"+p.id+".plupload_done .ui-icon").click(function(r){g("#"+p.id).remove();n.removeFile(p);r.preventDefault()});j._trigger("updatelist",null,l)});g(".plupload_total_file_size",j.element).html(c.formatSize(n.total.size));if(n.total.queued===0){g(".ui-button-text",j.browse_button).text(b("Add Files"))}else{g(".ui-button-text",j.browse_button).text(b("%d files queued").replace("%d",n.total.queued))}if(n.files.length===(n.total.uploaded+n.total.failed)){j.start_button.button("disable")}else{j.start_button.button("enable")}l[0].scrollTop=l[0].scrollHeight;j._updateTotalProgress();if(!n.files.length&&n.features.dragdrop&&n.settings.dragdrop){g("#"+o+"_filelist").append(''+b("Drag files here.")+"")}else{if(j.options.sortable&&g.ui.sortable){j._enableSortingList()}}},_enableRenaming:function(){var i=this;g(".plupload_file_name span",this.filelist).live("click",function(o){var m=g(o.target),k,n,j,l="";k=i.uploader.getFile(m.parents("tr")[0].id);j=k.name;n=/^(.+)(\.[^.]+)$/.exec(j);if(n){j=n[1];l=n[2]}m.hide().after('');m.next().val(j).focus().blur(function(){m.show().next().remove()}).keydown(function(q){var p=g(this);if(g.inArray(q.keyCode,[13,27])!==-1){q.preventDefault();if(q.keyCode===13){k.name=p.val()+l;m.text(k.name)}p.blur()}})})},_enableDragAndDrop:function(){this.filelist.append(''+b("Drag files here.")+"");this.filelist.parent().attr("id",this.id+"_dropbox");this.uploader.settings.drop_element=this.options.drop_element=this.id+"_dropbox"},_enableSortingList:function(){var j,i=this;if(g("tbody tr",this.filelist).length<2){return}g("tbody",this.filelist).sortable({containment:"parent",items:".plupload_delete",helper:function(l,k){return k.clone(true).find("td:not(.plupload_file_name)").remove().end().css("width","100%")},stop:function(p,o){var l,n,k,m=[];g.each(g(this).sortable("toArray"),function(q,r){m[m.length]=i.uploader.getFile(r)});m.unshift(m.length);m.unshift(0);Array.prototype.splice.apply(i.uploader.files,m)}})},notify:function(j,k){var i=g('

'+k+"

");i.addClass("ui-state-"+(j==="error"?"error":"highlight")).find("p .ui-icon").addClass("ui-icon-"+(j==="error"?"alert":"info")).end().find(".plupload_message_close").click(function(){i.remove()}).end();g(".plupload_header_content",this.container).append(i)},destroy:function(){g(".plupload_button",this.element).unbind();if(g.ui.button){g(".plupload_add, .plupload_start, .plupload_stop",this.container).button("destroy")}if(g.ui.progressbar){this.progressbar.progressbar("destroy")}if(g.ui.sortable&&this.options.sortable){g("tbody",this.filelist).sortable("destroy")}this.uploader.destroy();this.element.empty().html(this.contents_bak);this.contents_bak="";g.Widget.prototype.destroy.apply(this)}})}(window,document,plupload,jQuery)); \ No newline at end of file +(function(f,a,c,g,e){var h={};function b(i){return c.translate(i)||i}function d(i){i.html('
'+b("Select files")+'
'+b("Add files to the upload queue and click the start button.")+'
'+b("Filename")+''+b("Status")+''+b("Size")+' 
')}g.widget("ui.plupload",{contents_bak:"",runtime:null,options:{browse_button_hover:"ui-state-hover",browse_button_active:"ui-state-active",dragdrop:true,multiple_queues:true,buttons:{browse:true,start:true,stop:true},autostart:false,sortable:false,rename:false,max_file_count:0},FILE_COUNT_ERROR:-9001,_create:function(){var i=this,k,j;k=this.element.attr("id");if(!k){k=c.guid();this.element.attr("id",k)}this.id=k;this.contents_bak=this.element.html();d(this.element);this.container=g(".plupload_container",this.element).attr("id",k+"_container");this.filelist=g(".plupload_filelist_content",this.container).attr({id:k+"_filelist",unselectable:"on"});this.browse_button=g(".plupload_add",this.container).attr("id",k+"_browse");this.start_button=g(".plupload_start",this.container).attr("id",k+"_start");this.stop_button=g(".plupload_stop",this.container).attr("id",k+"_stop");if(g.ui.button){this.browse_button.button({icons:{primary:"ui-icon-circle-plus"}});this.start_button.button({icons:{primary:"ui-icon-circle-arrow-e"},disabled:true});this.stop_button.button({icons:{primary:"ui-icon-circle-close"}})}this.progressbar=g(".plupload_progress_container",this.container);if(g.ui.progressbar){this.progressbar.progressbar()}this.counter=g(".plupload_count",this.element).attr({id:k+"_count",name:k+"_count"});j=this.uploader=h[k]=new c.Uploader(g.extend({container:k,browse_button:k+"_browse"},this.options));j.bind("Error",function(l,m){if(m.code===c.INIT_ERROR){i.destroy()}});j.bind("Init",function(l,m){if(!i.options.buttons.browse){i.browse_button.button("disable").hide();l.disableBrowse(true)}if(!i.options.buttons.start){i.start_button.button("disable").hide()}if(!i.options.buttons.stop){i.stop_button.button("disable").hide()}if(!i.options.unique_names&&i.options.rename){i._enableRenaming()}if(j.features.dragdrop&&i.options.dragdrop){i._enableDragAndDrop()}i.container.attr("title",b("Using runtime: ")+(i.runtime=m.runtime));i.start_button.click(function(n){if(!g(this).button("option","disabled")){i.start()}n.preventDefault()});i.stop_button.click(function(n){i.stop();n.preventDefault()})});if(i.options.max_file_count){j.bind("FilesAdded",function(l,n){var o=[],m=n.length;var p=l.files.length+m-i.options.max_file_count;if(p>0){o=n.splice(m-p,p);l.trigger("Error",{code:i.FILE_COUNT_ERROR,message:b("File count error."),file:o})}})}j.init();j.bind("FilesAdded",function(l,m){i._trigger("selected",null,{up:l,files:m});if(i.options.autostart){setTimeout(function(){i.start()},10)}});j.bind("FilesRemoved",function(l,m){i._trigger("removed",null,{up:l,files:m})});j.bind("QueueChanged",function(){i._updateFileList()});j.bind("StateChanged",function(){i._handleState()});j.bind("UploadFile",function(l,m){i._handleFileStatus(m)});j.bind("FileUploaded",function(l,m){i._handleFileStatus(m);i._trigger("uploaded",null,{up:l,file:m})});j.bind("UploadProgress",function(l,m){g("#"+m.id).find(".plupload_file_status").html(m.percent+"%").end().find(".plupload_file_size").html(c.formatSize(m.size));i._handleFileStatus(m);i._updateTotalProgress();i._trigger("progress",null,{up:l,file:m})});j.bind("UploadComplete",function(l,m){i._trigger("complete",null,{up:l,files:m})});j.bind("Error",function(l,p){var n=p.file,o,m;if(n){o=""+p.message+"";m=p.details;if(m){o+="
"+p.details+""}else{switch(p.code){case c.FILE_EXTENSION_ERROR:m=b("File: %s").replace("%s",n.name);break;case c.FILE_SIZE_ERROR:m=b("File: %f, size: %s, max file size: %m").replace(/%([fsm])/g,function(r,q){switch(q){case"f":return n.name;case"s":return n.size;case"m":return c.parseSize(i.options.max_file_size)}});break;case i.FILE_COUNT_ERROR:m=b("Upload element accepts only %d file(s) at a time. Extra files were stripped.").replace("%d",i.options.max_file_count);break;case c.IMAGE_FORMAT_ERROR:m=c.translate("Image format either wrong or not supported.");break;case c.IMAGE_MEMORY_ERROR:m=c.translate("Runtime ran out of available memory.");break;case c.IMAGE_DIMENSIONS_ERROR:m=c.translate("Resoultion out of boundaries! %s runtime supports images only up to %wx%hpx.").replace(/%([swh])/g,function(r,q){switch(q){case"s":return l.runtime;case"w":return l.features.maxWidth;case"h":return l.features.maxHeight}});break;case c.HTTP_ERROR:m=b("Upload URL might be wrong or doesn't exist");break}o+="
"+m+""}i.notify("error",o);i._trigger("error",null,{up:l,file:n,error:o})}})},_setOption:function(j,k){var i=this;if(j=="buttons"&&typeof(k)=="object"){k=g.extend(i.options.buttons,k);if(!k.browse){i.browse_button.button("disable").hide();up.disableBrowse(true)}else{i.browse_button.button("enable").show();up.disableBrowse(false)}if(!k.start){i.start_button.button("disable").hide()}else{i.start_button.button("enable").show()}if(!k.stop){i.stop_button.button("disable").hide()}else{i.start_button.button("enable").show()}}i.uploader.settings[j]=k},start:function(){this.uploader.start();this._trigger("start",null)},stop:function(){this.uploader.stop();this._trigger("stop",null)},getFile:function(j){var i;if(typeof j==="number"){i=this.uploader.files[j]}else{i=this.uploader.getFile(j)}return i},removeFile:function(j){var i=this.getFile(j);if(i){this.uploader.removeFile(i)}},clearQueue:function(){this.uploader.splice()},getUploader:function(){return this.uploader},refresh:function(){this.uploader.refresh()},_handleState:function(){var j=this,i=this.uploader;if(i.state===c.STARTED){g(j.start_button).button("disable");g([]).add(j.stop_button).add(".plupload_started").removeClass("plupload_hidden");g(".plupload_upload_status",j.element).text(b("Uploaded %d/%d files").replace("%d/%d",i.total.uploaded+"/"+i.files.length));g(".plupload_header_content",j.element).addClass("plupload_header_content_bw")}else{g([]).add(j.stop_button).add(".plupload_started").addClass("plupload_hidden");if(j.options.multiple_queues){g(j.start_button).button("enable");g(".plupload_header_content",j.element).removeClass("plupload_header_content_bw")}j._updateFileList()}},_handleFileStatus:function(l){var n,j;if(!g("#"+l.id).length){return}switch(l.status){case c.DONE:n="plupload_done";j="ui-icon ui-icon-circle-check";break;case c.FAILED:n="ui-state-error plupload_failed";j="ui-icon ui-icon-alert";break;case c.QUEUED:n="plupload_delete";j="ui-icon ui-icon-circle-minus";break;case c.UPLOADING:n="ui-state-highlight plupload_uploading";j="ui-icon ui-icon-circle-arrow-w";var i=g(".plupload_scroll",this.container),m=i.scrollTop(),o=i.height(),k=g("#"+l.id).position().top+g("#"+l.id).height();if(o'}i+='';i+='';l++;k.counter.val(l)}m.append(''+p.name+''+p.percent+'%'+c.formatSize(p.size)+'
'+i+"");k._handleFileStatus(p);g("#"+p.id+".plupload_delete .ui-icon, #"+p.id+".plupload_done .ui-icon").click(function(r){g("#"+p.id).remove();j.removeFile(p);r.preventDefault()});k._trigger("updatelist",null,m)});if(j.total.queued===0){g(".ui-button-text",k.browse_button).text(b("Add Files"))}else{g(".ui-button-text",k.browse_button).text(b("%d files queued").replace("%d",j.total.queued))}if(j.files.length===(j.total.uploaded+j.total.failed)){k.start_button.button("disable")}else{k.start_button.button("enable")}m[0].scrollTop=m[0].scrollHeight;k._updateTotalProgress();if(!j.files.length&&j.features.dragdrop&&j.settings.dragdrop){g("#"+o+"_filelist").append(''+b("Drag files here.")+"")}else{if(k.options.sortable&&g.ui.sortable){k._enableSortingList()}}},_enableRenaming:function(){var i=this;g(".plupload_delete .plupload_file_name span",this.filelist).live("click",function(o){var m=g(o.target),k,n,j,l="";k=i.uploader.getFile(m.parents("tr")[0].id);j=k.name;n=/^(.+)(\.[^.]+)$/.exec(j);if(n){j=n[1];l=n[2]}m.hide().after('');m.next().val(j).focus().blur(function(){m.show().next().remove()}).keydown(function(q){var p=g(this);if(g.inArray(q.keyCode,[13,27])!==-1){q.preventDefault();if(q.keyCode===13){k.name=p.val()+l;m.text(k.name)}p.blur()}})})},_enableDragAndDrop:function(){this.filelist.append(''+b("Drag files here.")+"");this.filelist.parent().attr("id",this.id+"_dropbox");this.uploader.settings.drop_element=this.options.drop_element=this.id+"_dropbox"},_enableSortingList:function(){var j,i=this;if(g("tbody tr",this.filelist).length<2){return}g("tbody",this.filelist).sortable({containment:"parent",items:".plupload_delete",helper:function(l,k){return k.clone(true).find("td:not(.plupload_file_name)").remove().end().css("width","100%")},stop:function(p,o){var l,n,k,m=[];g.each(g(this).sortable("toArray"),function(q,r){m[m.length]=i.uploader.getFile(r)});m.unshift(m.length);m.unshift(0);Array.prototype.splice.apply(i.uploader.files,m)}})},notify:function(j,k){var i=g('

'+k+"

");i.addClass("ui-state-"+(j==="error"?"error":"highlight")).find("p .ui-icon").addClass("ui-icon-"+(j==="error"?"alert":"info")).end().find(".plupload_message_close").click(function(){i.remove()}).end();g(".plupload_header_content",this.container).append(i)},destroy:function(){g(".plupload_button",this.element).unbind();if(g.ui.button){g(".plupload_add, .plupload_start, .plupload_stop",this.container).button("destroy")}if(g.ui.progressbar){this.progressbar.progressbar("destroy")}if(g.ui.sortable&&this.options.sortable){g("tbody",this.filelist).sortable("destroy")}this.uploader.destroy();this.element.empty().html(this.contents_bak);this.contents_bak="";g.Widget.prototype.destroy.apply(this)}})}(window,document,plupload,jQuery)); \ No newline at end of file diff --git a/public/javascripts/plupload/js/plupload.browserplus.js b/public/javascripts/plupload/js/plupload.browserplus.js index 77a0f11..e66404b 100644 --- a/public/javascripts/plupload/js/plupload.browserplus.js +++ b/public/javascripts/plupload/js/plupload.browserplus.js @@ -1 +1 @@ -(function(a){a.runtimes.BrowserPlus=a.addRuntime("browserplus",{getFeatures:function(){return{dragdrop:true,jpgresize:true,pngresize:true,chunks:true,progress:true,multipart:true}},init:function(g,i){var e=window.BrowserPlus,h={},d=g.settings,c=d.resize;function f(n){var m,l,j=[],k,o;for(l=0;l0){q(++s,u)}else{j.status=a.DONE;m.trigger("FileUploaded",j,{response:w.value.body,status:v});if(v>=400){m.trigger("Error",{code:a.HTTP_ERROR,message:a.translate("HTTP Error."),file:j,status:v})}}}else{m.trigger("Error",{code:a.GENERIC_ERROR,message:a.translate("Generic Error."),file:j,details:w.error})}})}function p(s){j.size=s.size;if(k){e.FileAccess.chunk({file:s,chunkSize:k},function(v){if(v.success){var w=v.value,t=w.length;n=Array(t);for(var u=0;u0){r(++t,v)}else{k.status=a.DONE;n.trigger("FileUploaded",k,{response:x.value.body,status:w});if(w>=400){n.trigger("Error",{code:a.HTTP_ERROR,message:a.translate("HTTP Error."),file:k,status:w})}}}else{n.trigger("Error",{code:a.GENERIC_ERROR,message:a.translate("Generic Error."),file:k,details:x.error})}})}function q(t){k.size=t.size;if(l){e.FileAccess.chunk({file:t,chunkSize:l},function(w){if(w.success){var x=w.value,u=x.length;o=Array(u);for(var v=0;v';function m(){return b.getElementById(j.id+"_flash")}function l(){if(p++>5000){o({success:false});return}if(!g[j.id]){setTimeout(l,1)}}l();n=i=null;j.bind("Flash:Init",function(){var r={},q;m().setFileFilters(j.settings.filters,j.settings.multi_selection);if(g[j.id]){return}g[j.id]=true;j.bind("UploadFile",function(s,u){var v=s.settings,t=j.settings.resize||{};m().uploadFile(r[u.id],v.url,{name:u.target_name||u.name,mime:d.mimeTypes[u.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream",chunk_size:v.chunk_size,width:t.width,height:t.height,quality:t.quality,multipart:v.multipart,multipart_params:v.multipart_params||{},file_data_name:v.file_data_name,format:/\.(jpg|jpeg)$/i.test(u.name)?"jpg":"png",headers:v.headers,urlstream_upload:v.urlstream_upload})});j.bind("Flash:UploadProcess",function(t,s){var u=t.getFile(r[s.id]);if(u.status!=d.FAILED){u.loaded=s.loaded;u.size=s.size;t.trigger("UploadProgress",u)}});j.bind("Flash:UploadChunkComplete",function(s,u){var v,t=s.getFile(r[u.id]);v={chunk:u.chunk,chunks:u.chunks,response:u.text};s.trigger("ChunkUploaded",t,v);if(t.status!=d.FAILED){m().uploadNextChunk()}if(u.chunk==u.chunks-1){t.status=d.DONE;s.trigger("FileUploaded",t,{response:u.text})}});j.bind("Flash:SelectFiles",function(s,v){var u,t,w=[],x;for(t=0;t';if(d.ua.ie){q=b.createElement("div");l.appendChild(q);q.outerHTML=p;q=null}else{l.innerHTML=p}}());function n(){return b.getElementById(m.id+"_flash")}function j(){if(h++>5000){o({success:false});return}if(g[m.id]===false){setTimeout(j,1)}}j();k=l=null;m.bind("Destroy",function(p){var q;d.removeAllEvents(b.body,p.id);delete g[p.id];delete a[p.id];q=b.getElementById(p.id+"_flash_container");if(q){i.removeChild(q)}});m.bind("Flash:Init",function(){var r={},q;try{n().setFileFilters(m.settings.filters,m.settings.multi_selection)}catch(p){o({success:false});return}if(g[m.id]){return}g[m.id]=true;m.bind("UploadFile",function(s,u){var v=s.settings,t=m.settings.resize||{};n().uploadFile(r[u.id],v.url,{name:u.target_name||u.name,mime:d.mimeTypes[u.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream",chunk_size:v.chunk_size,width:t.width,height:t.height,quality:t.quality,multipart:v.multipart,multipart_params:v.multipart_params||{},file_data_name:v.file_data_name,format:/\.(jpg|jpeg)$/i.test(u.name)?"jpg":"png",headers:v.headers,urlstream_upload:v.urlstream_upload})});m.bind("CancelUpload",function(){n().cancelUpload()});m.bind("Flash:UploadProcess",function(t,s){var u=t.getFile(r[s.id]);if(u.status!=d.FAILED){u.loaded=s.loaded;u.size=s.size;t.trigger("UploadProgress",u)}});m.bind("Flash:UploadChunkComplete",function(s,u){var v,t=s.getFile(r[u.id]);v={chunk:u.chunk,chunks:u.chunks,response:u.text};s.trigger("ChunkUploaded",t,v);if(t.status!==d.FAILED&&s.state!==d.STOPPED){n().uploadNextChunk()}if(u.chunk==u.chunks-1){t.status=d.DONE;s.trigger("FileUploaded",t,{response:u.text})}});m.bind("Flash:SelectFiles",function(s,v){var u,t,w=[],x;for(t=0;tvz?f6sj{X$$E5 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 M+N$(_02cX}Gs;*UVE_OC literal 18746 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":"gt","&":"amp",'"':"quot","'":"#39"},m=/[<>&\"\']/g,b,c=window.setTimeout,d={},e;function h(){this.returnValue=false}function k(){this.cancelBubble=true}(function(o){var p=o.split(/,/),q,s,r;for(q=0;q0){g.each(p,function(s,r){o[r]=s})}});return o},cleanName:function(o){var p,q;q=[/[\300-\306]/g,"A",/[\340-\346]/g,"a",/\307/g,"C",/\347/g,"c",/[\310-\313]/g,"E",/[\350-\353]/g,"e",/[\314-\317]/g,"I",/[\354-\357]/g,"i",/\321/g,"N",/\361/g,"n",/[\322-\330]/g,"O",/[\362-\370]/g,"o",/[\331-\334]/g,"U",/[\371-\374]/g,"u"];for(p=0;p0?"&":"?")+q}return p},each:function(r,s){var q,p,o;if(r){q=r.length;if(q===b){for(p in r){if(r.hasOwnProperty(p)){if(s(r[p],p)===false){return}}}}else{for(o=0;o1073741824){return Math.round(o/1073741824,1)+" GB"}if(o>1048576){return Math.round(o/1048576,1)+" MB"}if(o>1024){return Math.round(o/1024,1)+" KB"}return o+" b"},getPos:function(p,t){var u=0,s=0,w,v=document,q,r;p=p;t=t||v.body;function o(C){var A,B,z=0,D=0;if(C){B=C.getBoundingClientRect();A=v.compatMode==="CSS1Compat"?v.documentElement:v.body;z=B.left+A.scrollLeft;D=B.top+A.scrollTop}return{x:z,y:D}}if(p&&p.getBoundingClientRect&&(navigator.userAgent.indexOf("MSIE")>0&&v.documentMode!==8)){q=o(p);r=o(t);return{x:q.x-r.x,y:q.y-r.y}}w=p;while(w&&w!=t&&w.nodeType){u+=w.offsetLeft||0;s+=w.offsetTop||0;w=w.offsetParent}w=p.parentNode;while(w&&w!=t&&w.nodeType){u-=w.scrollLeft||0;s-=w.scrollTop||0;w=w.parentNode}return{x:u,y:s}},getSize:function(o){return{w:o.offsetWidth||o.clientWidth,h:o.offsetHeight||o.clientHeight}},parseSize:function(o){var p;if(typeof(o)=="string"){o=/^([0-9]+)([mgk]?)$/.exec(o.toLowerCase().replace(/[^0-9mkg]/g,""));p=o[2];o=+o[1];if(p=="g"){o*=1073741824}if(p=="m"){o*=1048576}if(p=="k"){o*=1024}}return o},xmlEncode:function(o){return o?(""+o).replace(m,function(p){return a[p]?"&"+a[p]+";":p}):o},toArray:function(q){var p,o=[];for(p=0;p=0;p--){if(r[p].key===q||r[p].orig===u){if(t.detachEvent){t.detachEvent("on"+o,r[p].func)}else{if(t.removeEventListener){t.removeEventListener(o,r[p].func,false)}}r[p].orig=null;r[p].func=null;r.splice(p,1);if(u!==b){break}}}if(!r.length){delete d[t[e]][o]}if(g.isEmptyObj(d[t[e]])){delete d[t[e]];try{delete t[e]}catch(s){t[e]=b}}},removeAllEvents:function(p){var o=arguments[1];if(p[e]===b||!p[e]){return}g.each(d[p[e]],function(r,q){g.removeEvent(p,q,o)})}};g.Uploader=function(r){var p={},u,t=[],q;u=new g.QueueProgress();r=g.extend({chunk_size:0,multipart:true,multi_selection:true,file_data_name:"file",filters:[]},r);function s(){var w,x=0,v;if(this.state==g.STARTED){for(v=0;v0?Math.ceil(u.uploaded/t.length*100):0}else{u.bytesPerSec=Math.ceil(u.loaded/((+new Date()-q||1)/1000));u.percent=u.size>0?Math.ceil(u.loaded/u.size*100):0}}g.extend(this,{state:g.STOPPED,runtime:"",features:{},files:t,settings:r,total:u,id:g.guid(),init:function(){var A=this,B,x,w,z=0,y;if(typeof(r.preinit)=="function"){r.preinit(A)}else{g.each(r.preinit,function(D,C){A.bind(C,D)})}r.page_url=r.page_url||document.location.pathname.replace(/\/[^\/]+$/g,"/");if(!/^(\w+:\/\/|\/)/.test(r.url)){r.url=r.page_url+r.url}r.chunk_size=g.parseSize(r.chunk_size);r.max_file_size=g.parseSize(r.max_file_size);A.bind("FilesAdded",function(C,F){var E,D,H=0,I,G=r.filters;if(G&&G.length){I=[];g.each(G,function(J){g.each(J.extensions.split(/,/),function(K){if(/^\s*\*\s*$/.test(K)){I.push("\\.*")}else{I.push("\\."+K.replace(new RegExp("["+("/^$.*+?|()[]{}\\".replace(/./g,"\\$&"))+"]","g"),"\\$&"))}})});I=new RegExp(I.join("|")+"$","i")}for(E=0;Er.max_file_size){C.trigger("Error",{code:g.FILE_SIZE_ERROR,message:g.translate("File size error."),file:D});continue}t.push(D);H++}if(H){c(function(){A.trigger("QueueChanged");A.refresh()},1)}else{return false}});if(r.unique_names){A.bind("UploadFile",function(C,D){var F=D.name.match(/\.([^.]+)$/),E="tmp";if(F){E=F[1]}D.target_name=D.id+"."+E})}A.bind("UploadProgress",function(C,D){D.percent=D.size>0?Math.ceil(D.loaded/D.size*100):100;o()});A.bind("StateChanged",function(C){if(C.state==g.STARTED){q=(+new Date())}else{if(C.state==g.STOPPED){for(B=C.files.length-1;B>=0;B--){if(C.files[B].status==g.UPLOADING){C.files[B].status=g.QUEUED;o()}}}}});A.bind("QueueChanged",o);A.bind("Error",function(C,D){if(D.file){D.file.status=g.FAILED;o();if(C.state==g.STARTED){c(function(){s.call(A)},1)}}});A.bind("FileUploaded",function(C,D){D.status=g.DONE;D.loaded=D.size;C.trigger("UploadProgress",D);c(function(){s.call(A)},1)});if(r.runtimes){x=[];y=r.runtimes.split(/\s?,\s?/);for(B=0;B=0;v--){if(t[v].id===w){return t[v]}}},removeFile:function(w){var v;for(v=t.length-1;v>=0;v--){if(t[v].id===w.id){return this.splice(v,1)[0]}}},splice:function(x,v){var w;w=t.splice(x===b?0:x,v===b?t.length:v);this.trigger("FilesRemoved",w);this.trigger("QueueChanged");return w},trigger:function(w){var y=p[w.toLowerCase()],x,v;if(y){v=Array.prototype.slice.call(arguments);v[0]=this;for(x=0;x=0;w--){if(y[w].func===x){y.splice(w,1);break}}}else{y=[]}if(!y.length){delete p[v]}}},unbindAll:function(){var v=this;g.each(p,function(x,w){v.unbind(w)})},destroy:function(){this.trigger("Destroy");this.unbindAll()}})};g.File=function(r,p,q){var o=this;o.id=r;o.name=p;o.size=q;o.loaded=0;o.percent=0;o.status=0};g.Runtime=function(){this.getFeatures=function(){};this.init=function(o,p){}};g.QueueProgress=function(){var o=this;o.size=0;o.loaded=0;o.uploaded=0;o.failed=0;o.queued=0;o.percent=0;o.bytesPerSec=0;o.reset=function(){o.size=o.loaded=o.uploaded=o.failed=o.queued=o.percent=o.bytesPerSec=0}};g.runtimes={};window.plupload=g})();(function(){if(window.google&&google.gears){return}var a=null;if(typeof GearsFactory!="undefined"){a=new GearsFactory()}else{try{a=new ActiveXObject("Gears.Factory");if(a.getBuildInfo().indexOf("ie_mobile")!=-1){a.privateSetGlobalObject(this)}}catch(b){if((typeof navigator.mimeTypes!="undefined")&&navigator.mimeTypes["application/x-googlegears"]){a=document.createElement("object");a.style.display="none";a.width=0;a.height=0;a.type="application/x-googlegears";document.documentElement.appendChild(a)}}}if(!a){return}if(!window.google){window.google={}}if(!google.gears){google.gears={factory:a}}})();(function(e,b,c,d){var f={};function a(h,k,m){var g,j,l,o;j=google.gears.factory.create("beta.canvas");try{j.decode(h);if(!k.width){k.width=j.width}if(!k.height){k.height=j.height}o=Math.min(width/j.width,height/j.height);if(o<1||(o===1&&m==="image/jpeg")){j.resize(Math.round(j.width*o),Math.round(j.height*o));if(k.quality){return j.encode(m,{quality:k.quality/100})}return j.encode(m)}}catch(n){}return h}c.runtimes.Gears=c.addRuntime("gears",{getFeatures:function(){return{dragdrop:true,jpgresize:true,pngresize:true,chunks:true,progress:true,multipart:true}},init:function(j,l){var k;if(!e.google||!google.gears){return l({success:false})}try{k=google.gears.factory.create("beta.desktop")}catch(h){return l({success:false})}function g(o){var n,m,p=[],q;for(m=0;m0;t=Math.ceil(p.size/q);if(!m){q=p.size;t=1}function n(){var z,B,w=s.settings.multipart,v=0,A={name:p.target_name||p.name},x=s.settings.url;function y(D){var C,I="----pluploadboundary"+c.guid(),F="--",H="\r\n",E,G;if(w){z.setRequestHeader("Content-Type","multipart/form-data; boundary="+I);C=google.gears.factory.create("beta.blobbuilder");c.each(c.extend(A,s.settings.multipart_params),function(K,J){C.append(F+I+H+'Content-Disposition: form-data; name="'+J+'"'+H+H);C.append(K+H)});G=c.mimeTypes[p.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream";C.append(F+I+H+'Content-Disposition: form-data; name="'+s.settings.file_data_name+'"; filename="'+p.name+'"'+H+"Content-Type: "+G+H+H);C.append(D);C.append(H+F+I+F+H);E=C.getAsBlob();v=E.length-D.length;D=E}z.send(D)}if(p.status==c.DONE||p.status==c.FAILED||s.state==c.STOPPED){return}if(m){A.chunk=u;A.chunks=t}B=Math.min(q,p.size-(u*q));if(!w){x=c.buildUrl(s.settings.url,A)}z=google.gears.factory.create("beta.httprequest");z.open("POST",x);if(!w){z.setRequestHeader("Content-Disposition",'attachment; filename="'+p.name+'"');z.setRequestHeader("Content-Type","application/octet-stream")}c.each(s.settings.headers,function(D,C){z.setRequestHeader(C,D)});z.upload.onprogress=function(C){p.loaded=r+C.loaded-v;s.trigger("UploadProgress",p)};z.onreadystatechange=function(){var C;if(z.readyState==4){if(z.status==200){C={chunk:u,chunks:t,response:z.responseText,status:z.status};s.trigger("ChunkUploaded",p,C);if(C.cancelled){p.status=c.FAILED;return}r+=B;if(++u>=t){p.status=c.DONE;s.trigger("FileUploaded",p,{response:z.responseText,status:z.status})}else{n()}}else{s.trigger("Error",{code:c.HTTP_ERROR,message:c.translate("HTTP Error."),file:p,chunk:u,chunks:t,status:z.status})}}};if(u3){l.pop()}while(l.length<4){l.push(0)}m=s.split(".");while(m.length>4){m.pop()}do{u=parseInt(m[q],10);n=parseInt(l[q],10);q++}while(q8?"":0.01});o.className="plupload silverlight";if(p.settings.container){k=b.getElementById(p.settings.container);if(d.getStyle(k,"position")==="static"){k.style.position="relative"}}k.appendChild(o);for(l=0;l';function j(){return b.getElementById(p.id+"_silverlight").content.Upload}p.bind("Silverlight:Init",function(){var r,s={};if(h[p.id]){return}h[p.id]=true;p.bind("Silverlight:StartSelectFiles",function(t){r=[]});p.bind("Silverlight:SelectFile",function(t,w,u,v){var x;x=d.guid();s[x]=w;s[w]=x;r.push(new d.File(x,u,v))});p.bind("Silverlight:SelectSuccessful",function(){if(r.length){p.trigger("FilesAdded",r)}});p.bind("Silverlight:UploadChunkError",function(t,w,u,x,v){p.trigger("Error",{code:d.IO_ERROR,message:"IO Error.",details:v,file:t.getFile(s[w])})});p.bind("Silverlight:UploadFileProgress",function(t,x,u,w){var v=t.getFile(s[x]);if(v.status!=d.FAILED){v.size=w;v.loaded=u;t.trigger("UploadProgress",v)}});p.bind("Refresh",function(t){var u,v,w;u=b.getElementById(t.settings.browse_button);if(u){v=d.getPos(u,b.getElementById(t.settings.container));w=d.getSize(u);d.extend(b.getElementById(t.id+"_silverlight_container").style,{top:v.y+"px",left:v.x+"px",width:w.w+"px",height:w.h+"px"})}});p.bind("Silverlight:UploadChunkSuccessful",function(t,w,u,z,y){var x,v=t.getFile(s[w]);x={chunk:u,chunks:z,response:y};t.trigger("ChunkUploaded",v,x);if(v.status!=d.FAILED){j().UploadNextChunk()}if(u==z-1){v.status=d.DONE;t.trigger("FileUploaded",v,{response:y})}});p.bind("Silverlight:UploadSuccessful",function(t,w,u){var v=t.getFile(s[w]);v.status=d.DONE;t.trigger("FileUploaded",v,{response:u})});p.bind("FilesRemoved",function(t,v){var u;for(u=0;u';function n(){return b.getElementById(k.id+"_flash")}function m(){if(q++>5000){p({success:false});return}if(!g[k.id]){setTimeout(m,1)}}m();o=j=null;k.bind("Flash:Init",function(){var s={},r;n().setFileFilters(k.settings.filters,k.settings.multi_selection);if(g[k.id]){return}g[k.id]=true;k.bind("UploadFile",function(t,v){var w=t.settings,u=k.settings.resize||{};n().uploadFile(s[v.id],w.url,{name:v.target_name||v.name,mime:d.mimeTypes[v.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream",chunk_size:w.chunk_size,width:u.width,height:u.height,quality:u.quality,multipart:w.multipart,multipart_params:w.multipart_params||{},file_data_name:w.file_data_name,format:/\.(jpg|jpeg)$/i.test(v.name)?"jpg":"png",headers:w.headers,urlstream_upload:w.urlstream_upload})});k.bind("Flash:UploadProcess",function(u,t){var v=u.getFile(s[t.id]);if(v.status!=d.FAILED){v.loaded=t.loaded;v.size=t.size;u.trigger("UploadProgress",v)}});k.bind("Flash:UploadChunkComplete",function(t,v){var w,u=t.getFile(s[v.id]);w={chunk:v.chunk,chunks:v.chunks,response:v.text};t.trigger("ChunkUploaded",u,w);if(u.status!=d.FAILED){n().uploadNextChunk()}if(v.chunk==v.chunks-1){u.status=d.DONE;t.trigger("FileUploaded",u,{response:v.text})}});k.bind("Flash:SelectFiles",function(t,w){var v,u,x=[],y;for(u=0;u0){r(++t,v)}else{k.status=a.DONE;n.trigger("FileUploaded",k,{response:x.value.body,status:w});if(w>=400){n.trigger("Error",{code:a.HTTP_ERROR,message:a.translate("HTTP Error."),file:k,status:w})}}}else{n.trigger("Error",{code:a.GENERIC_ERROR,message:a.translate("Generic Error."),file:k,details:x.error})}})}function q(t){k.size=t.size;if(l){e.FileAccess.chunk({file:t,chunkSize:l},function(w){if(w.success){var x=w.value,u=x.length;o=Array(u);for(var v=0;v";F.scrollTop=100;D=k.getElementById(p.id+"_html5");if(v.features.triggerDialog){j.extend(D.style,{position:"absolute",width:"100%",height:"100%"})}else{j.extend(D.style,{cssFloat:"right",styleFloat:"right"})}D.onchange=function(){o(this.files);this.value=""};E=k.getElementById(v.settings.browse_button);if(E){var x=v.settings.browse_button_hover,z=v.settings.browse_button_active,w=v.features.triggerDialog?E:F;if(x){j.addEvent(w,"mouseover",function(){j.addClass(E,x)},v.id);j.addEvent(w,"mouseout",function(){j.removeClass(E,x)},v.id)}if(z){j.addEvent(w,"mousedown",function(){j.addClass(E,z)},v.id);j.addEvent(k.body,"mouseup",function(){j.removeClass(E,z)},v.id)}if(v.features.triggerDialog){j.addEvent(E,"click",function(y){k.getElementById(v.id+"_html5").click();y.preventDefault()},v.id)}}});p.bind("PostInit",function(){var r=k.getElementById(p.settings.drop_element);if(r){if(g){j.addEvent(r,"dragenter",function(v){var u,s,t;u=k.getElementById(p.id+"_drop");if(!u){u=k.createElement("input");u.setAttribute("type","file");u.setAttribute("id",p.id+"_drop");u.setAttribute("multiple","multiple");j.addEvent(u,"change",function(){o(this.files);j.removeEvent(u,"change",p.id);u.parentNode.removeChild(u)},p.id);r.appendChild(u)}s=j.getPos(r,k.getElementById(p.settings.container));t=j.getSize(r);if(j.getStyle(r,"position")==="static"){j.extend(r.style,{position:"relative"})}j.extend(u.style,{position:"absolute",display:"block",top:0,left:0,width:t.w+"px",height:t.h+"px",opacity:0})},p.id);return}j.addEvent(r,"dragover",function(s){s.preventDefault()},p.id);j.addEvent(r,"drop",function(t){var s=t.dataTransfer;if(s&&s.files){o(s.files)}t.preventDefault()},p.id)}});p.bind("Refresh",function(r){var s,t,u,w,v;s=k.getElementById(p.settings.browse_button);if(s){t=j.getPos(s,k.getElementById(r.settings.container));u=j.getSize(s);w=k.getElementById(p.id+"_html5_container");j.extend(w.style,{top:t.y+"px",left:t.x+"px",width:u.w+"px",height:u.h+"px"});if(p.features.triggerDialog){if(j.getStyle(s,"position")==="static"){j.extend(s.style,{position:"relative"})}v=parseInt(j.getStyle(s,"z-index"),10);if(isNaN(v)){v=0}j.extend(s.style,{zIndex:v});j.extend(w.style,{zIndex:v-1})}}});p.bind("UploadFile",function(r,t){var u=r.settings,x,s;function w(z,C,y){var A;if(File.prototype.slice){try{z.slice();return z.slice(C,y)}catch(B){return z.slice(C,y-C)}}else{if(A=File.prototype.webkitSlice||File.prototype.mozSlice){return A.call(z,C,y)}else{return null}}}function v(z){var C=0,B=0,y=("FileReader" in h)?new FileReader:null,D=typeof(z)==="string";function A(){var I,M,K,L,H,J,F,E=r.settings.url;function G(W){var T=0,U=new XMLHttpRequest,X=U.upload,N="----pluploadboundary"+j.guid(),O,P="--",V="\r\n",R="";if(X){X.onprogress=function(Y){t.loaded=Math.min(t.size,B+Y.loaded-T);r.trigger("UploadProgress",t)}}U.onreadystatechange=function(){var Y,aa;if(U.readyState==4){try{Y=U.status}catch(Z){Y=0}if(Y>=400){r.trigger("Error",{code:j.HTTP_ERROR,message:j.translate("HTTP Error."),file:t,status:Y})}else{if(K){aa={chunk:C,chunks:K,response:U.responseText,status:Y};r.trigger("ChunkUploaded",t,aa);B+=J;if(aa.cancelled){t.status=j.FAILED;return}t.loaded=Math.min(t.size,(C+1)*H)}else{t.loaded=t.size}r.trigger("UploadProgress",t);W=I=O=R=null;if(!K||++C>=K){t.status=j.DONE;r.trigger("FileUploaded",t,{response:U.responseText,status:Y})}else{A()}}U=null}};if(r.settings.multipart&&n.multipart){L.name=t.target_name||t.name;U.open("post",E,true);j.each(r.settings.headers,function(Z,Y){U.setRequestHeader(Y,Z)});if(!D&&!!h.FormData){O=new FormData();j.each(j.extend(L,r.settings.multipart_params),function(Z,Y){O.append(Y,Z)});O.append(r.settings.file_data_name,W);U.send(O);return}if(D){U.setRequestHeader("Content-Type","multipart/form-data; boundary="+N);j.each(j.extend(L,r.settings.multipart_params),function(Z,Y){R+=P+N+V+'Content-Disposition: form-data; name="'+Y+'"'+V+V;R+=unescape(encodeURIComponent(Z))+V});F=j.mimeTypes[t.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream";R+=P+N+V+'Content-Disposition: form-data; name="'+r.settings.file_data_name+'"; filename="'+unescape(encodeURIComponent(t.name))+'"'+V+"Content-Type: "+F+V+V+W+V+P+N+P+V;T=R.length-W.length;W=R;if(U.sendAsBinary){U.sendAsBinary(W)}else{if(n.canSendBinary){var S=new Uint8Array(W.length);for(var Q=0;Qu.chunk_size&&(n.chunks||typeof(z)=="string")){H=u.chunk_size;K=Math.ceil(t.size/H);J=Math.min(H,t.size-(C*H));if(typeof(z)=="string"){I=z.substring(C*H,C*H+J)}else{I=w(z,C*H,C*H+J)}L.chunk=C;L.chunks=K}else{J=t.size;I=z}if(y&&n.cantSendBlobInFormData&&n.chunks&&r.settings.chunk_size){y.onload=function(){D=true;G(y.result)};y.readAsBinaryString(I)}else{G(I)}}A()}x=c[t.id];if(n.jpgresize&&r.settings.resize&&/\.(png|jpg|jpeg)$/i.test(t.name)){d.call(r,t,r.settings.resize,/\.png$/i.test(t.name)?"image/png":"image/jpeg",function(y){if(y.success){t.size=y.data.length;v(y.data)}else{v(x)}})}else{if(!n.chunks&&n.jpgresize){l(x,v)}else{v(x)}}});p.bind("Destroy",function(r){var t,u,s=k.body,v={inputContainer:r.id+"_html5_container",inputFile:r.id+"_html5",browseButton:r.settings.browse_button,dropElm:r.settings.drop_element};for(t in v){u=k.getElementById(v[t]);if(u){j.removeAllEvents(u,r.id)}}j.removeAllEvents(k.body,r.id);if(r.settings.container){s=k.getElementById(r.settings.container)}s.removeChild(k.getElementById(v.inputContainer))});q({success:true})}});function b(){var q=false,o;function r(t,v){var s=q?0:-8*(v-1),w=0,u;for(u=0;u>Math.abs(s+v*8))&255)}n(x,t,w)}return{II:function(s){if(s===e){return q}else{q=s}},init:function(s){q=false;o=s},SEGMENT:function(s,u,t){switch(arguments.length){case 1:return o.substr(s,o.length-s-1);case 2:return o.substr(s,u);case 3:n(t,s,u);break;default:return o}},BYTE:function(s){return r(s,1)},SHORT:function(s){return r(s,2)},LONG:function(s,t){if(t===e){return r(s,4)}else{p(s,t,4)}},SLONG:function(s){var t=r(s,4);return(t>2147483647?t-4294967296:t)},STRING:function(s,t){var u="";for(t+=s;s=65488&&p<=65495){n+=2;continue}if(p===65498||p===65497){break}q=r.SHORT(n+2)+2;if(u[p]&&r.STRING(n+4,u[p].signature.length)===u[p].signature){t.push({hex:p,app:u[p].app.toUpperCase(),name:u[p].name.toUpperCase(),start:n,length:q,segment:r.SEGMENT(n,q)})}n+=q}r.init(null);return{headers:t,restore:function(y){r.init(y);var w=new f(y);if(!w.headers){return false}for(var x=w.headers.length;x>0;x--){var z=w.headers[x-1];r.SEGMENT(z.start,z.length,"")}w.purge();n=r.SHORT(2)==65504?4+r.SHORT(4):2;for(var x=0,v=t.length;x=z.length){break}}},purge:function(){t=[];r.init(null)}}}function a(){var q,n,o={},t;q=new b();n={tiff:{274:"Orientation",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer"},exif:{36864:"ExifVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",36867:"DateTimeOriginal",33434:"ExposureTime",33437:"FNumber",34855:"ISOSpeedRatings",37377:"ShutterSpeedValue",37378:"ApertureValue",37383:"MeteringMode",37384:"LightSource",37385:"Flash",41986:"ExposureMode",41987:"WhiteBalance",41990:"SceneCaptureType",41988:"DigitalZoomRatio",41992:"Contrast",41993:"Saturation",41994:"Sharpness"},gps:{0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude"}};t={ColorSpace:{1:"sRGB",0:"Uncalibrated"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{1:"Daylight",2:"Fliorescent",3:"Tungsten",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 -5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire.",1:"Flash fired.",5:"Strobe return light not detected.",7:"Strobe return light detected.",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},ExposureMode:{0:"Auto exposure",1:"Manual exposure",2:"Auto bracket"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},GPSLatitudeRef:{N:"North latitude",S:"South latitude"},GPSLongitudeRef:{E:"East longitude",W:"West longitude"}};function p(u,C){var w=q.SHORT(u),z,F,G,B,A,v,x,D,E=[],y={};for(z=0;z4){x=q.LONG(x)+o.tiffHeader}for(F=0;F4){x=q.LONG(x)+o.tiffHeader}y[G]=q.STRING(x,A-1);continue;case 3:if(A>2){x=q.LONG(x)+o.tiffHeader}for(F=0;F1){x=q.LONG(x)+o.tiffHeader}for(F=0;F