2014-02-27 21:01:16 +01:00
/ * *
* mOxie - multi - runtime File API & XMLHttpRequest L2 Polyfill
2015-10-11 01:50:25 +02:00
* v1 . 3.4
2014-02-27 21:01:16 +01:00
*
* Copyright 2013 , Moxiecode Systems AB
* Released under GPL License .
*
* License : http : //www.plupload.com/license
* Contributing : http : //www.plupload.com/contributing
*
2015-10-11 01:50:25 +02:00
* Date : 2015 - 07 - 18
2014-02-27 21:01:16 +01:00
* /
2015-10-11 01:50:25 +02:00
! function ( e , t ) { "use strict" ; function n ( e , t ) { for ( var n , i = [ ] , r = 0 ; r < e . length ; ++ r ) { if ( n = s [ e [ r ] ] || o ( e [ r ] ) , ! n ) throw "module definition dependecy not found: " + e [ r ] ; i . push ( n ) } t . apply ( null , i ) } function i ( e , i , r ) { if ( "string" != typeof e ) throw "invalid module definition, module id must be defined and be a string" ; if ( i === t ) throw "invalid module definition, dependencies must be specified" ; if ( r === t ) throw "invalid module definition, definition function must be specified" ; n ( i , function ( ) { s [ e ] = r . apply ( null , arguments ) } ) } function r ( e ) { return ! ! s [ e ] } function o ( t ) { for ( var n = e , i = t . split ( /[.\/]/ ) , r = 0 ; r < i . length ; ++ r ) { if ( ! n [ i [ r ] ] ) return ; n = n [ i [ r ] ] } return n } function a ( n ) { for ( var i = 0 ; i < n . length ; i ++ ) { for ( var r = e , o = n [ i ] , a = o . split ( /[.\/]/ ) , u = 0 ; u < a . length - 1 ; ++ u ) r [ a [ u ] ] === t && ( r [ a [ u ] ] = { } ) , r = r [ a [ u ] ] ; r [ a [ a . length - 1 ] ] = s [ o ] } } var s = { } , u = "moxie/core/utils/Basic" , c = "moxie/core/utils/Env" , l = "moxie/core/I18n" , d = "moxie/core/utils/Mime" , h = "moxie/core/utils/Dom" , f = "moxie/core/Exceptions" , p = "moxie/core/EventTarget" , m = "moxie/runtime/Runtime" , g = "moxie/runtime/RuntimeClient" , v = "moxie/file/FileInput" , w = "moxie/core/utils/Encode" , y = "moxie/file/Blob" , E = "moxie/file/File" , _ = "moxie/file/FileDrop" , b = "moxie/file/FileReader" , x = "moxie/core/utils/Url" , R = "moxie/runtime/RuntimeTarget" , A = "moxie/file/FileReaderSync" , I = "moxie/xhr/FormData" , T = "moxie/xhr/XMLHttpRequest" , S = "moxie/runtime/Transporter" , O = "moxie/image/Image" , D = "moxie/runtime/html5/Runtime" , N = "moxie/core/utils/Events" , L = "moxie/runtime/html5/file/FileInput" , C = "moxie/runtime/html5/file/Blob" , M = "moxie/runtime/html5/file/FileDrop" , F = "moxie/runtime/html5/file/FileReader" , P = "moxie/runtime/html5/xhr/XMLHttpRequest" , H = "moxie/runtime/html5/utils/BinaryReader" , B = "moxie/runtime/html5/image/JPEGHeaders" , k = "moxie/runtime/html5/image/ExifParser" , U = "moxie/runtime/html5/image/JPEG" , G = "moxie/runtime/html5/image/PNG" , z = "moxie/runtime/html5/image/ImageInfo" , q = "moxie/runtime/html5/image/MegaPixel" , j = "moxie/runtime/html5/image/Image" , X = "moxie/runtime/flash/Runtime" , V = "moxie/runtime/flash/file/FileInput" , W = "moxie/runtime/flash/file/Blob" , Y = "moxie/runtime/flash/file/FileReader" , $ = "moxie/runtime/flash/file/FileReaderSync" , J = "moxie/runtime/flash/xhr/XMLHttpRequest" , Z = "moxie/runtime/flash/runtime/Transporter" , K = "moxie/runtime/flash/image/Image" , Q = "moxie/runtime/silverlight/Runtime" , ee = "moxie/runtime/silverlight/file/FileInput" , te = "moxie/runtime/silverlight/file/Blob" , ne = "moxie/runtime/silverlight/file/FileDrop" , ie = "moxie/runtime/silverlight/file/FileReader" , re = "moxie/runtime/silverlight/file/FileReaderSync" , oe = "moxie/runtime/silverlight/xhr/XMLHttpRequest" , ae = "moxie/runtime/silverlight/runtime/Transporter" , se = "moxie/runtime/silverlight/image/Image" , ue = "moxie/runtime/html4/Runtime" , ce = "moxie/runtime/html4/file/FileInput" , le = "moxie/runtime/html4/file/FileReader" , de = "moxie/runtime/html4/xhr/XMLHttpRequest" , he = "moxie/runtime/html4/image/Image" ; i ( u , [ ] , function ( ) { var e = function ( e ) { var t ; return e === t ? "undefined" : null === e ? "null" : e . nodeType ? "node" : { } . toString . call ( e ) . match ( /\s([a-z|A-Z]+)/ ) [ 1 ] . toLowerCase ( ) } , t = function ( i ) { var r ; return n ( arguments , function ( o , s ) { s > 0 && n ( o , function ( n , o ) { n !== r && ( e ( i [ o ] ) === e ( n ) && ~ a ( e ( n ) , [ "array" , "object" ] ) ? t ( i [ o ] , n ) : i [ o ] = n ) } ) } ) , i } , n = function ( t , n ) { var i , r , o , a ; if ( t ) if ( "number" === e ( t . length ) ) { for ( o = 0 , i = t . length ; i > o ; o ++ ) if ( n ( t [ o ] , o ) === ! 1 ) return } else if ( "object" === e ( t ) ) for ( r in t ) if ( t . hasOwnProperty ( r ) && n ( t [ r ] , r ) === ! 1 ) return } , i = function ( t ) { var n ; if ( ! t || "object" !== e ( t ) ) return ! 0 ; for ( n in t ) return ! 1 ; return ! 0 } , r = function ( t , n ) { function i ( r ) { "function" === e ( t [ r ] ) && t [ r ] ( function ( e ) { ++ r < o && ! e ? i ( r ) : n ( e ) } ) } var r = 0 , o = t . length ; "function" !== e ( n ) && ( n = function ( ) { } ) , t && t . length || n ( ) , i ( r ) } , o = function ( e , t ) { var i = 0 , r = e . length , o = new Array ( r ) ; n ( e , function ( e , n ) { e ( function ( e ) { if ( e ) return t ( e ) ; var a = [ ] . slice . call ( arguments ) ; a . shift ( ) , o [ n ] = a , i ++ , i === r && ( o . unshift ( null ) , t . apply ( this , o ) ) } ) } ) } , a = function ( e , t ) { if ( t ) { if ( Array . prototype . indexOf ) return Array . prototype . indexOf . call ( t , e ) ; for ( var n = 0 , i = t . length ; i > n ; n ++ ) if ( t [ n ] === e ) return n } return - 1 } , s = function ( t , n ) { var i = [ ] ; "array" !== e ( t ) && ( t = [ t ] ) , "array" !== e ( n ) && ( n = [ n ] ) ; for ( var r in t ) - 1 === a ( t [ r ] , n ) && i . push ( t [ r ] ) ; return i . length ? i :
} , abort : function ( ) { this . result = null , - 1 === e . inArray ( this . readyState , [ a . EMPTY , a . DONE ] ) && ( this . readyState === a . LOADING && ( this . readyState = a . DONE ) , this . exec ( "FileReader" , "abort" ) , this . trigger ( "abort" ) , this . trigger ( "loadend" ) ) } , destroy : function ( ) { this . abort ( ) , this . exec ( "FileReader" , "destroy" ) , this . disconnectRuntime ( ) , this . unbindAll ( ) } } ) , this . handleEventProps ( s ) , this . bind ( "Error" , function ( e , t ) { this . readyState = a . DONE , this . error = t } , 999 ) , this . bind ( "Load" , function ( e ) { this . readyState = a . DONE } , 999 ) } var s = [ "loadstart" , "progress" , "load" , "abort" , "error" , "loadend" ] ; return a . EMPTY = 0 , a . LOADING = 1 , a . DONE = 2 , a . prototype = i . instance , a } ) , i ( x , [ ] , function ( ) { var e = function ( t , n ) { for ( var i = [ "source" , "scheme" , "authority" , "userInfo" , "user" , "pass" , "host" , "port" , "relative" , "path" , "directory" , "file" , "query" , "fragment" ] , r = i . length , o = { http : 80 , https : 443 } , a = { } , s = /^(?:([^:\/?#]+):)?(?:\/\/()(?:(?:()(?:([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?))?()(?:(()(?:(?:[^?#\/]*\/)*)()(?:[^?#]*))(?:\\?([^#]*))?(?:#(.*))?)/ , u = s . exec ( t || "" ) ; r -- ; ) u [ r ] && ( a [ i [ r ] ] = u [ r ] ) ; if ( ! a . scheme ) { n && "string" != typeof n || ( n = e ( n || document . location . href ) ) , a . scheme = n . scheme , a . host = n . host , a . port = n . port ; var c = "" ; /^[^\/]/ . test ( a . path ) && ( c = n . path , c = /\/[^\/]*\.[^\/]*$/ . test ( c ) ? c . replace ( /\/[^\/]+$/ , "/" ) : c . replace ( /\/?$/ , "/" ) ) , a . path = c + ( a . path || "" ) } return a . port || ( a . port = o [ a . scheme ] || 80 ) , a . port = parseInt ( a . port , 10 ) , a . path || ( a . path = "/" ) , delete a . source , a } , t = function ( t ) { var n = { http : 80 , https : 443 } , i = "object" == typeof t ? t : e ( t ) ; return i . scheme + "://" + i . host + ( i . port !== n [ i . scheme ] ? ":" + i . port : "" ) + i . path + ( i . query ? i . query : "" ) } , n = function ( t ) { function n ( e ) { return [ e . scheme , e . host , e . port ] . join ( "/" ) } return "string" == typeof t && ( t = e ( t ) ) , n ( e ( ) ) === n ( t ) } ; return { parseUrl : e , resolveUrl : t , hasSameOrigin : n } } ) , i ( R , [ u , g , p ] , function ( e , t , n ) { function i ( ) { this . uid = e . guid ( "uid_" ) , t . call ( this ) , this . destroy = function ( ) { this . disconnectRuntime ( ) , this . unbindAll ( ) } } return i . prototype = n . instance , i } ) , i ( A , [ u , g , w ] , function ( e , t , n ) { return function ( ) { function i ( e , t ) { if ( ! t . isDetached ( ) ) { var i = this . connectRuntime ( t . ruid ) . exec . call ( this , "FileReaderSync" , "read" , e , t ) ; return this . disconnectRuntime ( ) , i } var r = t . getSource ( ) ; switch ( e ) { case "readAsBinaryString" : return r ; case "readAsDataURL" : return "data:" + t . type + ";base64," + n . btoa ( r ) ; case "readAsText" : for ( var o = "" , a = 0 , s = r . length ; s > a ; a ++ ) o += String . fromCharCode ( r [ a ] ) ; return o } } t . call ( this ) , e . extend ( this , { uid : e . guid ( "uid_" ) , readAsBinaryString : function ( e ) { return i . call ( this , "readAsBinaryString" , e ) } , readAsDataURL : function ( e ) { return i . call ( this , "readAsDataURL" , e ) } , readAsText : function ( e ) { return i . call ( this , "readAsText" , e ) } } ) } } ) , i ( I , [ f , u , y ] , function ( e , t , n ) { function i ( ) { var e , i = [ ] ; t . extend ( this , { append : function ( r , o ) { var a = this , s = t . typeOf ( o ) ; o instanceof n ? e = { name : r , value : o } : "array" === s ? ( r += "[]" , t . each ( o , function ( e ) { a . append ( r , e ) } ) ) : "object" === s ? t . each ( o , function ( e , t ) { a . append ( r + "[" + t + "]" , e ) } ) : "null" === s || "undefined" === s || "number" === s && isNaN ( o ) ? a . append ( r , "false" ) : i . push ( { name : r , value : o . toString ( ) } ) } , hasBlob : function ( ) { return ! ! this . getBlob ( ) } , getBlob : function ( ) { return e && e . value || null } , getBlobName : function ( ) { return e && e . name || null } , each : function ( n ) { t . each ( i , function ( e ) { n ( e . value , e . name ) } ) , e && n ( e . value , e . name ) } , destroy : function ( ) { e = null , i = [ ] } } ) } return i } ) , i ( T , [ u , f , p , w , x , m , R , y , A , I , c , d ] , function ( e , t , n , i , r , o , a , s , u , c , l , d ) { function h ( ) { this . uid = e . guid ( "uid_" ) } function f ( ) { function n ( e , t ) { return w . hasOwnProperty ( e ) ? 1 === arguments . length ? l . can ( "define_property" ) ? w [ e ] : v [ e ] : void ( l . can ( "define_property" ) ? w [ e ] = t : v [ e ] = t ) : void 0 } function u ( t ) { function i ( ) { B && ( B . destroy ( ) , B = null ) , s . dispatchEvent ( "loadend" ) , s = null } function r ( r ) { B . bind ( "LoadStart" , function ( e ) { n ( "readyState" , f . LOADING ) , s . dispatchEvent ( "readystatechange" ) , s . dispatchEvent ( e ) , O && s . upload . dispatchEvent ( e ) } ) , B . bind ( "Progress" , function ( e ) { n ( "readyState" ) !== f . LOADING && ( n ( "readyState" , f . LOADING ) , s . dispatchEvent ( "readystatechange" ) ) , s . dispatchEvent ( e ) } ) , B . bind ( "UploadProgress" , function ( e ) { O && s . upload . dispatchEvent ( { type : "progress" , lengthComputable : ! 1 , total : e . total , loaded : e . loaded } ) } ) , B . bind ( "Load" , function ( t ) { n ( "readyState" , f . DONE ) , n ( "status" , Number ( r . exec . call ( B , "XMLHttpRequest" , " g
set : function ( e , t ) { var n = [ ] , i , o , a ; for ( "string" == typeof t ? n . push ( t ) : n = t , i = o = 0 , a = r . length ; a > i && ( r [ i ] . name === e . toUpperCase ( ) && ( r [ i ] . segment = n [ o ] , r [ i ] . length = n [ o ] . length , o ++ ) , ! ( o >= n . length ) ) ; i ++ ) ; } , purge : function ( ) { this . headers = r = [ ] } } } } ) , i ( k , [ u , H , f ] , function ( e , n , i ) { function r ( o ) { function a ( n , r ) { var o = this , a , s , u , c , h , f , p , m , g = [ ] , v = { } , w = { 1 : "BYTE" , 7 : "UNDEFINED" , 2 : "ASCII" , 3 : "SHORT" , 4 : "LONG" , 5 : "RATIONAL" , 9 : "SLONG" , 10 : "SRATIONAL" } , y = { BYTE : 1 , UNDEFINED : 1 , ASCII : 1 , SHORT : 2 , LONG : 4 , RATIONAL : 8 , SLONG : 4 , SRATIONAL : 8 } ; for ( a = o . SHORT ( n ) , s = 0 ; a > s ; s ++ ) if ( g = [ ] , p = n + 2 + 12 * s , u = r [ o . SHORT ( p ) ] , u !== t ) { if ( c = w [ o . SHORT ( p += 2 ) ] , h = o . LONG ( p += 2 ) , f = y [ c ] , ! f ) throw new i . ImageError ( i . ImageError . INVALID _META _ERR ) ; if ( p += 4 , f * h > 4 && ( p = o . LONG ( p ) + d . tiffHeader ) , p + f * h >= this . length ( ) ) throw new i . ImageError ( i . ImageError . INVALID _META _ERR ) ; "ASCII" !== c ? ( g = o . asArray ( c , p , h ) , m = 1 == h ? g [ 0 ] : g , l . hasOwnProperty ( u ) && "object" != typeof m ? v [ u ] = l [ u ] [ m ] : v [ u ] = m ) : v [ u ] = e . trim ( o . STRING ( p , h ) . replace ( /\0$/ , "" ) ) } return v } function s ( e , t , n ) { var i , r , o , a = 0 ; if ( "string" == typeof t ) { var s = c [ e . toLowerCase ( ) ] ; for ( var u in s ) if ( s [ u ] === t ) { t = u ; break } } i = d [ e . toLowerCase ( ) + "IFD" ] , r = this . SHORT ( i ) ; for ( var l = 0 ; r > l ; l ++ ) if ( o = i + 12 * l + 2 , this . SHORT ( o ) == t ) { a = o + 8 ; break } if ( ! a ) return ! 1 ; try { this . write ( a , n , 4 ) } catch ( h ) { return ! 1 } return ! 0 } var u , c , l , d , h , f ; if ( n . call ( this , o ) , c = { tiff : { 274 : "Orientation" , 270 : "ImageDescription" , 271 : "Make" , 272 : "Model" , 305 : "Software" , 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" , 37386 : "FocalLength" , 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" } , thumb : { 513 : "JPEGInterchangeFormat" , 514 : "JPEGInterchangeFormatLength" } } , l = { 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"
return JSON . parse ( c . replace ( /^\s*<pre[^>]*>/ , "" ) . replace ( /<\/pre>\s*$/ , "" ) ) } catch ( n ) { return null } return c } , abort : function ( ) { var t = this ; l && l . contentWindow && ( l . contentWindow . stop ? l . contentWindow . stop ( ) : l . contentWindow . document . execCommand ? l . contentWindow . document . execCommand ( "Stop" ) : l . src = "about:blank" ) , e . call ( this , function ( ) { t . dispatchEvent ( "abort" ) } ) } } ) } return e . XMLHttpRequest = u } ) , i ( he , [ ue , j ] , function ( e , t ) { return e . Image = t } ) , a ( [ u , c , l , d , h , f , p , m , g , v , w , y , E , _ , b , x , R , A , I , T , S , O , N ] ) } ( this ) ; ; ( function ( e ) { "use strict" ; var t = { } , n = e . moxie . core . utils . Basic . inArray ; return function r ( e ) { var i , s ; for ( i in e ) s = typeof e [ i ] , s === "object" && ! ~ n ( i , [ "Exceptions" , "Env" , "Mime" ] ) ? r ( e [ i ] ) : s === "function" && ( t [ i ] = e [ i ] ) } ( e . moxie ) , t . Env = e . moxie . core . utils . Env , t . Mime = e . moxie . core . utils . Mime , t . Exceptions = e . moxie . core . Exceptions , e . mOxie = t , e . o || ( e . o = t ) , t } ) ( this ) ;
2014-02-27 21:01:16 +01:00
/ * *
* Plupload - multi - runtime File Uploader
2015-10-11 01:50:25 +02:00
* v2 . 1.8
2014-02-27 21:01:16 +01:00
*
* Copyright 2013 , Moxiecode Systems AB
* Released under GPL License .
*
* License : http : //www.plupload.com/license
* Contributing : http : //www.plupload.com/contributing
*
2015-10-11 01:50:25 +02:00
* Date : 2015 - 07 - 21
2014-02-27 21:01:16 +01:00
* /
2015-10-11 01:50:25 +02:00
; ( function ( e , t , n ) { function s ( e ) { function r ( e , t , r ) { var i = { chunks : "slice_blob" , jpgresize : "send_binary_string" , pngresize : "send_binary_string" , progress : "report_upload_progress" , multi _selection : "select_multiple" , dragdrop : "drag_and_drop" , drop _element : "drag_and_drop" , headers : "send_custom_headers" , urlstream _upload : "send_binary_string" , canSendBinary : "send_binary" , triggerDialog : "summon_file_dialog" } ; i [ e ] ? n [ i [ e ] ] = t : r || ( n [ e ] = t ) } var t = e . required _features , n = { } ; if ( typeof t == "string" ) o . each ( t . split ( /\s*,\s*/ ) , function ( e ) { r ( e , ! 0 ) } ) ; else if ( typeof t == "object" ) o . each ( t , function ( e , t ) { r ( t , e ) } ) ; else if ( t === ! 0 ) { e . chunk _size > 0 && ( n . slice _blob = ! 0 ) ; if ( e . resize . enabled || ! e . multipart ) n . send _binary _string = ! 0 ; o . each ( e , function ( e , t ) { r ( t , ! ! e , ! 0 ) } ) } return n } var r = e . setTimeout , i = { } , o = { VERSION : "2.1.8" , STOPPED : 1 , STARTED : 2 , QUEUED : 1 , UPLOADING : 2 , FAILED : 4 , DONE : 5 , GENERIC _ERROR : - 100 , HTTP _ERROR : - 200 , IO _ERROR : - 300 , SECURITY _ERROR : - 400 , INIT _ERROR : - 500 , FILE _SIZE _ERROR : - 600 , FILE _EXTENSION _ERROR : - 601 , FILE _DUPLICATE _ERROR : - 602 , IMAGE _FORMAT _ERROR : - 700 , MEMORY _ERROR : - 701 , IMAGE _DIMENSIONS _ERROR : - 702 , mimeTypes : t . mimes , ua : t . ua , typeOf : t . typeOf , extend : t . extend , guid : t . guid , get : function ( n ) { var r = [ ] , i ; t . typeOf ( n ) !== "array" && ( n = [ n ] ) ; var s = n . length ; while ( s -- ) i = t . get ( n [ s ] ) , i && r . push ( i ) ; return r . length ? r : null } , each : t . each , getPos : t . getPos , getSize : t . getSize , xmlEncode : function ( e ) { var t = { "<" : "lt" , ">" : "gt" , "&" : "amp" , '"' : "quot" , "'" : "#39" } , n = /[<>&\"\']/g ; return e ? ( "" + e ) . replace ( n , function ( e ) { return t [ e ] ? "&" + t [ e ] + ";" : e } ) : e } , toArray : t . toArray , inArray : t . inArray , addI18n : t . addI18n , translate : t . translate , isEmptyObj : t . isEmptyObj , hasClass : t . hasClass , addClass : t . addClass , removeClass : t . removeClass , getStyle : t . getStyle , addEvent : t . addEvent , removeEvent : t . removeEvent , removeAllEvents : t . removeAllEvents , cleanName : function ( e ) { var t , n ; n = [ /[\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 ( t = 0 ; t < n . length ; t += 2 ) e = e . replace ( n [ t ] , n [ t + 1 ] ) ; return e = e . replace ( /\s+/g , "_" ) , e = e . replace ( /[^a-z0-9_\-\.]+/gi , "" ) , e } , buildUrl : function ( e , t ) { var n = "" ; return o . each ( t , function ( e , t ) { n += ( n ? "&" : "" ) + encodeURIComponent ( t ) + "=" + encodeURIComponent ( e ) } ) , n && ( e += ( e . indexOf ( "?" ) > 0 ? "&" : "?" ) + n ) , e } , formatSize : function ( e ) { function t ( e , t ) { return Math . round ( e * Math . pow ( 10 , t ) ) / Math . pow ( 10 , t ) } if ( e === n || /\D/ . test ( e ) ) return o . translate ( "N/A" ) ; var r = Math . pow ( 1024 , 4 ) ; return e > r ? t ( e / r , 1 ) + " " + o . translate ( "tb" ) : e > ( r /= 1024 ) ? t ( e / r , 1 ) + " " + o . translate ( "gb" ) : e > ( r /= 1024 ) ? t ( e / r , 1 ) + " " + o . translate ( "mb" ) : e > 1024 ? Math . round ( e / 1024 ) + " " + o . translate ( "kb" ) : e + " " + o . translate ( "b" ) } , parseSize : t . parseSizeStr , predictRuntime : function ( e , n ) { var r , i ; return r = new o . Uploader ( e ) , i = t . Runtime . thatCan ( r . getOption ( ) . required _features , n || e . runtimes ) , r . destroy ( ) , i } , addFileFilter : function ( e , t ) { i [ e ] = t } } ; o . addFileFilter ( "mime_types" , function ( e , t , n ) { e . length && ! e . regexp . test ( t . name ) ? ( this . trigger ( "Error" , { code : o . FILE _EXTENSION _ERROR , message : o . translate ( "File extension error." ) , file : t } ) , n ( ! 1 ) ) : n ( ! 0 ) } ) , o . addFileFilter ( "max_file_size" , function ( e , t , n ) { var r ; e = o . parseSize ( e ) , t . size !== r && e && t . size > e ? ( this . trigger ( "Error" , { code : o . FILE _SIZE _ERROR , message : o . translate ( "File size error." ) , file : t } ) , n ( ! 1 ) ) : n ( ! 0 ) } ) , o . addFileFilter ( "prevent_duplicates" , function ( e , t , n ) { if ( e ) { var r = this . files . length ; while ( r -- ) if ( t . name === this . files [ r ] . name && t . size === this . files [ r ] . size ) { this . trigger ( "Error" , { code : o . FILE _DUPLICATE _ERROR , message : o . translate ( "Duplicate file error." ) , file : t } ) , n ( ! 1 ) ; return } } n ( ! 0 ) } ) , o . Uploader = function ( e ) { function g ( ) { var e , t = 0 , n ; if ( this . state == o . STARTED ) { for ( n = 0 ; n < f . length ; n ++ ) ! e && f [ n ] . status == o . QUEUED ? ( e = f [ n ] , this . trigger ( "BeforeUpload" , e ) && ( e . status = o . UPLOADING , this . trigger ( "UploadFile" , e ) ) ) : t ++ ; t == f . length && ( this . state !== o . STOPPED && ( this . state = o . STOPPED , this . trigger ( "StateChanged" ) ) , this . trigger ( "UploadComplete" , f ) ) } } function y ( e ) { e . percent = e . size > 0 ? Math . ceil ( e . loaded / e . size * 100 ) : 100 , b ( ) } function b ( ) { var e , t ; d . reset ( ) ; for ( e = 0 ; e < f . length ; e ++ ) t = f [ e ] , t . size !== n ? ( d . size += t . origSize , d . loaded += t . loaded * t . origSize / t . si