 /**
 * JspCeo (v2.0)  -  Class: jqExtend.js   for jQuery extend.
 *
 *
 *
 * =============================================================
 * -------------------------
 * drag:
 * -------------------------
 * exp: dragObj.drag(obj);
 * eg.: $("#dialog").drag(".dialogTitle");
 *
 *
 * -------------------------
 * resize:
 * -------------------------
 * exp: resizeObj.resize(obj);
 * eg.: $("#dialog").resize("#rbJiao");
 *
 *
 * =============================================================
 * 
 *
 *
 * jqModal - Minimalist Modaling with 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.17 +r11
 * plug: drag, resize
 *
**/

(function($){
    $.fn.drag=function(h){
        return i(this,h,'d');
    };
    $.fn.resize=function(h){
        return i(this,h,'r');
    };
    $.jqDnR={
        dnr:{},
        e:0,
        drag:function(v){
             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)});
             return false;
        },
        stop:function(){
            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:0.9
                });
                $().mousemove($.jqDnR.drag).mouseup($.jqDnR.stop);
                return false;
            });
        });
    },
    f=function(k){
        return parseInt(E.css(k)) || false;
    };
})(jQuery);
