#!/usr/bin/perl

##################################################################
# 诗歌报文章管理系统 编写:小鱼儿(诗歌报)                              #
# ============================================================== #
# Copyright (c) 2001-2002 Xiaoran Studio - All Rights Reserved.  #
##################################################################

BEGIN {
	$CGIPATH = '.';
	my $pgm = $0;
	$pgm =~ s/\\/\//g;
	$pgm =~ s/^.*\/([^\/]+)$/$1/g;
	unless (-e $CGIPATH . '/' . $pgm) {
		foreach ($0, $ENV{'SCRIPT_FILENAME'}, $ENV{'PATH_TRANSLATED'}) {
			s!\\!/!g; s/^(.*)\/[^\/]+$/$1/g;
			if (-e $_ . '/' . $pgm) { $CGIPATH = $_; last; }
		}
	}
	unshift (@INC, "$CGIPATH");
}

use XRBASE;

require "config/settings.cgi";
require "config/variables.cgi";
require "config/style.cgi";
require "sources/subs.cgi";

$| = 1;

my $BUFFER;
my @DATAPAIRS;
my $PAIR;
if ($ENV{'REQUEST_METHOD'} eq "POST") {
	read(STDIN, $BUFFER, $ENV{'CONTENT_LENGTH'});
	@DATAPAIRS = split(/\&/, $BUFFER);
} else {
	$BUFFER = $ENV{'QUERY_STRING'};
	@DATAPAIRS = split(/\;/, $BUFFER);
}
foreach $PAIR (@DATAPAIRS) {
   my ($name, $value) = split(/=/, $PAIR);
   $value =~tr/+/ /;
   $value =~s/%([a-fA-f0-9][a-fA-f0-9])/pack("C", hex($1))/eg;
   $form{"$name"} = $value;
}

unless (($ENV{HTTP_COOKIE}) && (!$ENV{COOKIE})) { $ENV{HTTP_COOKIE} = $ENV{COOKIE}; }
@cookies = split(/; /, $ENV{HTTP_COOKIE});
foreach (@cookies) {
	($name, $value) = split(/=/, $_);
	$cookie{"$name"} = $value;
}

my $act = $form{'act'};
my $actfind = substr($act, 0, 1);

if ($actfind eq 'g') {
	if ($act eq 'guestadd') { require 'sources/guestadd.cgi'; &guestadd; }
	elsif ($act eq 'guestadd_do') { require 'sources/guestadd.cgi'; &doguestadd; }
} if ($actfind eq 'l') {
	if ($act eq 'list') { require 'sources/list.cgi'; &list; }
	elsif ($act eq 'location') { require 'sources/location.cgi'; &location; }
} elsif ($actfind eq 'm') {
	if ($act eq 'main') { require 'sources/main.cgi'; &main; }
	elsif ($act eq 'mail') { require 'sources/mail.cgi'; &main; }
	elsif ($act eq 'mailsend') { require 'sources/mail.cgi'; &mail; }
	elsif ($act eq 'mylist') { require 'sources/mylist.cgi'; &list; }
} elsif ($actfind eq 'n') {
	if ($act eq 'new') { require 'sources/new.cgi'; &new; }
} elsif ($actfind eq 's') {
	if ($act eq 'search') { require 'sources/search.cgi'; &search; }
} elsif ($actfind eq 't') {
	if ($act eq 'top') { require 'sources/top.cgi'; ⊤ }
} elsif ($actfind eq 'r') {
	if ($act eq 'reg') { require 'sources/register.cgi'; &register; }
	if ($act eq 'reg_do') { require 'sources/register.cgi'; &doreg; }
	elsif ($act eq 'review') { require 'sources/review.cgi'; &view; }
	elsif ($act eq 'review_new') { require 'sources/review.cgi'; &new; }
	elsif ($act eq 'review_donew') { require 'sources/review.cgi'; &donew; }
	elsif ($act eq 'review_number') { require 'sources/review.cgi'; &viewnumber; }
} elsif ($actfind eq 'o') {
	if ($act eq 'oldnews') { require 'sources/oldnews.cgi'; &oldnews; }
}

require 'sources/main.cgi'; &main;

exit;