function pickerListener(ctx, pickerElement) {
        return function(evt) {
            evt = evt || window.event;
            var mouse = mousePosition(evt),
                width = pickerElement.offsetWidth,
                height = pickerElement.offsetHeight;

            ctx.s = mouse.x / width;
            ctx.v = (height - mouse.y) / height;
            var c = hsv2rgb(ctx);
            ctx.callback && ctx.callback(c.hex, {
                h: ctx.h - hueOffset,
                s: ctx.s,
                v: ctx.v
            }, {
                r: c.r,
                g: c.g,
                b: c.b
            }, mouse);
        }
    }
Return click event handler for the picker.
Calls ctx.callback if provided.