#!/usr/bin/perl


 if($ENV{'REQUEST_METHOD'} eq "GET"){
 $buffer = "$ENV{'QUERY_STRING'}";
 }else{
  read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); 
 }


require "mysql.pl";
require "template.pl";

 $buffer=~s/((%5C)+)//g;

 $buffer=~s/%27/\\'/g;
 $query = new CGI($buffer);

print"Content-type:text/html\n\n";

$prod_id=$query->param("prod_id");
$lang=$query->param("lang");

if($lang){
$SEARCH_TEMPLATE = $templ.'katalog_'.$lang.'.htm';
}else{
$SEARCH_TEMPLATE = $templ.'katalog.htm';
}
$page=$query->param('page');
$out_type=$query->param('out_type');

$h{'fname'}=$query->param('name');
$h{'fname_eng'}=$query->param('name_eng');
$h{'fpol'}=$query->param('pol');
$h{'fotez'}=$query->param('otez');
$h{'fzavod'}=$query->param('zavod');
$h{'fzvanie'}=$query->param('zvanie');
$h{'fowner'}=$query->param('owner');
$h{'fowner_eng'}=$query->param('owner_eng');
$h{'fmama'}=$query->param('mama');
$h{'fpitom'}=$query->param('pitom');
$h{'fdate'}=$query->param('date');


#$page=$query->param('pageL');
#if(!$page){$page=1};



$rows=20;	
$rank=8;

if($page ne "all" && $out_type==1){
if($lang){
	$where=" where LEFT(t.name_eng,1)='".$page."'";
	}else{
	$where=" where LEFT(t.name,1)='".$page."'";
	}
}

if($page ne "all" && $out_type ==2){
$page--;
$limit=" LIMIT ".($page*$rank).",".$rank;
}

if($out_type ==3){
$par="";
if($h{'fname'}){$where.="t.name LIKE '%".$h{'fname'}."%' ";$par="and ";}
if($h{'fowner'}){$where.=$par."t.owner LIKE '%".$h{'fowner'}."%' ";$par="and "}
if($h{'fowner_eng'}){$where.=$par."t.owner_eng LIKE '%".$h{'fowner_eng'}."%' ";$par="and "}
if($h{'fname_eng'}){$where.=$par."t.name_eng LIKE '%".$h{'fname_eng'}."%' ";$par="and "}

if($h{'fotez'}){$where.=$par."t.otez LIKE '%".$h{'fotez'}."%' ";$par="and "}
if($h{'fdate'}){$where.=$par."DATE_FORMAT(t.date,'%Y') = '".$h{'fdate'}."' ";$par="and "}
if($h{'fmama'}){$where.=$par."t.mama LIKE '%".$h{'fmama'}."%' ";$par="and "}
if($h{'fzavod'}){$where.=$par."t.zavod LIKE '%".$h{'fzavod'}."%' ";$par="and "}
if($h{'fpitom'}){$where.=$par."t.pitom = ".$h{'fpitom'}." ";$par="and "}
if($h{'fzvanie'}){$where.=$par."t.zvanie = 1 ";$par="and ";$h{'zvanie'}="checked"}

if($h{'fpol'}){
	$where.=$par."t.pol = '".$h{'fpol'}."' ";$par="and ";
	$h{'pol'.$h{'fpol'}}="selected";
	}

if($where){$where=" where ".$where;}else{$limit="LIMIT 0"}
}
if(!$lang){
	$leters_str="select id,LEFT(name,1) as gr, count(name) from dogs group by gr"
	}else{
	$leters_str="select id,LEFT(name_eng,1) as gr, count(name_eng) from dogs group by gr"
	}
$sth1=$dbh->prepare($leters_str) or die $dbh->errstr; 
$sth1->execute() or die $sth1->errstr;
$count=0;
while (($row = $sth1->fetchrow_arrayref))
{
	#$id_db{$row->[0]}="$row->[0]";
	$leter_id[$i]=$i;	
	$leter_db{$i}="$row->[1]";
	$count_db{$i}="$row->[2]";
	$i++;
	#print $row->[2].$name_db{"$row->[0]"}."<br>";
}

