var currentPageNumber = {};

function icms_initPager(element, nbItemsPerPage, separator, selectedIndex, anchor) {
  var nbItems = $('.' + element + ' .page_item').length;
  var nbPages = Math.ceil(nbItems/nbItemsPerPage);

  if ( nbPages <= 1 )
    return;

  // Init navigation
  for (i = 0 ; i < nbPages; i++) {
    var sep = ( i < nbPages - 1 ? separator : '' );
    $('.' + element + '_nav').append("<a style='cursor:pointer;' page='" + (i + 1) + "'>" + (i + 1) + "</a>" + sep);
    var link = $('.' + element + '_nav a').eq(i);
    link.click(function() {
      if ( anchor ) {
	location.hash = "#" + anchor;
      }
      icms_showPage(element, nbItemsPerPage, this.innerHTML);
    });
  }

  // Hide all items
  for (i = 0 ; i < nbItems; i++) {
    $('.' + element + ' .page_item').eq(i).hide();
  }

  // Calc current page number
  var currentPage = 1;
  if( selectedIndex ) 
    Math.ceil(selectedIndex/nbItemsPerPage);

  // Show first page
  icms_showPage(element, nbItemsPerPage, currentPage);
}

function icms_showPage(element, nbItemsPerPage, pageNumber) {
  // Hide page
  if ( currentPageNumber && currentPageNumber[element] ) {
    $('.' + element + '_nav a').eq(currentPageNumber[element] - 1).removeClass('actif');
    var start = (nbItemsPerPage * (currentPageNumber[element] - 1)) + 1;
    for (i = start; i < start + nbItemsPerPage; i++) {	
      $('.' + element + ' .page_item').eq(i - 1).hide();
    }  
  }

  // Show page
  currentPageNumber[element] = pageNumber;
  $('.' + element + '_nav a').eq(pageNumber - 1).addClass('actif');
  var start = (nbItemsPerPage * (pageNumber - 1)) + 1;
  for (i = start; i < start + nbItemsPerPage; i++) {	
    $('.' + element + ' .page_item').eq(i - 1).fadeIn("slow");
  }  

}
