/*!
* Cropper v0.6.2
* https://github.com/fengyuanchen/cropper
*
* Copyright 2014 Fengyuan Chen
* Released under the MIT license
*/
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){"use strict";var b=a(window),c=a(document),d=null,e=void 0,f=/^(e|n|w|s|ne|nw|sw|se|\*|\+)$/i,g=/^(x|y|width|height)$/i,h="cropper-hidden",i="cropper-invisible",j=".cropper",k="mousedown touchstart",l="mousemove touchmove",m="mouseup mouseleave touchend touchleave touchcancel",n="resize"+j,o=["build"+j,"built"+j,"dragstart"+j,"dragmove"+j,"dragend"+j],p=function(a){return"number"==typeof a},q=function(a){return''},r=function(b,c){this.$element=a(b),this.setDefaults(c),this.init()},s=Math.round,t=Math.min,u=Math.max,v=Math.abs,w=parseFloat;r.prototype={constructor:r,setDefaults:function(b){b=a.extend({},r.defaults,a.isPlainObject(b)?b:{}),a.each(b,function(a,c){switch(a){case"aspectRatio":b[a]=v(w(c))||0/0;break;case"minWidth":case"minHeight":b[a]=v(w(c))||0;break;case"maxWidth":case"maxHeight":b[a]=v(w(c))||1/0}}),this.defaults=b},init:function(){var b,c,d=this,e=this.$element,f=e[0],g={};e.is("img")?b=e.attr("src"):e.is("canvas")&&f.getContext&&(b=f.toDataURL()),b&&(this.$clone&&this.$clone.remove(),this.$clone=c=a(q(b)),c.one("load",function(){g.naturalWidth=this.naturalWidth||c.width(),g.naturalHeight=this.naturalHeight||c.height(),g.aspectRatio=g.naturalWidth/g.naturalHeight,d.active=!0,d.src=b,d.image=g,d.build()}),c.addClass(i).prependTo("body"))},build:function(){var b,d,e=this.$element,f=this.defaults;this.built&&this.unbuild(),b=a.Event(o[0]),e.trigger(b),a.isFunction(f.build)&&f.build(b),b.isDefaultPrevented()||(this.$cropper=d=a(r.template),e.addClass(h),this.$clone.removeClass(i).prependTo(d),this.$container=e.parent(),this.$container.append(d),this.$modal=d.find(".cropper-modal"),this.$canvas=d.find(".cropper-canvas"),this.$dragger=d.find(".cropper-dragger"),this.$viewer=d.find(".cropper-viewer"),this.cropped=!0,f.autoCrop||(this.$dragger.addClass(h),this.cropped=!1),this.$modal.toggleClass(h,!f.modal),this.$canvas.toggleClass(h,!f.dragCrop),!f.dashed&&this.$dragger.find(".cropper-dashed").addClass(h),!f.movable&&this.$dragger.find(".cropper-face").addClass(h),!f.resizable&&this.$dragger.find(".cropper-line, .cropper-point").addClass(h),this.$dragScope=f.multiple?this.$cropper:c,this.addListener(),this.initPreview(),this.built=!0,this.update(),e.trigger(o[1]))},unbuild:function(){this.built&&(this.built=!1,this.removeListener(),this.$preview.empty(),this.$preview=d,this.$dragger=d,this.$canvas=d,this.$modal=d,this.$container=d,this.$cropper.remove(),this.$cropper=d)},update:function(a){this.initContainer(),this.initCropper(),this.initDragger(),a?this.setData(a,!0):this.setData(this.defaults.data)},resize:function(){clearTimeout(this.resizing),this.resizing=setTimeout(a.proxy(this.update,this,this.getData()),200)},reset:function(a){this.cropped&&(a&&(this.defaults.data={}),this.dragger=this.cloneDragger(),this.setData(this.defaults.data))},release:function(){this.cropped&&(this.cropped=!1,this.defaults.done({x:0,y:0,width:0,height:0}),this.$modal.addClass(h),this.$dragger.addClass(h))},destroy:function(){var a=this.$element;this.active&&(this.unbuild(),a.removeClass(h),a.removeData("cropper"),a=d)},preview:function(){var b=this.cropper,c=this.dragger;this.$viewer.find("img").css({width:s(b.width),height:s(b.height),marginLeft:-s(c.left),marginTop:-s(c.top)}),this.$preview.each(function(){var d=a(this),e=d.width()/c.width,f={width:s(b.width*e),height:s(b.height*e),marginLeft:-s(c.left*e),marginTop:-s(c.top*e)};d.find("img").css(f)})},addListener:function(){var c=this.$element,d=this.defaults;a.each(o,function(b,e){var f=d[o[b].replace(j,"")];a.isFunction(f)&&c.on(e,f)}),this.$cropper.on(k,a.proxy(this.dragstart,this)),this.$dragScope.on(l,a.proxy(this.dragmove,this)).on(m,a.proxy(this.dragend,this)),b.on(n,a.proxy(this.resize,this))},removeListener:function(){var c=this.$element,d=this.defaults;a.each(o,function(b,e){var f=d[o[b].replace(j,"")];a.isFunction(f)&&c.off(e,f)}),this.$cropper.off(k,this.dragstart),this.$dragScope.off(l,this.dragmove).off(m,this.dragend),b.off(n,this.resize)},initPreview:function(){var b=q(this.src);this.$preview=a(this.defaults.preview),this.$preview.html(b),this.$viewer.html(b)},initContainer:function(){var a=this.$container;this.container={width:a.width(),height:a.height()}},initCropper:function(){var a,b=this.container,c=this.image;c.naturalWidth*b.height/c.naturalHeight-b.width>=0?(a={height:b.width/c.aspectRatio,width:b.width,left:0},a.top=(b.height-a.height)/2):(a={height:b.height,width:b.height*c.aspectRatio,top:0},a.left=(b.width-a.width)/2),c.ratio=a.width/c.naturalWidth,c.height=a.height,c.width=a.width,this.$cropper.css({width:s(a.width),height:s(a.height),left:s(a.left),top:s(a.top)}),this.cropper=a},initDragger:function(){var a,b=this.defaults,c=this.cropper,d=b.aspectRatio||this.image.aspectRatio,e=this.image.ratio;a=c.height*d-c.width>=0?{height:c.width/d,width:c.width,left:0,top:(c.height-c.width/d)/2,maxWidth:c.width,maxHeight:c.width/d}:{height:c.height,width:c.height*d,left:(c.width-c.height*d)/2,top:0,maxWidth:c.height*d,maxHeight:c.height},a.minWidth=0,a.minHeight=0,b.aspectRatio?(isFinite(b.maxWidth)?(a.maxWidth=t(a.maxWidth,b.maxWidth*e),a.maxHeight=a.maxWidth/d):isFinite(b.maxHeight)&&(a.maxHeight=t(a.maxHeight,b.maxHeight*e),a.maxWidth=a.maxHeight*d),b.minWidth>0?(a.minWidth=u(0,b.minWidth*e),a.minHeight=a.minWidth/d):b.minHeight>0&&(a.minHeight=u(0,b.minHeight*e),a.minWidth=a.minHeight*d)):(a.maxWidth=t(a.maxWidth,b.maxWidth*e),a.maxHeight=t(a.maxHeight,b.maxHeight*e),a.minWidth=u(0,b.minWidth*e),a.minHeight=u(0,b.minHeight*e)),a.minWidth=t(a.maxWidth,a.minWidth),a.minHeight=t(a.maxHeight,a.minHeight),a.height*=.8,a.width*=.8,a.left=(c.width-a.width)/2,a.top=(c.height-a.height)/2,a._left=a.left,a._top=a.top,this.defaultDragger=a,this.dragger=this.cloneDragger()},cloneDragger:function(){return a.extend({},this.defaultDragger)},renderDragger:function(){var a=this.dragger,b=this.cropper;a.width>a.maxWidth?(a.width=a.maxWidth,a.left=a._left):a.width