#!/usr/bin/perl

use lib '.';

open (STDERR,">>./_siteerrors.log");

use CGI; 
$in = new CGI; 
$a = $in->param("a");
$url=$ENV{'HTTP_HOST'}.$ENV{'REQUEST_URI'};

use utf8;
use Encode;

my $comm_type;
my $host=$ENV{'HTTP_HOST'};

if ($host=~/ru\.chuvash\./) {
  require "lang/russian.pm";
  require "lang/ru_calendar.pm";
  }
elsif ($host=~/en\.chuvash\./) {
  require "lang/english.pm";
  require "lang/en_calendar.pm";
  }
elsif ($host=~/eo\.chuvash\./) {
  require "lang/esperanto.pm";
  require "lang/eo_calendar.pm";
  }
else {
  require "lang/chuvash.pm";
  require "lang/ch_calendar.pm";
  }
$prf="ch" if $prf eq "";

require "proc.pm";

#error($prf);

&db_con;

#require "chkcook.pm";
$cookie = $ENV{'HTTP_COOKIE'};
@cook=split(/\;/,$cookie);
foreach (@cook) {
  my $gm=(split(/\=/,$_))[0];
  $gm=~s/^\s+//g;
  if ($gm eq "User") {
    $user_c=(split(/\=/,$_))[1];} 
  $ck_=$dbh->quote($user_c);

  $qu="select l.name,group_,email,id from all_login l,all_users u where l.name=u.name and code=$ck_ ";
  my $myd= $dbh->prepare($qu);
  ($myd->execute) or &error("$DBI::errstr");
  ($user,$group,$uemail,$user_id)=$myd->fetchrow_array;
  $group=0 if $group eq "";
  }

if ($a eq "") {
  &index;
  }
elsif ($a eq "day") {
  &day;
  }
elsif ($a eq "month") {
  &month;
  }
elsif ($a eq "year") {
  &year;
  }
elsif ($a eq "meropriati") {
  &meropriati;
  }
elsif ($a eq "add" || $a eq "e") {
  &add;
  }
elsif ($a eq "adds" || $a eq "es") {
  &adds;
  }
elsif ($a eq "madd" || $a eq "me") {
  &madd;
  }
elsif ($a eq "madds" || $a eq "mes") {
  &madds;
  }
elsif ($a eq "moder") {
  &moder;
  }
elsif ($a eq "goroscop") {
  &goroscop;
  }
elsif ($a eq "goroscops") {
  &goroscops;
  }
elsif ($a eq "goroscopex") {
  &goroscopex;
  }
elsif ($a eq "d") {
  &del;
  }
elsif ($a eq "ds") {
  &dels;
  }
elsif ($a eq "md") {
  &mdel;
  }
elsif ($a eq "mds") {
  &mdels;
  }
else {
  print qq~Location: /\n\n~;
  }


close (STDERR);

######################################################################################################################
##  Funkzhisem  ######################################################################################################
######################################################################################################################

sub index {
  &headprint($lng{"News"});
  &bottomprint;

}

sub month {
  my $m=$in->param("m");
  if ($m<1 || $m>12 || $m=~/\D/) {
    print "Location: /\n\n";
    exit;
  }
  my @mn=split(',',$c_lng{"Month_Full"});

  my $Page;
  foreach my $olng ('ch','ru','en','eo') {
    if ($olng ne $prf) {
      my $domen=$olng.".";
      my $s=$olng;
      if ($olng eq "ch") {
        $domen="";
        $s="cv";
        }
      else {
        $s=$olng;
        }
      $Page->{"Other_Lang"}->{$s}->{"Link"}=qq~http://${domen}chuvash.org/calendar/m/$m.html~;
      }
    }

  &headprint($c_lng{"Uyah_Pulamesem"}.": $mn[$m]",$Page);

  my ($day,$month,$year,$hour,$minute)=(localtime)[3,4,5,2,1];
  $year+=1900;
  $month+=1;
  my $cday=$dbh->quote("$year-$m-$day");

  $qu="SELECT year(kun) k,pulam, YEAR($cday)-YEAR(kun),DAYOFMONTH(kun) ck FROM `".$prf."_calendar` WHERE mode=0 and 
         MONTH(kun)=MONTH($cday) order by ck,k";
  my $myd= $dbh->prepare($qu);
  ($myd->execute) or &error("$DBI::errstr");
  my $kn_=$myd->fetchall_arrayref;

  my $cday=0;
  $cday=$day if $m==$month;
  print calendar($m,$year,$cday);
  if (@$kn_>0) {
    my $tk=0;my $ot=0;
    foreach (@$kn_) {
      if (@$_[3]!=$tk) {
        if ($ot==1) {
          print qq~</table>~;
          $ot=0;
        }
        $tk=@$_[3];
        print qq~<h1 class='ch1'>$mn[$m], $tk</h1><table cellspacing='0' cellpadding='0' border='0'>~;
        $ot=1;
      }
      print out_pulam(@$_[0],@$_[2],@$_[1]);
    }
    if ($ot==1) { print qq~<tr><td class='pulam_year'><img src='/images/add_c.gif' width='32' height='32' alt='$c_lng{"Pulam_Add"}'></td><td class='pulam_teple'><a href='/cgi-bin/calendar.cgi?a=add'><b>$c_lng{"Pulam_Add"}</b></a></td></tr></table>~;}
  }
  &bottomprint;
}

sub year {
  my $y=$in->param("y");
  if ($y<1 || $y>2100 || $m=~/\D/) {
    print "Location: /\n\n";
    exit;
  }

  my $Page;
  foreach my $olng ('ch','ru','en','eo') {
    if ($olng ne $prf) {
      my $domen=$olng.".";
      my $s=$olng;
      if ($olng eq "ch") {
        $domen="";
        $s="cv";
        }
      else {
        $s=$olng;
        }
      $Page->{"Other_Lang"}->{$s}->{"Link"}=qq~http://${domen}chuvash.org/calendar/y/$y.html~;
      }
    }

  my @mn=split(',',$c_lng{"Month_Full"});
  my @shortmonth=split('\,',$lng{"Short_Month_Name"});

  &headprint($c_lng{"Sultalak_Pulamesem"}.": $y",$Page);

  my ($day,$month,$year,$hour,$minute)=(localtime)[3,4,5,2,1];
  $year+=1900;
  $month+=1;
  my $cday=$dbh->quote("$year-$month-$day");

  $qu="SELECT MONTH(kun) m,pulam, YEAR($cday)-YEAR(kun),DAYOFMONTH(kun) ck FROM `".$prf."_calendar` WHERE mode=0 and 
         YEAR(kun)=$y order by m,ck";
  my $myd= $dbh->prepare($qu);
  ($myd->execute) or &error("$DBI::errstr");
  my $kn_=$myd->fetchall_arrayref;

  my $cday=0;
  $cday=$day if $m==$month;
  print calendar_y($month,$y,$cday);

  if (@$kn_>0) {
    my $tk=0;my $ot=0;
    foreach (@$kn_) {
      if (@$_[0]!=$tk) {
        if ($ot==1) {
          print qq~</table>~;
          $ot=0;
        }
        $tk=@$_[0];
        print qq~<h1 class='ch1'>$mn[@$_[0]]</h1><table cellspacing='0' cellpadding='0' border='0'>~;
        $ot=1;
      }
      print out_pulam_y(@$_[0],@$_[3],@$_[1],$shortmonth[@$_[0]]);
    }
    if ($ot==1) { print qq~<tr><td class='pulam_year'><img src='/images/add_c.gif' width='32' height='32' alt='$c_lng{"Pulam_Add"}'></td><td class='pulam_teple'><a href='/cgi-bin/calendar.cgi?a=add'><b>$c_lng{"Pulam_Add"}</b></a></td></tr></table>~;}
  }
  &bottomprint;
}


sub out_pulam {
  my $year=shift;
  my $irtne=shift;
  my $pulam=shift;
  my $id=shift;
  my $down="pulam_year_down";
  my $up="pulam_year_up";
  my $date="pulam_year_table";
  if ($irtne/5==int($irtne/5)) {
    $down="pulam_year_yubiley";
    $up="pulam_year_up_yubiley";
    $date="pulam_year_table_yubiley";
  }
  my $adminn;
  $adminn=qq~ title='$id'~ if $group>2;
  return (qq~<tr><td class='pulam_year'><table class='$date'
      cellspacing='0' cellpadding='0' border='0'><tr><td class='$up'><a href='/calendar/y/$year.html'$adminn>$year</a></td></tr>
      <td class='$down'>$irtne</td></tr></table></td><td valign='top' class='calendar_pulam'>$pulam</td></tr>~);
}

