freeside/fs_selfservice/FS-SelfService/cgi decline.html,NONE,1.1 map.gif,NONE,1.1 promocode.html,NONE,1.1 regcode.html,NONE,1.1 signup-agentselect.html,NONE,1.1 signup-alternate.html,NONE,1.1 signup-billaddress.html,NONE,1.1 signup-freeoption.html,NONE,1.1 signup-snarf.html,NONE,1.1 signup.cgi,NONE,1.1 stateselect.html,NONE,1.1 success.html,NONE,1.1 agent.cgi,1.7,1.8 signup.html,1.2,1.3
ivan
ivan at pouncequick.420.am
Sat Mar 12 06:32:27 PST 2005
Update of /home/cvs/cvsroot/freeside/fs_selfservice/FS-SelfService/cgi
In directory pouncequick:/tmp/cvs-serv9831/fs_selfservice/FS-SelfService/cgi
Modified Files:
agent.cgi signup.html
Added Files:
decline.html map.gif promocode.html regcode.html
signup-agentselect.html signup-alternate.html
signup-billaddress.html signup-freeoption.html
signup-snarf.html signup.cgi stateselect.html success.html
Log Message:
- bring prepaid support into this century (close: Bug#1124)
- finally get rid of fs_signup (everything is in fs_selfservice now) (Bug#413)
- organize main menu sysadmin section so it is slightly less confusing
--- NEW FILE: signup-alternate.html ---
<HTML><HEAD><TITLE>ISP Signup form</TITLE></HEAD>
<BODY BGCOLOR="#e8e8e8"><FONT SIZE=7>ISP Signup form</FONT><BR><BR>
<FONT SIZE="+1" COLOR="#ff0000"><%= $error %></FONT>
<FORM NAME="dummy">
<INPUT TYPE="hidden" NAME="magic" VALUE="process">
<INPUT TYPE="hidden" NAME="ref" VALUE="<%= $referral_custnum %>">
<INPUT TYPE="hidden" NAME="ss" VALUE="">
<INPUT TYPE="hidden" NAME="agentnum" VALUE="3">
Contact Information
<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Contact name<BR>(last, first)</TH>
<TD COLSPAN=5><INPUT TYPE="text" NAME="last" VALUE="<%= $last %>">,
<INPUT TYPE="text" NAME="first" VALUE="<%= $first %>"></TD>
</TR>
<TR>
<TD ALIGN="right">Company</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="company" SIZE=70 VALUE="<%= $company %>"></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Address</TH>
<TD COLSPAN=5><INPUT TYPE="text" NAME="address1" SIZE=70 VALUE="<%= $address1 %>"></TD>
</TR>
<TR>
<TD ALIGN="right"> </TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="address2" SIZE=70 VALUE="<%= $address2 %>"></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>City</TH>
<TD><INPUT TYPE="text" NAME="city" VALUE="<%= $city %>"></TD>
<TH ALIGN="right"><font color="#ff0000">*</font>State/Country</TH>
<TD><SELECT NAME="state" SIZE="1">
<%=
foreach ( @{$locales} ) {
my $value = $_->{'state'};
$value .= ' ('. $_->{'county'}. ')' if $_->{'county'};
$value .= ' / '. $_->{'country'};
$OUT .= qq(<OPTION VALUE="$value");
$OUT .= ' SELECTED' if ( $state eq $_->{'state'}
&& $county eq $_->{'county'}
&& $country eq $_->{'country'}
);
$OUT .= ">$value</OPTION>";
}
%>
</SELECT></TD>
<TH><font color="#ff0000">*</font>Zip</TH>
<TD><INPUT TYPE="text" NAME="zip" SIZE=10 VALUE="<%= $zip %>"></TD>
</TR>
<TR>
<TD ALIGN="right">Day Phone</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="daytime" VALUE="<%= $daytime %>" SIZE=18></TD>
</TR>
<TR>
<TD ALIGN="right">Night Phone</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="night" VALUE="<%= $night %>" SIZE=18></TD>
</TR>
<TR>
<TD ALIGN="right">Fax</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="fax" VALUE="<%= $fax %>" SIZE=12></TD>
</TR>
</TABLE><font color="#ff0000">*</font> required fields<BR>
<BR><BR>
<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Username</TH>
<TD><INPUT TYPE="text" NAME="username" VALUE="<%= $username %>"></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Password</TH>
<TD><INPUT TYPE="password" NAME="_password" VALUE="<%= $password %>"></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Re-enter Password</TH>
<TD><INPUT TYPE="password" NAME="_password2" VALUE="<%= $password2 %>"></TD>
</TR>
<%= if ( $init_data->{'security_phrase'} ) {
<<ENDOUT;
<TR>
<TD ALIGN="right">Security Phrase</TD>
<TD><INPUT TYPE="text" NAME="sec_phrase" VALUE="$sec_phrase">
</TD>
</TR>
ENDOUT
} else {
'<INPUT TYPE="hidden" NAME="sec_phrase" VALUE="">';
}
%>
<%= if ( scalar(@$pops) ) {
'<TR><TD ALIGN="right">Access number</TD><TD>'.
popselector($popnum). '</TD></TR>';
} else {
popselector($popnum);
}
%>
</TABLE><font color="#ff0000">*</font> required fields
<BR><BR>First package
<%= use Tie::IxHash;
my %pkgpart2payby = map { $_->{pkgpart} => $_->{payby}[0] } @{$packages};
tie my %options, 'Tie::IxHash',
'' => '(none)',
map { $_->{pkgpart} => $_->{pkg} }
sort { $a->{recur} <=> $b->{recur} }
@{$packages}
;
use HTML::Widgets::SelectLayers 0.02;
my @form_text = qw( magic ref ss agentnum
last first company address1 address2
city zip daytime night fax
username _password _password2 sec_phrase );
my @form_select = qw( state ); #county country
if ( scalar(@$pops) == 0 or scalar(@$pops) == 1 ) {
push @form_text, 'popnum',
} else {
push @form_select, 'popnum',
}
my $widget = new HTML::Widgets::SelectLayers(
options => \%options,
selected_layer => $pkgpart,
form_name => 'dummy',
form_action => $self_url,
form_text => \@form_text,
form_select => \@form_select,
layer_callback => sub {
my $layer = shift;
my $html = qq( <INPUT TYPE="hidden" NAME="pkgpart" VALUE="$layer">);
if ( $pkgpart2payby{$layer} eq 'BILL' ) {
$html .= <<ENDOUT;
<INPUT TYPE="hidden" NAME="payby" VALUE="BILL">
<INPUT TYPE="hidden" NAME="invoicing_list_POST" VALUE="">
<INPUT TYPE="hidden" NAME="BILL_payinfo" VALUE="">
<INPUT TYPE="hidden" NAME="BILL_month" VALUE="12">
<INPUT TYPE="hidden" NAME="BILL_year" VALUE="2037">
<INPUT TYPE="hidden" NAME="BILL_payname" VALUE="">
<BR><BR><INPUT TYPE="submit" VALUE="Signup">
ENDOUT
} elsif ( $pkgpart2payby{$layer} eq 'CARD' ) {
my $postal_checked = '';
my @invoicing_list = split(', ', $invoicing_list );
$postal_checked = 'CHECKED'
if ! @invoicing_list || grep { $_ eq 'POST' } @invoicing_list;
$invoicing_list= join(', ', grep { $_ ne 'POST' } @invoicing_list );
my $expselect = expselect("CARD", $paydate);
my $cardselect = '<SELECT NAME="CARD_type"><OPTION></OPTION>';
my %types = (
'VISA' => 'VISA card',
'MasterCard' => 'MasterCard',
'Discover' => 'Discover card',
'American Express' => 'American Express card',
);
foreach ( keys %types ) {
$selected =
$cgi->param('CARD_type') eq $types{$_} ? 'SELECTED' : '';
$cardselect .=
qq!<OPTION $selected VALUE="$types{$_}">$_</OPTION>!;
}
$cardselect .= '</SELECT>';
$html .= <<ENDOUT;
<INPUT TYPE="hidden" NAME="payby" VALUE="CARD">
<BR><BR>Billing information
<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0>
<INPUT TYPE="hidden" NAME="invoicing_list_POST" VALUE="">
<TR>
<TD ALIGN="right">Email statement to </TD>
<TD><INPUT TYPE="text" NAME="invoicing_list" VALUE="$invoicing_list"></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Credit card type</TH>
<TD>$cardselect</TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Card number</TH>
<TD><INPUT TYPE="text" NAME="CARD_payinfo" VALUE="$payinfo" MAXLENGTH=19></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>*</font>Exp</TH>
<TD>$expselect</TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Name on card</TH>
<TD><INPUT TYPE="text" NAME="CARD_payname" VALUE="$payname"></TD>
</TR>
</TABLE>
<font color="#ff0000">*</font> required fields
<BR><BR><INPUT TYPE="submit" VALUE="Signup">
ENDOUT
} else {
$html = <<ENDOUT;
<BR>Please select a package.<BR>
ENDOUT
}
$html;
},
);
$widget->html;
%>
</BODY></HTML>
--- NEW FILE: signup-snarf.html ---
<HTML><HEAD><TITLE>ISP Signup form</TITLE></HEAD>
<BODY BGCOLOR="#e8e8e8" onUnload="myclose()">
<script language="JavaScript"><!--
var mywindow = -1;
function myopen(filename,windowname,properties) {
myclose();
mywindow = window.open(filename,windowname,properties);
}
function myclose() {
if ( mywindow != -1 )
mywindow.close();
mywindow = -1
}
//--></script>
<FONT SIZE=7>ISP Signup form</FONT><BR><BR>
<FONT SIZE="+1" COLOR="#ff0000"><%= $error %></FONT>
<FORM ACTION="<%= $self_url %>" METHOD=POST>
<INPUT TYPE="hidden" NAME="magic" VALUE="process">
<INPUT TYPE="hidden" NAME="ref" VALUE="<%= $referral_custnum %>">
<INPUT TYPE="hidden" NAME="ss" VALUE="">
Contact Information
<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Contact name<BR>(last, first)</TH>
<TD COLSPAN=5><INPUT TYPE="text" NAME="last" VALUE="<%= $last %>">,
<INPUT TYPE="text" NAME="first" VALUE="<%= $first %>"></TD>
</TR>
<TR>
<TD ALIGN="right">Company</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="company" SIZE=70 VALUE="<%= $company %>"></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Address</TH>
<TD COLSPAN=5><INPUT TYPE="text" NAME="address1" SIZE=70 VALUE="<%= $address1 %>"></TD>
</TR>
<TR>
<TD ALIGN="right"> </TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="address2" SIZE=70 VALUE="<%= $address2 %>"></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>City</TH>
<TD><INPUT TYPE="text" NAME="city" VALUE="<%= $city %>"></TD>
<TH ALIGN="right"><font color="#ff0000">*</font>State/Country</TH>
<TD>
<%=
($county_html, $state_html, $country_html) =
regionselector( $county, $state, $country );
"$county_html $state_html";
%>
</TD>
<TH><font color="#ff0000">*</font>Zip</TH>
<TD><INPUT TYPE="text" NAME="zip" SIZE=10 VALUE="<%= $zip %>"></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Country</TH>
<TD><%= $country_html %></TD>
<TR>
<TD ALIGN="right">Day Phone</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="daytime" VALUE="<%= $daytime %>" SIZE=18></TD>
</TR>
<TR>
<TD ALIGN="right">Night Phone</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="night" VALUE="<%= $night %>" SIZE=18></TD>
</TR>
<TR>
<TD ALIGN="right">Fax</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="fax" VALUE="<%= $fax %>" SIZE=12></TD>
</TR>
</TABLE><font color="#ff0000">*</font> required fields<BR>
<BR>Billing information<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR><TD>
<%=
$OUT .= '<INPUT TYPE="checkbox" NAME="invoicing_list_POST" VALUE="POST"';
my @invoicing_list = split(', ', $invoicing_list );
$OUT .= ' CHECKED'
if ! @invoicing_list || grep { $_ eq 'POST' } @invoicing_list;
$OUT .= '>';
%>
Postal mail invoice
</TD></TR>
<TR><TD>Email invoice <INPUT TYPE="text" NAME="invoicing_list" VALUE="<%= join(', ', grep { $_ ne 'POST' } split(', ', $invoicing_list ) ) %>">
</TD></TR>
<%= scalar(@payby) > 1 ? '<TR><TD>Billing type</TD></TR>' : '' %>
</TABLE>
<TABLE BGCOLOR="#c0c0c0" BORDER=1 WIDTH="100%">
<TR>
<%=
my $cardselect = '<SELECT NAME="CARD_type"><OPTION></OPTION>';
my %types = (
'VISA' => 'VISA card',
'MasterCard' => 'MasterCard',
'Discover' => 'Discover card',
'American Express' => 'American Express card',
);
foreach ( keys %types ) {
$selected = $cgi->param('CARD_type') eq $types{$_} ? 'SELECTED' : '';
$cardselect .= qq!<OPTION $selected VALUE="$types{$_}">$_</OPTION>!;
}
$cardselect .= '</SELECT>';
my %payby = (
'CARD' => qq!Credit card<BR><font color="#ff0000">*</font>$cardselect<INPUT TYPE="text" NAME="CARD_payinfo" VALUE="" MAXLENGTH=19><BR><font color="#ff0000">*</font>Exp !. expselect("CARD"). qq!<BR><font color="#ff0000">*</font>Name on card<BR><INPUT TYPE="text" NAME="CARD_payname" VALUE="">!,
'DCRD' => qq!Credit card<BR><font color="#ff0000">*</font>$cardselect<INPUT TYPE="text" NAME="DCRD_payinfo" VALUE="" MAXLENGTH=19><BR><font color="#ff0000">*</font>Exp !. expselect("DCRD"). qq!<BR><font color="#ff0000">*</font>Name on card<BR><INPUT TYPE="text" NAME="DCRD_payname" VALUE="">!,
'CHEK' => qq!Electronic check<BR>${r}Account number <INPUT TYPE="text" NAME="CHEK_payinfo1" VALUE="" MAXLENGTH=10><BR>${r}ABA/Routing code <INPUT TYPE="text" NAME="CHEK_payinfo2" VALUE="" SIZE=10 MAXLENGTH=9><INPUT TYPE="hidden" NAME="CHEK_month" VALUE="12"><INPUT TYPE="hidden" NAME="CHEK_year" VALUE="2037"><BR>${r}Bank name <INPUT TYPE="text" NAME="CHEK_payname" VALUE="">!,
'DCHK' => qq!Electronic check<BR>${r}Account number <INPUT TYPE="text" NAME="DCHK_payinfo1" VALUE="" MAXLENGTH=10><BR>${r}ABA/Routing code <INPUT TYPE="text" NAME="DCHK_payinfo2" VALUE="" SIZE=10 MAXLENGTH=9><INPUT TYPE="hidden" NAME="DCHK_month" VALUE="12"><INPUT TYPE="hidden" NAME="DCHK_year" VALUE="2037"><BR>${r}Bank name <INPUT TYPE="text" NAME="DCHK_payname" VALUE="">!,
'LECB' => qq!Phone bill billing<BR>${r}Phone number <INPUT TYPE="text" BANE="LECB_payinfo" VALUE="" MAXLENGTH=15 SIZE=16><INPUT TYPE="hidden" NAME="LECB_month" VALUE="12"><INPUT TYPE="hidden" NAME="LECB_year" VALUE="2037"><INPUT TYPE="hidden" NAME="LECB_payname" VALUE="">!,
'BILL' => qq!Billing<BR>P.O. <INPUT TYPE="text" NAME="BILL_payinfo" VALUE=""><BR><font color="#ff0000">*</font>Exp !. expselect("BILL", "12-2037"). qq!<BR><font color="#ff0000">*</font>Attention<BR><INPUT TYPE="text" NAME="BILL_payname" VALUE="Accounts Payable">!,
'COMP' => qq!Complimentary<BR><font color="#ff0000">*</font>Approved by<INPUT TYPE="text" NAME="COMP_payinfo" VALUE=""><BR><font color="#ff0000">*</font>Exp !. expselect("COMP"),
'PREPAY' => qq!Prepaid card<BR><font color="#ff0000">*</font><INPUT TYPE="text" NAME="PREPAY_payinfo" VALUE="" MAXLENGTH=80>!,
);
if ( $init_data->{'cvv_enabled'} ) {
foreach my $payby ( grep { exists $payby{$_} } qw(CARD DCRD) ) { #1.4/1.5
$payby{$payby} .= qq!<BR>CVV2 (<A HREF="javascript:myopen('cvv2.html','cvv2','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=480,height=288')">help</A>) <INPUT TYPE="text" NAME=${payby}_paycvv VALUE="" SIZE=4 MAXLENGTH=4>!;
}
}
my( $account, $aba ) = split('@', $payinfo);
my %paybychecked = (
'CARD' => qq!Credit card<BR><font color="#ff0000">*</font>$cardselect<INPUT TYPE="text" NAME="CARD_payinfo" VALUE="$payinfo" MAXLENGTH=19><BR><font color="#ff0000">*</font>Exp !. expselect("CARD", $paydate). qq!<BR><font color="#ff0000">*</font>Name on card<BR><INPUT TYPE="text" NAME="CARD_payname" VALUE="$payname">!,
'DCRD' => qq!Credit card<BR><font color="#ff0000">*</font>$cardselect<INPUT TYPE="text" NAME="DCRD_payinfo" VALUE="$payinfo" MAXLENGTH=19><BR><font color="#ff0000">*</font>Exp !. expselect("DCRD", $paydate). qq!<BR><font color="#ff0000">*</font>Name on card<BR><INPUT TYPE="text" NAME="DCRD_payname" VALUE="$payname">!,
'CHEK' => qq!Electronic check<BR>${r}Account number <INPUT TYPE="text" NAME="CHEK_payinfo1" VALUE="$account" MAXLENGTH=10><BR>${r}ABA/Routing code <INPUT TYPE="text" NAME="CHEK_payinfo2" VALUE="$aba" SIZE=10 MAXLENGTH=9><INPUT TYPE="hidden" NAME="CHEK_month" VALUE="12"><INPUT TYPE="hidden" NAME="CHEK_year" VALUE="2037"><BR>${r}Bank name <INPUT TYPE="text" NAME="CHEK_payname" VALUE="$payname">!,
'DCHK' => qq!Electronic check<BR>${r}Account number <INPUT TYPE="text" NAME="DCHK_payinfo1" VALUE="$account" MAXLENGTH=10><BR>${r}ABA/Routing code <INPUT TYPE="text" NAME="DCHK_payinfo2" VALUE="$aba" SIZE=10 MAXLENGTH=9><INPUT TYPE="hidden" NAME="DCHK_month" VALUE="12"><INPUT TYPE="hidden" NAME="DCHK_year" VALUE="2037"><BR>${r}Bank name <INPUT TYPE="text" NAME="DCHK_payname" VALUE="$payname">!,
'LECB' => qq!Phone bill billing<BR>${r}Phone number <INPUT TYPE="text" BANE="LECB_payinfo" VALUE="$payinfo" MAXLENGTH=15 SIZE=16><INPUT TYPE="hidden" NAME="LECB_month" VALUE="12"><INPUT TYPE="hidden" NAME="LECB_year" VALUE="2037"><INPUT TYPE="hidden" NAME="LECB_payname" VALUE="">!,
'BILL' => qq!Billing<BR>P.O. <INPUT TYPE="text" NAME="BILL_payinfo" VALUE="$payinfo"><BR><font color="#ff0000">*</font>Exp !. expselect("BILL", $paydate). qq!<BR><font color="#ff0000">*</font>Attention<BR><INPUT TYPE="text" NAME="BILL_payname" VALUE="$payname">!,
'COMP' => qq!Complimentary<BR><font color="#ff0000">*</font>Approved by<INPUT TYPE="text" NAME="COMP_payinfo" VALUE="$payinfo"><BR><font color="#ff0000">*</font>Exp !. expselect("COMP", $paydate),
'PREPAY' => qq!Prepaid card<BR><font color="#ff0000">*</font><INPUT TYPE="text" NAME="PREPAY_payinfo" VALUE="$payinfo" MAXLENGTH=80>!,
);
if ( $init_data->{'cvv_enabled'} ) {
foreach my $payby ( grep { exists $payby{$_} } qw(CARD DCRD) ) { #1.4/1.5
$paybychecked{$payby} .= qq!<BR>CVV2 (<A HREF="javascript:myopen('cvv2.html','cvv2','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=480,height=288')">help</A>) <INPUT TYPE="text" NAME=${payby}_paycvv VALUE="$paycvv" SIZE=4 MAXLENGTH=4>!;
}
}
for (@payby) {
if ( scalar(@payby) == 1) {
$OUT .= '<TD VALIGN=TOP>'.
qq!<INPUT TYPE="hidden" NAME="payby" VALUE="$_">!.
"$paybychecked{$_}</TD>";
} else {
$OUT .= qq!<TD VALIGN=TOP><INPUT TYPE="radio" NAME="payby" VALUE="$_"!;
if ($payby eq $_) {
$OUT .= qq! CHECKED> $paybychecked{$_}</TD>!;
} else {
$OUT .= qq!> $payby{$_}</TD>!;
}
}
}
%>
</TR></TABLE><font color="#ff0000">*</font> required fields for each billing type
<BR><BR>First package
<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR>
<TD COLSPAN=2><SELECT NAME="pkgpart"><OPTION VALUE="">(none)
<%=
foreach my $package ( @{$packages} ) {
$OUT .= '<OPTION VALUE="'. $package->{'pkgpart'}. '"';
$OUT .= ' SELECTED' if $pkgpart && $package->{'pkgpart'} == $pkgpart;
$OUT .= '>'. $package->{'pkg'};
}
%>
</SELECT></TD>
</TR>
<TR>
<TD ALIGN="right">Username</TD>
<TD><INPUT TYPE="text" NAME="username" VALUE="<%= $username %>"></TD>
</TR>
<TR>
<TD ALIGN="right">Password</TD>
<TD><INPUT TYPE="password" NAME="_password" VALUE="<%= $password %>"></TD>
</TR>
<TR>
<TD ALIGN="right">Re-enter Password</TD>
<TD><INPUT TYPE="password" NAME="_password2" VALUE="<%= $password2 %>"></TD>
</TR>
<%=
if ( $init_data->{'security_phrase'} ) {
$OUT .= <<ENDOUT;
<TR>
<TD ALIGN="right">Security Phrase</TD>
<TD><INPUT TYPE="text" NAME="sec_phrase" VALUE="$sec_phrase">
</TD>
</TR>
ENDOUT
} else {
$OUT .= '<INPUT TYPE="hidden" NAME="sec_phrase" VALUE="">';
}
%>
<%=
if ( scalar(@$pops) ) {
$OUT .= '<TR><TD ALIGN="right">Access number</TD><TD>'.
popselector($popnum). '</TD></TR>';
} else {
$OUT .= popselector($popnum);
}
%>
</TABLE>
<BR><BR>Enter up to ten external accounts from which to retrieve email
<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR>
<TH ALIGN="left">Mail server</TH>
<TH ALIGN="left">Username</TH>
<TH ALIGN="left">Password</TH>
</TR>
<%=
for my $num ( 1..10 ) {
no strict 'vars';
$OUT .= qq!<TR><TD><INPUT TYPE="text" NAME="snarf_machine$num" VALUE="${"snarf_machine$num"}"></TD>!.
qq!<INPUT TYPE="hidden" NAME="snarf_protocol$num" VALUE="pop3">!.
qq!<TD><INPUT TYPE="text" NAME="snarf_username$num" VALUE="${"snarf_username$num"}"></TD>!.
qq!<TD><INPUT TYPE="password" NAME="snarf_password$num" VALUE="${"snarf_password$num"}"></TD>!.
qq!</TR>!;
}
%>
</TABLE>
<BR><BR><INPUT TYPE="submit" VALUE="Signup">
</FORM></BODY></HTML>
--- NEW FILE: signup-freeoption.html ---
<HTML><HEAD><TITLE>ISP Signup form</TITLE></HEAD>
<BODY BGCOLOR="#e8e8e8" onUnload="myclose()">
<script language="JavaScript"><!--
var mywindow = -1;
function myopen(filename,windowname,properties) {
myclose();
mywindow = window.open(filename,windowname,properties);
}
function myclose() {
if ( mywindow != -1 )
mywindow.close();
mywindow = -1
}
//--></script>
<FONT SIZE=7>ISP Signup form</FONT><BR><BR>
<FONT SIZE="+1" COLOR="#ff0000"><%= $error %></FONT>
<FORM NAME="OneTrueForm" ACTION="<%= $self_url %>" METHOD=POST onSubmit="document.OneTrueForm.signup.disabled=true">
<INPUT TYPE="hidden" NAME="magic" VALUE="process">
<INPUT TYPE="hidden" NAME="ref" VALUE="<%= $referral_custnum %>">
<INPUT TYPE="hidden" NAME="ss" VALUE="">
Where did you hear about our service? <SELECT NAME="refnum">
<%=
$OUT .= '<OPTION VALUE="">' unless $refnum;
foreach my $part_referral ( @{$init_data->{'part_referral'}} ) {
$OUT .= '<OPTION VALUE="'. $part_referral->{'refnum'}. '"';
$OUT .= ' SELECTED' if $part_referral->{'refnum'} eq $refnum;
$OUT .= '>'. $part_referral->{'referral'};
}
%>
</SELECT><BR><BR>
Contact Information
<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Contact name<BR>(last, first)</TH>
<TD COLSPAN=5><INPUT TYPE="text" NAME="last" VALUE="<%= $last %>">,
<INPUT TYPE="text" NAME="first" VALUE="<%= $first %>"></TD>
</TR>
<TR>
<TD ALIGN="right">Company</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="company" SIZE=70 VALUE="<%= $company %>"></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Address</TH>
<TD COLSPAN=5><INPUT TYPE="text" NAME="address1" SIZE=70 VALUE="<%= $address1 %>"></TD>
</TR>
<TR>
<TD ALIGN="right"> </TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="address2" SIZE=70 VALUE="<%= $address2 %>"></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>City</TH>
<TD><INPUT TYPE="text" NAME="city" VALUE="<%= $city %>"></TD>
<TH ALIGN="right"><font color="#ff0000">*</font>State/Country</TH>
<TD>
<%=
($county_html, $state_html, $country_html) =
regionselector( $county, $state, $country );
"$county_html $state_html";
%>
</TD>
<TH><font color="#ff0000">*</font>Zip</TH>
<TD><INPUT TYPE="text" NAME="zip" SIZE=10 VALUE="<%= $zip %>"></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Country</TH>
<TD><%= $country_html %></TD>
<TR>
<TD ALIGN="right">Day Phone</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="daytime" VALUE="<%= $daytime %>" SIZE=18></TD>
</TR>
<TR>
<TD ALIGN="right">Night Phone</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="night" VALUE="<%= $night %>" SIZE=18></TD>
</TR>
<TR>
<TD ALIGN="right">Fax</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="fax" VALUE="<%= $fax %>" SIZE=12></TD>
</TR>
</TABLE><font color="#ff0000">*</font> required fields<BR>
<BR>
<%=
my $first_payby = $packages->[0]{'payby'}[0];
unless ( grep { scalar( @{$_->{'payby'}} ) > 1
|| $_->{'payby'}->[0] ne $first_payby
} @$packages
) {
@payby = ( $first_payby );
}
unless ( scalar(@payby) == 1 && $payby[0] eq 'BILL' ) {
$OUT .= ' Billing information
<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR><TD>
<INPUT TYPE="checkbox" NAME="invoicing_list_POST" VALUE="POST"';
my @invoicing_list = split(', ', $invoicing_list );
$OUT .= ' CHECKED'
if ! @invoicing_list || grep { $_ eq 'POST' } @invoicing_list;
$OUT .= '> Postal mail invoice
</TD></TR>
<TR><TD>Email invoice
<INPUT TYPE="text" NAME="invoicing_list" VALUE="'
.join(', ', grep { $_ ne 'POST' } split(', ', $invoicing_list ) ).
'"></TD></TR>';
$OUT .= '<TR><TD>Billing type</TD></TR>'
if scalar(@payby) > 1;
$OUT .= '</TABLE>';
} else {
$OUT .= '<INPUT TYPE="hidden" NAME="invoicing_list" VALUE="">
<INPUT TYPE="hidden" NAME="invoicing_list_POST" VALUE="">';
}
%>
<TABLE BGCOLOR="#c0c0c0" BORDER=1 WIDTH="100%">
<TR>
<%=
my $cardselect = '<SELECT NAME="CARD_type"><OPTION></OPTION>';
my %types = (
'VISA' => 'VISA card',
'MasterCard' => 'MasterCard',
'Discover' => 'Discover card',
'American Express' => 'American Express card',
);
foreach ( keys %types ) {
$selected = $cgi->param('CARD_type') eq $types{$_} ? 'SELECTED' : '';
$cardselect .= qq!<OPTION $selected VALUE="$types{$_}">$_</OPTION>!;
}
$cardselect .= '</SELECT>';
my %payby = (
'CARD' => qq!Credit card<BR><font color="#ff0000">*</font>$cardselect<INPUT TYPE="text" NAME="CARD_payinfo" VALUE="" MAXLENGTH=19><BR><font color="#ff0000">*</font>Exp !. expselect("CARD"). qq!<BR><font color="#ff0000">*</font>Name on card<BR><INPUT TYPE="text" NAME="CARD_payname" VALUE="">!,
'DCRD' => qq!Credit card<BR><font color="#ff0000">*</font>$cardselect<INPUT TYPE="text" NAME="DCRD_payinfo" VALUE="" MAXLENGTH=19><BR><font color="#ff0000">*</font>Exp !. expselect("DCRD"). qq!<BR><font color="#ff0000">*</font>Name on card<BR><INPUT TYPE="text" NAME="DCRD_payname" VALUE="">!,
'CHEK' => qq!Electronic check<BR>${r}Account number <INPUT TYPE="text" NAME="CHEK_payinfo1" VALUE="" MAXLENGTH=10><BR>${r}ABA/Routing code <INPUT TYPE="text" NAME="CHEK_payinfo2" VALUE="" SIZE=10 MAXLENGTH=9><INPUT TYPE="hidden" NAME="CHEK_month" VALUE="12"><INPUT TYPE="hidden" NAME="CHEK_year" VALUE="2037"><BR>${r}Bank name <INPUT TYPE="text" NAME="CHEK_payname" VALUE="">!,
'DCHK' => qq!Electronic check<BR>${r}Account number <INPUT TYPE="text" NAME="DCHK_payinfo1" VALUE="" MAXLENGTH=10><BR>${r}ABA/Routing code <INPUT TYPE="text" NAME="DCHK_payinfo2" VALUE="" SIZE=10 MAXLENGTH=9><INPUT TYPE="hidden" NAME="DCHK_month" VALUE="12"><INPUT TYPE="hidden" NAME="DCHK_year" VALUE="2037"><BR>${r}Bank name <INPUT TYPE="text" NAME="DCHK_payname" VALUE="">!,
'LECB' => qq!Phone bill billing<BR>${r}Phone number <INPUT TYPE="text" BANE="LECB_payinfo" VALUE="" MAXLENGTH=15 SIZE=16><INPUT TYPE="hidden" NAME="LECB_month" VALUE="12"><INPUT TYPE="hidden" NAME="LECB_year" VALUE="2037"><INPUT TYPE="hidden" NAME="LECB_payname" VALUE="">!,
'BILL' => <<'END',
<INPUT TYPE="hidden" NAME="BILL_payinfo" VALUE="">
<INPUT TYPE="hidden" NAME="BILL_month" VALUE="12">
<INPUT TYPE="hidden" NAME="BILL_year" VALUE="2037">
<INPUT TYPE="hidden" NAME="BILL_payname" VALUE="">
END
'COMP' => qq!Complimentary<BR><font color="#ff0000">*</font>Approved by<INPUT TYPE="text" NAME="COMP_payinfo" VALUE=""><BR><font color="#ff0000">*</font>Exp !. expselect("COMP"),
'PREPAY' => qq!Prepaid card<BR><font color="#ff0000">*</font><INPUT TYPE="text" NAME="PREPAY_payinfo" VALUE="" MAXLENGTH=80>!,
);
if ( $init_data->{'cvv_enabled'} ) {
foreach my $payby ( grep { exists $payby{$_} } qw(CARD DCRD) ) { #1.4/1.5
$payby{$payby} .= qq!<BR>CVV2 (<A HREF="javascript:myopen('cvv2.html','cvv2','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=480,height=288')">help</A>) <INPUT TYPE="text" NAME=${payby}_paycvv VALUE="" SIZE=4 MAXLENGTH=4>!;
}
}
my( $account, $aba ) = split('@', $payinfo);
my %paybychecked = (
'CARD' => qq!Credit card<BR><font color="#ff0000">*</font>$cardselect<INPUT TYPE="text" NAME="CARD_payinfo" VALUE="$payinfo" MAXLENGTH=19><BR><font color="#ff0000">*</font>Exp !. expselect("CARD", $paydate). qq!<BR><font color="#ff0000">*</font>Name on card<BR><INPUT TYPE="text" NAME="CARD_payname" VALUE="$payname">!,
'DCRD' => qq!Credit card<BR><font color="#ff0000">*</font>$cardselect<INPUT TYPE="text" NAME="DCRD_payinfo" VALUE="$payinfo" MAXLENGTH=19><BR><font color="#ff0000">*</font>Exp !. expselect("DCRD", $paydate). qq!<BR><font color="#ff0000">*</font>Name on card<BR><INPUT TYPE="text" NAME="DCRD_payname" VALUE="$payname">!,
'CHEK' => qq!Electronic check<BR>${r}Account number <INPUT TYPE="text" NAME="CHEK_payinfo1" VALUE="$account" MAXLENGTH=10><BR>${r}ABA/Routing code <INPUT TYPE="text" NAME="CHEK_payinfo2" VALUE="$aba" SIZE=10 MAXLENGTH=9><INPUT TYPE="hidden" NAME="CHEK_month" VALUE="12"><INPUT TYPE="hidden" NAME="CHEK_year" VALUE="2037"><BR>${r}Bank name <INPUT TYPE="text" NAME="CHEK_payname" VALUE="$payname">!,
'DCHK' => qq!Electronic check<BR>${r}Account number <INPUT TYPE="text" NAME="DCHK_payinfo1" VALUE="$account" MAXLENGTH=10><BR>${r}ABA/Routing code <INPUT TYPE="text" NAME="DCHK_payinfo2" VALUE="$aba" SIZE=10 MAXLENGTH=9><INPUT TYPE="hidden" NAME="DCHK_month" VALUE="12"><INPUT TYPE="hidden" NAME="DCHK_year" VALUE="2037"><BR>${r}Bank name <INPUT TYPE="text" NAME="DCHK_payname" VALUE="$payname">!,
'LECB' => qq!Phone bill billing<BR>${r}Phone number <INPUT TYPE="text" BANE="LECB_payinfo" VALUE="$payinfo" MAXLENGTH=15 SIZE=16><INPUT TYPE="hidden" NAME="LECB_month" VALUE="12"><INPUT TYPE="hidden" NAME="LECB_year" VALUE="2037"><INPUT TYPE="hidden" NAME="LECB_payname" VALUE="">!,
'BILL' => <<'END',
<INPUT TYPE="hidden" NAME="BILL_payinfo" VALUE="">
<INPUT TYPE="hidden" NAME="BILL_month" VALUE="12">
<INPUT TYPE="hidden" NAME="BILL_year" VALUE="2037">
<INPUT TYPE="hidden" NAME="BILL_payname" VALUE="">
END
'COMP' => qq!Complimentary<BR><font color="#ff0000">*</font>Approved by<INPUT TYPE="text" NAME="COMP_payinfo" VALUE="$payinfo"><BR><font color="#ff0000">*</font>Exp !. expselect("COMP", $paydate),
'PREPAY' => qq!Prepaid card<BR><font color="#ff0000">*</font><INPUT TYPE="text" NAME="PREPAY_payinfo" VALUE="$payinfo" MAXLENGTH=80>!,
);
if ( $init_data->{'cvv_enabled'} ) {
foreach my $payby ( grep { exists $payby{$_} } qw(CARD DCRD) ) { #1.4/1.5
$paybychecked{$payby} .= qq!<BR>CVV2 (<A HREF="javascript:myopen('cvv2.html','cvv2','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=480,height=288')">help</A>) <INPUT TYPE="text" NAME=${payby}_paycvv VALUE="$paycvv" SIZE=4 MAXLENGTH=4>!;
}
}
for (@payby) {
if ( scalar(@payby) == 1) {
$OUT .= '<TD VALIGN=TOP>'.
qq!<INPUT TYPE="hidden" NAME="payby" VALUE="$_">!.
"$paybychecked{$_}</TD>";
} else {
$OUT .= qq!<TD VALIGN=TOP><INPUT TYPE="radio" NAME="payby" VALUE="$_"!;
if ($payby eq $_) {
$OUT .= qq! CHECKED> $paybychecked{$_}</TD>!;
} else {
$OUT .= qq!> $payby{$_}</TD>!;
}
}
}
%>
</TR></TABLE>
<%= unless ( scalar(@payby) == 1 && $payby[0] eq 'BILL' ) {
$OUT .= '<font color="#ff0000">*</font> required fields for each billing type';
}
'';
%>
<BR><BR>First package
<INPUT TYPE="hidden" NAME="promo_code" VALUE="<%= $cgi->param('promo_code') %>"><TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR>
<TD COLSPAN=2><SELECT NAME="pkgpart">
<%=
$OUT .= '<OPTION VALUE="">(none)' unless scalar(@$packages) == 1;
foreach my $package ( @{$packages} ) {
$OUT .= '<OPTION VALUE="'. $package->{'pkgpart'}. '"';
$OUT .= ' SELECTED'
if ( $pkgpart && $package->{'pkgpart'} == $pkgpart )
|| scalar(@$packages) == 1;
$OUT .= '>'. $package->{'pkg'};
}
%>
</SELECT></TD>
</TR>
<TR>
<TD ALIGN="right">Username</TD>
<TD><INPUT TYPE="text" NAME="username" VALUE="<%= $username %>"></TD>
</TR>
<TR>
<TD ALIGN="right">Password</TD>
<TD><INPUT TYPE="password" NAME="_password" VALUE="<%= $password %>"></TD>
</TR>
<TR>
<TD ALIGN="right">Re-enter Password</TD>
<TD><INPUT TYPE="password" NAME="_password2" VALUE="<%= $password2 %>"></TD>
</TR>
<%=
if ( $init_data->{'security_phrase'} ) {
$OUT .= <<ENDOUT;
<TR>
<TD ALIGN="right">Security Phrase</TD>
<TD><INPUT TYPE="text" NAME="sec_phrase" VALUE="$sec_phrase">
</TD>
</TR>
ENDOUT
} else {
$OUT .= '<INPUT TYPE="hidden" NAME="sec_phrase" VALUE="">';
}
%>
<%=
if ( scalar(@$pops) ) {
$OUT .= '<TR><TD ALIGN="right">Access number</TD><TD>'.
popselector($popnum). '</TD></TR>';
} else {
$OUT .= popselector($popnum);
}
%>
</TABLE>
<BR><BR><INPUT TYPE="submit" NAME="signup" VALUE="Signup">
</FORM></BODY></HTML>
--- NEW FILE: signup-agentselect.html ---
<HTML><HEAD><TITLE>ISP Signup form</TITLE></HEAD>
<BODY BGCOLOR="#e8e8e8"><FONT SIZE=7>ISP Signup form</FONT><BR><BR>
<FONT SIZE="+1" COLOR="#ff0000"><%= $error %></FONT>
<FORM NAME="OneTrueForm" ACTION="<%= $self_url %>" METHOD=POST onSubmit="document.OneTrueForm.signup.disabled=true">
<INPUT TYPE="hidden" NAME="magic" VALUE="process">
<INPUT TYPE="hidden" NAME="ref" VALUE="<%= $referral_custnum %>">
<INPUT TYPE="hidden" NAME="ss" VALUE="">
Agent <SELECT NAME="agentnum">
<%=
warn $init_data;
warn $init_data->{'agent'};
foreach my $agent ( @{$init_data->{'agent'}} ) {
$OUT .= '<OPTION VALUE="'. $agent->{'agentnum'}. '"';
$OUT .= ' SELECTED' if $agent->{'agentnum'} eq $agentnum;
$OUT .= '>'. $agent->{'agent'};
}
%>
</SELECT><BR><BR>
Contact Information
<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Contact name<BR>(last, first)</TH>
<TD COLSPAN=5><INPUT TYPE="text" NAME="last" VALUE="<%= $last %>">,
<INPUT TYPE="text" NAME="first" VALUE="<%= $first %>"></TD>
</TR>
<TR>
<TD ALIGN="right">Company</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="company" SIZE=70 VALUE="<%= $company %>"></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Address</TH>
<TD COLSPAN=5><INPUT TYPE="text" NAME="address1" SIZE=70 VALUE="<%= $address1 %>"></TD>
</TR>
<TR>
<TD ALIGN="right"> </TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="address2" SIZE=70 VALUE="<%= $address2 %>"></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>City</TH>
<TD><INPUT TYPE="text" NAME="city" VALUE="<%= $city %>"></TD>
<TH ALIGN="right"><font color="#ff0000">*</font>State/Country</TH>
<TD>
<%=
($county_html, $state_html, $country_html) =
regionselector( $county, $state, $country );
"$county_html $state_html";
%>
</TD>
<TH><font color="#ff0000">*</font>Zip</TH>
<TD><INPUT TYPE="text" NAME="zip" SIZE=10 VALUE="<%= $zip %>"></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Country</TH>
<TD><%= $country_html %></TD>
<TR>
<TD ALIGN="right">Day Phone</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="daytime" VALUE="<%= $daytime %>" SIZE=18></TD>
</TR>
<TR>
<TD ALIGN="right">Night Phone</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="night" VALUE="<%= $night %>" SIZE=18></TD>
</TR>
<TR>
<TD ALIGN="right">Fax</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="fax" VALUE="<%= $fax %>" SIZE=12></TD>
</TR>
</TABLE><font color="#ff0000">*</font> required fields<BR>
<BR>Billing information<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR><TD>
<%=
$OUT .= '<INPUT TYPE="checkbox" NAME="invoicing_list_POST" VALUE="POST"';
my @invoicing_list = split(', ', $invoicing_list );
$OUT .= ' CHECKED'
if ! @invoicing_list || grep { $_ eq 'POST' } @invoicing_list;
$OUT .= '>';
%>
Postal mail invoice
</TD></TR>
<TR><TD>Email invoice <INPUT TYPE="text" NAME="invoicing_list" VALUE="<%= join(', ', grep { $_ ne 'POST' } split(', ', $invoicing_list ) ) %>">
</TD></TR>
<%= scalar(@payby) > 1 ? '<TR><TD>Billing type</TD></TR>' : '' %>
</TABLE>
<TABLE BGCOLOR="#c0c0c0" BORDER=1 WIDTH="100%">
<TR>
<%=
my $cardselect = '<SELECT NAME="CARD_type"><OPTION></OPTION>';
my %types = (
'VISA' => 'VISA card',
'MasterCard' => 'MasterCard',
'Discover' => 'Discover card',
'American Express' => 'American Express card',
);
foreach ( keys %types ) {
$selected = $cgi->param('CARD_type') eq $types{$_} ? 'SELECTED' : '';
$cardselect .= qq!<OPTION $selected VALUE="$types{$_}">$_</OPTION>!;
}
$cardselect .= '</SELECT>';
my %payby = (
'CARD' => qq!Credit card<BR><font color="#ff0000">*</font>$cardselect<INPUT TYPE="text" NAME="CARD_payinfo" VALUE="" MAXLENGTH=19><BR><font color="#ff0000">*</font>Exp !. expselect("CARD"). qq!<BR><font color="#ff0000">*</font>Name on card<BR><INPUT TYPE="text" NAME="CARD_payname" VALUE="">!,
'DCRD' => qq!Credit card<BR><font color="#ff0000">*</font>$cardselect<INPUT TYPE="text" NAME="DCRD_payinfo" VALUE="" MAXLENGTH=19><BR><font color="#ff0000">*</font>Exp !. expselect("DCRD"). qq!<BR><font color="#ff0000">*</font>Name on card<BR><INPUT TYPE="text" NAME="DCRD_payname" VALUE="">!,
'CHEK' => qq!Electronic check<BR>${r}Account number <INPUT TYPE="text" NAME="CHEK_payinfo1" VALUE="" MAXLENGTH=10><BR>${r}ABA/Routing code <INPUT TYPE="text" NAME="CHEK_payinfo2" VALUE="" SIZE=10 MAXLENGTH=9><INPUT TYPE="hidden" NAME="CHEK_month" VALUE="12"><INPUT TYPE="hidden" NAME="CHEK_year" VALUE="2037"><BR>${r}Bank name <INPUT TYPE="text" NAME="CHEK_payname" VALUE="">!,
'DCHK' => qq!Electronic check<BR>${r}Account number <INPUT TYPE="text" NAME="DCHK_payinfo1" VALUE="" MAXLENGTH=10><BR>${r}ABA/Routing code <INPUT TYPE="text" NAME="DCHK_payinfo2" VALUE="" SIZE=10 MAXLENGTH=9><INPUT TYPE="hidden" NAME="DCHK_month" VALUE="12"><INPUT TYPE="hidden" NAME="DCHK_year" VALUE="2037"><BR>${r}Bank name <INPUT TYPE="text" NAME="DCHK_payname" VALUE="">!,
'LECB' => qq!Phone bill billing<BR>${r}Phone number <INPUT TYPE="text" BANE="LECB_payinfo" VALUE="" MAXLENGTH=15 SIZE=16><INPUT TYPE="hidden" NAME="LECB_month" VALUE="12"><INPUT TYPE="hidden" NAME="LECB_year" VALUE="2037"><INPUT TYPE="hidden" NAME="LECB_payname" VALUE="">!,
'BILL' => qq!Billing<BR>P.O. <INPUT TYPE="text" NAME="BILL_payinfo" VALUE=""><BR><font color="#ff0000">*</font>Exp !. expselect("BILL", "12-2037"). qq!<BR><font color="#ff0000">*</font>Attention<BR><INPUT TYPE="text" NAME="BILL_payname" VALUE="Accounts Payable">!,
'COMP' => qq!Complimentary<BR><font color="#ff0000">*</font>Approved by<INPUT TYPE="text" NAME="COMP_payinfo" VALUE=""><BR><font color="#ff0000">*</font>Exp !. expselect("COMP"),
'PREPAY' => qq!Prepaid card<BR><font color="#ff0000">*</font><INPUT TYPE="text" NAME="PREPAY_payinfo" VALUE="" MAXLENGTH=80>!,
);
my( $account, $aba ) = split('@', $payinfo);
my %paybychecked = (
'CARD' => qq!Credit card<BR><font color="#ff0000">*</font>$cardselect<INPUT TYPE="text" NAME="CARD_payinfo" VALUE="$payinfo" MAXLENGTH=19><BR><font color="#ff0000">*</font>Exp !. expselect("CARD", $paydate). qq!<BR><font color="#ff0000">*</font>Name on card<BR><INPUT TYPE="text" NAME="CARD_payname" VALUE="$payname">!,
'DCRD' => qq!Credit card<BR><font color="#ff0000">*</font>$cardselect<INPUT TYPE="text" NAME="DCRD_payinfo" VALUE="$payinfo" MAXLENGTH=19><BR><font color="#ff0000">*</font>Exp !. expselect("DCRD", $paydate). qq!<BR><font color="#ff0000">*</font>Name on card<BR><INPUT TYPE="text" NAME="DCRD_payname" VALUE="$payname">!,
'CHEK' => qq!Electronic check<BR>${r}Account number <INPUT TYPE="text" NAME="CHEK_payinfo1" VALUE="$account" MAXLENGTH=10><BR>${r}ABA/Routing code <INPUT TYPE="text" NAME="CHEK_payinfo2" VALUE="$aba" SIZE=10 MAXLENGTH=9><INPUT TYPE="hidden" NAME="CHEK_month" VALUE="12"><INPUT TYPE="hidden" NAME="CHEK_year" VALUE="2037"><BR>${r}Bank name <INPUT TYPE="text" NAME="CHEK_payname" VALUE="$payname">!,
'DCHK' => qq!Electronic check<BR>${r}Account number <INPUT TYPE="text" NAME="DCHK_payinfo1" VALUE="$account" MAXLENGTH=10><BR>${r}ABA/Routing code <INPUT TYPE="text" NAME="DCHK_payinfo2" VALUE="$aba" SIZE=10 MAXLENGTH=9><INPUT TYPE="hidden" NAME="DCHK_month" VALUE="12"><INPUT TYPE="hidden" NAME="DCHK_year" VALUE="2037"><BR>${r}Bank name <INPUT TYPE="text" NAME="DCHK_payname" VALUE="$payname">!,
'LECB' => qq!Phone bill billing<BR>${r}Phone number <INPUT TYPE="text" BANE="LECB_payinfo" VALUE="$payinfo" MAXLENGTH=15 SIZE=16><INPUT TYPE="hidden" NAME="LECB_month" VALUE="12"><INPUT TYPE="hidden" NAME="LECB_year" VALUE="2037"><INPUT TYPE="hidden" NAME="LECB_payname" VALUE="">!,
'BILL' => qq!Billing<BR>P.O. <INPUT TYPE="text" NAME="BILL_payinfo" VALUE="$payinfo"><BR><font color="#ff0000">*</font>Exp !. expselect("BILL", $paydate). qq!<BR><font color="#ff0000">*</font>Attention<BR><INPUT TYPE="text" NAME="BILL_payname" VALUE="$payname">!,
'COMP' => qq!Complimentary<BR><font color="#ff0000">*</font>Approved by<INPUT TYPE="text" NAME="COMP_payinfo" VALUE="$payinfo"><BR><font color="#ff0000">*</font>Exp !. expselect("COMP", $paydate),
'PREPAY' => qq!Prepaid card<BR><font color="#ff0000">*</font><INPUT TYPE="text" NAME="PREPAY_payinfo" VALUE="$payinfo" MAXLENGTH=80>!,
);
for (@payby) {
if ( scalar(@payby) == 1) {
$OUT .= '<TD VALIGN=TOP>'.
qq!<INPUT TYPE="hidden" NAME="payby" VALUE="$_">!.
"$paybychecked{$_}</TD>";
} else {
$OUT .= qq!<TD VALIGN=TOP><INPUT TYPE="radio" NAME="payby" VALUE="$_"!;
if ($payby eq $_) {
$OUT .= qq! CHECKED> $paybychecked{$_}</TD>!;
} else {
$OUT .= qq!> $payby{$_}</TD>!;
}
}
}
%>
</TR></TABLE><font color="#ff0000">*</font> required fields for each billing type
<BR><BR>First package
<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR>
<TD COLSPAN=2><SELECT NAME="pkgpart"><OPTION VALUE="">(none)
<%=
foreach my $package ( @{$packages} ) {
$OUT .= '<OPTION VALUE="'. $package->{'pkgpart'}. '"';
$OUT .= ' SELECTED' if $pkgpart && $package->{'pkgpart'} == $pkgpart;
$OUT .= '>'. $package->{'pkg'};
}
%>
</SELECT></TD>
</TR>
<TR>
<TD ALIGN="right">Username</TD>
<TD><INPUT TYPE="text" NAME="username" VALUE="<%= $username %>"></TD>
</TR>
<TR>
<TD ALIGN="right">Password</TD>
<TD><INPUT TYPE="password" NAME="_password" VALUE="<%= $password %>"></TD>
</TR>
<TR>
<TD ALIGN="right">Re-enter Password</TD>
<TD><INPUT TYPE="password" NAME="_password2" VALUE="<%= $password2 %>"></TD>
</TR>
<%=
if ( $init_data->{'security_phrase'} ) {
$OUT .= <<ENDOUT;
<TR>
<TD ALIGN="right">Security Phrase</TD>
<TD><INPUT TYPE="text" NAME="sec_phrase" VALUE="$sec_phrase">
</TD>
</TR>
ENDOUT
} else {
$OUT .= '<INPUT TYPE="hidden" NAME="sec_phrase" VALUE="">';
}
%>
<%=
if ( scalar(@$pops) ) {
$OUT .= '<TR><TD ALIGN="right">Access number</TD><TD>'.
popselector($popnum). '</TD></TR>';
} else {
$OUT .= popselector($popnum);
}
%>
</TABLE>
<BR><BR><INPUT TYPE="submit" NAME="signup" VALUE="Signup" >
</FORM></BODY></HTML>
--- NEW FILE: map.gif ---
(This appears to be a binary file; contents omitted.)
--- NEW FILE: signup.cgi ---
#!/usr/bin/perl -T
#!/usr/bin/perl -Tw
#
# $Id: signup.cgi,v 1.1 2005/03/12 14:31:50 ivan Exp $
use strict;
use vars qw( @payby $cgi $init_data
$self_url $error $agentnum
$ieak_file $ieak_template
$signup_html $signup_template
$success_html $success_template
$decline_html $decline_template
);
#$locales $packages
#$pops %pop %popnum2pop
#$last $first $ss $company $address1
#$address2 $city $state $county
#$country $zip $daytime $night $fax
#$ship_last $ship_first $ship_ss $ship_company $ship_address1
#$ship_address2 $ship_city $ship_state $ship_county
#$ship_country $ship_zip $ship_daytime $ship_night $ship_fax
#$invoicing_list $payby $payinfo
#$paycvv $paydate $payname $referral_custnum $init_popstate
#$pkgpart $username $_password $_password2 $sec_phrase $popnum
#$refnum
#$ac $exch $loc
#$email_name $pkg
use subs qw( print_form print_okay print_decline
success_default decline_default
);
use CGI;
#use CGI::Carp qw(fatalsToBrowser);
use Text::Template;
use Business::CreditCard;
use HTTP::BrowserDetect;
use FS::SelfService qw( signup_info new_customer );
#acceptable payment methods
#
#@payby = qw( CARD BILL COMP );
#@payby = qw( CARD BILL );
#@payby = qw( CARD );
@payby = qw( CARD PREPAY );
$ieak_file = '/usr/local/freeside/ieak.template';
$signup_html = -e 'signup.html'
? 'signup.html'
: '/usr/local/freeside/signup.html';
$success_html = -e 'success.html'
? 'success.html'
: '/usr/local/freeside/success.html';
$decline_html = -e 'decline.html'
? 'decline.html'
: '/usr/local/freeside/decline.html';
if ( -e $ieak_file ) {
my $ieak_txt = Text::Template::_load_text($ieak_file)
or die $Text::Template::ERROR;
$ieak_txt =~ /^(.*)$/s; #untaint the template source - it's trusted
$ieak_txt = $1;
$ieak_txt =~ s/\r//g; # don't double \r on old templates
$ieak_txt =~ s/\n/\r\n/g;
$ieak_template = new Text::Template ( TYPE => 'STRING', SOURCE => $ieak_txt )
or die $Text::Template::ERROR;
} else {
$ieak_template = '';
}
$agentnum = '';
if ( -e $signup_html ) {
my $signup_txt = Text::Template::_load_text($signup_html)
or die $Text::Template::ERROR;
$signup_txt =~ /^(.*)$/s; #untaint the template source - it's trusted
$signup_txt = $1;
$signup_template = new Text::Template ( TYPE => 'STRING',
SOURCE => $signup_txt,
DELIMITERS => [ '<%=', '%>' ]
)
or die $Text::Template::ERROR;
if ( $signup_txt =~
/<\s*INPUT TYPE="?hidden"?\s+NAME="?agentnum"?\s+VALUE="?(\d+)"?\s*>/si
) {
$agentnum = $1;
}
} else {
#too much maintenance hassle to keep in this file
die "can't find ./signup.html or /usr/local/freeside/signup.html";
#$signup_template = new Text::Template ( TYPE => 'STRING',
# SOURCE => &signup_default,
# DELIMITERS => [ '<%=', '%>' ]
# )
# or die $Text::Template::ERROR;
}
if ( -e $success_html ) {
my $success_txt = Text::Template::_load_text($success_html)
or die $Text::Template::ERROR;
$success_txt =~ /^(.*)$/s; #untaint the template source - it's trusted
$success_txt = $1;
$success_template = new Text::Template ( TYPE => 'STRING',
SOURCE => $success_txt,
DELIMITERS => [ '<%=', '%>' ],
)
or die $Text::Template::ERROR;
} else {
$success_template = new Text::Template ( TYPE => 'STRING',
SOURCE => &success_default,
DELIMITERS => [ '<%=', '%>' ],
)
or die $Text::Template::ERROR;
}
if ( -e $decline_html ) {
my $decline_txt = Text::Template::_load_text($decline_html)
or die $Text::Template::ERROR;
$decline_txt =~ /^(.*)$/s; #untaint the template source - it's trusted
$decline_txt = $1;
$decline_template = new Text::Template ( TYPE => 'STRING',
SOURCE => $decline_txt,
DELIMITERS => [ '<%=', '%>' ],
)
or die $Text::Template::ERROR;
} else {
$decline_template = new Text::Template ( TYPE => 'STRING',
SOURCE => &decline_default,
DELIMITERS => [ '<%=', '%>' ],
)
or die $Text::Template::ERROR;
}
$cgi = new CGI;
$init_data = signup_info( 'agentnum' => $agentnum,
'promo_code' => scalar($cgi->param('promo_code')),
'reg_code' => uc(scalar($cgi->param('reg_code'))),
);
#$error = $init_data->{'error'};
#$locales = $init_data->{'cust_main_county'};
#$packages = $init_data->{'part_pkg'};
#$pops = $init_data->{'svc_acct_pop'};
#@payby = @{$init_data->{'payby'}} if @{$init_data->{'payby'}};
#$packages = $init_data->{agentnum2part_pkg}{$agentnum} if $agentnum;
if ( ( defined($cgi->param('magic')) && $cgi->param('magic') eq 'process' )
|| ( defined($cgi->param('action')) && $cgi->param('action') eq 'process_signup' )
) {
# if ( $cgi->param('state') =~ /^(\w*)( \(([\w ]+)\))? ?\/ ?(\w+)$/ ) {
# $state = $1;
# $county = $3 || '';
# $country = $4;
# } elsif ( $cgi->param('state') =~ /^(\w*)$/ ) {
# $state = $1;
# $cgi->param('county') =~ /^([\w ]*)$/
# or die "illegal county: ". $cgi->param('county');
# $county = $1;
# $cgi->param('country') =~ /^(\w+)$/
# or die "illegal country: ". $cgi->param('country');
# $country = $1;
# } else {
# die "illegal state: ". $cgi->param('state');
# }
# if ( $cgi->param('ship_state') =~ /^(\w*)( \(([\w ]+)\))? ?\/ ?(\w+)$/ ) {
# $ship_state = $1;
# $ship_county = $3 || '';
# $ship_country = $4;
# } elsif ( $cgi->param('ship_state') =~ /^(\w*)$/ ) {
# $ship_state = $1;
# $cgi->param('ship_county') =~ /^([\w ]*)$/
# or die "illegal county: ". $cgi->param('ship_county');
# $ship_county = $1;
# #$cgi->param('ship_country') =~ /^(\w+)$/
# $cgi->param('ship_country') =~ /^(\w*)$/
# or die "illegal ship_country: ". $cgi->param('ship_country');
# $ship_country = $1;
# #} else {
# # die "illegal ship_state: ". $cgi->param('ship_state');
# }
$error = '';
$cgi->param('agentnum', $agentnum) if $agentnum;
$cgi->param('reg_code', uc(scalar($cgi->param('reg_code'))) );
#false laziness w/agent.cgi, identical except for agentnum
my $payby = $cgi->param('payby');
if ( $payby eq 'CHEK' || $payby eq 'DCHK' ) {
#$payinfo = join('@', map { $cgi->param( $payby. "_payinfo$_" ) } (1,2) );
$cgi->param('payinfo' => $cgi->param($payby. '_payinfo1'). '@'.
$cgi->param($payby. '_payinfo2')
);
} else {
$cgi->param('payinfo' => $cgi->param( $payby. '_payinfo' ) );
}
$cgi->param('paydate' => $cgi->param( $payby. '_month' ). '-'.
$cgi->param( $payby. '_year' )
);
$cgi->param('payname' => $cgi->param( $payby. '_payname' ) );
$cgi->param('paycvv' => defined $cgi->param( $payby. '_paycvv' )
? $cgi->param( $payby. '_paycvv' )
: ''
);
if ( $cgi->param('invoicing_list') ) {
$cgi->param('invoicing_list' => $cgi->param('invoicing_list'). ', POST')
if $cgi->param('invoicing_list_POST');
} else {
$cgi->param('invoicing_list' => 'POST' );
}
if ( $cgi->param('_password') ne $cgi->param('_password2') ) {
$error = $init_data->{msgcat}{passwords_dont_match}; #msgcat
$cgi->param('_password', '');
$cgi->param('_password2', '');
}
if ( $payby =~ /^(CARD|DCRD)$/ && $cgi->param('CARD_type') ) {
my $payinfo = $cgi->param('payinfo');
$payinfo =~ s/\D//g;
$payinfo =~ /^(\d{13,16})$/
or $error ||= $init_data->{msgcat}{invalid_card}; #. $self->payinfo;
$payinfo = $1;
validate($payinfo)
or $error ||= $init_data->{msgcat}{invalid_card}; #. $self->payinfo;
cardtype($payinfo) eq $cgi->param('CARD_type')
or $error ||= $init_data->{msgcat}{not_a}. $cgi->param('CARD_type');
}
unless ( $error ) {
my $rv = new_customer( {
map { $_ => scalar($cgi->param($_)) }
qw( last first ss company
address1 address2 city county state zip country
daytime night fax
ship_last ship_first ship_company
ship_address1 ship_address2 ship_city ship_county ship_state
ship_zip ship_country
ship_daytime ship_night ship_fax
payby payinfo paycvv paydate payname invoicing_list
referral_custnum promo_code reg_code
pkgpart username sec_phrase _password popnum refnum
agentnum
),
grep { /^snarf_/ } $cgi->param
} );
$error = $rv->{'error'};
}
#eslaf
if ( $error eq '_decline' ) {
print_decline();
} elsif ( $error ) {
#fudge the snarf info
no strict 'refs';
${$_} = $cgi->param($_) foreach grep { /^snarf_/ } $cgi->param;
print_form();
} else {
print_okay(
'pkgpart' => scalar($cgi->param('pkgpart')),
);
}
} else {
$error = '';
# $last = '';
# $first = '';
# $ss = '';
# $company = '';
# $address1 = '';
# $address2 = '';
# $city = '';
# $state = $init_data->{statedefault};
# $county = '';
# $country = $init_data->{countrydefault};
# $zip = '';
# $daytime = '';
# $night = '';
# $fax = '';
# $ship_last = '';
# $ship_first = '';
# $ship_company = '';
# $ship_address1 = '';
# $ship_address2 = '';
# $ship_city = '';
# $ship_state = $init_data->{statedefault};
# $ship_county = '';
# $ship_country = $init_data->{countrydefault};
# $ship_zip = '';
# $ship_daytime = '';
# $ship_night = '';
# $ship_fax = '';
# $invoicing_list = '';
# $payby = '';
# $payinfo = '';
# $paydate = '';
# $payname = '';
# $pkgpart = '';
# $username = '';
# $_password = '';
# $_password2 = '';
# $sec_phrase = '';
# $popnum = '';
# $referral_custnum = $cgi->param('ref') || '';
# $init_popstate = $cgi->param('init_popstate') || '';
# $refnum = $init_data->{'refnum'};
print_form;
}
sub print_form {
$error = "Error: $error" if $error;
my $r = {
$cgi->Vars,
%{$init_data},
'error' => $error,
};
$r->{referral_custnum} = $r->{'ref'};
#$cgi->delete('ref');
#$cgi->delete('init_popstate');
$r->{self_url} = $cgi->self_url;
print $cgi->header( '-expires' => 'now' ),
$signup_template->fill_in( PACKAGE => 'FS::SelfService::_signupcgi',
HASH => $r
);
}
sub print_decline {
print $cgi->header( '-expires' => 'now' ),
$decline_template->fill_in();
}
sub print_okay {
my %param = @_;
my $user_agent = new HTTP::BrowserDetect $ENV{HTTP_USER_AGENT};
$cgi->param('username') =~ /^(.+)$/
or die "fatal: invalid username got past FS::SelfService::new_customer";
my $username = $1;
$cgi->param('_password') =~ /^(.+)$/
or die "fatal: invalid password got past FS::SelfService::new_customer";
my $password = $1;
( $cgi->param('first'). ' '. $cgi->param('last') ) =~ /^(.*)$/
or die "fatal: invalid email_name got past FS::SelfService::new_customer";
my $email_name = $1; #global for template
#my %pop = ();
my %popnum2pop = ();
foreach ( @{ $init_data->{'svc_acct_pop'} } ) {
#push @{ $pop{ $_->{state} }->{ $_->{ac} } }, $_;
$popnum2pop{$_->{popnum}} = $_;
}
my( $ac, $exch, $loc);
my $pop = $popnum2pop{$cgi->param('popnum')};
#or die "fatal: invalid popnum got past FS::SelfService::new_customer";
if ( $pop ) {
( $ac, $exch, $loc ) = ( $pop->{'ac'}, $pop->{'exch'}, $pop->{'loc'} );
} else {
( $ac, $exch, $loc ) = ( '', '', ''); #presumably you're not using them.
}
#global for template
my $pkg = ( grep { $_->{'pkgpart'} eq $param{'pkgpart'} }
@{ $init_data->{'part_pkg'} }
)[0]->{'pkg'};
if ( $ieak_template && $user_agent->windows && $user_agent->ie ) {
#send an IEAK config
print $cgi->header('application/x-Internet-signup'),
$ieak_template->fill_in();
} else { #send a simple confirmation
print $cgi->header( '-expires' => 'now' ),
$success_template->fill_in( HASH => {
username => $username,
password => $password,
_password => $password,
email_name => $email_name,
ac => $ac,
exch => $exch,
loc => $loc,
pkg => $pkg,
});
}
}
sub success_default { #html to use if you don't specify a success file
<<'END';
<HTML><HEAD><TITLE>Signup successful</TITLE></HEAD>
<BODY BGCOLOR="#e8e8e8"><FONT SIZE=7>Signup successful</FONT><BR><BR>
Thanks for signing up!
<BR><BR>
Signup information for <%= $email_name %>:
<BR><BR>
Username: <%= $username %><BR>
Password: <%= $password %><BR>
Access number: (<%= $ac %>) / <%= $exch %> - <%= $local %><BR>
Package: <%= $pkg %><BR>
</BODY></HTML>
END
}
sub decline_default { #html to use if there is a decline
<<'END';
<HTML><HEAD><TITLE>Processing error</TITLE></HEAD>
<BODY BGCOLOR="#e8e8e8"><FONT SIZE=7>Processing error</FONT><BR><BR>
There has been an error processing your account. Please contact customer
support.
</BODY></HTML>
END
}
# subs for the templates...
package FS::SelfService::_signupcgi;
use HTML::Entities;
use FS::SelfService qw(regionselector expselect popselector);
--- NEW FILE: success.html ---
<HTML><HEAD><TITLE>Signup successful</TITLE></HEAD>
<BODY BGCOLOR="#e8e8e8"><FONT SIZE=7>Signup successful</FONT><BR><BR>
Thanks for signing up!
<BR><BR>
Signup information for <%= $email_name %>:
<BR><BR>
Username: <%= $username %><BR>
Password: <%= $password %><BR>
Access number: (<%= $ac %>) / <%= $exch %> - <%= $local %><BR>
Package: <%= $pkg %><BR>
</BODY></HTML>
Index: agent.cgi
===================================================================
RCS file: /home/cvs/cvsroot/freeside/fs_selfservice/FS-SelfService/cgi/agent.cgi,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- agent.cgi 17 Oct 2004 14:01:47 -0000 1.7
+++ agent.cgi 12 Mar 2005 14:31:49 -0000 1.8
@@ -113,7 +113,7 @@
my $error = '';
- #some false laziness w/signup.cgi
+ #false laziness w/signup.cgi, identical except for agentnum vs session_id
my $payby = $cgi->param('payby');
if ( $payby eq 'CHEK' || $payby eq 'DCHK' ) {
#$payinfo = join('@', map { $cgi->param( $payby. "_payinfo$_" ) } (1,2) );
@@ -161,17 +161,25 @@
unless ( $error ) {
my $rv = new_customer ( {
'session_id' => $session_id,
- map { $_ => $cgi->param($_) }
+ map { $_ => scalar($cgi->param($_)) }
qw( last first ss company
address1 address2 city county state zip country
daytime night fax
+
+ ship_last ship_first ship_company
+ ship_address1 ship_address2 ship_city ship_county ship_state
+ ship_zip ship_country
+ ship_daytime ship_night ship_fax
+
payby payinfo paycvv paydate payname invoicing_list
+ referral_custnum promo_code reg_code
pkgpart username sec_phrase _password popnum refnum
),
grep { /^snarf_/ } $cgi->param
} );
$error = $rv->{'error'};
}
+ #eslaf
if ( $error ) {
$action = 'signup';
@@ -409,7 +417,8 @@
#warn join(' / ', map { "$_=>".$fill_in->{$_} } keys %$fill_in). "\n";
$cgi->delete_all();
- $fill_in->{'selfurl'} = $cgi->self_url;
+ $fill_in->{'selfurl'} = $cgi->self_url; #OLD
+ $fill_in->{'self_url'} = $cgi->self_url;
$fill_in->{'cgi'} = \$cgi;
my $template = new Text::Template( TYPE => 'FILE',
--- NEW FILE: regcode.html ---
<HTML><HEAD><TITLE>ISP Signup</TITLE></HEAD>
<BODY BGCOLOR="#e8e8e8"><FONT SIZE=7>ISP Signup - registration code</FONT><BR><BR>
<SCRIPT>
function gotoURL(object) {
window.location.href = 'signup.cgi?reg_code=' + object.reg_code.value;
}
</SCRIPT>
<FORM>
Enter registration code <INPUT TYPE="text" NAME="reg_code">
<INPUT type="submit" VALUE="Signup" onClick="gotoURL(this.form)">
</FORM>
</BODY>
</HTML>
Index: signup.html
===================================================================
RCS file: /home/cvs/cvsroot/freeside/fs_selfservice/FS-SelfService/cgi/signup.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- signup.html 5 Sep 2004 22:42:13 -0000 1.2
+++ signup.html 12 Mar 2005 14:31:50 -0000 1.3
@@ -14,10 +14,10 @@
//--></script>
<FONT SIZE=7><%= $agent || 'ISP' %> Signup form</FONT><BR><BR>
<FONT SIZE="+1" COLOR="#ff0000"><%= $error %></FONT>
-<FORM NAME="OneTrueForm" ACTION="<%= $selfurl %>" METHOD=POST onSubmit="document.OneTrueForm.signup.disabled=true">
+<FORM NAME="OneTrueForm" ACTION="<%= $self_url %>" METHOD=POST onSubmit="document.OneTrueForm.signup.disabled=true">
<INPUT TYPE="hidden" NAME="session" VALUE="<%= $session_id %>">
<INPUT TYPE="hidden" NAME="action" VALUE="process_signup">
-<INPUT TYPE="hidden" NAME="ref" VALUE="<%= $referral_custnum %>">
+<INPUT TYPE="hidden" NAME="referral_custnum" VALUE="<%= $referral_custnum %>">
<INPUT TYPE="hidden" NAME="ss" VALUE="">
Where did you hear about our service? <SELECT NAME="refnum">
<%=
@@ -175,11 +175,14 @@
</TR></TABLE><font color="#ff0000">*</font> required fields for each billing type
<BR><BR>First package
+<INPUT TYPE="hidden" NAME="promo_code" VALUE="<%= $promo_code %>">
+<INPUT TYPE="hidden" NAME="reg_code" VALUE="<%= $reg_code %>">
<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR>
- <TD COLSPAN=2><SELECT NAME="pkgpart"><OPTION VALUE="">(none)
+ <TD COLSPAN=2><SELECT NAME="pkgpart">
<%=
+ $OUT .= '<OPTION VALUE="">(none)' unless scalar(@part_pkg ) ==1;
foreach my $part_pkg ( @part_pkg ) {
$OUT .= '<OPTION VALUE="'. $part_pkg->{'pkgpart'}. '"';
$OUT .= ' SELECTED' if $pkgpart && $part_pkg->{'pkgpart'} == $pkgpart;
--- NEW FILE: decline.html ---
<HTML><HEAD><TITLE>Processing error</TITLE></HEAD>
<BODY BGCOLOR="#e8e8e8"><FONT SIZE=7>Processing error</FONT><BR><BR>
There has been an error processing your account. Please contact customer
support.
</BODY></HTML>
--- NEW FILE: stateselect.html ---
<HTML><HEAD><TITLE>ISP Signup</TITLE></HEAD>
<BODY BGCOLOR="#e8e8e8"><FONT SIZE=7>ISP Signup - state selection</FONT><BR><BR>
<SCRIPT>
function gotoURL(object) {
window.location.href = object.options[object.selectedIndex].value;
}
</SCRIPT>
<FORM>
Select your state from the map or dropdown:
<MAP NAME=usmap>
<area shape=poly COORDS="264,157,286,155,292,193,276,195,270,199,264,157" href="signup.cgi?init_popstate=AL">
<area shape=poly COORDS="28,197,46,185,72,199,72,241,88,243,102,261,92,263,70,241,42,243,28,257,12,259,34,243,20,233,16,223,34,215,22,207,30,205,28,197" href="../states/Alaska.html">
<area shape=poly COORDS="70,137,106,137,100,189,84,187,60,173,70,133,70,137,70,137" href="signup.cgi?init_popstate=AZ">
<area shape=poly COORDS="250,153,242,179,220,177,218,171,216,145,252,143,250,155,250,153" href="signup.cgi?init_popstate=AR">
<area shape=poly COORDS="10,79,38,81,30,109,62,151,56,173,40,169,20,145,4,101,10,75,26,79,10,79,10,79" href="signup.cgi?init_popstate=CA">
<area shape=poly COORDS="108,103,158,107,154,141,104,137,110,101,128,103,108,103" href="signup.cgi?init_popstate=CO">
<area shape=poly COORDS="374,107,405,105,405,123,372,125,374,107" href="signup.cgi?init_popstate=CT">
<area shape=poly COORDS="370,143,402,145,405,157,362,157,370,143" href="signup.cgi?init_popstate=DE">
<area shape=poly COORDS="275,193,325,187,327,197,341,219,341,233,335,237,317,215,315,205,307,195,293,203,275,193" href="signup.cgi?init_popstate=FL">
<area shape=poly COORDS="297,153,283,155,297,191,321,189,321,169,297,153" href="signup.cgi?init_popstate=GA">
<area shape=poly COORDS="98,233,142,263,156,251,162,239,164,229,136,231,94,221,100,235,98,233" href="signup.cgi?init_popstate=HI">
<area shape=poly COORDS="68,21,76,21,72,35,80,47,80,55,84,65,100,69,94,93,56,83,66,51,70,19,68,21" href="signup.cgi?init_popstate=ID">
<area shape=poly COORDS="242,91,258,89,266,123,256,139,234,109,248,87,242,91" href="signup.cgi?init_popstate=IL">
<area shape=poly COORDS="261,95,265,123,265,131,285,117,277,91,261,95" href="signup.cgi?init_popstate=IN">
<area shape=poly COORDS="198,87,206,111,232,109,240,99,240,91,232,79,198,87" href="signup.cgi?init_popstate=IA">
<area shape=poly COORDS="158,111,158,135,214,139,214,127,208,113,158,111" href="signup.cgi?init_popstate=KS">
<area shape=poly COORDS="263,133,275,129,289,115,303,121,307,129,299,135,251,141,269,131,263,133" href="signup.cgi?init_popstate=KY">
<area shape=poly COORDS="222,179,246,179,244,197,258,193,262,213,226,209,224,177,222,179" href="signup.cgi?init_popstate=LA">
<area shape=poly COORDS="363,37,373,59,373,47,387,31,377,9,365,15,363,37" href="signup.cgi?init_popstate=ME">
<area shape=poly COORDS="376,159,405,159,405,175,374,177,376,159" href="signup.cgi?init_popstate=MD">
<area shape=poly COORDS="378,74,380,88,404,88,404,72,378,74" href="signup.cgi?init_popstate=MA">
<area shape=poly COORDS="265,73,269,83,265,93,293,91,295,71,281,53,271,53,267,69,265,73,265,73" href="signup.cgi?init_popstate=MI">
<area shape=poly COORDS="194,31,222,33,242,35,224,51,222,63,222,73,234,79,196,85,194,31" href="signup.cgi?init_popstate=MN">
<area shape=poly COORDS="265,159,271,199,257,201,259,195,241,197,251,155,265,159" href="signup.cgi?init_popstate=MS">
<area shape=poly COORDS="206,113,234,111,256,139,248,147,214,145,208,111,206,113" href="signup.cgi?init_popstate=MO">
<area shape=poly COORDS="78,23,148,31,146,67,84,63,78,35,80,19,78,23" href="signup.cgi?init_popstate=MT">
<area shape=poly COORDS="146,85,148,103,158,105,164,109,206,109,198,85,144,87,146,85" href="signup.cgi?init_popstate=NE">
<area shape=poly COORDS="40,83,76,87,64,151,32,109,40,83,40,83" href="signup.cgi?init_popstate=NV">
<area shape=poly COORDS="298,11,330,9,330,25,298,25,298,11" href="signup.cgi?init_popstate=NH">
<area shape=poly COORDS="372,127,404,125,405,141,368,139,376,125,372,127" href="signup.cgi?init_popstate=NJ">
<area shape=poly COORDS="106,137,100,191,122,187,148,187,150,139,106,137,106,137" href="signup.cgi?init_popstate=NM">
<area shape=poly COORDS="313,79,331,63,337,45,349,45,359,65,357,79,345,65,315,77,313,79,313,79" href="signup.cgi?init_popstate=NY">
<area shape=poly COORDS="309,137,295,151,319,149,337,153,357,131,351,129,309,137,309,137" href="signup.cgi?init_popstate=NC">
<area shape=poly COORDS="146,31,148,57,198,57,190,31,146,31,146,31" href="signup.cgi?init_popstate=ND">
<area shape=poly COORDS="281,93,285,113,299,121,311,101,309,85,299,93,281,93,281,93" href="signup.cgi?init_popstate=OH">
<area shape=poly COORDS="148,145,174,145,174,163,218,171,216,143,150,139,150,145,156,143,148,145,148,145" href="signup.cgi?init_popstate=OK">
<area shape=poly COORDS="20,41,8,73,16,77,22,77,28,77,36,79,42,81,48,83,56,83,66,49,20,41,20,41" href="signup.cgi?init_popstate=OR">
<area shape=poly COORDS="309,83,345,71,351,93,313,105,309,83,309,83" href="signup.cgi?init_popstate=PA">
<area shape=poly COORDS="376,93,405,93,405,107,376,105,376,93" href="signup.cgi?init_popstate=RI">
<area shape=poly COORDS="301,155,321,149,337,155,325,175,301,157,301,155,301,155" href="signup.cgi?init_popstate=SC">
<area shape=poly COORDS="146,59,198,61,198,83,146,83,148,57,146,59,146,59" href="signup.cgi?init_popstate=SD">
<area shape=poly COORDS="255,145,251,157,297,153,311,133,255,145,255,145" href="signup.cgi?init_popstate=TN">
<area shape=poly COORDS="150,145,172,145,174,167,198,173,218,173,228,207,204,221,198,231,202,247,180,241,154,207,146,219,120,189,154,189,152,145,150,145,150,145" href="signup.cgi?init_popstate=TX">
<area shape=poly COORDS="78,89,96,91,96,103,110,103,106,135,70,133,78,89,78,89" href="signup.cgi?init_popstate=UT">
<area shape=poly COORDS="298,29,332,29,332,47,294,45,298,29" href="signup.cgi?init_popstate=VT">
<area shape=poly COORDS="307,127,297,137,351,127,349,113,341,111,341,105,329,107,315,131,307,127,307,127" href="signup.cgi?init_popstate=VA">
<area shape=poly COORDS="32,13,68,19,64,47,20,39,20,13,30,19,32,13,32,13" href="signup.cgi?init_popstate=WA">
<area shape=poly COORDS="303,119,313,129,329,103,311,105,299,121,313,127,303,119,303,119" href="signup.cgi?init_popstate=WV">
<area shape=poly COORDS="228,51,256,55,254,89,238,89,234,77,224,71,230,49,236,53,228,51,228,51" href="signup.cgi?init_popstate=WI">
<area shape=poly COORDS="146,71,144,103,96,99,102,63,148,69,146,71,146,71" href="signup.cgi?init_popstate=WY">
</MAP>
<IMG SRC="map.gif" usemap=#usmap WIDTH=405 HEIGHT=270 border=0><BR>
<SELECT NAME="init_popstate" onChange="gotoURL(this.form.init_popstate)">
<OPTION VALUE="stateselect.html"></OPTION>
<OPTION VALUE="signup.cgi?init_popstate=AL">Alabama</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=AK">Alaska</OPTION>
<!--<OPTION VALUE="signup.cgi?init_popstate=AS">American Samoa</OPTION>-->
<OPTION VALUE="signup.cgi?init_popstate=AZ">Arizona</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=AR">Arkansas</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=CA">California</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=CO">Colorado</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=CT">Connecticut</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=DE">Delaware</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=DC">District of Columbia</OPTION>
<!--<OPTION VALUE="signup.cgi?init_popstate=FM">Federated States of Micronesia</OPTION>-->
<OPTION VALUE="signup.cgi?init_popstate=FL">Florida</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=GA">Georgia</OPTION>
<!--<OPTION VALUE="signup.cgi?init_popstate=GU">Guam</OPTION>-->
<OPTION VALUE="signup.cgi?init_popstate=HI">Hawaii</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=ID">Idaho</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=IL">Illinois</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=IN">Indiana</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=IA">Iowa</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=KS">Kansas</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=KY">Kentucky</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=LA">Louisiana</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=ME">Maine</OPTION>
<!--<OPTION VALUE="signup.cgi?init_popstate=MH">Marshall Islands</OPTION>-->
<OPTION VALUE="signup.cgi?init_popstate=MD">Maryland</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=MA">Massachusetts</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=MI">Michigan</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=MN">Minnesota</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=MS">Mississippi</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=MO">Missouri</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=MT">Montana</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=NE">Nebraska</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=NV">Nevada</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=NH">New Hampshire</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=NJ">New Jersey</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=NM">New Mexico</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=NY">New York</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=NC">North Carolina</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=ND">North Dakota</OPTION>
<!--<OPTION VALUE="signup.cgi?init_popstate=MP">Northern Mariana Islands</OPTION>-->
<OPTION VALUE="signup.cgi?init_popstate=OH">Ohio</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=OK">Oklahoma</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=OR">Oregon</OPTION>
<!--<OPTION VALUE="signup.cgi?init_popstate=PW">Palau</OPTION>-->
<OPTION VALUE="signup.cgi?init_popstate=PA">Pennsylvania</OPTION>
<!--<OPTION VALUE="signup.cgi?init_popstate=PR">Puerto Rico</OPTION>-->
<OPTION VALUE="signup.cgi?init_popstate=RI">Rhode Island</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=SC">South Carolina</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=SD">South Dakota</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=TN">Tennessee</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=TX">Texas</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=UT">Utah</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=VT">Vermont</OPTION>
<!--<OPTION VALUE="signup.cgi?init_popstate=VI">Virgin Islands</OPTION>-->
<OPTION VALUE="signup.cgi?init_popstate=VA">Virginia</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=WA">Washington</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=WV">West Virginia</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=WI">Wisconsin</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=WY">Wyoming</OPTION>
<!--<OPTION VALUE="signup.cgi?init_popstate=AE">Armed Forces Africa</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=AA">Armed Forces Americas</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=AE">Armed Forces Canada</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=AE">Armed Forces Europe</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=AE">Armed Forces Middle East</OPTION>
<OPTION VALUE="signup.cgi?init_popstate=AP">Armed Forces Pacific</OPTION>
-->
</SELECT>
</FORM>
</BODY>
</HTML>
--- NEW FILE: promocode.html ---
<HTML><HEAD><TITLE>ISP Signup</TITLE></HEAD>
<BODY BGCOLOR="#e8e8e8"><FONT SIZE=7>ISP Signup - promotional code</FONT><BR><BR>
<SCRIPT>
function gotoURL(object) {
window.location.href = 'signup.cgi?promo_code=' + object.promo_code.value;
}
</SCRIPT>
<FORM>
Enter promotional code <INPUT TYPE="text" NAME="promo_code">
<INPUT type="submit" VALUE="Signup" onClick="gotoURL(this.form)">
</FORM>
</BODY>
</HTML>
--- NEW FILE: signup-billaddress.html ---
<HTML><HEAD><TITLE>ISP Signup form</TITLE></HEAD>
<BODY BGCOLOR="#e8e8e8" onUnload="myclose()">
<script language="JavaScript"><!--
var mywindow = -1;
function myopen(filename,windowname,properties) {
myclose();
mywindow = window.open(filename,windowname,properties);
}
function myclose() {
if ( mywindow != -1 )
mywindow.close();
mywindow = -1
}
//--></script>
<FONT SIZE=7>ISP Signup form</FONT><BR><BR>
<FONT SIZE="+1" COLOR="#ff0000"><%= $error %></FONT>
<FORM NAME="OneTrueForm" ACTION="<%= $self_url %>" METHOD=POST onSubmit="document.OneTrueForm.signup.disabled=true">
<INPUT TYPE="hidden" NAME="magic" VALUE="process">
<INPUT TYPE="hidden" NAME="ref" VALUE="<%= $referral_custnum %>">
<INPUT TYPE="hidden" NAME="ss" VALUE="">
Where did you hear about our service? <SELECT NAME="refnum">
<%=
$OUT .= '<OPTION VALUE="">' unless $refnum;
foreach my $part_referral ( @{$init_data->{'part_referral'}} ) {
$OUT .= '<OPTION VALUE="'. $part_referral->{'refnum'}. '"';
$OUT .= ' SELECTED' if $part_referral->{'refnum'} eq $refnum;
$OUT .= '>'. $part_referral->{'referral'};
}
%>
</SELECT><BR><BR>
Billing Address (where credit card statement is sent)
<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Exact name on card<BR>(last, first)</TH>
<TD COLSPAN=5><INPUT TYPE="text" NAME="last" VALUE="<%= $last %>" onChange="changed(this)">,
<INPUT TYPE="text" NAME="first" VALUE="<%= $first %>" onChange="changed(this)"></TD>
</TR>
<TR>
<TD ALIGN="right">Company</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="company" SIZE=70 VALUE="<%= $company %>" onChange="changed(this)"></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Address</TH>
<TD COLSPAN=5><INPUT TYPE="text" NAME="address1" SIZE=70 VALUE="<%= $address1 %>" onChange="changed(this)"></TD>
</TR>
<TR>
<TD ALIGN="right"> </TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="address2" SIZE=70 VALUE="<%= $address2 %>" onChange="changed(this)"></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>City</TH>
<TD><INPUT TYPE="text" NAME="city" VALUE="<%= $city %>" onChange="changed(this)"></TD>
<TH ALIGN="right"><font color="#ff0000">*</font>State/Country</TH>
<TD>
<%=
($county_html, $state_html, $country_html) =
regionselector( $county, $state, $country, '', 'changed(this)' );
"$county_html $state_html";
%>
</TD>
<TH><font color="#ff0000">*</font>Zip</TH>
<TD><INPUT TYPE="text" NAME="zip" SIZE=10 VALUE="<%= $zip %>" onChange="changed(this)"></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Country</TH>
<TD><%= $country_html %></TD>
<TR>
<TD ALIGN="right">Day Phone</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="daytime" VALUE="<%= $daytime %>" SIZE=18 onChange="changed(this)"></TD>
</TR>
<TR>
<TD ALIGN="right">Night Phone</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="night" VALUE="<%= $night %>" SIZE=18 onChange="changed(this)"></TD>
</TR>
<TR>
<TD ALIGN="right">Fax</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="fax" VALUE="<%= $fax %>" SIZE=12 onChange="changed(this)"></TD>
</TR>
</TABLE>
<SCRIPT>
function changed(what) {
what.form.same.checked = false;
}
function samechanged(what) {
if ( what.checked ) {
<%= foreach (qw(
last first company address1 address2 city zip daytime night fax
)) {
$OUT .= "what.form.ship_$_.value = what.form.$_.value;\n";
}
%>
what.form.ship_country.selectedIndex = what.form.country.selectedIndex;
ship_country_changed(what.form.ship_country);
what.form.ship_state.selectedIndex = what.form.state.selectedIndex;
ship_state_changed(what.form.ship_state);
what.form.ship_county.selectedIndex = what.form.county.selectedIndex;
}
}
</SCRIPT>
<BR><BR>
Service Address
(<INPUT TYPE="checkbox" NAME="same" VALUE="Y" onClick="samechanged(this)" <%= $same eq 'Y' ? 'CHECKED' : '' %>>same as billing address)<BR>
<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Contact name<BR>(last, first)</TH>
<TD COLSPAN=5><INPUT TYPE="text" NAME="ship_last" VALUE="<%= $ship_last %>" onChange="changed(this)">,
<INPUT TYPE="text" NAME="ship_first" VALUE="<%= $ship_first %>" onChange="changed(this)"></TD>
</TR>
<TR>
<TD ALIGN="right">Company</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="ship_company" SIZE=70 VALUE="<%= $ship_company %>" onChange="changed(this)"></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Address</TH>
<TD COLSPAN=5><INPUT TYPE="text" NAME="ship_address1" SIZE=70 VALUE="<%= $ship_address1 %>" onChange="changed(this)"></TD>
</TR>
<TR>
<TD ALIGN="right"> </TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="ship_address2" SIZE=70 VALUE="<%= $ship_address2 %>" onChange="changed(this)"></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>City</TH>
<TD><INPUT TYPE="text" NAME="ship_city" VALUE="<%= $ship_city %>" onChange="changed(this)"></TD>
<TH ALIGN="right"><font color="#ff0000">*</font>State/Country</TH>
<TD>
<%=
($ship_county_html, $ship_state_html, $ship_country_html) =
regionselector( $ship_county,
$ship_state,
$ship_country,
'ship_',
'changed(this)',
);
"$ship_county_html $ship_state_html";
%>
</TD>
<TH><font color="#ff0000">*</font>Zip</TH>
<TD><INPUT TYPE="text" NAME="ship_zip" SIZE=10 VALUE="<%= $ship_zip %>" onChange="changed(this)"></TD>
</TR>
<TR>
<TH ALIGN="right"><font color="#ff0000">*</font>Country</TH>
<TD><%= $ship_country_html %></TD>
<TR>
<TD ALIGN="right">Day Phone</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="ship_daytime" VALUE="<%= $ship_daytime %>" SIZE=18 onChange="changed(this)"></TD>
</TR>
<TR>
<TD ALIGN="right">Night Phone</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="ship_night" VALUE="<%= $ship_night %>" SIZE=18 onChange="changed(this)"></TD>
</TR>
<TR>
<TD ALIGN="right">Fax</TD>
<TD COLSPAN=5><INPUT TYPE="text" NAME="ship_fax" VALUE="<%= $ship_fax %>" SIZE=12 onChange="changed(this)"></TD>
</TR>
</TABLE>
<font color="#ff0000">*</font> required fields<BR>
<BR>Billing information<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR><TD>
<%=
$OUT .= '<INPUT TYPE="checkbox" NAME="invoicing_list_POST" VALUE="POST"';
my @invoicing_list = split(', ', $invoicing_list );
$OUT .= ' CHECKED'
if ! @invoicing_list || grep { $_ eq 'POST' } @invoicing_list;
$OUT .= '>';
%>
Postal mail invoice
</TD></TR>
<TR><TD>Email invoice <INPUT TYPE="text" NAME="invoicing_list" VALUE="<%= join(', ', grep { $_ ne 'POST' } split(', ', $invoicing_list ) ) %>">
</TD></TR>
<%= scalar(@payby) > 1 ? '<TR><TD>Billing type</TD></TR>' : '' %>
</TABLE>
<TABLE BGCOLOR="#c0c0c0" BORDER=1 WIDTH="100%">
<TR>
<%=
my $cardselect = '<SELECT NAME="CARD_type"><OPTION></OPTION>';
my %types = (
'VISA' => 'VISA card',
'MasterCard' => 'MasterCard',
'Discover' => 'Discover card',
'American Express' => 'American Express card',
);
foreach ( keys %types ) {
$selected = $cgi->param('CARD_type') eq $types{$_} ? 'SELECTED' : '';
$cardselect .= qq!<OPTION $selected VALUE="$types{$_}">$_</OPTION>!;
}
$cardselect .= '</SELECT>';
my %payby = (
'CARD' => qq!Credit card<BR><font color="#ff0000">*</font>$cardselect<INPUT TYPE="text" NAME="CARD_payinfo" VALUE="" MAXLENGTH=19><BR><font color="#ff0000">*</font>Exp !. expselect("CARD"), #. qq!<BR><font color="#ff0000">*</font>Name on card<BR><INPUT TYPE="text" NAME="CARD_payname" VALUE="">!,
'DCRD' => qq!Credit card<BR><font color="#ff0000">*</font>$cardselect<INPUT TYPE="text" NAME="DCRD_payinfo" VALUE="" MAXLENGTH=19><BR><font color="#ff0000">*</font>Exp !. expselect("DCRD"), #. qq!<BR><font color="#ff0000">*</font>Name on card<BR><INPUT TYPE="text" NAME="DCRD_payname" VALUE="">!,
'CHEK' => qq!Electronic check<BR>${r}Account number <INPUT TYPE="text" NAME="CHEK_payinfo1" VALUE="" MAXLENGTH=10><BR>${r}ABA/Routing code <INPUT TYPE="text" NAME="CHEK_payinfo2" VALUE="" SIZE=10 MAXLENGTH=9><INPUT TYPE="hidden" NAME="CHEK_month" VALUE="12"><INPUT TYPE="hidden" NAME="CHEK_year" VALUE="2037"><BR>${r}Bank name <INPUT TYPE="text" NAME="CHEK_payname" VALUE="">!,
'DCHK' => qq!Electronic check<BR>${r}Account number <INPUT TYPE="text" NAME="DCHK_payinfo1" VALUE="" MAXLENGTH=10><BR>${r}ABA/Routing code <INPUT TYPE="text" NAME="DCHK_payinfo2" VALUE="" SIZE=10 MAXLENGTH=9><INPUT TYPE="hidden" NAME="DCHK_month" VALUE="12"><INPUT TYPE="hidden" NAME="DCHK_year" VALUE="2037"><BR>${r}Bank name <INPUT TYPE="text" NAME="DCHK_payname" VALUE="">!,
'LECB' => qq!Phone bill billing<BR>${r}Phone number <INPUT TYPE="text" BANE="LECB_payinfo" VALUE="" MAXLENGTH=15 SIZE=16><INPUT TYPE="hidden" NAME="LECB_month" VALUE="12"><INPUT TYPE="hidden" NAME="LECB_year" VALUE="2037"><INPUT TYPE="hidden" NAME="LECB_payname" VALUE="">!,
'BILL' => qq!Billing<BR>P.O. <INPUT TYPE="text" NAME="BILL_payinfo" VALUE=""><BR><font color="#ff0000">*</font>Exp !. expselect("BILL", "12-2037"). qq!<BR><font color="#ff0000">*</font>Attention<BR><INPUT TYPE="text" NAME="BILL_payname" VALUE="Accounts Payable">!,
'COMP' => qq!Complimentary<BR><font color="#ff0000">*</font>Approved by<INPUT TYPE="text" NAME="COMP_payinfo" VALUE=""><BR><font color="#ff0000">*</font>Exp !. expselect("COMP"),
'PREPAY' => qq!Prepaid card<BR><font color="#ff0000">*</font><INPUT TYPE="text" NAME="PREPAY_payinfo" VALUE="" MAXLENGTH=80>!,
);
if ( $init_data->{'cvv_enabled'} ) {
foreach my $payby ( grep { exists $payby{$_} } qw(CARD DCRD) ) { #1.4/1.5
$payby{$payby} .= qq!<BR>CVV2 (<A HREF="javascript:myopen('cvv2.html','cvv2','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=480,height=288')">help</A>) <INPUT TYPE="text" NAME=${payby}_paycvv VALUE="" SIZE=4 MAXLENGTH=4>!;
}
}
my( $account, $aba ) = split('@', $payinfo);
my %paybychecked = (
'CARD' => qq!Credit card<BR><font color="#ff0000">*</font>$cardselect<INPUT TYPE="text" NAME="CARD_payinfo" VALUE="$payinfo" MAXLENGTH=19><BR><font color="#ff0000">*</font>Exp !. expselect("CARD", $paydate), #. qq!<BR><font color="#ff0000">*</font>Name on card<BR><INPUT TYPE="text" NAME="CARD_payname" VALUE="$payname">!,
'DCRD' => qq!Credit card<BR><font color="#ff0000">*</font>$cardselect<INPUT TYPE="text" NAME="DCRD_payinfo" VALUE="$payinfo" MAXLENGTH=19><BR><font color="#ff0000">*</font>Exp !. expselect("DCRD", $paydate), #. qq!<BR><font color="#ff0000">*</font>Name on card<BR><INPUT TYPE="text" NAME="DCRD_payname" VALUE="$payname">!,
'CHEK' => qq!Electronic check<BR>${r}Account number <INPUT TYPE="text" NAME="CHEK_payinfo1" VALUE="$account" MAXLENGTH=10><BR>${r}ABA/Routing code <INPUT TYPE="text" NAME="CHEK_payinfo2" VALUE="$aba" SIZE=10 MAXLENGTH=9><INPUT TYPE="hidden" NAME="CHEK_month" VALUE="12"><INPUT TYPE="hidden" NAME="CHEK_year" VALUE="2037"><BR>${r}Bank name <INPUT TYPE="text" NAME="CHEK_payname" VALUE="$payname">!,
'DCHK' => qq!Electronic check<BR>${r}Account number <INPUT TYPE="text" NAME="DCHK_payinfo1" VALUE="$account" MAXLENGTH=10><BR>${r}ABA/Routing code <INPUT TYPE="text" NAME="DCHK_payinfo2" VALUE="$aba" SIZE=10 MAXLENGTH=9><INPUT TYPE="hidden" NAME="DCHK_month" VALUE="12"><INPUT TYPE="hidden" NAME="DCHK_year" VALUE="2037"><BR>${r}Bank name <INPUT TYPE="text" NAME="DCHK_payname" VALUE="$payname">!,
'LECB' => qq!Phone bill billing<BR>${r}Phone number <INPUT TYPE="text" BANE="LECB_payinfo" VALUE="$payinfo" MAXLENGTH=15 SIZE=16><INPUT TYPE="hidden" NAME="LECB_month" VALUE="12"><INPUT TYPE="hidden" NAME="LECB_year" VALUE="2037"><INPUT TYPE="hidden" NAME="LECB_payname" VALUE="">!,
'BILL' => qq!Billing<BR>P.O. <INPUT TYPE="text" NAME="BILL_payinfo" VALUE="$payinfo"><BR><font color="#ff0000">*</font>Exp !. expselect("BILL", $paydate). qq!<BR><font color="#ff0000">*</font>Attention<BR><INPUT TYPE="text" NAME="BILL_payname" VALUE="$payname">!,
'COMP' => qq!Complimentary<BR><font color="#ff0000">*</font>Approved by<INPUT TYPE="text" NAME="COMP_payinfo" VALUE="$payinfo"><BR><font color="#ff0000">*</font>Exp !. expselect("COMP", $paydate),
'PREPAY' => qq!Prepaid card<BR><font color="#ff0000">*</font><INPUT TYPE="text" NAME="PREPAY_payinfo" VALUE="$payinfo" MAXLENGTH=80>!,
);
if ( $init_data->{'cvv_enabled'} ) {
foreach my $payby ( grep { exists $payby{$_} } qw(CARD DCRD) ) { #1.4/1.5
$paybychecked{$payby} .= qq!<BR>CVV2 (<A HREF="javascript:myopen('cvv2.html','cvv2','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=480,height=288')">help</A>) <INPUT TYPE="text" NAME=${payby}_paycvv VALUE="$paycvv" SIZE=4 MAXLENGTH=4>!;
}
}
for (@payby) {
if ( scalar(@payby) == 1) {
$OUT .= '<TD VALIGN=TOP>'.
qq!<INPUT TYPE="hidden" NAME="payby" VALUE="$_">!.
"$paybychecked{$_}</TD>";
} else {
$OUT .= qq!<TD VALIGN=TOP><INPUT TYPE="radio" NAME="payby" VALUE="$_"!;
if ($payby eq $_) {
$OUT .= qq! CHECKED> $paybychecked{$_}</TD>!;
} else {
$OUT .= qq!> $payby{$_}</TD>!;
}
}
}
%>
</TR></TABLE><font color="#ff0000">*</font> required fields for each billing type
<BR><BR>First package
<INPUT TYPE="hidden" NAME="promo_code" VALUE="<%= $cgi->param('promo_code') %>">
<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR>
<TD COLSPAN=2><SELECT NAME="pkgpart">
<%=
$OUT .= '<OPTION VALUE="">(none)' unless scalar(@$packages) == 1;
foreach my $package ( @{$packages} ) {
$OUT .= '<OPTION VALUE="'. $package->{'pkgpart'}. '"';
$OUT .= ' SELECTED'
if ( $pkgpart && $package->{'pkgpart'} == $pkgpart )
|| scalar(@$packages) == 1;
$OUT .= '>'. $package->{'pkg'};
}
%>
</SELECT></TD>
</TR>
<TR>
<TD ALIGN="right">Username</TD>
<TD><INPUT TYPE="text" NAME="username" VALUE="<%= $username %>"></TD>
</TR>
<TR>
<TD ALIGN="right">Password</TD>
<TD><INPUT TYPE="password" NAME="_password" VALUE="<%= $password %>"></TD>
</TR>
<TR>
<TD ALIGN="right">Re-enter Password</TD>
<TD><INPUT TYPE="password" NAME="_password2" VALUE="<%= $password2 %>"></TD>
</TR>
<%=
if ( $init_data->{'security_phrase'} ) {
$OUT .= <<ENDOUT;
<TR>
<TD ALIGN="right">Security Phrase</TD>
<TD><INPUT TYPE="text" NAME="sec_phrase" VALUE="$sec_phrase">
</TD>
</TR>
ENDOUT
} else {
$OUT .= '<INPUT TYPE="hidden" NAME="sec_phrase" VALUE="">';
}
%>
<%=
if ( scalar(@$pops) ) {
$OUT .= '<TR><TD ALIGN="right">Access number</TD><TD>'.
popselector($popnum). '</TD></TR>';
} else {
$OUT .= popselector($popnum);
}
%>
</TABLE>
<BR><BR><INPUT TYPE="submit" NAME="signup" VALUE="Signup">
</FORM></BODY></HTML>
More information about the freeside-commits
mailing list