#!/usr/bin/perl

# Index Finger Pro v4.101
# Developed by Index Finger, Inc. - www.indexfinger.com
# Copyright 1998-99 Index Finger, Inc. - All rights reserved.

$thisprogram = "rate.cgi";
$operatingsystem = "unix";

if (($operatingsystem eq "nt") || ($operatingsystem eq "other")) { 
    $ifdirectory = "D:/home/indexfinger/";
    }

$filetorequire = "$ifdirectory" . "config.cgi";
require "$filetorequire";
$filetorequire = "$ifdirectory" . "config-admin.cgi";
require "$filetorequire";
$filetorequire = "$ifdirectory" . "variables/setup.cgi";
require "$filetorequire";
$filetorequire = "$ifdirectory" . "programs.cgi";
require "$filetorequire";
$filetorequire = "$ifdirectory" . "subroutes.cgi";
require "$filetorequire";


&parsequery;
    $action = $QUERY{'action'};
    $insiteid = $QUERY{'site'};
    $insiteid =~ s/[a-z]//g;

&parseform;
    $inrating = $FORM{'rating'};

    &nonhtmlmainmenu;

    $output .= "<a href=\"$directoryurl/$frontpage\">Home</a> / <b>Rate A Site</b><p>\n";


    # Get all site data.

    $filetoopen = "variables/sites.cgi";
    open(FILE,"$filetoopen");
    @filedata = <FILE>;
    close(FILE);

    $count = 0;
    foreach $site (@filedata) {
        chomp($site);
        ($siteid,$trash) = split (/\|/,$site);
        if ("$siteid" eq "$insiteid") {
            $siteinfo = "$site";
            $siteline = $count;
            }
        $count++;
        }


    ($siteid,$idchain,$timeadded,$position,$sitename,$siteurl,$iconinfo,$status,$sitedesc,$votes,$totalscore) = split (/\|/,$siteinfo);
    ($maingroupid,$thisgroupid,$groupid) = split (/\-/,$idchain);



if ($action eq "showcode") {

    $output =~ s/Rate A Site/Rate A Site Coding/;

    &gethtmlpage("variables/rate-code.html");
    $output =~ s/\$adminurl/$adminurl/g;
    $output =~ s/\$rateprogram/$rateprogram/g;
    $output =~ s/\$siteid/$siteid/g;

    }



else {

    # Check IP Address

    $surveyed = "no";
    $hostname = $ENV{'REMOTE_ADDR'};
    $ipfile = "variables/log.cgi";

    if (-e $ipfile) {
        open(FILE, "$ipfile");
        flock(FILE,2);
        @lines = <FILE>;
        close(FILE);
        $voted = 0;
        foreach $line (@lines) {
            chomp($line);
            ($siteidlog,$ipaddress) = split (/\|/,$line);
            if(("$insiteid" eq "$siteidlog") && ("$ipaddress" eq "$hostname")) { $surveyed = "yes"; }
            }
        }
    else {
        open(FILE,">$ipfile");
        close(FILE);
        }

    if (($surveyed eq "no") && ($action ne "ratesite")) {

        if ($votes == 0) { $score = 0; }
        else {
            $score = $totalscore / $votes;
            $score = sprintf ("%2.2f",$score);
            }

        $output .= "$sitename<br>\n";
        $output .= "<font size=\"1\" color=\"#585858\">Current score of $score</font><p>\n";
        $output .= "<font size=\"2\" color=\"#000000\" face=\"verdana,arial\">\n";
        $output .= "<form action=\"$rateprogram?action=ratesite&site=$insiteid\" method=post>\n";
        $output .= "How would you rate this site?\n";

        $output .= "<select name=\"rating\">\n";
        $output .= "<option value=\"0\" selected>0\n";
        $output .= "<option value=\"1\">1\n";
        $output .= "<option value=\"2\">2\n";
        $output .= "<option value=\"3\">3\n";
        $output .= "<option value=\"4\">4\n";
        $output .= "<option value=\"5\">5\n";
        $output .= "<option value=\"6\">6\n";
        $output .= "<option value=\"7\">7\n";
        $output .= "<option value=\"8\">8\n";
        $output .= "<option value=\"9\">9\n";
        $output .= "<option value=\"10\">10\n";
        $output .= "</select><p>\n";

        $output .= "0 is the lowest and 10 is the highest. Please try to be impartial. We also record your IP address, which means you can only rate this site once.<p>\n";

        $output .= "<input type=\"submit\" value=\"Submit Rating\"> \n";
        $output .= "<input type=\"reset\" value=\"Reset\">\n";
        $output .= "\n";
        $output .= "</form><p>\n";
        $output .= "<hr noshade size=\"1\" width\"100%\">\n";
        $output .= "Are you the owner of this site?<br>\n";
        $output .= "<a href=\"$rateprogram?action=showcode&site=$siteid\">Let your visitors rate your site from your website!</a>\n";
        }


    elsif (($surveyed eq "no") && ($action eq "ratesite")) {

        $newtotalscore = $totalscore + $inrating;
        $votes++;

        $newsiteinfo = "$siteid|$idchain|$timeadded|$position|$sitename|$siteurl|$iconinfo|$status|$sitedesc|$votes|$newtotalscore";

        $filetomake = "variables/sites.cgi";
        open(FILE,">$filetomake");
        foreach $site (@filedata) { 
            chomp($site);
            ($siteid,$idchain,$timeadded,$position,$sitename,$siteurl,$iconinfo,$status,$sitedesc,$votes,$totalscore) = split (/\|/,$site);
            if ("$siteid" eq "$insiteid") { print FILE "$newsiteinfo\n"; }
            else { print FILE "$site\n"; }
            }
        close(FILE);

        $filetoappend = "variables/log.cgi";
        open(FILE,">>$filetoappend");
        print FILE "$insiteid|$hostname\n";
        close(FILE);

        $output .= "<b>Rating Submitted</b><p>\n";
        $output .= "<a href=\"$directoryurl/html/$groupid.$fileext\">Return to category....</a><p>\n";
        $output .= "<hr noshade size=\"1\" width\"100%\">\n";
        $output .= "Are you the owner of this site?<br>\n";
        $output .= "<a href=\"$rateprogram?action=showcode&site=$siteid\">Let your visitors rate your site from your website!</a>\n";
        }

    else {
        $output .= "Our database indicates that you have already rated this site.<p>\n";
        $output .= "<a href=\"$directoryurl/html/$groupid.$fileext\">Return to from where you came</a><p>\n";
        $output .= "<hr noshade size=\"1\" width\"100%\">\n";
        $output .= "Are you the owner of this site?<br>\n";
        $output .= "<a href=\"$rateprogram?action=showcode&site=$siteid\">Let your visitors rate your site from your website!</a>\n";
        }
    }


    &nonhtmlpoweredby;
    &template;