sub out_pulam_y {
  my $month=shift;
  my $day=shift;
  my $pulam=shift;
  my $mname=shift;
  my $down="pulam_year_down";
  my $up="pulam_year_up";
  my $date="pulam_year_table";
  my $dm=$month;
  my $dd=$day;
  $dm=sprintf "%02s",$dm;
  $dd=sprintf "%02s",$dd;

  return (qq~<tr><td class='pulam_year'><table class='$date'
      cellspacing='0' cellpadding='0' border='0'><tr><td class='$up'>$mname</td></tr>
      <td class='$down'><a href='/calendar/$dm$dd.html'>$day</a></td></tr></table></td><td valign='top' class='calendar_pulam'>$pulam</td></tr>~);
}


sub day {
  my $dstr=$in->param("day");
  if (length($dstr)<4 || length($dstr)>4 || $dstr=~/\D/) {
    print "Location: /\n\n";
    exit;
  }
  my ($dmonth,$dday)=$dstr=~/(\d\d)(\d\d)/;
  my @mn=split(',',$c_lng{"Month_Full"});

  my $Page;
  foreach my $olng ('ch','ru','en','eo') {
    if ($olng ne $prf) {
      my $domen=$olng.".";
      my $s=$olng;
      if ($olng eq "ch") {
        $domen="";
        $s="cv";
        }
      else {
        $s=$olng;
        }
      $Page->{"Other_Lang"}->{$s}->{"Link"}=qq~http://${domen}chuvash.org/calendar/$dstr.html~;
      }
    }
  
  &headprint($c_lng{"Kun_Pulamesem"}.": $mn[$dmonth], $dday",$Page);

  my ($day,$month,$year,$hour,$minute)=(localtime)[3,4,5,2,1];
  $year+=1900;
  $month+=1;
  my $cday=$dbh->quote("$year-$dmonth-$dday");

  $qu="select year(added),subj,YEAR($cday)-YEAR(added),id FROM ".$prf."_news WHERE flag=0  and 
         DAYOFMONTH(added)=DAYOFMONTH($cday) and 
         MONTH(added)=MONTH($cday) AND added<now() order by added desc LIMIT 0,20";
  my $myd= $dbh->prepare($qu);
  ($myd->execute) or &error("$DBI::errstr");
  $hp_=$myd->fetchall_arrayref;

  print calendar($dmonth,$year,$dday);

  print qq~
  <h1 class='ch1'>$c_lng{"Hyparsem"}</h1>
  <!--Hypar data-->
  <table cellspacing='0' cellpadding='0' border='0'>~;

  if (@$hp_>0) {
    foreach (@$hp_) {
      print qq~<tr><td class='pulam_year'><table class='pulam_year_table'
      cellspacing='0' cellpadding='0' border='0'><tr><td class='pulam_year_up'>@$_[0]</td></tr>
      <td class='pulam_year_down'>@$_[2]</td></tr></table></td><td valign='top' class='calendar_pulam'><a href='/news/@$_[3].html'><b>@$_[1]</b></a></td></tr>~;


    }
  }
  print qq~
  <tr><td class='pulam_year'><img src='/images/add_n.gif' width='32' height='32' alt='$c_lng{"add"}'></td><td class='pulam_teple'><a href='/cgi-bin/index.cgi?a=newsa'><b>$lng{"add"}</b></a></td></tr>
  </table>
  <!--/Hypar data-->~;

  $qu="SELECT year(kun) k,pulam, YEAR($cday)-YEAR(kun),id FROM `".$prf."_calendar` WHERE mode=0 and 
         DAYOFMONTH(kun)=DAYOFMONTH($cday) and 
         MONTH(kun)=MONTH($cday) order by k";
  my $myd= $dbh->prepare($qu);
  ($myd->execute) or &error("$DBI::errstr");
  my $kn_=$myd->fetchall_arrayref;

  print qq~
  <h1 class='ch1'>$c_lng{"Pulamsem"}</h1>
  <!--Kun data-->
  <table cellspacing='0' cellpadding='0' border='0'>~;

  if (@$kn_>0) {
    foreach (@$kn_) {
      print out_pulam(@$_[0],@$_[2],@$_[1],@$_[3]);
    }
  }
  print qq~
  <tr><td class='pulam_year'><img src='/images/add_c.gif' width='32' height='32' alt='$c_lng{"Pulam_Add"}'></td><td class='pulam_teple'><a href='/cgi-bin/calendar.cgi?a=add'><b>$c_lng{"Pulam_Add"}</b></a></td></tr>
  </table>
  <!--/Kun data-->~;

  $qu="SELECT name,year(now())-year(`beth_date`) sul FROM `all_users` 
       WHERE dayofmonth(`beth_date`)=$dday and month(`beth_date`)=$dmonth order by sul";
  my $myd= $dbh->prepare($qu);
  ($myd->execute) or &error("$DBI::errstr");
  my $kn_=$myd->fetchall_arrayref;

  if (@$kn_>0) {
    print qq~
  <h1 class='ch1'>$lng{"users"}</h1>
  <!--Users data-->
  <table cellspacing='0' cellpadding='0' border='0'><tr><td>$c_lng{Day_On_Bethday}: ~;

    my @uslist;
    foreach (@$kn_) {
      push @uslist,qq~<a href='/cgi-bin/user.cgi?a=vv&anketa=@$_[0]'><b>@$_[0]</b></a> (@$_[1])~;
      }
    print join ", ",@uslist;

    print qq~</td></tr></table>
  <!--/Users data-->~;
    }
  my @mn=split(',',$c_lng{"Month_Full"});

  print qq~<br> <div class='encyc_tags'><b>$c_lng{"Pulamsem"}</b>: <a href='/calendar/m/$dmonth.html'>$mn[$dmonth]</a></div>~;
  &bottomprint;

}

