/*
 * @(#)jQuery.CEA.TablePage.js
 *       
 * 系统名称：东航电子商务国内B2C系统
 * 版本号：1.0
 * 
 * Copyright (c)  TravelSky
 * All Rights Reserved.
 * 
 * 作者：bjiang
 * 创建日期：Nov 11, 2009
 * 
 * 功能描述：页面分页
 *    
 * 修改人：
 * 修改日期：
 * 修改原因：
 * 
 * 
 */
 
 ;
(function($)
{
    $.fn.TablePage = function(options)
    {
        var defaultop = {
            pagesize:10,
            defaultpage:0,
            firsttr:0,
            hidetr:null
        };
        var config = $.extend(defaultop, options);
        var $this = this;
        var nowpage = null;
        var size = null;
        var $trlist = null;
        var $button=$('<div style="text-align:right;"><div style="height:20px"></div><span name="sum"></span>&nbsp;<a href="javascript:" name="top">[首　页]</a>&nbsp;<a href="javascript:" name="previous">[上一页]</a>&nbsp;<select name="pageto"></select>&nbsp;<a href="javascript:" name="next">[下一页]</a>&nbsp;<a href="javascript:" name="end">[尾　页]</a></div>');
        var getlist = function()
        {
            $trlist = $($this.selector + ' > tbody > tr')
            size = Math.ceil($trlist.length / config.pagesize); 
        }
        var showpage = function(i)
        {
            i = i<0?0:i;
            i = i>=size?size-1:i;
            if(i==nowpage)
            {
                return;
            }
            $trlist.filter(':visible').hide();
            nowpage = i;
            var gt = nowpage===0 ? '':':gt('+(nowpage * config.pagesize-1)+')';
            $trlist.filter(gt+':lt('+config.pagesize+')').show();
            if(config.hidetr!=null)
            {
                $this.filter(config.hidetr).hide();
            }
            $button.find('[name="pageto"]').val(nowpage);
            $button.find('>[name!="pageto"][name!="sum"]').css('color','blue');;
            if(nowpage == 0)
            {
                $button.find('[name="top"]').css('color','#989898');
                $button.find('[name="previous"]').css('color','#989898');
            }
            if(nowpage == size-1)
            {
                $button.find('[name="next"]').css('color','#989898');
                $button.find('[name="end"]').css('color','#989898');
            }
        }
        var addbutton = function()
        {
        	if(config.hidetr===null)
        	{
        		$button.find('[name="sum"]').text('共'+$trlist.length+'条记录,'+size+'页').css('color','#989898');
        	}
            $button.find('[name="top"]').click(function()
            {
                showpage(0);
            });
            $button.find('[name="previous"]').click(function()
            {
                showpage(nowpage-1);
            });
            $button.find('[name="next"]').click(function()
            {
                showpage(nowpage+1);
            });
            $button.find('[name="end"]').click(function()
            {
                showpage(size-1);
            });
            var $pageto = $button.find('[name="pageto"]');
            for(var i=0; i<size;i++)
            {
                var page = Number(i+1);
                $pageto.append('<option value="'+i+'">'+page+'</option>');    
            }
            
            $pageto.change(function()
            {
                showpage(Number(this.value));
            });
            $this.after($button);
        }
        var init = function()
        {
            config.defaultpage = Number(config.defaultpage);
            getlist();
            if(size<=1)
            {
                return 1;
            }
            addbutton();
            showpage(config.defaultpage);
            return size;
        }
        return init();
    }
})(jQuery);
