#!/usr/local/bin/perl -w -Ilib

# модули для получения информации из XML и доступа к
# веб-ресурсам, соответственно
use CGI qw(:standard);
use XML::XPath;
use LWP::UserAgent;
use HTML::Template::Compiled::Plugin::XMLEscape;
use URI::Escape;
use Convert::Cyrillic;

print "Content-Type: text/html;windows-1251\n\n";

print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
<html><head><title>Поиск по сайту - Business.Su - Деловой портал СНГ</title>
<meta http-equiv=Content-Language content=ru>
<meta http-equiv=Content-Type content=\"text/html; charset=windows-1251\"><meta name=\"Keywords\" content=\"каталог, сайт, добавить сайт, добавить ссылку, тематический каталог, рубрика, недвижимость, строительство, бизнес, работа, оборудование, рейтинг сайтов\" http-equiv=\"Keywords\">
<meta content=\"Mischenko Anatoliy a.k.a. CmapuK\" name=Author>
<meta name=\"resource-type\" content=\"Document\"> 
<meta name=\"document-state\" content=\"Dynamic\"> 
<meta name=\"robots\" content=\"ALL\"> 
<meta content=Business.SU name=keywords><link href=\"http://www.business.su/old/stylesrch.css\" type=text/css rel=stylesheet>
<meta name=\"revisit-after\" content=\"14 days\"> 
<meta http-equiv=\"Pragma\" content=\"no-cache\">

</head>
<body leftmargin=0 topmargin=0 bgcolor=\"f4f3f3\">
<table  cellspacing=0 cellpadding=0 class=\"top\"><tr><td class=\"tc\" height=\"70\" width=\"0%\" onclick=\"document.location.href='http://www.business.su/old'\" style=\"letter-spacing: 4px\"><noindex><!--Rating@Mail.ru COUNTER--><script language=\"JavaScript\" type=\"text/javascript\"><!--
d=document;var a='';a+=';r='+escape(d.referrer)
js=10//--></script><script language=\"JavaScript1.1\" type=\"text/javascript\"><!--
a+=';j='+navigator.javaEnabled()
js=11//--></script><script language=\"JavaScript1.2\" type=\"text/javascript\"><!--
s=screen;a+=';s='+s.width+'*'+s.height
a+=';d='+(s.colorDepth?s.colorDepth:s.pixelDepth)
js=12//--></script><script language=\"JavaScript1.3\" type=\"text/javascript\"><!--
js=13//--></script><script language=\"JavaScript\" type=\"text/javascript\"><!--
d.write('<img src=\"http://top.list.ru/counter'+
'?id=668562;js='+js+a+';rand='+Math.random()+
'\" height=1 width=1/>')
if(11<js)d.write('<'+'!-- ')//--></script><noscript><img
src=\"http://top.list.ru/counter?js=na;id=668562\"
height=1 width=1 alt=\"\"/></noscript><script language=\"JavaScript\" type=\"text/javascript\"><!--
if(11<js)d.write('--'+'>')//--></script><!--/COUNTER--><!--begin of Rambler's Top100 code --><a href=\"http://top100.rambler.ru/top100/\"><img src=\"http://counter.rambler.ru/top100.cnt?542789\" alt=\"\" width=1 height=1 border=0></a><!--end of Top100 code--></noindex><a href=\"http://www.business.su/old\" class=\"nm\" style=\"font-weight: normal\"><img src=\"http://www.business.su/old/bis4.gif\" width=\"215\" height=\"50\" border=\"0\" alt=\"Деловой портал СНГ - Бизнес в России и за рубежом\"><br>Деловой 
портал СНГ</a></td><td class=\"mc\" width=\"100%\"><center><script language='JavaScript'>
var b2bcontext_block_type = 2
var b2bcontext_block_w = 468
var b2bcontext_block_h = 60
var b2bcontext_block_h_full = 107
var b2bcontext_block_pre_header_background = 'white'
var b2bcontext_block_pre_header_family = 'verdana'
var b2bcontext_block_pre_header_size = '10'
var b2bcontext_block_pre_header_weight = 'normal'
</script>
<script language='JavaScript' src='http://b2bcontext.ru/partner/advertisement_block.js'></script></center></td></tr><tr><td class=mc><img src=\"http://www.business.su/old/1.gif\" height=4><br><font style=\"font-size: 7pt; letter-spacing: 1px\"><a href=\"http://www.business.su/old/#\" onclick=\"window.external.addFavorite('http://www.business.su/old', 'Business.SU - Деловой портал СНГ-: новости, доски объявлений, бизнес каталог'); return false;\" class=yv>в 
избранное |</a> <a onclick=\"this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.business.su/old'); return false;\" href=\"http://www.business.su/old/#\" class=yv>стартовой&nbsp;</a></font></td><td class=ton> 
&nbsp;Всего объявлений - <font class=\"tonav\">5760</font>&nbsp;&nbsp;&nbsp; Сайтов 
- <font class=\"tonav\">1650</font>&nbsp;&nbsp;&nbsp; Пользователей - <font class=\"tonav\">28739</font>&nbsp;&nbsp;</td></tr><tr bgcolor=\"83A3BC\"><td height=1 colspan=2><img src=\"http://www.business.su/old/1.gif\" height=1></td></tr></table><table  cellspacing=0 cellpadding=0  height=\"0%\"> 
<tr> <td class=\"w10othr\" height=\"30\"> <h3>Деловой портал СНГ</h3></td></tr> <tr> 
<td class=\"do\"> <h1><img src=\"http://www.business.su/old/1.gif\" height=15><br> Поиск по сайту </h1><span style=\"position: relative; top: -30px; right: 5px; float: right;\"><a href=\"http://www.business.su/old/map.php\" class=\"ob1\" style=\"font-size: 7pt\"> 
Карта сайта </a></span></td></tr></table><table  cellspacing=5 cellpadding=10 bgcolor=\"F4F3F3\" style=\"line-height: 150%;border-bottom: none\" border=\"1\" bordercolor=\"#666666\"> <tr><td width=\"100%\" class=\"tl\" colspan=2>&nbsp;<b>Доски объявлений:</b>&nbsp;&nbsp;&nbsp;<a href=\"http://www.business.su/old/choisedpodr.php\" class=rd5>Продажа бизнеса. Коммерческая недвижимость. Аренда</a> <img src=\"http://www.business.su/old/star6.gif\"> <a href=\"http://www.business.su/old/choisedpodrnotpb.php?doskispodr=8\" class=rd5>Жилая недвижимость</a> <img src=\"http://www.business.su/old/star6.gif\"> <a href=\"http://www.business.su/old/choisedpodrnotpb.php?doskispodr=7\" class=rd5>Оборудование</a> <img src=\"http://www.business.su/old/star6.gif\"> <a href=\"http://www.business.su/old/choisedpodrnotpb.php?doskispodr=4\" class=rd5>Партнерство</a> <img src=\"http://www.business.su/old/star6.gif\"> <a href=\"http://www.business.su/old/choisedpodrnotpb.php?doskispodr=5\" class=rd5>Поиск работы</a><br><img src=\"http://www.business.su/old/1.gif\" height=3></td></tr>
<tr><td style=\"font-weight: normal; color: 777777; border-bottom: none\" width=\"70%\" class=\"tl\">";

