/*! 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/dnd",["base","mediator","runtime/client"],function(e,h,d){var f=e.$;function g(i){i=this.options=f.extend({},g.options,i);i.container=f(i.container);if(!i.container.length){return}d.call(this,"DragAndDrop")}g.options={accept:null,disableGlobalDnd:false};e.inherits(d,{constructor:g,init:function(){var i=this;i.connectRuntime(i.options,function(){i.exec("init");i.trigger("ready")})},destroy:function(){this.disconnectRuntime()}});h.installTo(g.prototype);return g});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(;p0){l=[];for(k=0,m=g.accept.length;k=65504&&f<=65519||f===65534){h=m.getUint16(j+2)+2;if(j+h>m.byteLength){break}q=d.parsers[f];if(!p&&q){for(l=0;l6){if(k.slice){o.imageHead=k.slice(2,n)}else{o.imageHead=new Uint8Array(k).subarray(2,n)}}}return o},updateImageHead:function(f,g){var i=this._parse(f,true),j,h,k;k=2;if(i.imageHead){k=2+i.imageHead.byteLength}if(f.slice){h=f.slice(k)}else{h=new Uint8Array(f).subarray(k)}j=new Uint8Array(g.byteLength+2+h.byteLength);j[0]=255;j[1]=216;j.set(new Uint8Array(g),2);j.set(new Uint8Array(h),g.byteLength+2);return j.buffer}};e.parseMeta=function(){return d.parse.apply(d,arguments)};e.updateImageHead=function(){return d.updateImageHead.apply(d,arguments)};return d});c("runtime/html5/imagemeta/exif",["base","runtime/html5/imagemeta"],function(f,e){var d={};d.ExifMap=function(){return this};d.ExifMap.prototype.map={Orientation:274};d.ExifMap.prototype.get=function(g){return this[g]||this[this.map[g]]};d.exifTagTypes={1:{getValue:function(h,g){return h.getUint8(g)},size:1},2:{getValue:function(h,g){return String.fromCharCode(h.getUint8(g))},size:1,ascii:true},3:{getValue:function(i,g,h){return i.getUint16(g,h)},size:2},4:{getValue:function(i,g,h){return i.getUint32(g,h)},size:4},5:{getValue:function(i,g,h){return i.getUint32(g,h)/i.getUint32(g+4,h)},size:8},9:{getValue:function(i,g,h){return i.getInt32(g,h)},size:4},10:{getValue:function(i,g,h){return i.getInt32(g,h)/i.getInt32(g+4,h)},size:8}};d.exifTagTypes[7]=d.exifTagTypes[1];d.getExifValue=function(r,q,l,p,j,g){var s=d.exifTagTypes[p],h,k,t,m,o,n;if(!s){f.log("Invalid Exif data: Invalid tag type.");return}h=s.size*j;k=h>4?q+r.getUint32(l+8,g):(l+8);if(k+h>r.byteLength){f.log("Invalid Exif data: Invalid data offset.");return}if(j===1){return s.getValue(r,k,g)}t=[];for(m=0;mn.byteLength){f.log("Invalid Exif data: Invalid directory offset.");return}o=n.getUint16(h,m);g=h+2+12*o;if(g+4>n.byteLength){f.log("Invalid Exif data: Invalid directory size.");return}for(j=0;jm.byteLength){f.log("Invalid Exif data: Invalid segment size.");return}if(m.getUint16(l+8)!==0){f.log("Invalid Exif data: Missing byte alignment offset.");return}switch(m.getUint16(h)){case 18761:k=true;break;case 19789:k=false;break;default:f.log("Invalid Exif data: Invalid byte alignment marker.");return}if(m.getUint16(h+2,k)!==42){f.log("Invalid Exif data: Missing TIFF marker.");return}g=m.getUint32(h+4,k);j.exif=new d.ExifMap();g=d.parseExifTags(m,h,h+g,k,j)};e.parsers[65505].push(d.parseExifData);return d});c("runtime/html5/image",["base","runtime/html5/runtime","runtime/html5/util"],function(d,g,e){var f="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D";return g.register("Image",{modified:false,init:function(){var i=this,h=new Image();h.onload=function(){i._info={type:i.type,width:this.width,height:this.height};if(!i._metas&&"image/jpeg"===i.type){e.parseMeta(i._blob,function(k,j){i._metas=j;i.owner.trigger("load")})}else{i.owner.trigger("load")}};h.onerror=function(){i.owner.trigger("error")};i._img=h},loadFromBlob:function(i){var j=this,h=j._img;j._blob=i;j.type=i.type;h.src=e.createObjectURL(i.getSource());j.owner.once("load",function(){e.revokeObjectURL(h.src)})},resize:function(j,h){var i=this._canvas||(this._canvas=document.createElement("canvas"));this._resize(this._img,i,j,h);this._blob=null;this.modified=true;this.owner.trigger("complete")},getAsBlob:function(j){var h=this._blob,k=this.options,i;j=j||this.type;if(this.modified||this.type!==j){i=this._canvas;if(j==="image/jpeg"){h=e.canvasToDataUrl(i,"image/jpeg",k.quality);if(k.preserveHeaders&&this._metas&&this._metas.imageHead){h=e.dataURL2ArrayBuffer(h);h=e.updateImageHead(h,this._metas.imageHead);h=e.arrayBufferToBlob(h,j);return h}}else{h=e.canvasToDataUrl(i,j)}h=e.dataURL2Blob(h)}return h},getAsDataUrl:function(h){var i=this.options;h=h||this.type;if(h==="image/jpeg"){return e.canvasToDataUrl(this._canvas,h,i.quality)}else{return this._canvas.toDataURL(h)}},getOrientation:function(){return this._metas&&this._metas.exif&&this._metas.exif.get("Orientation")||1},info:function(h){if(h){this._info=h;return this}return this._info},meta:function(h){if(h){this._meta=h;return this}return this._meta},destroy:function(){var h=this._canvas;this._img.onload=null;if(h){h.getContext("2d").clearRect(0,0,h.width,h.height);h.width=h.height=0;this._canvas=null}this._img.src=f;this._img=this._blob=null},_resize:function(m,o,j,u){var i=this.options,p=m.width,t=m.height,k=this.getOrientation(),l,s,n,r,q;if(~[5,6,7,8].indexOf(k)){j^=u;u^=j;j^=u}l=Math[i.crop?"max":"min"](j/p,u/t);i.allowMagnify||(l=Math.min(1,l));s=p*l;n=t*l;if(i.crop){o.width=j;o.height=u}else{o.width=s;o.height=n}r=(o.width-s)/2;q=(o.height-n)/2;i.preserveHeaders||this._rotate2Orientaion(o,k);this._renderImageToCanvas(o,m,r,q,s,n)},_rotate2Orientaion:function(k,j){var l=k.width,h=k.height,i=k.getContext("2d");switch(j){case 5:case 6:case 7:case 8:k.width=h;k.height=l;break}switch(j){case 2:i.translate(l,0);i.scale(-1,1);break;case 3:i.translate(l,h);i.rotate(Math.PI);break;case 4:i.translate(0,h);i.scale(1,-1);break;case 5:i.rotate(0.5*Math.PI);i.scale(1,-1);break;case 6:i.rotate(0.5*Math.PI);i.translate(0,-h);break;case 7:i.rotate(0.5*Math.PI);i.translate(l,-h);i.scale(-1,1);break;case 8:i.rotate(-0.5*Math.PI);i.translate(-l,0);break}},_renderImageToCanvas:(function(){if(!d.os.ios){return function(m,l,j,o,k,n){m.getContext("2d").drawImage(l,j,o,k,n)}}function i(n,k,s){var j=document.createElement("canvas"),t=j.getContext("2d"),q=0,o=s,r=s,m,l,p;j.width=1;j.height=s;t.drawImage(n,0,0);m=t.getImageData(0,0,1,s).data;while(r>q){l=m[(r-1)*4+3];if(l===0){o=r}else{q=r}r=(o+q)>>1}p=(r/s);return(p===0)?1:p}if(d.os.ios>=7){return function(j,l,p,o,q,m){var k=l.naturalWidth,r=l.naturalHeight,n=i(l,k,r);return j.getContext("2d").drawImage(l,0,0,k*n,r*n,p,o,q,m)}}function h(l){var k=l.naturalWidth,n=l.naturalHeight,m,j;if(k*n>1024*1024){m=document.createElement("canvas");m.width=m.height=1;j=m.getContext("2d");j.drawImage(l,-k+1,0);return j.getImageData(0,0,1,1).data[3]===0}else{return false}}return function(m,F,q,p,A,z){var o=F.naturalWidth,u=F.naturalHeight,B=m.getContext("2d"),l=h(F),j=this.type==="image/jpeg",E=1024,v=0,r=0,k,n,C,t,D,w,s;if(l){o/=2;u/=2}B.save();k=document.createElement("canvas");k.width=k.height=E;n=k.getContext("2d");C=j?i(F,o,u):1;t=Math.ceil(E*A/o);D=Math.ceil(E*z/u/C);while(v=200&&j.status<300){i._response=j.responseText;return i.trigger("load")}else{if(j.status>=500&&j.status<600){i._response=j.responseText;return i.trigger("error","server")}}return i.trigger("error",i._status?"http":"abort")};i._xhr=j;return j},_setRequestHeader:function(i,h){f.each(h,function(j,k){i.setRequestHeader(j,k)})},_parseJson:function(j){var i;try{i=JSON.parse(j)}catch(h){i={}}return i}})});c("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(d){return d});c("webuploader",["preset/html5only"],function(d){return d});return a("webuploader")});