#!/usr/local/bin/perl
#
# Program: bpjoin.cgi
# Author: Drummond Miles
# Email: info@gadnet.com
#
# Created: 29/12/98
# Last Modified: 12/09/99 - removed references to $cgipath for ease of cross-platform installation
# Copyright G.A.D.Miles 1998. All Rights Reserved
#
# Download script from http://www.gadnet.com/bpplus
#
# This program is being distibuted as freeware. It can be freely downloaded and used.
# It may be modified as long as the copyright information remains intact.
#
# Any use of this program is entirely at the risk of the user. No liability will be
# accepted by the author.
#
# This code must not be sold, even in modified form, without the written permission
# of the author. This code must also not be distributed without the permission of the 
# author.

require "bpvars.txt";
require "bpsubs.cgi";

print "Content-type: text/html\n\n";

read(STDIN,$indata,$ENV{'CONTENT_LENGTH'});
@indata = split(/&/,$indata);
foreach $i (0..$#indata)
{
 	$indata[$i] =~ s/\+/ /g;
      ($key,$val) = split(/=/,$indata[$i],2);
	$key =~ s/%(..)/pack("c",hex($1))/ge;
	$val =~ s/%(..)/pack("c",hex($1))/ge;
	$indata{$key} .= "\0" if (defined($indata{$key}));
	$indata{$key} .= $val;
}

if ($ENV{'QUERY_STRING'} =~ /new/)
{
	&newuser;
}
elsif ($indata{'adduser'})
{
	&adduser;
}

sub newuser
{
	if ($autoname eq "Y")
	{
		open (DEFAULT, "+<default.txt") or die "can't open default.txt\n";
		$lockfail = &lock("DEFAULT");
		if ($lockfail)
		{
			&lockerror("default.txt");
		}
		@defaults = <DEFAULT>;
		chop $defaults[2] if ($defaults[2] =~ /\n$/);
		$defaults[2]++;
		seek (DEFAULT,0,0);
		foreach $defaults (@defaults)
		{
			chop $defaults if ($defaults =~ /\n$/);
			print DEFAULT "$defaults\n";
		}
		close (DEFAULT);
                $id = "bp" . $defaults[2];
	}
	&header('New Member / สมัครสมาชิกใหม่');
	print("<form method=POST action=$cgiurl/bpjoin.cgi>\n");
	print("<input type=hidden name=adduser value=x>\n");
	if ($autoname eq "Y")
	{
		print("<input type=hidden name=userid value=$id>\n");
	}
                print("<BGCOLOR=\"#FF0000\">\n");
	print("<center><table BORDER WIDTH=75\%>\n");
	print("<tr><th ALIGN=CENTER BGCOLOR=\"#FF0000\"><b><font face=verdana><font color=\"#00FF00\"><font size=+0>User Information:</font></font></font></b></th></tr>\n");
	print("<tr BGCOLOR=\"#FFFF00\"><td><center><table><tr><td ALIGN=RIGHT><font size=-1>User ID:</font></td>\n");
	if ($autoname eq "Y")
	{
		print("<td>$id</td></tr>\n");
	}
	else
	{
		print("<td><input type=text name=userid size=8 maxlength=8></td></tr>\n");
	}
	print("<tr><td ALIGN=RIGHT><font size=-1>Password:</font></td>\n");
	print("<td><input type=password name=userpass1 size=8 maxlength=8></td></tr>\n");
	print("<tr><td ALIGN=RIGHT><font size=-1>Re-Enter Password:</font></td>\n");
	print("<td><input type=password name=userpass2 size=8 maxlength=8></td></tr>\n");
	print("<tr><td ALIGN=RIGHT><font size=-1>Name:</font></td>\n");
	print("<td><input type=text name=username size=20 maxlength=30></td></tr>\n");
	print("<tr><td ALIGN=RIGHT><font size=-1>Email:</font></td>\n");
	print("<td><input type=text name=email size=30 maxlength=50></td></tr>\n");
	print("</table></center></td></tr></table></center>\n");
	print("<center><table BORDER WIDTH=75\%>");
	print("<tr><th ALIGN=CENTER BGCOLOR=\"#FF0000\"><b><font face=verdana><font color=\"#00FF00\"><font size=+0>Site Information:</font></font></font></b></th></tr>\n");
	print("<tr BGCOLOR=\"#FFFF00\"><td><center><table><tr><td ALIGN=RIGHT><font size=-1>Site URL:</font></td>\n");
      print("<td><input type=text name=siteurl size=40 maxlength=60></td></tr>\n");
	print("<tr><td ALIGN=RIGHT><font size=-1>Site Title:</font></td>\n");
	print("<td><input type=text name=sitetitle size=40 maxlength=60></td></tr>\n");
	print("<td ALIGN=RIGHT><font size=-1>Banner URL:</font></td>\n");
	print("<td><input type=text size=40 name=urlbanner maxlength=60></td></tr></table>\n");
	print("</td></tr></table></center>\n");
	print("<center><input type=submit value=\"Next Step....\">\n");
	print("</form></center>\n");
	&footer;
}

sub adduser
{
	&header('New Member');
	$error = 0;
	if ($indata{'userid'})
	{
                if (-e "$bpdata/$indata{'userid'}.txt")
		{
			$error = 1;
			print("<br><br><center><b><font size=+1>Error<br><br></font></b>\n");
			print("<b>This User ID is already being used</b>\n");
		}
	}
	if (!$indata{'userid'})
	{
		if (!$error)
		{
			print("<br><br><center><font size=+1><b>Error<br><br></font></b>\n");
			$error = 1;
		}
		print("<b>You must enter a User ID<br></b>\n");
	}
	if ($indata{'userid'} =~ / /)
	{
		if (!$error)
		{
			print("<br><br><center><font size=+1><b>Error<br><br></font></b>\n");
			$error = 1;
		}
		print("<b>The User ID cannot contain spaces<br></b>\n");
	}
	if (!$indata{'userpass1'})
	{
		if (!$error)
		{
			print("<br><br><center><font size=+1>Error<br><br></font></b>\n");
			$error = 1;
		}
		print("<b>You must enter a Password<br></b>\n");
	}
	if ($indata{'userpass1'} ne $indata{'userpass2'})
	{
		if (!$error)
		{
			print("<br><br><center><b><font size=+1>Error<br><br></font></b>\n");
			$error = 1;
		}
		print("<b>The two passwords you have entered are not equal<br></b>\n");
	}
	if (!$indata{'username'})
	{
		if (!$error)
		{
			print("<br><br><center><b><font size=+1>Error<br><br></font></b>\n");
			$error = 1;
		}
		print("<b>You must enter your Name<br></b>\n");
	}
	if (!$indata{'email'})
	{
		if (!$error)
		{
			print("<br><br><center><b><font size=+1>Error<br><br></font></b>\n");
			$error = 1;
		}
		print("<b>You must enter your Email Address<br></b>\n");
	}
	if (!$indata{'siteurl'})
	{
		if (!$error)
		{
			print("<br><br><center><b><font size=+1>Error<br><br></font></b>\n");
			$error = 1;
		}
		print("<b>You must enter the URL of your site<br></b>\n");
	}
	if (!$indata{'sitetitle'})
	{
		if (!$error)
		{
			print("<br><br><b><center><font size=+1>Error<br><br></font></b>\n");
			$error = 1;
		}
		print("<b>You must enter the title of your site<br></b>\n");
	}
	if ($error)
	{
		print ("<br><br><center>Use the \'Back\' button on your browser to correct your data</center>\n");
		return;
	}

	open (DEFAULT, "+<default.txt") or die "can't open default.txt\n";
	$lockfail = &lock("DEFAULT");
	if ($lockfail)
	{
		&lockerror("default.txt");
	}
	@defaults = <DEFAULT>;
	close (DEFAULT);

	open (NEWUSER, ">$bpdata/$indata{'userid'}.txt");
	$lockfail = &lock("NEWUSER");
	if ($lockfail)
	{
		&lockerror("$indata{'userid'}.txt");
	}
	print NEWUSER "$indata{'username'}\n";
	print NEWUSER "$indata{'email'}\n";
	print NEWUSER "$indata{'siteurl'}\n";
	print NEWUSER "$indata{'urlbanner'}\n";
	print NEWUSER "0\n";
	print NEWUSER "$defaults[0]";
	print NEWUSER "0\n";
	print NEWUSER "0\n";
	print NEWUSER "$indata{'userpass1'}\n";
	print NEWUSER "$indata{'sitetitle'}\n";
	$year = (localtime)[5] + 1900;
	$month = (localtime)[4] + 1;
	if ($month < 10)
	{
		$month = "0".$month;
	}
	$day = (localtime)[3];
	if ($day < 10)
	{
		$day = "0".$day;
	}
	$date = $year.$month.$day;
	print NEWUSER "$date\n";
	print NEWUSER "$date\n";
	print NEWUSER "\n";
	print NEWUSER "0\n";
	print NEWUSER "$defaults[1]";
	close (NEWUSER);
	open (UNVERIFIED, ">>$bpdata/members.txt");
	$lockfail = &lock("UNVERIFIED");
	if ($lockfail)
	{
		&lockerror("members.txt");
	}
	seek (UNVERIFIED,0,2);
      print UNVERIFIED "$indata{'userid'}\n";
	close (UNVERIFIED);
	print "<br><br><center><font face=verdana><font size +2>User <b>$indata{'userid'}</b> created successfully</font></font>\n";
	print "<br><br>ตอนนี้คุณสามารถเริ่ม สะสมเครดิตได้ทันที แล้วครับ โดย cut  \& paste โค๊ตด้านล่างลงบนเพจ ของคุณ(s):</center>\n";
                print "<br><center>You can start earning credits as soon as you cut \& paste the following code into your web page(s):</center>\n";
      &htmlcode($indata{'userid'});
                print "<br><br>คุณต้องแทนที่เครื่องหมายสีแดง <b><font color=\"#FF0000\">XX</font></b> ทั้งสองแห่ง ด้วยจำนวนเลขระหว่าง 01 ถึง 99.<br>\n";
	print "จำเป็นต้องแทนที่เครื่องหมาย <b><font color=\"#FF0000\">XX</font></b>ด้วยดัวเลขที่เหมือนกันทั้งสองแห่ง.<br>\n";
	print "ถ้าคุณใส่ โค๊ตลงบน หลายๆ หน้า, จำนวนเลขที่จะแทนค่าเครื่องหมาย <b><font color=\"#FF0000\">XX</font></b> จะต้องแตกต่างกันในทุกหน้า. \n";
	print "ตัวอย่างเช่น, ถ้าคุณต้องากรใส่โค๊ตลงบน เพจ 2 เพจ, จำนวนเลขที่กำหนดแทนค่า <b><font color=\"#FF0000\">XX</font></b> ในแต่ละหน้าควรจะเป็น 01 บนเพจแรก และ 02 บนเพจที่สอง.\n";

	print "<br><br>You must replace BOTH occurences of <b><font color=\"#FF0000\">XX</font></b> with a number between 01 and 99.<br>\n";
	print "You must change both occurences of <b><font color=\"#FF0000\">XX</font></b> with the SAME number.<br>\n";
	print "If you past this code onto more than one page, then each occurence of the code should have a DIFFERENT value for <b><font color=\"#FF0000\">XX</font></b>. \n";
	print "In other words, if you place the code on two pages, BOTH occurences of <b><font color=\"#FF0000\">XX</font></b> could be 01 on the first page and 02 on the second page.\n";
}
