/*
    Need to add multi auto complete functionality
*/

(function( $ ){
   
    $.fn.extend({
        
        pageable: function (options) {
            
            
            var defaults = {per_page: 5};
            var options = $.extend(defaults, options);
            
            return this.each(function ()
            {
                el = $(this); //shorthand
                
                $(".page").children().unwrap();
                $("#page_list").remove();
                $(".pageable_holder").removeClass("pageable_holder");
                
                number_of_children = el.children(options.children).length;
                
                if (number_of_children < 2) { return false; }
                number_of_pages = Math.ceil(number_of_children/(options.per_page));
                console.log(number_of_children);
                console.log(number_of_pages);
                el.addClass("pageable_holder");
                cnt = 1;
                page_cnt = 1;
                
                el.children(options.children).each(function ()
                {
                                        
                    $(this).addClass("wrappable");
                    
                    
                    if (cnt == options.per_page || $(this).next(options.children).length == 0 )
                    {
                        $(".wrappable").wrapAll("<div class='page' page_count='"+page_cnt+"'></div>");
                        $(".wrappable").removeClass("wrappable");

                        cnt = 1;
                        page_cnt += 1;
                    }
                    else
                    {
                        cnt +=1;
                    }
                });
                
                el.children(".page").not(":first").hide();
                el.show("slow");
                
                el.append("<div id='page_list'> ");

                $("#page_list").generate_pages(number_of_pages, 1);
            });
        },
        
        generate_pages: function (max_pages, current_page)
        {
            current_page = parseInt(current_page);
            
            
            $("#page_list").children().remove();
            
            for (i=1; i<=2; i++)
            {
                var prev_page = current_page-i;
                
                if (prev_page > 0)
                {
                    $("#page_list").prepend("<a trg='"+prev_page+"' href='#'>"+prev_page+"</a>");
                }
            }
            
            $("#page_list").append("<span class='current'>"+current_page+"</span>");
            
            for (i=1; i<=2; i++)
            {

                var next_page = current_page+i;
                
                if (next_page <= max_pages)
                {
                    $("#page_list").append("<a trg='"+next_page+"' href='#'>"+next_page+"</a>");
                } else { }
            }
            
            $("#page_list").find("a").bind("click", {max_pages: max_pages}, function (e)
            {
               e.preventDefault();
               $(".page").hide();
               $(".page[page_count='"+$(this).attr("trg")+"']").show();
               $("#page_list").generate_pages(e.data.max_pages, $(this).attr("trg"));
               return false;
            });
            
            $("#page_list").after("<div style='clear: both;'></div>");
        }
    });
    
}) (jQuery);
