$.fn.pager = function(clas, options) {
	
	var settings = {
		numP: 5,		
		navId: 'nav',
		navClass: 'nav',
		navAttach: 'append',
		highlightClass: 'highlight',
		prevText: '&laquo;',
		nextText: '&raquo;',
		linkText: null,
		linkWrap: null,
		height: 1
	}
	if(options) $.extend(settings, options);
	
		
	return this.each( function () {
		
		var me = $(this);
		var size;
	  	var i = 0;		
		var navid = '#'+settings.navId;
		var nump = settings.numP;
		
		function init () {
			size = $(clas, me).not(navid).size();
			/*if(settings.height == null) {			
				settings.height = getHighest();
			}*/
			if(size > nump) {
				makeNav();
				show();
				highlight();
			}			
			/*sizePanel();*/
			if(settings.linkWrap != null) {
				linkWrap();
			}
		}
		function makeNav () {
			var moreP = nump-(size%nump);
			/*while(moreP>10){
				nump=nump*1,5;
				moreP = nump-(size%nump);
			}*/
			var more = '';
			for (var i = 0; i < moreP; i++) {
				more += '<p class="nav hide"></p><li class="nav hide"></li>';
			}
			var str = more+'<div id="'+settings.navId+'" class="'+settings.navClass+'">';
			
			
			str += '<a class="anchorLink prev" href="#titre" rel="prev">'+settings.prevText+'</a>';
			var k = 1;
			for(i = 0; i < size; i++) {
				if(i % nump ==0){
					var j = i + 1;
					str += '<a class="anchorLink" href="#titre" rel="'+j+'">';
					str +=  k;				
					str += '</a>';
					var k = k + 1;
				}
			}
			str += '<a class="anchorLink next" href="#titre" rel="next">'+settings.nextText+'</a>';
			str += ' <a class="anchorLink deplier bottom" href="#titre" rel="deplier" title="article complet"><span class="hide">article complet</span></a></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 () {
			$("a.anchorLink").anchorAnimate();
			$(me).find(clas).not(navid).hide();
			
			for(var m = 0; m < nump; m++) {
				var show = $(me).find(clas).not(navid).get(i+m);
				$(show).show();
			}
		}
		function deplier () {
			$("a.anchorLink").anchorAnimate();
			$(me).find(clas).not(navid).hide();
			for(var m = 0; m < size; m++) {
				var show = $(me).find(clas).not(navid).get(m);
				$(show).show();
			}
		}
		function highlight () {
			$(me).find(navid).find('a').removeClass(settings.highlightClass);
			$(me).find(navid).find('a').removeClass("hide");
			var numpage = parseInt(i/nump)+1;
			var show = $(me).find(navid).find('a').get(numpage);			
			$(show).addClass(settings.highlightClass);
			if(numpage==1) {
				show = $(me).find(navid).find('a.prev');			
				$(show).addClass("hide");
			}
			var a = $(me).find(navid).find('a').length;
			if(numpage==(a-3)) {
				show = $(me).find(navid).find('a.next');			
				$(show).addClass("hide");
			}
		}

		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 + nump) < size) {
					i = i + nump;
				}
			} else if($(this).attr('rel') == 'prev') { 
				if(i >= nump) {	
					i = i - nump;
				}
			} else {		
				var j = $(this).attr('rel');	
				i = j - 1;
			}
			if($(this).attr('rel') == 'deplier') {
				deplier();
			}else{
				show();
			}
			highlight();
			return false;
		});
	});	
}