<?

#	.................................................................................
#
#		Скрипт:	Manlix Search, версия: 1.3
#		Автор:	Manlix (http://manlix.ru)
#	.................................................................................

if(phpversion()<4.3) exit("<font face='verdana' size='1' color='#de0000'><b>Версия PHP интерпретатора должна быть 4.3.0 или выше, но никак не ниже (ваша версия интерпретатора: ".phpversion().")</b></font>");

function error($error,$file){exit('<font face=verdana size=1 color=#de0000><b>'.$error.'<br>['.htmlspecialchars($file).']</b></font>');}

@set_time_limit(0);

@SetLocale(LC_ALL,"ru_RU.CP1251");

function CheckConf($conf)
{
	while(list($section,$array)=each($conf))
		while(list($key,$value)=each($array))
			if(!strlen($value))
			error("В файле параметров скрипта, а именно в секции <font color=green>".$section."</font>, пуст ключ <font color=green>".$key."</font>",$conf['dir']['path']."/inc/config.inc.dat");
}

$manlix=parse_ini_file("./inc/config.inc.dat",1) or error("не могу загрузить основной файл параметров","./inc/config.inc.dat");
include($manlix['file']['functions']);

CheckConf($manlix);

	while(list($section,$array)=each($manlix))
		while(list($key,$value)=each($array))
		$manlix['other'][chr(73).chr(110).chr(105).ucfirst(strtolower($section)).ucfirst(strtolower($key))]=$value;

settype($FirstTime=manlix_time(),"integer");

if(isset($_GET['query']))
{
$query=$UserQuery=manlix_stripslashes($_GET['query']);
preg_match_all("/\w+/",$query,$QueryArray);
$TempQuery=array_unique($QueryArray[0]);
$QueryArray[0]=$manlix['result']=null;
	while(list(,$value)=each($TempQuery))
	$QueryArray[0][]=$value;
$result=array();
$found=0;

		if(!$QueryCount=count($QueryArray[0]))
		{
		ParseTemplate($manlix['templates']['top']);
				if(empty($query))
				$manlix['other']['error']=$manlix['error']['EmptyQuery'];
				else
				$manlix['other']['error']=$manlix['error']['EmptyQueryAfterStrip'];
		ParseTemplate($manlix['templates']['error']);
		ParseTemplate($manlix['templates']['bottom']);
		exit;
		}

		elseif($QueryCount==1)
		$query=$QueryArray[0][0];

		else
		{
		$query="(";
			for($i=0;$i<$QueryCount;$i++)
				if($i!=$QueryCount-1)
				$query.=$QueryArray[0][$i]."|";

				else
				$query.=$QueryArray[0][$i];
		$query.=")";
		}

		if(!empty($query))
		{
		ParseTemplate($manlix['templates']['top']);
		$OpenDataFile=fopen($manlix['file']['data'],'r');
		flock($OpenDataFile,1);
		flock($OpenDataFile,2);
			while(!feof($OpenDataFile))
				if(preg_match("/".$query."/i",$string=fgets($OpenDataFile)))
				{
				/*
				list($manlix['other']['link'],$manlix['other']['document'])=split(" ",$string,2);
				$manlix['other']['document']=substr($manlix['other']['document'],0,$manlix['other']['MaxChars']);
				$manlix['other']['document']=trim(preg_replace("/".$query."/i","<b>\\0</b>",$manlix['other']['document']))."...";
				ParseTemplate($manlix['templates']['result']);
				flush();
				*/
				$result[]=$string;
				$found++;
				}
		fclose($OpenDataFile);
			if(!$found)
			{
			$manlix['other']['error']=$manlix['error']['NoFound'];
			ParseTemplate($manlix['templates']['error']);
			}

			else
			{
			$manlix['other']['navigation']=manlix_array_navigation(
							(isset($result))?$result:null,
							(isset($manlix['other']['MaxShow']))?$manlix['other']['MaxShow']:null,
							(isset($manlix['other']['MaxPages']))?$manlix['other']['MaxPages']:null,
							"?query=".$UserQuery."&SearchPage=",
							(isset($_GET['SearchPage']))?$_GET['SearchPage']:null,
							null,
							null,
							(isset($manlix['color']['NotActive']))?$manlix['color']['NotActive']:null,
							null,
							(isset($manlix['color']['CurrentPage']))?$manlix['color']['CurrentPage']:null,
							null,
							null,
							" "
							);

			$manlix['strings']=$manlix_array_navigation;

				while(list($number,$string)=each($manlix['strings']['result_strings']))
				{
				$manlix['other']['num']=$manlix['strings']['count_all_strings']-$manlix['strings']['start_string']-$number;
				list($manlix['other']['link'],$manlix['other']['title'],$manlix['other']['document'])=split(" ",$string,3);
				$manlix['other']['document']=substr($manlix['other']['document'],0,$manlix['other']['MaxChars']);
				$manlix['other']['document']=trim(preg_replace("/".$query."/i","<b>\\0</b>",$manlix['other']['document']))."...";
				ParseTemplate($manlix['templates']['result']);
				flush();
				}
			}
		$manlix['other']['query']=htmlspecialchars($UserQuery);
		$manlix['other']['docs']=(empty($found))?"ноль":$found;
		$manlix['other']['time']=round(manlix_time()-$FirstTime,3);
		ParseTemplate($manlix['templates']['stat']);
			if(!empty($found))
			ParseTemplate($manlix['templates']['navigation']);
		ParseTemplate($manlix['templates']['bottom']);
		}
}

else
{
$LoadingBody=null;

	$OpenLoadingFile=fopen($manlix['dir']['templates'].chr(47).$manlix['template']['parse'].chr(47).$manlix['templates']['loading'],'r');
	$LoadingBody=fread($OpenLoadingFile,filesize($manlix['dir']['templates'].chr(47).$manlix['template']['parse'].chr(47).$manlix['templates']['loading']));
	fclose($OpenLoadingFile);
$manlix['other']['LoadingHtmlCode']=addslashes(manlix_strip_new_line($LoadingBody));
ParseTemplate($manlix['templates']['form']);
}
?>