$SrcEncoding="utf8";
$DstEncoding="win";

$query = param("query");
$query =~ s/&//;
$query =~ s/"//;
$query =~ s/>//;
$query =~ s/<//;
$query =~ s/'//;
$page = param("page");
#&get_parameters(*FormParameters);
#my $query=FormParameters{'quer'};
my %params = ('query',$query,'host','www.business.su','page',$page,'request',undef);
my $host   = $params {'host'} || 'www.yandex.ru';
   my $htc = HTML::Template::Compiled->new(
		plugin => [qw(HTML::Template::Compiled::Plugin::XMLEscape)],
		tagstyle => [qw(-classic -comment -asp +tt)],
		scalarref => \'[%= cdata escape=XML %]',
		default_escape => 'XML_ATTR',
	);
my $page   = $params {'page'} || '0';
my $query  = $params {'query'};
#$query=uri_escape($query);
	$htc->param(
		attr => '',
		cdata => $query,
	);
   my $esc=$htc->output;

my $host   = $params {'host'} || 'www.yandex.ru';

	$htc->param(
		attr => '',
		cdata => $host,
	);
   my $ehost=$htc->output;

	$htc->param(
		attr => '',
		cdata => "<< host=\"$ehost\"",
	);
   my $search_tail=$htc->output;
#print $search_tail;

my $page   = $params {'page'} || 0;
my $reqid  = $params {'request'} || undef;

my $ua = LWP::UserAgent->new;
$ua -> agent("Bond, James Bond/0.07");

my $exit  = 1;
$exit = 0 unless ($query eq '' and $reqid eq '');

