<?
  require_once('define.php');
  require_once('functions.php');
  require_once('funcs2.php');
  require_once('funcs4ajax.php');
  require_once('fuphotos.php');
  require_once('connect.php');

  if(isset($_GET['d']) && $_GET['d']=='20091024')
   {
	header('Location: http://www.sarov.net/photo/vypusk2011/');
	return;
   }	
/*  
  if(isset($_GET['id']) && $_GET['id']==28304)
   {
	header('Location: http://ok.ru/');
	return;
   }	
*/
  $forwarded = substr(getenv('HTTP_X_FORWARDED_FOR'),0,7);
  if( $forwarded=='95.163.'
   || $forwarded=='10.248.'
   || $forwarded=='10.251.'
  )
   {
    $list = array();
	$listfile = WorkDir.'95.163.log';
	if(file_exists($listfile))
	 {
	  $list = explode("\n",file_get_contents($listfile));
	  $ip = getenv('REMOTE_ADDR');
	  for($i=0; $i<count($list); $i++)
	  	if( $ip == $list[$i] ) {$ip='';break;}
	  if(!empty($ip)) $list[] = $ip;
	 }
	file_put_contents( $listfile, implode("\n",$list) );
   }
  
  $on_page = 20; // выводить по ... новостей на странице
  $numim = 30; // выводить "Популярные новости" за последние ... дней
  $importantnews = 6; // Подробности
  $popularnews =  8; // популярных новостей
  $catblocknews = 6; // новостей в блоке по категории

  $editor = in_array($login_id,array(1,13,16,18,7860));

  $site_id = 4; // 'news';
  $vote_multiply = 100; // каждый голос "за" добавляет к рейтингу популярных +100 просмотров
  $comm_multiply = 20; // каждый комментарий добавляет к рейтингу популярных +10 просмотров
  $rating_sql = "messages_views.views+$vote_multiply*messages_views.vplus+$comm_multiply*comments AS rating";//-$vote_multiply*messages_views.vminus отрицательные не влияют

  $mainurl = '/news/';
  
  //
  // Входящие параметры
  //

  $id	= isset($_GET['id']) ?intval($_GET['id']):0;
  if($id<0) $id=0;
  $d	= isset($_GET['d'])  ?intval($_GET['d']):0;
  $c	= isset($_GET['c'])  ?intval($_GET['c']):0;
  $w	= isset($_GET['w'])  ?intval($_GET['w']):0;
  $m	= isset($_GET['m'])  ?intval($_GET['m']):0;
  $s	= isset($_GET['s'])  ?trim($_GET['s']):'';
  $sort	= isset($_GET['sort'])?intval($_GET['sort']):1;
  $page = isset($_GET['p'])  ?intval($_GET['p']):1;
  $num  = isset($_GET['n'])  ?intval($_GET['n']):0;
  //$mode = isset($_GET['txt'])?trim($_GET['txt']):'';; // показываем сообщения. бывает full,cut и title
  $mode='';//if($mode!='cut'&&$mode!='full'&&$mode!='title')$mode='';
  if($num<1)$num=$on_page;
  $theme= isset($_GET['theme'])	? intval($_GET['theme']) :0;
  if(!$theme)
    $theme = isset($_GET['tag'])? intval($_GET['tag']) :0;
  $tag = 0;
  $person= isset($_GET['person'])?intval($_GET['person']) :0;


  if(!empty($s))
   {
	  if(empty($mode)) $mode='cut';
	  // поключаем phpmorphy
	  include_once('morphy.php');
   }
  
  //
  // Текущая дата
  //
  if($d>0)
   {
	$Year	= substr("$d",0,4);
	$Month	= substr("$d",4,2);
	if($Month<1||$Month>12) $Month=date("m");
	$Day 	= substr("$d",6,2);
	if($Day<1||$Day>31) $Day=date("d");
	$d2get	= (($Year.$Month.$Day)==date("Ymd")?"":$d);
   }
  elseif($w>0)
   {
	$Year	= intval($w/100);
	$Week	= intval($w%100);
	$Month	= date("m");
	$Day	= date("d");
   }
  elseif($m>0)
   {
	$Year	= intval($m/100);
	$Month	= intval($m%100);
	$Day	= date("d");
   }
  else
   {
	$Year	= date("Y");
	$Month	= date("m");
	$Day	= date("d");
	$d2get	= "";
   }
  if($Year<2000) $Year	= date("Y");
  if($Month<10)	 $Month	= "0".intval($Month);
  if($Day<10)	 $Day	= "0".intval($Day);
  $d2day = $Year.$Month.$Day;
  $Today = "$Year-$Month-$Day";

  $uri = getenv('REQUEST_URI');
  $uri = str_replace(rtrim($mainurl,'/'),'',$uri);
  $caturi = search($uri,'/','/'); 

  // Категории
  $catslist = array();
  $catsurls = array();
  $r = my_mysql_query('SELECT id,name,url FROM news_cats ORDER BY id');
  while($f = mysql_fetch_object($r))
   {
	$catslist[$f->id] = $f->name;
	$catsurls[$f->id] = $f->url;
	if($caturi && $caturi==$f->url)
	  $c = $f->id;
   }
  
  $h1 = '<a href="'.$mainurl.'">Новости</a>';

  //
  // Собираем запрос для sql
  //
  $pagesurl = '<a href="'.$mainurl;
  if($c>0) 
	$pagesurl.= isset($catsurls[$c]) ? $catsurls[$c].'/': '?c='.$c;

  $fields = '';
  $from = 'messages';
  $where = "messages.site_id=$site_id";
  $wheretime = '';
  $orderby = '';

  if($id) // одно сообщение
   {
	$where.= " AND messages.id=".$id;
	$mode = 'full';
	$limit = '1';
   }
  else
   {
	$where.=' AND messages.show4all';
	$wheretime = ' AND messages.time<NOW()';//' AND messages.time<"'.SQLTOMORROW.'"';
	$orderby = 'messages.time DESC';
	$limit = ($page==1) ? $num : abs($page-1)*$num.','.$num;
	if($c>0) // Главная категория
	 {
	  $from .= ' LEFT JOIN news2cats ON messages.id=news2cats.news_id';
	  if(intval($c%100)==0)
		$where.= " AND news2cats.cat_id>=$c AND news2cats.cat_id<".($c+100);
	   else
		$where.= " AND news2cats.cat_id=$c";
	  $h1.=': <a href="'.$mainurl.$catsurls[$c].'/">'.catnamecut($catslist[$c]).'</a>';
	 }

	if($theme)
	 {
	  $it = 'theme';
	  $from .= ' LEFT JOIN news2'.$it.'s ON messages.id=news2'.$it.'s.news_id';
	  $where.= ' AND news2'.$it.'s.'.$it.'_id='.$theme;
	  $r = my_mysql_query('SELECT * FROM news_'.$it.'s WHERE id='.$theme);
	  $themename = (($theme_rec=mysql_fetch_object($r))? $theme_rec->name : '');
	  $h1 .= ' по теме <a href="'.$mainurl.'?theme='.$theme.'">'.$themename.'</a>';
	  $pagesurl.='?theme='.$theme;
	  $mode=(empty($mode)?'title':$mode);
	 }
	elseif($tag)
	 {
	  $it = 'tag';
	  $from .= ' LEFT JOIN news2'.$it.'s ON messages.id=news2'.$it.'s.news_id';
	  $where.= ' AND news2'.$it.'s.'.$it.'_id='.$tag;
	  $r = my_mysql_query('SELECT * FROM news_'.$it.'s WHERE id='.$tag);
	  $tagname = (($tag_rec=mysql_fetch_object($r))? $tag_rec->name : '');
	  $h1 .= ' по тэгу <a href="'.$mainurl.'?tag='.$tag.'">'.$tagname.'</a>';
	  $pagesurl.='?tag='.$tag; 
	  $mode=(empty($mode)?'title':$mode);
	 }
	elseif($person)
	 {
	  $it = 'person';
	  $from .= ' LEFT JOIN news2'.$it.'s ON messages.id=news2'.$it.'s.news_id';
	  $where.= ' AND news2'.$it.'s.'.$it.'_id='.$person;
	  $r = my_mysql_query('SELECT * FROM news_'.$it.'s WHERE id='.$person);
	  $personname = (($person_rec=mysql_fetch_object($r))? $person_rec->name : '');
	  $h1 .= ' по персоне <a href="'.$mainurl.'?person='.$person.'">'.$personname.'</a>';
	  $pagesurl.='?person='.$person; 
	  $mode=(empty($mode)?'title':$mode);
	 }
	elseif($w) // за неделю
	 {
	  $from .= ' LEFT JOIN messages_views ON messages.id=messages_views.id';
	  list($day1,$day2) = getWeekDates($Year,$Week);
	  $day2.=' 23:59:59';
	  $wheretime = " AND messages.time BETWEEN '$day1' AND '$day2'";//IF(NOW()<'$day2',NOW(),'$day2')";
	  $orderby = ($sort==2?'messages.time':'rating').' DESC';
	  $h1 .= ' за неделю c '.DoubleDate($day1,$day2);
	  $limit = '';
	  $mode=(empty($mode)?'title':$mode);
	 }
	elseif($m) // за месяц
	 {
	  $from .= ' LEFT JOIN messages_views ON messages.id=messages_views.id';
	  $day1 = "$Year-$Month-01";
	  if($Year.$Month==date('Ym'))
	    $day2 = $Today.' 23:59:59';
       else
	    $day2 = "$Year-$Month-".DaysInMonth($Year,$Month).' 23:59:59';
	  $wheretime = " AND messages.time BETWEEN '$day1' AND '$day2'";//IF(NOW()<'$day2',NOW(),'$day2')";
	  $orderby = ($sort==2?'messages.time':'rating').' DESC';
	  $h1 .= ' за '.mystrtolower(CMonth($Month)).' '.$Year;;
	  $limit = '';
	  $mode=(empty($mode)?'title':$mode);
	 }

	if(!empty($s)) // поиск
	 {
	  $baseform = Words2BaseForm($morphy,$s);
	  if(empty($baseform))
		$searchcancel = true;
	   else
	    {
		$tmp = explode(' ',$s);
		$baseform = '';
		foreach($tmp as $tmps)
		 if(strlen($tmps)>2)
		  $baseform .= '+'.$tmps.' ';
		$baseform = mystrtoupper(trim($baseform));	 	  
		/*
		SELECT SQL_CALC_FOUND_ROWS *,
		MATCH (text,text_index) AGAINST (’>”отпуск за работу” <(+отпуск +работа)’ IN BOOLEAN MODE) AS rel
		FROM table
		WHERE MATCH (text,text_index) AGAINST ('>”отпуск за работу” <(+отпуск +работа)' IN BOOLEAN MODE)
		ORDER BY rel DESC LIMIT 0, 10
		*/
		$tmp = 'MATCH (morph) AGAINST (\'>"'.sql(mystrtoupper($s)).'" <('.sql($baseform).')\' IN BOOLEAN MODE)';
		$fields = $tmp.' AS rel';
		$where .= ' AND '.$tmp;
		$orderby = ($sort==2?'rel DESC':'messages.time DESC');
	   }
	  $h1 .= ': Поиск "'.my_htmlspecialchars($s).'"';
	  $pagesurl.='?s='.urlencode($s); 
	  $mode=(empty($mode)?'title':$mode);
	 }

	if($caturi=='comments') // лента комментариев к новостям
	 {
	  $where .= ' AND messages.comments';
	  $orderby = 'messages.last_comment DESC';
	  $h1 .= ': Обсуждения новостей';
	  $pagesurl.='comments/';
	  $mode=(empty($mode)?'title':$mode);
	 }
   }
  $mode=(empty($mode)?'cut':$mode);
  $pagesurl.=(strpos($pagesurl,'?')?'&':'?');

  $centersql = "FROM $from WHERE $where ".($wheretime?$wheretime:'').($orderby?" ORDER BY ".$orderby:'');
  // Всего новостей (страниц)
  if($page==1 && empty($s) && !$id && !$c && $caturi!='comments' && !$theme && !$tag && !$person)
	$pages = 6;
  else
	list($page,$pages) = paginationcnt('SELECT COUNT(messages.id) '.$centersql,$page,$num);

  // Запрос сообщений и Сбор новостей в массив
  $centersql = "SELECT messages.id,messages.time,messages.icon,
		messages.subject,messages.subsubject,messages.mess,messages.show4all,
		messages.comments,messages.last_comment".($m||$w?",messages_views.views,$rating_sql":'')
  					.($fields?','.$fields:'')." $centersql ".($limit?"LIMIT ".$limit:'');
  //if($c_l=='VVV') echo '<!--'.$centersql.'-->';
  $ids_array = array();
  if(!isset($searchcancel))
   {
	  $rcenter = my_mysql_query($centersql);
	  $news = array();
	  while($item=mysql_fetch_object($rcenter))
	   {
		$news[$item->id] = $item;
		$ids_array[] = $item->id; 
	   }
   }
  else $news = array();







  //
  // Начинается вывод html
  //

  // заголовок страницы
  $TITLE = 'Новости';
  reset($news);
  if($theme && $theme_rec)
	$TITLE = $theme_rec->name.' в новостях на Саров.Net';
  elseif($tag && $tag_rec)
	$TITLE = $tag_rec->name.' в новостях на Саров.Net';
  elseif($person && $person_rec)
	$TITLE = $person_rec->fio.' в новостях на Саров.Net';
  elseif($id && $item = current($news))
	$TITLE = my_htmlspecialchars( substr( subsubject($item->subject, $item->subsubject), 0,150) );

  // RSS
  if(substr($uri,strlen($uri)-3)=='rss' || isset($RSS) || isset($RSSFULL) )
   {
	$title = 'Информационное агентство Саровские '.strip_tags($h1);
	$desc = 'Ежедневные новости города Сарова: политика, экономика и бизнес, общество, наука и образование, происшествия, культура и спорт.';
	$kolvo = 20;
	$list = array();
	foreach($news as $item)
	 {
	  $url = trim($httpwwwsarovnet,'/').$mainurl.'?id='.$item->id;
	  $mess = mess_cut(pre_message($item->mess,false)).' <a href="'.$url.'">далее &raquo;</a>';
	  $temp = array(
    	'url'		=> $url,
    	'time'		=> $item->time,
    	'subject'	=> subsubject($item->subject, $item->subsubject),
    	'mess'		=> $mess
		);
	  if(isset($RSSFULL))
		$temp['yandex'] = pre_message($item->mess,false).'<br> <a href="'.$url.'">Источник</a>';
	  $list[] = $temp;
	 }
	$userurl = $httpwwwsarovnet;
	$imageurl = $httpwwwsarovnet.'i/l.gif';
	include('rssfeed.php');
	return;
   }


  $SCRIPT_STYLE = '<link rel="search" href="/i/f-n.xml" title="Саровские новости" type="application/opensearchdescription+xml">';
  if( !defined('MOBILE') ) $SCRIPT_STYLE .= link_css('n');
  if( isset($item) && isset($item->subject) )
   {
    $SCRIPT_STYLE .= '<meta name="title" content="'
		.my_htmlspecialchars(subsubject($item->subject,$item->subsubject)).'">';
    $META_DESCRIPTION = strip_tags(mess_cut(pre_message($item->mess,false)));
    $image_src = '';
	if(substr($item->icon,0,1)=='u')
		$image_src = 'i/i/'.$item->icon;
	elseif(substr($item->icon,0,2)=='/p')
		$image_src = trim(str_replace('_','',$item->icon),'/');
	if(!empty($image_src))
	{
	    $SCRIPT_STYLE .= '<link rel="image_src" href="'.$httpwwwsarovnet.$image_src.'" />';
	    $OG_IMAGE = $httpwwwsarovnet.$image_src;
	}
   }
  $RSSTITLE = 'Саровские новости '.($c?'':'').'по RSS';
  $RSSFEED = trim($httpwwwsarovnet,'/').$mainurl.($c?$catsurls[$c].'/':'').'rss';
  require_once('html_1.php');

  //
  // НАЧАЛО ГЛАВНОЙ ТАБЛИЦЫ
  //

  if(!defined('MOBILE'))
    echo '<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr valign="top"><td colspan="3" style="height:40px">';

  echo '<h1>'.$h1.' &nbsp;'.rss_button($RSSFEED,$RSSTITLE).'</h1>';
  if($caturi!='comments'&&!defined('MOBILE'))
	echo '&nbsp;<a style="position:relative;top:-10px;font-size:11px;font-family:Arial" href="'.$mainurl.'comments/">Обсуждения новостей &raquo;</a>';

  //
  // Левый и правый столбцы
  //

  if(!defined('MOBILE'))
   {

	echo '</td><td rowspan="2" width="20"><img src="/i/b.gif" width="20" height="1" border="0" alt=""></td><td width="200" id="newsr" rowspan="2">';

    //
    // Правый столбец
    //
    
	// баннер
	include('banner_right.php');
	echo '<div class="clearfix"></div><br><br>';
	
	// заголовки
	rightblock('<a href="'.$mainurl.'">Последние новости</a>',"AND time<'".SQLTOMORROW."' ORDER BY time DESC LIMIT ".$importantnews);
	/*
	if($id&&$item&&isset($cats[$item->id]))
	  foreach($cats[$item->id] as $cat_id=>$cat_name)
		rightblock($cat_name,"SELECT messages.id,messages.time, messages.subject,messages.subsubject FROM messages LEFT JOIN news2cats ON messages.id=news2cats.news_id WHERE messages.site_id=$site_id AND messages.show4all AND messages.time<'".SQLTOMORROW."' AND news2cats.cat_id=$cat_id ORDER BY messages.time DESC LIMIT ".$catblocknews);
	*/
	//rightblock('Подробности',"AND anons=1 AND time<'".SQLTOMORROW."' ORDER BY time DESC LIMIT ".$importantnews);
	//rightblock('Популярные',"SELECT id,time, subject,subsubject,$rating_sql FROM messages WHERE site_id=$site_id AND show4all AND time BETWEEN '".date('Y-m-d',time()-60*60*24*$numim)."' AND '".SQLTOMORROW."' ORDER BY rating DESC LIMIT ".$popularnews);
	echo '<a href="'.$mainurl.'?m='.($m?$m:date('Ym')).'" style="font-size:11px">Все новости за месяц</a>';
	if( isset($sape_links) && !empty($sape_links) )
	  echo '<hr><small>Реклама: '.$sape_links.'</small>';
	$sape_links = '';

  //
  // Левый - Категории, календарь, еще что-то
  //

  echo '</td></tr><tr valign="top"><td width="130"><div id="newscats"><br>'/*<img src="/i/b.gif" width="130" height="5" border="0" alt="">'*/.(/*$c||$id||$w||$m||$caturi=='comments'?*/'<a href="'.$mainurl.'">Последние новости</a>'/*:''*/);
  $catmain = intval($c/100)*100;
  $insub = false;
  reset($catslist);
  foreach($catslist as $cat_id=>$cat_name)
   {
   	$parent_id = intval($cat_id/100)*100;
	if(substr($cat_name,0,1)=='-')
	 {
	  $cat_name = trim(substr($cat_name,1));
	  if(!$insub)
	    echo '<div id="cd'.$parent_id.'"'.($parent_id==$c?' class="active"':($parent_id!=$catmain?' class="hid"':'')).'>';
	  $insub = true;
	 }
	elseif($insub)
	 {
	  echo '</div>';
	  $insub = false;
	 }
	$url = $mainurl.$catsurls[$cat_id].'/'; //'/news2/?c='.$cat_id;
	if($cat_id==$parent_id) // пункт первого уровеня
	 {
	  if($cat_id==$c) // ткнутый - должен быть с [-] и серый
		$class = 'mactive';
	   elseif($cat_id==$catmain) // неткнутый, но ткнут подпункт [-]
		$class = 'm';
	   else // неткнутый и подпункт в другом меню [+]
		$class = 'p';
	 }
	 elseif($c==$cat_id)
	  $class = 'active';
	 else
	  $class = '';
	echo '<a onclick="return co(this)" id="cl'.$cat_id.'"'.($class?' class="'.$class.'"':'').' href="'.$url.'">'.$cat_name.'</a> ';
   }
  if($insub)echo'</div>';
  
?><br><br>
<form action="" method="get">
<input type="text" name="s" value="<?=my_htmlspecialchars($s)?>" style="display:block;float:right;border:1px solid #99f;font-size:11px;width:120px">
<input type="submit" value="Поиск" style="display:block;float:right;font-size:11px">
</form>
<div class="clearfix"></div><br>
<?
  echo '<a href="'.$mainurl.'?w='.date('Y').padl(date('W')-1,2,'0').'">Заголовки за неделю</a>';
  echo '<a href="'.$mainurl.'?m='.date('Ym').'">Заголовки за месяц</a>';
  echo '<a href="'.$mainurl.'comments/">Обсуждения новостей</a>';
  
  echo '</div></td><td width="20"><img src="/i/b.gif" width="20" height="1" border="0" alt=""></td><td>';
   } // !defined('MOBILE')
  
  
  //
  // Центральный столбец
  //

  echo '<div class="newsc">';
  
  if(isset($searchcancel))
   {
	//echo '<h1>По вашему запросу ничего не найдено :о(</h1>';
   }
  elseif($theme && $theme_rec)
   {
	if($theme_rec->show4all || isset($_GET['view']))
	 {
	  echo pre_message($theme_rec->descr).'<div class="clearfix"></div>';
	  uphotos_view('theme',$theme);
	  echo '<br><hr><br>';
	 }
	else
	  echo '<h1>'.$theme_rec->name.'</h1>';
   }
  elseif($tag && $tag_rec)
   {
	//echo '<h1>'.$tag_rec->name.'</h1>';
   }
  elseif($person && $person_rec)
   {
	
	if($person_rec->show4all || isset($_GET['view']))
	 {
	  if($page>1)
	    echo '<span class="a" onClick="$(\'personfull\').style.display=\'block\';this.style.display=\'none\'">[Развернуть описание]</span><br><div id="personfull" class="hid">';
	  echo '<h1>'.$person_rec->fio.'</h1>';
	  echo uphotos_main('person',$person,'left');
	  if(!empty($person_rec->dateborn))
	   {
	    if(strpos($person_rec->dateborn,'.')!==false)
	      $person_rec->dateborn = substr($person_rec->dateborn,6,4).'-'.substr($person_rec->dateborn,3,2).'-'.substr($person_rec->dateborn,0,2);
		echo 'Дата рождения: <b>'.FullDate($person_rec->dateborn).'</b><br>';
	   }	
	  if(!empty($person_rec->job))
		echo 'Должность: <b>'.$person_rec->job.'</b><br><br>';
	  echo pre_message($person_rec->descr).'<div class="clearfix"></div><br>';
	  if(count(uphotos_query('person',$person))>1)
		uphotos_view('person',$person);
	  echo '<hr>';
	  if($page>1)
		echo '</div>';	  
	  echo '<h1>Новости на сайте, в которых упомянут '.$person_rec->name.'</h1><br>';
	 }
   }
  
  $urlto = $pagesurl;
  if($w)
	$urlto .= 'w='.$w.'&';
  elseif($m)
	$urlto .= 'm='.$m.'&';
  if($page&& $page>1)
	$urlto .= 'p='.$page.'&';
  if($sort==2)
    $urlto .= 'sort=2&';

  if(!$id)
   {
    /*
	echo '<div align="right" style="padding-bottom:5px"><small>';
	echo ($mode=='title'?'<b>Заголовки</b>':$urlto.'txt=title" rel="nofollow">Заголовки</a>') . ' &nbsp;';
	echo ($mode=='cut'?'<b>1 абзац</b>':$urlto.'txt=cut" rel="nofollow">1 абзац</a>') . ' &nbsp;';
	echo ($mode=='full'?'<b>Текст целиком</b>':$urlto.'txt=full" rel="nofollow">Тексты целиком</a>');
	echo '</small></div>';
	if($mode=='title')
	  $pagesurl .= 'txt=title&';
	elseif($mode=='full')
	  $pagesurl .= 'txt=full&';
	*/
   }
  
  if($id)
    {}
  elseif($w)
	echo '<div align="right" style="padding-bottom:5px"><small>Сортировать: '.($sort==1?'<b>':'<a href="?w='.$w.'&sort=1">').'по популярности'.($sort==1?'</b>':'</a>').' '.($sort==2?'<b>':'<a href="?w='.$w.'&sort=2">').'по дате'.($sort==2?'</b>':'</a>').'</small><br><br></div>';
  elseif($m)
	echo '<div align="right" style="padding-bottom:5px"><small>Сортировать: '.($sort==1?'<b>':'<a href="?m='.$m.'&sort=1">').'по популярности'.($sort==1?'</b>':'</a>').' '.($sort==2?'<b>':'<a href="?m='.$m.'&sort=2">').'по дате'.($sort==2?'</b>':'</a>').'</small><br><br></div>';
  elseif($s)
	echo '<div align="right" style="padding-bottom:5px"><small>Сортировать: '
		.($sort==1?'<b>':'<a rel="nofollow" href="?s='.urlencode($s).'&sort=1">').'по дате'.($sort==1?'</b>':'</a>')
		.' '
		.($sort==2?'<b>':'<a rel="nofollow" href="?s='.urlencode($s).'&sort=2">').'по релевантности'.($sort==2?'</b>':'</a>')
		.'</small><br><br></div>';
  elseif($caturi=='comments')
	echo '<div align="right" style="padding-bottom:5px">Последний комментарий</div>';
  elseif(!$id)
   {
	if(file_exists(RootDir.$mainurl.'rekl.htm') && date('Ymd')<=20110720)
	  echo file_get_contents(RootDir.$mainurl.'rekl.htm');
   }
  
  //
  // Запрос категорий для этих новостей
  //
  $cats = array();
  if(count($ids_array))
   {
	$rcats = my_mysql_query('SELECT news_id,cat_id FROM news2cats WHERE news_id IN (' . implode(',',$ids_array) . ')');
	while($cat=mysql_fetch_object($rcats))
	 {
	  if(!isset($catslist[$cat->cat_id]))
	   {} // такой категории нет
	  elseif(isset($cats[$cat->news_id]))
		$cats[$cat->news_id][$cat->cat_id] = catnamecut($catslist[$cat->cat_id]);
	  else
		$cats[$cat->news_id] = array($cat->cat_id=>catnamecut($catslist[$cat->cat_id]));
	 }
   }
  //
  // Запрос голосов
  //
  $canvote = false;
  $voted = array(); // уже проголосовал 'm' или 'p'
  if($c_l && $login_id)
   {
	$canvote = true;
// в идеале она может показывать каждому его голос, но мы это отключаем
//	$rcats = my_mysql_query('SELECT rec_type,rec_id,minus,plus FROM votes 
//		WHERE rec_type=1 AND nick_id='.$login_id.' AND rec_id IN (' . implode(',',$ids_array) . ')');
//	while($f = mysql_fetch_object($rcats))
//	  $voted[$f->rec_id] = $f->minus?'m':($f->plus?'p':'');
   }

