/*! 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/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(;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(;t0){v=[];for(w=0,u=z.accept.length;w=65504&&z<=65519||z===65534){x=t.getUint16(w+2)+2;if(w+x>t.byteLength){break}c=b.parsers[z];if(!i&&c){for(u=0;u6){if(v.slice){r.imageHead=v.slice(2,s)}else{r.imageHead=new Uint8Array(v).subarray(2,s)}}}return r},updateImageHead:function(p,o){var m=this._parse(p,true),l,n,c;c=2;if(m.imageHead){c=2+m.imageHead.byteLength}if(p.slice){n=p.slice(c)}else{n=new Uint8Array(p).subarray(c)}l=new Uint8Array(o.byteLength+2+n.byteLength);l[0]=255;l[1]=216;l.set(new Uint8Array(o),2);l.set(new Uint8Array(n),o.byteLength+2);return l.buffer}};a.parseMeta=function(){return b.parse.apply(b,arguments)};a.updateImageHead=function(){return b.updateImageHead.apply(b,arguments)};return b});f("runtime/html5/imagemeta/exif",["base","runtime/html5/imagemeta"],function(a,b){var c={};c.ExifMap=function(){return this};c.ExifMap.prototype.map={Orientation:274};c.ExifMap.prototype.get=function(h){return this[h]||this[this.map[h]]};c.exifTagTypes={1:{getValue:function(i,j){return i.getUint8(j)},size:1},2:{getValue:function(i,j){return String.fromCharCode(i.getUint8(j))},size:1,ascii:true},3:{getValue:function(j,l,k){return j.getUint16(l,k)},size:2},4:{getValue:function(j,l,k){return j.getUint32(l,k)},size:4},5:{getValue:function(j,l,k){return j.getUint32(l,k)/j.getUint32(l+4,k)},size:8},9:{getValue:function(j,l,k){return j.getInt32(l,k)},size:4},10:{getValue:function(j,l,k){return j.getInt32(l,k)/j.getInt32(l+4,k)},size:8}};c.exifTagTypes[7]=c.exifTagTypes[1];c.getExifValue=function(i,u,z,v,B,D){var F=c.exifTagTypes[v],C,A,E,y,w,x;if(!F){a.log("Invalid Exif data: Invalid tag type.");return}C=F.size*B;A=C>4?u+i.getUint32(z+8,D):(z+8);if(A+C>i.byteLength){a.log("Invalid Exif data: Invalid data offset.");return}if(B===1){return F.getValue(i,A,D)}E=[];for(y=0;yv.byteLength){a.log("Invalid Exif data: Invalid directory offset.");return}u=v.getUint16(s,i);t=s+2+12*u;if(t+4>v.byteLength){a.log("Invalid Exif data: Invalid directory size.");return}for(r=0;rn.byteLength){a.log("Invalid Exif data: Invalid segment size.");return}if(n.getUint16(o+8)!==0){a.log("Invalid Exif data: Missing byte alignment offset.");return}switch(n.getUint16(s)){case 18761:p=true;break;case 19789:p=false;break;default:a.log("Invalid Exif data: Invalid byte alignment marker.");return}if(n.getUint16(s+2,p)!==42){a.log("Invalid Exif data: Missing TIFF marker.");return}t=n.getUint32(s+4,p);q.exif=new c.ExifMap();t=c.parseExifTags(n,s,s+t,p,q)};b.parsers[65505].push(c.parseExifData);return c});f("runtime/html5/image",["base","runtime/html5/runtime","runtime/html5/util"],function(h,a,c){var b="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D";return a.register("Image",{modified:false,init:function(){var g=this,j=new Image();j.onload=function(){g._info={type:g.type,width:this.width,height:this.height};if(!g._metas&&"image/jpeg"===g.type){c.parseMeta(g._blob,function(i,l){g._metas=l;g.owner.trigger("load")})}else{g.owner.trigger("load")}};j.onerror=function(){g.owner.trigger("error")};g._img=j},loadFromBlob:function(k){var g=this,l=g._img;g._blob=k;g.type=k.type;l.src=c.createObjectURL(k.getSource());g.owner.once("load",function(){c.revokeObjectURL(l.src)})},resize:function(g,l){var k=this._canvas||(this._canvas=document.createElement("canvas"));this._resize(this._img,k,g,l);this._blob=null;this.modified=true;this.owner.trigger("complete")},getAsBlob:function(l){var n=this._blob,g=this.options,m;l=l||this.type;if(this.modified||this.type!==l){m=this._canvas;if(l==="image/jpeg"){n=c.canvasToDataUrl(m,"image/jpeg",g.quality);if(g.preserveHeaders&&this._metas&&this._metas.imageHead){n=c.dataURL2ArrayBuffer(n);n=c.updateImageHead(n,this._metas.imageHead);n=c.arrayBufferToBlob(n,l);return n}}else{n=c.canvasToDataUrl(m,l)}n=c.dataURL2Blob(n)}return n},getAsDataUrl:function(j){var g=this.options;j=j||this.type;if(j==="image/jpeg"){return c.canvasToDataUrl(this._canvas,j,g.quality)}else{return this._canvas.toDataURL(j)}},getOrientation:function(){return this._metas&&this._metas.exif&&this._metas.exif.get("Orientation")||1},info:function(g){if(g){this._info=g;return this}return this._info},meta:function(g){if(g){this._meta=g;return this}return this._meta},destroy:function(){var g=this._canvas;this._img.onload=null;if(g){g.getContext("2d").clearRect(0,0,g.width,g.height);g.width=g.height=0;this._canvas=null}this._img.src=b;this._img=this._blob=null},_resize:function(z,x,C,E){var D=this.options,w=z.width,F=z.height,B=this.getOrientation(),A,G,y,g,v;if(~[5,6,7,8].indexOf(B)){C^=E;E^=C;C^=E}A=Math[D.crop?"max":"min"](C/w,E/F);D.allowMagnify||(A=Math.min(1,A));G=w*A;y=F*A;if(D.crop){x.width=C;x.height=E}else{x.width=G;x.height=y}g=(x.width-G)/2;v=(x.height-y)/2;D.preserveHeaders||this._rotate2Orientaion(x,B);this._renderImageToCanvas(x,z,g,v,G,y)},_rotate2Orientaion:function(m,n){var g=m.width,p=m.height,o=m.getContext("2d");switch(n){case 5:case 6:case 7:case 8:m.width=p;m.height=g;break}switch(n){case 2:o.translate(g,0);o.scale(-1,1);break;case 3:o.translate(g,p);o.rotate(Math.PI);break;case 4:o.translate(0,p);o.scale(1,-1);break;case 5:o.rotate(0.5*Math.PI);o.scale(1,-1);break;case 6:o.rotate(0.5*Math.PI);o.translate(0,-p);break;case 7:o.rotate(0.5*Math.PI);o.translate(g,-p);o.scale(-1,1);break;case 8:o.rotate(-0.5*Math.PI);o.translate(-g,0);break}},_renderImageToCanvas:(function(){if(!h.os.ios){return function(i,p,r,s,q,t){i.getContext("2d").drawImage(p,r,s,q,t)}}function g(x,A,D){var B=document.createElement("canvas"),C=B.getContext("2d"),u=0,w=D,i=D,y,z,v;B.width=1;B.height=D;C.drawImage(x,0,0);y=C.getImageData(0,0,1,D).data;while(i>u){z=y[(i-1)*4+3];if(z===0){w=i}else{u=i}i=(w+u)>>1}v=(i/D);return(v===0)?1:v}if(h.os.ios>=7){return function(z,x,t,u,s,w){var y=x.naturalWidth,i=x.naturalHeight,v=g(x,y,i);return z.getContext("2d").drawImage(x,0,0,y*v,i*v,t,u,s,w)}}function j(o){var p=o.naturalWidth,r=o.naturalHeight,i,q;if(p*r>1024*1024){i=document.createElement("canvas");i.width=i.height=1;q=i.getContext("2d");q.drawImage(o,-p+1,0);return q.getImageData(0,0,1,1).data[3]===0}else{return false}}return function(U,G,P,R,Q,i){var S=G.naturalWidth,H=G.naturalHeight,O=U.getContext("2d"),V=j(G),X=this.type==="image/jpeg",J=1024,y=0,N=0,W,T,M,I,L,x,K;if(V){S/=2;H/=2}O.save();W=document.createElement("canvas");W.width=W.height=J;T=W.getContext("2d");M=X?g(G,S,H):1;I=Math.ceil(J*Q/S);L=Math.ceil(J*i/H/M);while(y=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("preset/html5only",["base","widgets/filednd","widgets/filepaste","widgets/filepicker","widgets/image","widgets/queue","widgets/runtime","widgets/upload","widgets/validator","runtime/html5/blob","runtime/html5/dnd","runtime/html5/filepaste","runtime/html5/filepicker","runtime/html5/imagemeta/exif","runtime/html5/image","runtime/html5/transport"],function(a){return a});f("webuploader",["preset/html5only"],function(a){return a});return e("webuploader")});