<?
function ReadTemplate($parse,$template)
{
global $manlix;
$content=null;

	$ReadFile=fopen($manlix['dir']['templates']."/".$parse."/".$template,"r");
		while(!feof($ReadFile))
		$content.=fread($ReadFile,filesize($manlix['dir']['templates']."/".$parse."/".$template));
	
return htmlspecialchars($content);
}

function manlix_even($string)
{
	if(!($string%2))
	return 1;
}

function description($section,$key)
{
	$array=array(
		'dir'	=>	array(
				'Description'		=>	'папки',
				'path'			=>	'путь до папки скрипта',
				'inc'			=>	'системная папка скрипта',
				'templates'		=>	'папка с шаблонами'
				),

		'file'	=>	array(
				'Description'		=>	'файлы',
				'data'			=>	'созданая база после индексации',
				'functions'		=>	'функции',
				'password'		=>	'пароль'
				),
		'other'	=>	array(
				'Description'		=>	'Рпазное',
				'MaxChars'		=>	'кол-во символов при выводе результата',
				'MaxShow'		=>	'кол-во результатов на одной странице',
				'MaxPages'		=>	'кол-во страниц в навигации',
				'untitled'			=>	'если у страницы нет названия',
				'NotAllowed'		=>	'файлы и папки, в которых есть эти значения - не индексируются (через пробел и только латинские буквы с цифрами, числами и знаком подчёркивания)'
				),

		'error'	=>	array(
				'Description'		=>	'ошибки',
				'EmptyQuery'		=>	'пустой запрос',
				'EmptyQueryAfterStrip'	=>	'пустой запрос после удаления спец. символов',
				'NoFound'			=>	'ничего не найдено'
				),

		'template'=>	array(
				'Description'		=>	'шаблон',
				'parse'			=>	'текущий шаблон'
				),

		'templates'=>	array(
				'Description'		=>	'имена файлов, который входят в шаблон',
				'top'			=>	'верхушка',
				'bottom'			=>	'низ',
				'result'			=>	'результат',
				'form'			=>	'форма для начала поиска',
				'error'			=>	'ошибка',
				'loading'			=>	'идёт поиск',
				'stat'			=>	'информация о запросе',
				'navigation'		=>	'навигация по страницам'
				),

		'color'	=>	array(
				'Description'		=>	'цвета',
				'CurrentPage'		=>	'цвет текущей страницы в навигации',
				'NotActive'		=>	'цвет неактивных указателей в навигации'
				),

		'script'	=>	array(
				'Description'		=>	'дополнительно',
				'name'			=>	'имя скрипта',
				'prefix'			=>	'префикс',
				'russian'			=>	'по-русски',
				'version'			=>	'версия',
				'info'			=>	'информация'
				)
		);

	if(!empty($array[$section]['Description'])&&empty($key))	return ucfirst($array[$section]['Description']);
	if(!empty($array[$section][$key]))			return ucfirst($array[$section][$key]);
	else						return 0;
}


function ParseTemplate($TemplateName)
{
global $manlix;

$TemplateFile=manlix_read_file($manlix['dir']['templates'].chr(47).$manlix['template']['parse'].chr(47).$TemplateName);

	while(list($line,$string)=each($TemplateFile))
	{
	$string=ConstantS($string);
	echo $string;
	}
}

function ConstantS($string)
{
return preg_replace_callback("/@([[:alpha:]]+)@/","ConstantR",$string);
}

function ConstantR($array)
{
global $manlix;

	if(!empty($manlix['other'][$array[1]]))
	$string=$manlix['other'][$array[1]];

	else
	$string=null;

return $string;
}

function manlix_stripslashes($string)
{
	if(empty($string))	return false;

	else
	{
	$result=ereg_replace(" +"," ",trim(stripslashes(stripslashes(addslashes($string)))));

		if(!$result)	return false;
		elseif($result!=" ")	return $result;
	}
}

function manlix_char_generator($chars,$times)
{

	if(!strlen($chars))		return false;
	elseif(!is_numeric($times))	return false;

	else
	{
	$result=null;
		for($i=0;$i<$times;$i++)
		$result.=$chars[rand(0,strlen($chars)-1)];
	}

return $result;
}

function manlix_strip_new_line($string)
{
return preg_replace("/(".chr(9)."|".chr(10)."|".chr(11)."|".chr(12)."|".chr(13).")/",chr(32),$string);
}