sub meropriati {
  my $dstr=$in->param("day");

  my ($dmonth,$dday)=$dstr=~/(\d\d)(\d\d)/;
  my @mn=split(',',$c_lng{"Month_Full"});

  my $Page;

  # Itti celhesem valli kayran tumalla
#  foreach my $olng ('ch','ru','en','eo') {
#    if ($olng ne $prf) {
#      my $domen=$olng.".";
#      my $s=$olng;
#      if ($olng eq "ch") {
#        $domen="";
#        $s="cv";
#        }
#      else {
#        $s=$olng;
#        }
#      $Page->{"Other_Lang"}->{$s}->{"Link"}=qq~http://${domen}chuvash.org/calendar/$dstr.html~;
#      }
#    }
  
  &headprint($lng{"Meropriations"},$Page);

  my ($day,$month,$year,$hour,$minute)=(localtime)[3,4,5,2,1];
  $year+=1900;
  $month+=1;

  print calendar($month,$year,$day);

  $qu="select count(*) FROM all_merop WHERE kun>=now() AND flag=0";
  my $myd= $dbh->prepare($qu);
  ($myd->execute) or &error("$DBI::errstr");
  my $count=$myd->fetchrow_array;

  $p = $in->param("p");
  $n=50;
  $pages=int($count/$n);
  $pages++ if int($count/$n)!=$count/$n;
  $p=$pages if $p>$pages;
  $p=1 if $p<1;
  $st=$p*$n-$n;

  $qu="select id,DATE_FORMAT(kun,'%m'),DATE_FORMAT(kun,'%d'),DATE_FORMAT(vahat,'%H:%i'),name_ch,name_ru,name_en,name_eo,asta_ch,asta_ru,asta_en,asta_eo,tip 
      FROM all_merop WHERE kun>=CURDATE() AND flag=0 ORDER BY kun,vahat,id LIMIT $st,$n";
  my $myd= $dbh->prepare($qu);
  ($myd->execute) or &error("$DBI::errstr");
  my $merop=$myd->fetchall_arrayref;

  my @month_names=split(/,/,$c_lng{"Month_Full"});
  my $puselek;
  my @mcolors=('','#990033','#333399','#006666','#0066cc','#cc3300','#660066','#009933','#cc00cc','#669900');
  
  foreach (@$merop) {
    my ($m_month,$m_kun,$meropriati,$asta_out,$vahat_out,$ed,$color_out);

    my $tmp=$month_names[@$_[1]]+@$_[2];

    $m_month=$month_names[@$_[1]];
    $m_kun=@$_[2];
    my $mass={"ch"=>@$_[4],"ru"=>@$_[5],"en"=>@$_[6],"eo"=>@$_[7]};
    my $asta={"ch"=>@$_[8],"ru"=>@$_[9],"en"=>@$_[10],"eo"=>@$_[11]};

    if (@$_[12]>0) {
      $color_out=qq~ style='color:@mcolors[@$_[12]];'~;
      }

    $meropriati=&str_lang_out($mass,$prf);
    $asta_out=&str_lang_out($asta,$prf);
    if (@$_[3] ne "" && @$_[3] ne "00:00") {
      $vahat_out=qq~<div style='padding:5px 8px 5px 5px;float:left;width:50px;text-align:center;background-color:#ff8888;margin-bottom:15px;'>@$_[3]</div>~;
      }

    if ($tmp ne $puselek) {
      if ($puselek ne "") {
        print qq~</div>~;
        }
      #print qq~<div style='margin-top:20px;'><span style='border:1px solid #CCCCCC;padding:3px 3px 3px 0px;'><span style='background-color:#CCCCCC;padding:3px 3px 3px 3px;'>$m_month</span>&nbsp;$m_kun</span>~;
      print qq~<div style='margin-top:20px;'><h4 class='ch2'>$m_month,&nbsp;$m_kun</h4>~;
      
      $puselek=$tmp;
      }

    if ($group>3) {
      $ed=qq~<span style='float:right;'><a href='/cgi-bin/calendar.cgi?a=me&id=@$_[0]'>e</a></span>~;
      }
    print qq~
      <div style='margin: 5px 0px 12px 20px;'>$vahat_out<div style='padding-left:80px;'>$ed<a name='m@$_[0]'></a><b$color_out>$meropriati</b><br />$asta_out</div></div>
    ~;

    }
  print qq~</div>~;

  if ($pages>1) {
    print "<div class='encyc_tags'>".$lng{"Pages"}.": ";
    $sn=$p-10;
    $sn=1 if $sn<1;
    $en=$p+10;
    $en=$pages if $en>$pages;

    print " <a href='/cgi-bin/calendar.cgi?a=meropriati&p=1'>1</a> " if $sn>1;

    print " ... " if $sn>2;
    
    for (my $ii=$sn;$ii<$en+1;$ii++) {
      if ($ii!=$p) {
        print "<a href='/cgi-bin/calendar.cgi?a=meropriati&p=".$ii."'>".$ii."</a>";
        }
      else {print " <b>\[".$ii."\]</b>"}
      print ", " if $ii!=$pages;
      }
    print " ..." if $en<$pages-1;
    print "<a href='/cgi-bin/calendar.cgi?a=meropriati&p=".$pages."'>".$pages."</a>" if $en<$pages;
    print "</div>\n";
    }

  &bottomprint;

}


sub calendar {
  my $m=shift;
  my $y=shift;
  my $d=shift;
  my $calendar;
  my @dm=(0,"31","29","31","30","31","30","31","31","30","31","30","31");
  my $abc=&getday($m,1,$y);
  $abc--;
  $abc=6 if $abc==-1;
  my $i=0;
  my @dn=split(',',$c_lng{"Day_Names_Short"});
  my @mn=split(',',$c_lng{"Month_Full"});
  my $TU=$m;
  my $MU=$m;
  $TU++;
  $MU--;
  $TU=1 if $TU==13;
  $MU=12 if $MU==0;

  $calendar.=qq~<table cellspacing='0' cellpadding='0' border='0' align='right' style='padding-left:5px;background-color:#ffffdd;'>
     <tr><td><table cellspacing='1' cellpadding='0' border='0' class='calendar_table'>
     <tr><td class='calendar_month' colspan='7'><div style='float:right;width:30px;'><a href='/calendar/m/$TU.html'><b>&raquo;&raquo;</b></a></div><div style='float:left;width:30px;'><a href='/calendar/m/$MU.html'><b>&laquo;&laquo;</b></a></div><b><a href='/calendar/m/$m.html'>$mn[$m]</a></b></td></tr><tr>~;
  foreach (1..7) {$calendar.="<td class='calendar_dn'>$dn[$_]</td>";}
  $calendar.="</tr>";
  foreach (1..$abc) {$calendar.="<td> </td>";$i++}
  for (my $j=1;$j<$dm[$m]+1;$j++) {
    my $jj=sprintf "%02d",$j;
    my $style='day_calendar';
    $style='day_calendar_current' if $j==$d;

    $calendar.="<td class='".$style."'><a href='/calendar/$m$jj.html'>$jj</a></td>";
    $i++;
    if ($i==7) {
      $calendar.="</tr>\n";
      $i=0;
      if ($j!=$dm[$m]) {$calendar.="<tr>"}
    }
  }
  $calendar.="</table></td></tr></table>";
  return ($calendar);

}

sub calendar_y {
  my $m=shift;
  my $y=shift;
  my $d=shift;
  my $calendar;
  my @dm=(0,"31","29","31","30","31","30","31","31","30","31","30","31");
  my $abc=&getday($m,1,$y);
  $abc--;
  $abc=6 if $abc==-1;
  my $i=0;
  my @dn=split(',',$c_lng{"Day_Names_Short"});
  my @mn=split(',',$c_lng{"Month_Full"});
  my $TU=$y;
  my $MU=$y;
  $TU++;
  $MU--;
  $TU=1 if $TU==2100;
  $MU=2100 if $MU==0;
  #D0AE4C;

  $calendar.=qq~<table cellspacing='0' cellpadding='0' border='0' align='right' style='padding-left:5px;background-color:#ffffdd;'>
     <tr><td><table cellspacing='1' cellpadding='0' border='0' class='calendar_table'>
     <tr><td class='calendar_month' style='background-color:#D0AE4C;' colspan='7'><div style='float:right;width:30px;'><a href='/calendar/y/$TU.html'><b>&raquo;&raquo;</b></a></div><div style='float:left;width:30px;'><a href='/calendar/y/$MU.html'><b>&laquo;&laquo;</b></a></div><b>$y</b></td></tr><tr>
     <tr><td class='calendar_month' colspan='7'><b><a href='/calendar/m/$m.html'>$mn[$m]</a></b></td></tr><tr>~;
  foreach (1..7) {$calendar.="<td class='calendar_dn'>$dn[$_]</td>";}
  $calendar.="</tr>";
  foreach (1..$abc) {$calendar.="<td> </td>";$i++}
  for (my $j=1;$j<$dm[$m]+1;$j++) {
    my $jj=sprintf "%02d",$j;
    my $style='day_calendar';
    $style='day_calendar_current' if $j==$d;

    $calendar.="<td class='".$style."'><a href='/calendar/$m$jj.html'>$jj</a></td>";
    $i++;
    if ($i==7) {
      $calendar.="</tr>\n";
      $i=0;
      if ($j!=$dm[$m]) {$calendar.="<tr>"}
    }
  }
  $calendar.="</table></td></tr></table>";
  return ($calendar);

}


sub getday {
  my $m = @_[0];
  my $d = @_[1];
  my $y = @_[2];

  if($m !~ /[\d]{1,2}/ || $m > 12  || $m < 1 ){ return "ERR"; }
  if($d !~ /[\d]{1,2}/ || $d > 31  || $d < 1 ){ return "ERR"; }
  if($y !~ /[\d]+/ || $y < 1 ){ return "ERR"; }

  my %month=(1,0,2,3,3,2,4,5,5,0,6,3,7,5,8,1,9,4,10,6,11,2,12,4,);
  my %weekday=(0,'Вск',1,'Пон',2,'Втр',3,'Сре',4,'Чтв',5,'Пят',6,'Суб',);
  
  if($m == 1){ $y--; }
  if($m == 2){ $y--; }

  $m = int($m);
  $d = int($d);
  $y = int($y);

  my $wday = (($d+$month{$m}+$y+(int($y/4))-(int($y/100))+(int($y/400)))%7);
  return $wday;
}