$time1 = getmicrotime()-$_StartTime;
$ttt=array();
$time2 = getmicrotime();

  //
  // вывод новостей
  //
  $h1day = '';
  if(count($news)==0)
   if(!empty($s))
    echo '<h1>По запросу "'.my_htmlspecialchars($s).'" ничего не найдено :o(</h1>';
   elseif($person)
    echo '<h1>По данной персоне сообщений не обнаружено</h1>';
   elseif($theme)
    echo '<h1>По данной теме сообщений не обнаружено</h1>';
   elseif($id)
    echo '<h1>Сообщение не найдено. Возможно, оно было удалено.</h1>';
   else
    echo '<h1>За указанный период ничего нет :o(</h1>';
    
  //
  // Цикл по сообщениям, выбранным в запросе
  //

  foreach($news as $item)
   {
	/*
	if(!$id && $h1day != substr($item->time,0,10))
	 {
	  $h1day = substr($item->time,0,10);
	  echo '<h1 class="h1day">'.CDayOfWeek(date('w',timeSQL2UNIX($h1day))).', '.FullDate($h1day).'&nbsp;</h1>';
	 }
	*/

	//$iconhtml = local_newsicon($item->icon);	
	$url = $mainurl.'?id='.$item->id.(!empty($s)?'&s='.my_htmlspecialchars($s):'');

	echo '<div class="clearfix"></div>';

	if($mode=='title') // только заголовки
	  {
	  	echo newstitle($item, ($caturi=='comments'?1:2));
	  }
	 else // другие два режима
	  {
	
	
	// время и категории
	$time_str = '<div class="time">'.FullDate($item->time);
	if(isset($cats[$item->id]))
	 {
	  foreach($cats[$item->id] as $cat_id=>$cat_name)
		$time_str.= (empty($catsstr)?' - ':' &nbsp;').'<a href="'.$mainurl.$catsurls[$cat_id].'/">'.$cat_name.'</a>';
	 }
	$time_str .= '</div>';

	// Заголовок и титульная картинка
	if($id && substr($item->icon,0,2)=='/p') // новый способ с титульным фото
	{
		//$uphotos = uphotos_query('news',$item->id);
		echo '<a name="h'.$item->id.'"></a><h1><a href="'.$url.'">' . $item->subject;
		if($item->subsubject)
		  echo '<span class="h5"><br>'/*.(!defined('MOBILE')?'&nbsp;':'')*/ . $item->subsubject . '</span>';
		echo '</a></h1>'.$time_str;
		echo '<p>'.($id?'':'<a href="'.$url.'">').'<img src="'.str_replace('_','',$item->icon).'" alt="'.my_htmlspecialchars($item->subject.' '.$item->subsubject).'" border="0" style="width:auto;max-width:100%;">'.($id?'':'</a>').'</p>';
	}
	else // старый способ для инонки
	{	
		echo '<a href="'.$url.'">'.local_newsicon($item->icon).'</a>';
		echo '<a name="h'.$item->id.'"></a><h1><a href="'.$url.'">' . $item->subject;
		if($item->subsubject)
		  echo '<span class="h5"><br>'/*.(!defined('MOBILE')?'&nbsp;':'')*/ . $item->subsubject . '</span>';
		echo '</a></h1>'.$time_str;
	}
	
	// подготовка сообщения
	$mess = trim($item->mess);
	$mess = (!empty($s)?Highlight($mess,$s):$mess);
	$mess = trim(pre_message($mess));
	while(substr(strtoupper($mess),strlen($mess)-4,4)=='<BR>')
	  $mess = trim(substr($mess,0,strlen($mess)-4));
	//echo '==='.my_htmlspecialchars(substr(strtoupper($mess),strlen($mess)-5,4));
	$newmess = '';
	$closediv = false;
	$full = false;
	$editor_link = ($editor?'&nbsp;&nbsp;<a target="_blank" href="/edit/?manage=news&edit=news&editmess='.$item->id.'">Правка</a>':'');

	if($id)
	 {
	  $mess = uphoto_tags('news',$id,$mess,'');
	  //if(!$item->show4all&&!$editor)
		//echo 'Сообщение закрыто';
      //else
		echo $mess;
	  $full = true;
     }
	else // лента - режем первый абзац
	 {
	  $len = 3000; // символов брать в ленте
	  if(($pos=strpos($mess,'<!--cut-->'))!==false) // указан тэг ката
	   {
		$newmess = substr($mess,0,$pos);
		echo $newmess;
		if(strlen($newmess)+10!=strlen($mess))
		  echo '<p class="more"><a href="'.$url.'"><b>Читать далее</b></a>'
		  	.'&nbsp;&nbsp;'.comments_link($url,$item->comments).$editor_link.'</p>';
	   }
	  elseif(strlen($mess)>$len) 	// ката нет, но сообщение слишком большое
	   {
		$newmess = mess_cut($mess,($mode=='cut'?0:$len)); // в режиме ката берем один абзац, иначе - много
		echo $newmess;
		if(strlen($newmess)+10!=strlen($mess))
		  echo '<p class="more"><a href="'.$url.'"><b>Читать далее</b></a>'
		  	.'&nbsp;&nbsp;'.comments_link($url,$item->comments).$editor_link.'</p>';
	   }
	  elseif($mode=='cut') 			// режим 1 абзаца
	   {
		$newmess = mess_cut($mess,0);
		echo $newmess;
	  	if(strlen($newmess)+10!=strlen($mess))
	  	 {
			echo '<p id="p'.$item->id.'" class="more"><a rel="nofollow" href="#h'.$item->id.'" onClick="return newse(1,'
			.$item->id.')">[Развернуть]</a> '
			.'&nbsp;&nbsp;'.comments_link($url,$item->comments)
			.'</p><div class="hid" id="ex'
			.$item->id.'"><noindex>'.substr($mess,strlen($newmess)).'</noindex>';//</div>';
			$closediv = true;
			$full = true;
		 }
	   }
	  else
	   {
		echo $mess;
		$full = true;
       }
	 }
	//echo '<div class="clearfix"></div><br>';

	if($full)
	 {
		// Комментарии и голоса
		//$myvote = isset($voted[$item->id])?$voted[$item->id]:'';
		echo '<p><br>';
		votes('news',$item->id, '','',/*$item->vminus,$item->vplus,*/ 'Неинтересная новость :(','Интересная новость!');
		share_buttons($mainurl.'?id='.$item->id, subsubject($item->subject,$item->subsubject));
		echo '&nbsp;&nbsp;'.comments_link($url,$item->comments).$editor_link;
		echo '</p>';
	 }

	if($closediv)
	  echo '</div>';

	if($id) // если страница одной новости
     {
	  //
	  // Фоточки
	  //

	  if(count( uphotos_query('news',$item->id) ) >1 )
		uphotos_view('news',$item->id);

	  //
	  // Другие сообщения по этой теме/тэгу/персоне
	  //

	  $its = array('theme'=>'теме','tag'=>'тэгу','person'=>'персоне');
	  foreach($its as $it=>$itname)
	   {
		$rthems = my_mysql_query('SELECT news_'.$it.'s.id,news_'.$it.'s.name FROM news2'.$it.'s LEFT JOIN news_'.$it.'s ON news2'.$it.'s.'.$it.'_id=news_'.$it.'s.id WHERE news2'.$it.'s.news_id='.$id);
		if(mysql_numrows($rthems)>0) // темы, привязанные к данному сообщению
		 {
		  while($theme = mysql_fetch_object($rthems)) // цикл по темам/тэгам/персонам
		  if(intval($theme->id))
		   {
			//$themes[$theme->id] = $theme->name;
			$radd = my_mysql_query('SELECT messages.id,messages.time,messages.subject,messages.subsubject,messages.comments FROM messages LEFT JOIN news2'.$it.'s ON messages.id=news2'.$it.'s.news_id WHERE messages.site_id='.$site_id.' AND news2'.$it.'s.'.$it.'_id IN ('.intval($theme->id).') AND messages.id!='.$id.' AND show4all AND messages.time<"'.SQLTOMORROW.'" ORDER BY messages.time DESC LIMIT 4');
			if(mysql_numrows($radd)>0)
			 {
			  echo '<BR><h1>также по '.$itname.' <a href="'.$mainurl.'?'.$it.'='.$theme->id.'">'.$theme->name.'</a></h1>';
			  for($i=1;$i<=min(mysql_numrows($radd),3);$i++)
			   {
				$fadd = mysql_fetch_object($radd);
				echo newstitle($fadd, 3);
			   }
			  if(mysql_numrows($radd)>3)
			    echo '<hr>Все новости по '.$itname.' <a href="'.$mainurl.'?'.$it.'='.$theme->id.'">'.$theme->name.'</a><br>';
			 }
		   }
		 }
	   }
	 }
	else
	  echo '<br><br>';
	
	} // if titles

    $ttt[] = $item->id.' end: '. (getmicrotime()-$time2);
   } // цикл по новостям