my $found = 0;
my $pages = 10;

my $xml;

# выводим форму с запросом.
$FormToPrint="<form method='POST' accept-charset='windows-1251' action='site-search.pl'> 
<table> <tr> <td><b>Запрос: </b> </td><td><input type='text' name='query' id='query' value='".$query."'/ size=50 maxlength=150></td></tr> 
<tr> <td/> <td><input type=\"submit\" value=\"Найти!\"/><br><br></td></tr> </table></form><br>";

if ($query and not $exit)
	{
	my $reqid_tag = '';
	$reqid_tag = "	<reqid>$reqid</reqid>"
	if (defined $reqid and $reqid ne '');

	# XML запрос
	my $doc ="<?xml version=\"1.0\" encoding=\"windows-1251\"?>
	<request>
	<query>$esc $search_tail</query>
	$reqid_tag
	<groupings>
	<groupby attr=\"d\" mode=\"flat\" groups-on-page=\"10\"  docs-in-group=\"1\" />
	</groupings>
	<page>$page</page>
	</request>";
#print $doc;
	my $req = HTTP::Request -> new
	  ( POST => 'http://xmlsearch.yandex.ru/xmlsearch/');
	$req -> content_type ('application/xml');
	$req -> content ($doc);
	my $response = $ua -> request ($req);
	$xml = $response -> content;
	if ($response -> is_success)
		{
		$xml = XML::XPath -> new ( xml => $xml );
	
		my $error = $xml -> findvalue ('/yandexsearch/response/error');
		$reqid	= $xml -> findvalue ('/yandexsearch/response/reqid');
		my $found = $xml -> findvalue ("/yandexsearch/response/found[\@priority='all']");
		my @found = $xml -> findnodes ("/yandexsearch/response/results/grouping/group/doc");
		if ("$error" ne '')
			{
			$error=Convert::Cyrillic::cstocs ($SrcEncoding,$DstEncoding, "$error");
			if($error ne 'Искомая комбинация слов нигде не встречается')
				{
				print "<p style=\"font-size: 12pt;\"><b>Ошибка: ", $error, "</b></p>";
				}
			else
				{
				print "<p style=\"font-size: 12pt;\"><b>Ничего не найдено!</b></p>";
				}
			print $FormToPrint;
			}
		else
			{
			
			print "&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"http://www.yandex.ru\" target=\"_blank\"><img src=\"http://www.business.su/old/yandex.png\" style=\"border: none; margin: -4 0 0 0px;\"></a><span style=\"font-size: 12pt; font-weight: bold; vertical-align: top;\"> нашел $found страниц</span><br/>\n";
			print $FormToPrint;
			print "<ol start='", $page * 10 + 1, "'>\n";
			$toprint="";
			foreach (@found)
				{
				$toprint.="<li>";
				$toprint.="<a href='";
				$toprint.=$xml -> findvalue ('url', $_);
				$toprint.="'>";
				$toprint.=$xml -> findvalue ('title', $_);
				$toprint.="</a><br/>\n";
				$toprint.="<ul>";
				my @passages = $xml -> findnodes ('passages/passage', $_);
				$numpass=1;
				foreach (@passages)
					{
					 if($numpass==1)
						{
						$toprint.="<li>";
						$toprint.=$_ -> string_value;
						$toprint.="</li><br/>\n";
						$numpass=2;
						}
					}
				$toprint.="<span style='color: gray'>";
				$toprint.=$xml -> findvalue ('url', $_);
				$toprint.="</span>";
				$toprint.="</ul></li><br/>\n";
				}
			print Convert::Cyrillic::cstocs ($SrcEncoding,$DstEncoding, $toprint); 
			print "</ol>\n";
			&print_pager ($found, $reqid, $page);
			}
		}
	else
		{
		print warn "response from server not succeed\n\ndetails: ".$response -> {'code'}." ".$response -> {'message'};
		print "Внутренняя ошибка сервера.\n\n";
		print $FormToPrint;
#		print  $response{'message'};
		$exit = 1;
		}
	}
else
	{
	print $FormToPrint;
	}

sub print_pager
	{
	my $found_links   = shift;
	my $reqid		 = shift;
	my $page		  = shift || 0;
	my $links_on_page = shift || 10;
	
	
	print "<a href='?page=", $page - 1, "&query=", $query, "&request=$reqid'>&larr;&nbsp;предыдущая</a>&nbsp;"
	  unless $page == 0;
	
	print " страница № ", $page + 1;
	
	print "&nbsp;<a href='?page=", $page + 1, "&query=", $query, "&request=$reqid'>следующая&nbsp;&rarr;</a>&nbsp;"
	  if int($found_links) > ($page + 1) * $links_on_page;
	}
