/*******
	
	Render a video sorting with paging
	
	
	I want to die.....
*****/


$(document).ready(function() {
	$("div.videoCat").videoSorting();
});

jQuery.fn.videoSorting = function(settings) {
	settings = jQuery.extend({
		nRecParPage:6,
		repeatingBox:"div.videoBox",
		classeElements:"vidEl", //le nom de la classe qui est appendé à chaque element pour indiquer sur quelle page chaque element se trouve
		classePages:"vidPage", //le nom de la classe des liens de page
		classePagesActives:"vidPageActif" //le nom de la classe des liens de page ACTIFS
	}, settings);
	

	return this.each(function(){
		var containerBox = this;
		var nElements = $(containerBox).find(settings.repeatingBox).size();//nombre d'items à pager dans ce bloc
		var nPages = Math.ceil(nElements / settings.nRecParPage);//n de pages au total dans le paging

		//console.log($(containerBox).attr("class") + ' ' + nPages);

		if(nPages===1) return ;//pas de paging, pas asses de records! (return NULL.. si false, arrete le each de jquery)

		//crée le bloc contenant les pages
		var lnkContainer=document.createElement('div');
		$(lnkContainer).addClass('paging');

		$(containerBox).prepend(lnkContainer);//met le paging au debut du container

   		var pageNum=1;
   		while(pageNum<=nPages){//loop et construit le paging

   			//le link de no de page
   			lnk=document.createElement('a');
   			$(lnk).attr('rel',pageNum);
   			$(lnk).attr('href','#');
			$(lnk).addClass("open")
   			if(pageNum==1) $(lnk).removeClass("open");//première page : la met comme active

   			$(lnk).addClass(settings.vidLnkPage);
   			$(lnk).html(pageNum);


   			//ajoute la fonction au click de ce lien
   			$(lnk).click(function(){
				//quelle page est cliquee?
				var thisPage=$(this).attr("rel");
				$(".paging a").addClass("open")
				//enleve le lien actif à la page qui était previously cliquée
				$(lnkContainer).find('a').removeClass(settings.classePagesActives);

				$(this).removeClass("open");//la met comme active

				//cache tous les elements de ce groupe de paging
				$(containerBox).find('.'+settings.classeElements).hide();

                 //mais montre ceux qui sont sur la page cliquee
               	 $(containerBox).find('.'+settings.classeElements+thisPage).fadeIn(300);




				return false;
			});

			$(lnkContainer).append(lnk);//le link de switch de page

			//loop dans les elements à pager, pour cette page, et leur ajoute la classe qui indique sur quelle page ils sont
			elDebut=(pageNum-1)*settings.nRecParPage;
			elFin=(pageNum)*settings.nRecParPage;
			for(var i=elDebut ; i< elFin ; i++){
				//l'element
				el=$(containerBox).find(settings.repeatingBox + ':eq('+i+')');
                 //lui ajoute la classe
				el.addClass(settings.classeElements);//classe qui dit que cet el fait partie d'un paging
   				el.addClass(settings.classeElements + pageNum);//classe qui dit sur QUELLE page est ce bloc (append le no de page au nom de classe)

				 if(pageNum!==1) el.hide();//si on est pas sur la page 1, à l'initialisation, met les elements hidden

			}

   			pageNum++;//incremente pour le while
		}

		return;


	})
	

}

/**/
