/*
 * jqDnR - Minimalistic Drag'n'Resize for jQuery.
 *
 * Copyright (c) 2007 Brice Burgess <bhb@iceburg.net>, http://www.iceburg.net
 * Licensed under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 * 
 * $Version: 2007.08.19 +r2
 */

(function($){
	var ps = {}
	$.fn.jqDrag=function(h,opts){
        ps = $.extend({
            opacity: .7,
            onMove: function() { }
        }, opts);
		return i(this,h,'d');
	};
	$.fn.jqResize=function(h){
		return i(this,h,'r');
	};
	$.jqDnR={
		dnr:{},e:0,
		drag:function(v){
			E.css({ cursor: 'move' });
			if(M.k == 'd')E.css({left:M.X+v.pageX-M.pX,top:M.Y+v.pageY-M.pY});
			else E.css({width:Math.max(v.pageX-M.pX+M.W,0),height:Math.max(v.pageY-M.pY+M.H,0)});
			ps.onMove();
			return false;
		},
		stop:function(){
			E.css({ cursor: 'default' });
			E.css('opacity',M.o);
			$().unbind('mousemove',J.drag).unbind('mouseup',J.stop);
		}
	};
	var J=$.jqDnR,M=J.dnr,E=J.e,i=function(e,h,k){
		return e.each(function(){
			h=(h)?$(h,e):e;
			h.bind('mousedown',{e:e,k:k},function(v){
				var d=v.data,p={};E=d.e;
				// attempt utilization of dimensions plugin to fix IE issues
				if(E.css('position') != 'relative'){
					try{E.position(p);}catch(e){}
				}
				M={X:p.left||f('left')||0,Y:p.top||f('top')||0,W:f('width')||E[0].scrollWidth||0,H:f('height')||E[0].scrollHeight||0,pX:v.pageX,pY:v.pageY,k:d.k,o:E.css('opacity')};
				E.css({opacity:ps.opacity});
				$().mousemove($.jqDnR.drag).mouseup($.jqDnR.stop);
				return false;
			});
		});
	},
	f=function(k){return parseInt(E.css(k))||false;};
})(jQuery);

/*
//Resize	范例:改变大小,'#ext1'要改变大小的DIV,'.jqResize'用于获取鼠标的部件
$().ready(function() {
  $('#ex1').jqResize('.jqResize');
});
//Drag	范例:拖动,#ex2拖动的DIV,#ex2b半透明拖动的DIV
$().ready(function() {
  $('#ex2').jqDrag();
  $('#ex2b').css('opacity',0.6).jqDrag();
});
//Resize + Drag  范例:拖动+改变大小,#ex3拖动或改变大小的DIV,.jqDrag用于拖动的鼠标部件,.jqResize用于改变大小的鼠标部件
$().ready(function() {
  $('#ex3').jqDrag('.jqDrag').jqResize('.jqResize');
});
*/
