$.fn.addConfigMenu = function(options, callback) {
    var dropdown = $(this).find('#widget-dropdown');

    var target = $('<span class="gear-img-container fa fa-cog fa-lg"></span>')
    .height(18).width(18);
    target.appendTo(dropdown);
    var ul = $('<ul class="closed widget-gear-menu"></ul>').appendTo(dropdown);

    for (var key in options){
        $('<div class="widget-gear-option" value="'+key+'">'+options[key]+'</div>').
        appendTo(ul).
        click( function(element) {
            return callback(element);
        });
    }


    // Handle opening and closing of the menu
    target.on('click', function(){
        if( ul.hasClass('open') ){
            ul.addClass('closed');
            ul.removeClass('open');
        } else {
            ul.removeClass('closed');
            ul.addClass('open');
        }
        
    });

    return dropdown;

};
The product receives input or data, but it does
        not validate or incorrectly validates that the input has the
        properties that are required to process the data safely and
        correctly.