$time2 = getmicrotime()-$_StartTime-$time1;
$sql2 = $_MySQLCount;
     
  echo '</div>'; //newsc

  if($id)
  {
	  // Комментарии и форма
	  echo '<div class="clearfix"></div>';
	  comments('news',$item->id);
  }
  
  // назад-вперед, страницы
  if($w)
   {
	$pagesurl.='w=';
	echo '<div class="pages1"><br>';
	$wback = intval(date('Y').padl(date('W'),2,'0'));
	if($w<$wback)
	  echo $pagesurl.($w%100==52?$w+49:$w+1).'">&#8592;&nbsp;назад</a> &nbsp;';
	if($w>200000)
	  echo $pagesurl.($w%100==0?$w-49:$w-1).'">еще неделю&nbsp;&#8594;</a>';
	echo '</div>';
   }
  elseif($m)
   {
	$pagesurl.='m=';
	echo '<div class="pages1"><br>';
	if($m<date('Ym'))
	  echo $pagesurl.($m%100==12?$m+89:$m+1).'">&#8592;&nbsp;'.mystrtolower(CMonth($m%100==12?1:$m%100+1)).'</a> &nbsp;';
	if($m>200101)
	  echo $pagesurl.($m%100==1?$m-89:$m-1).'">'.mystrtolower(CMonth($m%100==1?12:$m%100-1)).'&nbsp;&#8594;</a>';
	echo '</div>';
   }
  elseif(!isset($searchcancel))
   {
	$pagesurl.='txt='.$mode.'&p=';
	pagination($pagesurl,$page,$pages);
   }

