<?php

class navigator {
	
	private function ParseURLNavigation($str, $page) {
		$array_a = array("/page/{$page}/", "/page/{$page}", "#");
		return str_replace($array_a, "", $str);
	}
	
	 
	# Вывод страниц с данными
	function Navigation($max, $page, $AllPages, $strURI) {
        
		$strReturn = "";
        $left = false;
        $right = false;
        $strURI = $this->ParseURLNavigation($strURI, $page);
        $page = (intval($page) > 0) ? intval($page) : 1;
	
		if ($AllPages <= $max) {
			for ($i = 1; $i <= $AllPages; $i++) {
				if ($i == $page) {
					$strReturn .= "$page ";
				} else $strReturn .= "<a href=\"{$strURI}{$i}\" class='stn'>{$i}</a> ";
			}
		} else {
			for ($i = 1; $i <= $AllPages; $i++) {
				if ($i == $page OR ($i == $page-1) OR ($i == $page-2)  OR ($i == $page-3) OR ($i == $page-4) OR ($i == $page+1) OR ($i == $page+2)  OR ($i == $page+3) OR ($i == $page+4)) {
					if ($i == $page) {
                        $strReturn .= "$page ";
					} else {	
						$strReturn .= "<a href=\"{$strURI}{$i}\" class='stn'>{$i}</a> ";
					}
				} else {
					if ($i > $page) {		
						if (!$right) { 
                            if ($page <= $AllPages-6) {
                                $strReturn .= " ... <a href=\"{$strURI}{$AllPages}\" class='stn'>{$AllPages}</a> ";
                                $right = true;
							} else {
                                $strReturn .= " <a href=\"{$strURI}{$AllPages}\" class='stn'>{$AllPages}</a> ";
                                $right = true;
							}
						}
					} else {
						if (!$left) {
							if ($page > 6) {
								$strReturn .= " <a href=\"{$strURI}1\" class='stn'>1</a> ... ";
                                $left = true;
							} else {
                                $strReturn .= " <a href=\"{$strURI}1\" class='stn'>1</a> ";
                                $left = true;
							}
						}
					}
				}
			}
		}
		
		$left_str = ($page > 1) ? "<a href=\"{$strURI}".($page-1)."\" class='stn'>Назад</a> " : "Назад ";
		$right_str = ($page < $AllPages) ? " <a href=\"{$strURI}".($page+1)."\" class='stn'>Вперед</a>" : " Вперед";
		return $left_str.$strReturn.$right_str;
	}
}
?>