/*******

	***	Anchor Slider by Cedric Dugas   ***
	*** Http://www.position-absolute.com ***
	
	Never have an anchor jumping your content, slide it.

	Don't forget to put an id to your anchor !
	You can use and modify this script for any project you want, but please leave this comment as credit.
	
	
$(document).ready(function() {
	$("a.anchorLink").anchorAnimate()
});

*****/

jQuery.fn.anchorAnimate = function(settings) {

 	settings = jQuery.extend({
		speed : 500
	}, settings);	
	
	return this.each(function(){
		var caller = this
		$(caller).click(function (event) {	
			event.preventDefault()
			var locationHref = window.location.href
			var elementClick = $(caller).attr("href")
			
			var destination = $(elementClick).offset().top;
			$("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination}, settings.speed, function() {
				window.location.hash = elementClick
			});
		  	return false;
		})
	})
}

$.fn.pager = function(clas, options) {
	
	var settings = {
		numP: 13,		
		navId: 'nav',
		navClass: 'nav',
		navAttach: 'append',
		highlightClass: 'highlight',
		prevText: '&laquo;',
		nextText: '&raquo;',
		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;
		var nump = settings.numP;
		
		function init () {
			size = $(clas, me).not(navid).not('.banniere').not('.une').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 += '<li class="nav hide"></li>';*/
			}
			var str = more+'<div id="'+settings.navId+'" class="'+settings.navClass+'">';
			
			
			str += '<a class="anchorLink prev" href="#content" 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="#content" rel="'+j+'">';
					str +=  k;				
					str += '</a>';
					var k = k + 1;
				}
			}
			str += '<a class="anchorLink next" href="#content" rel="next">'+settings.nextText+'</a>';
			str += ' <a class="anchorLink deplier bottom" href="#titre" rel="deplier" title="article complet"><span class="hide">liste compl&egrave;te</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 () {
			$(me).find(clas).not(navid).not('.banniere').hide();
			for(var m = 0; m < nump; m++) {
				var show = $(me).find(clas).not(navid).get(i+m);
				$(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 show () {
			/*$("a.anchorLink").anchorAnimate();*/
			$(me).find(clas).not(navid).not('.banniere').not('.une').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;
			}
			show();
			highlight();
			return false;
		});
	});	
}
