#!/bin/sh
perl=/data2/architext/perl
eval "exec $perl -x $0 $*"
#!perl

$callbackUrl = "http://$ENV{'SERVER_NAME'}:$ENV{'SERVER_PORT'}$ENV{'SCRIPT_NAME'}";
$callbackUrl =~ s|AT-start|AT-admin|g;
$callbackUrl =~ s|http|https| if ($ENV{'HTTPS'} eq 'ON'); ##ECO change

$root = "/data2/architext";
$docRoot = $root;
$scriptName = "AT-start.cgi";
$productName = "Excite for Web Servers";

$adFile = "$docRoot/AT-ad.html";
$licenseFile = "$docRoot/AT-license.html";
$declineFile = "$docRoot/AT-decline.html";
$startFile = "$docRoot/AT-start.html";

die "Invalid root directory '$root'\n" unless -d $root;

unshift(@INC, "$root/perllib");
require 'architext.pl';
require 'architextConf.pl';

$productVersion = &Architext'productVersion();
$remoteScriptName = &Architext'remoteScriptName();

$| = 1;
open(STDERR, ">&STDOUT");
# &Architext'printHeader($atextUrl, "Debugger"); 
%attr = &ArchitextConf'readConfig("$root/Architext.conf");
$atextUrl = $attr{'ArchitextURL'};


%FORM = &Architext'readFormArgs;

$ad = 1;
$license = 2;
$register = 3;
$accept = 4;
$decline = 5;
$start = 6;

if (!$FORM{mode}) {
    unlink("$root/.remote");
	$formMode = $start;
}
elsif ($FORM{mode} =~ /^Advertize/i) {
	$formMode = $ad;
}
elsif ($FORM{mode} =~ /^Read/i) {
	$formMode = $license;
}
elsif ($FORM{mode} =~ /^Accept/i) {
	$formMode = $accept;
}
elsif ($FORM{mode} =~ /^Decline/i) {
	$formMode = $decline;
}
elsif ($FORM{mode} =~ /^Register/i) {
	$formMode = $register;
}
else {
	&Architext'printHeader($atextUrl, "Invalid mode $FORM{mode}."); 
	&Architext'exitError($atextUrl, "Invalid mode $FORM{mode}."); 
}