print "</td><td style=\"font-weight: normal; color: 777777; border-bottom: none\" width=\"30%\" class=\"tl\">";
print "<a href=\"http://www.business.su/old/reklama.php\" class=bb> 
<center style=\"background-color: E3E2E2; padding: 3px\"><h3>Эксклюзив</h3></center>
</a>";
if ($query)
	{
	$QueryForYdirect = uri_escape($query);
	print "<script type=\"text/javascript\"><!--
// Размер шрифтов
var yandex_ad_fontSize = 1;

// Настройки объявлений Директа
var yandex_direct_fontColor = '000000';
var yandex_direct_BorderColor = 'FBE5C0';
var yandex_direct_BgColor = 'E3E2E2';
var yandex_direct_headerBgColor = 'FEEAC7';
var yandex_direct_titleColor = '0000CC';
var yandex_direct_siteurlColor = '006600';
var yandex_direct_linkColor = '0000CC';

function yandex_direct_print(){ }

var yandex_r = Math.round(Math.random() * 100000);
document.write('<sc'+'ript type=\"text/javascript\" src=\"http://an.yandex.ru/code/12355?rnd=' + yandex_r + '&text=".$QueryForYdirect."&page-no=".($page+1)."\"></'+'sc'+'ript>');
//--></script>

<!-- Яндекс.Директ должен быть размещен на первом экране страницы с
результатами поиска -->
<script type=\"text/javascript\">yandex_direct_print()</script>";
	}
