<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[21648] trunk/wp-includes: Remove Jcrop non-minified files.</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg > ul, #logmsg > ol { margin-left: 0; margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://core.trac.wordpress.org/changeset/21648">21648</a></dd>
<dt>Author</dt> <dd>nacin</dd>
<dt>Date</dt> <dd>2012-08-28 18:03:52 +0000 (Tue, 28 Aug 2012)</dd>
</dl>

<h3>Log Message</h3>
<pre>Remove Jcrop non-minified files. see <a href="http://core.trac.wordpress.org/ticket/20728">#20728</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkwpincludesscriptloaderphp">trunk/wp-includes/script-loader.php</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkwpincludesjsjcropjqueryJcropcss">trunk/wp-includes/js/jcrop/jquery.Jcrop.css</a></li>
<li><a href="#trunkwpincludesjsjcropjqueryJcropjs">trunk/wp-includes/js/jcrop/jquery.Jcrop.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkwpincludesjsjcropjqueryJcropcss"></a>
<div class="delfile"><h4>Deleted: trunk/wp-includes/js/jcrop/jquery.Jcrop.css (21647 => 21648)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-includes/js/jcrop/jquery.Jcrop.css        2012-08-28 18:03:12 UTC (rev 21647)
+++ trunk/wp-includes/js/jcrop/jquery.Jcrop.css        2012-08-28 18:03:52 UTC (rev 21648)
</span><span class="lines">@@ -1,86 +0,0 @@
</span><del>-/* jquery.Jcrop.css v0.9.10 - MIT License */
-
-/*
-  The outer-most container in a typical Jcrop instance
-  If you are having difficulty with formatting related to styles
-  on a parent element, place any fixes here or in a like selector
-
-  You can also style this element if you want to add a border, etc
-  A better method for styling can be seen below with .jcrop-light
-  (Add a class to the holder and style elements for that extended class)
-*/
-.jcrop-holder {
-  direction: ltr;
-  text-align: left;
-}
-
-/* These styles define the border lines */
-.jcrop-vline,.jcrop-hline{background:#FFF url(Jcrop.gif) top left repeat;font-size:0;position:absolute;}
-.jcrop-vline{height:100%;width:1px!important;}
-.jcrop-hline{height:1px!important;width:100%;}
-.jcrop-vline.right{right:0;}
-.jcrop-hline.bottom{bottom:0;}
-
-/* Handle style - size is set by Jcrop handleSize option (currently) */
-.jcrop-handle{background-color:#333;border:1px #eee solid;font-size:1px;}
-
-/* This style is used for invisible click targets */
-.jcrop-tracker
-{
-  height: 100%; 
-  width: 100%;
-  -webkit-tap-highlight-color: transparent; /* &quot;turn off&quot; link highlight */
-  -webkit-touch-callout: none;              /* disable callout, image save panel */
-  -webkit-user-select: none;                /* disable cut copy paste */
-}
-
-/* Positioning of handles and drag bars */
-.jcrop-handle.ord-n{left:50%;margin-left:-4px;margin-top:-4px;top:0;}
-.jcrop-handle.ord-s{bottom:0;left:50%;margin-bottom:-4px;margin-left:-4px;}
-.jcrop-handle.ord-e{margin-right:-4px;margin-top:-4px;right:0;top:50%;}
-.jcrop-handle.ord-w{left:0;margin-left:-4px;margin-top:-4px;top:50%;}
-.jcrop-handle.ord-nw{left:0;margin-left:-4px;margin-top:-4px;top:0;}
-.jcrop-handle.ord-ne{margin-right:-4px;margin-top:-4px;right:0;top:0;}
-.jcrop-handle.ord-se{bottom:0;margin-bottom:-4px;margin-right:-4px;right:0;}
-.jcrop-handle.ord-sw{bottom:0;left:0;margin-bottom:-4px;margin-left:-4px;}
-.jcrop-dragbar.ord-n,.jcrop-dragbar.ord-s{height:7px;width:100%;}
-.jcrop-dragbar.ord-e,.jcrop-dragbar.ord-w{height:100%;width:7px;}
-.jcrop-dragbar.ord-n{margin-top:-4px;}
-.jcrop-dragbar.ord-s{bottom:0;margin-bottom:-4px;}
-.jcrop-dragbar.ord-e{margin-right:-4px;right:0;}
-.jcrop-dragbar.ord-w{margin-left:-4px;}
-
-/* The &quot;jcrop-light&quot; class/extension */
-.jcrop-light .jcrop-vline,.jcrop-light .jcrop-hline
-{
-        background:#FFF;
-        filter:Alpha(opacity=70)!important;
-        opacity:.70!important;
-}
-.jcrop-light .jcrop-handle
-{
-        -moz-border-radius:3px;
-        -webkit-border-radius:3px;
-        background-color:#000;
-        border-color:#FFF;
-        border-radius:3px;
-}
-
-/* The &quot;jcrop-dark&quot; class/extension */
-.jcrop-dark .jcrop-vline,.jcrop-dark .jcrop-hline
-{
-        background:#000;
-        filter:Alpha(opacity=70)!important;
-        opacity:.7!important;
-}
-.jcrop-dark .jcrop-handle
-{
-        -moz-border-radius:3px;
-        -webkit-border-radius:3px;
-        background-color:#FFF;
-        border-color:#000;
-        border-radius:3px;
-}
-
-/* Fix for twitter bootstrap et al. */
-.jcrop-holder img,img.jcrop-preview{ max-width: none; }
</del></span></pre></div>
<a id="trunkwpincludesjsjcropjqueryJcropjs"></a>
<div class="delfile"><h4>Deleted: trunk/wp-includes/js/jcrop/jquery.Jcrop.js (21647 => 21648)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-includes/js/jcrop/jquery.Jcrop.js        2012-08-28 18:03:12 UTC (rev 21647)
+++ trunk/wp-includes/js/jcrop/jquery.Jcrop.js        2012-08-28 18:03:52 UTC (rev 21648)
</span><span class="lines">@@ -1,1695 +0,0 @@
</span><del>-/**
- * jquery.Jcrop.js v0.9.10
- * jQuery Image Cropping Plugin - released under MIT License 
- * Author: Kelly Hallman &lt;khallman@gmail.com&gt;
- * http://github.com/tapmodo/Jcrop
- * Copyright (c) 2008-2012 Tapmodo Interactive LLC {{{
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the &quot;Software&quot;), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * }}}
- */
-
-(function ($) {
-
-  $.Jcrop = function (obj, opt) {
-    var options = $.extend({}, $.Jcrop.defaults),
-        docOffset, lastcurs, ie6mode = false;
-
-    // Internal Methods {{{
-    function px(n) {
-      return n + 'px';
-    }
-    function cssClass(cl) {
-      return options.baseClass + '-' + cl;
-    }
-    function supportsColorFade() {
-      return $.fx.step.hasOwnProperty('backgroundColor');
-    }
-    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 setOptions(opt) //{{{
-    {
-      if (typeof(opt) !== 'object') opt = {};
-      options = $.extend(options, opt);
-
-      $.each(['onChange','onSelect','onRelease','onDblClick'],function(i,e) {
-        if (typeof(options[e]) !== 'function') options[e] = function () {};
-      });
-    }
-    //}}}
-    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') &amp;&amp; !options.allowMove) {
-          return false;
-        }
-        
-        // Fix position of crop area when dragged the very first time.
-        // Necessary when crop image is in a hidden element when page is loaded.
-        docOffset = getPos($img);
-
-        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 &gt; w) &amp;&amp; w &gt; 0) {
-        nw = w;
-        nh = (w / $obj.width()) * $obj.height();
-      }
-      if ((nh &gt; h) &amp;&amp; h &gt; 0) {
-        nh = h;
-        nw = (h / $obj.height()) * $obj.width();
-      }
-      xscale = $obj.width() / nw;
-      yscale = $obj.height() / nh;
-      $obj.width(nw).height(nh);
-    }
-    //}}}
-    function unscale(c) //{{{
-    {
-      return {
-        x: c.x * xscale,
-        y: c.y * yscale,
-        x2: c.x2 * xscale,
-        y2: c.y2 * yscale,
-        w: c.w * xscale,
-        h: c.h * yscale
-      };
-    }
-    //}}}
-    function doneSelect(pos) //{{{
-    {
-      var c = Coords.getFixed();
-      if ((c.w &gt; options.minSelect[0]) &amp;&amp; (c.h &gt; 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();
-      Tracker.setCursor('crosshair');
-      var pos = mouseAbs(e);
-      Coords.setPressed(pos);
-      Selection.update();
-      Tracker.activateHandlers(selectDrag, doneSelect);
-      KeyManager.watchKeys();
-
-      e.stopPropagation();
-      e.preventDefault();
-      return false;
-    }
-    //}}}
-    function selectDrag(pos) //{{{
-    {
-      Coords.setCurrent(pos);
-      Selection.update();
-    }
-    //}}}
-    function newTracker() //{{{
-    {
-      var trk = $('&lt;div&gt;&lt;/div&gt;').addClass(cssClass('tracker'));
-      if ($.browser.msie) {
-        trk.css({
-          opacity: 0,
-          backgroundColor: 'white'
-        });
-      }
-      return trk;
-    }
-    //}}}
-
-    // }}}
-    // Initialization {{{
-    // Sanitize some options {{{
-    if ($.browser.msie &amp;&amp; ($.browser.version.split('.')[0] === '6')) {
-      ie6mode = true;
-    }
-    if (typeof(obj) !== 'object') {
-      obj = $(obj)[0];
-    }
-    if (typeof(opt) !== 'object') {
-      opt = {};
-    }
-    // }}}
-    setOptions(opt);
-    // Initialize some jQuery objects {{{
-    // The values are SET on the image(s) for the interface
-    // If the original image has any of these set, they will be reset
-    // However, if you destroy() the Jcrop instance the original image's
-    // character in the DOM will be as you left it.
-    var img_css = {
-      border: 'none',
-      visibility: 'visible',
-      margin: 0,
-      padding: 0,
-      position: 'absolute',
-      top: 0,
-      left: 0
-    };
-
-    var $origimg = $(obj),
-      img_mode = true;
-
-    if (obj.tagName == 'IMG') {
-      // Fix size of crop image.
-      // Necessary when crop image is within a hidden element when page is loaded.
-      if ($origimg[0].width != 0 &amp;&amp; $origimg[0].height != 0) {
-        // Obtain dimensions from contained img element.
-        $origimg.width($origimg[0].width);
-        $origimg.height($origimg[0].height);
-      } else {
-        // Obtain dimensions from temporary image in case the original is not loaded yet (e.g. IE 7.0). 
-        var tempImage = new Image();
-        tempImage.src = $origimg[0].src;
-        $origimg.width(tempImage.width);
-        $origimg.height(tempImage.height);
-      } 
-
-      var $img = $origimg.clone().removeAttr('id').css(img_css).show();
-
-      $img.width($origimg.width());
-      $img.height($origimg.height());
-      $origimg.after($img).hide();
-
-    } else {
-      $img = $origimg.css(img_css).show();
-      img_mode = false;
-      if (options.shade === null) { options.shade = true; }
-    }
-
-    presize($img, options.boxWidth, options.boxHeight);
-
-    var boundx = $img.width(),
-        boundy = $img.height(),
-        
-        
-        $div = $('&lt;div /&gt;').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 = $('&lt;div /&gt;'),
-
-        $img_holder = $('&lt;div /&gt;') 
-        .width('100%').height('100%').css({
-          zIndex: 310,
-          position: 'absolute',
-          overflow: 'hidden'
-        }),
-
-        $hdl_holder = $('&lt;div /&gt;') 
-        .width('100%').height('100%').css('zIndex', 320), 
-
-        $sel = $('&lt;div /&gt;') 
-        .css({
-          position: 'absolute',
-          zIndex: 600
-        }).dblclick(function(){
-          var c = Coords.getFixed();
-          options.onDblClick.call(api,c);
-        }).insertBefore($img).append($img_holder, $hdl_holder); 
-
-    if (img_mode) {
-
-      $img2 = $('&lt;img /&gt;')
-          .attr('src', $img.attr('src')).css(img_css).width(boundx).height(boundy),
-
-      $img_holder.append($img2);
-
-    }
-
-    if (ie6mode) {
-      $sel.css({
-        overflowY: 'hidden'
-      });
-    }
-
-    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);
-
-    /* }}} */
-    // Set more variables {{{
-    var bgcolor = options.bgColor,
-        bgopacity = options.bgOpacity,
-        xlimit, ylimit, xmin, ymin, xscale, yscale, enabled = true,
-        btndown, animating, shift_down;
-
-    docOffset = getPos($img);
-    // }}}
-    // }}}
-    // Internal Modules {{{
-    // Touch Module {{{ 
-    var Touch = (function () {
-      // Touch support detection function adapted (under MIT License)
-      // from code by Jeffrey Sambells - http://github.com/iamamused/
-      function hasTouchSupport() {
-        var support = {},
-            events = ['touchstart', 'touchmove', 'touchend'],
-            el = document.createElement('div'), i;
-
-        try {
-          for(i=0; i&lt;events.length; i++) {
-            var eventName = events[i];
-            eventName = 'on' + eventName;
-            var isSupported = (eventName in el);
-            if (!isSupported) {
-              el.setAttribute(eventName, 'return;');
-              isSupported = typeof el[eventName] == 'function';
-            }
-            support[events[i]] = isSupported;
-          }
-          return support.touchstart &amp;&amp; support.touchend &amp;&amp; support.touchmove;
-        }
-        catch(err) {
-          return false;
-        }
-      }
-
-      function detectSupport() {
-        if ((options.touchSupport === true) || (options.touchSupport === false)) return options.touchSupport;
-          else return hasTouchSupport();
-      }
-      return {
-        createDragger: function (ord) {
-          return function (e) {
-            e.pageX = e.originalEvent.changedTouches[0].pageX;
-            e.pageY = e.originalEvent.changedTouches[0].pageY;
-            if (options.disabled) {
-              return false;
-            }
-            if ((ord === 'move') &amp;&amp; !options.allowMove) {
-              return false;
-            }
-            btndown = true;
-            startDragMode(ord, mouseAbs(e));
-            e.stopPropagation();
-            e.preventDefault();
-            return false;
-          };
-        },
-        newSelection: function (e) {
-          e.pageX = e.originalEvent.changedTouches[0].pageX;
-          e.pageY = e.originalEvent.changedTouches[0].pageY;
-          return newSelection(e);
-        },
-        isSupported: hasTouchSupport,
-        support: detectSupport()
-      };
-    }());
-    // }}}
-    // Coords Module {{{
-    var Coords = (function () {
-      var x1 = 0,
-          y1 = 0,
-          x2 = 0,
-          y2 = 0,
-          ox, oy;
-
-      function setPressed(pos) //{{{
-      {
-        pos = rebound(pos);
-        x2 = x1 = pos[0];
-        y2 = y1 = pos[1];
-      }
-      //}}}
-      function setCurrent(pos) //{{{
-      {
-        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 &gt; x1 + ox) {
-          ox -= ox + x1;
-        }
-        if (0 &gt; y1 + oy) {
-          oy -= oy + y1;
-        }
-
-        if (boundy &lt; y2 + oy) {
-          oy += boundy - (y2 + oy);
-        }
-        if (boundx &lt; x2 + ox) {
-          ox += boundx - (x2 + ox);
-        }
-
-        x1 += ox;
-        x2 += ox;
-        y1 += oy;
-        y2 += oy;
-      }
-      //}}}
-      function getCorner(ord) //{{{
-      {
-        var c = getFixed();
-        switch (ord) {
-        case 'ne':
-          return [c.x2, c.y];
-        case 'nw':
-          return [c.x, c.y];
-        case 'se':
-          return [c.x2, c.y2];
-        case 'sw':
-          return [c.x, c.y2];
-        }
-      }
-      //}}}
-      function getFixed() //{{{
-      {
-        if (!options.aspectRatio) {
-          return getRect();
-        }
-        // This function could use some optimization I think...
-        var aspect = options.aspectRatio,
-            min_x = options.minSize[0] / xscale,
-            
-            
-            //min_y = options.minSize[1]/yscale,
-            max_x = options.maxSize[0] / xscale,
-            max_y = options.maxSize[1] / yscale,
-            rw = x2 - x1,
-            rh = y2 - y1,
-            rwa = Math.abs(rw),
-            rha = Math.abs(rh),
-            real_ratio = rwa / rha,
-            xx, yy, w, h;
-
-        if (max_x === 0) {
-          max_x = boundx * 10;
-        }
-        if (max_y === 0) {
-          max_y = boundy * 10;
-        }
-        if (real_ratio &lt; aspect) {
-          yy = y2;
-          w = rha * aspect;
-          xx = rw &lt; 0 ? x1 - w : w + x1;
-
-          if (xx &lt; 0) {
-            xx = 0;
-            h = Math.abs((xx - x1) / aspect);
-            yy = rh &lt; 0 ? y1 - h : h + y1;
-          } else if (xx &gt; boundx) {
-            xx = boundx;
-            h = Math.abs((xx - x1) / aspect);
-            yy = rh &lt; 0 ? y1 - h : h + y1;
-          }
-        } else {
-          xx = x2;
-          h = rwa / aspect;
-          yy = rh &lt; 0 ? y1 - h : y1 + h;
-          if (yy &lt; 0) {
-            yy = 0;
-            w = Math.abs((yy - y1) * aspect);
-            xx = rw &lt; 0 ? x1 - w : w + x1;
-          } else if (yy &gt; boundy) {
-            yy = boundy;
-            w = Math.abs(yy - y1) * aspect;
-            xx = rw &lt; 0 ? x1 - w : w + x1;
-          }
-        }
-
-        // Magic %-)
-        if (xx &gt; x1) { // right side
-          if (xx - x1 &lt; min_x) {
-            xx = x1 + min_x;
-          } else if (xx - x1 &gt; max_x) {
-            xx = x1 + max_x;
-          }
-          if (yy &gt; y1) {
-            yy = y1 + (xx - x1) / aspect;
-          } else {
-            yy = y1 - (xx - x1) / aspect;
-          }
-        } else if (xx &lt; x1) { // left side
-          if (x1 - xx &lt; min_x) {
-            xx = x1 - min_x;
-          } else if (x1 - xx &gt; max_x) {
-            xx = x1 - max_x;
-          }
-          if (yy &gt; y1) {
-            yy = y1 + (x1 - xx) / aspect;
-          } else {
-            yy = y1 - (x1 - xx) / aspect;
-          }
-        }
-
-        if (xx &lt; 0) {
-          x1 -= xx;
-          xx = 0;
-        } else if (xx &gt; boundx) {
-          x1 -= xx - boundx;
-          xx = boundx;
-        }
-
-        if (yy &lt; 0) {
-          y1 -= yy;
-          yy = 0;
-        } else if (yy &gt; boundy) {
-          y1 -= yy - boundy;
-          yy = boundy;
-        }
-
-        return makeObj(flipCoords(x1, y1, xx, yy));
-      }
-      //}}}
-      function rebound(p) //{{{
-      {
-        if (p[0] &lt; 0) {
-          p[0] = 0;
-        }
-        if (p[1] &lt; 0) {
-          p[1] = 0;
-        }
-
-        if (p[0] &gt; boundx) {
-          p[0] = boundx;
-        }
-        if (p[1] &gt; 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 (x2 &lt; x1) {
-          xa = x2;
-          xb = x1;
-        }
-        if (y2 &lt; y1) {
-          ya = y2;
-          yb = y1;
-        }
-        return [xa, ya, xb, yb];
-      }
-      //}}}
-      function getRect() //{{{
-      {
-        var xsize = x2 - x1,
-            ysize = y2 - y1,
-            delta;
-
-        if (xlimit &amp;&amp; (Math.abs(xsize) &gt; xlimit)) {
-          x2 = (xsize &gt; 0) ? (x1 + xlimit) : (x1 - xlimit);
-        }
-        if (ylimit &amp;&amp; (Math.abs(ysize) &gt; ylimit)) {
-          y2 = (ysize &gt; 0) ? (y1 + ylimit) : (y1 - ylimit);
-        }
-
-        if (ymin / yscale &amp;&amp; (Math.abs(ysize) &lt; ymin / yscale)) {
-          y2 = (ysize &gt; 0) ? (y1 + ymin / yscale) : (y1 - ymin / yscale);
-        }
-        if (xmin / xscale &amp;&amp; (Math.abs(xsize) &lt; xmin / xscale)) {
-          x2 = (xsize &gt; 0) ? (x1 + xmin / xscale) : (x1 - xmin / xscale);
-        }
-
-        if (x1 &lt; 0) {
-          x2 -= x1;
-          x1 -= x1;
-        }
-        if (y1 &lt; 0) {
-          y2 -= y1;
-          y1 -= y1;
-        }
-        if (x2 &lt; 0) {
-          x1 -= x2;
-          x2 -= x2;
-        }
-        if (y2 &lt; 0) {
-          y1 -= y2;
-          y2 -= y2;
-        }
-        if (x2 &gt; boundx) {
-          delta = x2 - boundx;
-          x1 -= delta;
-          x2 -= delta;
-        }
-        if (y2 &gt; boundy) {
-          delta = y2 - boundy;
-          y1 -= delta;
-          y2 -= delta;
-        }
-        if (x1 &gt; boundx) {
-          delta = x1 - boundy;
-          y2 -= delta;
-          y1 -= delta;
-        }
-        if (y1 &gt; boundy) {
-          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
-      };
-    }());
-
-    //}}}
-    // Shade Module {{{
-    var Shade = (function() {
-      var enabled = false,
-          holder = $('&lt;div /&gt;').css({
-            position: 'absolute',
-            zIndex: 240,
-            opacity: 0
-          }),
-          shades = {
-            top: createShade(),
-            left: createShade().height(boundy),
-            right: createShade().height(boundy),
-            bottom: createShade()
-          };
-
-      function resizeShades(w,h) {
-        shades.left.css({ height: px(h) });
-        shades.right.css({ height: px(h) });
-      }
-      function updateAuto()
-      {
-        return updateShade(Coords.getFixed());
-      }
-      function updateShade(c)
-      {
-        shades.top.css({
-          left: px(c.x),
-          width: px(c.w),
-          height: px(c.y)
-        });
-        shades.bottom.css({
-          top: px(c.y2),
-          left: px(c.x),
-          width: px(c.w),
-          height: px(boundy-c.y2)
-        });
-        shades.right.css({
-          left: px(c.x2),
-          width: px(boundx-c.x2)
-        });
-        shades.left.css({
-          width: px(c.x)
-        });
-      }
-      function createShade() {
-        return $('&lt;div /&gt;').css({
-          position: 'absolute',
-          backgroundColor: options.shadeColor||options.bgColor
-        }).appendTo(holder);
-      }
-      function enableShade() {
-        if (!enabled) {
-          enabled = true;
-          holder.insertBefore($img);
-          updateAuto();
-          Selection.setBgOpacity(1,0,1);
-          $img2.hide();
-
-          setBgColor(options.shadeColor||options.bgColor,1);
-          if (Selection.isAwake())
-          {
-            setOpacity(options.bgOpacity,1);
-          }
-            else setOpacity(1,1);
-        }
-      }
-      function setBgColor(color,now) {
-        colorChangeMacro(getShades(),color,now);
-      }
-      function disableShade() {
-        if (enabled) {
-          holder.remove();
-          $img2.show();
-          enabled = false;
-          if (Selection.isAwake()) {
-            Selection.setBgOpacity(options.bgOpacity,1,1);
-          } else {
-            Selection.setBgOpacity(1,1,1);
-            Selection.disableHandles();
-          }
-          colorChangeMacro($div,0,1);
-        }
-      }
-      function setOpacity(opacity,now) {
-        if (enabled) {
-          if (options.bgFade &amp;&amp; !now) {
-            holder.animate({
-              opacity: 1-opacity
-            },{
-              queue: false,
-              duration: options.fadeTime
-            });
-          }
-          else holder.css({opacity:1-opacity});
-        }
-      }
-      function refreshAll() {
-        options.shade ? enableShade() : disableShade();
-        if (Selection.isAwake()) setOpacity(options.bgOpacity);
-      }
-      function getShades() {
-        return holder.children();
-      }
-
-      return {
-        update: updateAuto,
-        updateRaw: updateShade,
-        getShades: getShades,
-        setBgColor: setBgColor,
-        enable: enableShade,
-        disable: disableShade,
-        resize: resizeShades,
-        refresh: refreshAll,
-        opacity: setOpacity
-      };
-    }());
-    // }}}
-    // Selection Module {{{
-    var Selection = (function () {
-      var awake,
-          hdep = 370,
-          borders = {},
-          handle = {},
-          dragbar = {},
-          seehandles = false;
-
-      // Private Methods
-      function insertBorder(type) //{{{
-      {
-        var jq = $('&lt;div /&gt;').css({
-          position: 'absolute',
-          opacity: options.borderOpacity
-        }).addClass(cssClass(type));
-        $img_holder.append(jq);
-        return jq;
-      }
-      //}}}
-      function dragDiv(ord, zi) //{{{
-      {
-        var jq = $('&lt;div /&gt;').mousedown(createDragger(ord)).css({
-          cursor: ord + '-resize',
-          position: 'absolute',
-          zIndex: zi
-        }).addClass('ord-'+ord);
-
-        if (Touch.support) {
-          jq.bind('touchstart.jcrop', Touch.createDragger(ord));
-        }
-
-        $hdl_holder.append(jq);
-        return jq;
-      }
-      //}}}
-      function insertHandle(ord) //{{{
-      {
-        var hs = options.handleSize;
-        return dragDiv(ord, hdep++).css({
-          opacity: options.handleOpacity
-        }).width(hs).height(hs).addClass(cssClass('handle'));
-      }
-      //}}}
-      function insertDragbar(ord) //{{{
-      {
-        return dragDiv(ord, hdep++).addClass('jcrop-dragbar');
-      }
-      //}}}
-      function createDragbars(li) //{{{
-      {
-        var i;
-        for (i = 0; i &lt; li.length; i++) {
-          dragbar[li[i]] = insertDragbar(li[i]);
-        }
-      }
-      //}}}
-      function createBorders(li) //{{{
-      {
-        var cl,i;
-        for (i = 0; i &lt; li.length; i++) {
-          switch(li[i]){
-            case'n': cl='hline'; break;
-            case's': cl='hline bottom'; break;
-            case'e': cl='vline right'; break;
-            case'w': cl='vline'; break;
-          }
-          borders[li[i]] = insertBorder(cl);
-        }
-      }
-      //}}}
-      function createHandles(li) //{{{
-      {
-        var i;
-        for (i = 0; i &lt; li.length; i++) {
-          handle[li[i]] = insertHandle(li[i]);
-        }
-      }
-      //}}}
-      function moveto(x, y) //{{{
-      {
-        if (!options.shade) {
-          $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();
-      }
-      //}}}
-
-      // Internal Methods
-      function updateVisible(select) //{{{
-      {
-        if (awake) {
-          return update(select);
-        }
-      }
-      //}}}
-      function update(select) //{{{
-      {
-        var c = Coords.getFixed();
-
-        resize(c.w, c.h);
-        moveto(c.x, c.y);
-        if (options.shade) Shade.updateRaw(c);
-
-        awake || show();
-
-        if (select) {
-          options.onSelect.call(api, unscale(c));
-        } else {
-          options.onChange.call(api, unscale(c));
-        }
-      }
-      //}}}
-      function setBgOpacity(opacity,force,now) //{{{
-      {
-        if (!awake &amp;&amp; !force) return;
-        if (options.bgFade &amp;&amp; !now) {
-          $img.animate({
-            opacity: opacity
-          },{
-            queue: false,
-            duration: options.fadeTime
-          });
-        } else {
-          $img.css('opacity', opacity);
-        }
-      }
-      //}}}
-      function show() //{{{
-      {
-        $sel.show();
-
-        if (options.shade) Shade.opacity(bgopacity);
-          else setBgOpacity(bgopacity,true);
-
-        awake = true;
-      }
-      //}}}
-      function release() //{{{
-      {
-        disableHandles();
-        $sel.hide();
-
-        if (options.shade) Shade.opacity(1);
-          else setBgOpacity(1);
-
-        awake = false;
-        options.onRelease.call(api);
-      }
-      //}}}
-      function showHandles() //{{{
-      {
-        if (seehandles) {
-          $hdl_holder.show();
-        }
-      }
-      //}}}
-      function enableHandles() //{{{
-      {
-        seehandles = true;
-        if (options.allowResize) {
-          $hdl_holder.show();
-          return true;
-        }
-      }
-      //}}}
-      function disableHandles() //{{{
-      {
-        seehandles = false;
-        $hdl_holder.hide();
-      } 
-      //}}}
-      function animMode(v) //{{{
-      {
-        if (animating === v) {
-          disableHandles();
-        } else {
-          enableHandles();
-        }
-      } 
-      //}}}
-      function done() //{{{
-      {
-        animMode(false);
-        refresh();
-      } 
-      //}}}
-      // Insert draggable elements {{{
-      // Insert border divs for outline
-
-      if (options.dragEdges &amp;&amp; $.isArray(options.createDragbars))
-        createDragbars(options.createDragbars);
-
-      if ($.isArray(options.createHandles))
-        createHandles(options.createHandles);
-
-      if (options.drawBorders &amp;&amp; $.isArray(options.createBorders))
-        createBorders(options.createBorders);
-
-      //}}}
-
-      // This is a hack for iOS5 to support drag/move touch functionality
-      $(document).bind('touchstart.jcrop-ios',function(e) {
-        if ($(e.currentTarget).hasClass('jcrop-tracker')) e.stopPropagation();
-      });
-
-      var $track = newTracker().mousedown(createDragger('move')).css({
-        cursor: 'move',
-        position: 'absolute',
-        zIndex: 360
-      });
-
-      if (Touch.support) {
-        $track.bind('touchstart.jcrop', Touch.createDragger('move'));
-      }
-
-      $img_holder.append($track);
-      disableHandles();
-
-      return {
-        updateVisible: updateVisible,
-        update: update,
-        release: release,
-        refresh: refresh,
-        isAwake: function () {
-          return awake;
-        },
-        setCursor: function (cursor) {
-          $track.css('cursor', cursor);
-        },
-        enableHandles: enableHandles,
-        enableOnly: function () {
-          seehandles = true;
-        },
-        showHandles: showHandles,
-        disableHandles: disableHandles,
-        animMode: animMode,
-        setBgOpacity: setBgOpacity,
-        done: done
-      };
-    }());
-    
-    //}}}
-    // Tracker Module {{{
-    var Tracker = (function () {
-      var onMove = function () {},
-          onDone = function () {},
-          trackDoc = options.trackDocument;
-
-      function toFront() //{{{
-      {
-        $trk.css({
-          zIndex: 450
-        });
-        if (Touch.support) {
-          $(document)
-            .bind('touchmove.jcrop', trackTouchMove)
-            .bind('touchend.jcrop', trackTouchEnd);
-        }
-        if (trackDoc) {
-          $(document)
-            .bind('mousemove.jcrop',trackMove)
-            .bind('mouseup.jcrop',trackUp);
-        }
-      } 
-      //}}}
-      function toBack() //{{{
-      {
-        $trk.css({
-          zIndex: 290
-        });
-        $(document).unbind('.jcrop');
-      } 
-      //}}}
-      function trackMove(e) //{{{
-      {
-        onMove(mouseAbs(e));
-        return false;
-      } 
-      //}}}
-      function trackUp(e) //{{{
-      {
-        e.preventDefault();
-        e.stopPropagation();
-
-        if (btndown) {
-          btndown = false;
-
-          onDone(mouseAbs(e));
-
-          if (Selection.isAwake()) {
-            options.onSelect.call(api, unscale(Coords.getFixed()));
-          }
-
-          toBack();
-          onMove = function () {};
-          onDone = function () {};
-        }
-
-        return false;
-      }
-      //}}}
-      function activateHandlers(move, done) //{{{
-      {
-        btndown = true;
-        onMove = move;
-        onDone = done;
-        toFront();
-        return false;
-      }
-      //}}}
-      function trackTouchMove(e) //{{{
-      {
-        e.pageX = e.originalEvent.changedTouches[0].pageX;
-        e.pageY = e.originalEvent.changedTouches[0].pageY;
-        return trackMove(e);
-      }
-      //}}}
-      function trackTouchEnd(e) //{{{
-      {
-        e.pageX = e.originalEvent.changedTouches[0].pageX;
-        e.pageY = e.originalEvent.changedTouches[0].pageY;
-        return trackUp(e);
-      }
-      //}}}
-      function setCursor(t) //{{{
-      {
-        $trk.css('cursor', t);
-      }
-      //}}}
-
-      if (!trackDoc) {
-        $trk.mousemove(trackMove).mouseup(trackUp).mouseout(trackUp);
-      }
-
-      $img.before($trk);
-      return {
-        activateHandlers: activateHandlers,
-        setCursor: setCursor
-      };
-    }());
-    //}}}
-    // KeyManager Module {{{
-    var KeyManager = (function () {
-      var $keymgr = $('&lt;input type=&quot;radio&quot; /&gt;').css({
-        position: 'fixed',
-        left: '-120px',
-        width: '12px'
-      }),
-          $keywrap = $('&lt;div /&gt;').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(true);
-        }
-        e.preventDefault();
-        e.stopPropagation();
-      }
-      //}}}
-      function parseKey(e) //{{{
-      {
-        if (e.ctrlKey || e.metaKey) {
-          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:
-          if (options.allowSelect) Selection.release();
-          break;
-        case 9:
-          return true;
-        }
-
-        return false;
-      }
-      //}}}
-
-      if (options.keySupport) {
-        $keymgr.keydown(parseKey).blur(onBlur);
-        if (ie6mode || !options.fixedSupport) {
-          $keymgr.css({
-            position: 'absolute',
-            left: '-20px'
-          });
-          $keywrap.append($keymgr).insertBefore($img);
-        } else {
-          $keymgr.insertBefore($img);
-        }
-      }
-
-
-      return {
-        watchKeys: watchKeys
-      };
-    }());
-    //}}}
-    // }}}
-    // API methods {{{
-    function setClass(cname) //{{{
-    {
-      $div.removeClass().addClass(cssClass('holder')).addClass(cname);
-    }
-    //}}}
-    function animateTo(a, callback) //{{{
-    {
-      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),
-          c = Coords.getFixed(),
-          initcr = [c.x, c.y, c.x2, c.y2],
-          animat = initcr,
-          interv = options.animationDelay,
-          ix1 = animto[0] - initcr[0],
-          iy1 = animto[1] - initcr[1],
-          ix2 = animto[2] - initcr[2],
-          iy2 = animto[3] - initcr[3],
-          pcent = 0,
-          velocity = options.swingSpeed;
-
-      x = animat[0];
-      y = animat[1];
-      x2 = animat[2];
-      y2 = animat[3];
-
-      Selection.animMode(true);
-      var anim_timer;
-
-      function queueAnimator() {
-        window.setTimeout(animator, interv);
-      }
-      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 &gt;= 99.8) {
-            pcent = 100;
-          }
-          if (pcent &lt; 100) {
-            setSelectRaw(animat);
-            queueAnimator();
-          } else {
-            Selection.done();
-            if (typeof(callback) === 'function') {
-              callback.call(api);
-            }
-          }
-        };
-      }());
-      queueAnimator();
-    }
-    //}}}
-    function setSelect(rect) //{{{
-    {
-      setSelectRaw([rect[0] / xscale, rect[1] / yscale, rect[2] / xscale, rect[3] / yscale]);
-      options.onSelect.call(api, unscale(Coords.getFixed()));
-      Selection.enableHandles();
-    }
-    //}}}
-    function setSelectRaw(l) //{{{
-    {
-      Coords.setPressed([l[0], l[1]]);
-      Coords.setCurrent([l[2], l[3]]);
-      Selection.update();
-    }
-    //}}}
-    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();
-      $(obj).removeData('Jcrop');
-    }
-    //}}}
-    function setImage(src, callback) //{{{
-    {
-      Selection.release();
-      disableCrop();
-      var img = new Image();
-      img.onload = function () {
-        var iw = img.width;
-        var ih = img.height;
-        var bw = options.boxWidth;
-        var bh = options.boxHeight;
-        $img.width(iw).height(ih);
-        $img.attr('src', src);
-        $img2.attr('src', src);
-        presize($img, bw, bh);
-        boundx = $img.width();
-        boundy = $img.height();
-        $img2.width(boundx).height(boundy);
-        $trk.width(boundx + (bound * 2)).height(boundy + (bound * 2));
-        $div.width(boundx).height(boundy);
-        Shade.resize(boundx,boundy);
-        enableCrop();
-
-        if (typeof(callback) === 'function') {
-          callback.call(api);
-        }
-      };
-      img.src = src;
-    }
-    //}}}
-    function colorChangeMacro($obj,color,now) {
-      var mycolor = color || options.bgColor;
-      if (options.bgFade &amp;&amp; supportsColorFade() &amp;&amp; options.fadeTime &amp;&amp; !now) {
-        $obj.animate({
-          backgroundColor: mycolor
-        }, {
-          queue: false,
-          duration: options.fadeTime
-        });
-      } else {
-        $obj.css('backgroundColor', mycolor);
-      }
-    }
-    function interfaceUpdate(alt) //{{{
-    // This method tweaks the interface based on options object.
-    // Called when options are changed and at end of initialization.
-    {
-      if (options.allowResize) {
-        if (alt) {
-          Selection.enableOnly();
-        } else {
-          Selection.enableHandles();
-        }
-      } else {
-        Selection.disableHandles();
-      }
-
-      Tracker.setCursor(options.allowSelect ? 'crosshair' : 'default');
-      Selection.setCursor(options.allowMove ? 'move' : 'default');
-
-      if (options.hasOwnProperty('trueSize')) {
-        xscale = options.trueSize[0] / boundx;
-        yscale = options.trueSize[1] / boundy;
-      }
-
-      if (options.hasOwnProperty('setSelect')) {
-        setSelect(options.setSelect);
-        Selection.done();
-        delete(options.setSelect);
-      }
-
-      Shade.refresh();
-
-      if (options.bgColor != bgcolor) {
-        colorChangeMacro(
-          options.shade? Shade.getShades(): $div,
-          options.shade?
-            (options.shadeColor || options.bgColor):
-            options.bgColor
-        );
-        bgcolor = options.bgColor;
-      }
-
-      if (bgopacity != options.bgOpacity) {
-        bgopacity = options.bgOpacity;
-        if (options.shade) Shade.refresh();
-          else Selection.setBgOpacity(bgopacity);
-      }
-
-      xlimit = options.maxSize[0] || 0;
-      ylimit = options.maxSize[1] || 0;
-      xmin = options.minSize[0] || 0;
-      ymin = options.minSize[1] || 0;
-
-      if (options.hasOwnProperty('outerImage')) {
-        $img.attr('src', options.outerImage);
-        delete(options.outerImage);
-      }
-
-      Selection.refresh();
-    }
-    //}}}
-    //}}}
-
-    if (Touch.support) $trk.bind('touchstart.jcrop', Touch.newSelection);
-
-    $hdl_holder.hide();
-    interfaceUpdate(true);
-
-    var api = {
-      setImage: setImage,
-      animateTo: animateTo,
-      setSelect: setSelect,
-      setOptions: setOptionsNew,
-      tellSelect: tellSelect,
-      tellScaled: tellScaled,
-      setClass: setClass,
-
-      disable: disableCrop,
-      enable: enableCrop,
-      cancel: cancelCrop,
-      release: Selection.release,
-      destroy: destroy,
-
-      focus: KeyManager.watchKeys,
-
-      getBounds: function () {
-        return [boundx * xscale, boundy * yscale];
-      },
-      getWidgetSize: function () {
-        return [boundx, boundy];
-      },
-      getScaleFactor: function () {
-        return [xscale, yscale];
-      },
-      getOptions: function() {
-        // careful: internal values are returned
-        return options;
-      },
-
-      ui: {
-        holder: $div,
-        selection: $sel
-      }
-    };
-
-    if ($.browser.msie)
-      $div.bind('selectstart', function () { return false; });
-
-    $origimg.data('Jcrop', api);
-    return api;
-  };
-  $.fn.Jcrop = function (options, callback) //{{{
-  {
-    var api;
-    // Iterate over each object, attach Jcrop
-    this.each(function () {
-      // If we've already attached to this object
-      if ($(this).data('Jcrop')) {
-        // The API can be requested this way (undocumented)
-        if (options === 'api') return $(this).data('Jcrop');
-        // Otherwise, we just reset the options...
-        else $(this).data('Jcrop').setOptions(options);
-      }
-      // If we haven't been attached, preload and attach
-      else {
-        if (this.tagName == 'IMG')
-          $.Jcrop.Loader(this,function(){
-            $(this).css({display:'block',visibility:'hidden'});
-            api = $.Jcrop(this, options);
-            if ($.isFunction(callback)) callback.call(api);
-          });
-        else {
-          $(this).css({display:'block',visibility:'hidden'});
-          api = $.Jcrop(this, options);
-          if ($.isFunction(callback)) callback.call(api);
-        }
-      }
-    });
-
-    // Return &quot;this&quot; so the object is chainable (jQuery-style)
-    return this;
-  };
-  //}}}
-  // $.Jcrop.Loader - basic image loader {{{
-
-  $.Jcrop.Loader = function(imgobj,success,error){
-    var $img = $(imgobj), img = $img[0];
-
-    function completeCheck(){
-      if (img.complete) {
-        $img.unbind('.jcloader');
-        if ($.isFunction(success)) success.call(img);
-      }
-      else window.setTimeout(completeCheck,50);
-    }
-
-    $img
-      .bind('load.jcloader',completeCheck)
-      .bind('error.jcloader',function(e){
-        $img.unbind('.jcloader');
-        if ($.isFunction(error)) error.call(img);
-      });
-
-    if (img.complete &amp;&amp; $.isFunction(success)){
-      $img.unbind('.jcloader');
-      success.call(img);
-    }
-  };
-
-  //}}}
-  // Global Defaults {{{
-  $.Jcrop.defaults = {
-
-    // Basic Settings
-    allowSelect: true,
-    allowMove: true,
-    allowResize: true,
-
-    trackDocument: true,
-
-    // Styling Options
-    baseClass: 'jcrop',
-    addClass: null,
-    bgColor: 'black',
-    bgOpacity: 0.6,
-    bgFade: false,
-    borderOpacity: 0.4,
-    handleOpacity: 0.5,
-    handleSize: 7,
-
-    aspectRatio: 0,
-    keySupport: true,
-    createHandles: ['n','s','e','w','nw','ne','se','sw'],
-    createDragbars: ['n','s','e','w'],
-    createBorders: ['n','s','e','w'],
-    drawBorders: true,
-    dragEdges: true,
-    fixedSupport: true,
-    touchSupport: null,
-
-    shade: null,
-
-    boxWidth: 0,
-    boxHeight: 0,
-    boundary: 2,
-    fadeTime: 400,
-    animationDelay: 20,
-    swingSpeed: 3,
-
-    minSelect: [0, 0],
-    maxSize: [0, 0],
-    minSize: [0, 0],
-
-    // Callbacks / Event Handlers
-    onChange: function () {},
-    onSelect: function () {},
-    onDblClick: function () {},
-    onRelease: function () {}
-  };
-
-  // }}}
-}(jQuery));
</del></span></pre></div>
<a id="trunkwpincludesscriptloaderphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-includes/script-loader.php (21647 => 21648)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-includes/script-loader.php        2012-08-28 18:03:12 UTC (rev 21647)
+++ trunk/wp-includes/script-loader.php        2012-08-28 18:03:52 UTC (rev 21648)
</span><span class="lines">@@ -181,7 +181,7 @@
</span><span class="cx">                         'closeImage' =&gt; includes_url('js/thickbox/tb-close.png')
</span><span class="cx">         ) );
</span><span class="cx"> 
</span><del>-        $scripts-&gt;add( 'jcrop', &quot;/wp-includes/js/jcrop/jquery.Jcrop$suffix.js&quot;, array('jquery'), '0.9.10');
</del><ins>+        $scripts-&gt;add( 'jcrop', &quot;/wp-includes/js/jcrop/jquery.Jcrop.min.js&quot;, array('jquery'), '0.9.10');
</ins><span class="cx"> 
</span><span class="cx">         $scripts-&gt;add( 'swfobject', &quot;/wp-includes/js/swfobject.js&quot;, array(), '2.2-20120417');
</span><span class="cx"> 
</span><span class="lines">@@ -482,7 +482,7 @@
</span><span class="cx">         $styles-&gt;add( 'install', &quot;/wp-admin/css/install$suffix.css&quot; );
</span><span class="cx">         $styles-&gt;add( 'thickbox', '/wp-includes/js/thickbox/thickbox.css' );
</span><span class="cx">         $styles-&gt;add( 'farbtastic', '/wp-admin/css/farbtastic.css', array(), '1.3u1' );
</span><del>-        $styles-&gt;add( 'jcrop', &quot;/wp-includes/js/jcrop/jquery.Jcrop$suffix.css&quot;, array(), '0.9.10' );
</del><ins>+        $styles-&gt;add( 'jcrop', &quot;/wp-includes/js/jcrop/jquery.Jcrop.min.css&quot;, array(), '0.9.10' );
</ins><span class="cx">         $styles-&gt;add( 'imgareaselect', '/wp-includes/js/imgareaselect/imgareaselect.css', array(), '0.9.8' );
</span><span class="cx">         $styles-&gt;add( 'admin-bar', &quot;/wp-includes/css/admin-bar$suffix.css&quot; );
</span><span class="cx">         $styles-&gt;add( 'wp-jquery-ui-dialog', &quot;/wp-includes/css/jquery-ui-dialog$suffix.css&quot; );
</span></span></pre>
</div>
</div>

</body>
</html>