12 |
- /*! WebUploader 0.1.2 */
- (function(o,q){var s={},t=function(e,d){var b,c,a;if(typeof e==="string"){return p(e)}else{b=[];for(c=e.length,a=0;a<c;a++){b.push(p(e[a]))}return d.apply(null,b)}},k=function(a,b,c){if(arguments.length===2){c=b;b=null}t(b||[],function(){l(a,c,arguments)})},l=function(d,c,b){var a={exports:c},e;if(typeof c==="function"){b.length||(b=[t,a.exports,a]);e=c.apply(null,b);e!==undefined&&(a.exports=e)}s[d]=a.exports},p=function(a){var b=s[a]||o[a];if(!b){throw new Error("`"+a+"` is undefined")}return b},m=function(d){var b,f,e,c,g,a;a=function(h){return h&&(h.charAt(0).toUpperCase()+h.substr(1))};for(b in s){f=d;if(!s.hasOwnProperty(b)){continue}e=b.split("/");g=a(e.pop());while((c=a(e.shift()))){f[c]=f[c]||{};f=f[c]}f[g]=s[b]}},r=q(o,k,t),n;m(r);if(typeof module==="object"&&typeof module.exports==="object"){module.exports=r}else{if(typeof define==="function"&&define.amd){define([],r)}else{n=o.WebUploader;o.WebUploader=r;o.WebUploader.noConflict=function(){o.WebUploader=n}}}})(this,function(d,f,e){f("dollar-third",[],function(){return d.jQuery||d.Zepto});f("dollar",["dollar-third"],function(a){return a});f("promise-third",["dollar"],function(a){return{Deferred:a.Deferred,when:a.when,isPromise:function(b){return b&&typeof b.then==="function"}}});f("promise",["promise-third"],function(a){return a});f("base",["dollar","promise"],function(c,a){var k=function(){},l=Function.call;function m(g){return function(){return l.apply(g,arguments)}}function b(g,h){return function(){return g.apply(h,arguments)}}function n(h){var g;if(Object.create){return Object.create(h)}else{g=function(){};g.prototype=h;return new g()}}return{version:"0.1.2",$:c,Deferred:a.Deferred,isPromise:a.isPromise,when:a.when,browser:(function(u){var v={},g=u.match(/WebKit\/([\d.]+)/),i=u.match(/Chrome\/([\d.]+)/)||u.match(/CriOS\/([\d.]+)/),j=u.match(/MSIE\s([\d\.]+)/)||u.match(/(?:trident)(?:.*rv:([\w.]+))?/i),t=u.match(/Firefox\/([\d.]+)/),s=u.match(/Safari\/([\d.]+)/),h=u.match(/OPR\/([\d.]+)/);g&&(v.webkit=parseFloat(g[1]));i&&(v.chrome=parseFloat(i[1]));j&&(v.ie=parseFloat(j[1]));t&&(v.firefox=parseFloat(t[1]));s&&(v.safari=parseFloat(s[1]));h&&(v.opera=parseFloat(h[1]));return v})(navigator.userAgent),os:(function(g){var h={},i=g.match(/(?:Android);?[\s\/]+([\d.]+)?/),j=g.match(/(?:iPad|iPod|iPhone).*OS\s([\d_]+)/);i&&(h.android=parseFloat(i[1]));j&&(h.ios=parseFloat(j[1].replace(/_/g,".")));return h})(navigator.userAgent),inherits:function(g,h,i){var j;if(typeof h==="function"){j=h;h=null}else{if(h&&h.hasOwnProperty("constructor")){j=h.constructor}else{j=function(){return g.apply(this,arguments)}}}c.extend(true,j,g,i||{});j.__super__=g.prototype;j.prototype=n(g.prototype);h&&c.extend(true,j.prototype,h);return j},noop:k,bindFn:b,log:(function(){if(d.console){return b(console.log,console)}return k})(),nextTick:(function(){return function(g){setTimeout(g,1)}})(),slice:m([].slice),guid:(function(){var g=0;return function(j){var i=(+new Date()).toString(32),h=0;for(;h<5;h++){i+=Math.floor(Math.random()*65535).toString(32)}return(j||"wu_")+i+(g++).toString(32)}})(),formatSize:function(g,i,h){var j;h=h||["B","K","M","G","TB"];while((j=h.shift())&&g>1024){g=g/1024}return(j==="B"?g:g.toFixed(i||2))+j}}});f("mediator",["base"],function(n){var m=n.$,a=[].slice,b=/\s+/,o;function p(h,g,i,j){return m.grep(h,function(k){return k&&(!g||k.e===g)&&(!i||k.cb===i||k.cb._cb===i)&&(!j||k.ctx===j)})}function c(h,i,g){m.each((h||"").split(b),function(k,j){g(j,i)})}function l(j,r){var g=false,k=-1,h=j.length,i;while(++k<h){i=j[k];if(i.cb.apply(i.ctx2,r)===false){g=true;break}}return !g}o={on:function(h,i,g){var k=this,j;if(!i){return this}j=this._events||(this._events=[]);c(h,i,function(v,t){var u={e:v};u.cb=t;u.ctx=g;u.ctx2=g||k;u.id=j.length;j.push(u)});return this},once:function(h,i,g){var j=this;if(!i){return j}c(h,i,function(t,k){var s=function(){j.off(t,s);return k.apply(g||j,arguments)};s._cb=k;j.on(t,s,g)});return j},off:function(j,h,g){var i=this._events;if(!i){return this}if(!j&&!h&&!g){this._events=[];return this}c(j,h,function(k,r){m.each(p(i,k,r,g),function(){delete i[this.id]})});return this},trigger:function(i){var g,j,h;if(!this._events||!i){return this}g=a.call(arguments,1);j=p(this._events,i);h=p(this._events,"all");return l(j,g)&&l(h,arguments)}};return m.extend({installTo:function(g){return m.extend(g,o)}},o)});f("uploader",["base","mediator"],function(h,b){var c=h.$;function a(g){this.options=c.extend(true,{},a.options,g);this._init(this.options)}a.options={};b.installTo(a.prototype);c.each({upload:"start-upload",stop:"stop-upload",getFile:"get-file",getFiles:"get-files",addFile:"add-file",addFiles:"add-file",sort:"sort-files",removeFile:"remove-file",skipFile:"skip-file",retry:"retry",isInProgress:"is-in-progress",makeThumb:"make-thumb",getDimension:"get-dimension",addButton:"add-btn",getRuntimeType:"get-runtime-type",refresh:"refresh",disable:"disable",enable:"enable",reset:"reset"},function(j,g){a.prototype[j]=function(){return this.request(g,arguments)}});c.extend(a.prototype,{state:"pending",_init:function(g){var j=this;j.request("init",g,function(){j.state="ready";j.trigger("ready")})},option:function(l,g){var k=this.options;if(arguments.length>1){if(c.isPlainObject(g)&&c.isPlainObject(k[l])){c.extend(k[l],g)}else{k[l]=g}}else{return l?k[l]:k}},getStats:function(){var g=this.request("get-stats");return{successNum:g.numOfSuccess,cancelNum:g.numOfCancel,invalidNum:g.numOfInvalid,uploadFailNum:g.numOfUploadFailed,queueNum:g.numOfQueue}},trigger:function(l){var m=[].slice.call(arguments,1),g=this.options,n="on"+l.substring(0,1).toUpperCase()+l.substring(1);if(b.trigger.apply(this,arguments)===false||c.isFunction(g[n])&&g[n].apply(this,m)===false||c.isFunction(this[n])&&this[n].apply(this,m)===false||b.trigger.apply(b,[this,l].concat(m))===false){return false}return true},request:h.noop});h.create=a.create=function(g){return new a(g)};h.Uploader=a;return a});f("runtime/runtime",["base","mediator"],function(k,b){var c=k.$,j={},a=function(g){for(var h in g){if(g.hasOwnProperty(h)){return h}}return null};function l(g){this.options=c.extend({container:document.body},g);this.uid=k.guid("rt_")}c.extend(l.prototype,{getContainer:function(){var g=this.options,h,i;if(this._container){return this._container}h=c(g.container||document.body);i=c(document.createElement("div"));i.attr("id","rt_"+this.uid);i.css({position:"absolute",top:"0px",left:"0px",width:"1px",height:"1px",overflow:"hidden"});h.append(i);h.addClass("webuploader-container");this._container=i;return i},init:k.noop,exec:k.noop,destroy:function(){if(this._container){this._container.parentNode.removeChild(this.__container)}this.off()}});l.orders="html5,flash";l.addRuntime=function(g,h){j[g]=h};l.hasRuntime=function(g){return !!(g?j[g]:a(j))};l.create=function(g,i){var n,h;i=i||l.orders;c.each(i.split(/\s*,\s*/g),function(){if(j[this]){n=this;return false}});n=n||a(j);if(!n){throw new Error("Runtime Error")}h=new j[n](g);return h};b.installTo(l.prototype);return l});f("runtime/client",["base","mediator","runtime/runtime"],function(b,a,c){var j;j=(function(){var g={};return{add:function(h){g[h.uid]=h},get:function(m,n){var h;if(m){return g[m]}for(h in g){if(n&&g[h].__standalone){continue}return g[h]}return null},remove:function(h){delete g[h.uid]}}})();function i(h,m){var n=b.Deferred(),g;this.uid=b.guid("client_");this.runtimeReady=function(k){return n.done(k)};this.connectRuntime=function(l,k){if(g){throw new Error("already connected!")}n.done(k);if(typeof l==="string"&&j.get(l)){g=j.get(l)}g=g||j.get(null,m);if(!g){g=c.create(l,l.runtimeOrder);g.__promise=n.promise();g.once("ready",n.resolve);g.init();j.add(g);g.__client=1}else{b.$.extend(g.options,l);g.__promise.then(n.resolve);g.__client++}m&&(g.__standalone=m);return g};this.getRuntime=function(){return g};this.disconnectRuntime=function(){if(!g){return}g.__client--;if(g.__client<=0){j.remove(g);delete g.__promise;g.destroy()}g=null};this.exec=function(){if(!g){return}var k=b.slice(arguments);h&&k.unshift(h);return g.exec.apply(this,k)};this.getRuid=function(){return g&&g.uid};this.destroy=(function(k){return function(){k&&k.apply(this,arguments);this.trigger("destroy");this.off();this.exec("destroy");this.disconnectRuntime()}})(this.destroy)}a.installTo(i.prototype);return i});f("lib/dnd",["base","mediator","runtime/client"],function(i,a,j){var c=i.$;function b(g){g=this.options=c.extend({},b.options,g);g.container=c(g.container);if(!g.container.length){return}j.call(this,"DragAndDrop")}b.options={accept:null,disableGlobalDnd:false};i.inherits(j,{constructor:b,init:function(){var g=this;g.connectRuntime(g.options,function(){g.exec("init");g.trigger("ready")})},destroy:function(){this.disconnectRuntime()}});a.installTo(b.prototype);return b});f("widgets/widget",["base","uploader"],function(o,a){var l=o.$,m=a.prototype._init,b={},c=[];function p(i){if(!i){return false}var g=i.length,h=l.type(i);if(i.nodeType===1&&g){return true}return h==="array"||h!=="function"&&h!=="string"&&(g===0||typeof g==="number"&&g>0&&(g-1) in i)}function n(g){this.owner=g;this.options=g.options}l.extend(n.prototype,{init:o.noop,invoke:function(h,g){var i=this.responseMap;if(!i||!(h in i)||!(i[h] in this)||!l.isFunction(this[i[h]])){return b}return this[i[h]].apply(this,g)},request:function(){return this.owner.request.apply(this.owner,arguments)}});l.extend(a.prototype,{_init:function(){var g=this,h=g._widgets=[];l.each(c,function(i,j){h.push(new j(g))});return m.apply(g,arguments)},request:function(x,D,A){var i=0,C=this._widgets,g=C.length,j=[],k=[],h,y,z,B;D=p(D)?D:[D];for(;i<g;i++){h=C[i];y=h.invoke(x,D);if(y!==b){if(o.isPromise(y)){k.push(y)}else{j.push(y)}}}if(A||k.length){z=o.when.apply(o,k);B=z.pipe?"pipe":"then";return z[B](function(){var q=o.Deferred(),r=arguments;setTimeout(function(){q.resolve.apply(q,r)},1);return q.promise()})[B](A||o.noop)}else{return j[0]}}});a.register=n.register=function(g,i){var j={init:"init"},h;if(arguments.length===1){i=g;i.responseMap=j}else{i.responseMap=l.extend(j,g)}h=o.inherits(n,i);c.push(h);return h};return n});f("widgets/filednd",["base","uploader","lib/dnd","widgets/widget"],function(c,a,h){var b=c.$;a.options.dnd="";return a.register({init:function(g){if(!g.dnd||this.request("predict-runtime-type")!=="html5"){return}var m=this,p=c.Deferred(),o=b.extend({},{disableGlobalDnd:g.disableGlobalDnd,container:g.dnd,accept:g.accept}),n;n=new h(o);n.once("ready",p.resolve);n.on("drop",function(i){m.request("add-file",[i])});n.on("accept",function(i){return m.owner.trigger("dndAccept",i)});n.init();return p.promise()}})});f("lib/filepaste",["base","mediator","runtime/client"],function(c,a,i){var b=c.$;function j(g){g=this.options=b.extend({},g);g.container=b(g.container||document.body);i.call(this,"FilePaste")}c.inherits(i,{constructor:j,init:function(){var g=this;g.connectRuntime(g.options,function(){g.exec("init");g.trigger("ready")})},destroy:function(){this.exec("destroy");this.disconnectRuntime();this.off()}});a.installTo(j.prototype);return j});f("widgets/filepaste",["base","uploader","lib/filepaste","widgets/widget"],function(c,a,h){var b=c.$;return a.register({init:function(m){if(!m.paste||this.request("predict-runtime-type")!=="html5"){return}var n=this,p=c.Deferred(),o=b.extend({},{container:m.paste,accept:m.accept}),g;g=new h(o);g.once("ready",p.resolve);g.on("paste",function(i){n.owner.request("add-file",[i])});g.init();return p.promise()}})});f("lib/blob",["base","runtime/client"],function(b,c){function a(l,j){var k=this;k.source=j;k.ruid=l;c.call(k,"Blob");this.uid=j.uid||this.uid;this.type=j.type||"";this.size=j.size||0;if(l){k.connectRuntime(l)}}b.inherits(c,{constructor:a,slice:function(i,j){return this.exec("slice",i,j)},getSource:function(){return this.source}});return a});f("lib/file",["base","lib/blob"],function(b,a){var c=1,j=/\.([^.]+)$/;function i(l,h){var g;a.apply(this,arguments);this.name=h.name||("untitled"+c++);g=j.exec(h.name)?RegExp.$1.toLowerCase():"";if(!g&&this.type){g=/\/(jpg|jpeg|png|gif|bmp)$/i.exec(this.type)?RegExp.$1.toLowerCase():"";this.name+="."+g}if(!this.type&&~"jpg,jpeg,png,gif,bmp".indexOf(g)){this.type="image/"+(g==="jpg"?"jpeg":g)}this.ext=g;this.lastModifiedDate=h.lastModifiedDate||(new Date()).toLocaleString()}return b.inherits(a,i)});f("lib/filepicker",["base","runtime/client","lib/file"],function(b,c,i){var a=b.$;function j(g){g=this.options=a.extend({},j.options,g);g.container=a(g.id);if(!g.container.length){throw new Error("按钮指定错误")}g.innerHTML=g.innerHTML||g.label||g.container.html()||"";g.button=a(g.button||document.createElement("div"));g.button.html(g.innerHTML);g.container.html(g.button);c.call(this,"FilePicker",true)}j.options={button:null,container:null,label:null,innerHTML:null,multiple:true,accept:null,name:"file"};b.inherits(c,{constructor:j,init:function(){var g=this,h=g.options,l=h.button;l.addClass("webuploader-pick");g.on("all",function(n){var k;switch(n){case"mouseenter":l.addClass("webuploader-pick-hover");break;case"mouseleave":l.removeClass("webuploader-pick-hover");break;case"change":k=g.exec("getFiles");g.trigger("select",a.map(k,function(m){m=new i(g.getRuid(),m);m._refer=h.container;return m}),h.container);break}});g.connectRuntime(h,function(){g.refresh();g.exec("init",h);g.trigger("ready")});a(d).on("resize",function(){g.refresh()})},refresh:function(){var o=this.getRuntime().getContainer(),n=this.options.button,h=n.outerWidth?n.outerWidth():n.width(),p=n.outerHeight?n.outerHeight():n.height(),g=n.offset();h&&p&&o.css({bottom:"auto",right:"auto",width:h+"px",height:p+"px"}).offset(g)},enable:function(){var g=this.options.button;g.removeClass("webuploader-pick-disable");this.refresh()},disable:function(){var g=this.options.button;this.getRuntime().getContainer().css({top:"-99999px"});g.addClass("webuploader-pick-disable")},destroy:function(){if(this.runtime){this.exec("destroy");this.disconnectRuntime()}}});return j});f("widgets/filepicker",["base","uploader","lib/filepicker","widgets/widget"],function(c,a,h){var b=c.$;b.extend(a.options,{pick:null,accept:null});return a.register({"add-btn":"addButton",refresh:"refresh",disable:"disable",enable:"enable"},{init:function(g){this.pickers=[];return g.pick&&this.addButton(g.pick)},refresh:function(){b.each(this.pickers,function(){this.refresh()})},addButton:function(o){var t=this,g=t.options,p=g.accept,q,r,s;if(!o){return}s=c.Deferred();b.isPlainObject(o)||(o={id:o});q=b.extend({},o,{accept:b.isPlainObject(p)?[p]:p,swf:g.swf,runtimeOrder:g.runtimeOrder});r=new h(q);r.once("ready",s.resolve);r.on("select",function(i){t.owner.request("add-file",[i])});r.init();this.pickers.push(r);return s.promise()},disable:function(){b.each(this.pickers,function(){this.disable()})},enable:function(){b.each(this.pickers,function(){this.enable()})}})});f("file",["base","mediator"],function(n,b){var p=n.$,r="WU_FILE_",o=0,m=/\.([^.]+)$/,q={};function c(){return r+o++}function a(g){this.name=g.name||"Untitled";this.size=g.size||0;this.type=g.type||"application";this.lastModifiedDate=g.lastModifiedDate||(new Date()*1);this.id=c();this.ext=m.exec(this.name)?RegExp.$1:"";this.statusText="";q[this.id]=a.Status.INITED;this.source=g;this.loaded=0;this.on("error",function(h){this.setStatus(a.Status.ERROR,h)})}p.extend(a.prototype,{setStatus:function(i,h){var g=q[this.id];typeof h!=="undefined"&&(this.statusText=h);if(i!==g){q[this.id]=i;this.trigger("statuschange",i,g)}},getStatus:function(){return q[this.id]},getSource:function(){return this.source},destory:function(){delete q[this.id]}});b.installTo(a.prototype);a.Status={INITED:"inited",QUEUED:"queued",PROGRESS:"progress",ERROR:"error",COMPLETE:"complete",CANCELLED:"cancelled",INTERRUPT:"interrupt",INVALID:"invalid"};return a});f("queue",["base","mediator","file"],function(k,a,b){var c=k.$,l=b.Status;function j(){this.stats={numOfQueue:0,numOfSuccess:0,numOfCancel:0,numOfProgress:0,numOfUploadFailed:0,numOfInvalid:0};this._queue=[];this._map={}}c.extend(j.prototype,{append:function(g){this._queue.push(g);this._fileAdded(g);return this},prepend:function(g){this._queue.unshift(g);this._fileAdded(g);return this},getFile:function(g){if(typeof g!=="string"){return g}return this._map[g]},fetch:function(i){var n=this._queue.length,g,h;i=i||l.QUEUED;for(g=0;g<n;g++){h=this._queue[g];if(i===h.getStatus()){return h}}return null},sort:function(g){if(typeof g==="function"){this._queue.sort(g)}},getFiles:function(){var p=[].slice.call(arguments,0),i=[],g=0,o=this._queue.length,h;for(;g<o;g++){h=this._queue[g];if(p.length&&!~c.inArray(h.getStatus(),p)){continue}i.push(h)}return i},_fileAdded:function(i){var g=this,h=this._map[i.id];if(!h){this._map[i.id]=i;i.on("statuschange",function(p,o){g._onFileStatusChange(p,o)})}i.setStatus(l.QUEUED)},_onFileStatusChange:function(i,h){var g=this.stats;switch(h){case l.PROGRESS:g.numOfProgress--;break;case l.QUEUED:g.numOfQueue--;break;case l.ERROR:g.numOfUploadFailed--;break;case l.INVALID:g.numOfInvalid--;break}switch(i){case l.QUEUED:g.numOfQueue++;break;case l.PROGRESS:g.numOfProgress++;break;case l.ERROR:g.numOfUploadFailed++;break;case l.COMPLETE:g.numOfSuccess++;break;case l.CANCELLED:g.numOfCancel++;break;case l.INVALID:g.numOfInvalid++;break}}});a.installTo(j.prototype);return j});f("widgets/queue",["base","uploader","queue","file","lib/file","runtime/client","widgets/widget"],function(o,r,q,a,m,b){var p=o.$,n=/\.\w+$/,c=a.Status;return r.register({"sort-files":"sortFiles","add-file":"addFiles","get-file":"getFile","fetch-file":"fetchFile","get-stats":"getStats","get-files":"getFiles","remove-file":"removeFile",retry:"retry",reset:"reset","accept-file":"acceptFile"},{init:function(l){var x=this,v,g,i,w,h,k,j;if(p.isPlainObject(l.accept)){l.accept=[l.accept]}if(l.accept){h=[];for(i=0,g=l.accept.length;i<g;i++){w=l.accept[i].extensions;w&&h.push(w)}if(h.length){k="\\."+h.join(",").replace(/,/g,"$|\\.").replace(/\*/g,".*")+"$"}x.accept=new RegExp(k,"i")}x.queue=new q();x.stats=x.queue.stats;if(this.request("predict-runtime-type")!=="html5"){return}v=o.Deferred();j=new b("Placeholder");j.connectRuntime({runtimeOrder:"html5"},function(){x._ruid=j.getRuid();v.resolve()});return v.promise()},_wrapFile:function(g){if(!(g instanceof a)){if(!(g instanceof m)){if(!this._ruid){throw new Error("Can't add external files.")}g=new m(this._ruid,g)}g=new a(g)}return g},acceptFile:function(g){var h=!g||g.size<6||this.accept&&n.exec(g.name)&&!this.accept.test(g.name);return !h},_addFile:function(g){var h=this;g=h._wrapFile(g);if(!h.owner.trigger("beforeFileQueued",g)){return}if(!h.acceptFile(g)){h.owner.trigger("error","Q_TYPE_DENIED",g);return}h.queue.append(g);h.owner.trigger("fileQueued",g);return g},getFile:function(g){return this.queue.getFile(g)},addFiles:function(h){var g=this;if(!h.length){h=[h]}h=p.map(h,function(i){return g._addFile(i)});g.owner.trigger("filesQueued",h);if(g.options.auto){g.request("start-upload")}},getStats:function(){return this.stats},removeFile:function(g){var h=this;g=g.id?g:h.queue.getFile(g);g.setStatus(c.CANCELLED);h.owner.trigger("fileDequeued",g)},getFiles:function(){return this.queue.getFiles.apply(this.queue,arguments)},fetchFile:function(){return this.queue.fetch.apply(this.queue,arguments)},retry:function(j,l){var h=this,i,k,g;if(j){j=j.id?j:h.queue.getFile(j);j.setStatus(c.QUEUED);l||h.request("start-upload");return}i=h.queue.getFiles(c.ERROR);k=0;g=i.length;for(;k<g;k++){j=i[k];j.setStatus(c.QUEUED)}h.request("start-upload")},sortFiles:function(){return this.queue.sort.apply(this.queue,arguments)},reset:function(){this.queue=new q();this.stats=this.queue.stats}})});f("widgets/runtime",["uploader","runtime/runtime","widgets/widget"],function(a,b){a.support=function(){return b.hasRuntime.apply(b,arguments)};return a.register({"predict-runtime-type":"predictRuntmeType"},{init:function(){if(!this.predictRuntmeType()){throw Error("Runtime Error")}},predictRuntmeType:function(){var c=this.options.runtimeOrder||b.orders,i=this.type,k,l;if(!i){c=c.split(/\s*,\s*/g);for(k=0,l=c.length;k<l;k++){if(b.hasRuntime(c[k])){this.type=i=c[k];break}}}return i}})});f("lib/transport",["base","runtime/client","mediator"],function(i,j,b){var c=i.$;function a(g){var h=this;g=h.options=c.extend(true,{},a.options,g||{});j.call(this,"Transport");this._blob=null;this._formData=g.formData||{};this._headers=g.headers||{};this.on("progress",this._timeout);this.on("load error",function(){h.trigger("progress",1);clearTimeout(h._timer)})}a.options={server:"",method:"POST",withCredentials:false,fileVal:"file",timeout:2*60*1000,formData:{},headers:{},sendAsBinary:false};c.extend(a.prototype,{appendBlob:function(n,o,p){var g=this,h=g.options;if(g.getRuid()){g.disconnectRuntime()}g.connectRuntime(o.ruid,function(){g.exec("init")});g._blob=o;h.fileVal=n||h.fileVal;h.filename=p||h.filename},append:function(h,g){if(typeof h==="object"){c.extend(this._formData,h)}else{this._formData[h]=g}},setRequestHeader:function(h,g){if(typeof h==="object"){c.extend(this._headers,h)}else{this._headers[h]=g}},send:function(g){this.exec("send",g);this._timeout()},abort:function(){clearTimeout(this._timer);return this.exec("abort")},destroy:function(){this.trigger("destroy");this.off();this.exec("destroy");this.disconnectRuntime()},getResponse:function(){return this.exec("getResponse")},getResponseAsJson:function(){return this.exec("getResponseAsJson")},getStatus:function(){return this.exec("getStatus")},_timeout:function(){var h=this,g=h.options.timeout;if(!g){return}clearTimeout(h._timer);h._timer=setTimeout(function(){h.abort();h.trigger("error","timeout")},g)}});b.installTo(a.prototype);return a});f("widgets/upload",["base","uploader","file","lib/transport","widgets/widget"],function(n,b,c,a){var l=n.$,o=n.isPromise,p=c.Status;l.extend(b.options,{prepareNextFile:false,chunked:false,chunkSize:5*1024*1024,chunkRetry:2,threads:3,formData:null});function m(j,i){var k=[],v=j.source,w=v.size,h=i?Math.ceil(w/i):1,u=0,x=0,g;while(x<h){g=Math.min(i,w-u);k.push({file:j,start:u,end:i?(u+g):w,total:w,chunks:h,chunk:x++});u+=g}j.blocks=k.concat();j.remaning=k.length;return{file:j,has:function(){return !!k.length},fetch:function(){return k.shift()}}}b.register({"start-upload":"start","stop-upload":"stop","skip-file":"skipFile","is-in-progress":"isInProgress"},{init:function(){var g=this.owner;this.runing=false;this.pool=[];this.pending=[];this.remaning=0;this.__tick=n.bindFn(this._tick,this);g.on("uploadComplete",function(h){h.blocks&&l.each(h.blocks,function(i,j){j.transport&&(j.transport.abort(),j.transport.destroy());delete j.transport});delete h.blocks;delete h.remaning})},start:function(){var g=this;l.each(g.request("get-files",p.INVALID),function(){g.request("remove-file",this)});if(g.runing){return}g.runing=true;l.each(g.pool,function(j,h){var i=h.file;if(i.getStatus()===p.INTERRUPT){i.setStatus(p.PROGRESS);g._trigged=false;h.transport&&h.transport.send()}});g._trigged=false;g.owner.trigger("startUpload");n.nextTick(g.__tick)},stop:function(g){var h=this;if(h.runing===false){return}h.runing=false;g&&l.each(h.pool,function(i,j){j.transport&&j.transport.abort();j.file.setStatus(p.INTERRUPT)});h.owner.trigger("stopUpload")},isInProgress:function(){return !!this.runing},getStats:function(){return this.request("get-stats")},skipFile:function(g,h){g=this.request("get-file",g);g.setStatus(h||p.COMPLETE);g.skipped=true;g.blocks&&l.each(g.blocks,function(i,j){var k=j.transport;if(k){k.abort();k.destroy();delete j.transport}});this.owner.trigger("uploadSkip",g)},_tick:function(){var j=this,g=j.options,h,i;if(j._promise){return j._promise.always(j.__tick)}if(j.pool.length<g.threads&&(i=j._nextBlock())){j._trigged=false;h=function(k){j._promise=null;k&&k.file&&j._startSend(k);n.nextTick(j.__tick)};j._promise=o(i)?i.always(h):h(i)}else{if(!j.remaning&&!j.getStats().numOfQueue){j.runing=false;j._trigged||n.nextTick(function(){j.owner.trigger("uploadFinished")});j._trigged=true}}},_nextBlock:function(){var i=this,g=i._act,j=i.options,k,h;if(g&&g.has()&&g.file.getStatus()===p.PROGRESS){if(j.prepareNextFile&&!i.pending.length){i._prepareNextFile()}return g.fetch()}else{if(i.runing){if(!i.pending.length&&i.getStats().numOfQueue){i._prepareNextFile()}k=i.pending.shift();h=function(r){if(!r){return null}g=m(r,j.chunked?j.chunkSize:0);i._act=g;return g.fetch()};return o(k)?k[k.pipe?"pipe":"then"](h):h(k)}}},_prepareNextFile:function(){var g=this,h=g.request("fetch-file"),i=g.pending,j;if(h){j=g.request("before-send-file",h,function(){if(h.getStatus()===p.QUEUED){g.owner.trigger("uploadStart",h);h.setStatus(p.PROGRESS);return h}return g._finishFile(h)});j.done(function(){var k=l.inArray(j,i);~k&&i.splice(k,1,h)});j.fail(function(k){h.setStatus(p.ERROR,k);g.owner.trigger("uploadError",h,k);g.owner.trigger("uploadComplete",h)});i.push(j)}},_popBlock:function(g){var h=l.inArray(g,this.pool);this.pool.splice(h,1);g.file.remaning--;this.remaning--},_startSend:function(i){var g=this,h=i.file,j;g.pool.push(i);g.remaning++;i.blob=i.chunks===1?h.source:h.source.slice(i.start,i.end);j=g.request("before-send",i,function(){if(h.getStatus()===p.PROGRESS){g._doSend(i)}else{g._popBlock(i);n.nextTick(g.__tick)}});j.fail(function(){if(h.remaning===1){g._finishFile(h).always(function(){i.percentage=1;g._popBlock(i);g.owner.trigger("uploadComplete",h);n.nextTick(g.__tick)})}else{i.percentage=1;g._popBlock(i);n.nextTick(g.__tick)}})},_doSend:function(i){var y=this,v=y.owner,w=y.options,j=i.file,z=new a(w),h=l.extend({},w.formData),k=l.extend({},w.headers),x,g;i.transport=z;z.on("destroy",function(){delete i.transport;y._popBlock(i);n.nextTick(y.__tick)});z.on("progress",function(r){var q=0,s=0;q=i.percentage=r;if(i.chunks>1){l.each(j.blocks,function(t,u){s+=(u.percentage||0)*(u.end-u.start)});q=s/j.size}v.trigger("uploadProgress",j,q||0)});x=function(q){var r;g=z.getResponseAsJson()||{};g._raw=z.getResponse();r=function(s){q=s};if(!v.trigger("uploadAccept",i,g,r)){q=q||"server"}return q};z.on("error",function(q,r){i.retried=i.retried||0;if(i.chunks>1&&~"http,abort".indexOf(q)&&i.retried<w.chunkRetry){i.retried++;z.send()}else{if(!r&&q==="server"){q=x(q)}j.setStatus(p.ERROR,q);v.trigger("uploadError",j,q);v.trigger("uploadComplete",j)}});z.on("load",function(){var q;if((q=x())){z.trigger("error",q,true);return}if(j.remaning===1){y._finishFile(j,g)}else{z.destroy()}});h=l.extend(h,{id:j.id,name:j.name,type:j.type,lastModifiedDate:j.lastModifiedDate,size:j.size});i.chunks>1&&l.extend(h,{chunks:i.chunks,chunk:i.chunk});v.trigger("uploadBeforeSend",i,h,k);z.appendBlob(w.fileVal,i.blob,j.name);z.append(h);z.setRequestHeader(k);z.send()},_finishFile:function(j,g,i){var h=this.owner;return h.request("after-send-file",arguments,function(){j.setStatus(p.COMPLETE);h.trigger("uploadSuccess",j,g,i)}).fail(function(k){if(j.getStatus()===p.PROGRESS){j.setStatus(p.ERROR,k)}h.trigger("uploadError",j,k)}).always(function(){h.trigger("uploadComplete",j)})}})});f("widgets/validator",["base","uploader","file","widgets/widget"],function(k,a,b){var c=k.$,l={},j;j={addValidator:function(g,h){l[g]=h},removeValidator:function(g){delete l[g]}};a.register({init:function(){var g=this;c.each(l,function(){this.call(g.owner)})}});j.addValidator("fileNumLimit",function(){var p=this,g=p.options,h=0,o=g.fileNumLimit>>0,i=true;if(!o){return}p.on("beforeFileQueued",function(m){if(h>=o&&i){i=false;this.trigger("error","Q_EXCEED_NUM_LIMIT",o,m);setTimeout(function(){i=true},1)}return h>=o?false:true});p.on("fileQueued",function(){h++});p.on("fileDequeued",function(){h--});p.on("uploadFinished",function(){h=0})});j.addValidator("fileSizeLimit",function(){var p=this,g=p.options,h=0,o=g.fileSizeLimit>>0,i=true;if(!o){return}p.on("beforeFileQueued",function(n){var m=h+n.size>o;if(m&&i){i=false;this.trigger("error","Q_EXCEED_SIZE_LIMIT",o,n);setTimeout(function(){i=true},1)}return m?false:true});p.on("fileQueued",function(m){h+=m.size});p.on("fileDequeued",function(m){h-=m.size});p.on("uploadFinished",function(){h=0})});j.addValidator("fileSingleSizeLimit",function(){var g=this,h=g.options,i=h.fileSingleSizeLimit;if(!i){return}g.on("beforeFileQueued",function(n){if(n.size>i){n.setStatus(b.Status.INVALID,"exceed_size");this.trigger("error","F_EXCEED_SIZE",n);return false}})});j.addValidator("duplicate",function(){var g=this,i=g.options,n={};if(i.duplicate){return}function h(m){var s=0,t=0,v=m.length,u;for(;t<v;t++){u=m.charCodeAt(t);s=u+(s<<6)+(s<<16)-s}return s}g.on("beforeFileQueued",function(p){var m=p.__hash||(p.__hash=h(p.name+p.size+p.lastModifiedDate));if(n[m]){this.trigger("error","F_DUPLICATE",p);return false}});g.on("fileQueued",function(p){var m=p.__hash;m&&(n[m]=true)});g.on("fileDequeued",function(p){var m=p.__hash;m&&(delete n[m])})});return j});f("runtime/compbase",[],function(){function a(c,b){this.owner=c;this.options=c.options;this.getRuntime=function(){return b};this.getRuid=function(){return b.uid};this.trigger=function(){return c.trigger.apply(c,arguments)}}return a});f("runtime/html5/runtime",["base","runtime/runtime","runtime/compbase"],function(k,l,a){var j="html5",c={};function b(){var h={},g=this,i=this.destory;l.apply(g,arguments);g.type=j;g.exec=function(w,t){var x=this,u=x.uid,v=k.slice(arguments,2),s;if(c[w]){s=h[u]=h[u]||new c[w](x,g);if(s[t]){return s[t].apply(s,v)}}};g.destory=function(){return i&&i.apply(this,arguments)}}k.inherits(l,{constructor:b,init:function(){var g=this;setTimeout(function(){g.trigger("ready")},1)}});b.register=function(g,h){var i=c[g]=k.inherits(a,h);return i};if(d.Blob&&d.FileReader&&d.DataView){l.addRuntime(j,b)}return b});f("runtime/html5/blob",["runtime/html5/runtime","lib/blob"],function(a,b){return a.register("Blob",{slice:function(c,l){var k=this.owner.source,j=k.slice||k.webkitSlice||k.mozSlice;k=j.call(k,c,l);return new b(this.getRuid(),k)}})});f("runtime/html5/dnd",["base","runtime/html5/runtime","lib/file"],function(i,a,j){var b=i.$,c="webuploader-dnd-";return a.register("DragAndDrop",{init:function(){var g=this.elem=this.options.container;this.dragEnterHandler=i.bindFn(this._dragEnterHandler,this);this.dragOverHandler=i.bindFn(this._dragOverHandler,this);this.dragLeaveHandler=i.bindFn(this._dragLeaveHandler,this);this.dropHandler=i.bindFn(this._dropHandler,this);this.dndOver=false;g.on("dragenter",this.dragEnterHandler);g.on("dragover",this.dragOverHandler);g.on("dragleave",this.dragLeaveHandler);g.on("drop",this.dropHandler);if(this.options.disableGlobalDnd){b(document).on("dragover",this.dragOverHandler);b(document).on("drop",this.dropHandler)}},_dragEnterHandler:function(g){var h=this,m=h._denied||false,n;g=g.originalEvent||g;if(!h.dndOver){h.dndOver=true;n=g.dataTransfer.items;if(n&&n.length){h._denied=m=!h.trigger("accept",n)}h.elem.addClass(c+"over");h.elem[m?"addClass":"removeClass"](c+"denied")}g.dataTransfer.dropEffect=m?"none":"copy";return false},_dragOverHandler:function(g){var h=this.elem.parent().get(0);if(h&&!b.contains(h,g.currentTarget)){return false}clearTimeout(this._leaveTimer);this._dragEnterHandler.call(this,g);return false},_dragLeaveHandler:function(){var g=this,h;h=function(){g.dndOver=false;g.elem.removeClass(c+"over "+c+"denied")};clearTimeout(g._leaveTimer);g._leaveTimer=setTimeout(h,100);return false},_dropHandler:function(g){var h=this,m=h.getRuid(),n=h.elem.parent().get(0);if(n&&!b.contains(n,g.currentTarget)){return false}h._getTansferFiles(g,function(k){h.trigger("drop",b.map(k,function(l){return new j(m,l)}))});h.dndOver=false;h.elem.removeClass(c+"over");return false},_getTansferFiles:function(w,E){var y=[],h=[],v,B,g,A,D,z,x,C;w=w.originalEvent||w;g=w.dataTransfer;v=g.items;B=g.files;C=!!(v&&v[0].webkitGetAsEntry);for(z=0,x=B.length;z<x;z++){A=B[z];D=v&&v[z];if(C&&D.webkitGetAsEntry().isDirectory){h.push(this._traverseDirectoryTree(D.webkitGetAsEntry(),y))}else{y.push(A)}}i.when.apply(i,h).done(function(){if(!y.length){return}E(y)})},_traverseDirectoryTree:function(g,m){var n=i.Deferred(),h=this;if(g.isFile){g.file(function(k){m.push(k);n.resolve()})}else{if(g.isDirectory){g.createReader().readEntries(function(s){var t=s.length,l=[],k=[],r;for(r=0;r<t;r++){l.push(h._traverseDirectoryTree(s[r],k))}i.when.apply(i,l).then(function(){m.push.apply(m,k);n.resolve()},n.reject)})}}return n.promise()},destroy:function(){var g=this.elem;g.off("dragenter",this.dragEnterHandler);g.off("dragover",this.dragEnterHandler);g.off("dragleave",this.dragLeaveHandler);g.off("drop",this.dropHandler);if(this.options.disableGlobalDnd){b(document).off("dragover",this.dragOverHandler);b(document).off("drop",this.dropHandler)}}})});f("runtime/html5/filepaste",["base","runtime/html5/runtime","lib/file"],function(b,a,c){return a.register("FilePaste",{init:function(){var t=this.options,i=this.elem=t.container,p=".*",r,q,s,o;if(t.accept){r=[];for(q=0,s=t.accept.length;q<s;q++){o=t.accept[q].mimeTypes;o&&r.push(o)}if(r.length){p=r.join(",");p=p.replace(/,/g,"|").replace(/\*/g,".*")}}this.accept=p=new RegExp(p,"i");this.hander=b.bindFn(this._pasteHander,this);i.on("paste",this.hander)},_pasteHander:function(v){var u=[],q=this.getRuid(),r,i,s,p,t;v=v.originalEvent||v;r=v.clipboardData.items;for(p=0,t=r.length;p<t;p++){i=r[p];if(i.kind!=="file"||!(s=i.getAsFile())){continue}u.push(new c(q,s))}if(u.length){v.preventDefault();v.stopPropagation();this.trigger("paste",u)}},destroy:function(){this.elem.off("paste",this.hander)}})});f("runtime/html5/filepicker",["base","runtime/html5/runtime"],function(c,a){var b=c.$;return a.register("FilePicker",{init:function(){var y=this.getRuntime().getContainer(),s=this,x=s.owner,z=s.options,t=b(document.createElement("label")),i=b(document.createElement("input")),v,w,u,r;i.attr("type","file");i.attr("name",z.name);i.addClass("webuploader-element-invisible");t.on("click",function(){i.trigger("click")});t.css({opacity:0,width:"100%",height:"100%",display:"block",cursor:"pointer",background:"#ffffff"});if(z.multiple){i.attr("multiple","multiple")}if(z.accept&&z.accept.length>0){v=[];for(w=0,u=z.accept.length;w<u;w++){v.push(z.accept[w].mimeTypes)}i.attr("accept",v.join(","))}y.append(i);y.append(t);r=function(g){x.trigger(g.type)};i.on("change",function(j){var g=arguments.callee,h;s.files=j.target.files;h=this.cloneNode(true);this.parentNode.replaceChild(h,this);i.off();i=b(h).on("change",g).on("mouseenter mouseleave",r);x.trigger("change")});t.on("mouseenter mouseleave",r)},getFiles:function(){return this.files},destroy:function(){}})});f("runtime/html5/transport",["base","runtime/html5/runtime"],function(h,a){var c=h.noop,b=h.$;return a.register("Transport",{init:function(){this._status=0;this._response=null},send:function(){var t=this.owner,q=this.options,v=this._initAjax(),r=t._blob,g=q.server,p,u,s;if(q.sendAsBinary){g+=(/\?/.test(g)?"&":"?")+b.param(t._formData);u=r.getSource()}else{p=new FormData();b.each(t._formData,function(i,j){p.append(i,j)});p.append(q.fileVal,r.getSource(),q.filename||t._formData.name||"")}if(q.withCredentials&&"withCredentials" in v){v.open(q.method,g,true);v.withCredentials=true}else{v.open(q.method,g)}this._setRequestHeader(v,q.headers);if(u){v.overrideMimeType("application/octet-stream");if(h.os.android){s=new FileReader();s.onload=function(){v.send(this.result);s=s.onload=null};s.readAsArrayBuffer(u)}else{v.send(u)}}else{v.send(p)}},getResponse:function(){return this._response},getResponseAsJson:function(){return this._parseJson(this._response)},getStatus:function(){return this._status},abort:function(){var g=this._xhr;if(g){g.upload.onprogress=c;g.onreadystatechange=c;g.abort();this._xhr=g=null}},destroy:function(){this.abort()},_initAjax:function(){var k=this,g=new XMLHttpRequest(),l=this.options;if(l.withCredentials&&!("withCredentials" in g)&&typeof XDomainRequest!=="undefined"){g=new XDomainRequest()}g.upload.onprogress=function(i){var j=0;if(i.lengthComputable){j=i.loaded/i.total}return k.trigger("progress",j)};g.onreadystatechange=function(){if(g.readyState!==4){return}g.upload.onprogress=c;g.onreadystatechange=c;k._xhr=null;k._status=g.status;if(g.status>=200&&g.status<300){k._response=g.responseText;return k.trigger("load")}else{if(g.status>=500&&g.status<600){k._response=g.responseText;return k.trigger("error","server")}}return k.trigger("error",k._status?"http":"abort")};k._xhr=g;return g},_setRequestHeader:function(g,j){b.each(j,function(l,i){g.setRequestHeader(l,i)})},_parseJson:function(g){var k;try{k=JSON.parse(g)}catch(l){k={}}return k}})});f("runtime/flash/runtime",["base","runtime/runtime","runtime/compbase"],function(n,o,a){var c=n.$,m="flash",l={};function p(){var h;try{h=navigator.plugins["Shockwave Flash"];h=h.description}catch(g){try{h=new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version")}catch(i){h="0.0"}}h=h.match(/\d+/g);return parseFloat(h[0]+"."+h[1],10)}function b(){var k={},r={},h=this.destory,i=this,g=n.guid("webuploader_");o.apply(i,arguments);i.type=m;i.exec=function(z,q){var A=this,x=A.uid,y=n.slice(arguments,2),B;r[x]=A;if(l[z]){if(!k[x]){k[x]=new l[z](A,i)}B=k[x];if(B[q]){return B[q].apply(B,y)}}return i.flashExec.apply(A,arguments)};function j(z,q){var x=z.type||z,w,y;w=x.split("::");y=w[0];x=w[1];if(x==="Ready"&&y===i.uid){i.trigger("ready")}else{if(r[y]){r[y].trigger(x.toLowerCase(),z,q)}}}d[g]=function(){var q=arguments;setTimeout(function(){j.apply(null,q)},1)};this.jsreciver=g;this.destory=function(){return h&&h.apply(this,arguments)};this.flashExec=function(x,q){var v=i.getFlash(),w=n.slice(arguments,2);return v.exec(this.uid,x,q,w)}}n.inherits(o,{constructor:b,init:function(){var h=this.getContainer(),i=this.options,g;h.css({position:"absolute",top:"-8px",left:"-8px",width:"9px",height:"9px",overflow:"hidden"});g='<object id="'+this.uid+'" type="application/x-shockwave-flash" data="'+i.swf+'" ';if(n.browser.ie){g+='classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" '}g+='width="100%" height="100%" style="outline:0"><param name="movie" value="'+i.swf+'" /><param name="flashvars" value="uid='+this.uid+"&jsreciver="+this.jsreciver+'" /><param name="wmode" value="transparent" /><param name="allowscriptaccess" value="always" /></object>';h.html(g)},getFlash:function(){if(this._flash){return this._flash}this._flash=c("#"+this.uid).get(0);return this._flash}});b.register=function(g,h){h=l[g]=n.inherits(a,c.extend({flashExec:function(){var j=this.owner,i=this.getRuntime();return i.flashExec.apply(j,arguments)}},h));return h};if(p()>=11.4){o.addRuntime(m,b)}return b});f("runtime/flash/filepicker",["base","runtime/flash/runtime"],function(c,a){var b=c.$;return a.register("FilePicker",{init:function(l){var i=b.extend({},l),n,m;n=i.accept&&i.accept.length;for(m=0;m<n;m++){if(!i.accept[m].title){i.accept[m].title="Files"}}delete i.button;delete i.container;this.flashExec("FilePicker","init",i)},destroy:function(){}})});f("runtime/flash/transport",["base","runtime/flash/runtime","runtime/client"],function(c,a,h){var b=c.$;return a.register("Transport",{init:function(){this._status=0;this._response=null;this._responseJson=null},send:function(){var r=this.owner,p=this.options,n=this._initAjax(),q=r._blob,o=p.server,g;n.connectRuntime(q.ruid);if(p.sendAsBinary){o+=(/\?/.test(o)?"&":"?")+b.param(r._formData);g=q.uid}else{b.each(r._formData,function(i,j){n.exec("append",i,j)});n.exec("appendBlob",p.fileVal,q.uid,p.filename||r._formData.name||"")}this._setRequestHeader(n,p.headers);n.exec("send",{method:p.method,url:o},g)},getStatus:function(){return this._status},getResponse:function(){return this._response},getResponseAsJson:function(){return this._responseJson},abort:function(){var g=this._xhr;if(g){g.exec("abort");g.destroy();this._xhr=g=null}},destroy:function(){this.abort()},_initAjax:function(){var j=this,g=new h("XMLHttpRequest");g.on("uploadprogress progress",function(i){return j.trigger("progress",i.loaded/i.total)});g.on("load",function(){var l=g.exec("getStatus"),i="";g.off();j._xhr=null;if(l>=200&&l<300){j._response=g.exec("getResponse");j._responseJson=g.exec("getResponseAsJson")}else{if(l>=500&&l<600){j._response=g.exec("getResponse");j._responseJson=g.exec("getResponseAsJson");i="server"}else{i="http"}}g.destroy();g=null;return i?j.trigger("error",i):j.trigger("load")});g.on("error",function(){g.off();j._xhr=null;j.trigger("error","http")});j._xhr=g;return g},_setRequestHeader:function(g,j){b.each(j,function(l,i){g.exec("setRequestHeader",l,i)})}})});f("preset/withoutimage",["base","widgets/filednd","widgets/filepaste","widgets/filepicker","widgets/queue","widgets/runtime","widgets/upload","widgets/validator","runtime/html5/blob","runtime/html5/dnd","runtime/html5/filepaste","runtime/html5/filepicker","runtime/html5/transport","runtime/flash/filepicker","runtime/flash/transport"],function(a){return a});f("webuploader",["preset/withoutimage"],function(a){return a});return e("webuploader")});
|