js/jquery.event.drag-2.3.0.js
function( elem, dd ){
                var offset = (elem && elem.ownerDocument) 
                    ? $( elem )[ dd.relative ? "position" : "offset" ]() || { top:0, left:0 }
                    : { top: 0, left: 0 };
                return {
                    drag: elem,
                    callback: new drag.callback(),
                    droppable: [],
                    offset: offset
                };
            }
function( elem, dd ){
                var offset = (elem && elem.ownerDocument) 
                    ? $( elem )[ dd.relative ? "position" : "offset" ]() || { top:0, left:0 }
                    : { top: 0, left: 0 };
                return {
                    drag: elem,
                    callback: new drag.callback(),
                    droppable: [],
                    offset: offset
                };
            }
function ( elem , dd ) { var offset = ( elem && elem . ownerDocument ) ? $ ( elem ) [ dd . relative ? "position" : "offset" ] ( ) || { top : 0 , left : 0 } : { top : 0 , left : 0 } ; return { drag : elem , callback : new drag . callback ( ) , droppable : [ ] , offset : offset } ; }
returns an interaction object
returns an interaction object