sub adds {
  
  $id = $in->param("id");
  if ($a eq "es" && ($id eq "" || $id=~/\D/)) {
    print qq~Location: /\n\n~;
    exit;
    }

  $pd = $in->param("pd");
  $pm = $in->param("pm");
  $py = $in->param("py");
  $url_ = $in->param("url");
  $error{"01"}=$c_lng{"Error_01"} if $pd<1 || $pd>31;
  $error{"02"}=$c_lng{"Error_02"} if $pm<1 || $pm>12;
  $error{"03"}=$c_lng{"Error_03"} if length($py)<4 || length($py)>4;

  $pulam = $in->param("pulam");
  $error{"04"}=$c_lng{"Error_04"} if $pulam eq "";

  if (keys %error) {
    &add;
  } else {
    my $moder=0;
    $moder=1 if $group<3;
    $user_id=0 if $user_id eq "" || $user_id=~/\D/;
    my $kun=$dbh->quote($py."-".$pm."-".$pd);
    my $plmsrc=$dbh->quote($pulam);
    $pulam_=$dbh->quote(enc($pulam));
    my $url_out;
  
    if ($url_ eq "") {
      
      if ($a eq "adds") {
        $qu="INSERT INTO ${prf}_calendar (user_id,kun,pulam,pulam_src,mode,`insert`) 
         values ($user_id,$kun,$pulam_,$plmsrc,$moder, now())";
        ($dbh->do($qu)) or &error("$DBI::errstr ".$qu);
    
        $mess=$c_lng{"Pulam_Add_OK"};

        $malalla = $in->param("malalla");
        my @mes=("/","/cgi-bin/calendar.cgi?a=add%26pd=$pd%26pm=$pm%26py=$py%26malalla=$malalla");
        $malalla=0 if $malalla eq "" || $malalla<0 || $malalla>@mes;
        $url_out=$mes[$malalla];
        }
      elsif ($a eq "es") {
        $qu="UPDATE ${prf}_calendar SET kun=$kun,pulam=$pulam_,pulam_src=$plmsrc,mode=$moder WHERE id=$id";
        ($dbh->do($qu)) or &error("$DBI::errstr ".$qu);
    
        $mess=$c_lng{"Pulam_Edit_OK"};
        $url_out=qq~/cgi-bin/calendar.cgi?a=moder~;
        }
      }
  
    print "Location: /cgi-bin/user.cgi?a=jump&url=$url_out&m=$mess\n\n";
  }
}

sub add {
  my ($a_action,$edit_id_out);

  if ($a eq "add" || $a eq "adds") {
    $button=$c_lng{"Add_Pulam_Button"};

    $pd=$in->param("pd") if $pd eq "";
    $pm=$in->param("pm") if $pm eq "";
    $py=$in->param("py") if $py eq "";
  
    &headprint($c_lng{"Add_Pulam"});
    $a_action="adds";
    }
  elsif ($a eq "e" || $a eq "es") {
    $id=$in->param("id");
    if ($id eq "" || $id=~/\D/) {
      print qq~Location: /\n\n~;
      exit;
      }

    my $qu=qq~select id,kun,pulam_src from ${prf}_calendar where id=$id~;
    my $myd= $dbh->prepare($qu);
    ($myd->execute) or &error("$DBI::errstr<br>$qu");
    my @cn=$myd->fetchrow_array;

    if ($cn[1]=~/^(\d{4})\-(\d{2})\-(\d{2})$/) {
      $pd=$3 if $pd eq "";
      $pm=$2 if $pm eq "";
      $py=$1 if $py eq "";
      }
    $pulam=$cn[2] if $pulam eq "";

    &headprint($c_lng{"Edit_Pulam"});
    $button=$c_lng{"Edit_Pulam_Button"};
    $a_action="es";
    $edit_id_out=qq~<input type='hidden' name='id' value='$id'>~;

    }
  $malalla=$in->param("malalla") if $malalla eq "";
 
  my ($day,$month,$year,$hour,$minute)=(localtime)[3,4,5,2,1];
  $year+=1900;
  $month+=1;

  $pd=$day if $pd eq "";
  $pm=$month if $pm eq "";
  $py=$year if $py eq "";

  #
  my ($day_out,$month_out,$year_out);
  
  for (my $ii=1;$ii<32;$ii++) {
    my $sel;
    $sel=' selected' if $pd==$ii;
    my $ij=sprintf "%02d",$ii;
    $day_out.='<option'.$sel.'>'.$ij.'</option>';
    }
  
  for (my $ii=1;$ii<13;$ii++) {
    my $sel;
    $sel=' selected' if $pm==$ii;
    my $ij=sprintf "%02d",$ii;
    $month_out.='<option'.$sel.'>'.$ij.'</option>';
    }
  my @mes=($c_lng{"Malalla_Tep"},$c_lng{"Malalla_Hush"});
  my @mout;
  for(my $ii=0;$ii<@mes;$ii++) {
    my $sel='';
    $sel=' checked' if $ii==$malalla;
    push @mout,qq~<input value='$ii' type='radio' name='malalla'$sel> $mes[$ii]~;
    }
  my $malalla_out=join "<br>",@mout;

  if (keys %error) {
    print qq~<span style='color:red'><b>$lng{"error"}</b>:</span><span style='font-style:italic'>~;
    foreach my $var (sort keys %error) {
      print "<li style='list-style:none inside none;'>".$var.": ".$error{$var}."\n";
    }
    print "</span><br>";
  }

  print qq~<table><form action='/cgi-bin/calendar.cgi' method='POST'>
  <input type='hidden' name='a' value='$a_action'>$edit_id_out
  <tr><td>$c_lng{"Kun"}:</td><td><select name='pd'>$day_out</select>
    <select name='pm'>$month_out</select>
    <input type='text' size='4' name='py' value='$py'></td></tr>
  <tr><td valign='top'>$c_lng{"Pulam"}:</td><td><textarea name='pulam'>$pulam</textarea>
    <div class='xup_forma'><input type='text' name='url' value=''></br>$malalla_out</div></td></tr>~;
  
  if ($a eq "add" || $a eq "adds") {
    print qq~<tr><td></td><td><b>$c_lng{"Malalli_Es"}</b></br>$malalla_out</td></tr>~;
    }
  
  print qq~<tr><td></td><td><input type='submit' value='$button'></td></tr>
  </form></table>
  $c_lng{"Pulam_Format_Anlantaru"}~;

  &bottomprint;
}

sub madds {
  
  $id = $in->param("id");
  if ($a eq "mes" && ($id eq "" || $id=~/\D/)) {
    print qq~Location: /\n\n~;
    exit;
    }

  $pd = $in->param("pd");
  $pm = $in->param("pm");
  $py = $in->param("py");
  $ph = $in->param("ph");
  $pi = $in->param("pi");
  $url_ = $in->param("url");
  $tip = $in->param("tip");

  $mnamech = $in->param("m_name_ch");
  $mnameru = $in->param("m_name_ru");
  $mnameen = $in->param("m_name_en");
  $mnameeo = $in->param("m_name_eo");

  $mastach = $in->param("m_asta_ch");
  $mastaru = $in->param("m_asta_ru");
  $mastaen = $in->param("m_asta_en");
  $mastaeo = $in->param("m_asta_eo");

  $error{"01"}=$c_lng{"Error_01"} if $pd<1 || $pd>31;
  $error{"02"}=$c_lng{"Error_02"} if $pm<1 || $pm>12;
  $error{"03"}=$c_lng{"Error_03"} if length($py)<4 || length($py)>4;
  $error{"04"}=$c_lng{"Error_07"} if $ph<0 || $ph>23;
  $error{"05"}=$c_lng{"Error_08"} if $pi<0 || $pi>59;

  $error{"06"}=$c_lng{"Error_05"} if $mnamech eq "" && $mnameru eq "" && $mnameen eq "" && $mnameeo eq "";
  $error{"07"}=$c_lng{"Error_06"} if $mastach eq "" && $mastaru eq "" && $mastaen eq "" && $mastaeo eq "";

  my @tips=split(/,/,$c_lng{"Meropriati_Tips"});
  $tip=0 if $tip<0 || $tip>@tips || $tip eq "" || $tip=~/\D/;

  if (keys %error) {
    &madd;
  } else {
    my $moder=0;
    $moder=1 if $group<3;
    $user_id=0 if $user_id eq "" || $user_id=~/\D/;
    my $kun=$dbh->quote($py."-".$pm."-".$pd);
    my $sehet=$dbh->quote($ph.":".$pi);
    
    foreach ($mnamech,$mnameru,$mnameen,$mnameeo,$mastach,$mastaru,$mastaen,$mastaeo) {
      $_=Encode::decode_utf8($_);
      $_=&persasp($_);
      $_=Encode::encode_utf8($_);
      }

    my $nm_ch_=$dbh->quote(&nosp($mnamech));
    my $nm_ru_=$dbh->quote(&nosp($mnameru));
    my $nm_en_=$dbh->quote(&nosp($mnameen));
    my $nm_eo_=$dbh->quote(&nosp($mnameeo));

    my $ast_ch_=$dbh->quote(&nosp($mastach));
    my $ast_ru_=$dbh->quote(&nosp($mastaru));
    my $ast_en_=$dbh->quote(&nosp($mastaen));
    my $ast_eo_=$dbh->quote(&nosp($mastaeo));

    my $url_out;
  
    if ($url_ eq "") {
      
      if ($a eq "madds") {
        $qu="INSERT INTO all_merop (user_id,kun,vahat,kertne,flag,name_ch,name_ru,name_en,name_eo,asta_ch,asta_ru,asta_en,asta_eo,tip) 
         values ($user_id,$kun,$sehet,now(),$moder,$nm_ch_,$nm_ru_,$nm_en_,$nm_eo_,$ast_ch_,$ast_ru_,$ast_en_,$ast_eo_,$tip)";
        ($dbh->do($qu)) or &error("$DBI::errstr ".$qu);
    
        $mess=$c_lng{"Meropriati_Add_OK"};

        $malalla = $in->param("malalla");
        my @mes=("/","/cgi-bin/calendar.cgi?a=madd%26pd=$pd%26pm=$pm%26py=$py%26malalla=$malalla");
        $malalla=0 if $malalla eq "" || $malalla<0 || $malalla>@mes;
        $url_out=$mes[$malalla];
        }
      elsif ($a eq "mes") {
        $qu="UPDATE all_merop SET kun=$kun,vahat=$sehet,flag=$moder,
             name_ch=$nm_ch_,name_ru=$nm_ru_,name_en=$nm_en_,name_eo=$nm_eo_,asta_ch=$ast_ch_,asta_ru=$ast_ru_,asta_en=$ast_en_,asta_eo=$ast_eo_,tip=$tip WHERE id=$id";
        ($dbh->do($qu)) or &error("$DBI::errstr ".$qu);
    
        $mess=$c_lng{"Meropriati_Edit_OK"};
        $url_out=qq~/cgi-bin/calendar.cgi?a=mmoder~;
        }
      }
  
    print "Location: /cgi-bin/user.cgi?a=jump&url=$url_out&m=$mess\n\n";
  }
}


