-}this.rotate=Roo.dialog.UploadCropbox['Orientation'][this.baseRotate];},baseScaleLevel:function(){var width,height;if(this.isDocument){if(this.baseRotate==6||this.baseRotate==8){height=this.thumbEl.getHeight();this.baseScale=height/this.imageEl.OriginWidth;
-if(this.imageEl.OriginHeight*this.baseScale>this.thumbEl.getWidth()){width=this.thumbEl.getWidth();this.baseScale=width/this.imageEl.OriginHeight;}return;}height=this.thumbEl.getHeight();this.baseScale=height/this.imageEl.OriginHeight;if(this.imageEl.OriginWidth*this.baseScale>this.thumbEl.getWidth()){width=this.thumbEl.getWidth();
-this.baseScale=width/this.imageEl.OriginWidth;}return;}if(this.baseRotate==6||this.baseRotate==8){width=this.thumbEl.getHeight();this.baseScale=width/this.imageEl.OriginHeight;if(this.imageEl.OriginHeight*this.baseScale<this.thumbEl.getWidth()){height=this.thumbEl.getWidth();
-this.baseScale=height/this.imageEl.OriginHeight;}if(this.imageEl.OriginWidth>this.imageEl.OriginHeight){height=this.thumbEl.getWidth();this.baseScale=height/this.imageEl.OriginHeight;if(this.imageEl.OriginWidth*this.baseScale<this.thumbEl.getHeight()){width=this.thumbEl.getHeight();
-this.baseScale=width/this.imageEl.OriginWidth;}}return;}width=this.thumbEl.getWidth();this.baseScale=width/this.imageEl.OriginWidth;if(this.imageEl.OriginHeight*this.baseScale<this.thumbEl.getHeight()){height=this.thumbEl.getHeight();this.baseScale=height/this.imageEl.OriginHeight;
-}if(this.imageEl.OriginWidth>this.imageEl.OriginHeight){height=this.thumbEl.getHeight();this.baseScale=height/this.imageEl.OriginHeight;if(this.imageEl.OriginWidth*this.baseScale<this.thumbEl.getWidth()){width=this.thumbEl.getWidth();this.baseScale=width/this.imageEl.OriginWidth;
-}}return;},getScaleLevel:function(){console.log("BASESCALE: "+this.baseScale);return this.baseScale*Math.pow(1.02,this.scale);},onTouchStart:function(e){if(!this.canvasLoaded){this.beforeSelectFile(e);return;}var touches=e.browserEvent.touches;if(!touches){return;
-}if(touches.length==1){this.onMouseDown(e);return;}if(touches.length!=2){return;}var coords=[];for(var i=0,finger;finger=touches[i];i++){coords.push(finger.pageX,finger.pageY);}var x=Math.pow(coords[0]-coords[2],2);var y=Math.pow(coords[1]-coords[3],2);this.startDistance=Math.sqrt(x+y);
-this.startScale=this.scale;this.pinching=true;this.dragable=false;},onTouchMove:function(e){if(!this.pinching&&!this.dragable){return;}var touches=e.browserEvent.touches;if(!touches){return;}if(this.dragable){this.onMouseMove(e);return;}var coords=[];for(var i=0,finger;
-finger=touches[i];i++){coords.push(finger.pageX,finger.pageY);}var x=Math.pow(coords[0]-coords[2],2);var y=Math.pow(coords[1]-coords[3],2);this.endDistance=Math.sqrt(x+y);this.scale=this.startScale+Math.floor(Math.log(this.endDistance/this.startDistance)/Math.log(1.1));
-if(!this.zoomable()){this.scale=this.startScale;return;}this.draw();},onTouchEnd:function(e){this.pinching=false;this.dragable=false;},process:function(file,crop){if(this.loadMask){this.maskEl.mask(this.loadingText);}this.xhr=new XMLHttpRequest();file.xhr=this.xhr;
-this.xhr.open(this.method,this.url,true);var headers={"Accept":"application/json","Cache-Control":"no-cache","X-Requested-With":"XMLHttpRequest"};for(var headerName in headers){var headerValue=headers[headerName];if(headerValue){this.xhr.setRequestHeader(headerName,headerValue);
-}}var _this=this;this.xhr.onload=function(){_this.xhrOnLoad(_this.xhr);};this.xhr.onerror=function(){_this.xhrOnError(_this.xhr);};var formData=new FormData();formData.append('returnHTML','NO');if(crop){formData.append('crop',crop);}if(typeof(file)!='undefined'&&(typeof(file.id)=='undefined'||file.id*1<1)){formData.append(this.paramName,file,file.name);
-}if(typeof(file.filename)!='undefined'){formData.append('filename',file.filename);}if(typeof(file.mimetype)!='undefined'){formData.append('mimetype',file.mimetype);}if(this.fireEvent('arrange',this,formData)!=false){this.xhr.send(formData);};},xhrOnLoad:function(xhr){if(this.loadMask){this.maskEl.unmask();
-}if(xhr.readyState!==4){this.fireEvent('exception',this,xhr);return;}var response=Roo.decode(xhr.responseText);if(!response.success){this.fireEvent('exception',this,xhr);return;}var response=Roo.decode(xhr.responseText);this.fireEvent('upload',this,response);
-},xhrOnError:function(){if(this.loadMask){this.maskEl.unmask();}Roo.log('xhr on error');var response=Roo.decode(xhr.responseText);Roo.log(response);},prepare:function(file){if(this.loadMask){this.maskEl.mask(this.loadingText);}this.file=false;this.exif={}
-;if(typeof(file)==='string'){this.loadCanvas(file);return;}if(!file||!this.urlAPI){return;}this.file=file;this.cropType=file.type;var _this=this;if(this.fireEvent('prepare',this,this.file)!=false){var reader=new FileReader();reader.onload=function(e){if(e.target.error){Roo.log(e.target.error);
-return;}var buffer=e.target.result,dataView=new DataView(buffer),offset=2,maxOffset=dataView.byteLength-4,markerBytes,markerLength;if(dataView.getUint16(0)===0xffd8){while(offset<maxOffset){markerBytes=dataView.getUint16(offset);if((markerBytes>=0xffe0&&markerBytes<=0xffef)||markerBytes===0xfffe){markerLength=dataView.getUint16(offset+2)+2;
-if(offset+markerLength>dataView.byteLength){Roo.log('Invalid meta data: Invalid segment size.');break;}if(markerBytes==0xffe1){_this.parseExifData(dataView,offset,markerLength);}offset+=markerLength;continue;}break;}}var url=_this.urlAPI.createObjectURL(_this.file);
-_this.loadCanvas(url);return;};reader.readAsArrayBuffer(this.file);}},parseExifData:function(dataView,offset,length){var tiffOffset=offset+10,littleEndian,dirOffset;if(dataView.getUint32(offset+4)!==0x45786966){return;}if(dataView.getUint32(offset+4)!==0x45786966){return;
-}if(tiffOffset+8>dataView.byteLength){Roo.log('Invalid Exif data: Invalid segment size.');return;}if(dataView.getUint16(offset+8)!==0x0000){Roo.log('Invalid Exif data: Missing byte alignment offset.');return;}switch(dataView.getUint16(tiffOffset)){case 0x4949:littleEndian=true;
-break;case 0x4D4D:littleEndian=false;break;default:Roo.log('Invalid Exif data: Invalid byte alignment marker.');return;}if(dataView.getUint16(tiffOffset+2,littleEndian)!==0x002A){Roo.log('Invalid Exif data: Missing TIFF marker.');return;}dirOffset=dataView.getUint32(tiffOffset+4,littleEndian);
-this.parseExifTags(dataView,tiffOffset,tiffOffset+dirOffset,littleEndian);},parseExifTags:function(dataView,tiffOffset,dirOffset,littleEndian){var tagsNumber,dirEndOffset,i;if(dirOffset+6>dataView.byteLength){Roo.log('Invalid Exif data: Invalid directory offset.');
-return;}tagsNumber=dataView.getUint16(dirOffset,littleEndian);dirEndOffset=dirOffset+2+12*tagsNumber;if(dirEndOffset+4>dataView.byteLength){Roo.log('Invalid Exif data: Invalid directory size.');return;}for(i=0;i<tagsNumber;i+=1){this.parseExifTag(dataView,tiffOffset,dirOffset+2+12*i,littleEndian);
-}return dataView.getUint32(dirEndOffset,littleEndian);},parseExifTag:function(dataView,tiffOffset,offset,littleEndian){var tag=dataView.getUint16(offset,littleEndian);this.exif[tag]=this.getExifValue(dataView,tiffOffset,offset,dataView.getUint16(offset+2,littleEndian),dataView.getUint32(offset+4,littleEndian),littleEndian);
-},getExifValue:function(dataView,tiffOffset,offset,type,length,littleEndian){var tagType=Roo.dialog.UploadCropbox.exifTagTypes[type],tagSize,dataOffset,values,i,str,c;if(!tagType){Roo.log('Invalid Exif data: Invalid tag type.');return;}tagSize=tagType.size*length;
-dataOffset=tagSize>4?tiffOffset+dataView.getUint32(offset+8,littleEndian):(offset+8);if(dataOffset+tagSize>dataView.byteLength){Roo.log('Invalid Exif data: Invalid data offset.');return;}if(length===1){return tagType.getValue(dataView,dataOffset,littleEndian);
-}values=[];for(i=0;i<length;i+=1){values[i]=tagType.getValue(dataView,dataOffset+i*tagType.size,littleEndian);}if(tagType.ascii){str='';for(i=0;i<values.length;i+=1){c=values[i];if(c==='\u0000'){break;}str+=c;}return str;}return values;}});Roo.apply(Roo.dialog.UploadCropbox,{tags:{'Orientation':0x0112
+}this.rotate=Roo.dialog.UploadCropbox['Orientation'][this.baseRotate];},baseScaleLevel:function(){var A,B;if(this.isDocument){if(this.baseRotate==6||this.baseRotate==8){B=this.thumbEl.getHeight();this.baseScale=B/this.imageEl.OriginWidth;if(this.imageEl.OriginHeight*this.baseScale>this.thumbEl.getWidth()){A=this.thumbEl.getWidth();
+this.baseScale=A/this.imageEl.OriginHeight;}return;}B=this.thumbEl.getHeight();this.baseScale=B/this.imageEl.OriginHeight;if(this.imageEl.OriginWidth*this.baseScale>this.thumbEl.getWidth()){A=this.thumbEl.getWidth();this.baseScale=A/this.imageEl.OriginWidth;
+}return;}if(this.baseRotate==6||this.baseRotate==8){A=this.thumbEl.getHeight();this.baseScale=A/this.imageEl.OriginHeight;if(this.imageEl.OriginHeight*this.baseScale<this.thumbEl.getWidth()){B=this.thumbEl.getWidth();this.baseScale=B/this.imageEl.OriginHeight;
+}if(this.imageEl.OriginWidth>this.imageEl.OriginHeight){B=this.thumbEl.getWidth();this.baseScale=B/this.imageEl.OriginHeight;if(this.imageEl.OriginWidth*this.baseScale<this.thumbEl.getHeight()){A=this.thumbEl.getHeight();this.baseScale=A/this.imageEl.OriginWidth;
+}}return;}A=this.thumbEl.getWidth();this.baseScale=A/this.imageEl.OriginWidth;if(this.imageEl.OriginHeight*this.baseScale<this.thumbEl.getHeight()){B=this.thumbEl.getHeight();this.baseScale=B/this.imageEl.OriginHeight;}if(this.imageEl.OriginWidth>this.imageEl.OriginHeight){B=this.thumbEl.getHeight();
+this.baseScale=B/this.imageEl.OriginHeight;if(this.imageEl.OriginWidth*this.baseScale<this.thumbEl.getWidth()){A=this.thumbEl.getWidth();this.baseScale=A/this.imageEl.OriginWidth;}}if(this.imageEl.OriginWidth<this.minWidth||this.imageEl.OriginHeight<this.minHeight){this.baseScale=A/this.minWidth;
+}return;},getScaleLevel:function(){return this.baseScale*Math.pow(1.02,this.scale);},onTouchStart:function(e){if(!this.canvasLoaded){this.beforeSelectFile(e);return;}var A=e.browserEvent.touches;if(!A){return;}if(A.length==1){this.onMouseDown(e);return;}if(A.length!=2){return;
+}var B=[];for(var i=0,C;C=A[i];i++){B.push(C.pageX,C.pageY);}var x=Math.pow(B[0]-B[2],2);var y=Math.pow(B[1]-B[3],2);this.startDistance=Math.sqrt(x+y);this.startScale=this.scale;this.pinching=true;this.dragable=false;},onTouchMove:function(e){if(!this.pinching&&!this.dragable){return;
+}var A=e.browserEvent.touches;if(!A){return;}if(this.dragable){this.onMouseMove(e);return;}var B=[];for(var i=0,C;C=A[i];i++){B.push(C.pageX,C.pageY);}var x=Math.pow(B[0]-B[2],2);var y=Math.pow(B[1]-B[3],2);this.endDistance=Math.sqrt(x+y);this.scale=this.startScale+Math.floor(Math.log(this.endDistance/this.startDistance)/Math.log(1.1));
+if(!this.zoomable()){this.scale=this.startScale;return;}this.draw();},onTouchEnd:function(e){this.pinching=false;this.dragable=false;},process:function(A,B){if(this.loadMask){this.maskEl.mask(this.loadingText);}this.xhr=new XMLHttpRequest();A.xhr=this.xhr;
+this.xhr.open(this.method,this.url,true);var C={"Accept":"application/json","Cache-Control":"no-cache","X-Requested-With":"XMLHttpRequest"};for(var D in C){var E=C[D];if(E){this.xhr.setRequestHeader(D,E);}}var F=this;this.xhr.onload=function(){F.xhrOnLoad(F.xhr);
+};this.xhr.onerror=function(){F.xhrOnError(F.xhr);};var G=new FormData();G.append('returnHTML','NO');if(B){G.append('crop',B);var H=atob(B.split(',')[1]);var I=[];for(var i=0;i<H.length;i++){I.push(H.charCodeAt(i));}var J=new Blob([new Uint8Array(I)],{type:this.cropType}
+);G.append(this.paramName,J,A.name);}if(typeof(A.filename)!='undefined'){G.append('filename',A.filename);}if(typeof(A.mimetype)!='undefined'){G.append('mimetype',A.mimetype);}if(this.fireEvent('arrange',this,G)!=false){this.xhr.send(G);};},xhrOnLoad:function(A){if(this.loadMask){this.maskEl.unmask();
+}if(A.readyState!==4){this.fireEvent('exception',this,A);return;}var B=Roo.decode(A.responseText);if(!B.success){this.fireEvent('exception',this,A);return;}var B=Roo.decode(A.responseText);this.fireEvent('upload',this,B);},xhrOnError:function(){if(this.loadMask){this.maskEl.unmask();
+}Roo.log('xhr on error');var A=Roo.decode(xhr.responseText);Roo.log(A);},prepare:function(A){if(this.loadMask){this.maskEl.mask(this.loadingText);}this.file=false;this.exif={};if(typeof(A)==='string'){this.loadCanvas(A);return;}if(!A||!this.urlAPI){return;
+}this.file=A;if(typeof(A.type)!='undefined'&&A.type.length!=0){this.cropType=A.type;}var B=this;if(this.fireEvent('prepare',this,this.file)!=false){var C=new FileReader();C.onload=function(e){if(e.target.error){Roo.log(e.target.error);return;}var D=e.target.result,E=new DataView(D),F=2,G=E.byteLength-4,H,I;
+if(E.getUint16(0)===0xffd8){while(F<G){H=E.getUint16(F);if((H>=0xffe0&&H<=0xffef)||H===0xfffe){I=E.getUint16(F+2)+2;if(F+I>E.byteLength){Roo.log('Invalid meta data: Invalid segment size.');break;}if(H==0xffe1){B.parseExifData(E,F,I);}F+=I;continue;}break;
+}}var J=B.urlAPI.createObjectURL(B.file);B.loadCanvas(J);return;};C.readAsArrayBuffer(this.file);}},parseExifData:function(A,B,C){var D=B+10,E,F;if(A.getUint32(B+4)!==0x45786966){return;}if(A.getUint32(B+4)!==0x45786966){return;}if(D+8>A.byteLength){Roo.log('Invalid Exif data: Invalid segment size.');
+return;}if(A.getUint16(B+8)!==0x0000){Roo.log('Invalid Exif data: Missing byte alignment offset.');return;}switch(A.getUint16(D)){case 0x4949:E=true;break;case 0x4D4D:E=false;break;default:Roo.log('Invalid Exif data: Invalid byte alignment marker.');return;
+}if(A.getUint16(D+2,E)!==0x002A){Roo.log('Invalid Exif data: Missing TIFF marker.');return;}F=A.getUint32(D+4,E);this.parseExifTags(A,D,D+F,E);},parseExifTags:function(A,B,C,D){var E,F,i;if(C+6>A.byteLength){Roo.log('Invalid Exif data: Invalid directory offset.');
+return;}E=A.getUint16(C,D);F=C+2+12*E;if(F+4>A.byteLength){Roo.log('Invalid Exif data: Invalid directory size.');return;}for(i=0;i<E;i+=1){this.parseExifTag(A,B,C+2+12*i,D);}return A.getUint32(F,D);},parseExifTag:function(A,B,C,D){var E=A.getUint16(C,D);this.exif[E]=this.getExifValue(A,B,C,A.getUint16(C+2,D),A.getUint32(C+4,D),D);
+},getExifValue:function(A,B,C,D,E,F){var G=Roo.dialog.UploadCropbox.exifTagTypes[D],H,I,J,i,K,c;if(!G){Roo.log('Invalid Exif data: Invalid tag type.');return;}H=G.size*E;I=H>4?B+A.getUint32(C+8,F):(C+8);if(I+H>A.byteLength){Roo.log('Invalid Exif data: Invalid data offset.');
+return;}if(E===1){return G.getValue(A,I,F);}J=[];for(i=0;i<E;i+=1){J[i]=G.getValue(A,I+i*G.size,F);}if(G.ascii){K='';for(i=0;i<J.length;i+=1){c=J[i];if(c==='\u0000'){break;}K+=c;}return K;}return J;}});Roo.apply(Roo.dialog.UploadCropbox,{tags:{'Orientation':0x0112