$time3 = getmicrotime()-$_StartTime-$time1-$time2;
$sql3 = $_MySQLCount;


  //
  // Правый столбец
  //
  if(!defined('MOBILE'))
   {
	echo '</td></tr></table>';
   } // !defined('MOBILE')
  
  // конец новостей
 
  // засчитываем просмотр загруженного
  if($id)
	my_mysql_query('UPDATE messages_views SET views=views+1 WHERE id='.$id);

  if($login_id==1) 
   {
	$time4 = getmicrotime()-$_StartTime-$time1-$time2-$time3;
	$sql4 = $_MySQLCount;
	echo "<!-- \r\n\r\n".$time1.' '.$time2.' '.$time3.' '.$time4
		."\r\n".$sql2.' '.$sql3.' '.$sql4
		."\r\n".($time1+$time2+$time3+$time4);
	print_r($ttt);
	echo "\r\n -->";
   }
  
  require_once('html_2.php');

  // конец



function newstitle($item,$mode='') // mode - 1=комментарии, 2=отзывы, 3-ничего.
{
  Global $mainurl,$login_level;
	$html = '';
  	$url = $mainurl.'?id='.$item->id.'#'.$item->comments;
	echo '<table width="500" cellspacing="0" cellpadding="3" border="0"><tr><td><a class="n" style="text-decoration:none" href="'.$url.'">' 
		. (isset($item->icon)? local_newsicon($item->icon) :'') . $item->subject;
	if($item->subsubject)
	  echo '<br><small>' . $item->subsubject . '</small>';
	echo '</a><br><small>'.FullDate(substr($item->time,0,11)).(isset($item->views)&&$login_level>5?' - просм.'.$item->views:'')
		.' - комментарии:&nbsp;' . $item->comments
		//.(substr($item->last_comment,0,1)!='0'?' ('.FullDate($item->last_comment).')':'')
		.'</small></td><td style="white-space:nowrap" align="right">';
	if($mode==1)
	  echo '<small>'.ShortMonth($item->last_comment).'</small>';
	 elseif(false)//$mode==2)
	  votes('news',$item->id, $item->vminus,$item->vplus, 'Неинтересная новость :(','Интересная новость!');
	$html .= '</td></tr></table>';
	return $html;
}

