$( function() {
    $.fn.ajaxData = function(options) {
        defaults = {
            action : '',
            method : 'POST',
            params: {},
            autoSubmit: true,
            success: function() {}
        };
        options = $.extend(defaults, options || {});

        var formId = this.attr('id') + "Form";
        $('#' + formId).remove();
        
        var form = $(
                '<form id="' + formId + '"'
                    + ' method="' + options.method + '"'
                    + ' action="' + options.action + '"'
                    + '></form>'
            ).css({
                padding: 0,
                margin: 0
            });
        
        $.each(options.params, function(key, value) {
            $(form).append($(
                '<input type="hidden" name="' + key + '" value="' + value + '" />'
            ));
        });
       
        $(form).ajaxForm( {
            url : options.action,
            type : options.method,
            dataType : 'json',
            beforeSubmit : function(a, f, o) {
            },
            success : function(data) {
                options.success(data);
            }
        });
        
        this.append(form);
        
        //alert(this.html());
        if (options.autoSubmit) {
            $(form).submit();
        }
    }
});