sub madd {
  my ($a_action,$edit_id_out);

  if ($a eq "madd" || $a eq "madds") {
    $button=$c_lng{"Add_Meropriati_Button"};

    $pd=$in->param("pd") if $pd eq "";
    $pm=$in->param("pm") if $pm eq "";
    $py=$in->param("py") if $py eq "";
    $ph=$in->param("ph") if $ph eq "";
    $pi=$in->param("pi") if $pi eq "";

    $mnamech=$in->param("m_name_ch") if $mnamech eq "";
    $mnameru=$in->param("m_name_ru") if $mnameru eq "";
    $mnameen=$in->param("m_name_en") if $mnameen eq "";
    $mnameeo=$in->param("m_name_eo") if $mnameeo eq "";
             
    $mastach=$in->param("m_asta_ch") if $mastach eq "";
    $mastaru=$in->param("m_asta_ru") if $mastaru eq "";
    $mastaen=$in->param("m_asta_en") if $mastaen eq "";
    $mastaeo=$in->param("m_asta_eo") if $mastaeo eq "";

    &headprint($c_lng{"Add_Meropriati"});
    $a_action="madds";
    }
  elsif ($a eq "me" || $a eq "mes") {
    $id=$in->param("id");
    if ($id eq "" || $id=~/\D/) {
      print qq~Location: /\n\n~;
      exit;
      }

    my $qu=qq~select id,kun,vahat,name_ch,name_ru,name_en,name_eo,asta_ch,asta_ru,asta_en,asta_eo,tip FROM all_merop where id=$id~;
    my $myd= $dbh->prepare($qu);
    ($myd->execute) or &error("$DBI::errstr<br>$qu");
    my @cn=$myd->fetchrow_array;

    if ($cn[1]=~/^(\d{4})\-(\d{2})\-(\d{2})$/) {
      $pd=$3 if $pd eq "";
      $pm=$2 if $pm eq "";
      $py=$1 if $py eq "";
      }
    $mnamech=$cn[3] if $mnamech eq "";
    $mnameru=$cn[4] if $mnameru eq "";
    $mnameen=$cn[5] if $mnameen eq "";
    $mnameeo=$cn[6] if $mnameeo eq "";

    $mastach=$cn[7] if $mastach eq "";
    $mastaru=$cn[8] if $mastaru eq "";
    $mastaen=$cn[9] if $mastaen eq "";
    $mastaeo=$cn[10] if $mastaeo eq "";
    $tip=$cn[11] if $tip eq "";

    if ($cn[2]=~/^(\d{2})\:(\d{2})/) {
      $ph=$1 if $ph eq "";
      $pi=$2 if $pi eq "";
      }

    &headprint($c_lng{"Edit_Meropriati"});
    $button=$c_lng{"Edit_Meropriati_Button"};
    $a_action="mes";
    $edit_id_out=qq~<input type='hidden' name='id' value='$id'>~;

    }
  $malalla=$in->param("malalla") if $malalla eq "";
 
  my ($day,$month,$year,$hour,$minute)=(localtime)[3,4,5,2,1];
  $year+=1900;
  $month+=1;

  $pd=$day if $pd eq "";
  $pm=$month if $pm eq "";
  $py=$year if $py eq "";
  #$ph=$hour if $ph eq "";
  #$pi=$minute if $pi eq "";

  #
  my ($day_out,$month_out,$year_out,$tip_out);
  
  for (my $ii=1;$ii<32;$ii++) {
    my $sel;
    $sel=' selected' if $pd==$ii;
    my $ij=sprintf "%02d",$ii;
    $day_out.='<option'.$sel.'>'.$ij.'</option>';
    }
  
  for (my $ii=1;$ii<13;$ii++) {
    my $sel;
    $sel=' selected' if $pm==$ii;
    my $ij=sprintf "%02d",$ii;
    $month_out.='<option'.$sel.'>'.$ij.'</option>';
    }
  
  for (my $ii=0;$ii<24;$ii++) {
    my $sel;
    $sel=' selected' if $ph==$ii;
    my $ij=sprintf "%02d",$ii;
    $sehet_out.='<option'.$sel.'>'.$ij.'</option>';
    }
  
  for (my $ii=0;$ii<60;$ii++) {
    my $sel;
    $sel=' selected' if $pi==$ii;
    my $ij=sprintf "%02d",$ii;
    $minut_out.='<option'.$sel.'>'.$ij.'</option>';
    }

  my @mes=($c_lng{"Malalla_Tep"},$c_lng{"Malalla_Hush"});
  my @mout;
  for(my $ii=0;$ii<@mes;$ii++) {
    my $sel='';
    $sel=' checked' if $ii==$malalla;
    push @mout,qq~<input value='$ii' type='radio' name='malalla'$sel> $mes[$ii]~;
    }
  my $malalla_out=join "<br>",@mout;

  my @tips=split(/,/,$c_lng{"Meropriati_Tips"});
  for (my $ii=0;$ii<@tips;$ii++) {
    my $sel;
    $sel=' selected' if $tip==$ii;
    $tip_out.='<option value=\''.$ii.'\' '.$sel.'>'.$tips[$ii].'</option>';
    }

  if (keys %error) {
    print qq~<div><span style='color:red'><b>$lng{"error"}</b>:</span><span style='font-style:italic'>~;
    foreach my $var (sort keys %error) {
      print "<li style='list-style:none inside none;'>".$var.": ".$error{$var}."\n";
    }
    print "</span></div>";
  }

  print qq~<table><form action='/cgi-bin/calendar.cgi' method='POST'>
  <input type='hidden' name='a' value='$a_action'>$edit_id_out
  <tr><td>$c_lng{"Kun"}:</td><td><select name='pd'>$day_out</select>
    <select name='pm'>$month_out</select>
    <input type='text' size='4' name='py' value='$py'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<select name='ph'>$sehet_out</select> <select name='pi'>$minut_out</select></td></tr>
  <tr><td valign='top'>$c_lng{"Meropriati_Name"}:</td><td><input type='text' style='width:500px;' name='m_name_ch' value='$mnamech' placeholder='$lng{"Language_Out_cv"}'><br />
  <input type='text' name='m_name_ru' value='$mnameru'  style='width:500px;' placeholder='$lng{"Language_Out_ru"}'><br />
  <input type='text' name='m_name_en' value='$mnameen' style='width:500px;' placeholder='$lng{"Language_Out_en"}'><br />
  <input type='text' name='m_name_eo' value='$mnameeo' style='width:500px;' placeholder='$lng{"Language_Out_eo"}'><br />
  </td></tr>
  <tr><td valign='top'>$c_lng{"Meropriati_Asta"}:</td><td><input  style='width:500px;' type='text' name='m_asta_ch' value='$mastach' placeholder='$lng{"Language_Out_cv"}'><br />
  <input type='text' name='m_asta_ru' value='$mastaru' style='width:500px;' placeholder='$lng{"Language_Out_ru"}'><br />
  <input type='text' name='m_asta_en' value='$mastaen' style='width:500px;' placeholder='$lng{"Language_Out_en"}'><br />
  <input type='text' name='m_asta_eo' value='$mastaeo' style='width:500px;' placeholder='$lng{"Language_Out_eo"}'><br />
  </td></tr>
  <tr><td valign='top'>$c_lng{"Meropriati_Tip"}:</td><td><select style='width:500px;' name='tip'>$tip_out</select>
  <br />

      <div class='xup_forma'><input type='text' name='url' value=''></br>$malalla_out</div></td></tr>~;
  
  if ($a eq "madd" || $a eq "madds") {
    print qq~<tr><td></td><td><b>$c_lng{"Malalli_Es"}</b></br>$malalla_out</td></tr>~;
    }
  
  print qq~<tr><td></td><td><input class='btn' type='submit' value='$button'></td></tr>
  </form></table>
  $c_lng{"Meropriati_Format_Anlantaru"}~;

  &bottomprint;
}