function local_newsicon($icon)
{
	Global $mode,$mainurl;
	$iconhtml = '';
	if(!empty($icon)&&!defined('MOBILE'))
	 {
	  $img = false;
	  if(file_exists(RootDir.$icon))
	    $img = $icon;
	  elseif(file_exists(RootDir.'i/i/'.$icon))
	    $img = '/i/i/'.$icon;
	  if($img)
	   {
		//$size=@GetImageSize(RootDir.$img);
		//$txt.= '<div style="width:42px;float:left;text-align:center"><img style="max-width:32px;max-height:32px;width:auto;height:auto;" src="'.$img.'" onMouseOver="resize_to(this,'.$size[0].','.$size[1].')" border="0" onClick="window.location=\''.$mainurl.'?id='.$fetch->id.'\'"></div>';
		$iconhtml = '<img src="/'.trim($img,'/').'" '.($mode=='title'?'width="32"':'').'border="0" alt="" align="left">';
	   }
	  elseif(substr($icon,0,1)!="u")
	   {
	    if( strpos($icon,'.')!==false) // заглушка для отрезания .gif
			$icon = substr($icon,0,strpos($icon,'.'));	  
		$iconhtml = '<span class="ni"><img src="/i/b.gif" class="i'.$icon.'" border="0" alt="" height="32" width="32" align="left" style="margin:5px 10px 10px 0"></span>';
	   }
	 }
	return (!empty($iconhtml)?$iconhtml:'');//<img src="/i/b.gif" width="32" height="32" border="0" alt="" align="left">'); 
}