print "</td></tr></table><table cellspacing=0 cellpadding=0 height=\"81\" bgcolor=\"#F4F3F3\" width=\"100%\"><tr style=\"padding: 5px\"><tr><td class=mc colspan=3><script type=\"text/javascript\">
var uri = 'http://impru.tradedoubler.com/imp?type(js)g(17281488)a(1497641)' + new String (Math.random()).substring (2, 11);
document.write('<sc'+'ript type=\"text/javascript\" src=\"'+uri+'\" charset=\"ISO-8859-1\"></sc'+'ript>');
</script></td></tr><tr><td style=\"padding: 5px\" class=mc width=\"100%\" colspan=3></td></tr><tr> <td style=\"height: 1px\" bgcolor=\"#888888\" width=\"100%\" colspan=\"3\"></td></tr> 
<tr> <td class=\"mc\" height=\"79\" rowspan=\"2\" width=\"20%\"><img src=\"http://www.business.su/old/1.gif\" width=\"154\" height=\"1\"><br> 
<noindex><!--begin of Top100 logo--> <a href=\"http://top100.rambler.ru/top100/\"> 
<img src=\"http://top100-images.rambler.ru/top100/banner-88x31-rambler-darkblue2.gif\" alt=\"Rambler's Top100\" width=88 height=31 border=0></a> 
<!--end of Top100 logo --> <br> <img src=\"http://www.business.su/old/1.gif\" width=\"10\" height=\"5\"><br> <!--Rating@Mail.ru LOGO--><a target=_top
href=\"http://top.mail.ru/jump?from=668562\"><img
src=\"http://top.list.ru/counter?id=668562;t=56;l=1\"
border=0 height=31 width=88
alt=\"Рейтинг@Mail.ru\"/></a><!--/LOGO--></noindex> </td><td class=\"mc\" height=\"49\" width=\"63%\"><a href=\"http://www.business.su/old/takeparfornews.php\" class=\"ba\">Добавить&nbsp;новость</a> 
| <a href=\"http://www.business.su/old/addob2.php\" class=\"ba\">Дать&nbsp;объявление</a> | <a href=\"http://www.business.su/old/catalogregistration.php\" class=\"ba\">Добавить 
сайт</a></td><td class=\"mc\" height=\"79\" rowspan=\"2\" width=\"17%\"><img src=\"http://www.business.su/old/1.gif\" width=\"169\" height=\"1\"><br> 
<noindex><a href=\"http://search.yaca.yandex.ru/yca/cy/ch/www.business.su/\" target=_blank><img border=0 width=88 src=\"http://www.yandex.ru/cycounter?www.business.su\" alt=\"Business.su - Индекс Цитирования Яndex\" height=31></a><br> 
<img src=\"http://www.business.su/old/1.gif\" width=\"10\" height=\"5\"><br> <span class=rcd><!--begin of Kvartirant.RU RATING--> 
<a href=\"http://www.kvartirant.ru\"> <img src=\"http://www.kvartirant.ru/counter.php?site=512\" alt=\"НЕДВИЖИМОСТЬ И СТРОИТЕЛЬСТВО\" width=88 height=31 border=0></a> 
<!--end of Kvartirant.RU RATING--></span></noindex> </td></tr> <tr> <td class=\"mc\" height=\"30\" width=\"63%\" style=\"color: #555555\">Все 
права защищены и охраняются законом - &copy; 2004-2007 Max House Group, JSC<br> 
Перепечатка материалов разрешена только со ссылкой на <a href=\"http://www.business.su/old\" class=\"rd2\">www.Business.su</a> 
<br> <img src=\"http://www.business.su/old/1.gif\" width=\"10\" height=\"5\"> </td></tr> <tr> <td style=\"height: 1px\" bgcolor=\"#888888\" width=\"100%\" colspan=\"3\"></td></tr> 
</table><table cellspacing=0 cellpadding=3 width=\"100%\"> <tr style=\"background-color: #F4F3F3; font-size: 7pt; margin: 10px\"> 
<td>&nbsp;</td><td style=\"color: 000000\" class=mc><b>Доски объявлений:</b>&nbsp;&nbsp;&nbsp;<a href=\"http://www.business.su/old/choisedpodr.php\" class=rd5>Продажа 
бизнеса. Коммерческая недвижимость. Аренда</a> <img src=\"http://www.business.su/old/star6.gif\"> <a href=\"http://www.business.su/old/choisedpodrnotpb.php?doskispodr=8\" class=rd5>Жилая 
недвижимость</a> <img src=\"http://www.business.su/old/star6.gif\"> <a href=\"http://www.business.su/old/choisedpodrnotpb.php?doskispodr=7\" class=rd5>Оборудование</a> 
<img src=\"http://www.business.su/old/star6.gif\"> <a href=\"http://www.business.su/old/choisedpodrnotpb.php?doskispodr=4\" class=rd5>Партнерство</a> 
<img src=\"http://www.business.su/old/star6.gif\"> <a href=\"http://www.business.su/old/choisedpodrnotpb.php?doskispodr=5\" class=rd5>Поиск 
работы</a></td><td>&nbsp;</td></tr> <tr style=\"background-color: #F4F3F3; font-size: 7pt; margin: 10px\"> 
<td><img src=\"http://www.business.su/old/1.gif\" width=20 height=1></td><td style=\"color: 000000\" class=mc><a href=\"http://www.business.su/old/cgi-bin/site-search.pl\" class=ba2>Поиск&nbsp;по&nbsp;сайту</a> - <a href=\"http://www.business.su/old/choisedmainrazd.php\" class=ba2>Таблица&nbsp;предложений&nbsp;о&nbsp;продаже&nbsp;бизнеса&nbsp;и&nbsp;недвижимости</a> - <a href=\"http://www.business.su/old/ratinglist.php\" class=\"ba2\">Рейтинг&nbsp;продавцов</a> - <a href=\"http://www.business.su/old/private.php\" class=\"ba2\">Личная&nbsp;страница</a> 
- <a href=\"http://www.business.su/old/map.php\" class=\"ba2\">Карта&nbsp;сайта</a> - <a href=\"http://www.business.su/old/makesubscr.php\" class=\"ba2\">Подписка</a> 
- <a href=\"http://www.business.su/old/faq.php\" class=\"ba2\">FAQ</a><br> <a href=\"http://www.business.su/old/reklama.php\" class=\"rd\">РЕКЛАМА&nbsp;НА&nbsp;САЙТЕ</a> 
- <a href=\"http://www.business.su/old/partnerstvo.php\" class=\"ba2\">Партнерская&nbsp;программа</a> - <a href=\"http://www.business.su/old/contact.php\" class=\"ba2\">Контакты</a> 
- <a href=\"http://www.business.su/old/license.php\" class=\"ba2\">Лицензионное&nbsp;соглашение</a></td><td><img src=\"http://www.business.su/old/1.gif\" width=20 height=1></td></tr> 
<tr> <td style=\"height: 1px\" bgcolor=\"#aaaaaa\" width=\"100%\" colspan=\"3\"></td></tr> 
</table></body></html>";