sub moder {
  if ($group<3) {
    print qq~Location: /\n\n~;
    return;
    }

  my $Page;
  foreach my $olng ('ch','ru','en','eo') {
    if ($olng ne $prf) {
      my $domen=$olng.".";
      my $s=$olng;
      if ($olng eq "ch") {
        $domen="";
        $s="cv";
        }
      else {
        $s=$olng;
        }
      $Page->{"Other_Lang"}->{$s}->{"Link"}=qq~http://${domen}chuvash.org/cgi-bin/calendar.cgi?a=moder~;
      }
    }

  
  &headprint($c_lng{"Moderate_Head"},$Page);

  my $qu=qq~select id,user_id,kun,pulam_src,`insert`  from ${prf}_calendar where mode=1 order by `insert`~;
  my $myd= $dbh->prepare($qu);
  ($myd->execute) or &error("$DBI::errstr<br>$qu");
  my $kns=$myd->fetchall_arrayref;

  foreach (@$kns) {
    print qq~<div class='blog'><div style='float:right;text-align:right;width:50px;'><a 
    href='/cgi-bin/calendar.cgi?a=e&id=@$_[0]'>e</a> <a href='/cgi-bin/calendar.cgi?a=d&id=@$_[0]'>x</a>
    </div>@$_[0]. <u>@$_[2]</u> (<i>@$_[1]</i>):<br/> <b>@$_[3]</b></div><br>\n~;
  }

  &bottomprint;
}


sub goroscops {
  if ($group<3) {
    print qq~Location: /\n\n~;
    return;
    }
  $wk=$in->param("wk");
  $yr=$in->param("yr");
  
  my $qu=qq~SELECT year(NOW()),WEEK(NOW(),3)~;
  my $myd= $dbh->prepare($qu);
  ($myd->execute) or &error("$DBI::errstr<br>$qu");
  my ($cury,$curw)=$myd->fetchrow_array;

  $yr=$cury if $yr eq "" || $yr=~/\D/;
  $wk=$curw if $wk eq "" || $wk=~/\D/;
  
  foreach my $ii (1..12) {
    $sl_rus[$ii]=$in->param("sl".$ii."_rus");
    $sl_chv[$ii]=$in->param("sl".$ii."_chv");
    $sl_rus[$ii]=$dbh->quote($sl_rus[$ii]);
    $sl_chv[$ii]=$dbh->quote($sl_chv[$ii]);
    }

  my $qu=qq~SELECT count(*) FROM all_goroscop WHERE sul=$yr AND erne=$wk~;
  my $myd= $dbh->prepare($qu);
  ($myd->execute) or &error("$DBI::errstr<br>$qu");
  my $cnt=$myd->fetchrow_array;

  if ($cnt>0) {
    $qu="UPDATE all_goroscop SET sl1_ru=$sl_rus[1],sl12_ru=$sl_rus[12],sl2_ru=$sl_rus[2],sl3_ru=$sl_rus[3],sl4_ru=$sl_rus[4],sl5_ru=$sl_rus[5],sl6_ru=$sl_rus[6],sl7_ru=$sl_rus[7],sl8_ru=$sl_rus[8],sl9_ru=$sl_rus[9],
         sl10_ru=$sl_rus[10],sl11_ru=$sl_rus[11],sl1_ch=$sl_chv[1],sl12_ch=$sl_chv[12],sl2_ch=$sl_chv[2],sl3_ch=$sl_chv[3],sl4_ch=$sl_chv[4],sl5_ch=$sl_chv[5],sl6_ch=$sl_chv[6],sl7_ch=$sl_chv[7],sl8_ch=$sl_chv[8],
         sl9_ch=$sl_chv[9],sl10_ch=$sl_chv[10],sl11_ch=$sl_chv[11] 
         WHERE sul=$yr AND erne=$wk";
    ($dbh->do($qu)) or &error("$DBI::errstr ".$qu);
    $mess=$c_lng{"Goroscop_Add_OK"};
    }
  else {

    $qu="INSERT INTO all_goroscop (sul,erne,sl1_ru,sl2_ru,sl3_ru,sl4_ru,sl5_ru,sl6_ru,sl7_ru,sl8_ru,sl9_ru,sl10_ru,sl11_ru,sl12_ru,
                                   sl1_ch,sl2_ch,sl3_ch,sl4_ch,sl5_ch,sl6_ch,sl7_ch,sl8_ch,sl9_ch,sl10_ch,sl11_ch,sl12_ch) 
     values ($yr,$wk,$sl_rus[1],$sl_rus[2],$sl_rus[3],$sl_rus[4],$sl_rus[5],$sl_rus[6],$sl_rus[7],$sl_rus[8],$sl_rus[9],$sl_rus[10],$sl_rus[11],$sl_rus[12],
            $sl_chv[1],$sl_chv[2],$sl_chv[3],$sl_chv[4],$sl_chv[5],$sl_chv[6],$sl_chv[7],$sl_chv[8],$sl_chv[9],$sl_chv[10],$sl_chv[11],$sl_chv[12])";
    ($dbh->do($qu)) or &error("$DBI::errstr ".$qu);
    
    $mess=$c_lng{"Goroscop_Edit_OK"};
    }


  print "Location: /cgi-bin/user.cgi?a=jump&url=/cgi-bin/calendar.cgi?a=goroscop&m=".$mess."\n\n";
  
  }

sub goroscopex {
  &headprint($c_lng{"Goroscope_Head"},$Page);

  my $qu=qq~SELECT year(NOW()),WEEK(NOW(),2)~;
  my $myd= $dbh->prepare($qu);
  ($myd->execute) or &error("$DBI::errstr<br>$qu");
  my ($cury,$curw)=$myd->fetchrow_array;

  my $wk=$in->param("wk");
  my $yr=$in->param("yr");

  $yr=$cury if $yr eq "" || $yr=~/\D/;
  $wk=$curw if $wk eq "" || $wk=~/\D/;

  my $where=qq~sul=$yr AND erne=$wk~;

  my $qu=qq~SELECT id,sul,erne,sl1_ru,sl1_ch,sl2_ru,sl2_ch,sl3_ru,sl3_ch,sl4_ru,sl4_ch,sl5_ru,sl5_ch,sl6_ru,sl6_ch,
                   sl7_ru,sl7_ch,sl8_ru,sl8_ch,sl9_ru,sl9_ch,sl10_ru,sl10_ch,sl11_ru,sl11_ch,sl12_ru,sl12_ch FROM all_goroscop WHERE $where~;
  my $myd= $dbh->prepare($qu);
  ($myd->execute) or &error("$DBI::errstr<br>$qu");
  my @sls=$myd->fetchrow_array;
  
  my ($chv_data,$rus_data);
  foreach (0..11) {
    $sls[4+$_*2]=~s/\s+$//;
    $sls[3+$_*2]=~s/\s+$//;
    $chv_data.=$sls[4+$_*2]."<br />";
    $rus_data.=$sls[3+$_*2]."<br />";
    }

  print qq~
  <form action='/cgi-bin/calendar.cgi' method='post'>
  <input type='hidden' name='a' value='goroscopex'>
  <p>Week:<input type='text' name='wk' value='$wk'></p>
  <p>Year:<input type='text' name='yr' value='$yr'></p>
  <p><input type='submit' name='act'></p></form>

  <div style='width: 49%;
border: 1px solid;
float: left;
padding: 10px;
box-sizing: border-box;'>$chv_data</div><div style='width: 49%;
border: 1px solid;
float: left;
padding: 10px;
box-sizing: border-box;'>$rus_data</div>~;

  &bottomprint;
  }

