(function($) {
    $.fn.rt_pagination = function(options) {

        var defaults = {
            target: "",
            rpc: "",
            loading_target: "",
            loading: '<div class="loading"></div>',
            cluetip: false
        };
        
        var options = $.extend(defaults, options);
        
        function paginate() {
            query_string_pos_begin = $(this).attr('href').indexOf('?');
            data = $(this).attr('href').substring(query_string_pos_begin + 1);
            
            if ( (options.loading.length > 0) && (options.loading_target.length > 0) ) {
                $(options.loading_target).html(options.loading);
            }

            if (options.cluetip == true) {
                $(document).trigger('hideCluetip'); 
            }
            
            $.ajax({
                type: "POST",
                url: options.rpc,
                data: data,
                success: function(text) {
                    $("#" + options.target).html(text);
                }
            });
            
            return false;
        }
        
        if ($("#" + options.target).length > 0) {
            return this.each(function() {
                $(this).bind('click', paginate);
            });
        }
    };
})(jQuery);