<?php
	class pagination {
		public $limit, $page, $pages, $total;
		/*		
		*		Парметры:
		*			$elements - кол-во элементов на странице
		*			$total - всего записей, которые нужно разбить по страницам
		*			$p - текущая страница. Лучше всего получать из $_GET
		*/
		function __construct($elements, $total, $p) {
			$pages = ceil($total / $elements);
			if($p < 1) $p = 1;
			if($p > $pages) $p = $pages;
			$start = abs($p * $elements) - $elements;		
			$this -> limit = " LIMIT {$start}, {$elements}";
			$this -> page = $p;
			$this -> pages = $pages;
			$this -> total = $total;
		}
				
		/* Выводим панель навигации по страничкам */
			
		function printPages($params = '', $max = 10) {
			$p = $this -> page;
			$pages = $this -> pages;
			$total = $this -> total;
			$sel = 'unsel';	
			$return = "";	

			if($total > $max) {
				$return .= '<div class="list" style="padding: 5px 8px;"><div class="pagination"><span class="pagination-s"><div>';	
				/*
				$return .= "<div class=\"pagination-nav\">";
				if(($p - 1) > 0) { 
					$prevPage = ($p - 1); 
					$return .= "<a class=\"pagination-n\" href=\"{$params}p={$prevPage}\">Предыдущая</a>";
				} else {
					$return .= "<div class=\"pagination-n\">Предыдущая</div>";
				}
				$return .= "</div><div class=\"pagination-nav\">";
				if(($p + 1) <= $pages) { 
					$nextPage = $p + 1; 
					$return .= "<a class=\"pagination-n\" href=\"{$params}p={$nextPage}\">Следующая</a>"; 
				} else {
					$return .= "<div class=\"pagination-n\">Следующая</div>";
				}
				$return .= "</div></div>";	*/
				$return .= '<table class="pagination-list" style="width: 100%;"><tbody><tr>';
				if($p > 3) { $return .=  "<td><a href=\"{$params}p=1\">1</a></td>"; }
				if(($p - 2) > 0) { $pprevPage = $p - 2; $return .=  "<td><a href=\"{$params}p={$pprevPage}\">{$pprevPage}</a></td>"; }
				if(($p - 1) > 0) { $prevPage = $p - 1; $return .=  "<td><a href=\"{$params}p={$prevPage}\">{$prevPage}</a></td>"; }
				$return .=  '<td><span class="pagination-out">'.$p.'</span> ';
				if(($p + 1) <= $pages) { $nextPage = ($p + 1); $return .=  "<td><a href=\"{$params}p={$nextPage}\">{$nextPage}</a></td>"; }
				if(($p + 2) <= $pages) { $nnextPage = ($p + 2); $return .=  "<td><a href=\"{$params}p={$nnextPage}\">{$nnextPage}</a></td>"; }			
				if($p != $pages and $p != $pages - 1 and $p != $pages - 2) { $endPage = $pages;	$return .=  "<td><a href=\"{$params}p={$endPage}\">{$endPage}</a></td>";	}				
				$return .= '</tr></tbody></table>';
				$return .=  '</span></div></div></div>';
			}
			return $return;
		}
	}