/** PAGER PLUGIN **/


    /**
     * $ is an alias to jQuery object
     *
     */
     $.fn.pager = function(clas, options) {
    
    /*var lang = new Object();

        var lang = {
            pager:{
                prevText: '&laquo; anterior',
                nextText: 'siguiente &raquo;',
                prevP: 'p&aacute;rrafo anterior',   
                nextP: 'p&aacute;rrafo siguiente',
                gotoP: 'salte al p&aacute;rrafo'
            }
        };
     */
        
        var settings = {        
            navId: 'pagednav',
            navClass: 'pagednav',
            navAttach: 'prepend',
            highlightClass: 'highlight',
            prevText: lang.pager.prevText,
            nextText: lang.pager.nextText,
            linkText: null,
            linkWrap: null,
            height: null
        };
        if(options) $.extend(settings, options);
        
            
        return this.each( function () {
            
            var me = $(this);
            var size;
            var i = 0;      
            var navid = '#'+settings.navId;
            
            function init () {
                size = $(clas, me).not(navid).size();
                if(settings.height == null) {           
                    settings.height = getHighest();
                }
                if(size > 1) {
                    makeNav();
                    show();
                    highlight();
                }           
                sizePanel();
                if(settings.linkWrap != null) {
                    linkWrap();
                }
            };
            function makeNav () {       
                //var str = '<div id="'+settings.navId+'" class="'+settings.navClass+'">';
                var str = '';
                str += '<ul id="'+settings.navId+'" class="'+settings.navClass+'">';
                str += '<li class="prev"><a href="#" rel="prev" title="'+lang.pager.prevP+'" class="fir">'+lang.pager.prevText+'<span>&nbsp;</span></a></li>';
                for(var i = 0; i < size; i++) {
                    var j = i+1;
                    str += '<li><a href="#" title="'+lang.pager.gotoP+' '+j+'" rel="'+j+'">';
                    str += (settings.linkText == null) ? j : settings.linkText[j-1];                
                    str += '</a></li>';
                }
                str += '<li class="next"><a href="#" rel="next" title="'+lang.pager.nextP+'" class="fir">'+lang.pager.nextText+'<span>&nbsp;</span></a></li>';
                str += '</ul>';
                //str += '</div>';
                switch (settings.navAttach) {       
                    case 'before':
                        $(me).before(str);
                        break;
                    case 'after':       
                        $(me).after(str);
                        break;
                    case 'prepend':
                        $(me).prepend(str);
                        break;
                    default:
                        $(me).append(str);
                        break;
                }
            };
            function show () {
                $(me).find(clas).not(navid).hide();
                var show = $(me).find(clas).not(navid).get(i);
                $(show).show();
            };      
            function highlight () {
                $(me).find(navid).find('a').removeClass(settings.highlightClass);
                var show = $(me).find(navid).find('a').get(i+1);            
                $(show).addClass(settings.highlightClass);
            };
    
            function sizePanel () {
                if($.browser.msie) {
                    $(me).find(clas).not(navid).css( {
                        height: settings.height
                    }); 
                } else {
                    $(me).find(clas).not(navid).css( {
                        minHeight: settings.height
                    });
                }
            };
            function getHighest () {
                var highest = 0;
                $(me).find(clas).not(navid).each(function () {
                    
                    if(this.offsetHeight > highest) {
                        highest = this.offsetHeight;
                    }
                });
                highest = highest + "px";
                return highest;
            };
            function getNavHeight () {
                var nav = $(navid).get(0);
                return nav.offsetHeight;
            };
            function linkWrap () {
                $(me).find(navid).find("a").wrap(settings.linkWrap);
            };
            init();
            $(this).find(navid).find("a").click(function () {
    
                if($(this).attr('rel') == 'next') {
                    if(i + 1 < size) {
                        i = i+1;
                    }
                } else if($(this).attr('rel') == 'prev') { 
                    if(i > 0) { 
                        i = i-1;
                    }
                } else {        
                    var j = $(this).attr('rel');    
                    i = j-1;        
                }
                show();
                highlight();
                return false;
            });
        }); 
    };