sub goroscop {
  if ($group<3) {
    print qq~Location: /\n\n~;
    return;
    }

  my $Page;
  foreach my $olng ('ch','ru','en','eo') {
    if ($olng ne $prf) {
      my $domen=$olng.".";
      my $s=$olng;
      if ($olng eq "ch") {
        $domen="";
        $s="cv";
        }
      else {
        $s=$olng;
        }
      $Page->{"Other_Lang"}->{$s}->{"Link"}=qq~http://${domen}chuvash.org/cgi-bin/calendar.cgi?a=goroscop~;
      }
    }

  
  &headprint($c_lng{"Goroscope_Head"},$Page);

  my $qu=qq~SELECT year(NOW()),WEEK(NOW(),2)~;
  my $myd= $dbh->prepare($qu);
  ($myd->execute) or &error("$DBI::errstr<br>$qu");
  my ($cury,$curw)=$myd->fetchrow_array;

  my $wk=$in->param("wk");
  my $yr=$in->param("yr");

  $yr=$cury if $yr eq "" || $yr=~/\D/;
  $wk=$curw if $wk eq "" || $wk=~/\D/;

  my $where=qq~sul=$yr AND erne=$wk~;

  my $qu=qq~SELECT id,sul,erne,sl1_ru,sl1_ch,sl2_ru,sl2_ch,sl3_ru,sl3_ch,sl4_ru,sl4_ch,sl5_ru,sl5_ch,sl6_ru,sl6_ch,
                   sl7_ru,sl7_ch,sl8_ru,sl8_ch,sl9_ru,sl9_ch,sl10_ru,sl10_ch,sl11_ru,sl11_ch,sl12_ru,sl12_ch FROM all_goroscop WHERE $where~;
  my $myd= $dbh->prepare($qu);
  ($myd->execute) or &error("$DBI::errstr<br>$qu");
  my @sls=$myd->fetchrow_array;

  $sl_rus[1]=$sls[3] if $sl_rus[1] eq "";
  $sl_rus[2]=$sls[5] if $sl_rus[2] eq "";
  $sl_rus[3]=$sls[7] if $sl_rus[3] eq "";
  $sl_rus[4]=$sls[9] if $sl_rus[4] eq "";
  $sl_rus[5]=$sls[11] if $sl_rus[5] eq "";
  $sl_rus[6]=$sls[13] if $sl_rus[6] eq "";
  $sl_rus[7]=$sls[15] if $sl_rus[7] eq "";
  $sl_rus[8]=$sls[17] if $sl_rus[8] eq "";
  $sl_rus[9]=$sls[19] if $sl_rus[9] eq "";
  $sl_rus[10]=$sls[21] if $sl_rus[10] eq "";
  $sl_rus[11]=$sls[23] if $sl_rus[11] eq "";
  $sl_rus[12]=$sls[25] if $sl_rus[12] eq "";

  $sl_chv[1]=$sls[4] if $sl_chv[1] eq "";
  $sl_chv[2]=$sls[6] if $sl_chv[2] eq "";
  $sl_chv[3]=$sls[8] if $sl_chv[3] eq "";
  $sl_chv[4]=$sls[10] if $sl_chv[4] eq "";
  $sl_chv[5]=$sls[12] if $sl_chv[5] eq "";
  $sl_chv[6]=$sls[14] if $sl_chv[6] eq "";
  $sl_chv[7]=$sls[16] if $sl_chv[7] eq "";
  $sl_chv[8]=$sls[18] if $sl_chv[8] eq "";
  $sl_chv[9]=$sls[20] if $sl_chv[9] eq "";
  $sl_chv[10]=$sls[22] if $sl_chv[10] eq "";
  $sl_chv[11]=$sls[24] if $sl_chv[11] eq "";
  $sl_chv[12]=$sls[26] if $sl_chv[12] eq "";

  my $week_out; my @wlinks;
  if ($wk==1) {
    my $mly=$yr-1;
    push @wlinks,qq~<a href='/cgi-bin/calendar.cgi?a=goroscop&wk=52&yr=$mly'>52 ($mly)</a>~;
    }
  else {
    my $mw=$wk-1;
    push @wlinks,qq~<a href='/cgi-bin/calendar.cgi?a=goroscop&wk=$mw&yr=$yr'>$mw ($yr)</a>~;
    }
  push @wlinks,qq~<b>$wk ($yr)</b>~;

  if ($wk==52) {
    my $mly=$yr+1;
    push @wlinks,qq~<a href='/cgi-bin/calendar.cgi?a=goroscop&wk=1&yr=$mly'>1 ($mly)</a>~;
    }
  else {
    my $mw=$wk+1;
    push @wlinks,qq~<a href='/cgi-bin/calendar.cgi?a=goroscop&wk=$mw&yr=$yr'>$mw ($yr)</a>~;
    }
  $week_out=join ", ",@wlinks;

  print qq~<style>
  .goros_area {
    width: 50%;
display: inline-block;
padding: 0 10px 20px 10px;
box-sizing: border-box;
    }
  .goros_area textarea {
    width:100%;
    height: 152px;
    }
  </style>
  <div style='margin-left: -10px;'>
  <p style='padding-left:10px;'>$c_lng{"Tuday_Week_Num"}: <b>$curw</b>; $c_lng{"Tuday_Year"}: <b>$cury</b></p>
  <p style='padding-left:10px;'>$c_lng{"Edit_Week"}: $week_out</p>
  <form action='/cgi-bin/calendar.cgi' method='POST'><input type='hidden' name='a' value='goroscops'><input type='hidden' name='wk' value='$wk'>
  <input type='hidden' name='yr' value='$yr'><input type='submit' name='act' value='$c_lng{"Goroscop_Save_Buttom"}'><br />~;

  my @goros_name=split(/\,/,$c_lng{"Goros_Names"});

  my $ij=0;
  foreach my $ii (1..12) {
    print qq~<span class='goros_area'><div>$goros_name[$ij]:</div><textarea name='sl${ii}_rus'>$sl_rus[$ii]</textarea></span><span 
      class='goros_area'><div>$goros_name[$ij+1]:</div><textarea name='sl${ii}_chv'>$sl_chv[$ii]</textarea></span>~;
    $ij+=2;
  }
  print qq~<input type='submit' name='act' value='$c_lng{"Goroscop_Save_Buttom"}'>
  </form></div>~;

  &bottomprint;
}



sub del {
  if ($group<3) {
    print qq~Location: /\n\n~;
    return;
    }
  my $id=$in->param("id");

  if ($id eq "" || $id=~/\D/) {
    print qq~Location: /\n\n~;
    return;
    }

  my $qu=qq~select id,user_id,kun,pulam_src,`insert` from ${prf}_calendar where id=$id~;
  my $myd= $dbh->prepare($qu);
  ($myd->execute) or &error("$DBI::errstr<br>$qu");
  my $kns=$myd->fetchall_arrayref;

  if ($kns->[0]->[0] eq "") {
    print qq~Location: /\n\n~;
    return;
    }
  
  &headprint($c_lng{"Pulam_Delete_Head"});

  my $tmp=$c_lng{"Pulam_Delete_Iytu"};

  $kns->[0]->[3]=~ s/</&lt;/gs;
  $kns->[0]->[3]=~ s/>/&gt;/gs;

  $tmp=~s/__TEXT__/$kns->[0]->[3]/gsi;
  $tmp=~s/__DATE__/$kns->[0]->[2]/gsi;

  print qq~<form action='/cgi-bin/calendar.cgi' method='POST'>
  <input type='hidden' name='a' value='ds'>
  <input type='hidden' name='id' value='$id'>
  $tmp<br/>
  <input type='submit' name='act' value='$c_lng{"Pulam_Delete_Yes"}'>
  <input type='submit' name='act' value='$c_lng{"Pulam_Delete_No"}'>~;

  &bottomprint;
}


