#!/usr/local/bin/perl  
# Globals begin 
use CGI::Carp qw(fatalsToBrowser);

$REQUIRE_DIR='require'; 
push (@INC,$REQUIRE_DIR); 
require 'config.cfg'; 
require 'arrays.pl';
require 'graph.pl';
require 'RanImSub.pl';
use Image::Magick;

%FORM=(); 
%data=();
%CODE=(); 
$result=check_host($ENV{'REMOTE_ADDR'});
if($result eq "stop"){
    error("Banned host");
}
parse_form();

require 'arrays.pl';
require 'graph.pl';
require 'RanImSub.pl';
use Image::Magick;
codeLoad();

#################################################################### 
#                Проверка заполнения полей 
if(!defined($FORM{'cID'})) 
{ 
  setCode();
  codeSave();
  out_add_page();
  exit; 
} 
#                Конец проверки 
####################################################################### 
 
$FORM{'name'} =~ s/^( +)//; 
if($FORM{'name'} eq '' || $FORM{'name'} =~ /script/i) 
{ 
  $VAR{'error_msg'}=$ERROR_MSG."\"Имя\"."; 
  delete($CODE{$FORM{cID}});
  unlink $IMAGE_PATH.$FORM{'cID'}.".png";
  setCode();
  codeSave();
  out_add_page();
  exit; 
} 

$FORM{'message'} =~ s/^( +)//; 
if($FORM{'message'} eq '' || $FORM{'message'} =~ /script/i) 
{ 
  $VAR{'error_msg'}=$ERROR_MSG."\"Сообщение\"."; 
  delete($CODE{$FORM{cID}});
  unlink $IMAGE_PATH.$FORM{'cID'}.".png";
  setCode();
  codeSave();
  out_add_page();
  exit; 

} 

$FORM{'email'} =~ s/^[\s-]+//; 
if(($FORM{'email'} ne ''&&($FORM{'email'} =~ /[А-я]/ || $FORM{'email'} !~ "@")) || $FORM{'email'} =~ /script/i) 
{ 
  $VAR{'error_msg'}=$ERROR_MSG."\"E-Mail\".";  
  delete($CODE{$FORM{cID}});
  unlink $IMAGE_PATH.$FORM{'cID'}.".png";
  setCode();
  codeSave();
  out_add_page();
  exit; 
} 
elsif($FORM{'email'} eq '' || $FORM{'email'} =~ /script/i){
    $FORM{'email'} ='-';
}
$FORM{'http'} ='-';
# Верификация
if(!$FORM{'code'}){
  $VAR{'error_msg'}=$ERROR_MSG."\"Верификационный код\".";
  delete($CODE{$FORM{cID}});
  unlink $IMAGE_PATH.$FORM{'cID'}.".png";
  setCode();
  codeSave();
  out_add_page();
  exit;
}
else{
  my($c,$tm)=split(/ $SEPARATOR /,$CODE{$FORM{'cID'}});
#  error("!$FORM{'cID'}!<br>!$CODE{$FORM{'cID'}}!<br>!$c!<br>!$FORM{'code'}!");
  if($FORM{'code'} ne $c){
    $VAR{'error_msg'}=$ERROR_MSG."\"Верификационный код\".";
    delete($CODE{$FORM{cID}});
    unlink $IMAGE_PATH.$FORM{'cID'}.".png";
    setCode();
    codeSave();
    out_add_page();
    exit;
  }
  else{
    delete($CODE{$FORM{cID}});
    unlink $IMAGE_PATH.$FORM{'cID'}.".png"; 
    codeSave();
  }
}

#######################################################################
$qstr="$FORM{'name'} $FORM{'message'}";
foreach(@banned_words){
  if($qstr=~/$_/){
    out_book();
    $VAR{"BANNED"}=$_;
    open (MAIL, "|$mailprog $to") || die "Can't open $mailprog!\n"; 
    parse_template($MAIL_TEMPLATE,$BANNED_MAIL_TEMPLATE);
    close (MAIL);
    exit;
  }
}  
$id=read_files();
$id++;
$date=time; 
$date_format="<0d>.<0m>.<year>   <mtime>"; 
 
if(!($date=&format_date($date,$date_format))) { 
	error("DATE");
} 
if($FORM{'http'} !~ /^(http:\/\/)/){
    $FORM{'http'}="http:\/\/".$FORM{'http'};
}

#######################

$FORM{'message'}=~s/(<br>)?([^">])http:\/\/([^ <\)]+)/$1$2<a href="http:\/\/$3">http:\/\/$3<\/a>/g;

$FORM{'message'}=~s/(<br>)?([^\/])www\.([^ <]+)/$1$2<a href="http:\/\/www\.$3">http:\/\/www\.$3<\/a>/g;

$FORM{'message'}=~s/( |\(|<br>)([^ ><=]+)\.(ru|com|org)/$1<a href="http:\/\/$2\.$3">http:\/\/$2\.$3<\/a>/g;

########################

$dnew_line="$id $SEPARATOR $date $SEPARATOR $FORM{'name'} $SEPARATOR $FORM{'email'} $SEPARATOR $FORM{'http'} $SEPARATOR $FORM{'message'}\n";
$mnew_line="$id $SEPARATOR $ENV{'REMOTE_ADDR'}  $SEPARATOR  $SEPARATOR  $SEPARATOR \n";
$last_id=add_line($dnew_line,$mnew_line);
write_files();

open (MAIL, "|$mailprog $CONFIG{'to'}") || die "Can't open $mailprog!\n"; 
parse_template($MAIL_TEMPLATE,MAIL);
close (MAIL);

%CONFIG=();
%VAR=();
### Исправим html-файл ###
$page=1;
#out_book();
print "Location:http://www.ftad.ru/gbook/gbook.pl\n\n";
#create_spisok();
#print_location($last_id);
