/*! 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;m1024){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(++o1){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(;p1){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.retried1&&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';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=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")});