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