function manlix_read_file($path)
{
	if(!is_file($path))		return false;
	elseif(!filesize($path))	return array();
	elseif($array=file($path))	return $array;

	else
	while(!$array=file($path))sleep(1);

	return $array;
}

function manlix_time()
{
list($x,$y)=explode(" ",microtime());
return $x+$y;
}

function manlix_array_navigation
(
	$array,			$show_strings,
	$max_show_pages,	$link,
	$page,			$left_symbol,
	$right_symbol,		$color_left_right,
	$color_other_pages,	$color_current_page,
	$color_href_double_active,	$color_href_single_active,
	$separator
)
{
	global	$manlix_array_navigation;

	if(!is_array($array))
	$manlix_array_navigation = "Для работы с этой функцией не найден массив";

	elseif(empty($array))
	$manlix_array_navigation = "Вы не указали массив для работы с функцией";

	else
	{

		if(!is_numeric($show_strings))
		$show_strings=10;

		if(!is_numeric($max_show_pages))
		$max_show_pages=10;

		if(empty($link))
		$link="?page=";

		if(!is_numeric($page))
		$page= "1";

		if(empty($left_symbol))
		$left_symbol="&lt;";

		if(empty($right_symbol))
		$right_symbol= "&gt;";

		if(empty($separator))
		$separator=" ";

	$count=count($array);

	$all_pages=ceil($count/$show_strings);

	if (!is_numeric($page)||$page<1||empty($page))
	$page=1;

	if($page>$all_pages)
	$page=$all_pages;

	if(($page+$max_show_pages)<=$all_pages)
	{
	$start=$page;
	$finish=$page+$max_show_pages;
	}

	if(($page+$max_show_pages)>=$all_pages)
	{
	$start=$all_pages-$max_show_pages;
	$finish=$all_pages;
	}

	if(!isset($pages))
	$pages=null;

	if(!isset($navigation))
	$navigation=null;

	if(!isset($show_string))
	$show_string=null;

	for($i=$start;$i<$finish+1;$i++)
	{
		if($i>0)
		{
			if ($i>0&&$i<10)
			$link_i = "0".$i;

			if($i>9)
			$link_i=$i;

			if($i==$page)
			$pages.=" $separator<font color='$color_current_page'>$link_i</font> $separator ";

			else
			$pages.=" $separator<a href='".$link."".$i."'><font color='$color_other_pages'>$link_i</font></a>$separator ";
		}
	}

	if($page>2)
	$navigation = "<a href='".$link."1'><font color='$color_href_double_active'>".$left_symbol."".$left_symbol."</font></a> ";

	else
	$navigation.="<font color='$color_left_right'>".$left_symbol."".$left_symbol."</font> ";	

	if(($page-1)>0&&($page-1)<=$all_pages)
	$navigation.="<a href='$link".($page-1)."'><font color='$color_href_single_active'>$left_symbol</font></a> ";

	else
	$navigation.="<font color='$color_left_right'>$left_symbol</font> ";

	$navigation.=$pages;

	if(empty($pages))
	{
	$navigation.= "<font color='$color_current_page'>01</font>";
	$all_pages=1;
	$page=1;
	}

	if(($page+1)<=$all_pages)
	$navigation .= " <a href='$link".($page + 1)."'><font color='$color_href_single_active'>$right_symbol</font></a>";

	else
	$navigation .= " <font color='$color_left_right'>$right_symbol</font>";

	if($page<$all_pages-1)
	$navigation .= " <a href='".$link."".$all_pages."'><font color='$color_href_double_active'>".$right_symbol."".$right_symbol."</font></a>";

	else
	$navigation.=" <font color='$color_left_right'>".$right_symbol."".$right_symbol."</font>";

	$start=$page*$show_strings-$show_strings;
	$finish=$page*$show_strings;

	if($page==$all_pages)
	$finish = $count;

	if($count<=$show_string)
	{
	$start=0;
	$finish=$count;
	}

	for($i=$start;$i<$finish;$i++)
	{
	list($string)=explode("\r\n",$array[$i]);
		if($i<$count)
		$result_strings[]=$string;
	}

	$manlix_array_navigation = array(
					'all_strings'		=> $array,
					'count_all_strings'		=> $count,
					'all_pages'		=> $all_pages,
					'current_page'		=> $page,
					'start_string'		=> $start,
					'finish_string'		=> $finish,
					'result_strings'		=> $result_strings,
					'count_result_strings'	=> count($result_strings),
					'navigation'		=> $navigation
				     );
	return $navigation;
	}
}
?>