code: function (clickX, clickY, cmenu, e) {
              var x = clickX + cmenu.offsetX;
              var y = clickY + cmenu.offsetY;
              var h = $(cmenu.menu).height();
              var w = $(cmenu.menu).width();
              var dir = cmenu.direction;
              if (cmenu.constrainToScreen) {
                  var $w = $(window);
                  var wh = $w.height();
                  var ww = $w.width();
                  var st = $w.scrollTop();
                  var maxTop = y - st - 5;
                  var maxBottom = wh + st - y - 5;
                  if (h > maxBottom) {
                      if (h > maxTop) {
                          if (maxTop > maxBottom) {
                              // scrollable en haut
                              h = maxTop;
                              cmenu._div.css('height', h + 'px').css('overflow-y', 'scroll');
                              y -= h;
                          }
                          else {
                              // scrollable en bas
                              h = maxBottom;
                              cmenu._div.css('height', h + 'px').css('overflow-y', 'scroll');
                          }
                      }
                      else {
                          // menu ok en haut
                          y -= h;
                      }
                  }
                  else {
                      // menu ok en bas
                  }
  
                  var maxRight = x + w - $w.scrollLeft();
                  if (maxRight > ww) {
                      x -= (maxRight - ww);
                  }
              }
              return {'x': x, 'y': y};
          }
docs: Find the position where the menu should appear, given an x,y of the click event