$sth1=$dbh->prepare("select count(*),TO_DAYS(now()) - TO_DAYS(max(t.date))<3 from history as t, dogs as d where t.id=d.id") or error($dbh->errstr); 
$sth1->execute() or error($sth1->errstr);
while (($row = $sth1->fetchrow_arrayref))
{
$count=$row->[0];
$h{new_history}="new" if $row->[1];
}

$sth1=$dbh->prepare("select LEFT(date,4) as dat from dogs where date <>'0000-00-00' group by dat   order by dat desc") or print $dbh->errstr; 
$sth1->execute() or print $sth1->errstr;

while (($row = $sth1->fetchrow_arrayref))
{
$sel="";
if($h{'fdate'} eq $row->[0]){$sel="selected"};
	$h{date}.="<option value='$row->[0]' $sel>&nbsp;".$row->[0]."&nbsp;&nbsp;\n";
}

$sth1=$dbh->prepare("select p.id,p.name from pitom as p,dogs as d where d.pitom<>0 and d.pitom=p.id group by (d.pitom )order by p.name") or print $dbh->errstr; 
$sth1->execute() or print $sth1->errstr;

while (($row = $sth1->fetchrow_arrayref))
{
$sel="";
if($h{'fpitom'} eq $row->[0]){$sel="selected"};
	$h{pitom}.="<option value='$row->[0]' $sel>".$row->[1]."\n";
}

#	if($count>$rank){
		$line_num=create_line();
		$number=$page*$rank;
#	}
		$line=create_leter();

$where=~s/(\\+)/\\/g;

if($out_type==2){
$sth1=$dbh->prepare("select t.num, t.id, concat('<nobr>',title,'</nobr>'),d.name, DATE_FORMAT(t.date,'%d.%m.%Y'),TO_DAYS(now()) - TO_DAYS(t.date)<3 from history as t, dogs as d where t.id=d.id order by t.date desc ".$limit) or print $dbh->errstr; 
}else{
$sth1=$dbh->prepare("select t.id, t.id, t.name, t.owner, t.name_eng, t.owner_eng, DATE_FORMAT(t.date,'%d.%m.%Y') ,t.pol from dogs as t $where order by t.name ".$limit) or print $dbh->errstr; 
}
$sth1->execute() or print $sth1->errstr;

$i=0;
while (($row = $sth1->fetchrow_arrayref))
{
	$id_sob{"$row->[0]"}=$row->[1];
	$sort_sob{"$row->[0]"}=$i++;
	$name_db{"$row->[0]"}=$out_type==2?"$row->[2]"."<div align=right style=\"margin-top:-4px;\"><sub style=\"font-size:12px;color:gray;\">".($row->[5]?"<font color=Red>new</font> ":"")."$row->[4]</sub></div>":"$row->[2]";
	$owner_db{"$row->[0]"}="$row->[3]";
	$name_eng_db{"$row->[0]"}="$row->[4]";
	$owner_eng_db{"$row->[0]"}="$row->[5]";
	$year_db{"$row->[0]"}="$row->[6]";	
	$pol_db{"$row->[0]"}="$row->[7]";	
	#print $name_tov{"$row->[0]"}."<br>";
}


my $template = new Template($SEARCH_TEMPLATE);
my $html = cast_template();

#($t1,$t2,$t3,$t4) = times;
print $html.$t1;
exit 0;