function rightblock($title,$sql)
{
  Global $site_id,$mainurl;
  
  if(substr($sql,0,3)=='AND')
	$sql = "SELECT id,time, subject,subsubject FROM messages WHERE site_id=$site_id AND show4all ".$sql;

  $r = my_mysql_query($sql);
  $cnt = 1; $count = mysql_numrows($r);

  $ret = '<h2>'.$title.'</h2><table border="0" cellspacing="0" cellpadding="0"><tr valign="top"><td>';
  while($item = mysql_fetch_object($r))
   {
   	$ahref = '<a class="n" href="'.$mainurl.'?id='.$item->id.'">';//.(isset($item->rating)?' title="Рейтинг: '.$item->rating.'"':'').'>';
	$ret.= '<div><span>'.DayCMonth($item->time).'.</span> '.($item->subsubject?$item->subject.': '.$ahref.$item->subsubject:$ahref.$item->subject).'</a></div>';
	//$cnt++; echo($cnt>$count?'':$cnt%2?'</td></tr><tr valign="top"><td>':'</td><td>');
   }
  $ret.= '</td></tr></table><br>';

  echo $ret;
}

/*function rightblock($title,$sql)
{
 Global $site_id,$mainurl;
  echo '<h2>'.$title.'</h2><table border="0" cellspacing="0" cellpadding="0"><tr valign="top"><td>';
  if(substr($sql,0,3)=='AND')
	$r = my_mysql_query("SELECT id,time, subject,subsubject FROM messages WHERE site_id=$site_id AND show4all ".$sql);
   else
	$r = my_mysql_query($sql);
  $cnt = 1; $count = mysql_numrows($r);
  while($item = mysql_fetch_object($r))
   {
   	$ahref = '<a class="n" href="'.$mainurl.'?id='.$item->id.'">';//.(isset($item->rating)?' title="Рейтинг: '.$item->rating.'"':'').'>';
	echo '<div>';
	echo '<span>'.DayCMonth($item->time).'.</span><br>';
	echo ($item->subsubject?$item->subject.': '.$ahref.$item->subsubject:$ahref.$item->subject).'</a></div>';
	$cnt++; echo($cnt>$count?'':$cnt%2?'</td></tr><tr valign="top"><td>':'</td><td>');
   }
  echo '</td></tr></table><br>';
}*/

?>