1(function($) {
2          
3    $.fn.menuAim = function(opts) {
4        this.each(function() {
5            init.call(this, opts);
6        });
7          
8        return this;
9    };
10          
11    function init(opts) {
12        var $menu = $(this),
13            activeRow = null,
14            mouseLocs = [],
15            lastDelayLoc = null,
16            timeoutId = null,
17            options = $.extend({
18                rowSelector: "> li",
19                submenuSelector: "*",
20                submenuDirection: "right",
21                tolerance: 75,
22                enter: $.noop,
23                exit: $.noop,
24                activate: $.noop,
25                deactivate: $.noop,
26                exitMenu: $.noop
27            }, opts);
28          
29        var MOUSE_LOCS_TRACKED = 3,
30            DELAY = 300;
31          
32        var mousemoveDocument = function(e) {
33                mouseLocs.push({x: e.pageX, y: e.pageY});
34          
35                if (mouseLocs.length > MOUSE_LOCS_TRACKED) {
36                    mouseLocs.shift();
37                }
38            };
39          
40        var mouseleaveMenu = function() {
...
</html>