sub cast_template {
	#my %h;
	$h{line}=$line;
	$h{line_num}=$line_num;
	if($page){
	$h{title}=" - $page";
	if($page eq "all"){
		$h{title}=" - Весь список";
		}	
	}
if($edit){
	$h{add}="Добавить собаку"};
$h{edit}=$edit;
  @sort_dat =sort{
	$sort_sob{$a} <=> $sort_sob{$b}
	} keys %sort_sob;
  $ind=0;
$out="<table width=600 border=0 cellspacing=1 cellpadding=5 bgcolor=#BDA988 align=center bordercolor=\"\" style=\"border-bottom:1px solid #BDA988;border-top:0px;\">";
foreach $person (@sort_dat) {
@contents = glob($pref."images/".$id_sob{$person}."_*.jpg");
if($out_type >1){$num="<td align=center nowrap bgcolor=White><small>".((++$ind)+$number)."</small></td>";}
if($lang){
	$out.="<tr>$num<td bgcolor=White >".$name_eng_db{$person}."</td>".
	"<td bgcolor=White>".$owner_eng_db{$person}."</td>".
	"<td align=center nowrap bgcolor=White>".$year_db{$person}."<br><sub>".($pol_db{$person} eq "f"?"Female":"Male")."</sub></td>".
	"<td bgcolor=White width=88 align=center nowrap><a href=\"javascript:open_gloss('$person&img=1&lang=eng');\"><i>".((scalar @contents)?"&nbsp;&nbsp;&nbsp;Photo&nbsp;&nbsp;":"")."</i></a>".(scalar @contents?"- ".scalar @contents:"")."&nbsp;</td></tr>";
	}else{
	$out.="<tr>$num<td bgcolor=White >".$name_db{$person}."</td>".
	"<td bgcolor=White>".$owner_db{$person}."</td>".
	"<td bgcolor=White width=88 align=center nowrap><a href=\"javascript:open_gloss('$id_sob{$person}&img=1');\"><i>".((scalar @contents)?"&nbsp;&nbsp;&nbsp;фото&nbsp;&nbsp;":"")."</i></a>".(scalar @contents?"- ".scalar @contents:"")."&nbsp;</td>".
	"<td bgcolor=White width=88 align=center nowrap><a href=\"javascript:open_gloss('$id_sob{$person}');\">&nbsp;&nbsp;<i>подробнее</i></a>".
	($edit&&$out_type!=2?"<br><a href=\"javascript:if(window.confirm('Вы действительно хотите удалить собаку !!!')){open_gloss('$person&delete=1','admin');}\"><sub>Удал</sub></a>&nbsp;&nbsp;<a href=\"javascript:open_gloss('$person&edit=1','admin');\"><sub>Измен</sub></a>":"").
	($edit&&$out_type==2?"<br><a href=\"javascript:if(window.confirm('Вы действительно хотите удалить это событие !!!')){open_gloss('$$id_sob{$person}&delete_history=$person','admin');}\" title=\"Удалить это событие\"><sub>Удал</sub></a>&nbsp;":"").
	"</td></tr>";
	}
}
$out.="</table>";


$h{out.$out_type}=$out;
  $template->cast(\%h);
  return $template->html;
}

sub create_line{
my $line;
$href=$ENV{'SCRIPT_NAME'}."?lang=".$lang."&edit=".$edit."&";

$href.="out_type=2&page=";

$all=$lang?"All":"Все";

$a='<a href="'.$href;
$a_=' </a>';
$line.="<b>&middot; </b>";
foreach $ii (0..($count-1)/$rank) {
$i=$ii+1;

$line.=$ii ne $page || $page eq 'all' ?$a.$i.'#lett"> '.($ii+1).$a_: '<b> '.($ii+1).' </b>';
$line.="<b>&middot; </b>";
}
$line.=$page ne "all" || $out_type eq 1?$a.'all'.$session."\">$all".$a_: "<b>$all</b>";
#$line.='<b><small> |&nbsp;</small></b>';
return $line;
}
sub create_leter{
my $line;
$href=$ENV{'SCRIPT_NAME'}."?lang=".$lang."&edit=".$edit."&";

$href.="out_type=1&page=";

$all=$lang?"All":"Все";

$a='<a href="'.$href;
$a_=' </a>';
$line="<b>&middot; </b>";
foreach $ii (@leter_id) {
$i=$leter_db{$ii};
$all_c+=$count_db{$ii};
$line.=$i ne $page || $page eq 'all' ?$a.$i.'#lett" title="'.($lang?'Dogs':'собак').': '.$count_db{$ii}.'">'.$i.$a_: '<b> '.$i.' </b>';
$line.="<b>&middot; </b>";
}
$line.=$page ne "all" || $out_type eq 2?$a.'all'.'" title="'.($lang?'Dogs':'собак').': '.$all_c."\"> $all".$a_: "<b> $all</b>";
#$line.=' <b><small>&middot;</small></b> ';
return $line;
}
