(function($) {

    $.fn.jqfun_paginate = function(options) {
        options = $.extend({
            pages: 10,
                page: 1,
                previous_text: "anterior",
                next_text: "proxima",
                first_text: "primeira",
                last_text: "ultima",
                click: false
        }, options);

            if(!options.page)
            {
                $(this).html("");
                return;
                //options.page = 1;
            }
            
            // Calcula qual pagina sera a primeira
            start = options.page - Math.floor(options.visible / 2);
            
            if(start <= 0) start = 1;
            if((options.pages - start) <  options.visible) start = options.pages - options.visible + 1;

            if(options.pages < options.visible)
            {
                start = 1;
                options.visible = options.pages;
            }
            
            var left_buttons = "";
            if (options.page <= 1)
                left_buttons = "pagination-disabled-button"

            var right_buttons = "";
            if (options.page >= options.pages)
                right_buttons = "pagination-disabled-button"

            //***********************************
            //*  Cria DHTML                     *
            //***********************************

            //Remove conteudo
            $(this).html("");

            // Previous Button
            $(this).append("<div style='' class='pagination-first-button " + left_buttons + "'><span class='pagBgLeft'></span>" + options.first_text + "</div>");

            // Previous Button
            $(this).append("<div style='' class='pagination-previous-button " + left_buttons + "'><span class='pagBgLeft'></span>" + options.previous_text + "</div>");

            var vcount=1;

            //Cria as paginas
            for(var count = start;count <= options.pages;count++,vcount++)
            {
                if(vcount > options.visible)
                    break;
                
                if(count == options.page)
                    $(this).append("<div class='pagination-selected-button' style=''>" + count + "</div>");
                else
                    $(this).append("<div class='pagination-button' style=''>" + count + "</div>");
            }

            //Next Button
            $(this).append("<div style='' class='pagination-next-button " + right_buttons + "'><span class='pagBgRight'></span>" + options.next_text + "</div>");

            //Next Button
            $(this).append("<div style='' class='pagination-last-button " + right_buttons + "'><span class='pagBgRight'></span>" + options.last_text + "</div>");

            //***********************************
            //*  Eventos                        *
            //***********************************

            $(".pagination-first-button").click(function(){
               if(options.click)
               {
                   if(options.page>1)
                        options.click(1);
               }
            });

            $(".pagination-previous-button").click(function(){
               if(options.click)
               {
                   if(options.page>1)
                        options.click(options.page - 1);
               }
            });

            $(".pagination-button").click(function(){
               if(options.click)
                   options.click($(this).html());
            });

            $(".pagination-next-button").click(function(){
               if(options.click)
               {
                   if(options.page<options.pages)
                        options.click(options.page + 1);
               }
            });

            $(".pagination-last-button").click(function(){
               if(options.click)
               {
                   if(options.page<options.pages)
                        options.click(options.pages);
               }
            });
    };
    
})(jQuery);
