forked from mailru/FileAPI
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFileAPI.min.js
69 lines (69 loc) · 30.1 KB
/
FileAPI.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/**!
* FileAPI — a set of tools for working with files
*
* @author RubaXa <[email protected]>
* @build lib/canvas-to-blob lib/FileAPI.core lib/FileAPI.Image lib/FileAPI.Form lib/FileAPI.XHR lib/FileAPI.Flash
*/
(function(a){var k=a.HTMLCanvasElement&&a.HTMLCanvasElement.prototype,g;if(g=a.Blob)try{g=Boolean(new Blob)}catch(q){g=!1}var l=g;if(g=l)if(g=a.Uint8Array)try{g=100===(new Blob([new Uint8Array(100)])).size}catch(f){g=!1}var c=g,d=a.BlobBuilder||a.WebKitBlobBuilder||a.MozBlobBuilder||a.MSBlobBuilder,m=(l||d)&&a.atob&&a.ArrayBuffer&&a.Uint8Array&&function(a){var j,f,g,m;j=0<=a.split(",")[0].indexOf("base64")?atob(a.split(",")[1]):decodeURIComponent(a.split(",")[1]);f=new ArrayBuffer(j.length);g=new Uint8Array(f);
for(m=0;m<j.length;m+=1)g[m]=j.charCodeAt(m);a=a.split(",")[0].split(":")[1].split(";")[0];if(l)return new Blob([c?g:f],{type:a});g=new d;g.append(f);return g.getBlob(a)};a.HTMLCanvasElement&&!k.toBlob&&(k.mozGetAsFile?k.toBlob=function(a,c){a(this.mozGetAsFile("blob",c))}:k.toDataURL&&m&&(k.toBlob=function(a,c){a(m(this.toDataURL(c)))}));"function"===typeof define&&define.amd?define(function(){return m}):a.dataURLtoBlob=m})(this);
(function(a,k){function g(b,D,e){if(b)if(j(b))for(var a=0,c=b.length;a<c;a++)a in b&&D.call(e,b[a],a,b);else for(a in b)b.hasOwnProperty(a)&&D.call(e,b[a],a,b)}function q(b,e,a){if(b){var c=h.uid(b);C[c]||(C[c]={});g(e.split(/\s+/),function(e){t?t.event.add(b,e,a):(C[c][e]||(C[c][e]=[]),C[c][e].push(a),b.addEventListener?b.addEventListener(e,a,!1):b.attachEvent?b.attachEvent("on"+e,a):b["on"+e]=a)})}}function l(b,e,a){if(b){var c=h.uid(b),d=C[c]||{};g(e.split(/\s+/),function(e){if(t)t.event.remove(b,
e,a);else{for(var D=d[e]||[],c=D.length;c--;)if(D[c]===a){D.splice(c,1);break}b.addEventListener?b.removeEventListener(e,a,!1):b.detachEvent?b.detachEvent("on"+e,a):b["on"+e]=null}})}}function f(b,e,a){q(b,e,function Q(c){l(b,e,Q);a(c)})}function c(b,e,a,c,d){b={type:a.type||a,target:b,result:c};h.extend(b,d);e(b)}function d(b,e,a,d){if(h.isFile(b)&&u&&u.prototype["readAs"+a]){var j=new u;q(j,L,function R(a){var d=a.type;"progress"==d?c(b,e,a,a.target.result,{loaded:a.loaded,total:a.total}):"loadend"==
d?(l(j,L,R),j=null):c(b,e,a,a.target.result)});try{if(d)j["readAs"+a](d,b);else j["readAs"+a](b)}catch(v){c(b,e,"error",k,{error:v.toString()})}}else c(b,e,"error",k,{error:"filreader_not_support_"+a})}function m(b){var e;b.getAsEntry?e=b.getAsEntry():b.webkitGetAsEntry&&(e=b.webkitGetAsEntry());return e}function p(b,e){if(b)if(b.isFile)b.file(function(b){e(!1,[b])},function(){e("entry_file")});else if(b.isDirectory){var a=[];b.createReader().readEntries(function(b){h.afor(b,function(b,c){p(c,function(c,
d){c||(a=a.concat(d));b?b():e(!1,a)})})},function(){e("directory_reader")})}else p(m(b),e);else e("empty_entry")}function j(b){return"object"==typeof b&&b&&"length"in b}function A(b){b.target||(b.target=a.event&&a.event.srcElement||v);3===b.target.nodeType&&(b.target=event.target.parentNode);return b}var w=1,E=function(){},s=navigator.userAgent,x=a.createObjectURL&&a||a.URL&&URL.revokeObjectURL&&URL||a.webkitURL&&webkitURL,r=a.File,u=a.FileReader,n=a.FormData,t=a.jQuery,e=!(!r||!(u&&a.Uint8Array||
n))&&!(/safari\//.test(s)&&/windows/i.test(s)),s=e&&"withCredentials"in new XMLHttpRequest,n=e&&!!Blob&&!(!Blob.prototype.webkitSlice&&!Blob.prototype.mozSlice&&!Blob.prototype.slice),v=a.document,y=a.dataURLtoBlob,N={},F=/img/i,S=/canvas/i,T=/img|canvas/,H=/input/i,U=/^data:[^,]+,/,z=Math.pow,V=Math.round,I=Number,J=function(b){return V(b*this)},G=new I(1024),O=new I(z(G,2)),K=new I(z(G,3)),z=new I(z(G,4)),C={},P=[],L="abort progress error load loadend",W="status statusText readyState response responseXML responseText responseBody".split(" "),
h={version:"1.2.3",cors:!1,debug:!1,pingUrl:!1,staticPath:"./",flashUrl:0,flashImageUrl:0,chunkSize:0,chunkUploadRetry:0,chunkNetworkDownRetryTimeout:2E3,KB:(G.from=J,G),MB:(O.from=J,O),GB:(K.from=J,K),TB:(z.from=J,z),expando:"fileapi"+(new Date).getTime(),uid:function(b){return b?b[h.expando]=b[h.expando]||h.uid():(++w,h.expando+w)},log:function(){h.debug&&(a.console&&console.log)&&(console.log.apply?console.log.apply(console,arguments):console.log([].join.call(arguments," ")))},getXHR:function(){var b;
if(a.XMLHttpRequest)b=new XMLHttpRequest;else if(a.ActiveXObject)try{b=new ActiveXObject("MSXML2.XMLHttp.3.0")}catch(e){}return b},isArray:j,support:{dnd:s&&"ondrop"in v.createElement("div"),cors:s,html5:e,chunked:n,dataURI:!0},event:{on:q,off:l,one:f,fix:A},throttle:function(b,e){var c,d;return function(){d=arguments;c||(b.apply(a,d),c=setTimeout(function(){c=0;b.apply(a,d)},e))}},F:function(){},parseJSON:function(b){return a.JSON&&JSON.parse?JSON.parse(b):(new Function("return ("+b.replace(/([\r\n])/g,
"\\$1")+");"))()},trim:function(b){b=String(b);return b.trim?b.trim():b.replace(/^\s+|\s+$/g,"")},defer:function(){var b=[],e,a,c={resolve:function(d,j){c.resolve=E;a=d||!1;for(e=j;j=b.shift();)j(a,e)},then:function(c){a!==k?c(a,e):b.push(c)}};return c},queue:function(b){var e=0,a=0,c=!1,d=!1,j={inc:function(){a++},next:function(){e++;setTimeout(j.check,0)},check:function(){e>=a&&!c&&j.end()},isFail:function(){return c},fail:function(){!c&&b(c=!0)},end:function(){d||(d=!0,b())}};return j},each:g,
afor:function(b,e){var a=0,c=b.length;j(b)&&c--?function B(){e(c!=a&&B,b[a],a++)}():e(!1)},extend:function(b){g(arguments,function(e){g(e,function(e,a){b[a]=e})});return b},isFile:function(b){return e&&b&&b instanceof r},isCanvas:function(b){return b&&S.test(b.nodeName)},getFilesFilter:function(b){return(b="string"==typeof b?b:b.getAttribute&&b.getAttribute("accept")||"")?RegExp("("+b.replace(/\./g,"\\.").replace(/,/g,"|")+")$","i"):/./},readAsDataURL:function(b,e){h.isCanvas(b)?c(b,e,"load",h.toDataURL(b)):
d(b,e,"DataURL")},readAsBinaryString:function(b,e){u&&u.prototype.readAsBinaryString?d(b,e,"BinaryString"):d(b,function(b){if("load"==b.type)try{b.result=h.toBinaryString(b.result)}catch(a){b.type="error",b.message=a.toString()}e(b)},"DataURL")},readAsArrayBuffer:function(b,e){d(b,e,"ArrayBuffer")},readAsText:function(b,e,a){a||(a=e,e="utf-8");d(b,a,"Text",e)},toDataURL:function(b){if("string"==typeof b)return b;if(b.toDataURL)return b.toDataURL("image/png")},toBinaryString:function(b){return a.atob(h.toDataURL(b).replace(U,
""))},readAsImage:function(b,e,a){if(h.isFile(b))if(x){var d=x.createObjectURL(b);d===k?c(b,e,"error"):h.readAsImage(d,e,a)}else h.readAsDataURL(b,function(d){"load"==d.type?h.readAsImage(d.result,e,a):(a||"error"==d.type)&&c(b,e,d,null,{loaded:d.loaded,total:d.total})});else h.isCanvas(b)?c(b,e,"load",b):F.test(b.nodeName)?b.complete?c(b,e,"load",b):f(b,"error abort load",function B(a){"load"==a.type&&x&&x.revokeObjectURL(b.src);l(b,"error abort load",B);c(b,e,a,b)}):b.iframe?c(b,e,{type:"error"}):
(d=new Image,d.src=b.dataURL||b,h.readAsImage(d,e,a))},checkFileObj:function(b){var e={};"object"==typeof b?e=b:e.name=(b+"").split(/(\\|\/)/g).pop();e.type===k&&(e.type=e.name.split(".").pop());g(N,function(b,a){b.test(e.type)&&(e.type=a+"/"+e.type)});return e},getDropFiles:function(b,e){var a=[],c=(b.originalEvent||b||"").dataTransfer||{},d=j(c.items)&&c.items[0]&&m(c.items[0]),v=h.queue(function(){e(a)});g((d?c.items:c.files)||[],function(b){v.inc();if(d)p(b,function(b,e){!b&&a.push.apply(a,e);
v.next()});else{var e=function(e){e&&a.push(b);v.next()};if(!b.type&&0==b.size%4096&&102400>=b.size)if(u)try{var c=new u;f(c,L,function(b){b="error"!=b.type;e(b);b&&c.abort()});c.readAsDataURL(b)}catch(j){e(!1)}else e(null);else e(!0)}});v.check()},getFiles:function(b,a,c){var d=[];if(c)return h.filterFiles(h.getFiles(b),a,c),null;b.jquery&&(b.each(function(){d=d.concat(h.getFiles(this))}),b=d,d=[]);"string"==typeof a&&(a=h.getFilesFilter(a));b.originalEvent?b=A(b.originalEvent):b.srcElement&&(b=
A(b));b.dataTransfer?b=b.dataTransfer:b.target&&(b=b.target);b.files?d=b.files:!e&&H.test(b&&b.tagName)?h.trim(b.value)&&(d=[h.checkFileObj(b.value)],d[0].blob=b,d[0].iframe=!0):j(b)&&(d=b);!a&&H.test(b&&b.tagName)&&(a=h.getFilesFilter(b));return h.filter(d,function(b){return!a||a.test(b.name)})},getInfo:function(b,e){var a={},c=P.concat();h.isFile(b)?function B(){var d=c.shift();d?d.test(b.type)?d(b,function(b,c){b?e(b):(h.extend(a,c),B())}):B():e(!1,a)}():e("not_support",a)},addInfoReader:function(b,
e){e.test=function(e){return b.test(e)};P.push(e)},addMime:function(b,e){N[b]=RegExp("("+e.replace(/,/g,"|")+")$","i")},filter:function(b,e){for(var a=[],c=0,d=b.length,j;c<d;c++)c in b&&(j=b[c],e.call(j,j,c,b)&&a.push(j));return a},filterFiles:function(b,e,a){if(b.length){var c=b.concat(),d,j=[],v=[];(function M(){c.length?(d=c.shift(),h.getInfo(d,function(b,a){(e(d,b?!1:a)?j:v).push(d);M()})):a(j,v)})()}else a([],b)},upload:function(b){b=h.extend({prepare:h.F,beforeupload:h.F,upload:h.F,fileupload:h.F,
fileprogress:h.F,filecomplete:h.F,progress:h.F,complete:h.F,chunkSize:h.chunkSize,chunkUpoloadRetry:h.chunkUploadRetry},b);b.imageAutoOrientation&&!b.imageTransform&&(b.imageTransform={rotate:"auto"});var e=new h.XHR(b),a=this._getFilesDataArray(b.files),c=0,d=0,j=0,v=1;g(a,function(b){c+=b.size});e.files=[];g(a,function(b){e.files.push(b.file)});e.total=c;e.loaded=0;b.beforeupload(e,b);(function M(){var p=a.shift(),f=this,y=p&&p.file,m=!1,l={};g(b,function(b,e){b&&"object"===typeof b&&(b=h.extend({},
b));l[e]=b});"abort"!=e.statusText&&p?(e.currentFile=y,b.prepare(y,l),this._getFormData(l,p,function(a){d||b.upload(e,b);var w=new h.XHR(h.extend({},l,{upload:function(){b.fileupload(y,w,l)},progress:function(a){m||(j=d+=c*v*(a.loaded/a.total)-j+0.5|0,p.total=a.total,p.loaded=a.loaded,b.fileprogress(a,y,w,l),b.progress({type:a.type,total:c,loaded:e.loaded=d,lengthComputable:!0},y,w,l))},complete:function(a){g(W,function(b){e[b]=w[b]});m=!0;p.loaded=p.total;e.loaded=d+=d-j+(c*v+0.5)|0;b.filecomplete(a,
w,y,l);M.call(f)}}));v=p.size/c;e.abort=function(){w.abort()};w.send(a)})):b.complete(200==e.status||201==e.status?!1:e.statusText||"error",e,b)}).call(this);return e},_getFilesDataArray:function(b){var e=[],a={};if(H.test(b&&b.tagName)){var c=h.getFiles(b);a[b.name||"file"]=null!==b.getAttribute("multiple")?c:c[0]}else j(b)&&H.test(b[0]&&b[0].tagName)?g(b,function(b){a[b.name||"file"]=h.getFiles(b)}):a=b;g(a,function B(b,a){j(b)?g(b,function(b){B(b,a)}):b&&b.name&&e.push({name:a,file:b,size:b.size,
total:b.size,loaded:0})});return e},_getFormData:function(b,e,a){var c=e.file,d=e.name,j=c.name,v=c.type;e=h.support.transform&&b.imageTransform;var p=new h.Form,f=h.queue(function(){a(p)}),l=e&&(0<parseInt(e.maxWidth||e.minWidth||e.width,10)||e.rotate);h.Image&&e&&(/image/.test(c.type)||T.test(c.nodeType))?(f.inc(),l&&(e=[e]),h.Image.transform(c,e,b.imageAutoOrientation,function(e,a){l&&!e?(!y&&!h.flashEngine&&(a[0]=h.toBinaryString(a[0]),p.multipart=!0),p.append(d,a[0],j,v)):(e||(g(a,function(b,
e){!y&&!h.flashEngine&&(b=h.toBinaryString(b),p.multipart=!0);p.append(d+"["+e+"]",b,j,v)}),d+="[original]"),(e||b.imageOriginal)&&p.append(d,c,j,v));f.next()})):p.append(d,c,j);g(b.data,function X(b,e){"object"==typeof b?g(b,function(b,a){X(b,e+"["+a+"]")}):p.append(e,b)});f.check()},reset:function(b){var e,a;t?(a=t(b).clone(!0).insertBefore(b).val("")[0],t(b).remove()):(e=b.parentNode,a=e.insertBefore(b.cloneNode(!0),b),a.value="",e.removeChild(b),g(C[h.uid(b)],function(e,c){g(e,function(e){l(b,
c,e);q(a,c,e)})}));return a},load:function(b,e){var a=h.getXHR();a?(a.open("GET",b,!0),a.overrideMimeType&&a.overrideMimeType("text/plain; charset=x-user-defined"),q(a,"progress",function(b){b.lengthComputable&&e({type:b.type,loaded:b.loaded,total:b.total},a)}),a.onreadystatechange=function(){if(4==a.readyState)if(a.onreadystatechange=null,200==a.status){b=b.split("/");var c={name:b[b.length-1],size:a.getResponseHeader("Content-Length"),type:a.getResponseHeader("Content-Type")};c.dataURL="data:"+
c.type+";base64,"+h.encode64(a.responseBody||a.responseText);e({type:"load",result:c})}else e({type:"error"})},a.send(null)):e({type:"error"});return a},encode64:function(b){var e="",a=0;for("string"!==typeof b&&(b=String(b));a<b.length;){var c=b.charCodeAt(a++)&255,d=b.charCodeAt(a++)&255,j=b.charCodeAt(a++)&255,p=c>>2,c=(c&3)<<4|d>>4;isNaN(d)?d=j=64:(d=(d&15)<<2|j>>6,j=isNaN(j)?64:j&63);e+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(p)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(c)+
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(d)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(j)}return e}};g({image:"png,jpg,jpeg,bmp,gif,ico,tif,tiff,tga,pcx,cbz,cbr",audio:"m4a,flac,aac,rm,mpa,wav,wma,ogg,mp3,mp2,m3u,mod,amf,dmf,dsm,far,gdm,imf,it,m15,med,okt,s3m,stm,sfx,ult,uni,xm,sid,ac3,dts,cue,aif,aiff,wpl,ape,mac,mpc,mpp,shn,wv,nsf,spc,gym,adplug,adx,dsp,adp,ymf,ast,afc,hps,xsp",video:"m4v,3gp,nsv,ts,ty,strm,rm,rmvb,m3u,ifo,mov,qt,divx,xvid,bivx,vob,nrg,img,iso,pva,wmv,asf,asx,ogm,m2v,avi,bin,dat,dvr-ms,mpg,mpeg,mp4,mkv,avc,vp3,svq3,nuv,viv,dv,fli,flv,wpl"},
function(b,e){h.addMime(e,b)});h.addInfoReader(/^image/,function(b,e){if(!b.__dimensions){var a=b.__dimensions=h.defer();h.readAsImage(b,function(b){var e=b.target;a.resolve("load"==b.type?!1:"error",{width:e.width,height:e.height})})}b.__dimensions.then(e)});h.event.dnd=function(b,e,a){var c,d;a||(a=e,e=h.F);u?(q(b,"dragenter dragleave dragover",function(b){for(var a=((b.originalEvent||b||"").dataTransfer||{}).types,j=a&&a.length;j--;)~a[j].indexOf("File")&&(b.preventDefault(),d!==b.type&&(d=b.type,
"dragleave"!=d&&e.call(b.currentTarget,!0,b),clearTimeout(c),c=setTimeout(function(){e.call(b.currentTarget,"dragleave"!=d,b)},50)))}),q(b,"drop",function(b){b.preventDefault();d=0;e.call(b.currentTarget,!1,b);h.getDropFiles(b,function(e){a.call(b.currentTarget,e,b)})})):h.log("Drag'n'Drop -- not supported")};t&&!t.fn.dnd&&(t.fn.dnd=function(b,e){return this.each(function(){h.event.dnd(this,b,e)})});a.FileAPI=h.extend(h,a.FileAPI);h.flashUrl||(h.flashUrl=h.staticPath+"FileAPI.flash.swf");h.flashImageUrl||
(h.flashImageUrl=h.staticPath+"FileAPI.flash.image.swf")})(window);
(function(a,k,g){function q(a,c){if(!(this instanceof q))return new q(a);this.file=a;this.better=!c;this.matrix={sx:0,sy:0,sw:0,sh:0,dx:0,dy:0,dw:0,dh:0,resize:0,deg:0}}var l=Math.min,f=Math.round,c=!1,d={8:270,3:180,6:90};try{c=-1<k.createElement("canvas").toDataURL("image/png").indexOf("data:image/png")}catch(m){}q.prototype={constructor:q,set:function(c){a.extend(this.matrix,c);return this},crop:function(a,c,d,f){d===g&&(d=a,f=c,a=c=0);return this.set({sx:a,sy:c,sw:d,sh:f||d})},resize:function(a,
c,d){"string"==typeof c&&(d=c,c=a);return this.set({dw:a,dh:c,resize:d})},preview:function(a,c){return this.set({dw:a,dh:c||a,resize:"preview"})},rotate:function(a){return this.set({deg:a})},_load:function(c,d){var f=this;a.readAsImage(c,function(a){d.call(f,"load"!=a.type,a.result)})},_apply:function(a,c){var d=k.createElement("canvas"),f=this.getMatrix(a),g=d.getContext("2d"),l=f.deg,m=f.dw,r=f.dh,u=a.width,n=a.height,t,e=a;if(this.better)for(;2<Math.min(u/m,n/r);)u=~~(u/2+0.5),n=~~(n/2+0.5),t=
k.createElement("canvas"),t.width=u,t.height=n,e!==a?(t.getContext("2d").drawImage(e,0,0,e.width,e.height,0,0,u,n),e=t):(e=t,e.getContext("2d").drawImage(a,f.sx,f.sy,f.sw,f.sh,0,0,u,n),f.sx=f.sy=f.sw=f.sh=0);d.width=!(l%180)?m:r;d.height=l%180?m:r;g.rotate(l*Math.PI/180);g.drawImage(e,f.sx,f.sy,f.sw||e.width,f.sh||e.height,180==l||270==l?-m:0,90==l||180==l?-r:0,m,r);c.call(this,!1,d)},getMatrix:function(c){var d=a.extend({},this.matrix),g=d.sw=d.sw||c.width;c=d.sh=d.sh||c.height;var m=d.dw=d.dw||
d.sw,k=d.dh=d.dh||d.sh,s=g/c,q=m/k,r=d.resize;if("preview"==r){if(m!=g||k!=c)if(q>=s?(s=g,r=s/q):(r=c,s=r*q),s!=g||r!=c)d.sx=~~((g-s)/2),d.sy=~~((c-r)/2),g=s,c=r}else r&&("min"==r?(m=f(s<q?l(g,m):k*s),k=f(s<q?m/s:l(c,k))):(m=f(s>=q?l(g,m):k*s),k=f(s>=q?m/s:l(c,k))));d.sw=g;d.sh=c;d.dw=m;d.dh=k;return d},_trans:function(a){this._load(this.file,function(c,d){c?a(c):this._apply(d,a)})},get:function(c){if(a.support.transform){var f=this;"auto"==f.matrix.deg?a.getInfo(this.file,function(a,g){f.matrix.deg=
d[g&&g.exif&&g.exif.Orientation]||0;f._trans(c)}):f._trans(c)}else c("not_support")},toData:function(a){this.get(a)}};q.transform=function(c,d,f,m){a.getInfo(c,function(l,k){var x={},r=a.queue(function(a){m(a,x)});l?r.fail():a.each(d,function(a,d){if(!r.isFail()){var j=q(k.nodeType?k:c);if("function"==typeof a)a(k,j);else if(a.width)j[a.preview?"preview":"resize"](a.width,a.height,a.type);else a.maxWidth&&(k.width>a.maxWidth||k.height>a.maxHeight)&&j.resize(a.maxWidth,a.maxHeight,"max");a.rotate===
g&&f&&(a.rotate="auto");j.rotate(a.rotate);r.inc();j.toData(function(a,c){a?r.fail():(x[d]=c,r.next())})}})})};a.support.canvas=a.support.transform=c;a.Image=q})(FileAPI,document);
(function(a,k,g){var q=k.encodeURIComponent,l=k.FormData;k=function(){this.items=[]};k.prototype={append:function(a,c,d,g){this.items.push({name:a,blob:c&&c.blob||c,file:d||c.name,type:g||c.type})},each:function(a){for(var c=0,d=this.items.length;c<d;c++)a.call(this,this.items[c])},toData:function(f,c){c._chunked=a.support.chunked&&0<c.chunkSize&&1==a.filter(this.items,function(a){return a.file}).length;a.support.html5?this.multipart?(a.log("FileAPI.Form.toMultipartData"),this.toMultipartData(f)):
c._chunked?(a.log("FileAPI.Form.toPlainData"),this.toPlainData(f)):(a.log("FileAPI.Form.toFormData"),this.toFormData(f)):(a.log("FileAPI.Form.toHtmlData"),this.toHtmlData(f))},_to:function(f,c,d,g){var l=a.queue(function(){c(f)});this.each(function(a){d(a,f,l,g)});l.check()},toHtmlData:function(f){this._to(g.createDocumentFragment(),f,function(c,d){var f=c.blob,l;c.file?(a.reset(f),f.name=c.name,d.appendChild(f)):(l=g.createElement("input"),l.name=c.name,l.type="hidden",l.value=f,d.appendChild(l))})},
toPlainData:function(a){this._to({},a,function(a,d,f){a.file&&(d.type=a.file);a.blob.toBlob?(f.inc(),a.blob.toBlob(function(g){d.name=a.name;d.file=g;d.size=g.length;d.type=a.type;f.next()},"image/png")):a.file?(d.name=a.blob.name,d.file=a.blob,d.size=a.blob.size,d.type=a.type):(d.params||(d.params=[]),d.params.push(encodeURIComponent(a.name)+"="+encodeURIComponent(a.blob)));d.start=-1;d.end=-1;d.retry=0})},toFormData:function(a){this._to(new l,a,function(a,d,f){a.file&&d.append("_"+a.name,a.file);
a.blob&&a.blob.toBlob?(f.inc(),a.blob.toBlob(function(g){d.append(a.name,g,a.file);f.next()},"image/png")):a.file?d.append(a.name,a.blob,a.file):d.append(a.name,a.blob)})},toMultipartData:function(f){this._to([],f,function(a,d,f,g){d.push("--_"+g+('\r\nContent-Disposition: form-data; name="'+a.name+'"'+(a.file?'; filename="'+q(a.file)+'"':"")+(a.file?"\r\nContent-Type: "+(a.type||"application/octet-stream"):"")+"\r\n\r\n"+(a.file?a.blob:q(a.blob))+"\r\n"))},a.expando)}};a.Form=k})(FileAPI,window,
document);
(function(a,k){var g=function(){},q=function(a){this.uid=k.uid();this.xhr={abort:g,getResponseHeader:g,getAllResponseHeaders:g};this.options=a};q.prototype={status:0,statusText:"",getResponseHeader:function(a){return this.xhr.getResponseHeader(a)},getAllResponseHeaders:function(){return this.xhr.getAllResponseHeaders()||{}},end:function(l,f){var c=this,d=c.options;c.end=c.abort=g;c.status=l;f&&(c.statusText=f);k.log("xhr.end:",l,f);d.complete(200==l||201==l?!1:c.statusText||"unknown",c);c.xhr&&c.xhr.node&&
setTimeout(function(){var d=c.xhr.node;try{d.parentNode.removeChild(d)}catch(f){}try{delete a[c.uid]}catch(j){}a[c.uid]=c.xhr.node=null},9)},abort:function(){this.end(0,"abort");this.xhr&&this.xhr.abort()},send:function(a){var f=this,c=this.options;a.toData(function(a){c.upload(c,f);f._send.call(f,c,a)},c)},_send:function(g,f){var c=this,d,m=c.uid,p=g.url;k.log("XHR._send:",f);p+=(~p.indexOf("?")?"&":"?")+k.uid();f.nodeName?(g.upload(g,c),d=document.createElement("div"),d.innerHTML='<form target="'+
m+'" action="'+p+'" method="POST" enctype="multipart/form-data" style="position: absolute; top: -1000px; overflow: hidden; width: 1px; height: 1px;"><iframe name="'+m+'" src="javascript:false;"></iframe><input value="'+m+'" name="callback" type="hidden"/></form>',c.xhr.abort=function(){var a=d.getElementsByName("iframe")[0];if(a)try{a.stop?a.stop():a.contentWindow.stop?a.contentWindow.stop():a.contentWindow.document.execCommand("Stop")}catch(c){}d=null},p=d.getElementsByTagName("form")[0],p.appendChild(f),
k.log(p.parentNode.innerHTML),document.body.appendChild(d),c.xhr.node=d,a[m]=function(a,f,g){c.readyState=4;c.responseText=g;c.end(a,f);d=null},c.readyState=2,p.submit(),p=null):(d=c.xhr=k.getXHR(),f.params&&(p+=(0>p.indexOf("?")?"?":"&")+f.params.join("&")),d.open("POST",p,!0),d.withCredential="true",(!g.headers||!g.headers["X-Requested-With"])&&d.setRequestHeader("X-Requested-With","XMLHttpRequest"),k.each(g.headers,function(a,c){d.setRequestHeader(c,a)}),g._chunked?(d.upload&&d.upload.addEventListener("progress",
function(a){g.progress({type:a.type,total:f.size,loaded:f.start+a.loaded,totalSize:f.size},c,g)},!1),d.onreadystatechange=function(){c.status=d.status;c.statusText=d.statusText;c.readyState=d.readyState;if(4==d.readyState){for(var a in{"":1,XML:1,Text:1,Body:1})c["response"+a]=d["response"+a];d.onreadystatechange=null;!d.status||0<d.status-201?++f.retry<=g.chunkUploadRetry&&(!d.status||500==d.status||416==d.status)?(a=d.status?0:k.chunkNetworkDownRetryTimeout,f.end=f.start-1,setTimeout(function(){c._send(g,
f)},a)):c.end(d.status):(f.retry=0,f.end==f.size-1?c.end(d.status):setTimeout(function(){c._send(g,f)},0));d=null}},f.start=f.end+1,f.end=Math.min(f.start+g.chunkSize,f.size)-1,(m="slice")in f.file||(m="mozSlice")in f.file||(m="webkitSlice"),d.setRequestHeader("Content-Range","bytes "+f.start+"-"+f.end+"/"+f.size),d.setRequestHeader("Content-Disposition","attachment; filename="+encodeURIComponent(f.name)),d.setRequestHeader("Content-Type",f.type||"application/octet-stream"),m=f.file[m](f.start,f.end+
1),d.send(m),m=null):(d.upload&&d.upload.addEventListener("progress",k.throttle(function(a){g.progress(a,c,g)},100),!1),d.onreadystatechange=function(){c.status=d.status;c.statusText=d.statusText;c.readyState=d.readyState;if(4==d.readyState){for(var a in{"":1,XML:1,Text:1,Body:1})c["response"+a]=d["response"+a];d.onreadystatechange=null;c.end(d.status);d=null}},k.isArray(f)?(d.setRequestHeader("Content-Type","multipart/form-data; boundary=_"+k.expando),f=f.join("")+"--_"+k.expando+"--",d.sendAsBinary?
d.sendAsBinary(f):(m=Array.prototype.map.call(f,function(a){return a.charCodeAt(0)&255}),d.send((new Uint8Array(m)).buffer))):d.send(f)))}};k.XHR=q})(window,FileAPI);
(function(a,k,g){var q=a.support,l=k.navigator,f=l.mimeTypes,c=!1;if(l.plugins&&"object"==typeof l.plugins["Shockwave Flash"])c=l.plugins["Shockwave Flash"].description&&!(f&&f["application/x-shockwave-flash"]&&!f["application/x-shockwave-flash"].enabledPlugin);else try{c=!(!k.ActiveXObject||!new ActiveXObject("ShockwaveFlash.ShockwaveFlash"))}catch(d){a.log("ShockwaveFlash.ShockwaveFlash -- does not supported.")}q.flash=c;if(a.support.flash&&(!a.support.html5||a.cors&&!a.support.cors)){var m=function(a){return('<object id="#id#" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+
(a.width||"100%")+'" height="'+(a.height||"100%")+'"><param name="movie" value="#src#" /><param name="flashvars" value="#flashvars#" /><param name="swliveconnect" value="true" /><param name="allowscriptaccess" value="always" /><param name="allownetworking" value="all" /><param name="menu" value="false" /><param name="wmode" value="#wmode#" /><embed flashvars="#flashvars#" swliveconnect="true" allownetworking="all" allowscriptaccess="always" name="#id#" src="#src#" width="'+(a.width||"100%")+'" height="'+
(a.height||"100%")+'" menu="false" wmode="transparent" type="application/x-shockwave-flash"></embed></object>').replace(/#(\w+)#/ig,function(c,d){return a[d]})},p=function(a,c){if(a&&a.style){var d,f;for(d in c){f=c[d];"number"==typeof f&&(f+="px");try{a.style[d]=f}catch(g){}}}},j=function(e,c){a.each(c,function(a,c){var d=e[c];e[c]=function(){this.parent=d;return a.apply(this,arguments)}})},A=function(e){var c=e.wid=a.uid();n._fn[c]=e;return"FileAPI.Flash._fn."+c},w=function(a){try{n._fn[a.wid]=
null,delete n._fn[a.wid]}catch(c){}},E=function(a,c){if(!u.test(a)){if(/^\.\//.test(a)||"/"!=a.charAt(0)){var d=location.pathname,d=d.substr(0,d.lastIndexOf("/"));a=(d+"/"+a).replace("/./","/")}"//"!=a.substr(0,2)&&(a="//"+location.host+a);u.test(a)||(a=location.protocol+a)}c&&(a+=(/\?/.test(a)?"&":"?")+c);return a},s=a.uid(),x=0,r={},u=/^https?:/i,n={_fn:{},init:function(){var e=g.body&&g.body.firstChild;if(e){do if(1==e.nodeType){a.log("FlashAPI.Flash.init...");var c=g.createElement("div");p(c,
{top:1,right:1,width:5,height:5,position:"absolute"});e.parentNode.insertBefore(c,e);n.publish(c,s);return}while(e=e.nextSibling)}10>x&&setTimeout(n.init,50*++x)},publish:function(e,c){e.innerHTML=m({id:c,src:E(a.flashUrl,"r="+a.version),wmode:"transparent",flashvars:"callback=FileAPI.Flash.event&flashId="+c+"&storeKey="+navigator.userAgent.match(/\d/ig).join("")+"_"+a.version+(n.isReady||(a.pingUrl?"&ping="+a.pingUrl:""))})},ready:function(){n.ready=a.F;n.isReady=!0;n.patch();a.event.on(g,"mouseover",
n.mouseover);a.event.on(g,"click",function(a){n.mouseover(a)&&(a.preventDefault?a.preventDefault():a.returnValue=!0)})},getWrapper:function(a){do if(/js-fileapi-wrapper/.test(a.className))return a;while((a=a.parentNode)&&a!==g.body)},mouseover:function(e){e=a.event.fix(e).target;if(/input/i.test(e.nodeName)&&"file"==e.type){var c=e.getAttribute(s);if("i"==c||"r"==c)return!1;if("p"!=c){e.setAttribute(s,"i");var c=g.createElement("div"),d=n.getWrapper(e);if(!d){a.log("flash.mouseover.error: js-fileapi-wrapper not found");
return}p(c,{top:0,left:0,width:e.offsetWidth+100,height:e.offsetHeight+100,zIndex:"1000000",position:"absolute"});d.appendChild(c);n.publish(c,a.uid());e.setAttribute(s,"p")}return!0}},event:function(e){var c=e.type;if("ready"==c){try{n.getInput(e.flashId).setAttribute(s,"r")}catch(d){}n.ready();setTimeout(function(){n.mouseenter(e)},50);return!0}"ping"===c?a.log("(flash -> js).ping:",[e.status,e.savedStatus],e.error):"log"===c?a.log("(flash -> js).log:",e.target):c in n&&setTimeout(function(){a.log("Flash.event."+
e.type+":",e);n[c](e)},1)},mouseenter:function(a){var c=n.getInput(a.flashId);c&&(n.cmd(a,"multiple",null!==c.getAttribute("multiple")),n.cmd(a,"accept",(c.getAttribute("accept")||"*").replace(/\./g,"")))},get:function(a){return g[a]||k[a]||g.embeds[a]},getInput:function(e){try{var c=n.getWrapper(n.get(e));if(c)return c.getElementsByTagName("input")[0]}catch(d){a.log('Can not find "input" by flashId:',e,d)}},select:function(e){var c=n.getInput(e.flashId),d=a.uid(c);e=e.target.files;a.each(e,function(e){a.checkFileObj(e)});
r[d]=e;g.createEvent?(d=g.createEvent("Event"),d.initEvent("change",!0,!1),c.dispatchEvent(d)):g.createEventObject&&(d=g.createEventObject(),c.fireEvent("onchange",d))},cmd:function(e,c,d,f){try{return a.log("(js -> flash)."+c+":",d),n.get(e.flashId||e).cmd(c,d)}catch(g){a.log("(js -> flash).onError:",g),f||setTimeout(function(){n.cmd(e,c,d,!0)},50)}},patch:function(){a.flashEngine=a.support.transform=!0;j(a,{getFiles:function(e,c,d){if(d)return a.filterFiles(a.getFiles(e),c,d),null;var f=a.isArray(e)?
e:r[a.uid(e.target||e.srcElement||e)];if(!f)return this.parent.apply(this,arguments);c&&(c=a.getFilesFilter(c),f=a.filter(f,function(a){return c.test(a.name)}));return f},getInfo:function(a,c){if(a&&!a.flashId)this.parent.apply(this,arguments);else{if(!a.__info){var d=a.__info=FileAPI.defer();n.cmd(a,"getFileInfo",{id:a.id,callback:A(function F(c,f){w(F);d.resolve(c,a.info=f)})})}a.__info.then(c)}}});a.support.transform=!0;FileAPI.Image&&j(FileAPI.Image.prototype,{get:function(a,c){this.set({scaleMode:c||
"noScale"});this.parent(a)},_load:function(c,d){a.log("FileAPI.Image._load:",c);if(c&&!c.flashId)this.parent.apply(this,arguments);else{var f=this;a.getInfo(c,function(a){d.call(f,a,c)})}},_apply:function(c,d){a.log("FileAPI.Image._apply:",c);if(c&&!c.flashId)this.parent.apply(this,arguments);else{var f=this.getMatrix(c.info);n.cmd(c,"imageTransform",{id:c.id,matrix:f,callback:A(function F(j,l){a.log("FileAPI.Image._apply.callback:",j);w(F);if(j)d(j);else if(!a.support.dataURI||3E4<l.length){var k=
{width:!(f.deg%180)?f.dw:f.dh,height:f.deg%180?f.dw:f.dh,scale:f.scaleMode},q=d,s=function(){try{n.get(t).setImage(l)}catch(c){a.log('flash.setImage -- can not set "base64":',c)}},r,t=a.uid(),u=g.createElement("div");for(r in k)u.setAttribute("data-img-"+r,k[r]);p(u,k);u.innerHTML=m(a.extend({id:t,src:E(a.flashImageUrl,"r="+a.uid()),wmode:"opaque",flashvars:"scale="+k.scale+"&callback="+A(function K(){w(K);setTimeout(s,99);return!0})},k));q(!1,u);u=null}else{var x=new Image;a.event.one(x,"error abort load",
function(a){d("load"!=a.type&&a.type,x);x=null});x.src="data:"+c.type+";base64,"+l}})})}},toData:function(a){var c=this.file;c&&!c.flashId?this.parent.apply(this,arguments):a.call(this,!c.info,{id:c.id,flashId:c.flashId,name:c.name,type:c.type,matrix:this.getMatrix(c.info)})}});j(a.Form.prototype,{toData:function(c){for(var d=this.items,f=d.length;f--;)if(d[f].file&&d[f].blob&&!d[f].blob.flashId)return this.parent.apply(this,arguments);a.log("flash.Form.toData");c(d)}});j(a.XHR.prototype,{_send:function(c,
d){if(d.nodeName||d.append&&a.support.html5||a.isArray(d)&&"string"===typeof d[0])return this.parent.apply(this,arguments);var f={},g={},j=this,k,l;a.each(d,function(a){a.file?(g[a.name]=a={id:a.blob.id,name:a.blob.name,matrix:a.blob.matrix,flashId:a.blob.flashId},l=a.id,k=a.flashId):f[a.name]=a.blob});a.log("flash.XHR._send:",k,l,g);j.xhr={headers:{},abort:function(){n.cmd(k,"abort",{id:l})},getResponseHeader:function(a){return this.headers[a]},getAllResponseHeaders:function(){return this.headers}};
var m=a.queue(function(){n.cmd(k,"upload",{url:E(c.url),data:f,files:g,headers:c.headers,callback:A(function z(d){var f=d.type,g=d.result;a.log("flash.upload."+f+":",d);if("progress"==f)d.loaded=Math.min(d.loaded,d.total),d.lengthComputable=!0,c.progress(d);else if("complete"==f)w(z),"string"==typeof g&&(j.responseText=g.replace(/%22/g,'"').replace(/%5c/g,"\\").replace(/%26/g,"&").replace(/%25/g,"%")),j.end(d.status||200);else if("abort"==f||"error"==f)j.end(d.status||0,d.message),w(z)})})});a.each(g,
function(c){m.inc();a.getInfo(c,m.next)});m.check()}})}};a.Flash=n;var t=new Image;a.event.one(t,"error load",function(){a.support.dataURI=!(1!=t.width||1!=t.height);t=null;n.init()});t.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw=="}})(FileAPI,window,document);"undefined"!==typeof ajs&&ajs.loaded&&ajs.loaded("{fileapi}FileAPI.min");"function"===typeof define&&define.amd&&define("FileAPI",[],function(){return window.FileAPI||{}});