/**
* Jcrop v.0.9.8 (minimized)
* © 2008 Kelly Hallman and DeepLiquid.com
* More information: http://deepliquid.com/content/Jcrop.html
* Released under MIT License — this header must remain with code
*/
(function ($){$.Jcrop=function (obj, opt)
{var obj=obj, opt=opt;if (typeof (obj)≠='object')obj=$(obj)[0];if (typeof (opt)≠='object')opt={};if (!('trackDocument'in opt))
{opt.trackDocument=$.browser.msie?false:true;if ($.browser.msie&&$.browser.version.split ('.')[0]=='8')
opt.trackDocument=true;}
if (!('keySupport'in opt))
opt.keySupport=$.browser.msie?false:true;var defaults={trackDocument:false, baseClass:'jcrop', addClass: null, bgColor:'black', bgOpacity:.6,borderOpacity:.4,handleOpacity:.5,handlePad:5,handleSize:9,handleOffset:5,edgeMargin:14,aspectRatio:0,keySupport:true, cornerHandles: true, sideHandles: true, drawBorders: true, dragEdges: true, boxWidth:0,boxHeight:0,boundary:8,animationDelay:20,swingSpeed:3,allowSelect:true, allowMove: true, allowResize: true, minSelect:[0,0], maxSize:[0,0], minSize:[0,0], onChange: function (){}, onSelect: function (){}};var options=defaults;setOptions (opt);var $origimg=$(obj);var $img=$origimg.clone ().removeAttr ('id').css ({position:'absolute'});$img.width ($origimg.width ());$img.height ($origimg.height ());$origimg.after ($img).hide ();presize ($img, options. boxWidth, options. boxHeight);var boundx=$img.width (), boundy=$img.height (),$div=$('
').width (boundx).height (boundy).addClass (cssClass ('holder')).css ({position:'relative', backgroundColor: options. bgColor}).insertAfter ($origimg).append ($img);;if (options.addClass)$div.addClass (options.addClass);var $img2=$('
').attr ('src',$img.attr ('src')).css ('position','absolute').width (boundx).height (boundy);var $img_holder=$('').width (pct (100)).height (pct (100)).css ({zIndex:310,position:'absolute', overflow:'hidden'}).append ($img2);var $hdl_holder=$('').width (pct (100)).height (pct (100)).css ('zIndex', 320);var $sel=$('').css ({position:'absolute', zIndex:300}).insertBefore ($img).append ($img_holder,$hdl_holder);var bound=options.boundary;var $trk=newTracker ().width (boundx+(bound*2)).height (boundy+(bound*2)).css ({position:'absolute', top: px (-bound), left: px (-bound), zIndex:290}).mousedown (newSelection);var xlimit, ylimit, xmin, ymin;var xscale, yscale, enabled=true;var docOffset=getPos ($img), btndown, lastcurs, dimmed, animating, shift_down;var Coords=function ()
{var x1=0,y1=0,x2=0,y2=0,ox, oy;function setPressed (pos)
{var pos=rebound (pos);x2=x1=pos[0];y2=y1=pos[1];};function setCurrent (pos)
{var pos=rebound (pos);ox=pos[0]-x2;oy=pos[1]-y2;x2=pos[0];y2=pos[1];};function getOffset ()
{return[ox, oy];};function moveOffset (offset)
{var ox=offset[0], oy=offset[1];if (0>x1+ox)ox-=ox+x1;if (0>y1+oy)oy-=oy+y1;if (boundyboundx)
{xx=boundx;h=Math.abs ((xx-x1)/aspect);yy=rh<0?y1-h:h+y1;}}
else
{xx=x2;h=rwa/aspect;yy=rh<0?y1-h:y1+h;if(yy<0)
{yy=0;w=Math.abs((yy-y1)*aspect);xx=rw<0?x1-w:w+x1;}
else if(yy>boundy)
{yy=boundy;w=Math.abs (yy-y1)*aspect;xx=rw<0?x1-w:w+x1;}}
if(xx>x1){if (xx-x1max_x){xx=x1+max_x;}
if (yy>y1){yy=y1+(xx-x1)/aspect;}else{yy=y1-(xx-x1)/aspect;}}else if (xxmax_x){xx=x1-max_x;}
if (yy>y1){yy=y1+(x1-xx)/aspect;}else{yy=y1-(x1-xx)/aspect;}}
if (xx<0){x1-=xx;xx=0;}else if(xx>boundx){x1-=xx-boundx;xx=boundx;}
if (yy<0){y1-=yy;yy=0;}else if(yy>boundy){y1-=yy-boundy;yy=boundy;}
return last=makeObj (flipCoords (x1,y1,xx, yy));};function rebound (p)
{if (p[0]<0)p[0]=0;if(p[1]<0)p[1]=0;if(p[0]>boundx)p[0]=boundx;if (p[1]>boundy)p[1]=boundy;return[p[0], p[1]];};function flipCoords (x1,y1,x2,y2)
{var xa=x1,xb=x2,ya=y1,yb=y2;if (x2xlimit))
x2=(xsize>0)?(x1+xlimit):(x1-xlimit);if (ylimit&&(Math.abs (ysize)>ylimit))
y2=(ysize>0)?(y1+ylimit):(y1-ylimit);if (ymin&&(Math.abs (ysize)0)?(y1+ymin):(y1-ymin);if (xmin&&(Math.abs (xsize)0)?(x1+xmin):(x1-xmin);if (x1<0){x2-=x1;x1-=x1;}
if(y1<0){y2-=y1;y1-=y1;}
if(x2<0){x1-=x2;x2-=x2;}
if(y2<0){y1-=y2;y2-=y2;}
if(x2>boundx){var delta=x2-boundx;x1-=delta;x2-=delta;}
if (y2>boundy){var delta=y2-boundy;y1-=delta;y2-=delta;}
if (x1>boundx){var delta=x1-boundy;y2-=delta;y1-=delta;}
if (y1>boundy){var delta=y1-boundy;y2-=delta;y1-=delta;}
return makeObj (flipCoords (x1,y1,x2,y2));};function makeObj (a)
{return{x:a[0], y: a[1], x2: a[2], y2: a[3], w: a[2]-a[0], h: a[3]-a[1]};};return{flipCoords:flipCoords, setPressed: setPressed, setCurrent: setCurrent, getOffset: getOffset, moveOffset: moveOffset, getCorner: getCorner, getFixed: getFixed};}();var Selection=function ()
{var start, end, dragmode, awake, hdep=370;var borders={};var handle={};var seehandles=false;var hhs=options.handleOffset;if (options.drawBorders){borders={top:insertBorder ('hline').css ('top',$.browser.msie?px (-1):px (0)), bottom: insertBorder ('hline'), left: insertBorder ('vline'), right: insertBorder ('vline')};}
if (options.dragEdges){handle.t=insertDragbar ('n');handle.b=insertDragbar ('s');handle.r=insertDragbar ('e');handle.l=insertDragbar ('w');}
options.sideHandles&&createHandles (['n','s','e','w']);options.cornerHandles&&createHandles (['sw','nw','ne','se']);function insertBorder (type)
{var jq=$('').css ({position:'absolute', opacity: options. borderOpacity}).addClass (cssClass (type));$img_holder.append (jq);return jq;};function dragDiv (ord, zi)
{var jq=$('').mousedown (createDragger (ord)).css ({cursor:ord+'-resize', position:'absolute', zIndex: zi});$hdl_holder.append (jq);return jq;};function insertHandle (ord)
{return dragDiv (ord, hdep++).css ({top:px (-hhs+1), left: px (-hhs+1), opacity: options. handleOpacity}).addClass (cssClass ('handle'));};function insertDragbar (ord)
{var s=options.handleSize, o=hhs, h=s, w=s, t=o, l=o;switch (ord)
{case'n':case's':w=pct (100);break;case'e':case'w':h=pct (100);break;}
return dragDiv (ord, hdep++).width (w).height (h).css ({top:px (-t+1), left: px (-l+1)});};function createHandles (li)
{for (i in li) handle[li[i]]=insertHandle (li[i]);};function moveHandles© {var midvert=Math.round ((c.h/2)-hhs), midhoriz=Math.round ((c.w/2)-hhs), north=west=-hhs+1,east=c.w-hhs, south=c.h-hhs, x, y;'e'in handle&&handle.e.css ({top:px (midvert), left: px (east)})&&handle.w.css ({top:px (midvert)})&&handle.s.css ({top:px (south), left: px (midhoriz)})&&handle.n.css ({left:px (midhoriz)});'ne'in handle&&handle.ne.css ({left:px (east)})&&handle.se.css ({top:px (south), left: px (east)})&&handle.sw.css ({top:px (south)});'b'in handle&&handle.b.css ({top:px (south)})&&handle.r.css ({left:px (east)});};function moveto (x, y)
{$img2.css ({top:px (-y), left: px (-x)});$sel.css ({top:px (y), left: px (x)});};function resize (w, h)
{$sel.width (w).height (h);};function refresh ()
{var c=Coords.getFixed ();Coords.setPressed ([c.x, c. y]);Coords.setCurrent ([c.x2,c.y2]);updateVisible ();};function updateVisible ()
{if (awake)return update ();};function update ()
{var c=Coords.getFixed ();resize (c.w, c. h);moveto (c.x, c. y);options.drawBorders&&borders['right'].css ({left:px (c.w-1)})&&borders['bottom'].css ({top:px (c.h-1)});seehandles&&moveHandles (c);awake||show ();options.onChange (unscale (c));};function show ()
{$sel.show ();$img.css ('opacity', options. bgOpacity);awake=true;};function release ()
{disableHandles ();$sel.hide ();$img.css ('opacity', 1);awake=false;};function showHandles ()
{if (seehandles)
{moveHandles (Coords.getFixed ());$hdl_holder.show ();}};function enableHandles ()
{seehandles=true;if (options.allowResize)
{moveHandles (Coords.getFixed ());$hdl_holder.show ();return true;}};function disableHandles ()
{seehandles=false;$hdl_holder.hide ();};function animMode (v)
{(animating=v)?disableHandles ():enableHandles ();};function done ()
{animMode (false);refresh ();};var $track=newTracker ().mousedown (createDragger ('move')).css ({cursor:'move', position:'absolute', zIndex:360})
$img_holder.append ($track);disableHandles ();return{updateVisible:updateVisible, update: update, release: release, refresh: refresh, setCursor: function (cursor){$track.css ('cursor', cursor);}, enableHandles: enableHandles, enableOnly: function (){seehandles=true;}, showHandles: showHandles, disableHandles: disableHandles, animMode: animMode, done: done};}();var Tracker=function ()
{var onMove=function (){}, onDone=function (){}, trackDoc=options.trackDocument;if (!trackDoc)
{$trk.mousemove (trackMove).mouseup (trackUp).mouseout (trackUp);}
function toFront ()
{$trk.css ({zIndex:450});if (trackDoc)
{$(document).mousemove (trackMove).mouseup (trackUp);}}
function toBack ()
{$trk.css ({zIndex:290});if (trackDoc)
{$(document).unbind ('mousemove', trackMove).unbind ('mouseup', trackUp);}}
function trackMove (e)
{onMove (mouseAbs (e));};function trackUp (e)
{e.preventDefault ();e.stopPropagation ();if (btndown)
{btndown=false;onDone (mouseAbs (e));options.onSelect (unscale (Coords.getFixed ()));toBack ();onMove=function (){};onDone=function (){};}
return false;};function activateHandlers (move, done)
{btndown=true;onMove=move;onDone=done;toFront ();return false;};function setCursor (t){$trk.css ('cursor', t);};$img.before ($trk);return{activateHandlers:activateHandlers, setCursor: setCursor};}();var KeyManager=function ()
{var $keymgr=$('').css ({position:'absolute', left:'-30px'}).keypress (parseKey).blur (onBlur),$keywrap=$('').css ({position:'absolute', overflow:'hidden'}).append ($keymgr);function watchKeys ()
{if (options.keySupport)
{$keymgr.show ();$keymgr.focus ();}};function onBlur (e)
{$keymgr.hide ();};function doNudge (e, x, y)
{if (options.allowMove){Coords.moveOffset ([x, y]);Selection.updateVisible ();};e.preventDefault ();e.stopPropagation ();};function parseKey (e)
{if (e.ctrlKey)return true;shift_down=e.shiftKey?true:false;var nudge=shift_down?10:1;switch (e.keyCode)
{case 37: doNudge (e,-nudge, 0);break;case 39: doNudge (e, nudge, 0);break;case 38: doNudge (e, 0,-nudge);break;case 40: doNudge (e, 0, nudge);break;case 27: Selection. release ();break;case 9: return true;}
return nothing (e);};if (options.keySupport)$keywrap.insertBefore ($img);return{watchKeys:watchKeys};}();function px (n){return''+parseInt (n)+'px';};function pct (n){return''+parseInt (n)+'%';};function cssClass (cl){return options. baseClass+'-'+cl;};function getPos (obj)
{var pos=$(obj).offset ();return[pos.left, pos. top];};function mouseAbs (e)
{return[(e.pageX-docOffset[0]),(e.pageY-docOffset[1])];};function myCursor (type)
{if (type≠lastcurs)
{Tracker.setCursor (type);lastcurs=type;}};function startDragMode (mode, pos)
{docOffset=getPos ($img);Tracker.setCursor (mode=='move'?mode:mode+'-resize');if (mode=='move')
return Tracker. activateHandlers (createMover (pos), doneSelect);var fc=Coords.getFixed ();var opp=oppLockCorner (mode);var opc=Coords.getCorner (oppLockCorner (opp));Coords.setPressed (Coords.getCorner (opp));Coords.setCurrent (opc);Tracker.activateHandlers (dragmodeHandler (mode, fc), doneSelect);};function dragmodeHandler (mode, f)
{return function (pos){if (!options.aspectRatio)switch (mode)
{case'e':pos[1]=f.y2;break;case'w':pos[1]=f.y2;break;case'n':pos[0]=f.x2;break;case's':pos[0]=f.x2;break;}
else switch (mode)
{case'e':pos[1]=f.y+1;break;case'w':pos[1]=f.y+1;break;case'n':pos[0]=f.x+1;break;case's':pos[0]=f.x+1;break;}
Coords.setCurrent (pos);Selection.update ();};};function createMover (pos)
{var lloc=pos;KeyManager.watchKeys ();return function (pos)
{Coords.moveOffset ([pos[0]-lloc[0], pos[1]-lloc[1]]);lloc=pos;Selection.update ();};};function oppLockCorner (ord)
{switch (ord)
{case'n':return'sw';case's':return'nw';case'e':return'nw';case'w':return'ne';case'ne':return'sw';case'nw':return'se';case'se':return'nw';case'sw':return'ne';};};function createDragger (ord)
{return function (e){if (options.disabled)return false;if ((ord=='move')&&!options.allowMove)return false;btndown=true;startDragMode (ord, mouseAbs (e));e.stopPropagation ();e.preventDefault ();return false;};};function presize ($obj, w, h)
{var nw=$obj.width (), nh=$obj.height ();if ((nw>w)&&w>0)
{nw=w;nh=(w/$obj.width ())*$obj.height ();}
if ((nh>h)&&h>0)
{nh=h;nw=(h/$obj.height ())*$obj.width ();}
xscale=$obj.width ()/nw;yscale=$obj.height ()/nh;$obj.width (nw).height (nh);};function unscale© {return{x:parseInt (c.x*xscale), y: parseInt (c.y*yscale), x2: parseInt (c.x2*xscale), y2: parseInt (c.y2*yscale), w: parseInt (c.w*xscale), h: parseInt (c.h*yscale)};};function doneSelect (pos)
{var c=Coords.getFixed ();if (c.w>options.minSelect[0]&&c.h>options.minSelect[1])
{Selection.enableHandles ();Selection.done ();}
else
{Selection.release ();}
Tracker.setCursor (options.allowSelect?'crosshair':'default');};function newSelection (e)
{if (options.disabled)return false;if (!options.allowSelect)return false;btndown=true;docOffset=getPos ($img);Selection.disableHandles ();myCursor ('crosshair');var pos=mouseAbs (e);Coords.setPressed (pos);Tracker.activateHandlers (selectDrag, doneSelect);KeyManager.watchKeys ();Selection.update ();e.stopPropagation ();e.preventDefault ();return false;};function selectDrag (pos)
{Coords.setCurrent (pos);Selection.update ();};function newTracker ()
{var trk=$('').addClass (cssClass ('tracker'));$.browser.msie&&trk.css ({opacity:0,backgroundColor:'white'});return trk;};function animateTo (a)
{var x1=a[0]/xscale, y1=a[1]/yscale, x2=a[2]/xscale, y2=a[3]/yscale;if (animating)return;var animto=Coords.flipCoords (x1,y1,x2,y2);var c=Coords.getFixed ();var animat=initcr=[c.x, c. y, c. x2,c.y2];var interv=options.animationDelay;var x=animat[0];var y=animat[1];var x2=animat[2];var y2=animat[3];var ix1=animto[0]-initcr[0];var iy1=animto[1]-initcr[1];var ix2=animto[2]-initcr[2];var iy2=animto[3]-initcr[3];var pcent=0;var velocity=options.swingSpeed;Selection.animMode (true);var animator=function ()
{return function ()
{pcent+=(100-pcent)/velocity;animat[0]=x+((pcent/100)*ix1);animat[1]=y+((pcent/100)*iy1);animat[2]=x2+((pcent/100)*ix2);animat[3]=y2+((pcent/100)*iy2);if (pcent<100)animateStart();else Selection.done();if(pcent>=99.8)pcent=100;setSelectRaw (animat);};}();function animateStart ()
{window.setTimeout (animator, interv);};animateStart ();};function setSelect (rect)
{setSelectRaw ([rect[0]/xscale, rect[1]/yscale, rect[2]/xscale, rect[3]/yscale]);};function setSelectRaw (l)
{Coords.setPressed ([l[0], l[1]]);Coords.setCurrent ([l[2], l[3]]);Selection.update ();};function setOptions (opt)
{if (typeof (opt)≠'object')opt={};options=$.extend (options, opt);if (typeof (options.onChange)≠='function')
options.onChange=function (){};if (typeof (options.onSelect)≠='function')
options.onSelect=function (){};};function tellSelect ()
{return unscale (Coords.getFixed ());};function tellScaled ()
{return Coords. getFixed ();};function setOptionsNew (opt)
{setOptions (opt);interfaceUpdate ();};function disableCrop ()
{options.disabled=true;Selection.disableHandles ();Selection.setCursor ('default');Tracker.setCursor ('default');};function enableCrop ()
{options.disabled=false;interfaceUpdate ();};function cancelCrop ()
{Selection.done ();Tracker.activateHandlers (null, null);};function destroy ()
{$div.remove ();$origimg.show ();};function interfaceUpdate (alt)
{options.allowResize?alt?Selection.enableOnly ():Selection.enableHandles ():Selection.disableHandles ();Tracker.setCursor (options.allowSelect?'crosshair':'default');Selection.setCursor (options.allowMove?'move':'default');$div.css ('backgroundColor', options. bgColor);if ('setSelect'in options){setSelect (opt.setSelect);Selection.done ();delete (options.setSelect);}
if ('trueSize'in options){xscale=options.trueSize[0]/boundx;yscale=options.trueSize[1]/boundy;}
xlimit=options.maxSize[0]||0;ylimit=options.maxSize[1]||0;xmin=options.minSize[0]||0;ymin=options.minSize[1]||0;if ('outerImage'in options)
{$img.attr ('src', options. outerImage);delete (options.outerImage);}
Selection.refresh ();};$hdl_holder.hide ();interfaceUpdate (true);var api={animateTo:animateTo, setSelect: setSelect, setOptions: setOptionsNew, tellSelect: tellSelect, tellScaled: tellScaled, disable: disableCrop, enable: enableCrop, cancel: cancelCrop, focus: KeyManager. watchKeys, getBounds: function (){return[boundx*xscale, boundy*yscale];}, getWidgetSize: function (){return[boundx, boundy];}, release: Selection. release, destroy: destroy};$origimg.data ('Jcrop', api);return api;};$.fn.Jcrop=function (options)
{function attachWhenDone (from)
{var loadsrc=options.useImg||from.src;var img=new Image ();img.onload=function (){$.Jcrop (from, options);};img.src=loadsrc;};if (typeof (options)≠='object')options={};this.each (function ()
{if ($(this).data ('Jcrop'))
{if (options=='api')return $(this).data ('Jcrop');else $(this).data ('Jcrop').setOptions (options);}
else attachWhenDone (this);});return this;};})(jQuery);