while (! $isDone) {
$isDone = 1;
if ($formMode == $start) {
	&printDoc($startFile);
	print <<ACCESS;
<br>
<B>
<form action=$remoteScriptName method=post>
<input type="submit" value="Use Remote Documentation">
<input type="hidden" name="AT-admin" value="$callbackUrl">
</form>

<form action=$scriptName method=post>
<input type="submit" value="Use Local Documentation">
<input type="hidden" name="mode" value="Advertize">
</form>
</B>
ACCESS
}
elsif ($formMode == $ad) {
	&printDoc($adFile);
	print <<READ;
<br>
<B>
<form action=$scriptName method=post>
<input type="submit" name="Read License Agreement" 
value="Read License Agreement">
<input type="hidden" name="mode" value="Read License Agreement">
</form>
<form>
<input type="submit" name="Decline" value="Decline">
<input type="hidden" name="mode" value="Decline">
</form>
</B>
READ
}
elsif ($formMode == $license) {
	&printDoc($licenseFile);
	print <<ACCEPT;
<br>
<B>
<form action=$scriptName method=post>
<input type="submit" name="Accept" value="Accept">
<input type="hidden" name="mode" value="Accept">
</form>
<form action=$scriptName method=post>
<input type="submit" name="Decline" value="Decline">
<input type="hidden" name="mode" value="Decline">
</form>
</B>
ACCEPT
}
elsif ($formMode == $decline) {
	&printDoc($declineFile);
}
elsif ($formMode == $accept) {
	&Architext'printHeader($atextUrl, "Excite for Web Servers Registration Form"); 
	print "<h2>Please fill in all fields.</h2>\n";
	if ($missingField) {
		print "<b>You didn't fill in the $missingField field.</b>\n";
	}
	if (! $FORM{at_country}) {
		$FORM{at_country} = "USA";
	}
	if (! $FORM{at_server}) {
		$at_server = "?";
	}
	else {
		$at_server = $FORM{at_server};
	}
	if (! $FORM{at_os}) {
		$at_os = "?";
	}
	else {
		$at_os = $FORM{at_os};
	}
	print <<REGISTER;
<FORM ACTION="$scriptName" METHOD=POST>
<B>
<PRE>
    Institution:<INPUT SIZE=50 NAME="at_institution" TYPE="text" VALUE="$FORM{at_institution}">
Purpose of Site:<INPUT SIZE=50 NAME="at_purpose" TYPE="text" VALUE="$FORM{at_purpose}">
        Address:<INPUT SIZE=50 NAME="at_address" TYPE="text" VALUE="$FORM{at_address}">
           City:<INPUT SIZE=50 NAME="at_city" TYPE="text" VALUE="$FORM{at_city}">
          State:<INPUT SIZE=2 NAME="at_state" TYPE="text" VALUE="$FORM{at_state}"> Zip Code:<INPUT SIZE=10 NAME="at_zip" TYPE="text" VALUE="$FORM{at_zip}">  
        Country:<INPUT SIZE=50 NAME="at_country" TYPE="text" VALUE="$FORM{at_country}">
            URL:<INPUT SIZE=50 NAME="at_url" TYPE="text" VALUE="$FORM{at_url}">
   Contact Name:<INPUT SIZE=50 NAME="at_name" TYPE="text" VALUE="$FORM{at_name}">
  Email Address:<INPUT SIZE=50 NAME="at_email" TYPE="text" VALUE="$FORM{at_email}">
          Phone:<INPUT NAME="at_phone" SIZE=50 TYPE="text" VALUE="$FORM{at_phone}">
            FAX:<INPUT NAME="at_fax" SIZE=50 TYPE="text" VALUE="$FORM{at_fax}">
             OS:<SELECT NAME="at_os">
<OPTION>SunOS Sparc
<OPTION>Solaris Sparc
<OPTION>Solaris Intel 
<OPTION>HPUX PA-RISC700
<OPTION>HPUX PA-RISC800
<OPTION>AIX RS6000
<OPTION>BSDI
<OPTION>NT Intel
<OPTION>NT Alpha
<OPTION>IRIX MIPS
<OPTION>Ultrix
<OPTION>Other
<OPTION selected>$at_os
</SELECT> OS Version:<INPUT SIZE=10 NAME="at_os_version" TYPE="text" VALUE="$FORM{at_os_version}">
REGISTER
    ;

	if ($productVersion !~ /S/) {
	    print <<REGISTER;
         Server:<SELECT NAME="at_server">
<OPTION>NCSA
<OPTION>CERN
<OPTION>Netscape
<OPTION>Navisoft
<OPTION>Spry
<OPTION>Other
<OPTION selected>$at_server
</SELECT>    Server Version:<INPUT SIZE=10 NAME="at_server_version" TYPE="text" VALUE="$FORM{at_server_version}">
<br>

REGISTER
    ;
	} else {
	    print <<REGISTER;
<INPUT TYPE="hidden" NAME="at_server" VALUE="Spry">
<INPUT TYPE="hidden" NAME="at_server_version" VALUE="1.0">

REGISTER
    ;
	}

	print <<REGISTER;
</PRE>
<INPUT TYPE="hidden" NAME="regByEMail" VALUE="yes">
<br>
<INPUT TYPE="submit" NAME="Register" VALUE="Register">
<INPUT TYPE="hidden" NAME="mode" VALUE="Register">
</FORM>
<FORM ACTION="$scriptName" METHOD=POST>
<INPUT TYPE="submit" NAME="Decline" VALUE="Decline">
<INPUT TYPE="hidden" NAME="mode" VALUE="Decline">
</FORM>
<\B>
REGISTER
}
elsif ($formMode == $register) {
	foreach $field (keys(%FORM)) {
		if (! ($field =~ /^at_/)) {
			next;
		}
		## FAX field is optional
		next if ($field eq 'at_fax');
		if ((! ($FORM{$field} =~ /\w+/)) || ($FORM{$field} eq "?")) {
			$formMode = $accept;
			$missingField = substr($field, 3);
			$missingField =~ s/\_/\ /g;
			last;
		}
	} 
	if ($missingField) {
		$isDone = 0;
		next;
	}
	$FORM{at_product_name} = $productName;
	$FORM{at_product_version} = $productVersion;
	&Architext'printHeader($atextUrl, "Architext Excite for Web Servers Thank You", "Thank You"); 
	if ($FORM{regByEMail} =~ /yes/) {
		open(MAIL, "| /bin/mail ewsregister\@atext.com") || &Architext'exitError($atextUrl, "Can't pipe to mail because $!.");
		print MAIL "<atextform>\n";
		foreach $field (sort(keys(%FORM))) {
			if (! ($field =~ /^at_(.*)/)) {
				next;
			}
			print MAIL "<$1>\n$FORM{$field}\n</$1>\n";
		}
		print MAIL "</atextform>\n";
		close(MAIL);
	}
	print "Your customer id is $FORM{at_email}.<p>";
	print "<A HREF=\"AT-admin.cgi?register=yes&at_email=$FORM{at_email}\">Click here to create your first collection!</A>\n";
}
}

exit;

sub printDoc {
	local ($file) = @_;
	&Architext'printDoc($file, "$atextUrl");
}





