/*! 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;a1024){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(++k1){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/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/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(;i1){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.retried1&&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';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=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/flashonly",["base","widgets/filepicker","widgets/image","widgets/queue","widgets/runtime","widgets/upload","widgets/validator","runtime/flash/filepicker","runtime/flash/image","runtime/flash/transport"],function(a){return a});f("webuploader",["preset/flashonly"],function(a){return a});return e("webuploader")});