-var H=this.minWidth-2*x;var I=this.minHeight-2*y;var J=1;if((x==0&&y==0)||(x==0&&y>0)){J=H/F;}if(x>0&&y==0){J=I/G;}if(x>0&&y>0){J=H/F;if(F<G){J=I/G;}}E.scale(J,J);var sx=Math.min(this.canvasEl.width-this.thumbEl.getWidth(),this.thumbEl.getLeft(true)-this.previewEl.getLeft(true));
-var sy=Math.min(this.canvasEl.height-this.thumbEl.getHeight(),this.thumbEl.getTop(true)-this.previewEl.getTop(true));sx=sx<0?0:(sx/this.getScaleLevel());sy=sy<0?0:(sy/this.getScaleLevel());sy+=(this.imageEl.OriginWidth>this.imageEl.OriginHeight)?0:Math.abs(this.imageEl.OriginWidth-this.imageEl.OriginHeight);
-E.drawImage(A,sx,sy,F,G,x,y,F,G);break;default:break;}this.cropData=D.toDataURL(this.cropType);if(this.fireEvent('crop',this,this.cropData)!==false){this.process(this.file,this.cropData);}return;},setThumbBoxSize:function(){var A,B;if(this.isDocument&&typeof(this.imageEl)!='undefined'){A=(this.imageEl.OriginWidth>this.imageEl.OriginHeight)?Math.max(this.minWidth,this.minHeight):Math.min(this.minWidth,this.minHeight);
-B=(this.imageEl.OriginWidth>this.imageEl.OriginHeight)?Math.min(this.minWidth,this.minHeight):Math.max(this.minWidth,this.minHeight);this.minWidth=A;this.minHeight=B;if(this.rotate==90||this.rotate==270){this.minWidth=B;this.minHeight=A;}}B=300;A=Math.ceil(this.minWidth*B/this.minHeight);
-if(this.minWidth>this.minHeight){A=300;B=Math.ceil(this.minHeight*A/this.minWidth);}this.thumbEl.setStyle({width:A+'px',height:B+'px'});return;},setThumbBoxPosition:function(){var x=Math.ceil((this.bodyEl.getWidth()-this.thumbEl.getWidth())/2);var y=Math.ceil((this.bodyEl.getHeight()-this.thumbEl.getHeight())/2);
-this.thumbEl.setLeft(x);this.thumbEl.setTop(y);},baseRotateLevel:function(){this.baseRotate=1;if(typeof(this.exif)!='undefined'&&typeof(this.exif[Roo.dialog.UploadCropbox['tags']['Orientation']])!='undefined'&&[1,3,6,8].indexOf(this.exif[Roo.dialog.UploadCropbox['tags']['Orientation']])!=-1){this.baseRotate=this.exif[Roo.dialog.UploadCropbox['tags']['Orientation']];
-}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;}}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 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);}if(typeof(A)!='undefined'&&(typeof(A.id)=='undefined'||A.id*1<1)){G.append(this.paramName,A,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;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
-},Orientation:{1:0,3:180,6:90,8:270},exifTagTypes:{1:{getValue:function(A,B){return A.getUint8(B);},size:1},2:{getValue:function(A,B){return String.fromCharCode(A.getUint8(B));
-},size:1,ascii:true},3:{getValue:function(A,B,C){return A.getUint16(B,C);},size:2},4:{getValue:function(A,B,C){return A.getUint32(B,C);},size:4},5:{getValue:function(A,B,C){return A.getUint32(B,C)/A.getUint32(B+4,C);},size:8},9:{getValue:function(A,B,C){return A.getInt32(B,C);
-},size:4},10:{getValue:function(A,B,C){return A.getInt32(B,C)/A.getInt32(B+4,C);},size:8}},footer:{STANDARD:[{tag:'div',cls:'btn-group roo-upload-cropbox-rotate-left',action:'rotate-left',cn:[{tag:'button',cls:'btn btn-default',html:'<i class="fa fa-undo"></i>'}
-]},{tag:'div',cls:'btn-group roo-upload-cropbox-picture',action:'picture',cn:[{tag:'button',cls:'btn btn-default',html:'<i class="fa fa-picture-o"></i>'}]},{tag:'div',cls:'btn-group roo-upload-cropbox-rotate-right',action:'rotate-right',cn:[{tag:'button',cls:'btn btn-default',html:'<i class="fa fa-repeat"></i>'}
-]}],DOCUMENT:[{tag:'div',cls:'btn-group roo-upload-cropbox-rotate-left',action:'rotate-left',cn:[{tag:'button',cls:'btn btn-default',html:'<i class="fa fa-undo"></i>'}]},{tag:'div',cls:'btn-group roo-upload-cropbox-download',action:'download',cn:[{tag:'button',cls:'btn btn-default',html:'<i class="fa fa-download"></i>'}
-]},{tag:'div',cls:'btn-group roo-upload-cropbox-crop',action:'crop',cn:[{tag:'button',cls:'btn btn-default',html:'<i class="fa fa-crop"></i>'}]},{tag:'div',cls:'btn-group roo-upload-cropbox-trash',action:'trash',cn:[{tag:'button',cls:'btn btn-default',html:'<i class="fa fa-trash"></i>'}
-]},{tag:'div',cls:'btn-group roo-upload-cropbox-rotate-right',action:'rotate-right',cn:[{tag:'button',cls:'btn btn-default',html:'<i class="fa fa-repeat"></i>'}]}],ROTATOR:[{tag:'div',cls:'btn-group roo-upload-cropbox-rotate-left',action:'rotate-left',cn:[{tag:'button',cls:'btn btn-default',html:'<i class="fa fa-undo"></i>'}
-]},{tag:'div',cls:'btn-group roo-upload-cropbox-rotate-right',action:'rotate-right',cn:[{tag:'button',cls:'btn btn-default',html:'<i class="fa fa-repeat"></i>'}]}]}});
+var targetWidth=this.minWidth-2*x;var targetHeight=this.minHeight-2*y;var scale=1;if((x==0&&y==0)||(x==0&&y>0)){scale=targetWidth/width;}if(x>0&&y==0){scale=targetHeight/height;}if(x>0&&y>0){scale=targetWidth/width;if(width<height){scale=targetHeight/height;
+}}context.scale(scale,scale);var sx=Math.min(this.canvasEl.width-this.thumbEl.getWidth(),this.thumbEl.getLeft(true)-this.previewEl.getLeft(true));var sy=Math.min(this.canvasEl.height-this.thumbEl.getHeight(),this.thumbEl.getTop(true)-this.previewEl.getTop(true));
+sx=sx<0?0:(sx/this.getScaleLevel());sy=sy<0?0:(sy/this.getScaleLevel());sy+=(this.imageEl.OriginWidth>this.imageEl.OriginHeight)?0:Math.abs(this.imageEl.OriginWidth-this.imageEl.OriginHeight);context.drawImage(imageCanvas,sx,sy,width,height,x,y,width,height);
+break;default:break;}this.cropData=canvas.toDataURL(this.cropType);if(this.fireEvent('crop',this,this.cropData)!==false){this.process(this.file,this.cropData);}return;},setThumbBoxSize:function(){var width,height;if(this.isDocument&&typeof(this.imageEl)!='undefined'){width=(this.imageEl.OriginWidth>this.imageEl.OriginHeight)?Math.max(this.minWidth,this.minHeight):Math.min(this.minWidth,this.minHeight);
+height=(this.imageEl.OriginWidth>this.imageEl.OriginHeight)?Math.min(this.minWidth,this.minHeight):Math.max(this.minWidth,this.minHeight);this.minWidth=width;this.minHeight=height;if(this.rotate==90||this.rotate==270){this.minWidth=height;this.minHeight=width;
+}}height=300;width=Math.ceil(this.minWidth*height/this.minHeight);if(this.minWidth>this.minHeight){width=300;height=Math.ceil(this.minHeight*width/this.minWidth);}this.thumbEl.setStyle({width:width+'px',height:height+'px'});return;},setThumbBoxPosition:function(){var x=Math.ceil((this.bodyEl.getWidth()-this.thumbEl.getWidth())/2);
+var y=Math.ceil((this.bodyEl.getHeight()-this.thumbEl.getHeight())/2);this.thumbEl.setLeft(x);this.thumbEl.setTop(y);},baseRotateLevel:function(){this.baseRotate=1;if(typeof(this.exif)!='undefined'&&typeof(this.exif[Roo.dialog.UploadCropbox['tags']['Orientation']])!='undefined'&&[1,3,6,8].indexOf(this.exif[Roo.dialog.UploadCropbox['tags']['Orientation']])!=-1){this.baseRotate=this.exif[Roo.dialog.UploadCropbox['tags']['Orientation']];
+}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
+}
+,Orientation:{1:0,3:180,6:90,8:270},exifTagTypes:{1:{getValue:function(dataView,dataOffset){return dataView.getUint8(dataOffset);},size:1},2:{getValue:function(dataView,dataOffset){return String.fromCharCode(dataView.getUint8(dataOffset));},size:1,ascii:true}
+,3:{getValue:function(dataView,dataOffset,littleEndian){return dataView.getUint16(dataOffset,littleEndian);},size:2},4:{getValue:function(dataView,dataOffset,littleEndian){return dataView.getUint32(dataOffset,littleEndian);},size:4},5:{getValue:function(dataView,dataOffset,littleEndian){return dataView.getUint32(dataOffset,littleEndian)/dataView.getUint32(dataOffset+4,littleEndian);
+},size:8},9:{getValue:function(dataView,dataOffset,littleEndian){return dataView.getInt32(dataOffset,littleEndian);},size:4},10:{getValue:function(dataView,dataOffset,littleEndian){return dataView.getInt32(dataOffset,littleEndian)/dataView.getInt32(dataOffset+4,littleEndian);
+},size:8}},footer:{STANDARD:[{tag:'div',cls:'btn-group roo-upload-cropbox-rotate-left',action:'rotate-left',cn:[{tag:'button',cls:'btn btn-default',html:'<i class="fa fa-undo"></i>'}]},{tag:'div',cls:'btn-group roo-upload-cropbox-picture',action:'picture',cn:[{tag:'button',cls:'btn btn-default',html:'<i class="fa fa-picture-o"></i>'}
+]},{tag:'div',cls:'btn-group roo-upload-cropbox-rotate-right',action:'rotate-right',cn:[{tag:'button',cls:'btn btn-default',html:'<i class="fa fa-repeat"></i>'}]}],DOCUMENT:[{tag:'div',cls:'btn-group roo-upload-cropbox-rotate-left',action:'rotate-left',cn:[{tag:'button',cls:'btn btn-default',html:'<i class="fa fa-undo"></i>'}
+]},{tag:'div',cls:'btn-group roo-upload-cropbox-download',action:'download',cn:[{tag:'button',cls:'btn btn-default',html:'<i class="fa fa-download"></i>'}]},{tag:'div',cls:'btn-group roo-upload-cropbox-crop',action:'crop',cn:[{tag:'button',cls:'btn btn-default',html:'<i class="fa fa-crop"></i>'}
+]},{tag:'div',cls:'btn-group roo-upload-cropbox-trash',action:'trash',cn:[{tag:'button',cls:'btn btn-default',html:'<i class="fa fa-trash"></i>'}]},{tag:'div',cls:'btn-group roo-upload-cropbox-rotate-right',action:'rotate-right',cn:[{tag:'button',cls:'btn btn-default',html:'<i class="fa fa-repeat"></i>'}
+]}],ROTATOR:[{tag:'div',cls:'btn-group roo-upload-cropbox-rotate-left',action:'rotate-left',cn:[{tag:'button',cls:'btn btn-default',html:'<i class="fa fa-undo"></i>'}]},{tag:'div',cls:'btn-group roo-upload-cropbox-rotate-right',action:'rotate-right',cn:[{tag:'button',cls:'btn btn-default',html:'<i class="fa fa-repeat"></i>'}
+]}]}});