From 7b2ef4dec0cdf4ebb43a58f1d179b42e79978547 Mon Sep 17 00:00:00 2001 From: Vladimir Demidov Date: Tue, 17 May 2016 19:57:28 +0300 Subject: [PATCH] #372 flash:multipartTrailingLinebreak option --- dist/FileAPI.flash.swf | Bin 37071 -> 37156 bytes dist/FileAPI.html5.js | 36 +++++++++++++++- dist/FileAPI.html5.min.js | 6 +-- dist/FileAPI.js | 36 +++++++++++++++- dist/FileAPI.min.js | 6 +-- .../src/net/inspirit/MultipartURLLoader.as | 4 ++ .../src/ru/mail/controller/AppController.as | 40 ++++++++++++------ lib/FileAPI.core.js | 2 +- 8 files changed, 105 insertions(+), 25 deletions(-) diff --git a/dist/FileAPI.flash.swf b/dist/FileAPI.flash.swf index 738f60d46595098f0cd7f1e3fdfc77706804f4be..7c5a7ea0fb064a9df86d4464a6c28627ed9f8daf 100644 GIT binary patch literal 37156 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.split(",")[1]):decodeURIComponent(a.split(",")[1]),f=new ArrayBuffer(b.length),g=new Uint8Array(f),h=0;h0,H=a.dataURLtoBlob,I=/img/i,J=/canvas/i,K=/img|canvas/i,L=/input/i,M=/^data:[^,]+,/,N={}.toString,O=a.Math,P=function(b){return b=new a.Number(O.pow(1024,b)),b.from=function(a){return O.round(a*this)},b},Q={},R=[],S="abort progress error load loadend",T="status statusText readyState response responseXML responseText responseBody".split(" "),U="currentTarget",V="preventDefault",W=function(a){return a&&"length"in a},X=function(a,b,c){if(a)if(W(a))for(var d=0,e=a.length;e>d;d++)d in a&&b.call(c,a[d],d,a);else for(var f in a)a.hasOwnProperty(f)&&b.call(c,a[f],f,a)},Y=function(a){for(var b=arguments,c=1,d=function(b,c){a[c]=b};c=c&&!d&&f.end()},isFail:function(){return d},fail:function(){!d&&a(d=!0)},end:function(){e||(e=!0,a())}};return f},each:X,afor:function(a,b){var c=0,d=a.length;W(a)&&d--?!function e(){b(d!=c&&e,a[c],c++)}():b(!1)},extend:Y,isFile:function(a){return"[object File]"===N.call(a)},isBlob:function(a){return this.isFile(a)||"[object Blob]"===N.call(a)},isCanvas:function(a){return a&&J.test(a.nodeName)},getFilesFilter:function(a){return a="string"==typeof a?a:a.getAttribute&&a.getAttribute("accept")||"",a?new RegExp("("+a.replace(/\./g,"\\.").replace(/,/g,"|")+")$","i"):/./},readAsDataURL:function(a,b){ca.isCanvas(a)?c(a,b,"load",ca.toDataURL(a)):e(a,b,"DataURL")},readAsBinaryString:function(a,b){d("BinaryString")?e(a,b,"BinaryString"):e(a,function(a){if("load"==a.type)try{a.result=ca.toBinaryString(a.result)}catch(c){a.type="error",a.message=c.toString()}b(a)},"DataURL")},readAsArrayBuffer:function(a,b){e(a,b,"ArrayBuffer")},readAsText:function(a,b,c){c||(c=b,b="utf-8"),e(a,c,"Text",b)},toDataURL:function(a,b){return"string"==typeof a?a:a.toDataURL?a.toDataURL(b||"image/png"):void 0},toBinaryString:function(b){return a.atob(ca.toDataURL(b).replace(M,""))},readAsImage:function(a,d,e){if(ca.isBlob(a))if(w){var f=w.createObjectURL(a);f===b?c(a,d,"error"):ca.readAsImage(f,d,e)}else ca.readAsDataURL(a,function(b){"load"==b.type?ca.readAsImage(b.result,d,e):(e||"error"==b.type)&&c(a,d,b,null,{loaded:b.loaded,total:b.total})});else if(ca.isCanvas(a))c(a,d,"load",a);else if(I.test(a.nodeName))if(a.complete)c(a,d,"load",a);else{var g="error abort load";_(a,g,function i(b){"load"==b.type&&w&&w.revokeObjectURL(a.src),$(a,g,i),c(a,d,b,a)})}else if(a.iframe)c(a,d,{type:"error"});else{var h=ca.newImage(a.dataURL||a);ca.readAsImage(h,d,e)}},checkFileObj:function(a){var b={},c=ca.accept;return"object"==typeof a?b=a:b.name=(a+"").split(/\\|\//g).pop(),null==b.type&&(b.type=b.name.split(".").pop()),X(c,function(a,c){a=new RegExp(a.replace(/\s/g,"|"),"i"),(a.test(b.type)||ca.ext2mime[b.type])&&(b.type=ca.ext2mime[b.type]||c.split("/")[0]+"/"+b.type)}),b},getDropFiles:function(a,b){var c,d=[],e=[],j=l(a),k=j.files,m=j.items,n=W(m)&&m[0]&&h(m[0]),o=ca.queue(function(){b(d,e)});if(n)if(G&&k){var p,q,r=k.length;for(c=new Array(r);r--;){p=k[r];try{q=h(m[r])}catch(s){ca.log("[err] getDropFiles: ",s),q=null}g(q)&&(q.isDirectory||q.isFile&&p.name==p.name.normalize("NFC"))?c[r]=q:c[r]=p}}else c=m;else c=k;X(c||[],function(a){o.inc();try{n&&g(a)?i(a,function(a,b,c){a?ca.log("[err] getDropFiles:",a):d.push.apply(d,b),e.push.apply(e,c),o.next()}):f(a,function(b,c){b?d.push(a):a.error=c,e.push(a),o.next()})}catch(b){o.next(),ca.log("[err] getDropFiles: ",b)}}),o.check()},getFiles:function(a,b,c){var d=[];return c?(ca.filterFiles(ca.getFiles(a),b,c),null):(a.jquery&&(a.each(function(){d=d.concat(ca.getFiles(this))}),a=d,d=[]),"string"==typeof b&&(b=ca.getFilesFilter(b)),a.originalEvent?a=aa(a.originalEvent):a.srcElement&&(a=aa(a)),a.dataTransfer?a=a.dataTransfer:a.target&&(a=a.target),a.files?(d=a.files,D||(d[0].blob=a,d[0].iframe=!0)):!D&&k(a)?ca.trim(a.value)&&(d=[ca.checkFileObj(a.value)],d[0].blob=a,d[0].iframe=!0):W(a)&&(d=a),ca.filter(d,function(a){return!b||b.test(a.name)}))},getTotalSize:function(a){for(var b=0,c=a&&a.length;c--;)b+=a[c].size;return b},getInfo:function(a,b){var c={},d=R.concat();ca.isBlob(a)?!function e(){var f=d.shift();f?f.test(a.type)?f(a,function(a,d){a?b(a):(Y(c,d),e())}):e():b(!1,c)}():b("not_support_info",c)},addInfoReader:function(a,b){b.test=function(b){return a.test(b)},R.push(b)},filter:function(a,b){for(var c,d=[],e=0,f=a.length;f>e;e++)e in a&&(c=a[e],b.call(c,c,e,a)&&d.push(c));return d},filterFiles:function(a,b,c){if(a.length){var d,e=a.concat(),f=[],g=[];!function h(){e.length?(d=e.shift(),ca.getInfo(d,function(a,c){(b(d,a?!1:c)?f:g).push(d),h()})):c(f,g)}()}else c([],a)},upload:function(a){a=Y({jsonp:"callback",prepare:ca.F,beforeupload:ca.F,upload:ca.F,fileupload:ca.F,fileprogress:ca.F,filecomplete:ca.F,progress:ca.F,complete:ca.F,pause:ca.F,imageOriginal:!0,chunkSize:ca.chunkSize,chunkUploadRetry:ca.chunkUploadRetry,uploadRetry:ca.uploadRetry},a),a.imageAutoOrientation&&!a.imageTransform&&(a.imageTransform={rotate:"auto"});var b,c=new ca.XHR(a),d=this._getFilesDataArray(a.files),e=this,f=0,g=0,h=!1;return X(d,function(a){f+=a.size}),c.files=[],X(d,function(a){c.files.push(a.file)}),c.total=f,c.loaded=0,c.filesLeft=d.length,a.beforeupload(c,a),b=function(){var i=d.shift(),k=i&&i.file,l=!1,m=j(a);if(c.filesLeft=d.length,k&&k.name===ca.expando&&(k=null,ca.log("[warn] FileAPI.upload() — called without files")),("abort"!=c.statusText||c.current)&&i){if(h=!1,c.currentFile=k,k&&a.prepare(k,m)===!1)return void b.call(e);m.file=k,e._getFormData(m,i,function(h){g||a.upload(c,a);var j=new ca.XHR(Y({},m,{upload:k?function(){a.fileupload(k,j,m)}:q,progress:k?function(b){l||(l=b.loaded===b.total,a.fileprogress({type:"progress",total:i.total=b.total,loaded:i.loaded=b.loaded},k,j,m),a.progress({type:"progress",total:f,loaded:c.loaded=g+i.size*(b.loaded/b.total)||0},k,j,m))}:q,complete:function(d){X(T,function(a){c[a]=j[a]}),k&&(i.total=i.total||i.size,i.loaded=i.total,d||(this.progress(i),l=!0,g+=i.size,c.loaded=g),a.filecomplete(d,j,k,m)),setTimeout(function(){b.call(e)},0)}}));c.abort=function(a){a||(d.length=0),this.current=a,j.abort()},j.send(h)})}else{var n=200==c.status||201==c.status||204==c.status;a.complete(n?!1:c.statusText||"error",c,a),h=!0}},setTimeout(b,0),c.append=function(a,g){a=ca._getFilesDataArray([].concat(a)),X(a,function(a){f+=a.size,c.files.push(a.file),g?d.unshift(a):d.push(a)}),c.statusText="",h&&b.call(e)},c.remove=function(a){for(var b,c=d.length;c--;)d[c].file==a&&(b=d.splice(c,1),f-=b.size);return b},c},_getFilesDataArray:function(a){var b=[],c={};if(k(a)){var d=ca.getFiles(a);c[a.name||"file"]=null!==a.getAttribute("multiple")?d:d[0]}else W(a)&&k(a[0])?X(a,function(a){c[a.name||"file"]=ca.getFiles(a)}):c=a;return X(c,function e(a,c){W(a)?X(a,function(a){e(a,c)}):a&&(a.name||a.image)&&b.push({name:c,file:a,size:a.size,total:a.size,loaded:0})}),b.length||b.push({file:{name:ca.expando}}),b},_getFormData:function(a,b,c){var d=b.file,e=b.name,f=d.name,g=d.type,h=ca.support.transform&&a.imageTransform,i=new ca.Form,j=ca.queue(function(){c(i)}),k=h&&m(h),l=ca.postNameConcat;X(a.data,function n(a,b){"object"==typeof a?X(a,function(a,c){n(a,l(b,c))}):i.append(b,a)}),function o(b){b.image?(j.inc(),b.toData(function(a,c){b.file&&(c.type=b.file.type,c.quality=b.matrix.quality,f=b.file&&b.file.name),f=f||(new Date).getTime()+".png",o(c),j.next()})):ca.Image&&h&&(/^image/.test(b.type)||K.test(b.nodeName))?(j.inc(),k&&(h=[h]),ca.Image.transform(b,h,a.imageAutoOrientation,function(c,d){if(k&&!c)H||ca.flashEngine||(i.multipart=!0),i.append(e,d[0],f,h[0].type||g);else{var m=0;c||X(d,function(a,b){H||ca.flashEngine||(i.multipart=!0),h[b].postName||(m=1),i.append(h[b].postName||l(e,b),a,f,h[b].type||g)}),(c||a.imageOriginal)&&i.append(l(e,m?"original":null),b,f,g)}j.next()})):f!==ca.expando&&i.append(e,b,f)}(d),j.check()},reset:function(a,b){var c,d;return C?(d=C(a).clone(!0).insertBefore(a).val("")[0],b||C(a).remove()):(c=a.parentNode,d=c.insertBefore(a.cloneNode(!0),a),d.value="",b||c.removeChild(a),X(Q[ca.uid(a)],function(b,c){X(b,function(b){$(a,c,b),Z(d,c,b)})})),d},load:function(a,b){var c=ca.getXHR();return c?(c.open("GET",a,!0),c.overrideMimeType&&c.overrideMimeType("text/plain; charset=x-user-defined"),Z(c,"progress",function(a){a.lengthComputable&&b({type:a.type,loaded:a.loaded,total:a.total},c)}),c.onreadystatechange=function(){if(4==c.readyState)if(c.onreadystatechange=null,200==c.status){a=a.split("/");var d={name:a[a.length-1],size:c.getResponseHeader("Content-Length"),type:c.getResponseHeader("Content-Type")};d.dataURL="data:"+d.type+";base64,"+ca.encode64(c.responseBody||c.responseText),b({type:"load",result:d},c)}else b({type:"error"},c)},c.send(null)):b({type:"error"}),c},encode64:function(a){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c="",d=0;for("string"!=typeof a&&(a=String(a));d>2,k=(3&g)<<4|h>>4;isNaN(h)?e=f=64:(e=(15&h)<<2|i>>6,f=isNaN(i)?64:63&i),c+=b.charAt(j)+b.charAt(k)+b.charAt(e)+b.charAt(f)}return c}};ca.addInfoReader(/^image/,function(a,b){if(!a.__dimensions){var c=a.__dimensions=ca.defer();ca.readAsImage(a,function(a){var b=a.target;c.resolve("load"==a.type?!1:"error",{width:b.width,height:b.height}),b.src=ca.EMPTY_PNG,b=null})}a.__dimensions.then(b)}),ca.event.dnd=function(a,b,c){var d,e;c||(c=b,b=ca.F),z?(Z(a,"dragenter dragleave dragover",b.ff=b.ff||function(a){for(var c=l(a).types,f=c&&c.length,g=!1;f--;)if(~c[f].indexOf("File")){a[V](),e!==a.type&&(e=a.type,"dragleave"!=e&&b.call(a[U],!0,a),g=!0);break}g&&(clearTimeout(d),d=setTimeout(function(){b.call(a[U],"dragleave"!=e,a)},50))}),Z(a,"drop",c.ff=c.ff||function(a){a[V](),e=0,b.call(a[U],!1,a),ca.getDropFiles(a,function(b,d){c.call(a[U],b,d,a)})})):ca.log("Drag'n'Drop -- not supported")},ca.event.dnd.off=function(a,b,c){$(a,"dragenter dragleave dragover",b.ff),$(a,"drop",c.ff)},C&&!C.fn.dnd&&(C.fn.dnd=function(a,b){return this.each(function(){ca.event.dnd(this,a,b)})},C.fn.offdnd=function(a,b){return this.each(function(){ca.event.dnd.off(this,a,b)})}),a.FileAPI=Y(ca,a.FileAPI),ca.log("FileAPI: "+ca.version),ca.log("protocol: "+a.location.protocol),ca.log("doctype: ["+s.name+"] "+s.publicId+" "+s.systemId),X(r.getElementsByTagName("meta"),function(a){/x-ua-compatible/i.test(a.getAttribute("http-equiv"))&&ca.log("meta.http-equiv: "+a.getAttribute("content"))});try{n=!!console.log,o=!!console.log.apply}catch(da){}ca.flashUrl||(ca.flashUrl=ca.staticPath+"FileAPI.flash.swf"),ca.flashImageUrl||(ca.flashImageUrl=ca.staticPath+"FileAPI.flash.image.swf"),ca.flashWebcamUrl||(ca.flashWebcamUrl=ca.staticPath+"FileAPI.flash.camera.swf")}(window,void 0),function(a,b,c){"use strict";function d(b){if(b instanceof d){var c=new d(b.file);return a.extend(c.matrix,b.matrix),c}return this instanceof d?(this.file=b,this.size=b.size||100,void(this.matrix={sx:0,sy:0,sw:0,sh:0,dx:0,dy:0,dw:0,dh:0,resize:0,deg:0,quality:1,filter:0})):new d(b)}var e=Math.min,f=Math.round,g=function(){return b.createElement("canvas")},h=!1,i={8:270,3:180,6:90,7:270,4:180,5:90};try{h=g().toDataURL("image/png").indexOf("data:image/png")>-1}catch(j){}d.prototype={image:!0,constructor:d,set:function(b){return a.extend(this.matrix,b),this},crop:function(a,b,d,e){return d===c&&(d=a,e=b,a=b=0),this.set({sx:a,sy:b,sw:d,sh:e||d})},resize:function(a,b,c){return/min|max|height|width/.test(b)&&(c=b,b=a),this.set({dw:a,dh:b||a,resize:c})},preview:function(a,b){return this.resize(a,b||a,"preview")},rotate:function(a){return this.set({deg:a})},filter:function(a){return this.set({filter:a})},overlay:function(a){return this.set({overlay:a})},clone:function(){return new d(this)},_load:function(b,c){var d=this;/img|video/i.test(b.nodeName)?c.call(d,null,b):a.readAsImage(b,function(a){c.call(d,"load"!=a.type,a.result)})},_apply:function(b,c){var f,h=g(),i=this.getMatrix(b),j=h.getContext("2d"),k=b.videoWidth||b.width,l=b.videoHeight||b.height,m=i.deg,n=i.dw,o=i.dh,p=k,q=l,r=i.filter,s=b,t=i.overlay,u=a.queue(function(){b.src=a.EMPTY_PNG,c(!1,h)}),v=a.renderImageToCanvas;for(m-=360*Math.floor(m/360),b._type=this.file.type;i.multipass&&e(p/n,q/o)>2;)p=p/2+.5|0,q=q/2+.5|0,f=g(),f.width=p,f.height=q,s!==b?(v(f,s,0,0,s.width,s.height,0,0,p,q),s=f):(s=f,v(s,b,i.sx,i.sy,i.sw,i.sh,0,0,p,q),i.sx=i.sy=i.sw=i.sh=0);h.width=m%180?o:n,h.height=m%180?n:o,h.type=i.type,h.quality=i.quality,j.rotate(m*Math.PI/180),v(j.canvas,s,i.sx,i.sy,i.sw||s.width,i.sh||s.height,180==m||270==m?-n:0,90==m||180==m?-o:0,n,o),n=h.width,o=h.height,t&&a.each([].concat(t),function(b){u.inc();var c=new window.Image,d=function(){var e=0|b.x,f=0|b.y,g=b.w||c.width,h=b.h||c.height,i=b.rel;e=1==i||4==i||7==i?(n-g+e)/2:2==i||5==i||8==i?n-(g+e):e,f=3==i||4==i||5==i?(o-h+f)/2:i>=6?o-(h+f):f,a.event.off(c,"error load abort",d);try{j.globalAlpha=b.opacity||1,j.drawImage(c,e,f,g,h)}catch(k){}u.next()};a.event.on(c,"error load abort",d),c.src=b.src,c.complete&&d()}),r&&(u.inc(),d.applyFilter(h,r,u.next)),u.check()},getMatrix:function(b){var c=a.extend({},this.matrix),d=c.sw=c.sw||b.videoWidth||b.naturalWidth||b.width,g=c.sh=c.sh||b.videoHeight||b.naturalHeight||b.height,h=c.dw=c.dw||d,i=c.dh=c.dh||g,j=d/g,k=h/i,l=c.resize;if("preview"==l){if(h!=d||i!=g){var m,n;k>=j?(m=d,n=m/k):(n=g,m=n*k),(m!=d||n!=g)&&(c.sx=~~((d-m)/2),c.sy=~~((g-n)/2),d=m,g=n)}}else"height"==l?h=i*j:"width"==l?i=h/j:l&&(d>h||g>i?"min"==l?(h=f(k>j?e(d,h):i*j),i=f(k>j?h/j:e(g,i))):(h=f(j>=k?e(d,h):i*j),i=f(j>=k?h/j:e(g,i))):(h=d,i=g));return c.sw=d,c.sh=g,c.dw=h,c.dh=i,c.multipass=a.multiPassResize,c},_trans:function(b){this._load(this.file,function(c,d){if(c)b(c);else try{this._apply(d,b)}catch(c){a.log("[err] FileAPI.Image.fn._apply:",c),b(c)}})},get:function(b){if(a.support.transform){var c=this,d=c.matrix;"auto"==d.deg?a.getInfo(c.file,function(a,e){d.deg=i[e&&e.exif&&e.exif.Orientation]||0,c._trans(b)}):c._trans(b)}else b("not_support_transform");return this},toData:function(a){return this.get(a)}},d.exifOrientation=i,d.transform=function(b,e,f,g){function h(h,i){var j={},k=a.queue(function(a){g(a,j)});h?k.fail():a.each(e,function(a,e){if(!k.isFail()){var g=new d(i.nodeType?i:b),h="function"==typeof a;if(h?a(i,g):a.width?g[a.preview?"preview":"resize"](a.width,a.height,a.strategy):a.maxWidth&&(i.width>a.maxWidth||i.height>a.maxHeight)&&g.resize(a.maxWidth,a.maxHeight,"max"),a.crop){var l=a.crop;g.crop(0|l.x,0|l.y,l.w||l.width,l.h||l.height)}a.rotate===c&&f&&(a.rotate="auto"),g.set({type:g.matrix.type||a.type||b.type||"image/png"}),h||g.set({deg:a.rotate,overlay:a.overlay,filter:a.filter,quality:a.quality||1}),k.inc(),g.toData(function(a,b){a?k.fail():(j[e]=b,k.next())})}})}b.width?h(!1,b):a.getInfo(b,h)},a.each(["TOP","CENTER","BOTTOM"],function(b,c){a.each(["LEFT","CENTER","RIGHT"],function(a,e){d[b+"_"+a]=3*c+e,d[a+"_"+b]=3*c+e})}),d.toCanvas=function(a){var c=b.createElement("canvas");return c.width=a.videoWidth||a.width,c.height=a.videoHeight||a.height,c.getContext("2d").drawImage(a,0,0),c},d.fromDataURL=function(b,c,d){var e=a.newImage(b);a.extend(e,c),d(e)},d.applyFilter=function(b,c,e){"function"==typeof c?c(b,e):window.Caman&&window.Caman("IMG"==b.tagName?d.toCanvas(b):b,function(){"string"==typeof c?this[c]():a.each(c,function(a,b){this[b](a)},this),this.render(e)})},a.renderImageToCanvas=function(b,c,d,e,f,g,h,i,j,k){try{return b.getContext("2d").drawImage(c,d,e,f,g,h,i,j,k)}catch(l){throw a.log("renderImageToCanvas failed"),l}},a.support.canvas=a.support.transform=h,a.Image=d}(FileAPI,document),function(a){"use strict";a(FileAPI)}(function(a){"use strict";if(window.navigator&&window.navigator.platform&&/iP(hone|od|ad)/.test(window.navigator.platform)){var b=a.renderImageToCanvas;a.detectSubsampling=function(a){var b,c;return a.width*a.height>1048576?(b=document.createElement("canvas"),b.width=b.height=1,c=b.getContext("2d"),c.drawImage(a,-a.width+1,0),0===c.getImageData(0,0,1,1).data[3]):!1},a.detectVerticalSquash=function(a,b){var c,d,e,f,g,h=a.naturalHeight||a.height,i=document.createElement("canvas"),j=i.getContext("2d");for(b&&(h/=2),i.width=1,i.height=h,j.drawImage(a,0,0),c=j.getImageData(0,0,1,h).data,d=0,e=h,f=h;f>d;)g=c[4*(f-1)+3],0===g?e=f:d=f,f=e+d>>1;return f/h||1},a.renderImageToCanvas=function(c,d,e,f,g,h,i,j,k,l){if("image/jpeg"===d._type){var m,n,o,p,q=c.getContext("2d"),r=document.createElement("canvas"),s=1024,t=r.getContext("2d");if(r.width=s,r.height=s,q.save(),m=a.detectSubsampling(d),m&&(e/=2,f/=2,g/=2,h/=2),n=a.detectVerticalSquash(d,m),m||1!==n){for(f*=n,k=Math.ceil(s*k/g),l=Math.ceil(s*l/h/n),j=0,p=0;h>p;){for(i=0,o=0;g>o;)t.clearRect(0,0,s,s),t.drawImage(d,e,f,g,h,-o,-p,g,h),q.drawImage(r,0,0,s,s,i,j,k,l),o+=s,i+=k;p+=s,j+=l}return q.restore(),c}}return b(c,d,e,f,g,h,i,j,k,l)}}}),function(a,b){"use strict";function c(b,c,d){var e=b.blob,f=b.file;if(f){if(!e.toDataURL)return void a.readAsBinaryString(e,function(a){"load"==a.type&&c(b,a.result)});var g={"image/jpeg":".jpe?g","image/png":".png"},h=g[b.type]?b.type:"image/png",i=g[h]||".png",j=e.quality||1;f.match(new RegExp(i+"$","i"))||(f+=i.replace("?","")),b.file=f,b.type=h,!d&&e.toBlob?e.toBlob(function(a){c(b,a)},h,j):c(b,a.toBinaryString(e.toDataURL(h,j)))}else c(b,e)}var d=b.document,e=b.FormData,f=function(){this.items=[]},g=b.encodeURIComponent;f.prototype={append:function(a,b,c,d){this.items.push({name:a,blob:b&&b.blob||(void 0==b?"":b),file:b&&(c||b.name),type:b&&(d||b.type)})},each:function(a){for(var b=0,c=this.items.length;c>b;b++)a.call(this,this.items[b])},toData:function(b,c){c._chunked=a.support.chunked&&c.chunkSize>0&&1==a.filter(this.items,function(a){return a.file}).length,a.support.html5?a.formData&&!this.multipart&&e?c._chunked?(a.log("FileAPI.Form.toPlainData"),this.toPlainData(b)):(a.log("FileAPI.Form.toFormData"),this.toFormData(b)):(a.log("FileAPI.Form.toMultipartData"),this.toMultipartData(b)):(a.log("FileAPI.Form.toHtmlData"),this.toHtmlData(b))},_to:function(b,c,d,e){var f=a.queue(function(){c(b)});this.each(function(g){try{d(g,b,f,e)}catch(h){a.log("FileAPI.Form._to: "+h.message),c(h)}}),f.check()},toHtmlData:function(b){this._to(d.createDocumentFragment(),b,function(b,c){var e,f=b.blob;b.file?(a.reset(f,!0),f.name=b.name,f.disabled=!1,c.appendChild(f)):(e=d.createElement("input"),e.name=b.name,e.type="hidden",e.value=f,c.appendChild(e))})},toPlainData:function(a){this._to({},a,function(a,b,d){a.file&&(b.type=a.file),a.blob.toBlob?(d.inc(),c(a,function(a,c){b.name=a.name,b.file=c,b.size=c.length,b.type=a.type,d.next()})):a.file?(b.name=a.blob.name,b.file=a.blob,b.size=a.blob.size,b.type=a.type):(b.params||(b.params=[]),b.params.push(g(a.name)+"="+g(a.blob))),b.start=-1,b.end=b.file&&b.file.FileAPIReadPosition||-1,b.retry=0})},toFormData:function(a){this._to(new e,a,function(a,b,d){a.blob&&a.blob.toBlob?(d.inc(),c(a,function(a,c){b.append(a.name,c,a.file),d.next()})):a.file?b.append(a.name,a.blob,a.file):b.append(a.name,a.blob),a.file&&b.append("_"+a.name,a.file)})},toMultipartData:function(b){this._to([],b,function(a,b,d,e){d.inc(),c(a,function(a,c){b.push("--_"+e+('\r\nContent-Disposition: form-data; name="'+a.name+'"'+(a.file?'; filename="'+g(a.file)+'"':"")+(a.file?"\r\nContent-Type: "+(a.type||"application/octet-stream"):"")+"\r\n\r\n"+(a.file?c:g(c))+"\r\n")),d.next()},!0)},a.expando)}},a.Form=f}(FileAPI,window),function(a,b){"use strict";var c=function(){},d=a.document,e=function(a){this.uid=b.uid(),this.xhr={abort:c,getResponseHeader:c,getAllResponseHeaders:c},this.options=a},f={"":1,XML:1,Text:1,Body:1};e.prototype={status:0,statusText:"",constructor:e,getResponseHeader:function(a){return this.xhr.getResponseHeader(a)},getAllResponseHeaders:function(){return this.xhr.getAllResponseHeaders()||{}},end:function(d,e){var f=this,g=f.options;f.end=f.abort=c,f.status=d,e&&(f.statusText=e),b.log("xhr.end:",d,e),g.complete(200==d||201==d?!1:f.statusText||"unknown",f),f.xhr&&f.xhr.node&&setTimeout(function(){var b=f.xhr.node;try{b.parentNode.removeChild(b)}catch(c){}try{delete a[f.uid]}catch(c){}a[f.uid]=f.xhr.node=null},9)},abort:function(){this.end(0,"abort"),this.xhr&&(this.xhr.aborted=!0,this.xhr.abort())},send:function(a){var b=this,c=this.options;a.toData(function(a){a instanceof Error?b.end(0,a.message):(c.upload(c,b),b._send.call(b,c,a))},c)},_send:function(c,e){var g,h=this,i=h.uid,j=h.uid+"Load",k=c.url;if(b.log("XHR._send:",e),c.cache||(k+=(~k.indexOf("?")?"&":"?")+b.uid()),e.nodeName){var l=c.jsonp;k=k.replace(/([a-z]+)=(\?)/i,"$1="+i),c.upload(c,h);var m=function(a){if(~k.indexOf(a.origin))try{var c=b.parseJSON(a.data);c.id==i&&n(c.status,c.statusText,c.response)}catch(d){n(0,d.message)}},n=a[i]=function(c,d,e){h.readyState=4,h.responseText=e,h.end(c,d),b.event.off(a,"message",m),a[i]=g=p=a[j]=null};h.xhr.abort=function(){try{p.stop?p.stop():p.contentWindow.stop?p.contentWindow.stop():p.contentWindow.document.execCommand("Stop")}catch(a){}n(0,"abort")},b.event.on(a,"message",m),a[j]=function(){try{var a=p.contentWindow,c=a.document,d=a.result||b.parseJSON(c.body.innerHTML);n(d.status,d.statusText,d.response)}catch(e){b.log("[transport.onload]",e)}},g=d.createElement("div"),g.innerHTML='
'+(l&&c.url.indexOf("=?")<0?'':"")+"
";var o=g.getElementsByTagName("form")[0],p=g.getElementsByTagName("iframe")[0];o.appendChild(e),b.log(o.parentNode.innerHTML),d.body.appendChild(g),h.xhr.node=g,h.readyState=2;try{o.submit()}catch(q){b.log("iframe.error: "+q)}o=null}else{if(k=k.replace(/([a-z]+)=(\?)&?/i,""),this.xhr&&this.xhr.aborted)return void b.log("Error: already aborted");if(g=h.xhr=b.getXHR(),e.params&&(k+=(k.indexOf("?")<0?"?":"&")+e.params.join("&")),g.open("POST",k,!0),b.withCredentials&&(g.withCredentials="true"),c.headers&&c.headers["X-Requested-With"]||g.setRequestHeader("X-Requested-With","XMLHttpRequest"),b.each(c.headers,function(a,b){g.setRequestHeader(b,a)}),c._chunked){g.upload&&g.upload.addEventListener("progress",b.throttle(function(a){e.retry||c.progress({type:a.type,total:e.size,loaded:e.start+a.loaded,totalSize:e.size},h,c)},100),!1),g.onreadystatechange=function(){var a=parseInt(g.getResponseHeader("X-Last-Known-Byte"),10);if(h.status=g.status,h.statusText=g.statusText,h.readyState=g.readyState,4==g.readyState){for(var d in f)h["response"+d]=g["response"+d];if(g.onreadystatechange=null,!g.status||g.status-201>0)if(b.log("Error: "+g.status),(!g.status&&!g.aborted||500==g.status||416==g.status)&&++e.retry<=c.chunkUploadRetry){var i=g.status?0:b.chunkNetworkDownRetryTimeout;c.pause(e.file,c),b.log("X-Last-Known-Byte: "+a),a?e.end=a:(e.end=e.start-1,416==g.status&&(e.end=e.end-c.chunkSize)),setTimeout(function(){h._send(c,e)},i)}else h.end(g.status);else e.retry=0,e.end==e.size-1?h.end(g.status):(b.log("X-Last-Known-Byte: "+a),a&&(e.end=a),e.file.FileAPIReadPosition=e.end,setTimeout(function(){h._send(c,e)},0));g=null}},e.start=e.end+1,e.end=Math.max(Math.min(e.start+c.chunkSize,e.size)-1,e.start);var r=e.file,s=(r.slice||r.mozSlice||r.webkitSlice).call(r,e.start,e.end+1);e.size&&!s.size?setTimeout(function(){h.end(-1)}):(g.setRequestHeader("Content-Range","bytes "+e.start+"-"+e.end+"/"+e.size),g.setRequestHeader("Content-Disposition","attachment; filename="+encodeURIComponent(e.name)),g.setRequestHeader("Content-Type",e.type||"application/octet-stream"),g.send(s)),r=s=null}else if(g.upload&&g.upload.addEventListener("progress",b.throttle(function(a){c.progress(a,h,c)},100),!1),g.onreadystatechange=function(){if(h.status=g.status,h.statusText=g.statusText,h.readyState=g.readyState,4==g.readyState){for(var a in f)h["response"+a]=g["response"+a];if(g.onreadystatechange=null,!g.status||g.status>201)if(b.log("Error: "+g.status),(!g.status&&!g.aborted||500==g.status)&&(c.retry||0)=0?a+"px":a}function d(a){var c,d=f.createElement("canvas"),e=!1;try{c=d.getContext("2d"),c.drawImage(a,0,0,1,1),e=255!=c.getImageData(0,0,1,1).data[4]}catch(g){b.log("[FileAPI.Camera] detectVideoSignal:",g)}return e}var e=a.URL||a.webkitURL,f=a.document,g=a.navigator,h=g.getUserMedia||g.webkitGetUserMedia||g.mozGetUserMedia||g.msGetUserMedia,i=!!h;b.support.media=i;var j=function(a){this.video=a};j.prototype={isActive:function(){return!!this._active},start:function(a){var b,c,f=this,i=f.video,j=function(d){f._active=!d,clearTimeout(c),clearTimeout(b),a&&a(d,f)};h.call(g,{video:!0},function(a){f.stream=a,i.src=e.createObjectURL(a),b=setInterval(function(){d(i)&&j(null)},1e3),c=setTimeout(function(){j("timeout"); -},5e3),i.play()},j)},stop:function(){try{this._active=!1,this.video.pause();try{this.stream.stop()}catch(a){b.each(this.stream.getTracks(),function(a){a.stop()})}this.stream=null}catch(a){b.log("[FileAPI.Camera] stop:",a)}},shot:function(){return new k(this.video)}},j.get=function(a){return new j(a.firstChild)},j.publish=function(d,e,g){"function"==typeof e&&(g=e,e={}),e=b.extend({},{width:"100%",height:"100%",start:!0},e),d.jquery&&(d=d[0]);var h=function(a){if(a)g(a);else{var b=j.get(d);e.start?b.start(g):g(null,b)}};if(d.style.width=c(e.width),d.style.height=c(e.height),b.html5&&i){var k=f.createElement("video");k.style.width=c(e.width),k.style.height=c(e.height),a.jQuery?jQuery(d).empty():d.innerHTML="",d.appendChild(k),h()}else j.fallback(d,e,h)},j.fallback=function(a,b,c){c("not_support_camera")};var k=function(a){var c=a.nodeName?b.Image.toCanvas(a):a,d=b.Image(c);return d.type="image/png",d.width=c.width,d.height=c.height,d.size=c.width*c.height*4,d};j.Shot=k,b.Camera=j}(window,FileAPI),function(a,b,c){"use strict";var d=c.each,e=[];!c.support.flash||!c.media||c.support.media&&c.html5||!function(){function a(a){var b=a.wid=c.uid();return c.Flash._fn[b]=a,"FileAPI.Flash._fn."+b}function b(a){try{c.Flash._fn[a.wid]=null,delete c.Flash._fn[a.wid]}catch(b){}}var f=c.Flash;c.extend(c.Flash,{patchCamera:function(){c.Camera.fallback=function(d,e,g){var h=c.uid();c.log("FlashAPI.Camera.publish: "+h),f.publish(d,h,c.extend(e,{camera:!0,onEvent:a(function i(a){"camera"===a.type&&(b(i),a.error?(c.log("FlashAPI.Camera.publish.error: "+a.error),g(a.error)):(c.log("FlashAPI.Camera.publish.success: "+h),g(null)))})}))},d(e,function(a){c.Camera.fallback.apply(c.Camera,a)}),e=[],c.extend(c.Camera.prototype,{_id:function(){return this.video.id},start:function(d){var e=this;f.cmd(this._id(),"camera.on",{callback:a(function g(a){b(g),a.error?(c.log("FlashAPI.camera.on.error: "+a.error),d(a.error,e)):(c.log("FlashAPI.camera.on.success: "+e._id()),e._active=!0,d(null,e))})})},stop:function(){this._active=!1,f.cmd(this._id(),"camera.off")},shot:function(){c.log("FlashAPI.Camera.shot:",this._id());var a=c.Flash.cmd(this._id(),"shot",{});return a.type="image/png",a.flashId=this._id(),a.isShot=!0,new c.Camera.Shot(a)}})}}),c.Camera.fallback=function(){e.push(arguments)}}()}(window,window.jQuery,FileAPI),"function"==typeof define&&define.amd&&define("FileAPI",[],function(){return FileAPI}); \ No newline at end of file +/*! FileAPI 2.0.20 - BSD | git://github.com/mailru/FileAPI.git */ +!function(a){"use strict";var b=a.HTMLCanvasElement&&a.HTMLCanvasElement.prototype,c=a.Blob&&function(){try{return Boolean(new Blob)}catch(a){return!1}}(),d=c&&a.Uint8Array&&function(){try{return 100===new Blob([new Uint8Array(100)]).size}catch(a){return!1}}(),e=a.BlobBuilder||a.WebKitBlobBuilder||a.MozBlobBuilder||a.MSBlobBuilder,f=(c||e)&&a.atob&&a.ArrayBuffer&&a.Uint8Array&&function(a){var b,f,g,h,i,j;for(b=a.split(",")[0].indexOf("base64")>=0?atob(a.split(",")[1]):decodeURIComponent(a.split(",")[1]),f=new ArrayBuffer(b.length),g=new Uint8Array(f),h=0;h0,H=a.dataURLtoBlob,I=/img/i,J=/canvas/i,K=/img|canvas/i,L=/input/i,M=/^data:[^,]+,/,N={}.toString,O=a.Math,P=function(b){return b=new a.Number(O.pow(1024,b)),b.from=function(a){return O.round(a*this)},b},Q={},R=[],S="abort progress error load loadend",T="status statusText readyState response responseXML responseText responseBody".split(" "),U="currentTarget",V="preventDefault",W=function(a){return a&&"length"in a},X=function(a,b,c){if(a)if(W(a))for(var d=0,e=a.length;e>d;d++)d in a&&b.call(c,a[d],d,a);else for(var f in a)a.hasOwnProperty(f)&&b.call(c,a[f],f,a)},Y=function(a){for(var b=arguments,c=1,d=function(b,c){a[c]=b};c=c&&!d&&f.end()},isFail:function(){return d},fail:function(){!d&&a(d=!0)},end:function(){e||(e=!0,a())}};return f},each:X,afor:function(a,b){var c=0,d=a.length;W(a)&&d--?!function e(){b(d!=c&&e,a[c],c++)}():b(!1)},extend:Y,isFile:function(a){return"[object File]"===N.call(a)},isBlob:function(a){return this.isFile(a)||"[object Blob]"===N.call(a)},isCanvas:function(a){return a&&J.test(a.nodeName)},getFilesFilter:function(a){return a="string"==typeof a?a:a.getAttribute&&a.getAttribute("accept")||"",a?new RegExp("("+a.replace(/\./g,"\\.").replace(/,/g,"|")+")$","i"):/./},readAsDataURL:function(a,b){ca.isCanvas(a)?c(a,b,"load",ca.toDataURL(a)):e(a,b,"DataURL")},readAsBinaryString:function(a,b){d("BinaryString")?e(a,b,"BinaryString"):e(a,function(a){if("load"==a.type)try{a.result=ca.toBinaryString(a.result)}catch(c){a.type="error",a.message=c.toString()}b(a)},"DataURL")},readAsArrayBuffer:function(a,b){e(a,b,"ArrayBuffer")},readAsText:function(a,b,c){c||(c=b,b="utf-8"),e(a,c,"Text",b)},toDataURL:function(a,b){return"string"==typeof a?a:a.toDataURL?a.toDataURL(b||"image/png"):void 0},toBinaryString:function(b){return a.atob(ca.toDataURL(b).replace(M,""))},readAsImage:function(a,d,e){if(ca.isBlob(a))if(w){var f=w.createObjectURL(a);f===b?c(a,d,"error"):ca.readAsImage(f,d,e)}else ca.readAsDataURL(a,function(b){"load"==b.type?ca.readAsImage(b.result,d,e):(e||"error"==b.type)&&c(a,d,b,null,{loaded:b.loaded,total:b.total})});else if(ca.isCanvas(a))c(a,d,"load",a);else if(I.test(a.nodeName))if(a.complete)c(a,d,"load",a);else{var g="error abort load";_(a,g,function i(b){"load"==b.type&&w&&w.revokeObjectURL(a.src),$(a,g,i),c(a,d,b,a)})}else if(a.iframe)c(a,d,{type:"error"});else{var h=ca.newImage(a.dataURL||a);ca.readAsImage(h,d,e)}},checkFileObj:function(a){var b={},c=ca.accept;return"object"==typeof a?b=a:b.name=(a+"").split(/\\|\//g).pop(),null==b.type&&(b.type=b.name.split(".").pop()),X(c,function(a,c){a=new RegExp(a.replace(/\s/g,"|"),"i"),(a.test(b.type)||ca.ext2mime[b.type])&&(b.type=ca.ext2mime[b.type]||c.split("/")[0]+"/"+b.type)}),b},getDropFiles:function(a,b){var c,d=[],e=[],j=l(a),k=j.files,m=j.items,n=W(m)&&m[0]&&h(m[0]),o=ca.queue(function(){b(d,e)});if(n)if(G&&k){var p,q,r=k.length;for(c=new Array(r);r--;){p=k[r];try{q=h(m[r])}catch(s){ca.log("[err] getDropFiles: ",s),q=null}g(q)&&(q.isDirectory||q.isFile&&p.name==p.name.normalize("NFC"))?c[r]=q:c[r]=p}}else c=m;else c=k;X(c||[],function(a){o.inc();try{n&&g(a)?i(a,function(a,b,c){a?ca.log("[err] getDropFiles:",a):d.push.apply(d,b),e.push.apply(e,c),o.next()}):f(a,function(b,c){b?d.push(a):a.error=c,e.push(a),o.next()})}catch(b){o.next(),ca.log("[err] getDropFiles: ",b)}}),o.check()},getFiles:function(a,b,c){var d=[];return c?(ca.filterFiles(ca.getFiles(a),b,c),null):(a.jquery&&(a.each(function(){d=d.concat(ca.getFiles(this))}),a=d,d=[]),"string"==typeof b&&(b=ca.getFilesFilter(b)),a.originalEvent?a=aa(a.originalEvent):a.srcElement&&(a=aa(a)),a.dataTransfer?a=a.dataTransfer:a.target&&(a=a.target),a.files?(d=a.files,D||(d[0].blob=a,d[0].iframe=!0)):!D&&k(a)?ca.trim(a.value)&&(d=[ca.checkFileObj(a.value)],d[0].blob=a,d[0].iframe=!0):W(a)&&(d=a),ca.filter(d,function(a){return!b||b.test(a.name)}))},getTotalSize:function(a){for(var b=0,c=a&&a.length;c--;)b+=a[c].size;return b},getInfo:function(a,b){var c={},d=R.concat();ca.isBlob(a)?!function e(){var f=d.shift();f?f.test(a.type)?f(a,function(a,d){a?b(a):(Y(c,d),e())}):e():b(!1,c)}():b("not_support_info",c)},addInfoReader:function(a,b){b.test=function(b){return a.test(b)},R.push(b)},filter:function(a,b){for(var c,d=[],e=0,f=a.length;f>e;e++)e in a&&(c=a[e],b.call(c,c,e,a)&&d.push(c));return d},filterFiles:function(a,b,c){if(a.length){var d,e=a.concat(),f=[],g=[];!function h(){e.length?(d=e.shift(),ca.getInfo(d,function(a,c){(b(d,a?!1:c)?f:g).push(d),h()})):c(f,g)}()}else c([],a)},upload:function(a){a=Y({jsonp:"callback",prepare:ca.F,beforeupload:ca.F,upload:ca.F,fileupload:ca.F,fileprogress:ca.F,filecomplete:ca.F,progress:ca.F,complete:ca.F,pause:ca.F,imageOriginal:!0,chunkSize:ca.chunkSize,chunkUploadRetry:ca.chunkUploadRetry,uploadRetry:ca.uploadRetry},a),a.imageAutoOrientation&&!a.imageTransform&&(a.imageTransform={rotate:"auto"});var b,c=new ca.XHR(a),d=this._getFilesDataArray(a.files),e=this,f=0,g=0,h=!1;return X(d,function(a){f+=a.size}),c.files=[],X(d,function(a){c.files.push(a.file)}),c.total=f,c.loaded=0,c.filesLeft=d.length,a.beforeupload(c,a),b=function(){var i=d.shift(),k=i&&i.file,l=!1,m=j(a);if(c.filesLeft=d.length,k&&k.name===ca.expando&&(k=null,ca.log("[warn] FileAPI.upload() — called without files")),("abort"!=c.statusText||c.current)&&i){if(h=!1,c.currentFile=k,k&&a.prepare(k,m)===!1)return void b.call(e);m.file=k,e._getFormData(m,i,function(h){g||a.upload(c,a);var j=new ca.XHR(Y({},m,{upload:k?function(){a.fileupload(k,j,m)}:q,progress:k?function(b){l||(l=b.loaded===b.total,a.fileprogress({type:"progress",total:i.total=b.total,loaded:i.loaded=b.loaded},k,j,m),a.progress({type:"progress",total:f,loaded:c.loaded=g+i.size*(b.loaded/b.total)||0},k,j,m))}:q,complete:function(d){X(T,function(a){c[a]=j[a]}),k&&(i.total=i.total||i.size,i.loaded=i.total,d||(this.progress(i),l=!0,g+=i.size,c.loaded=g),a.filecomplete(d,j,k,m)),setTimeout(function(){b.call(e)},0)}}));c.abort=function(a){a||(d.length=0),this.current=a,j.abort()},j.send(h)})}else{var n=200==c.status||201==c.status||204==c.status;a.complete(n?!1:c.statusText||"error",c,a),h=!0}},setTimeout(b,0),c.append=function(a,g){a=ca._getFilesDataArray([].concat(a)),X(a,function(a){f+=a.size,c.files.push(a.file),g?d.unshift(a):d.push(a)}),c.statusText="",h&&b.call(e)},c.remove=function(a){for(var b,c=d.length;c--;)d[c].file==a&&(b=d.splice(c,1),f-=b.size);return b},c},_getFilesDataArray:function(a){var b=[],c={};if(k(a)){var d=ca.getFiles(a);c[a.name||"file"]=null!==a.getAttribute("multiple")?d:d[0]}else W(a)&&k(a[0])?X(a,function(a){c[a.name||"file"]=ca.getFiles(a)}):c=a;return X(c,function e(a,c){W(a)?X(a,function(a){e(a,c)}):a&&(a.name||a.image)&&b.push({name:c,file:a,size:a.size,total:a.size,loaded:0})}),b.length||b.push({file:{name:ca.expando}}),b},_getFormData:function(a,b,c){var d=b.file,e=b.name,f=d.name,g=d.type,h=ca.support.transform&&a.imageTransform,i=new ca.Form,j=ca.queue(function(){c(i)}),k=h&&m(h),l=ca.postNameConcat;X(a.data,function n(a,b){"object"==typeof a?X(a,function(a,c){n(a,l(b,c))}):i.append(b,a)}),function o(b){b.image?(j.inc(),b.toData(function(a,c){b.file&&(c.type=b.file.type,c.quality=b.matrix.quality,f=b.file&&b.file.name),f=f||(new Date).getTime()+".png",o(c),j.next()})):ca.Image&&h&&(/^image/.test(b.type)||K.test(b.nodeName))?(j.inc(),k&&(h=[h]),ca.Image.transform(b,h,a.imageAutoOrientation,function(c,d){if(k&&!c)H||ca.flashEngine||(i.multipart=!0),i.append(e,d[0],f,h[0].type||g);else{var m=0;c||X(d,function(a,b){H||ca.flashEngine||(i.multipart=!0),h[b].postName||(m=1),i.append(h[b].postName||l(e,b),a,f,h[b].type||g)}),(c||a.imageOriginal)&&i.append(l(e,m?"original":null),b,f,g)}j.next()})):f!==ca.expando&&i.append(e,b,f)}(d),j.check()},reset:function(a,b){var c,d;return C?(d=C(a).clone(!0).insertBefore(a).val("")[0],b||C(a).remove()):(c=a.parentNode,d=c.insertBefore(a.cloneNode(!0),a),d.value="",b||c.removeChild(a),X(Q[ca.uid(a)],function(b,c){X(b,function(b){$(a,c,b),Z(d,c,b)})})),d},load:function(a,b){var c=ca.getXHR();return c?(c.open("GET",a,!0),c.overrideMimeType&&c.overrideMimeType("text/plain; charset=x-user-defined"),Z(c,"progress",function(a){a.lengthComputable&&b({type:a.type,loaded:a.loaded,total:a.total},c)}),c.onreadystatechange=function(){if(4==c.readyState)if(c.onreadystatechange=null,200==c.status){a=a.split("/");var d={name:a[a.length-1],size:c.getResponseHeader("Content-Length"),type:c.getResponseHeader("Content-Type")};d.dataURL="data:"+d.type+";base64,"+ca.encode64(c.responseBody||c.responseText),b({type:"load",result:d},c)}else b({type:"error"},c)},c.send(null)):b({type:"error"}),c},encode64:function(a){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c="",d=0;for("string"!=typeof a&&(a=String(a));d>2,k=(3&g)<<4|h>>4;isNaN(h)?e=f=64:(e=(15&h)<<2|i>>6,f=isNaN(i)?64:63&i),c+=b.charAt(j)+b.charAt(k)+b.charAt(e)+b.charAt(f)}return c}};ca.addInfoReader(/^image/,function(a,b){if(!a.__dimensions){var c=a.__dimensions=ca.defer();ca.readAsImage(a,function(a){var b=a.target;c.resolve("load"==a.type?!1:"error",{width:b.width,height:b.height}),b.src=ca.EMPTY_PNG,b=null})}a.__dimensions.then(b)}),ca.event.dnd=function(a,b,c){var d,e;c||(c=b,b=ca.F),z?(Z(a,"dragenter dragleave dragover",b.ff=b.ff||function(a){for(var c=l(a).types,f=c&&c.length,g=!1;f--;)if(~c[f].indexOf("File")){a[V](),e!==a.type&&(e=a.type,"dragleave"!=e&&b.call(a[U],!0,a),g=!0);break}g&&(clearTimeout(d),d=setTimeout(function(){b.call(a[U],"dragleave"!=e,a)},50))}),Z(a,"drop",c.ff=c.ff||function(a){a[V](),e=0,b.call(a[U],!1,a),ca.getDropFiles(a,function(b,d){c.call(a[U],b,d,a)})})):ca.log("Drag'n'Drop -- not supported")},ca.event.dnd.off=function(a,b,c){$(a,"dragenter dragleave dragover",b.ff),$(a,"drop",c.ff)},C&&!C.fn.dnd&&(C.fn.dnd=function(a,b){return this.each(function(){ca.event.dnd(this,a,b)})},C.fn.offdnd=function(a,b){return this.each(function(){ca.event.dnd.off(this,a,b)})}),a.FileAPI=Y(ca,a.FileAPI),ca.log("FileAPI: "+ca.version),ca.log("protocol: "+a.location.protocol),ca.log("doctype: ["+s.name+"] "+s.publicId+" "+s.systemId),X(r.getElementsByTagName("meta"),function(a){/x-ua-compatible/i.test(a.getAttribute("http-equiv"))&&ca.log("meta.http-equiv: "+a.getAttribute("content"))});try{n=!!console.log,o=!!console.log.apply}catch(da){}ca.flashUrl||(ca.flashUrl=ca.staticPath+"FileAPI.flash.swf"),ca.flashImageUrl||(ca.flashImageUrl=ca.staticPath+"FileAPI.flash.image.swf"),ca.flashWebcamUrl||(ca.flashWebcamUrl=ca.staticPath+"FileAPI.flash.camera.swf")}(window,void 0),function(a,b,c){"use strict";function d(b){if(b instanceof d){var c=new d(b.file);return a.extend(c.matrix,b.matrix),c}return this instanceof d?(this.file=b,this.size=b.size||100,void(this.matrix={sx:0,sy:0,sw:0,sh:0,dx:0,dy:0,dw:0,dh:0,resize:0,deg:0,quality:1,filter:0})):new d(b)}var e=Math.min,f=Math.round,g=function(){return b.createElement("canvas")},h=!1,i={8:270,3:180,6:90,7:270,4:180,5:90};try{h=g().toDataURL("image/png").indexOf("data:image/png")>-1}catch(j){}d.prototype={image:!0,constructor:d,set:function(b){return a.extend(this.matrix,b),this},crop:function(a,b,d,e){return d===c&&(d=a,e=b,a=b=0),this.set({sx:a,sy:b,sw:d,sh:e||d})},resize:function(a,b,c){return/min|max|height|width/.test(b)&&(c=b,b=a),this.set({dw:a,dh:b||a,resize:c})},preview:function(a,b){return this.resize(a,b||a,"preview")},rotate:function(a){return this.set({deg:a})},filter:function(a){return this.set({filter:a})},overlay:function(a){return this.set({overlay:a})},clone:function(){return new d(this)},_load:function(b,c){var d=this;/img|video/i.test(b.nodeName)?c.call(d,null,b):a.readAsImage(b,function(a){c.call(d,"load"!=a.type,a.result)})},_apply:function(b,c){var f,h=g(),i=this.getMatrix(b),j=h.getContext("2d"),k=b.videoWidth||b.width,l=b.videoHeight||b.height,m=i.deg,n=i.dw,o=i.dh,p=k,q=l,r=i.filter,s=b,t=i.overlay,u=a.queue(function(){b.src=a.EMPTY_PNG,c(!1,h)}),v=a.renderImageToCanvas;for(m-=360*Math.floor(m/360),b._type=this.file.type;i.multipass&&e(p/n,q/o)>2;)p=p/2+.5|0,q=q/2+.5|0,f=g(),f.width=p,f.height=q,s!==b?(v(f,s,0,0,s.width,s.height,0,0,p,q),s=f):(s=f,v(s,b,i.sx,i.sy,i.sw,i.sh,0,0,p,q),i.sx=i.sy=i.sw=i.sh=0);h.width=m%180?o:n,h.height=m%180?n:o,h.type=i.type,h.quality=i.quality,j.rotate(m*Math.PI/180),v(j.canvas,s,i.sx,i.sy,i.sw||s.width,i.sh||s.height,180==m||270==m?-n:0,90==m||180==m?-o:0,n,o),n=h.width,o=h.height,t&&a.each([].concat(t),function(b){u.inc();var c=new window.Image,d=function(){var e=0|b.x,f=0|b.y,g=b.w||c.width,h=b.h||c.height,i=b.rel;e=1==i||4==i||7==i?(n-g+e)/2:2==i||5==i||8==i?n-(g+e):e,f=3==i||4==i||5==i?(o-h+f)/2:i>=6?o-(h+f):f,a.event.off(c,"error load abort",d);try{j.globalAlpha=b.opacity||1,j.drawImage(c,e,f,g,h)}catch(k){}u.next()};a.event.on(c,"error load abort",d),c.src=b.src,c.complete&&d()}),r&&(u.inc(),d.applyFilter(h,r,u.next)),u.check()},getMatrix:function(b){var c=a.extend({},this.matrix),d=c.sw=c.sw||b.videoWidth||b.naturalWidth||b.width,g=c.sh=c.sh||b.videoHeight||b.naturalHeight||b.height,h=c.dw=c.dw||d,i=c.dh=c.dh||g,j=d/g,k=h/i,l=c.resize;if("preview"==l){if(h!=d||i!=g){var m,n;k>=j?(m=d,n=m/k):(n=g,m=n*k),(m!=d||n!=g)&&(c.sx=~~((d-m)/2),c.sy=~~((g-n)/2),d=m,g=n)}}else"height"==l?h=i*j:"width"==l?i=h/j:l&&(d>h||g>i?"min"==l?(h=f(k>j?e(d,h):i*j),i=f(k>j?h/j:e(g,i))):(h=f(j>=k?e(d,h):i*j),i=f(j>=k?h/j:e(g,i))):(h=d,i=g));return c.sw=d,c.sh=g,c.dw=h,c.dh=i,c.multipass=a.multiPassResize,c},_trans:function(b){this._load(this.file,function(c,d){if(c)b(c);else try{this._apply(d,b)}catch(c){a.log("[err] FileAPI.Image.fn._apply:",c),b(c)}})},get:function(b){if(a.support.transform){var c=this,d=c.matrix;"auto"==d.deg?a.getInfo(c.file,function(a,e){d.deg=i[e&&e.exif&&e.exif.Orientation]||0,c._trans(b)}):c._trans(b)}else b("not_support_transform");return this},toData:function(a){return this.get(a)}},d.exifOrientation=i,d.transform=function(b,e,f,g){function h(h,i){var j={},k=a.queue(function(a){g(a,j)});h?k.fail():a.each(e,function(a,e){if(!k.isFail()){var g=new d(i.nodeType?i:b),h="function"==typeof a;if(h?a(i,g):a.width?g[a.preview?"preview":"resize"](a.width,a.height,a.strategy):a.maxWidth&&(i.width>a.maxWidth||i.height>a.maxHeight)&&g.resize(a.maxWidth,a.maxHeight,"max"),a.crop){var l=a.crop;g.crop(0|l.x,0|l.y,l.w||l.width,l.h||l.height)}a.rotate===c&&f&&(a.rotate="auto"),g.set({type:g.matrix.type||a.type||b.type||"image/png"}),h||g.set({deg:a.rotate,overlay:a.overlay,filter:a.filter,quality:a.quality||1}),k.inc(),g.toData(function(a,b){a?k.fail():(j[e]=b,k.next())})}})}b.width?h(!1,b):a.getInfo(b,h)},a.each(["TOP","CENTER","BOTTOM"],function(b,c){a.each(["LEFT","CENTER","RIGHT"],function(a,e){d[b+"_"+a]=3*c+e,d[a+"_"+b]=3*c+e})}),d.toCanvas=function(a){var c=b.createElement("canvas");return c.width=a.videoWidth||a.width,c.height=a.videoHeight||a.height,c.getContext("2d").drawImage(a,0,0),c},d.fromDataURL=function(b,c,d){var e=a.newImage(b);a.extend(e,c),d(e)},d.applyFilter=function(b,c,e){"function"==typeof c?c(b,e):window.Caman&&window.Caman("IMG"==b.tagName?d.toCanvas(b):b,function(){"string"==typeof c?this[c]():a.each(c,function(a,b){this[b](a)},this),this.render(e)})},a.renderImageToCanvas=function(b,c,d,e,f,g,h,i,j,k){try{return b.getContext("2d").drawImage(c,d,e,f,g,h,i,j,k)}catch(l){throw a.log("renderImageToCanvas failed"),l}},a.support.canvas=a.support.transform=h,a.Image=d}(FileAPI,document),function(a){"use strict";a(FileAPI)}(function(a){"use strict";if(window.navigator&&window.navigator.platform&&/iP(hone|od|ad)/.test(window.navigator.platform)){var b=a.renderImageToCanvas;a.detectSubsampling=function(a){var b,c;return a.width*a.height>1048576?(b=document.createElement("canvas"),b.width=b.height=1,c=b.getContext("2d"),c.drawImage(a,-a.width+1,0),0===c.getImageData(0,0,1,1).data[3]):!1},a.detectVerticalSquash=function(a,b){var c,d,e,f,g,h=a.naturalHeight||a.height,i=document.createElement("canvas"),j=i.getContext("2d");for(b&&(h/=2),i.width=1,i.height=h,j.drawImage(a,0,0),c=j.getImageData(0,0,1,h).data,d=0,e=h,f=h;f>d;)g=c[4*(f-1)+3],0===g?e=f:d=f,f=e+d>>1;return f/h||1},a.renderImageToCanvas=function(c,d,e,f,g,h,i,j,k,l){if("image/jpeg"===d._type){var m,n,o,p,q=c.getContext("2d"),r=document.createElement("canvas"),s=1024,t=r.getContext("2d");if(r.width=s,r.height=s,q.save(),m=a.detectSubsampling(d),m&&(e/=2,f/=2,g/=2,h/=2),n=a.detectVerticalSquash(d,m),m||1!==n){for(f*=n,k=Math.ceil(s*k/g),l=Math.ceil(s*l/h/n),j=0,p=0;h>p;){for(i=0,o=0;g>o;)t.clearRect(0,0,s,s),t.drawImage(d,e,f,g,h,-o,-p,g,h),q.drawImage(r,0,0,s,s,i,j,k,l),o+=s,i+=k;p+=s,j+=l}return q.restore(),c}}return b(c,d,e,f,g,h,i,j,k,l)}}}),function(a,b){"use strict";function c(b,c,d){var e=b.blob,f=b.file;if(f){if(!e.toDataURL)return void a.readAsBinaryString(e,function(a){"load"==a.type&&c(b,a.result)});var g={"image/jpeg":".jpe?g","image/png":".png"},h=g[b.type]?b.type:"image/png",i=g[h]||".png",j=e.quality||1;f.match(new RegExp(i+"$","i"))||(f+=i.replace("?","")),b.file=f,b.type=h,!d&&e.toBlob?e.toBlob(function(a){c(b,a)},h,j):c(b,a.toBinaryString(e.toDataURL(h,j)))}else c(b,e)}var d=b.document,e=b.FormData,f=function(){this.items=[]},g=b.encodeURIComponent;f.prototype={append:function(a,b,c,d){this.items.push({name:a,blob:b&&b.blob||(void 0==b?"":b),file:b&&(c||b.name),type:b&&(d||b.type)})},each:function(a){for(var b=0,c=this.items.length;c>b;b++)a.call(this,this.items[b])},toData:function(b,c){c._chunked=a.support.chunked&&c.chunkSize>0&&1==a.filter(this.items,function(a){return a.file}).length,a.support.html5?a.formData&&!this.multipart&&e?c._chunked?(a.log("FileAPI.Form.toPlainData"),this.toPlainData(b)):(a.log("FileAPI.Form.toFormData"),this.toFormData(b)):(a.log("FileAPI.Form.toMultipartData"),this.toMultipartData(b)):(a.log("FileAPI.Form.toHtmlData"),this.toHtmlData(b))},_to:function(b,c,d,e){var f=a.queue(function(){c(b)});this.each(function(g){try{d(g,b,f,e)}catch(h){a.log("FileAPI.Form._to: "+h.message),c(h)}}),f.check()},toHtmlData:function(b){this._to(d.createDocumentFragment(),b,function(b,c){var e,f=b.blob;b.file?(a.reset(f,!0),f.name=b.name,f.disabled=!1,c.appendChild(f)):(e=d.createElement("input"),e.name=b.name,e.type="hidden",e.value=f,c.appendChild(e))})},toPlainData:function(a){this._to({},a,function(a,b,d){a.file&&(b.type=a.file),a.blob.toBlob?(d.inc(),c(a,function(a,c){b.name=a.name,b.file=c,b.size=c.length,b.type=a.type,d.next()})):a.file?(b.name=a.blob.name,b.file=a.blob,b.size=a.blob.size,b.type=a.type):(b.params||(b.params=[]),b.params.push(g(a.name)+"="+g(a.blob))),b.start=-1,b.end=b.file&&b.file.FileAPIReadPosition||-1,b.retry=0})},toFormData:function(a){this._to(new e,a,function(a,b,d){a.blob&&a.blob.toBlob?(d.inc(),c(a,function(a,c){b.append(a.name,c,a.file),d.next()})):a.file?b.append(a.name,a.blob,a.file):b.append(a.name,a.blob),a.file&&b.append("_"+a.name,a.file)})},toMultipartData:function(b){this._to([],b,function(a,b,d,e){d.inc(),c(a,function(a,c){b.push("--_"+e+('\r\nContent-Disposition: form-data; name="'+a.name+'"'+(a.file?'; filename="'+g(a.file)+'"':"")+(a.file?"\r\nContent-Type: "+(a.type||"application/octet-stream"):"")+"\r\n\r\n"+(a.file?c:g(c))+"\r\n")),d.next()},!0)},a.expando)}},a.Form=f}(FileAPI,window),function(a,b){"use strict";var c=function(){},d=a.document,e=function(a){this.uid=b.uid(),this.xhr={abort:c,getResponseHeader:c,getAllResponseHeaders:c},this.options=a},f={"":1,XML:1,Text:1,Body:1};e.prototype={status:0,statusText:"",constructor:e,getResponseHeader:function(a){return this.xhr.getResponseHeader(a)},getAllResponseHeaders:function(){return this.xhr.getAllResponseHeaders()||{}},end:function(d,e){var f=this,g=f.options;f.end=f.abort=c,f.status=d,e&&(f.statusText=e),b.log("xhr.end:",d,e),g.complete(200==d||201==d?!1:f.statusText||"unknown",f),f.xhr&&f.xhr.node&&setTimeout(function(){var b=f.xhr.node;try{b.parentNode.removeChild(b)}catch(c){}try{delete a[f.uid]}catch(c){}a[f.uid]=f.xhr.node=null},9)},abort:function(){this.end(0,"abort"),this.xhr&&(this.xhr.aborted=!0,this.xhr.abort())},send:function(a){var b=this,c=this.options;a.toData(function(a){a instanceof Error?b.end(0,a.message):(c.upload(c,b),b._send.call(b,c,a))},c)},_send:function(c,e){var g,h=this,i=h.uid,j=h.uid+"Load",k=c.url;if(b.log("XHR._send:",e),c.cache||(k+=(~k.indexOf("?")?"&":"?")+b.uid()),e.nodeName){var l=c.jsonp;k=k.replace(/([a-z]+)=(\?)/i,"$1="+i),c.upload(c,h);var m=function(a){if(~k.indexOf(a.origin))try{var c=b.parseJSON(a.data);c.id==i&&n(c.status,c.statusText,c.response)}catch(d){n(0,d.message)}},n=a[i]=function(c,d,e){h.readyState=4,h.responseText=e,h.end(c,d),b.event.off(a,"message",m),a[i]=g=p=a[j]=null};h.xhr.abort=function(){try{p.stop?p.stop():p.contentWindow.stop?p.contentWindow.stop():p.contentWindow.document.execCommand("Stop")}catch(a){}n(0,"abort")},b.event.on(a,"message",m),a[j]=function(){try{var a=p.contentWindow,c=a.document,d=a.result||b.parseJSON(c.body.innerHTML);n(d.status,d.statusText,d.response)}catch(e){b.log("[transport.onload]",e)}},g=d.createElement("div"),g.innerHTML='
'+(l&&c.url.indexOf("=?")<0?'':"")+"
";var o=g.getElementsByTagName("form")[0],p=g.getElementsByTagName("iframe")[0];o.appendChild(e),b.log(o.parentNode.innerHTML),d.body.appendChild(g),h.xhr.node=g,h.readyState=2;try{o.submit()}catch(q){b.log("iframe.error: "+q)}o=null}else{if(k=k.replace(/([a-z]+)=(\?)&?/i,""),this.xhr&&this.xhr.aborted)return void b.log("Error: already aborted");if(g=h.xhr=b.getXHR(),e.params&&(k+=(k.indexOf("?")<0?"?":"&")+e.params.join("&")),g.open("POST",k,!0),b.withCredentials&&(g.withCredentials="true"),c.headers&&c.headers["X-Requested-With"]||g.setRequestHeader("X-Requested-With","XMLHttpRequest"),b.each(c.headers,function(a,b){g.setRequestHeader(b,a)}),c._chunked){g.upload&&g.upload.addEventListener("progress",b.throttle(function(a){e.retry||c.progress({type:a.type,total:e.size,loaded:e.start+a.loaded,totalSize:e.size},h,c)},100),!1),g.onreadystatechange=function(){var a=parseInt(g.getResponseHeader("X-Last-Known-Byte"),10);if(h.status=g.status,h.statusText=g.statusText,h.readyState=g.readyState,4==g.readyState){for(var d in f)h["response"+d]=g["response"+d];if(g.onreadystatechange=null,!g.status||g.status-201>0)if(b.log("Error: "+g.status),(!g.status&&!g.aborted||500==g.status||416==g.status)&&++e.retry<=c.chunkUploadRetry){var i=g.status?0:b.chunkNetworkDownRetryTimeout;c.pause(e.file,c),b.log("X-Last-Known-Byte: "+a),a?e.end=a:(e.end=e.start-1,416==g.status&&(e.end=e.end-c.chunkSize)),setTimeout(function(){h._send(c,e)},i)}else h.end(g.status);else e.retry=0,e.end==e.size-1?h.end(g.status):(b.log("X-Last-Known-Byte: "+a),a&&(e.end=a),e.file.FileAPIReadPosition=e.end,setTimeout(function(){h._send(c,e)},0));g=null}},e.start=e.end+1,e.end=Math.max(Math.min(e.start+c.chunkSize,e.size)-1,e.start);var r=e.file,s=(r.slice||r.mozSlice||r.webkitSlice).call(r,e.start,e.end+1);e.size&&!s.size?setTimeout(function(){h.end(-1)}):(g.setRequestHeader("Content-Range","bytes "+e.start+"-"+e.end+"/"+e.size),g.setRequestHeader("Content-Disposition","attachment; filename="+encodeURIComponent(e.name)),g.setRequestHeader("Content-Type",e.type||"application/octet-stream"),g.send(s)),r=s=null}else if(g.upload&&g.upload.addEventListener("progress",b.throttle(function(a){c.progress(a,h,c)},100),!1),g.onreadystatechange=function(){if(h.status=g.status,h.statusText=g.statusText,h.readyState=g.readyState,4==g.readyState){for(var a in f)h["response"+a]=g["response"+a];if(g.onreadystatechange=null,!g.status||g.status>201)if(b.log("Error: "+g.status),(!g.status&&!g.aborted||500==g.status)&&(c.retry||0)=0?a+"px":a}function d(a){var c,d=f.createElement("canvas"),e=!1;try{c=d.getContext("2d"),c.drawImage(a,0,0,1,1),e=255!=c.getImageData(0,0,1,1).data[4]}catch(g){b.log("[FileAPI.Camera] detectVideoSignal:",g)}return e}var e=a.URL||a.webkitURL,f=a.document,g=a.navigator,h=g.getUserMedia||g.webkitGetUserMedia||g.mozGetUserMedia||g.msGetUserMedia,i=!!h;b.support.media=i;var j=function(a){this.video=a};j.prototype={isActive:function(){return!!this._active},start:function(a){var b,c,f=this,i=f.video,j=function(d){f._active=!d,clearTimeout(c),clearTimeout(b),a&&a(d,f)};h.call(g,{video:!0},function(a){f.stream=a,i.src=e.createObjectURL(a),b=setInterval(function(){d(i)&&j(null)},1e3),c=setTimeout(function(){j("timeout"); +},5e3),i.play()},j)},stop:function(){try{this._active=!1,this.video.pause();try{this.stream.stop()}catch(a){b.each(this.stream.getTracks(),function(a){a.stop()})}this.stream=null}catch(a){b.log("[FileAPI.Camera] stop:",a)}},shot:function(){return new k(this.video)}},j.get=function(a){return new j(a.firstChild)},j.publish=function(d,e,g){"function"==typeof e&&(g=e,e={}),e=b.extend({},{width:"100%",height:"100%",start:!0},e),d.jquery&&(d=d[0]);var h=function(a){if(a)g(a);else{var b=j.get(d);e.start?b.start(g):g(null,b)}};if(d.style.width=c(e.width),d.style.height=c(e.height),b.html5&&i){var k=f.createElement("video");k.style.width=c(e.width),k.style.height=c(e.height),a.jQuery?jQuery(d).empty():d.innerHTML="",d.appendChild(k),h()}else j.fallback(d,e,h)},j.fallback=function(a,b,c){c("not_support_camera")},j.checkAlreadyCaptured=function(){var b,c=g.mediaDevices,d=a.MediaStreamTrack,e=g.enumerateDevices;return b=c&&c.enumerateDevices?function(a){c.enumerateDevices().then(a)}:d&&d.getSources?d.getSources.bind(d):e?e.bind(g):function(a){a([])},function(a){b(function(b){var c=b.some(function(a){return("videoinput"===a.kind||"video"===a.kind)&&a.label});a(c)})}}();var k=function(a){var c=a.nodeName?b.Image.toCanvas(a):a,d=b.Image(c);return d.type="image/png",d.width=c.width,d.height=c.height,d.size=c.width*c.height*4,d};j.Shot=k,b.Camera=j}(window,FileAPI),function(a,b,c){"use strict";var d=c.each,e=[];!c.support.flash||!c.media||c.support.media&&c.html5||!function(){function a(a){var b=a.wid=c.uid();return c.Flash._fn[b]=a,"FileAPI.Flash._fn."+b}function b(a){try{c.Flash._fn[a.wid]=null,delete c.Flash._fn[a.wid]}catch(b){}}var f=c.Flash;c.extend(c.Flash,{patchCamera:function(){c.Camera.fallback=function(d,e,g){var h=c.uid();c.log("FlashAPI.Camera.publish: "+h),f.publish(d,h,c.extend(e,{camera:!0,onEvent:a(function i(a){"camera"===a.type&&(b(i),a.error?(c.log("FlashAPI.Camera.publish.error: "+a.error),g(a.error)):(c.log("FlashAPI.Camera.publish.success: "+h),g(null)))})}))},d(e,function(a){c.Camera.fallback.apply(c.Camera,a)}),e=[],c.extend(c.Camera.prototype,{_id:function(){return this.video.id},start:function(d){var e=this;f.cmd(this._id(),"camera.on",{callback:a(function g(a){b(g),a.error?(c.log("FlashAPI.camera.on.error: "+a.error),d(a.error,e)):(c.log("FlashAPI.camera.on.success: "+e._id()),e._active=!0,d(null,e))})})},stop:function(){this._active=!1,f.cmd(this._id(),"camera.off")},shot:function(){c.log("FlashAPI.Camera.shot:",this._id());var a=c.Flash.cmd(this._id(),"shot",{});return a.type="image/png",a.flashId=this._id(),a.isShot=!0,new c.Camera.Shot(a)}})}}),c.Camera.fallback=function(){e.push(arguments)}}()}(window,window.jQuery,FileAPI),"function"==typeof define&&define.amd&&define("FileAPI",[],function(){return FileAPI}); \ No newline at end of file diff --git a/dist/FileAPI.js b/dist/FileAPI.js index 6b2e14b7..94473456 100644 --- a/dist/FileAPI.js +++ b/dist/FileAPI.js @@ -1,4 +1,4 @@ -/*! FileAPI 2.0.19 - BSD | git://github.com/mailru/FileAPI.git +/*! FileAPI 2.0.20 - BSD | git://github.com/mailru/FileAPI.git * FileAPI — a set of javascript tools for working with files. Multiupload, drag'n'drop and chunked file upload. Images: crop, resize and auto orientation by EXIF. */ @@ -286,7 +286,7 @@ * FileAPI (core object) */ api = { - version: '2.0.19', + version: '2.0.20', cors: false, html5: true, @@ -3404,6 +3404,38 @@ callback('not_support_camera'); }; + Camera.checkAlreadyCaptured = (function () { + var mediaDevices = navigator.mediaDevices, + MediaStreamTrack = window.MediaStreamTrack, + navigatorEnumerateDevices = navigator.enumerateDevices, + enumerateDevices; + + if (mediaDevices && mediaDevices.enumerateDevices) { + enumerateDevices = function (callback) { + mediaDevices.enumerateDevices().then(callback); + }; + } else if (MediaStreamTrack && MediaStreamTrack.getSources) { + enumerateDevices = MediaStreamTrack.getSources.bind(MediaStreamTrack); + } else if (navigatorEnumerateDevices) { + enumerateDevices = navigatorEnumerateDevices.bind(navigator); + } else { + enumerateDevices = function (fn) { + fn([]); + }; + } + + return function (callback) { + enumerateDevices(function (devices) { + var deviceExists = devices.some(function (device) { + return (device.kind === 'videoinput' || device.kind === 'video') && device.label; + }); + + callback(deviceExists); + }); + }; + + })(); + /** * @class FileAPI.Camera.Shot diff --git a/dist/FileAPI.min.js b/dist/FileAPI.min.js index 01020ade..c99bde7b 100644 --- a/dist/FileAPI.min.js +++ b/dist/FileAPI.min.js @@ -1,3 +1,3 @@ -/*! FileAPI 2.0.19 - BSD | git://github.com/mailru/FileAPI.git */ -!function(a){"use strict";var b=a.HTMLCanvasElement&&a.HTMLCanvasElement.prototype,c=a.Blob&&function(){try{return Boolean(new Blob)}catch(a){return!1}}(),d=c&&a.Uint8Array&&function(){try{return 100===new Blob([new Uint8Array(100)]).size}catch(a){return!1}}(),e=a.BlobBuilder||a.WebKitBlobBuilder||a.MozBlobBuilder||a.MSBlobBuilder,f=(c||e)&&a.atob&&a.ArrayBuffer&&a.Uint8Array&&function(a){var b,f,g,h,i,j;for(b=a.split(",")[0].indexOf("base64")>=0?atob(a.split(",")[1]):decodeURIComponent(a.split(",")[1]),f=new ArrayBuffer(b.length),g=new Uint8Array(f),h=0;h0,H=a.dataURLtoBlob,I=/img/i,J=/canvas/i,K=/img|canvas/i,L=/input/i,M=/^data:[^,]+,/,N={}.toString,O=a.Math,P=function(b){return b=new a.Number(O.pow(1024,b)),b.from=function(a){return O.round(a*this)},b},Q={},R=[],S="abort progress error load loadend",T="status statusText readyState response responseXML responseText responseBody".split(" "),U="currentTarget",V="preventDefault",W=function(a){return a&&"length"in a},X=function(a,b,c){if(a)if(W(a))for(var d=0,e=a.length;e>d;d++)d in a&&b.call(c,a[d],d,a);else for(var f in a)a.hasOwnProperty(f)&&b.call(c,a[f],f,a)},Y=function(a){for(var b=arguments,c=1,d=function(b,c){a[c]=b};c=c&&!d&&f.end()},isFail:function(){return d},fail:function(){!d&&a(d=!0)},end:function(){e||(e=!0,a())}};return f},each:X,afor:function(a,b){var c=0,d=a.length;W(a)&&d--?!function e(){b(d!=c&&e,a[c],c++)}():b(!1)},extend:Y,isFile:function(a){return"[object File]"===N.call(a)},isBlob:function(a){return this.isFile(a)||"[object Blob]"===N.call(a)},isCanvas:function(a){return a&&J.test(a.nodeName)},getFilesFilter:function(a){return a="string"==typeof a?a:a.getAttribute&&a.getAttribute("accept")||"",a?new RegExp("("+a.replace(/\./g,"\\.").replace(/,/g,"|")+")$","i"):/./},readAsDataURL:function(a,b){ca.isCanvas(a)?c(a,b,"load",ca.toDataURL(a)):e(a,b,"DataURL")},readAsBinaryString:function(a,b){d("BinaryString")?e(a,b,"BinaryString"):e(a,function(a){if("load"==a.type)try{a.result=ca.toBinaryString(a.result)}catch(c){a.type="error",a.message=c.toString()}b(a)},"DataURL")},readAsArrayBuffer:function(a,b){e(a,b,"ArrayBuffer")},readAsText:function(a,b,c){c||(c=b,b="utf-8"),e(a,c,"Text",b)},toDataURL:function(a,b){return"string"==typeof a?a:a.toDataURL?a.toDataURL(b||"image/png"):void 0},toBinaryString:function(b){return a.atob(ca.toDataURL(b).replace(M,""))},readAsImage:function(a,d,e){if(ca.isBlob(a))if(w){var f=w.createObjectURL(a);f===b?c(a,d,"error"):ca.readAsImage(f,d,e)}else ca.readAsDataURL(a,function(b){"load"==b.type?ca.readAsImage(b.result,d,e):(e||"error"==b.type)&&c(a,d,b,null,{loaded:b.loaded,total:b.total})});else if(ca.isCanvas(a))c(a,d,"load",a);else if(I.test(a.nodeName))if(a.complete)c(a,d,"load",a);else{var g="error abort load";_(a,g,function i(b){"load"==b.type&&w&&w.revokeObjectURL(a.src),$(a,g,i),c(a,d,b,a)})}else if(a.iframe)c(a,d,{type:"error"});else{var h=ca.newImage(a.dataURL||a);ca.readAsImage(h,d,e)}},checkFileObj:function(a){var b={},c=ca.accept;return"object"==typeof a?b=a:b.name=(a+"").split(/\\|\//g).pop(),null==b.type&&(b.type=b.name.split(".").pop()),X(c,function(a,c){a=new RegExp(a.replace(/\s/g,"|"),"i"),(a.test(b.type)||ca.ext2mime[b.type])&&(b.type=ca.ext2mime[b.type]||c.split("/")[0]+"/"+b.type)}),b},getDropFiles:function(a,b){var c,d=[],e=[],j=l(a),k=j.files,m=j.items,n=W(m)&&m[0]&&h(m[0]),o=ca.queue(function(){b(d,e)});if(n)if(G&&k){var p,q,r=k.length;for(c=new Array(r);r--;){p=k[r];try{q=h(m[r])}catch(s){ca.log("[err] getDropFiles: ",s),q=null}g(q)&&(q.isDirectory||q.isFile&&p.name==p.name.normalize("NFC"))?c[r]=q:c[r]=p}}else c=m;else c=k;X(c||[],function(a){o.inc();try{n&&g(a)?i(a,function(a,b,c){a?ca.log("[err] getDropFiles:",a):d.push.apply(d,b),e.push.apply(e,c),o.next()}):f(a,function(b,c){b?d.push(a):a.error=c,e.push(a),o.next()})}catch(b){o.next(),ca.log("[err] getDropFiles: ",b)}}),o.check()},getFiles:function(a,b,c){var d=[];return c?(ca.filterFiles(ca.getFiles(a),b,c),null):(a.jquery&&(a.each(function(){d=d.concat(ca.getFiles(this))}),a=d,d=[]),"string"==typeof b&&(b=ca.getFilesFilter(b)),a.originalEvent?a=aa(a.originalEvent):a.srcElement&&(a=aa(a)),a.dataTransfer?a=a.dataTransfer:a.target&&(a=a.target),a.files?(d=a.files,D||(d[0].blob=a,d[0].iframe=!0)):!D&&k(a)?ca.trim(a.value)&&(d=[ca.checkFileObj(a.value)],d[0].blob=a,d[0].iframe=!0):W(a)&&(d=a),ca.filter(d,function(a){return!b||b.test(a.name)}))},getTotalSize:function(a){for(var b=0,c=a&&a.length;c--;)b+=a[c].size;return b},getInfo:function(a,b){var c={},d=R.concat();ca.isBlob(a)?!function e(){var f=d.shift();f?f.test(a.type)?f(a,function(a,d){a?b(a):(Y(c,d),e())}):e():b(!1,c)}():b("not_support_info",c)},addInfoReader:function(a,b){b.test=function(b){return a.test(b)},R.push(b)},filter:function(a,b){for(var c,d=[],e=0,f=a.length;f>e;e++)e in a&&(c=a[e],b.call(c,c,e,a)&&d.push(c));return d},filterFiles:function(a,b,c){if(a.length){var d,e=a.concat(),f=[],g=[];!function h(){e.length?(d=e.shift(),ca.getInfo(d,function(a,c){(b(d,a?!1:c)?f:g).push(d),h()})):c(f,g)}()}else c([],a)},upload:function(a){a=Y({jsonp:"callback",prepare:ca.F,beforeupload:ca.F,upload:ca.F,fileupload:ca.F,fileprogress:ca.F,filecomplete:ca.F,progress:ca.F,complete:ca.F,pause:ca.F,imageOriginal:!0,chunkSize:ca.chunkSize,chunkUploadRetry:ca.chunkUploadRetry,uploadRetry:ca.uploadRetry},a),a.imageAutoOrientation&&!a.imageTransform&&(a.imageTransform={rotate:"auto"});var b,c=new ca.XHR(a),d=this._getFilesDataArray(a.files),e=this,f=0,g=0,h=!1;return X(d,function(a){f+=a.size}),c.files=[],X(d,function(a){c.files.push(a.file)}),c.total=f,c.loaded=0,c.filesLeft=d.length,a.beforeupload(c,a),b=function(){var i=d.shift(),k=i&&i.file,l=!1,m=j(a);if(c.filesLeft=d.length,k&&k.name===ca.expando&&(k=null,ca.log("[warn] FileAPI.upload() — called without files")),("abort"!=c.statusText||c.current)&&i){if(h=!1,c.currentFile=k,k&&a.prepare(k,m)===!1)return void b.call(e);m.file=k,e._getFormData(m,i,function(h){g||a.upload(c,a);var j=new ca.XHR(Y({},m,{upload:k?function(){a.fileupload(k,j,m)}:q,progress:k?function(b){l||(l=b.loaded===b.total,a.fileprogress({type:"progress",total:i.total=b.total,loaded:i.loaded=b.loaded},k,j,m),a.progress({type:"progress",total:f,loaded:c.loaded=g+i.size*(b.loaded/b.total)||0},k,j,m))}:q,complete:function(d){X(T,function(a){c[a]=j[a]}),k&&(i.total=i.total||i.size,i.loaded=i.total,d||(this.progress(i),l=!0,g+=i.size,c.loaded=g),a.filecomplete(d,j,k,m)),setTimeout(function(){b.call(e)},0)}}));c.abort=function(a){a||(d.length=0),this.current=a,j.abort()},j.send(h)})}else{var n=200==c.status||201==c.status||204==c.status;a.complete(n?!1:c.statusText||"error",c,a),h=!0}},setTimeout(b,0),c.append=function(a,g){a=ca._getFilesDataArray([].concat(a)),X(a,function(a){f+=a.size,c.files.push(a.file),g?d.unshift(a):d.push(a)}),c.statusText="",h&&b.call(e)},c.remove=function(a){for(var b,c=d.length;c--;)d[c].file==a&&(b=d.splice(c,1),f-=b.size);return b},c},_getFilesDataArray:function(a){var b=[],c={};if(k(a)){var d=ca.getFiles(a);c[a.name||"file"]=null!==a.getAttribute("multiple")?d:d[0]}else W(a)&&k(a[0])?X(a,function(a){c[a.name||"file"]=ca.getFiles(a)}):c=a;return X(c,function e(a,c){W(a)?X(a,function(a){e(a,c)}):a&&(a.name||a.image)&&b.push({name:c,file:a,size:a.size,total:a.size,loaded:0})}),b.length||b.push({file:{name:ca.expando}}),b},_getFormData:function(a,b,c){var d=b.file,e=b.name,f=d.name,g=d.type,h=ca.support.transform&&a.imageTransform,i=new ca.Form,j=ca.queue(function(){c(i)}),k=h&&m(h),l=ca.postNameConcat;X(a.data,function n(a,b){"object"==typeof a?X(a,function(a,c){n(a,l(b,c))}):i.append(b,a)}),function o(b){b.image?(j.inc(),b.toData(function(a,c){b.file&&(c.type=b.file.type,c.quality=b.matrix.quality,f=b.file&&b.file.name),f=f||(new Date).getTime()+".png",o(c),j.next()})):ca.Image&&h&&(/^image/.test(b.type)||K.test(b.nodeName))?(j.inc(),k&&(h=[h]),ca.Image.transform(b,h,a.imageAutoOrientation,function(c,d){if(k&&!c)H||ca.flashEngine||(i.multipart=!0),i.append(e,d[0],f,h[0].type||g);else{var m=0;c||X(d,function(a,b){H||ca.flashEngine||(i.multipart=!0),h[b].postName||(m=1),i.append(h[b].postName||l(e,b),a,f,h[b].type||g)}),(c||a.imageOriginal)&&i.append(l(e,m?"original":null),b,f,g)}j.next()})):f!==ca.expando&&i.append(e,b,f)}(d),j.check()},reset:function(a,b){var c,d;return C?(d=C(a).clone(!0).insertBefore(a).val("")[0],b||C(a).remove()):(c=a.parentNode,d=c.insertBefore(a.cloneNode(!0),a),d.value="",b||c.removeChild(a),X(Q[ca.uid(a)],function(b,c){X(b,function(b){$(a,c,b),Z(d,c,b)})})),d},load:function(a,b){var c=ca.getXHR();return c?(c.open("GET",a,!0),c.overrideMimeType&&c.overrideMimeType("text/plain; charset=x-user-defined"),Z(c,"progress",function(a){a.lengthComputable&&b({type:a.type,loaded:a.loaded,total:a.total},c)}),c.onreadystatechange=function(){if(4==c.readyState)if(c.onreadystatechange=null,200==c.status){a=a.split("/");var d={name:a[a.length-1],size:c.getResponseHeader("Content-Length"),type:c.getResponseHeader("Content-Type")};d.dataURL="data:"+d.type+";base64,"+ca.encode64(c.responseBody||c.responseText),b({type:"load",result:d},c)}else b({type:"error"},c)},c.send(null)):b({type:"error"}),c},encode64:function(a){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c="",d=0;for("string"!=typeof a&&(a=String(a));d>2,k=(3&g)<<4|h>>4;isNaN(h)?e=f=64:(e=(15&h)<<2|i>>6,f=isNaN(i)?64:63&i),c+=b.charAt(j)+b.charAt(k)+b.charAt(e)+b.charAt(f)}return c}};ca.addInfoReader(/^image/,function(a,b){if(!a.__dimensions){var c=a.__dimensions=ca.defer();ca.readAsImage(a,function(a){var b=a.target;c.resolve("load"==a.type?!1:"error",{width:b.width,height:b.height}),b.src=ca.EMPTY_PNG,b=null})}a.__dimensions.then(b)}),ca.event.dnd=function(a,b,c){var d,e;c||(c=b,b=ca.F),z?(Z(a,"dragenter dragleave dragover",b.ff=b.ff||function(a){for(var c=l(a).types,f=c&&c.length,g=!1;f--;)if(~c[f].indexOf("File")){a[V](),e!==a.type&&(e=a.type,"dragleave"!=e&&b.call(a[U],!0,a),g=!0);break}g&&(clearTimeout(d),d=setTimeout(function(){b.call(a[U],"dragleave"!=e,a)},50))}),Z(a,"drop",c.ff=c.ff||function(a){a[V](),e=0,b.call(a[U],!1,a),ca.getDropFiles(a,function(b,d){c.call(a[U],b,d,a)})})):ca.log("Drag'n'Drop -- not supported")},ca.event.dnd.off=function(a,b,c){$(a,"dragenter dragleave dragover",b.ff),$(a,"drop",c.ff)},C&&!C.fn.dnd&&(C.fn.dnd=function(a,b){return this.each(function(){ca.event.dnd(this,a,b)})},C.fn.offdnd=function(a,b){return this.each(function(){ca.event.dnd.off(this,a,b)})}),a.FileAPI=Y(ca,a.FileAPI),ca.log("FileAPI: "+ca.version),ca.log("protocol: "+a.location.protocol),ca.log("doctype: ["+s.name+"] "+s.publicId+" "+s.systemId),X(r.getElementsByTagName("meta"),function(a){/x-ua-compatible/i.test(a.getAttribute("http-equiv"))&&ca.log("meta.http-equiv: "+a.getAttribute("content"))});try{n=!!console.log,o=!!console.log.apply}catch(da){}ca.flashUrl||(ca.flashUrl=ca.staticPath+"FileAPI.flash.swf"),ca.flashImageUrl||(ca.flashImageUrl=ca.staticPath+"FileAPI.flash.image.swf"),ca.flashWebcamUrl||(ca.flashWebcamUrl=ca.staticPath+"FileAPI.flash.camera.swf")}(window,void 0),function(a,b,c){"use strict";function d(b){if(b instanceof d){var c=new d(b.file);return a.extend(c.matrix,b.matrix),c}return this instanceof d?(this.file=b,this.size=b.size||100,void(this.matrix={sx:0,sy:0,sw:0,sh:0,dx:0,dy:0,dw:0,dh:0,resize:0,deg:0,quality:1,filter:0})):new d(b)}var e=Math.min,f=Math.round,g=function(){return b.createElement("canvas")},h=!1,i={8:270,3:180,6:90,7:270,4:180,5:90};try{h=g().toDataURL("image/png").indexOf("data:image/png")>-1}catch(j){}d.prototype={image:!0,constructor:d,set:function(b){return a.extend(this.matrix,b),this},crop:function(a,b,d,e){return d===c&&(d=a,e=b,a=b=0),this.set({sx:a,sy:b,sw:d,sh:e||d})},resize:function(a,b,c){return/min|max|height|width/.test(b)&&(c=b,b=a),this.set({dw:a,dh:b||a,resize:c})},preview:function(a,b){return this.resize(a,b||a,"preview")},rotate:function(a){return this.set({deg:a})},filter:function(a){return this.set({filter:a})},overlay:function(a){return this.set({overlay:a})},clone:function(){return new d(this)},_load:function(b,c){var d=this;/img|video/i.test(b.nodeName)?c.call(d,null,b):a.readAsImage(b,function(a){c.call(d,"load"!=a.type,a.result)})},_apply:function(b,c){var f,h=g(),i=this.getMatrix(b),j=h.getContext("2d"),k=b.videoWidth||b.width,l=b.videoHeight||b.height,m=i.deg,n=i.dw,o=i.dh,p=k,q=l,r=i.filter,s=b,t=i.overlay,u=a.queue(function(){b.src=a.EMPTY_PNG,c(!1,h)}),v=a.renderImageToCanvas;for(m-=360*Math.floor(m/360),b._type=this.file.type;i.multipass&&e(p/n,q/o)>2;)p=p/2+.5|0,q=q/2+.5|0,f=g(),f.width=p,f.height=q,s!==b?(v(f,s,0,0,s.width,s.height,0,0,p,q),s=f):(s=f,v(s,b,i.sx,i.sy,i.sw,i.sh,0,0,p,q),i.sx=i.sy=i.sw=i.sh=0);h.width=m%180?o:n,h.height=m%180?n:o,h.type=i.type,h.quality=i.quality,j.rotate(m*Math.PI/180),v(j.canvas,s,i.sx,i.sy,i.sw||s.width,i.sh||s.height,180==m||270==m?-n:0,90==m||180==m?-o:0,n,o),n=h.width,o=h.height,t&&a.each([].concat(t),function(b){u.inc();var c=new window.Image,d=function(){var e=0|b.x,f=0|b.y,g=b.w||c.width,h=b.h||c.height,i=b.rel;e=1==i||4==i||7==i?(n-g+e)/2:2==i||5==i||8==i?n-(g+e):e,f=3==i||4==i||5==i?(o-h+f)/2:i>=6?o-(h+f):f,a.event.off(c,"error load abort",d);try{j.globalAlpha=b.opacity||1,j.drawImage(c,e,f,g,h)}catch(k){}u.next()};a.event.on(c,"error load abort",d),c.src=b.src,c.complete&&d()}),r&&(u.inc(),d.applyFilter(h,r,u.next)),u.check()},getMatrix:function(b){var c=a.extend({},this.matrix),d=c.sw=c.sw||b.videoWidth||b.naturalWidth||b.width,g=c.sh=c.sh||b.videoHeight||b.naturalHeight||b.height,h=c.dw=c.dw||d,i=c.dh=c.dh||g,j=d/g,k=h/i,l=c.resize;if("preview"==l){if(h!=d||i!=g){var m,n;k>=j?(m=d,n=m/k):(n=g,m=n*k),(m!=d||n!=g)&&(c.sx=~~((d-m)/2),c.sy=~~((g-n)/2),d=m,g=n)}}else"height"==l?h=i*j:"width"==l?i=h/j:l&&(d>h||g>i?"min"==l?(h=f(k>j?e(d,h):i*j),i=f(k>j?h/j:e(g,i))):(h=f(j>=k?e(d,h):i*j),i=f(j>=k?h/j:e(g,i))):(h=d,i=g));return c.sw=d,c.sh=g,c.dw=h,c.dh=i,c.multipass=a.multiPassResize,c},_trans:function(b){this._load(this.file,function(c,d){if(c)b(c);else try{this._apply(d,b)}catch(c){a.log("[err] FileAPI.Image.fn._apply:",c),b(c)}})},get:function(b){if(a.support.transform){var c=this,d=c.matrix;"auto"==d.deg?a.getInfo(c.file,function(a,e){d.deg=i[e&&e.exif&&e.exif.Orientation]||0,c._trans(b)}):c._trans(b)}else b("not_support_transform");return this},toData:function(a){return this.get(a)}},d.exifOrientation=i,d.transform=function(b,e,f,g){function h(h,i){var j={},k=a.queue(function(a){g(a,j)});h?k.fail():a.each(e,function(a,e){if(!k.isFail()){var g=new d(i.nodeType?i:b),h="function"==typeof a;if(h?a(i,g):a.width?g[a.preview?"preview":"resize"](a.width,a.height,a.strategy):a.maxWidth&&(i.width>a.maxWidth||i.height>a.maxHeight)&&g.resize(a.maxWidth,a.maxHeight,"max"),a.crop){var l=a.crop;g.crop(0|l.x,0|l.y,l.w||l.width,l.h||l.height)}a.rotate===c&&f&&(a.rotate="auto"),g.set({type:g.matrix.type||a.type||b.type||"image/png"}),h||g.set({deg:a.rotate,overlay:a.overlay,filter:a.filter,quality:a.quality||1}),k.inc(),g.toData(function(a,b){a?k.fail():(j[e]=b,k.next())})}})}b.width?h(!1,b):a.getInfo(b,h)},a.each(["TOP","CENTER","BOTTOM"],function(b,c){a.each(["LEFT","CENTER","RIGHT"],function(a,e){d[b+"_"+a]=3*c+e,d[a+"_"+b]=3*c+e})}),d.toCanvas=function(a){var c=b.createElement("canvas");return c.width=a.videoWidth||a.width,c.height=a.videoHeight||a.height,c.getContext("2d").drawImage(a,0,0),c},d.fromDataURL=function(b,c,d){var e=a.newImage(b);a.extend(e,c),d(e)},d.applyFilter=function(b,c,e){"function"==typeof c?c(b,e):window.Caman&&window.Caman("IMG"==b.tagName?d.toCanvas(b):b,function(){"string"==typeof c?this[c]():a.each(c,function(a,b){this[b](a)},this),this.render(e)})},a.renderImageToCanvas=function(b,c,d,e,f,g,h,i,j,k){try{return b.getContext("2d").drawImage(c,d,e,f,g,h,i,j,k)}catch(l){throw a.log("renderImageToCanvas failed"),l}},a.support.canvas=a.support.transform=h,a.Image=d}(FileAPI,document),function(a){"use strict";a(FileAPI)}(function(a){"use strict";if(window.navigator&&window.navigator.platform&&/iP(hone|od|ad)/.test(window.navigator.platform)){var b=a.renderImageToCanvas;a.detectSubsampling=function(a){var b,c;return a.width*a.height>1048576?(b=document.createElement("canvas"),b.width=b.height=1,c=b.getContext("2d"),c.drawImage(a,-a.width+1,0),0===c.getImageData(0,0,1,1).data[3]):!1},a.detectVerticalSquash=function(a,b){var c,d,e,f,g,h=a.naturalHeight||a.height,i=document.createElement("canvas"),j=i.getContext("2d");for(b&&(h/=2),i.width=1,i.height=h,j.drawImage(a,0,0),c=j.getImageData(0,0,1,h).data,d=0,e=h,f=h;f>d;)g=c[4*(f-1)+3],0===g?e=f:d=f,f=e+d>>1;return f/h||1},a.renderImageToCanvas=function(c,d,e,f,g,h,i,j,k,l){if("image/jpeg"===d._type){var m,n,o,p,q=c.getContext("2d"),r=document.createElement("canvas"),s=1024,t=r.getContext("2d");if(r.width=s,r.height=s,q.save(),m=a.detectSubsampling(d),m&&(e/=2,f/=2,g/=2,h/=2),n=a.detectVerticalSquash(d,m),m||1!==n){for(f*=n,k=Math.ceil(s*k/g),l=Math.ceil(s*l/h/n),j=0,p=0;h>p;){for(i=0,o=0;g>o;)t.clearRect(0,0,s,s),t.drawImage(d,e,f,g,h,-o,-p,g,h),q.drawImage(r,0,0,s,s,i,j,k,l),o+=s,i+=k;p+=s,j+=l}return q.restore(),c}}return b(c,d,e,f,g,h,i,j,k,l)}}}),function(a,b){"use strict";function c(b,c,d){var e=b.blob,f=b.file;if(f){if(!e.toDataURL)return void a.readAsBinaryString(e,function(a){"load"==a.type&&c(b,a.result)});var g={"image/jpeg":".jpe?g","image/png":".png"},h=g[b.type]?b.type:"image/png",i=g[h]||".png",j=e.quality||1;f.match(new RegExp(i+"$","i"))||(f+=i.replace("?","")),b.file=f,b.type=h,!d&&e.toBlob?e.toBlob(function(a){c(b,a)},h,j):c(b,a.toBinaryString(e.toDataURL(h,j)))}else c(b,e)}var d=b.document,e=b.FormData,f=function(){this.items=[]},g=b.encodeURIComponent;f.prototype={append:function(a,b,c,d){this.items.push({name:a,blob:b&&b.blob||(void 0==b?"":b),file:b&&(c||b.name),type:b&&(d||b.type)})},each:function(a){for(var b=0,c=this.items.length;c>b;b++)a.call(this,this.items[b])},toData:function(b,c){c._chunked=a.support.chunked&&c.chunkSize>0&&1==a.filter(this.items,function(a){return a.file}).length,a.support.html5?a.formData&&!this.multipart&&e?c._chunked?(a.log("FileAPI.Form.toPlainData"),this.toPlainData(b)):(a.log("FileAPI.Form.toFormData"),this.toFormData(b)):(a.log("FileAPI.Form.toMultipartData"),this.toMultipartData(b)):(a.log("FileAPI.Form.toHtmlData"),this.toHtmlData(b))},_to:function(b,c,d,e){var f=a.queue(function(){c(b)});this.each(function(g){try{d(g,b,f,e)}catch(h){a.log("FileAPI.Form._to: "+h.message),c(h)}}),f.check()},toHtmlData:function(b){this._to(d.createDocumentFragment(),b,function(b,c){var e,f=b.blob;b.file?(a.reset(f,!0),f.name=b.name,f.disabled=!1,c.appendChild(f)):(e=d.createElement("input"),e.name=b.name,e.type="hidden",e.value=f,c.appendChild(e))})},toPlainData:function(a){this._to({},a,function(a,b,d){a.file&&(b.type=a.file),a.blob.toBlob?(d.inc(),c(a,function(a,c){b.name=a.name,b.file=c,b.size=c.length,b.type=a.type,d.next()})):a.file?(b.name=a.blob.name,b.file=a.blob,b.size=a.blob.size,b.type=a.type):(b.params||(b.params=[]),b.params.push(g(a.name)+"="+g(a.blob))),b.start=-1,b.end=b.file&&b.file.FileAPIReadPosition||-1,b.retry=0})},toFormData:function(a){this._to(new e,a,function(a,b,d){a.blob&&a.blob.toBlob?(d.inc(),c(a,function(a,c){b.append(a.name,c,a.file),d.next()})):a.file?b.append(a.name,a.blob,a.file):b.append(a.name,a.blob),a.file&&b.append("_"+a.name,a.file)})},toMultipartData:function(b){this._to([],b,function(a,b,d,e){d.inc(),c(a,function(a,c){b.push("--_"+e+('\r\nContent-Disposition: form-data; name="'+a.name+'"'+(a.file?'; filename="'+g(a.file)+'"':"")+(a.file?"\r\nContent-Type: "+(a.type||"application/octet-stream"):"")+"\r\n\r\n"+(a.file?c:g(c))+"\r\n")),d.next()},!0)},a.expando)}},a.Form=f}(FileAPI,window),function(a,b){"use strict";var c=function(){},d=a.document,e=function(a){this.uid=b.uid(),this.xhr={abort:c,getResponseHeader:c,getAllResponseHeaders:c},this.options=a},f={"":1,XML:1,Text:1,Body:1};e.prototype={status:0,statusText:"",constructor:e,getResponseHeader:function(a){return this.xhr.getResponseHeader(a)},getAllResponseHeaders:function(){return this.xhr.getAllResponseHeaders()||{}},end:function(d,e){var f=this,g=f.options;f.end=f.abort=c,f.status=d,e&&(f.statusText=e),b.log("xhr.end:",d,e),g.complete(200==d||201==d?!1:f.statusText||"unknown",f),f.xhr&&f.xhr.node&&setTimeout(function(){var b=f.xhr.node;try{b.parentNode.removeChild(b)}catch(c){}try{delete a[f.uid]}catch(c){}a[f.uid]=f.xhr.node=null},9)},abort:function(){this.end(0,"abort"),this.xhr&&(this.xhr.aborted=!0,this.xhr.abort())},send:function(a){var b=this,c=this.options;a.toData(function(a){a instanceof Error?b.end(0,a.message):(c.upload(c,b),b._send.call(b,c,a))},c)},_send:function(c,e){var g,h=this,i=h.uid,j=h.uid+"Load",k=c.url;if(b.log("XHR._send:",e),c.cache||(k+=(~k.indexOf("?")?"&":"?")+b.uid()),e.nodeName){var l=c.jsonp;k=k.replace(/([a-z]+)=(\?)/i,"$1="+i),c.upload(c,h);var m=function(a){if(~k.indexOf(a.origin))try{var c=b.parseJSON(a.data);c.id==i&&n(c.status,c.statusText,c.response)}catch(d){n(0,d.message)}},n=a[i]=function(c,d,e){h.readyState=4,h.responseText=e,h.end(c,d),b.event.off(a,"message",m),a[i]=g=p=a[j]=null};h.xhr.abort=function(){try{p.stop?p.stop():p.contentWindow.stop?p.contentWindow.stop():p.contentWindow.document.execCommand("Stop")}catch(a){}n(0,"abort")},b.event.on(a,"message",m),a[j]=function(){try{var a=p.contentWindow,c=a.document,d=a.result||b.parseJSON(c.body.innerHTML);n(d.status,d.statusText,d.response)}catch(e){b.log("[transport.onload]",e)}},g=d.createElement("div"),g.innerHTML='
'+(l&&c.url.indexOf("=?")<0?'':"")+"
";var o=g.getElementsByTagName("form")[0],p=g.getElementsByTagName("iframe")[0];o.appendChild(e),b.log(o.parentNode.innerHTML),d.body.appendChild(g),h.xhr.node=g,h.readyState=2;try{o.submit()}catch(q){b.log("iframe.error: "+q)}o=null}else{if(k=k.replace(/([a-z]+)=(\?)&?/i,""),this.xhr&&this.xhr.aborted)return void b.log("Error: already aborted");if(g=h.xhr=b.getXHR(),e.params&&(k+=(k.indexOf("?")<0?"?":"&")+e.params.join("&")),g.open("POST",k,!0),b.withCredentials&&(g.withCredentials="true"),c.headers&&c.headers["X-Requested-With"]||g.setRequestHeader("X-Requested-With","XMLHttpRequest"),b.each(c.headers,function(a,b){g.setRequestHeader(b,a)}),c._chunked){g.upload&&g.upload.addEventListener("progress",b.throttle(function(a){e.retry||c.progress({type:a.type,total:e.size,loaded:e.start+a.loaded,totalSize:e.size},h,c)},100),!1),g.onreadystatechange=function(){var a=parseInt(g.getResponseHeader("X-Last-Known-Byte"),10);if(h.status=g.status,h.statusText=g.statusText,h.readyState=g.readyState,4==g.readyState){for(var d in f)h["response"+d]=g["response"+d];if(g.onreadystatechange=null,!g.status||g.status-201>0)if(b.log("Error: "+g.status),(!g.status&&!g.aborted||500==g.status||416==g.status)&&++e.retry<=c.chunkUploadRetry){var i=g.status?0:b.chunkNetworkDownRetryTimeout;c.pause(e.file,c),b.log("X-Last-Known-Byte: "+a),a?e.end=a:(e.end=e.start-1,416==g.status&&(e.end=e.end-c.chunkSize)),setTimeout(function(){h._send(c,e)},i)}else h.end(g.status);else e.retry=0,e.end==e.size-1?h.end(g.status):(b.log("X-Last-Known-Byte: "+a),a&&(e.end=a),e.file.FileAPIReadPosition=e.end,setTimeout(function(){h._send(c,e)},0));g=null}},e.start=e.end+1,e.end=Math.max(Math.min(e.start+c.chunkSize,e.size)-1,e.start);var r=e.file,s=(r.slice||r.mozSlice||r.webkitSlice).call(r,e.start,e.end+1);e.size&&!s.size?setTimeout(function(){h.end(-1)}):(g.setRequestHeader("Content-Range","bytes "+e.start+"-"+e.end+"/"+e.size),g.setRequestHeader("Content-Disposition","attachment; filename="+encodeURIComponent(e.name)),g.setRequestHeader("Content-Type",e.type||"application/octet-stream"),g.send(s)),r=s=null}else if(g.upload&&g.upload.addEventListener("progress",b.throttle(function(a){c.progress(a,h,c)},100),!1),g.onreadystatechange=function(){if(h.status=g.status,h.statusText=g.statusText,h.readyState=g.readyState,4==g.readyState){for(var a in f)h["response"+a]=g["response"+a];if(g.onreadystatechange=null,!g.status||g.status>201)if(b.log("Error: "+g.status),(!g.status&&!g.aborted||500==g.status)&&(c.retry||0)=0?a+"px":a}function d(a){var c,d=f.createElement("canvas"),e=!1;try{c=d.getContext("2d"),c.drawImage(a,0,0,1,1),e=255!=c.getImageData(0,0,1,1).data[4]}catch(g){b.log("[FileAPI.Camera] detectVideoSignal:",g)}return e}var e=a.URL||a.webkitURL,f=a.document,g=a.navigator,h=g.getUserMedia||g.webkitGetUserMedia||g.mozGetUserMedia||g.msGetUserMedia,i=!!h;b.support.media=i;var j=function(a){this.video=a};j.prototype={isActive:function(){return!!this._active},start:function(a){var b,c,f=this,i=f.video,j=function(d){f._active=!d,clearTimeout(c),clearTimeout(b),a&&a(d,f)};h.call(g,{video:!0},function(a){f.stream=a,i.src=e.createObjectURL(a),b=setInterval(function(){d(i)&&j(null)},1e3),c=setTimeout(function(){j("timeout"); -},5e3),i.play()},j)},stop:function(){try{this._active=!1,this.video.pause();try{this.stream.stop()}catch(a){b.each(this.stream.getTracks(),function(a){a.stop()})}this.stream=null}catch(a){b.log("[FileAPI.Camera] stop:",a)}},shot:function(){return new k(this.video)}},j.get=function(a){return new j(a.firstChild)},j.publish=function(d,e,g){"function"==typeof e&&(g=e,e={}),e=b.extend({},{width:"100%",height:"100%",start:!0},e),d.jquery&&(d=d[0]);var h=function(a){if(a)g(a);else{var b=j.get(d);e.start?b.start(g):g(null,b)}};if(d.style.width=c(e.width),d.style.height=c(e.height),b.html5&&i){var k=f.createElement("video");k.style.width=c(e.width),k.style.height=c(e.height),a.jQuery?jQuery(d).empty():d.innerHTML="",d.appendChild(k),h()}else j.fallback(d,e,h)},j.fallback=function(a,b,c){c("not_support_camera")};var k=function(a){var c=a.nodeName?b.Image.toCanvas(a):a,d=b.Image(c);return d.type="image/png",d.width=c.width,d.height=c.height,d.size=c.width*c.height*4,d};j.Shot=k,b.Camera=j}(window,FileAPI),function(a,b,c){"use strict";var d=a.document,e=a.location,f=a.navigator,g=c.each;c.support.flash=function(){var b=f.mimeTypes,d=!1;if(f.plugins&&"object"==typeof f.plugins["Shockwave Flash"])d=f.plugins["Shockwave Flash"].description&&!(b&&b["application/x-shockwave-flash"]&&!b["application/x-shockwave-flash"].enabledPlugin);else try{d=!(!a.ActiveXObject||!new ActiveXObject("ShockwaveFlash.ShockwaveFlash"))}catch(g){c.log("Flash -- does not supported.")}return d&&/^file:/i.test(e)&&c.log("[warn] Flash does not work on `file:` protocol."),d}(),c.support.flash&&(!c.html5||!c.support.html5||c.cors&&!c.support.cors||c.media&&!c.support.media)&&function(){function h(a){return('').replace(/#(\w+)#/gi,function(b,c){return a[c]})}function i(a,b){if(a&&a.style){var c,d;for(c in b){d=b[c],"number"==typeof d&&(d+="px");try{a.style[c]=d}catch(e){}}}}function j(a,b){g(b,function(b,c){var d=a[c];a[c]=function(){return this.parent=d,b.apply(this,arguments)}})}function k(a){return a&&!a.flashId}function l(a){var b=a.wid=c.uid();return v._fn[b]=a,"FileAPI.Flash._fn."+b}function m(a){try{v._fn[a.wid]=null,delete v._fn[a.wid]}catch(b){}}function n(a,b){if(!u.test(a)){if(/^\.\//.test(a)||"/"!=a.charAt(0)){var c=e.pathname;c=c.substr(0,c.lastIndexOf("/")),a=(c+"/"+a).replace("/./","/")}"//"!=a.substr(0,2)&&(a="//"+e.host+a),u.test(a)||(a=e.protocol+a)}return b&&(a+=(/\?/.test(a)?"&":"?")+b),a}function o(a,b,e){function f(){try{var a=v.get(j);a.setImage(b)}catch(d){c.log('[err] FlashAPI.Preview.setImage -- can not set "base64":',d)}}var g,j=c.uid(),k=d.createElement("div"),o=10;for(g in a)k.setAttribute(g,a[g]),k[g]=a[g];i(k,a),a.width="100%",a.height="100%",k.innerHTML=h(c.extend({id:j,src:n(c.flashImageUrl,"r="+c.uid()),wmode:"opaque",flashvars:"scale="+a.scale+"&callback="+l(function p(){return m(p),--o>0&&f(),!0})},a)),e(!1,k),k=null}function p(a){return{id:a.id,name:a.name,matrix:a.matrix,flashId:a.flashId}}function q(b){var c=b.getBoundingClientRect(),e=d.body,f=(b&&b.ownerDocument).documentElement;return{top:c.top+(a.pageYOffset||f.scrollTop)-(f.clientTop||e.clientTop||0),left:c.left+(a.pageXOffset||f.scrollLeft)-(f.clientLeft||e.clientLeft||0),width:c.right-c.left,height:c.bottom-c.top}}var r=c.uid(),s=0,t={},u=/^https?:/i,v={_fn:{},init:function(){var a=d.body&&d.body.firstChild;if(a)do if(1==a.nodeType){c.log("FlashAPI.state: awaiting");var b=d.createElement("div");return b.id="_"+r,i(b,{top:1,right:1,width:5,height:5,position:"absolute",zIndex:"2147483647"}),a.parentNode.insertBefore(b,a),void v.publish(b,r)}while(a=a.nextSibling);10>s&&setTimeout(v.init,50*++s)},publish:function(a,b,d){d=d||{},a.innerHTML=h({id:b,src:n(c.flashUrl,"r="+c.version),wmode:d.camera?"":"transparent",flashvars:"callback="+(d.onEvent||"FileAPI.Flash.onEvent")+"&flashId="+b+"&storeKey="+f.userAgent.match(/\d/gi).join("")+"_"+c.version+(v.isReady||(c.pingUrl?"&ping="+c.pingUrl:""))+"&timeout="+c.flashAbortTimeout+(d.camera?"&useCamera="+n(c.flashWebcamUrl):"")+"&debug="+(c.debug?"1":"")},d)},ready:function(){c.log("FlashAPI.state: ready"),v.ready=c.F,v.isReady=!0,v.patch(),v.patchCamera&&v.patchCamera(),c.event.on(d,"mouseover",v.mouseover),c.event.on(d,"click",function(a){v.mouseover(a)&&(a.preventDefault?a.preventDefault():a.returnValue=!0)})},getEl:function(){return d.getElementById("_"+r)},getWrapper:function(a){do if(/js-fileapi-wrapper/.test(a.className))return a;while((a=a.parentNode)&&a!==d.body)},mouseover:function(a){var b=c.event.fix(a).target;if(/input/i.test(b.nodeName)&&"file"==b.type&&!b.disabled){var e=b.getAttribute(r),f=v.getWrapper(b);if(c.multiFlash){if("i"==e||"r"==e)return!1;if("p"!=e){b.setAttribute(r,"i");var g=d.createElement("div");if(!f)return void c.log("[err] FlashAPI.mouseover: js-fileapi-wrapper not found");i(g,{top:0,left:0,width:b.offsetWidth,height:b.offsetHeight,zIndex:"2147483647",position:"absolute"}),f.appendChild(g),v.publish(g,c.uid()),b.setAttribute(r,"p")}return!0}if(f){var h=q(f);i(v.getEl(),h),v.curInp=b}}else/object|embed/i.test(b.nodeName)||i(v.getEl(),{top:1,left:1,width:5,height:5})},onEvent:function(a){var b=a.type;if("ready"==b){try{v.getInput(a.flashId).setAttribute(r,"r")}catch(d){}return v.ready(),setTimeout(function(){v.mouseenter(a)},50),!0}"ping"===b?c.log("(flash -> js).ping:",[a.status,a.savedStatus],a.error):"log"===b?c.log("(flash -> js).log:",a.target):b in v&&setTimeout(function(){c.log("FlashAPI.event."+a.type+":",a),v[b](a)},1)},mouseenter:function(a){var b=v.getInput(a.flashId);if(b){v.cmd(a,"multiple",null!=b.getAttribute("multiple"));var d=[],e={};g((b.getAttribute("accept")||"").split(/,\s*/),function(a){c.accept[a]&&g(c.accept[a].split(" "),function(a){e[a]=1})}),g(e,function(a,b){d.push(b)}),v.cmd(a,"accept",d.length?d.join(",")+","+d.join(",").toUpperCase():"*")}},get:function(b){return d[b]||a[b]||d.embeds[b]},getInput:function(a){if(!c.multiFlash)return v.curInp;try{var b=v.getWrapper(v.get(a));if(b)return b.getElementsByTagName("input")[0]}catch(d){c.log('[err] Can not find "input" by flashId:',a,d)}},select:function(a){var e,f=v.getInput(a.flashId),h=c.uid(f),i=a.target.files;g(i,function(a){c.checkFileObj(a)}),t[h]=i,d.createEvent?(e=d.createEvent("Event"),e.files=i,e.initEvent("change",!0,!0),f.dispatchEvent(e)):b?b(f).trigger({type:"change",files:i}):(e=d.createEventObject(),e.files=i,f.fireEvent("onchange",e))},cmd:function(a,b,d,e){try{return c.log("(js -> flash)."+b+":",d),v.get(a.flashId||a).cmd(b,d)}catch(f){c.log("(js -> flash).onError:",f.toString()),e||setTimeout(function(){v.cmd(a,b,d,!0)},50)}},patch:function(){c.flashEngine=!0,j(c,{getFiles:function(a,b,d){if(d)return c.filterFiles(c.getFiles(a),b,d),null;var e=c.isArray(a)?a:t[c.uid(a.target||a.srcElement||a)];return e?(b&&(b=c.getFilesFilter(b),e=c.filter(e,function(a){return b.test(a.name)})),e):this.parent.apply(this,arguments)},getInfo:function(a,b){if(k(a))this.parent.apply(this,arguments);else if(a.isShot)b(null,a.info={width:a.width,height:a.height});else{if(!a.__info){var d=a.__info=c.defer();v.cmd(a,"getFileInfo",{id:a.id,callback:l(function e(b,c){m(e),d.resolve(b,a.info=c)})})}a.__info.then(b)}}}),c.support.transform=!0,c.Image&&j(c.Image.prototype,{get:function(a,b){return this.set({scaleMode:b||"noScale"}),this.parent(a)},_load:function(a,b){if(c.log("FlashAPI.Image._load:",a),k(a))this.parent.apply(this,arguments);else{var d=this;c.getInfo(a,function(c){b.call(d,c,a)})}},_apply:function(a,b){if(c.log("FlashAPI.Image._apply:",a),k(a))this.parent.apply(this,arguments);else{var d=this.getMatrix(a.info),e=b;v.cmd(a,"imageTransform",{id:a.id,matrix:d,callback:l(function f(g,h){c.log("FlashAPI.Image._apply.callback:",g),m(f),g?e(g):c.support.html5||c.support.dataURI&&!(h.length>3e4)?(d.filter&&(e=function(a,e){a?b(a):c.Image.applyFilter(e,d.filter,function(){b(a,this.canvas)})}),c.newImage("data:"+a.type+";base64,"+h,e)):o({width:d.deg%180?d.dh:d.dw,height:d.deg%180?d.dw:d.dh,scale:d.scaleMode},h,e)})})}},toData:function(a){var b=this.file,d=b.info,e=this.getMatrix(d);c.log("FlashAPI.Image.toData"),k(b)?this.parent.apply(this,arguments):("auto"==e.deg&&(e.deg=c.Image.exifOrientation[d&&d.exif&&d.exif.Orientation]||0),a.call(this,!b.info,{id:b.id,flashId:b.flashId,name:b.name,type:b.type,matrix:e}))}}),c.Image&&j(c.Image,{fromDataURL:function(a,b,d){!c.support.dataURI||a.length>3e4?o(c.extend({scale:"exactFit"},b),a.replace(/^data:[^,]+,/,""),function(a,b){d(b)}):this.parent(a,b,d)}}),j(c.Form.prototype,{toData:function(a){for(var b=this.items,d=b.length;d--;)if(b[d].file&&k(b[d].blob))return this.parent.apply(this,arguments);c.log("FlashAPI.Form.toData"),a(b)}}),j(c.XHR.prototype,{_send:function(a,b){if(b.nodeName||b.append&&c.support.html5||c.isArray(b)&&"string"==typeof b[0])return this.parent.apply(this,arguments);var d,e,f={},h={},i=this;if(g(b,function(a){a.file?(h[a.name]=a=p(a.blob),e=a.id,d=a.flashId):f[a.name]=a.blob}),e||(d=r),!d)return c.log("[err] FlashAPI._send: flashId -- undefined"),this.parent.apply(this,arguments);c.log("FlashAPI.XHR._send: "+d+" -> "+e),i.xhr={headers:{},abort:function(){v.cmd(d,"abort",{id:e})},getResponseHeader:function(a){return this.headers[a]},getAllResponseHeaders:function(){return this.headers}};var j=c.queue(function(){v.cmd(d,"upload",{url:n(a.url.replace(/([a-z]+)=(\?)&?/i,"")),data:f,files:e?h:null,headers:a.headers||{},callback:l(function b(d){var e=d.type,f=d.result;c.log("FlashAPI.upload."+e),"progress"==e?(d.loaded=Math.min(d.loaded,d.total),d.lengthComputable=!0,a.progress(d)):"complete"==e?(m(b),"string"==typeof f&&(i.responseText=f.replace(/%22/g,'"').replace(/%5c/g,"\\").replace(/%26/g,"&").replace(/%25/g,"%")),i.end(d.status||200)):("abort"==e||"error"==e)&&(i.end(d.status||0,d.message),m(b))})})});g(h,function(a){j.inc(),c.getInfo(a,j.next)}),j.check()}})}};c.Flash=v,c.newImage("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==",function(a,b){c.support.dataURI=!(1!=b.width||1!=b.height),v.init()})}()}(window,window.jQuery,FileAPI),function(a,b,c){"use strict";var d=c.each,e=[];!c.support.flash||!c.media||c.support.media&&c.html5||!function(){function a(a){var b=a.wid=c.uid();return c.Flash._fn[b]=a,"FileAPI.Flash._fn."+b}function b(a){try{c.Flash._fn[a.wid]=null,delete c.Flash._fn[a.wid]}catch(b){}}var f=c.Flash;c.extend(c.Flash,{patchCamera:function(){c.Camera.fallback=function(d,e,g){var h=c.uid();c.log("FlashAPI.Camera.publish: "+h),f.publish(d,h,c.extend(e,{camera:!0,onEvent:a(function i(a){"camera"===a.type&&(b(i),a.error?(c.log("FlashAPI.Camera.publish.error: "+a.error),g(a.error)):(c.log("FlashAPI.Camera.publish.success: "+h),g(null)))})}))},d(e,function(a){c.Camera.fallback.apply(c.Camera,a)}),e=[],c.extend(c.Camera.prototype,{_id:function(){return this.video.id},start:function(d){var e=this;f.cmd(this._id(),"camera.on",{callback:a(function g(a){b(g),a.error?(c.log("FlashAPI.camera.on.error: "+a.error),d(a.error,e)):(c.log("FlashAPI.camera.on.success: "+e._id()),e._active=!0,d(null,e))})})},stop:function(){this._active=!1,f.cmd(this._id(),"camera.off")},shot:function(){c.log("FlashAPI.Camera.shot:",this._id());var a=c.Flash.cmd(this._id(),"shot",{});return a.type="image/png",a.flashId=this._id(),a.isShot=!0,new c.Camera.Shot(a)}})}}),c.Camera.fallback=function(){e.push(arguments)}}()}(window,window.jQuery,FileAPI),"function"==typeof define&&define.amd&&define("FileAPI",[],function(){return FileAPI}); \ No newline at end of file +/*! FileAPI 2.0.20 - BSD | git://github.com/mailru/FileAPI.git */ +!function(a){"use strict";var b=a.HTMLCanvasElement&&a.HTMLCanvasElement.prototype,c=a.Blob&&function(){try{return Boolean(new Blob)}catch(a){return!1}}(),d=c&&a.Uint8Array&&function(){try{return 100===new Blob([new Uint8Array(100)]).size}catch(a){return!1}}(),e=a.BlobBuilder||a.WebKitBlobBuilder||a.MozBlobBuilder||a.MSBlobBuilder,f=(c||e)&&a.atob&&a.ArrayBuffer&&a.Uint8Array&&function(a){var b,f,g,h,i,j;for(b=a.split(",")[0].indexOf("base64")>=0?atob(a.split(",")[1]):decodeURIComponent(a.split(",")[1]),f=new ArrayBuffer(b.length),g=new Uint8Array(f),h=0;h0,H=a.dataURLtoBlob,I=/img/i,J=/canvas/i,K=/img|canvas/i,L=/input/i,M=/^data:[^,]+,/,N={}.toString,O=a.Math,P=function(b){return b=new a.Number(O.pow(1024,b)),b.from=function(a){return O.round(a*this)},b},Q={},R=[],S="abort progress error load loadend",T="status statusText readyState response responseXML responseText responseBody".split(" "),U="currentTarget",V="preventDefault",W=function(a){return a&&"length"in a},X=function(a,b,c){if(a)if(W(a))for(var d=0,e=a.length;e>d;d++)d in a&&b.call(c,a[d],d,a);else for(var f in a)a.hasOwnProperty(f)&&b.call(c,a[f],f,a)},Y=function(a){for(var b=arguments,c=1,d=function(b,c){a[c]=b};c=c&&!d&&f.end()},isFail:function(){return d},fail:function(){!d&&a(d=!0)},end:function(){e||(e=!0,a())}};return f},each:X,afor:function(a,b){var c=0,d=a.length;W(a)&&d--?!function e(){b(d!=c&&e,a[c],c++)}():b(!1)},extend:Y,isFile:function(a){return"[object File]"===N.call(a)},isBlob:function(a){return this.isFile(a)||"[object Blob]"===N.call(a)},isCanvas:function(a){return a&&J.test(a.nodeName)},getFilesFilter:function(a){return a="string"==typeof a?a:a.getAttribute&&a.getAttribute("accept")||"",a?new RegExp("("+a.replace(/\./g,"\\.").replace(/,/g,"|")+")$","i"):/./},readAsDataURL:function(a,b){ca.isCanvas(a)?c(a,b,"load",ca.toDataURL(a)):e(a,b,"DataURL")},readAsBinaryString:function(a,b){d("BinaryString")?e(a,b,"BinaryString"):e(a,function(a){if("load"==a.type)try{a.result=ca.toBinaryString(a.result)}catch(c){a.type="error",a.message=c.toString()}b(a)},"DataURL")},readAsArrayBuffer:function(a,b){e(a,b,"ArrayBuffer")},readAsText:function(a,b,c){c||(c=b,b="utf-8"),e(a,c,"Text",b)},toDataURL:function(a,b){return"string"==typeof a?a:a.toDataURL?a.toDataURL(b||"image/png"):void 0},toBinaryString:function(b){return a.atob(ca.toDataURL(b).replace(M,""))},readAsImage:function(a,d,e){if(ca.isBlob(a))if(w){var f=w.createObjectURL(a);f===b?c(a,d,"error"):ca.readAsImage(f,d,e)}else ca.readAsDataURL(a,function(b){"load"==b.type?ca.readAsImage(b.result,d,e):(e||"error"==b.type)&&c(a,d,b,null,{loaded:b.loaded,total:b.total})});else if(ca.isCanvas(a))c(a,d,"load",a);else if(I.test(a.nodeName))if(a.complete)c(a,d,"load",a);else{var g="error abort load";_(a,g,function i(b){"load"==b.type&&w&&w.revokeObjectURL(a.src),$(a,g,i),c(a,d,b,a)})}else if(a.iframe)c(a,d,{type:"error"});else{var h=ca.newImage(a.dataURL||a);ca.readAsImage(h,d,e)}},checkFileObj:function(a){var b={},c=ca.accept;return"object"==typeof a?b=a:b.name=(a+"").split(/\\|\//g).pop(),null==b.type&&(b.type=b.name.split(".").pop()),X(c,function(a,c){a=new RegExp(a.replace(/\s/g,"|"),"i"),(a.test(b.type)||ca.ext2mime[b.type])&&(b.type=ca.ext2mime[b.type]||c.split("/")[0]+"/"+b.type)}),b},getDropFiles:function(a,b){var c,d=[],e=[],j=l(a),k=j.files,m=j.items,n=W(m)&&m[0]&&h(m[0]),o=ca.queue(function(){b(d,e)});if(n)if(G&&k){var p,q,r=k.length;for(c=new Array(r);r--;){p=k[r];try{q=h(m[r])}catch(s){ca.log("[err] getDropFiles: ",s),q=null}g(q)&&(q.isDirectory||q.isFile&&p.name==p.name.normalize("NFC"))?c[r]=q:c[r]=p}}else c=m;else c=k;X(c||[],function(a){o.inc();try{n&&g(a)?i(a,function(a,b,c){a?ca.log("[err] getDropFiles:",a):d.push.apply(d,b),e.push.apply(e,c),o.next()}):f(a,function(b,c){b?d.push(a):a.error=c,e.push(a),o.next()})}catch(b){o.next(),ca.log("[err] getDropFiles: ",b)}}),o.check()},getFiles:function(a,b,c){var d=[];return c?(ca.filterFiles(ca.getFiles(a),b,c),null):(a.jquery&&(a.each(function(){d=d.concat(ca.getFiles(this))}),a=d,d=[]),"string"==typeof b&&(b=ca.getFilesFilter(b)),a.originalEvent?a=aa(a.originalEvent):a.srcElement&&(a=aa(a)),a.dataTransfer?a=a.dataTransfer:a.target&&(a=a.target),a.files?(d=a.files,D||(d[0].blob=a,d[0].iframe=!0)):!D&&k(a)?ca.trim(a.value)&&(d=[ca.checkFileObj(a.value)],d[0].blob=a,d[0].iframe=!0):W(a)&&(d=a),ca.filter(d,function(a){return!b||b.test(a.name)}))},getTotalSize:function(a){for(var b=0,c=a&&a.length;c--;)b+=a[c].size;return b},getInfo:function(a,b){var c={},d=R.concat();ca.isBlob(a)?!function e(){var f=d.shift();f?f.test(a.type)?f(a,function(a,d){a?b(a):(Y(c,d),e())}):e():b(!1,c)}():b("not_support_info",c)},addInfoReader:function(a,b){b.test=function(b){return a.test(b)},R.push(b)},filter:function(a,b){for(var c,d=[],e=0,f=a.length;f>e;e++)e in a&&(c=a[e],b.call(c,c,e,a)&&d.push(c));return d},filterFiles:function(a,b,c){if(a.length){var d,e=a.concat(),f=[],g=[];!function h(){e.length?(d=e.shift(),ca.getInfo(d,function(a,c){(b(d,a?!1:c)?f:g).push(d),h()})):c(f,g)}()}else c([],a)},upload:function(a){a=Y({jsonp:"callback",prepare:ca.F,beforeupload:ca.F,upload:ca.F,fileupload:ca.F,fileprogress:ca.F,filecomplete:ca.F,progress:ca.F,complete:ca.F,pause:ca.F,imageOriginal:!0,chunkSize:ca.chunkSize,chunkUploadRetry:ca.chunkUploadRetry,uploadRetry:ca.uploadRetry},a),a.imageAutoOrientation&&!a.imageTransform&&(a.imageTransform={rotate:"auto"});var b,c=new ca.XHR(a),d=this._getFilesDataArray(a.files),e=this,f=0,g=0,h=!1;return X(d,function(a){f+=a.size}),c.files=[],X(d,function(a){c.files.push(a.file)}),c.total=f,c.loaded=0,c.filesLeft=d.length,a.beforeupload(c,a),b=function(){var i=d.shift(),k=i&&i.file,l=!1,m=j(a);if(c.filesLeft=d.length,k&&k.name===ca.expando&&(k=null,ca.log("[warn] FileAPI.upload() — called without files")),("abort"!=c.statusText||c.current)&&i){if(h=!1,c.currentFile=k,k&&a.prepare(k,m)===!1)return void b.call(e);m.file=k,e._getFormData(m,i,function(h){g||a.upload(c,a);var j=new ca.XHR(Y({},m,{upload:k?function(){a.fileupload(k,j,m)}:q,progress:k?function(b){l||(l=b.loaded===b.total,a.fileprogress({type:"progress",total:i.total=b.total,loaded:i.loaded=b.loaded},k,j,m),a.progress({type:"progress",total:f,loaded:c.loaded=g+i.size*(b.loaded/b.total)||0},k,j,m))}:q,complete:function(d){X(T,function(a){c[a]=j[a]}),k&&(i.total=i.total||i.size,i.loaded=i.total,d||(this.progress(i),l=!0,g+=i.size,c.loaded=g),a.filecomplete(d,j,k,m)),setTimeout(function(){b.call(e)},0)}}));c.abort=function(a){a||(d.length=0),this.current=a,j.abort()},j.send(h)})}else{var n=200==c.status||201==c.status||204==c.status;a.complete(n?!1:c.statusText||"error",c,a),h=!0}},setTimeout(b,0),c.append=function(a,g){a=ca._getFilesDataArray([].concat(a)),X(a,function(a){f+=a.size,c.files.push(a.file),g?d.unshift(a):d.push(a)}),c.statusText="",h&&b.call(e)},c.remove=function(a){for(var b,c=d.length;c--;)d[c].file==a&&(b=d.splice(c,1),f-=b.size);return b},c},_getFilesDataArray:function(a){var b=[],c={};if(k(a)){var d=ca.getFiles(a);c[a.name||"file"]=null!==a.getAttribute("multiple")?d:d[0]}else W(a)&&k(a[0])?X(a,function(a){c[a.name||"file"]=ca.getFiles(a)}):c=a;return X(c,function e(a,c){W(a)?X(a,function(a){e(a,c)}):a&&(a.name||a.image)&&b.push({name:c,file:a,size:a.size,total:a.size,loaded:0})}),b.length||b.push({file:{name:ca.expando}}),b},_getFormData:function(a,b,c){var d=b.file,e=b.name,f=d.name,g=d.type,h=ca.support.transform&&a.imageTransform,i=new ca.Form,j=ca.queue(function(){c(i)}),k=h&&m(h),l=ca.postNameConcat;X(a.data,function n(a,b){"object"==typeof a?X(a,function(a,c){n(a,l(b,c))}):i.append(b,a)}),function o(b){b.image?(j.inc(),b.toData(function(a,c){b.file&&(c.type=b.file.type,c.quality=b.matrix.quality,f=b.file&&b.file.name),f=f||(new Date).getTime()+".png",o(c),j.next()})):ca.Image&&h&&(/^image/.test(b.type)||K.test(b.nodeName))?(j.inc(),k&&(h=[h]),ca.Image.transform(b,h,a.imageAutoOrientation,function(c,d){if(k&&!c)H||ca.flashEngine||(i.multipart=!0),i.append(e,d[0],f,h[0].type||g);else{var m=0;c||X(d,function(a,b){H||ca.flashEngine||(i.multipart=!0),h[b].postName||(m=1),i.append(h[b].postName||l(e,b),a,f,h[b].type||g)}),(c||a.imageOriginal)&&i.append(l(e,m?"original":null),b,f,g)}j.next()})):f!==ca.expando&&i.append(e,b,f)}(d),j.check()},reset:function(a,b){var c,d;return C?(d=C(a).clone(!0).insertBefore(a).val("")[0],b||C(a).remove()):(c=a.parentNode,d=c.insertBefore(a.cloneNode(!0),a),d.value="",b||c.removeChild(a),X(Q[ca.uid(a)],function(b,c){X(b,function(b){$(a,c,b),Z(d,c,b)})})),d},load:function(a,b){var c=ca.getXHR();return c?(c.open("GET",a,!0),c.overrideMimeType&&c.overrideMimeType("text/plain; charset=x-user-defined"),Z(c,"progress",function(a){a.lengthComputable&&b({type:a.type,loaded:a.loaded,total:a.total},c)}),c.onreadystatechange=function(){if(4==c.readyState)if(c.onreadystatechange=null,200==c.status){a=a.split("/");var d={name:a[a.length-1],size:c.getResponseHeader("Content-Length"),type:c.getResponseHeader("Content-Type")};d.dataURL="data:"+d.type+";base64,"+ca.encode64(c.responseBody||c.responseText),b({type:"load",result:d},c)}else b({type:"error"},c)},c.send(null)):b({type:"error"}),c},encode64:function(a){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c="",d=0;for("string"!=typeof a&&(a=String(a));d>2,k=(3&g)<<4|h>>4;isNaN(h)?e=f=64:(e=(15&h)<<2|i>>6,f=isNaN(i)?64:63&i),c+=b.charAt(j)+b.charAt(k)+b.charAt(e)+b.charAt(f)}return c}};ca.addInfoReader(/^image/,function(a,b){if(!a.__dimensions){var c=a.__dimensions=ca.defer();ca.readAsImage(a,function(a){var b=a.target;c.resolve("load"==a.type?!1:"error",{width:b.width,height:b.height}),b.src=ca.EMPTY_PNG,b=null})}a.__dimensions.then(b)}),ca.event.dnd=function(a,b,c){var d,e;c||(c=b,b=ca.F),z?(Z(a,"dragenter dragleave dragover",b.ff=b.ff||function(a){for(var c=l(a).types,f=c&&c.length,g=!1;f--;)if(~c[f].indexOf("File")){a[V](),e!==a.type&&(e=a.type,"dragleave"!=e&&b.call(a[U],!0,a),g=!0);break}g&&(clearTimeout(d),d=setTimeout(function(){b.call(a[U],"dragleave"!=e,a)},50))}),Z(a,"drop",c.ff=c.ff||function(a){a[V](),e=0,b.call(a[U],!1,a),ca.getDropFiles(a,function(b,d){c.call(a[U],b,d,a)})})):ca.log("Drag'n'Drop -- not supported")},ca.event.dnd.off=function(a,b,c){$(a,"dragenter dragleave dragover",b.ff),$(a,"drop",c.ff)},C&&!C.fn.dnd&&(C.fn.dnd=function(a,b){return this.each(function(){ca.event.dnd(this,a,b)})},C.fn.offdnd=function(a,b){return this.each(function(){ca.event.dnd.off(this,a,b)})}),a.FileAPI=Y(ca,a.FileAPI),ca.log("FileAPI: "+ca.version),ca.log("protocol: "+a.location.protocol),ca.log("doctype: ["+s.name+"] "+s.publicId+" "+s.systemId),X(r.getElementsByTagName("meta"),function(a){/x-ua-compatible/i.test(a.getAttribute("http-equiv"))&&ca.log("meta.http-equiv: "+a.getAttribute("content"))});try{n=!!console.log,o=!!console.log.apply}catch(da){}ca.flashUrl||(ca.flashUrl=ca.staticPath+"FileAPI.flash.swf"),ca.flashImageUrl||(ca.flashImageUrl=ca.staticPath+"FileAPI.flash.image.swf"),ca.flashWebcamUrl||(ca.flashWebcamUrl=ca.staticPath+"FileAPI.flash.camera.swf")}(window,void 0),function(a,b,c){"use strict";function d(b){if(b instanceof d){var c=new d(b.file);return a.extend(c.matrix,b.matrix),c}return this instanceof d?(this.file=b,this.size=b.size||100,void(this.matrix={sx:0,sy:0,sw:0,sh:0,dx:0,dy:0,dw:0,dh:0,resize:0,deg:0,quality:1,filter:0})):new d(b)}var e=Math.min,f=Math.round,g=function(){return b.createElement("canvas")},h=!1,i={8:270,3:180,6:90,7:270,4:180,5:90};try{h=g().toDataURL("image/png").indexOf("data:image/png")>-1}catch(j){}d.prototype={image:!0,constructor:d,set:function(b){return a.extend(this.matrix,b),this},crop:function(a,b,d,e){return d===c&&(d=a,e=b,a=b=0),this.set({sx:a,sy:b,sw:d,sh:e||d})},resize:function(a,b,c){return/min|max|height|width/.test(b)&&(c=b,b=a),this.set({dw:a,dh:b||a,resize:c})},preview:function(a,b){return this.resize(a,b||a,"preview")},rotate:function(a){return this.set({deg:a})},filter:function(a){return this.set({filter:a})},overlay:function(a){return this.set({overlay:a})},clone:function(){return new d(this)},_load:function(b,c){var d=this;/img|video/i.test(b.nodeName)?c.call(d,null,b):a.readAsImage(b,function(a){c.call(d,"load"!=a.type,a.result)})},_apply:function(b,c){var f,h=g(),i=this.getMatrix(b),j=h.getContext("2d"),k=b.videoWidth||b.width,l=b.videoHeight||b.height,m=i.deg,n=i.dw,o=i.dh,p=k,q=l,r=i.filter,s=b,t=i.overlay,u=a.queue(function(){b.src=a.EMPTY_PNG,c(!1,h)}),v=a.renderImageToCanvas;for(m-=360*Math.floor(m/360),b._type=this.file.type;i.multipass&&e(p/n,q/o)>2;)p=p/2+.5|0,q=q/2+.5|0,f=g(),f.width=p,f.height=q,s!==b?(v(f,s,0,0,s.width,s.height,0,0,p,q),s=f):(s=f,v(s,b,i.sx,i.sy,i.sw,i.sh,0,0,p,q),i.sx=i.sy=i.sw=i.sh=0);h.width=m%180?o:n,h.height=m%180?n:o,h.type=i.type,h.quality=i.quality,j.rotate(m*Math.PI/180),v(j.canvas,s,i.sx,i.sy,i.sw||s.width,i.sh||s.height,180==m||270==m?-n:0,90==m||180==m?-o:0,n,o),n=h.width,o=h.height,t&&a.each([].concat(t),function(b){u.inc();var c=new window.Image,d=function(){var e=0|b.x,f=0|b.y,g=b.w||c.width,h=b.h||c.height,i=b.rel;e=1==i||4==i||7==i?(n-g+e)/2:2==i||5==i||8==i?n-(g+e):e,f=3==i||4==i||5==i?(o-h+f)/2:i>=6?o-(h+f):f,a.event.off(c,"error load abort",d);try{j.globalAlpha=b.opacity||1,j.drawImage(c,e,f,g,h)}catch(k){}u.next()};a.event.on(c,"error load abort",d),c.src=b.src,c.complete&&d()}),r&&(u.inc(),d.applyFilter(h,r,u.next)),u.check()},getMatrix:function(b){var c=a.extend({},this.matrix),d=c.sw=c.sw||b.videoWidth||b.naturalWidth||b.width,g=c.sh=c.sh||b.videoHeight||b.naturalHeight||b.height,h=c.dw=c.dw||d,i=c.dh=c.dh||g,j=d/g,k=h/i,l=c.resize;if("preview"==l){if(h!=d||i!=g){var m,n;k>=j?(m=d,n=m/k):(n=g,m=n*k),(m!=d||n!=g)&&(c.sx=~~((d-m)/2),c.sy=~~((g-n)/2),d=m,g=n)}}else"height"==l?h=i*j:"width"==l?i=h/j:l&&(d>h||g>i?"min"==l?(h=f(k>j?e(d,h):i*j),i=f(k>j?h/j:e(g,i))):(h=f(j>=k?e(d,h):i*j),i=f(j>=k?h/j:e(g,i))):(h=d,i=g));return c.sw=d,c.sh=g,c.dw=h,c.dh=i,c.multipass=a.multiPassResize,c},_trans:function(b){this._load(this.file,function(c,d){if(c)b(c);else try{this._apply(d,b)}catch(c){a.log("[err] FileAPI.Image.fn._apply:",c),b(c)}})},get:function(b){if(a.support.transform){var c=this,d=c.matrix;"auto"==d.deg?a.getInfo(c.file,function(a,e){d.deg=i[e&&e.exif&&e.exif.Orientation]||0,c._trans(b)}):c._trans(b)}else b("not_support_transform");return this},toData:function(a){return this.get(a)}},d.exifOrientation=i,d.transform=function(b,e,f,g){function h(h,i){var j={},k=a.queue(function(a){g(a,j)});h?k.fail():a.each(e,function(a,e){if(!k.isFail()){var g=new d(i.nodeType?i:b),h="function"==typeof a;if(h?a(i,g):a.width?g[a.preview?"preview":"resize"](a.width,a.height,a.strategy):a.maxWidth&&(i.width>a.maxWidth||i.height>a.maxHeight)&&g.resize(a.maxWidth,a.maxHeight,"max"),a.crop){var l=a.crop;g.crop(0|l.x,0|l.y,l.w||l.width,l.h||l.height)}a.rotate===c&&f&&(a.rotate="auto"),g.set({type:g.matrix.type||a.type||b.type||"image/png"}),h||g.set({deg:a.rotate,overlay:a.overlay,filter:a.filter,quality:a.quality||1}),k.inc(),g.toData(function(a,b){a?k.fail():(j[e]=b,k.next())})}})}b.width?h(!1,b):a.getInfo(b,h)},a.each(["TOP","CENTER","BOTTOM"],function(b,c){a.each(["LEFT","CENTER","RIGHT"],function(a,e){d[b+"_"+a]=3*c+e,d[a+"_"+b]=3*c+e})}),d.toCanvas=function(a){var c=b.createElement("canvas");return c.width=a.videoWidth||a.width,c.height=a.videoHeight||a.height,c.getContext("2d").drawImage(a,0,0),c},d.fromDataURL=function(b,c,d){var e=a.newImage(b);a.extend(e,c),d(e)},d.applyFilter=function(b,c,e){"function"==typeof c?c(b,e):window.Caman&&window.Caman("IMG"==b.tagName?d.toCanvas(b):b,function(){"string"==typeof c?this[c]():a.each(c,function(a,b){this[b](a)},this),this.render(e)})},a.renderImageToCanvas=function(b,c,d,e,f,g,h,i,j,k){try{return b.getContext("2d").drawImage(c,d,e,f,g,h,i,j,k)}catch(l){throw a.log("renderImageToCanvas failed"),l}},a.support.canvas=a.support.transform=h,a.Image=d}(FileAPI,document),function(a){"use strict";a(FileAPI)}(function(a){"use strict";if(window.navigator&&window.navigator.platform&&/iP(hone|od|ad)/.test(window.navigator.platform)){var b=a.renderImageToCanvas;a.detectSubsampling=function(a){var b,c;return a.width*a.height>1048576?(b=document.createElement("canvas"),b.width=b.height=1,c=b.getContext("2d"),c.drawImage(a,-a.width+1,0),0===c.getImageData(0,0,1,1).data[3]):!1},a.detectVerticalSquash=function(a,b){var c,d,e,f,g,h=a.naturalHeight||a.height,i=document.createElement("canvas"),j=i.getContext("2d");for(b&&(h/=2),i.width=1,i.height=h,j.drawImage(a,0,0),c=j.getImageData(0,0,1,h).data,d=0,e=h,f=h;f>d;)g=c[4*(f-1)+3],0===g?e=f:d=f,f=e+d>>1;return f/h||1},a.renderImageToCanvas=function(c,d,e,f,g,h,i,j,k,l){if("image/jpeg"===d._type){var m,n,o,p,q=c.getContext("2d"),r=document.createElement("canvas"),s=1024,t=r.getContext("2d");if(r.width=s,r.height=s,q.save(),m=a.detectSubsampling(d),m&&(e/=2,f/=2,g/=2,h/=2),n=a.detectVerticalSquash(d,m),m||1!==n){for(f*=n,k=Math.ceil(s*k/g),l=Math.ceil(s*l/h/n),j=0,p=0;h>p;){for(i=0,o=0;g>o;)t.clearRect(0,0,s,s),t.drawImage(d,e,f,g,h,-o,-p,g,h),q.drawImage(r,0,0,s,s,i,j,k,l),o+=s,i+=k;p+=s,j+=l}return q.restore(),c}}return b(c,d,e,f,g,h,i,j,k,l)}}}),function(a,b){"use strict";function c(b,c,d){var e=b.blob,f=b.file;if(f){if(!e.toDataURL)return void a.readAsBinaryString(e,function(a){"load"==a.type&&c(b,a.result)});var g={"image/jpeg":".jpe?g","image/png":".png"},h=g[b.type]?b.type:"image/png",i=g[h]||".png",j=e.quality||1;f.match(new RegExp(i+"$","i"))||(f+=i.replace("?","")),b.file=f,b.type=h,!d&&e.toBlob?e.toBlob(function(a){c(b,a)},h,j):c(b,a.toBinaryString(e.toDataURL(h,j)))}else c(b,e)}var d=b.document,e=b.FormData,f=function(){this.items=[]},g=b.encodeURIComponent;f.prototype={append:function(a,b,c,d){this.items.push({name:a,blob:b&&b.blob||(void 0==b?"":b),file:b&&(c||b.name),type:b&&(d||b.type)})},each:function(a){for(var b=0,c=this.items.length;c>b;b++)a.call(this,this.items[b])},toData:function(b,c){c._chunked=a.support.chunked&&c.chunkSize>0&&1==a.filter(this.items,function(a){return a.file}).length,a.support.html5?a.formData&&!this.multipart&&e?c._chunked?(a.log("FileAPI.Form.toPlainData"),this.toPlainData(b)):(a.log("FileAPI.Form.toFormData"),this.toFormData(b)):(a.log("FileAPI.Form.toMultipartData"),this.toMultipartData(b)):(a.log("FileAPI.Form.toHtmlData"),this.toHtmlData(b))},_to:function(b,c,d,e){var f=a.queue(function(){c(b)});this.each(function(g){try{d(g,b,f,e)}catch(h){a.log("FileAPI.Form._to: "+h.message),c(h)}}),f.check()},toHtmlData:function(b){this._to(d.createDocumentFragment(),b,function(b,c){var e,f=b.blob;b.file?(a.reset(f,!0),f.name=b.name,f.disabled=!1,c.appendChild(f)):(e=d.createElement("input"),e.name=b.name,e.type="hidden",e.value=f,c.appendChild(e))})},toPlainData:function(a){this._to({},a,function(a,b,d){a.file&&(b.type=a.file),a.blob.toBlob?(d.inc(),c(a,function(a,c){b.name=a.name,b.file=c,b.size=c.length,b.type=a.type,d.next()})):a.file?(b.name=a.blob.name,b.file=a.blob,b.size=a.blob.size,b.type=a.type):(b.params||(b.params=[]),b.params.push(g(a.name)+"="+g(a.blob))),b.start=-1,b.end=b.file&&b.file.FileAPIReadPosition||-1,b.retry=0})},toFormData:function(a){this._to(new e,a,function(a,b,d){a.blob&&a.blob.toBlob?(d.inc(),c(a,function(a,c){b.append(a.name,c,a.file),d.next()})):a.file?b.append(a.name,a.blob,a.file):b.append(a.name,a.blob),a.file&&b.append("_"+a.name,a.file)})},toMultipartData:function(b){this._to([],b,function(a,b,d,e){d.inc(),c(a,function(a,c){b.push("--_"+e+('\r\nContent-Disposition: form-data; name="'+a.name+'"'+(a.file?'; filename="'+g(a.file)+'"':"")+(a.file?"\r\nContent-Type: "+(a.type||"application/octet-stream"):"")+"\r\n\r\n"+(a.file?c:g(c))+"\r\n")),d.next()},!0)},a.expando)}},a.Form=f}(FileAPI,window),function(a,b){"use strict";var c=function(){},d=a.document,e=function(a){this.uid=b.uid(),this.xhr={abort:c,getResponseHeader:c,getAllResponseHeaders:c},this.options=a},f={"":1,XML:1,Text:1,Body:1};e.prototype={status:0,statusText:"",constructor:e,getResponseHeader:function(a){return this.xhr.getResponseHeader(a)},getAllResponseHeaders:function(){return this.xhr.getAllResponseHeaders()||{}},end:function(d,e){var f=this,g=f.options;f.end=f.abort=c,f.status=d,e&&(f.statusText=e),b.log("xhr.end:",d,e),g.complete(200==d||201==d?!1:f.statusText||"unknown",f),f.xhr&&f.xhr.node&&setTimeout(function(){var b=f.xhr.node;try{b.parentNode.removeChild(b)}catch(c){}try{delete a[f.uid]}catch(c){}a[f.uid]=f.xhr.node=null},9)},abort:function(){this.end(0,"abort"),this.xhr&&(this.xhr.aborted=!0,this.xhr.abort())},send:function(a){var b=this,c=this.options;a.toData(function(a){a instanceof Error?b.end(0,a.message):(c.upload(c,b),b._send.call(b,c,a))},c)},_send:function(c,e){var g,h=this,i=h.uid,j=h.uid+"Load",k=c.url;if(b.log("XHR._send:",e),c.cache||(k+=(~k.indexOf("?")?"&":"?")+b.uid()),e.nodeName){var l=c.jsonp;k=k.replace(/([a-z]+)=(\?)/i,"$1="+i),c.upload(c,h);var m=function(a){if(~k.indexOf(a.origin))try{var c=b.parseJSON(a.data);c.id==i&&n(c.status,c.statusText,c.response)}catch(d){n(0,d.message)}},n=a[i]=function(c,d,e){h.readyState=4,h.responseText=e,h.end(c,d),b.event.off(a,"message",m),a[i]=g=p=a[j]=null};h.xhr.abort=function(){try{p.stop?p.stop():p.contentWindow.stop?p.contentWindow.stop():p.contentWindow.document.execCommand("Stop")}catch(a){}n(0,"abort")},b.event.on(a,"message",m),a[j]=function(){try{var a=p.contentWindow,c=a.document,d=a.result||b.parseJSON(c.body.innerHTML);n(d.status,d.statusText,d.response)}catch(e){b.log("[transport.onload]",e)}},g=d.createElement("div"),g.innerHTML='
'+(l&&c.url.indexOf("=?")<0?'':"")+"
";var o=g.getElementsByTagName("form")[0],p=g.getElementsByTagName("iframe")[0];o.appendChild(e),b.log(o.parentNode.innerHTML),d.body.appendChild(g),h.xhr.node=g,h.readyState=2;try{o.submit()}catch(q){b.log("iframe.error: "+q)}o=null}else{if(k=k.replace(/([a-z]+)=(\?)&?/i,""),this.xhr&&this.xhr.aborted)return void b.log("Error: already aborted");if(g=h.xhr=b.getXHR(),e.params&&(k+=(k.indexOf("?")<0?"?":"&")+e.params.join("&")),g.open("POST",k,!0),b.withCredentials&&(g.withCredentials="true"),c.headers&&c.headers["X-Requested-With"]||g.setRequestHeader("X-Requested-With","XMLHttpRequest"),b.each(c.headers,function(a,b){g.setRequestHeader(b,a)}),c._chunked){g.upload&&g.upload.addEventListener("progress",b.throttle(function(a){e.retry||c.progress({type:a.type,total:e.size,loaded:e.start+a.loaded,totalSize:e.size},h,c)},100),!1),g.onreadystatechange=function(){var a=parseInt(g.getResponseHeader("X-Last-Known-Byte"),10);if(h.status=g.status,h.statusText=g.statusText,h.readyState=g.readyState,4==g.readyState){for(var d in f)h["response"+d]=g["response"+d];if(g.onreadystatechange=null,!g.status||g.status-201>0)if(b.log("Error: "+g.status),(!g.status&&!g.aborted||500==g.status||416==g.status)&&++e.retry<=c.chunkUploadRetry){var i=g.status?0:b.chunkNetworkDownRetryTimeout;c.pause(e.file,c),b.log("X-Last-Known-Byte: "+a),a?e.end=a:(e.end=e.start-1,416==g.status&&(e.end=e.end-c.chunkSize)),setTimeout(function(){h._send(c,e)},i)}else h.end(g.status);else e.retry=0,e.end==e.size-1?h.end(g.status):(b.log("X-Last-Known-Byte: "+a),a&&(e.end=a),e.file.FileAPIReadPosition=e.end,setTimeout(function(){h._send(c,e)},0));g=null}},e.start=e.end+1,e.end=Math.max(Math.min(e.start+c.chunkSize,e.size)-1,e.start);var r=e.file,s=(r.slice||r.mozSlice||r.webkitSlice).call(r,e.start,e.end+1);e.size&&!s.size?setTimeout(function(){h.end(-1)}):(g.setRequestHeader("Content-Range","bytes "+e.start+"-"+e.end+"/"+e.size),g.setRequestHeader("Content-Disposition","attachment; filename="+encodeURIComponent(e.name)),g.setRequestHeader("Content-Type",e.type||"application/octet-stream"),g.send(s)),r=s=null}else if(g.upload&&g.upload.addEventListener("progress",b.throttle(function(a){c.progress(a,h,c)},100),!1),g.onreadystatechange=function(){if(h.status=g.status,h.statusText=g.statusText,h.readyState=g.readyState,4==g.readyState){for(var a in f)h["response"+a]=g["response"+a];if(g.onreadystatechange=null,!g.status||g.status>201)if(b.log("Error: "+g.status),(!g.status&&!g.aborted||500==g.status)&&(c.retry||0)=0?a+"px":a}function d(a){var c,d=f.createElement("canvas"),e=!1;try{c=d.getContext("2d"),c.drawImage(a,0,0,1,1),e=255!=c.getImageData(0,0,1,1).data[4]}catch(g){b.log("[FileAPI.Camera] detectVideoSignal:",g)}return e}var e=a.URL||a.webkitURL,f=a.document,g=a.navigator,h=g.getUserMedia||g.webkitGetUserMedia||g.mozGetUserMedia||g.msGetUserMedia,i=!!h;b.support.media=i;var j=function(a){this.video=a};j.prototype={isActive:function(){return!!this._active},start:function(a){var b,c,f=this,i=f.video,j=function(d){f._active=!d,clearTimeout(c),clearTimeout(b),a&&a(d,f)};h.call(g,{video:!0},function(a){f.stream=a,i.src=e.createObjectURL(a),b=setInterval(function(){d(i)&&j(null)},1e3),c=setTimeout(function(){j("timeout"); +},5e3),i.play()},j)},stop:function(){try{this._active=!1,this.video.pause();try{this.stream.stop()}catch(a){b.each(this.stream.getTracks(),function(a){a.stop()})}this.stream=null}catch(a){b.log("[FileAPI.Camera] stop:",a)}},shot:function(){return new k(this.video)}},j.get=function(a){return new j(a.firstChild)},j.publish=function(d,e,g){"function"==typeof e&&(g=e,e={}),e=b.extend({},{width:"100%",height:"100%",start:!0},e),d.jquery&&(d=d[0]);var h=function(a){if(a)g(a);else{var b=j.get(d);e.start?b.start(g):g(null,b)}};if(d.style.width=c(e.width),d.style.height=c(e.height),b.html5&&i){var k=f.createElement("video");k.style.width=c(e.width),k.style.height=c(e.height),a.jQuery?jQuery(d).empty():d.innerHTML="",d.appendChild(k),h()}else j.fallback(d,e,h)},j.fallback=function(a,b,c){c("not_support_camera")},j.checkAlreadyCaptured=function(){var b,c=g.mediaDevices,d=a.MediaStreamTrack,e=g.enumerateDevices;return b=c&&c.enumerateDevices?function(a){c.enumerateDevices().then(a)}:d&&d.getSources?d.getSources.bind(d):e?e.bind(g):function(a){a([])},function(a){b(function(b){var c=b.some(function(a){return("videoinput"===a.kind||"video"===a.kind)&&a.label});a(c)})}}();var k=function(a){var c=a.nodeName?b.Image.toCanvas(a):a,d=b.Image(c);return d.type="image/png",d.width=c.width,d.height=c.height,d.size=c.width*c.height*4,d};j.Shot=k,b.Camera=j}(window,FileAPI),function(a,b,c){"use strict";var d=a.document,e=a.location,f=a.navigator,g=c.each;c.support.flash=function(){var b=f.mimeTypes,d=!1;if(f.plugins&&"object"==typeof f.plugins["Shockwave Flash"])d=f.plugins["Shockwave Flash"].description&&!(b&&b["application/x-shockwave-flash"]&&!b["application/x-shockwave-flash"].enabledPlugin);else try{d=!(!a.ActiveXObject||!new ActiveXObject("ShockwaveFlash.ShockwaveFlash"))}catch(g){c.log("Flash -- does not supported.")}return d&&/^file:/i.test(e)&&c.log("[warn] Flash does not work on `file:` protocol."),d}(),c.support.flash&&(!c.html5||!c.support.html5||c.cors&&!c.support.cors||c.media&&!c.support.media)&&function(){function h(a){return('').replace(/#(\w+)#/gi,function(b,c){return a[c]})}function i(a,b){if(a&&a.style){var c,d;for(c in b){d=b[c],"number"==typeof d&&(d+="px");try{a.style[c]=d}catch(e){}}}}function j(a,b){g(b,function(b,c){var d=a[c];a[c]=function(){return this.parent=d,b.apply(this,arguments)}})}function k(a){return a&&!a.flashId}function l(a){var b=a.wid=c.uid();return v._fn[b]=a,"FileAPI.Flash._fn."+b}function m(a){try{v._fn[a.wid]=null,delete v._fn[a.wid]}catch(b){}}function n(a,b){if(!u.test(a)){if(/^\.\//.test(a)||"/"!=a.charAt(0)){var c=e.pathname;c=c.substr(0,c.lastIndexOf("/")),a=(c+"/"+a).replace("/./","/")}"//"!=a.substr(0,2)&&(a="//"+e.host+a),u.test(a)||(a=e.protocol+a)}return b&&(a+=(/\?/.test(a)?"&":"?")+b),a}function o(a,b,e){function f(){try{var a=v.get(j);a.setImage(b)}catch(d){c.log('[err] FlashAPI.Preview.setImage -- can not set "base64":',d)}}var g,j=c.uid(),k=d.createElement("div"),o=10;for(g in a)k.setAttribute(g,a[g]),k[g]=a[g];i(k,a),a.width="100%",a.height="100%",k.innerHTML=h(c.extend({id:j,src:n(c.flashImageUrl,"r="+c.uid()),wmode:"opaque",flashvars:"scale="+a.scale+"&callback="+l(function p(){return m(p),--o>0&&f(),!0})},a)),e(!1,k),k=null}function p(a){return{id:a.id,name:a.name,matrix:a.matrix,flashId:a.flashId}}function q(b){var c=b.getBoundingClientRect(),e=d.body,f=(b&&b.ownerDocument).documentElement;return{top:c.top+(a.pageYOffset||f.scrollTop)-(f.clientTop||e.clientTop||0),left:c.left+(a.pageXOffset||f.scrollLeft)-(f.clientLeft||e.clientLeft||0),width:c.right-c.left,height:c.bottom-c.top}}var r=c.uid(),s=0,t={},u=/^https?:/i,v={_fn:{},init:function(){var a=d.body&&d.body.firstChild;if(a)do if(1==a.nodeType){c.log("FlashAPI.state: awaiting");var b=d.createElement("div");return b.id="_"+r,i(b,{top:1,right:1,width:5,height:5,position:"absolute",zIndex:"2147483647"}),a.parentNode.insertBefore(b,a),void v.publish(b,r)}while(a=a.nextSibling);10>s&&setTimeout(v.init,50*++s)},publish:function(a,b,d){d=d||{},a.innerHTML=h({id:b,src:n(c.flashUrl,"r="+c.version),wmode:d.camera?"":"transparent",flashvars:"callback="+(d.onEvent||"FileAPI.Flash.onEvent")+"&flashId="+b+"&storeKey="+f.userAgent.match(/\d/gi).join("")+"_"+c.version+(v.isReady||(c.pingUrl?"&ping="+c.pingUrl:""))+"&timeout="+c.flashAbortTimeout+(d.camera?"&useCamera="+n(c.flashWebcamUrl):"")+"&debug="+(c.debug?"1":"")},d)},ready:function(){c.log("FlashAPI.state: ready"),v.ready=c.F,v.isReady=!0,v.patch(),v.patchCamera&&v.patchCamera(),c.event.on(d,"mouseover",v.mouseover),c.event.on(d,"click",function(a){v.mouseover(a)&&(a.preventDefault?a.preventDefault():a.returnValue=!0)})},getEl:function(){return d.getElementById("_"+r)},getWrapper:function(a){do if(/js-fileapi-wrapper/.test(a.className))return a;while((a=a.parentNode)&&a!==d.body)},mouseover:function(a){var b=c.event.fix(a).target;if(/input/i.test(b.nodeName)&&"file"==b.type&&!b.disabled){var e=b.getAttribute(r),f=v.getWrapper(b);if(c.multiFlash){if("i"==e||"r"==e)return!1;if("p"!=e){b.setAttribute(r,"i");var g=d.createElement("div");if(!f)return void c.log("[err] FlashAPI.mouseover: js-fileapi-wrapper not found");i(g,{top:0,left:0,width:b.offsetWidth,height:b.offsetHeight,zIndex:"2147483647",position:"absolute"}),f.appendChild(g),v.publish(g,c.uid()),b.setAttribute(r,"p")}return!0}if(f){var h=q(f);i(v.getEl(),h),v.curInp=b}}else/object|embed/i.test(b.nodeName)||i(v.getEl(),{top:1,left:1,width:5,height:5})},onEvent:function(a){var b=a.type;if("ready"==b){try{v.getInput(a.flashId).setAttribute(r,"r")}catch(d){}return v.ready(),setTimeout(function(){v.mouseenter(a)},50),!0}"ping"===b?c.log("(flash -> js).ping:",[a.status,a.savedStatus],a.error):"log"===b?c.log("(flash -> js).log:",a.target):b in v&&setTimeout(function(){c.log("FlashAPI.event."+a.type+":",a),v[b](a)},1)},mouseenter:function(a){var b=v.getInput(a.flashId);if(b){v.cmd(a,"multiple",null!=b.getAttribute("multiple"));var d=[],e={};g((b.getAttribute("accept")||"").split(/,\s*/),function(a){c.accept[a]&&g(c.accept[a].split(" "),function(a){e[a]=1})}),g(e,function(a,b){d.push(b)}),v.cmd(a,"accept",d.length?d.join(",")+","+d.join(",").toUpperCase():"*")}},get:function(b){return d[b]||a[b]||d.embeds[b]},getInput:function(a){if(!c.multiFlash)return v.curInp;try{var b=v.getWrapper(v.get(a));if(b)return b.getElementsByTagName("input")[0]}catch(d){c.log('[err] Can not find "input" by flashId:',a,d)}},select:function(a){var e,f=v.getInput(a.flashId),h=c.uid(f),i=a.target.files;g(i,function(a){c.checkFileObj(a)}),t[h]=i,d.createEvent?(e=d.createEvent("Event"),e.files=i,e.initEvent("change",!0,!0),f.dispatchEvent(e)):b?b(f).trigger({type:"change",files:i}):(e=d.createEventObject(),e.files=i,f.fireEvent("onchange",e))},cmd:function(a,b,d,e){try{return c.log("(js -> flash)."+b+":",d),v.get(a.flashId||a).cmd(b,d)}catch(f){c.log("(js -> flash).onError:",f.toString()),e||setTimeout(function(){v.cmd(a,b,d,!0)},50)}},patch:function(){c.flashEngine=!0,j(c,{getFiles:function(a,b,d){if(d)return c.filterFiles(c.getFiles(a),b,d),null;var e=c.isArray(a)?a:t[c.uid(a.target||a.srcElement||a)];return e?(b&&(b=c.getFilesFilter(b),e=c.filter(e,function(a){return b.test(a.name)})),e):this.parent.apply(this,arguments)},getInfo:function(a,b){if(k(a))this.parent.apply(this,arguments);else if(a.isShot)b(null,a.info={width:a.width,height:a.height});else{if(!a.__info){var d=a.__info=c.defer();v.cmd(a,"getFileInfo",{id:a.id,callback:l(function e(b,c){m(e),d.resolve(b,a.info=c)})})}a.__info.then(b)}}}),c.support.transform=!0,c.Image&&j(c.Image.prototype,{get:function(a,b){return this.set({scaleMode:b||"noScale"}),this.parent(a)},_load:function(a,b){if(c.log("FlashAPI.Image._load:",a),k(a))this.parent.apply(this,arguments);else{var d=this;c.getInfo(a,function(c){b.call(d,c,a)})}},_apply:function(a,b){if(c.log("FlashAPI.Image._apply:",a),k(a))this.parent.apply(this,arguments);else{var d=this.getMatrix(a.info),e=b;v.cmd(a,"imageTransform",{id:a.id,matrix:d,callback:l(function f(g,h){c.log("FlashAPI.Image._apply.callback:",g),m(f),g?e(g):c.support.html5||c.support.dataURI&&!(h.length>3e4)?(d.filter&&(e=function(a,e){a?b(a):c.Image.applyFilter(e,d.filter,function(){b(a,this.canvas)})}),c.newImage("data:"+a.type+";base64,"+h,e)):o({width:d.deg%180?d.dh:d.dw,height:d.deg%180?d.dw:d.dh,scale:d.scaleMode},h,e)})})}},toData:function(a){var b=this.file,d=b.info,e=this.getMatrix(d);c.log("FlashAPI.Image.toData"),k(b)?this.parent.apply(this,arguments):("auto"==e.deg&&(e.deg=c.Image.exifOrientation[d&&d.exif&&d.exif.Orientation]||0),a.call(this,!b.info,{id:b.id,flashId:b.flashId,name:b.name,type:b.type,matrix:e}))}}),c.Image&&j(c.Image,{fromDataURL:function(a,b,d){!c.support.dataURI||a.length>3e4?o(c.extend({scale:"exactFit"},b),a.replace(/^data:[^,]+,/,""),function(a,b){d(b)}):this.parent(a,b,d)}}),j(c.Form.prototype,{toData:function(a){for(var b=this.items,d=b.length;d--;)if(b[d].file&&k(b[d].blob))return this.parent.apply(this,arguments);c.log("FlashAPI.Form.toData"),a(b)}}),j(c.XHR.prototype,{_send:function(a,b){if(b.nodeName||b.append&&c.support.html5||c.isArray(b)&&"string"==typeof b[0])return this.parent.apply(this,arguments);var d,e,f={},h={},i=this;if(g(b,function(a){a.file?(h[a.name]=a=p(a.blob),e=a.id,d=a.flashId):f[a.name]=a.blob}),e||(d=r),!d)return c.log("[err] FlashAPI._send: flashId -- undefined"),this.parent.apply(this,arguments);c.log("FlashAPI.XHR._send: "+d+" -> "+e),i.xhr={headers:{},abort:function(){v.cmd(d,"abort",{id:e})},getResponseHeader:function(a){return this.headers[a]},getAllResponseHeaders:function(){return this.headers}};var j=c.queue(function(){v.cmd(d,"upload",{url:n(a.url.replace(/([a-z]+)=(\?)&?/i,"")),data:f,files:e?h:null,headers:a.headers||{},callback:l(function b(d){var e=d.type,f=d.result;c.log("FlashAPI.upload."+e),"progress"==e?(d.loaded=Math.min(d.loaded,d.total),d.lengthComputable=!0,a.progress(d)):"complete"==e?(m(b),"string"==typeof f&&(i.responseText=f.replace(/%22/g,'"').replace(/%5c/g,"\\").replace(/%26/g,"&").replace(/%25/g,"%")),i.end(d.status||200)):("abort"==e||"error"==e)&&(i.end(d.status||0,d.message),m(b))})})});g(h,function(a){j.inc(),c.getInfo(a,j.next)}),j.check()}})}};c.Flash=v,c.newImage("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==",function(a,b){c.support.dataURI=!(1!=b.width||1!=b.height),v.init()})}()}(window,window.jQuery,FileAPI),function(a,b,c){"use strict";var d=c.each,e=[];!c.support.flash||!c.media||c.support.media&&c.html5||!function(){function a(a){var b=a.wid=c.uid();return c.Flash._fn[b]=a,"FileAPI.Flash._fn."+b}function b(a){try{c.Flash._fn[a.wid]=null,delete c.Flash._fn[a.wid]}catch(b){}}var f=c.Flash;c.extend(c.Flash,{patchCamera:function(){c.Camera.fallback=function(d,e,g){var h=c.uid();c.log("FlashAPI.Camera.publish: "+h),f.publish(d,h,c.extend(e,{camera:!0,onEvent:a(function i(a){"camera"===a.type&&(b(i),a.error?(c.log("FlashAPI.Camera.publish.error: "+a.error),g(a.error)):(c.log("FlashAPI.Camera.publish.success: "+h),g(null)))})}))},d(e,function(a){c.Camera.fallback.apply(c.Camera,a)}),e=[],c.extend(c.Camera.prototype,{_id:function(){return this.video.id},start:function(d){var e=this;f.cmd(this._id(),"camera.on",{callback:a(function g(a){b(g),a.error?(c.log("FlashAPI.camera.on.error: "+a.error),d(a.error,e)):(c.log("FlashAPI.camera.on.success: "+e._id()),e._active=!0,d(null,e))})})},stop:function(){this._active=!1,f.cmd(this._id(),"camera.off")},shot:function(){c.log("FlashAPI.Camera.shot:",this._id());var a=c.Flash.cmd(this._id(),"shot",{});return a.type="image/png",a.flashId=this._id(),a.isShot=!0,new c.Camera.Shot(a)}})}}),c.Camera.fallback=function(){e.push(arguments)}}()}(window,window.jQuery,FileAPI),"function"==typeof define&&define.amd&&define("FileAPI",[],function(){return FileAPI}); \ No newline at end of file diff --git a/flash/core/src/net/inspirit/MultipartURLLoader.as b/flash/core/src/net/inspirit/MultipartURLLoader.as index 05216616..653a0797 100644 --- a/flash/core/src/net/inspirit/MultipartURLLoader.as +++ b/flash/core/src/net/inspirit/MultipartURLLoader.as @@ -62,6 +62,7 @@ public class MultipartURLLoader extends EventDispatcher { public static var BLOCK_SIZE:uint = 64 * 1024; + public static var addTrailingLineBreak:Boolean = false; private var _loader:URLLoader; private var _boundary:String; @@ -328,6 +329,9 @@ { postData = BOUNDARY(postData); postData = DOUBLEDASH(postData); + if (addTrailingLineBreak) { + postData = LINEBREAK(postData); + } return postData; } diff --git a/flash/core/src/ru/mail/controller/AppController.as b/flash/core/src/ru/mail/controller/AppController.as index 2c5e38d9..02c2215a 100644 --- a/flash/core/src/ru/mail/controller/AppController.as +++ b/flash/core/src/ru/mail/controller/AppController.as @@ -1,7 +1,7 @@ package ru.mail.controller { import by.blooddy.crypto.Base64; - + import flash.display.Graphics; import flash.display.Sprite; import flash.display.Stage; @@ -16,7 +16,9 @@ package ru.mail.controller import flash.system.Security; import flash.utils.Timer; import flash.utils.setTimeout; - + + import net.inspirit.MultipartURLLoader; + import ru.mail.commands.LoadFileCommand; import ru.mail.commands.UploadCommand; import ru.mail.commands.textloader.SimpleTextLoader; @@ -93,6 +95,22 @@ package ru.mail.controller initView(graphicContext); // parse flashvars + setupOptions(options); + + setupChain(); + configureListeners(); + + // check ping and complete initialisation + completeInitialization(options); + } + + //=================================================== + // + // Initialization + // + //=================================================== + + private function setupOptions(options):void { _options = options; JSCaller.callback = getJsFunctionName(options, JSCaller.callback); // logger @@ -107,7 +125,7 @@ package ru.mail.controller JSCaller.flashId = options["flashId"]; } - // use camera + // use camera // options["useCamera"], if not false, contains url to camera swf _model.useCamera = options["useCamera"]; if (_model.useCamera && _model.useCamera !== 'false') { @@ -118,19 +136,13 @@ package ru.mail.controller _model.timeout = options["timeout"]; LoggerJS.log("timeout="+_model.timeout); - setupChain(); - configureListeners(); - - // check ping and complete initialisation - completeInitialization(options); + if (options["multipartTrailingLinebreak"] && options["multipartTrailingLinebreak"] !== 'false') { + // set option to add linebreak at the end of multipart upload + MultipartURLLoader.addTrailingLineBreak = true; + } + LoggerJS.log("MultipartURLLoader.addTrailingLineBreak is " + MultipartURLLoader.addTrailingLineBreak); } - //=================================================== - // - // Initialization - // - //=================================================== - /** * We need transparent sprite to listen to mouseEvents * JS places it over its button diff --git a/lib/FileAPI.core.js b/lib/FileAPI.core.js index a46f51c2..c8d41363 100644 --- a/lib/FileAPI.core.js +++ b/lib/FileAPI.core.js @@ -192,7 +192,7 @@ * FileAPI (core object) */ api = { - version: '2.0.19', + version: '2.0.20', cors: false, html5: true,