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


require "szavazogepadmin.lib.pl";
require "szavazogepadmin.html.pl";

&parse_cookie;
&parse_input;

if (!-e "beallit.pl") {
    &setup("beallit.pl");       
}

require "beallit.pl";


if ($error = &check_pwd($FORM{'getpassid'}, $FORM{'getpasspwd'}, $FORM{'get_pwd_form'})) { 
    &get_pwd($error);   
    exit;
} 



if ($FORM{'navigate'} eq "admin_settings") {
    &admin_settings();
}
elsif ($FORM{'navigate'} eq "add_ids") {
    &page1();
}
elsif ($FORM{'navigate'} eq "language_list") {
    &page2();
}
elsif ($FORM{'navigate'} eq "get_ids") {
    &page3();
}
elsif ($FORM{'navigate'} eq "get_ratingID") {
    &page4();
}
elsif ($FORM{'navigate'} eq "logout") {
    &logout();
}



elsif ($FORM{'action'} eq "update_admin_settings") {
    &change_admin_settings();
}
elsif ($FORM{'action'} eq "update_id_list") {
    &action1();
}
elsif ($FORM{'action'} eq "update_language_list") {
    &action2();
}
elsif ($FORM{'action'} eq "update_unapproved_comments") {
    &action3();
}
elsif ($FORM{'action'} eq "create_javascript") {
    &action4();
}
else {
  &start_page(); 
}




sub check_pwd {
    
    my $temp_userid = shift;
    my $temp_pwd    = shift;
    my $submit      = shift;
    my $cname;
  
    if ($submit and !$temp_pwd or $submit and !$temp_userid) {
        return "<font size=2 face='arial' color='red'>Login Failed, Please Try Again.</font>"; #get password
    }    
  
    if (!$temp_pwd and !$submit) {
        
        $cryptedpwd = encrypt_pwd($pwd);
        
        $cname = "splrateit-$userid-$cryptedpwd-loggedin";

        if($Cookie{$cname}) {
           return;
        } else {
          return "<font size=2 face=arial>Please Login</font>"; #get password
        }
    }    
    
    if ($temp_pwd eq $pwd and $temp_userid eq $userid) {
   
        &set_cookie($userid, $pwd);

    } 
       elsif ($temp_pwd or $temp_userid) {
       
           $cryptedpwd = encrypt_pwd($temp_pwd);
       
           $cname = "splrateit-$userid-$cryptedpwd-loggedin";
           
           if ($Cookie{$cname}) {
               return;           
           } else {
             return "<font size=2 face='arial' color='red'>Login Failed, Please Try Again.</font>"; #get password
           } 
                
       }

    return;
    
}




sub setup {

    my $path1 = shift;
    my $skip  = shift;
    my $text;
    
    $relative_path = $ENV{'SCRIPT_NAME'};
    $relative_path =~ s/^\/(.*)(\/[\w\.\-]+\/[\w\-]+\.\w+)$/$1/;
    
    $http = "http:";
    $http = "https:" if ($ENV{'HTTPS'} =~ /on/i);
       
    $text  = "\$FullPath = \"$ENV{DOCUMENT_ROOT}\";\n";
    $text .= "\$ScriptName = \"szavazogep.cgi\";\n";
    $text .= "\$WebsiteAddress = \"$http//$ENV{'HTTP_HOST'}\";\n";
    $text .= "\$userid = \"admin\";\n";
    $text .= "\$pwd = \"admin\";\n";
    $text .= "\$DATFLE = \"/$relative_path/szavazasok\";\n";
    $text .= "\$UnapprovedCommentsPath = \"/$relative_path/admin/data/unapprovedcomments.txt\";\n";
    $text .= "\$BadLanguagePath = \"/$relative_path/admin/data/badlanguage.txt\";\n";
    $text .= "\$IdListPath = \"/$relative_path/admin/data/idlist.txt\";\n";
    $text .= "\$ViewRatingsPath = \"/$relative_path/html/viewratings.html\";\n";
    $text .= "\$ViewComentsPath = \"/$relative_path/html/viewcomments.html\";\n";
    $text .= "\$FormPath = \"/$relative_path/html/forms\";\n";
    $text .= "\$FormCommentsPath = \"/$relative_path/html/formcomments.html\";\n";
    $text .= "\$DefaultForm = \"form.html\";\n";   
    $text .= "\$returnURL = \"\";\n";
    $text .= "\$cookieExpireTime = \"60\";\n";
    $text .= "\$defaultExpireTimeOnly = \"no\";\n";
    $text .= "\$approve_comments = \"yes\";\n";
    $text .= "\$place_link_after_maxchars = \"yes\";\n";
    $text .= "\$howmany_comments = \"5\";\n";
    $text .= "\$fill_in_Next_Previous = \"yes\";\n";
    $text .= "\$voting_scale = \"5\";\n";
    $text .= "\$check_ids = \"yes\";\n";           
    $text .= "\n1;\n";
       
    &create_file($path1, $text);

    my @language = ("fuck\n", "ass\n", "dick\n", "bastard\n", "shit\n", "piss\n", "bitch\n", "pussy\n",
                    "cunt\n", "clit\n", "motherfuck\n", "damn\n", "cock\n", "sucking\n");
    
    &create_dir("../szavazasok")                        if(! -d "../szavazasok");
    &create_dir("./data")                              if(! -d "./data");
    &create_file("./data/badlanguage.txt", @language)  if(! -e "./data/badlanguage.txt");
    &create_file("./data/idlist.txt")                  if(! -e "./data/idlist.txt");
    &create_file("./data/unapprovedcomments.txt")      if(! -e "./data/unapprovedcomments.txt");
    
}