sub dels {
  if ($group<3) {
    print qq~Location: /\n\n~;
    return;
    }
  my $id=$in->param("id");

  if ($id eq "" || $id=~/\D/) {
    print qq~Location: /\n\n~;
    return;
    }

  my $qu=qq~select id,user_id,kun,pulam_src,`insert` from ${prf}_calendar where id=$id~;
  my $myd= $dbh->prepare($qu);
  ($myd->execute) or &error("$DBI::errstr<br>$qu");
  my $kns=$myd->fetchall_arrayref;

  if ($kns->[0]->[0] eq "") {
    print qq~Location: /\n\n~;
    return;
    }
  
  my $act=$in->param("act");

  my $mess;

  if ($act eq $c_lng{"Pulam_Delete_Yes"}) {
    $mess=$c_lng{"Pulam_Delete_OK"};

    $qu="DELETE FROM ${prf}_calendar WHERE id=".$id;
    ($dbh->do($qu)) or &error("$DBI::errstr ".$qu);

    }
  else {
    $mess=$c_lng{"Pulam_Delete_Not_OK"}
    }


  print "Location: /cgi-bin/user.cgi?a=jump&url=/cgi-bin/calendar.cgi?a=moder&m=".$mess."\n\n";
}


sub mdel {
  if ($group<3) {
    print qq~Location: /\n\n~;
    return;
    }
  my $id=$in->param("id");

  if ($id eq "" || $id=~/\D/) {
    print qq~Location: /\n\n~;
    return;
    }

  my $qu=qq~select id,user_id,kun,name_$prf,`kertne` from all_merop where id=$id~;
  my $myd= $dbh->prepare($qu);
  ($myd->execute) or &error("$DBI::errstr<br>$qu");
  my $kns=$myd->fetchall_arrayref;

  if ($kns->[0]->[0] eq "") {
    print qq~Location: /\n\n~;
    return;
    }
  
  &headprint($c_lng{"Meropriati_Delete_Head"});

  my $tmp=$c_lng{"Meropriati_Delete_Iytu"};

  $kns->[0]->[3]=~ s/</&lt;/gs;
  $kns->[0]->[3]=~ s/>/&gt;/gs;

  $tmp=~s/__TEXT__/$kns->[0]->[3]/gsi;
  $tmp=~s/__DATE__/$kns->[0]->[2]/gsi;

  print qq~<form action='/cgi-bin/calendar.cgi' method='POST'>
  <input type='hidden' name='a' value='mds'>
  <input type='hidden' name='id' value='$id'>
  $tmp<br/>
  <input type='submit' name='act' value='$c_lng{"Meropriati_Delete_Yes"}'>
  <input type='submit' name='act' value='$c_lng{"Meropriati_Delete_No"}'>~;

  &bottomprint;
}


sub mdels {
  if ($group<3) {
    print qq~Location: /\n\n~;
    return;
    }
  my $id=$in->param("id");

  if ($id eq "" || $id=~/\D/) {
    print qq~Location: /\n\n~;
    return;
    }

  my $qu=qq~select id,user_id,kun,name_$prf,`kertne` from all_merop where id=$id~;
  my $myd= $dbh->prepare($qu);
  ($myd->execute) or &error("$DBI::errstr<br>$qu");
  my $kns=$myd->fetchall_arrayref;

  if ($kns->[0]->[0] eq "") {
    print qq~Location: /\n\n~;
    return;
    }
  
  my $act=$in->param("act");

  my $mess;

  if ($act eq $c_lng{"Meropriati_Delete_Yes"}) {
    $mess=$c_lng{"Meropriati_Delete_OK"};

    $qu="DELETE FROM all_merop WHERE id=".$id;
    ($dbh->do($qu)) or &error("$DBI::errstr ".$qu);

    }
  else {
    $mess=$c_lng{"Meropriati_Delete_Not_OK"}
    }


  print "Location: /cgi-bin/user.cgi?a=jump&url=/news/a/md.html#merop&m=".$mess."\n\n";
}


sub pub_ru {
  $id = $in->param("id");
  if ($id eq "" || $id=~/\D/ || $group<3) {
    print qq~Location: /\n\n~;
    return;
    }
  &headprint;
  my $qu=qq~select user_id,kun,pulam_src,`insert`  from ${prf}_calendar where mode=1 order by `insert`~;
  my $myd= $dbh->prepare($qu);
  ($myd->execute) or &error("$DBI::errstr<br>$qu");
  my $kns=$myd->fetchall_arrayref;
  $cn[2]=~s/\<br\>/\n/gs;
  $cn[2]=dnc($cn[2]);
  if ($cn[5]) {
    $cn[6]=~s/_/%5F/gs;
    $cn[2].=qq~\n%blue%$lng{"News_Sourse_Out"}%/blue%: __$cn[6]_$cn[5]__~;
    }

  print qq~
  <form action='http://ru.chuvash.org/cgi-bin/index.cgi' method='POST'>
  <input type='hidden' name='a' value='newsa'>
  <input type='text' name='head' value='$cn[1]' style='width:500px;'><br>
  <textarea name='comm' style='width:500px;height:300px;'>$cn[2]</textarea><br>
  <input type='submit' value='Send'>
  </form>
  ~;
  
  &bottomprint;
  }

sub controlhtml {
  my $a=shift;
  $a=~s/\</\&lt;/g;
  $a=~s/\>/\&gt;/g;
  $a=~s/\n/<br>/g;
  $a=~s/\&lt;([BbIiUuSs])\&gt;(.+?)\&lt;\/\1\&gt;/<$1>$2<\/$1>/g;
  $a=~s/\&lt;(pre|h1|h2|h3|sub|sup|ul|li|ol)\&gt;(.+?)\&lt;\/\1\&gt;/<$1>$2<\/$1>/g;
  $a=~s/\&lt;!--(.+?)--\&gt;/<!--$1-->/g;
  $a=~s/\&lt;br\&gt;/<br>/g;
  $a=~s/\&lt;img(.+?)\&gt;/<img$1>/g;
  $a=~s/\&lt;a(.+?)\&gt;(.+?)\&lt;\/a\&gt;/<a$1>$2<\/a>/g;
  return ($a);
  }

sub enc {
  my $v=shift;
  $v=~s/\~\~(.+?)\~\~/<i>$1<\/i>/gs;
  $v=~s/\*\*(.+?)\*\*/<b>$1<\/b>/gs;
  $v=~s/__(.+?)__/&lnk($1)/ges;
  $v=~s/_(.+?)_/<u>$1<\/u>/gs;
  $v=~s/(\%(.+?)\%(.+?)\%\/(\2)\%)/&clr($1,$2,$3,$4)/ges;
  return ($v);
  }

sub dnc {
  my $v=shift;
  $v=~s/<font color="(.+?)">(.+?)<\/font>/\%$1\%$2\%\/$1\%/gs;
  $v=~s/<u>(.+?)<\/u>/_$1_/gs;
  $v=~s/<a href='\/e\/(.+?)'>(.+?)<\/a>/dlnk($1,$2)/ges;
  $v=~s/<a href='\/ggm\-cgi\-bin\/ee\.cgi\?id=(.+?)'>(.+?)<\/a>/__$1__/gs;
  $v=~s/<a (target='blank' |)href='(.+?)'>(.+?)<\/a>/__$2_$3__/gs;
  $v=~s/<b>(.+?)<\/b>/\*\*$1\*\*/gs;
  $v=~s/<i>(.+?)<\/i>/\~\~$1\~\~/gs;
  return ($v);
  }

sub dlnk {
  my $v=shift;
  my $v2=shift;
  my $v1=$v;
  $v1=~s/(..)/pack("C",hex($1))/eg;
  if ($v1 eq $v2) {return "__".$v2."__"}
  else {return("__".$v1."_".$v2."__");}
  }

sub lnk {
  my $v=shift;
  if ($v=~/_/) {
    $v=~/(.+)_(.+)/;
    $l=$1;
    $s=$2;
    my $trg="";
    if ($l=~/^http/) {
      $trg=" target='blank'";
      }
    elsif ($l!~/[\/\\\?a-zA-Z=]/) {
      $l=~s/(.)/unpack("H2",$1)/eg;
      $l="/e/".$l;
      }
    return ("<a$trg href='".$l."'><b>".$s."</b></a>");
    }
  else {
    $vv=$v;
    $vv=~s/(.)/unpack("H2",$1)/eg;
    return ("<a href='/e/".$vv."'><b>".$v."</b></a>");
    }
  }

sub clr {
  my $is=shift;
  my $v=shift;
  my $t=shift;
  my $c=shift;
  if ($v ne $c) {return($is)}
  else {
    return("<font color=\"".$v."\">".$t."</font>");
    }
  }


