//Liste
$.fn.sortableListWithPaginationListe = function() {  	
	$(this).each(function(){  
		var table = $(this).find('#divListe');	
		var iLimit = table.attr('iLimit');
		var currentSortField = table.attr('currentSortField');
		var currentSortDirection = table.attr('currentSortDirection');	
		var src = table.attr('src');
		var currentPage = table.attr('currentPage');
		var nbPage = table.attr('nbPage');
		
		if(iLimit==undefined || src==undefined || currentPage==undefined || nbPage==undefined){
			alert("Le tag table doit avoir les attributs iDebutEnreg, iLimit, src,currentPage et nbPage");
			return false;
		}  
		
		//Gestion de la paginationListe 1
		if(nbPage> 1){
			var paginationListe = $(this).find('.paginationListe');
			if(!paginationListe.length){
				//alert("Le div doit être suivi d'un paragraphe de classe paginationListe");
				return false;
			}
			paginationListe.empty();
			//paginationListe.append('&nbsp;&nbsp;&nbsp;')
			
			currentPage = new Number(currentPage);
			nbPage = new Number(nbPage);
			
			
			if(currentPage > 1){
				var lien = $("<a title='prec'>&laquo;</a>");
				lien.attr("href", '#');
				paginationListe.append(lien);
				paginationListe.append("&nbsp;&nbsp;");   
			}else {
				var lien = $("<a title='prec' class='bouton_left_hidden'>&laquo;</a>");		
				lien.attr("href", '#');
				paginationListe.append(lien);
				paginationListe.append("&nbsp;&nbsp;");
			}
			
			
			
			var start =1;
			var stop = nbPage;
			if(nbPage > 10){
				start = currentPage -5;
				stop = currentPage + 5;
				if(start<=0){
					stop += -start+1;
					start=1;
				}
				if(stop > nbPage){
					start += nbPage-stop;
					if(start<=0){
						start=1;
					}
					stop = nbPage;
				}
			}
      
      
			for(i=start; i<=stop;i++){
				lien = $("<a title=" + i + ">" + i +"</a>");
				lien.attr("href", '#');
        
        if(i==currentPage){
					lien.addClass("active");
				}
				
				paginationListe.append(lien);
				
				
				
				if(i!=stop){
				   var span = document.createElement('span');
				   $(span).html('&nbsp;'); //$(span).html('&nbsp;-&nbsp;');
				   paginationListe.append(span);
				}
				
				
			}
			
			if(currentPage < nbPage){
				
				lien = jQuery("<a title='suiv' href='#'>&raquo;</a>");
				lien.attr("href", '#');
				paginationListe.append("&nbsp;&nbsp;");
				paginationListe.append(lien);
				
			} else {
				lien = jQuery("<a title='suiv' href='#' class='bouton_right_hidden'>&raquo;</a>");				
				lien.attr("href", '#');
				paginationListe.append("&nbsp;&nbsp;");
				paginationListe.append(lien);
			}
			


			$(this).find('.paginationListe > A').click(function(){							
				var page = $(this).attr('title');
				currentPage = new Number(table.attr('currentPage'));
				if(page==currentPage){ //on est déjà sur la bonne page
					return false;
				}
				
				if(page == 'prec'){
					page=currentPage-1;
				}
				if(page == 'suiv'){
					page=currentPage+1;
				}
				
												
				table = $(this).parents('.sortableListWithPaginationListe').find('#divListe');
				
				iLimit = table.attr('iLimit');
				iDebutEnreg = (page-1) * iLimit;
				sortField = table.attr('currentSortField');
				sortDirection = table.attr('currentSortDirection');								
				//var ajaxZone = $(this).parents('.ajaxZone');
				$(this).parents('.ajaxZone').load(src, {iDebutEnreg:iDebutEnreg, iLimit:iLimit,page:page,sortField:sortField, sortDirection:sortDirection}, function(){
					loadPagination();
				});

				return false;
			});

		}
		
		//Gestion du tri
		//Si il n'y a qu'une seule ligne dans le tableau, on ne fait rien
		//alert($(this).find('#tBodyMain').find('tr').length);
		if($(this).find('#tBodyMain').find('tr').length == 4){			
			return;
		}
		//On applique les styles et évènements sur chaque th
		$(this).find('th').each(function(){
			var sortField = $(this).attr('sortField');
			//alert(sortField+"--"+currentSortField+"--"+currentSortDirection);
			if(sortField!= undefined){
				if(sortField == currentSortField){
					if(currentSortDirection == 'DESC'){
						$(this).addClass('sortUp');
					}else{
						$(this).addClass('sortDown');
					}
				}else{
					$(this).addClass('sortable');
				}
				$(this).click(function(){	
					page = currentPage;
					iDebutEnreg = (page-1) * iLimit;
					
					if(sortField == currentSortField){
						if(currentSortDirection == 'DESC'){
							sortDirection = 'ASC';
						}else{
							sortDirection = 'DESC';
						}
					}else{
						sortDirection = 'ASC';
					}
					
					$(this).parents('.ajaxZone').load(src, {iDebutEnreg:iDebutEnreg, iLimit:iLimit,page:page,sortField:sortField, sortDirection:sortDirection}, function(){
						loadPagination();
					});
				});
			}
		});		

	});
};