#!/usr/bin/perl -Tw

use CGI qw/:standard/;

BEGIN {
  use CGI::Carp qw(carpout);
  open(LOG, ">>/home/ericll75/www/steepturns.com/badcams/newcam.log") or
       die("Unable to open newcam.log: $!\n");
  carpout(LOG);
}
use CGI::Carp qw(fatalsToBrowser);
$CGI::DISABLE_UPLOADS = 1;                    # Disable uploads
$CGI::POST_MAX        = 1024;           # limit posts to 1K max


my $FileErr     = substr(param('FileErr'),0,5);

my $FirstName   = &unquote(param('FirstName'));
my $LastName    = &unquote(param('LastName'));
my $UserEmail   = &unquote(param('UserEmail'));
my $UserGender  = &unquote(param('UserGender'));
my $BdayMonth   = &unquote(param('BdayMonth'));
my $BdayDate    = &unquote(param('BdayDate'));
my $BdayYear    = &unquote(param('BdayYear'));
my $SexOrient   = &unquote(param('SexOrient'));
my $UserState   = &unquote(param('UserState'));
my $UserCountry = &unquote(param('UserCountry'));

my $SiteName    = &unquote(param('SiteName'));
my $SiteDesc    = &unquote(param('SiteDesc'));
my $SiteURL     = &unquote(param('SiteURL'));
   if ($SiteURL eq '') { $SiteURL="http://"; }
my $CamURL      = &unquote(param('CamURL'));
   if ($CamURL eq '') { $CamURL="http://"; }
my $SiteRating  = &unquote(param('SiteRating'));

my $UserName    = &unquote(param('UserName'));
my $UserP1      = &unquote(param('UserP1'));
my $UserP2      = &unquote(param('UserP2'));

print "Content-type: text/html\n\n";
print qq`
<html>
<head>
<title>Add your cam to BadCams!</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <SCRIPT language=JavaScript><!--
    function SetSelect() {\n`;
if ($BdayMonth) { print qq`      for (ii=1;ii<document.newcamform.BdayMonth.options.length;ii++) { if (document.newcamform.BdayMonth.options[ii].value == "$BdayMonth") { document.newcamform.BdayMonth.selectedIndex = ii; } }`; }
if ($BdayDate) { print qq`      for (ii=1;ii<document.newcamform.BdayDate.options.length;ii++) { if (document.newcamform.BdayDate.options[ii].value == "$BdayDate") { document.newcamform.BdayDate.selectedIndex = ii; } }`; }
if ($SexOrient) { print qq`      for (ii=1;ii<document.newcamform.SexOrient.options.length;ii++) { if (document.newcamform.SexOrient.options[ii].value == "$SexOrient") { document.newcamform.SexOrient.selectedIndex = ii; } }`; }
#if ($UserState) { print qq`      for (ii=1;ii<document.newcamform.UserState.options.length;ii++) { if (document.newcamform.UserState.options[ii].value == "$UserState") { document.newcamform.UserState.selectedIndex = ii; } }`; }
if ($SiteRating) { print qq`      for (ii=1;ii<document.newcamform.SiteRating.options.length;ii++) { if (document.newcamform.SiteRating.options[ii].value == "$SiteRating") { document.newcamform.SiteRating.selectedIndex = ii; } }`; }

print qq`
      return;
    }
  //-->
  </SCRIPT>
  <style type="text/css"><!--
    td {  font-family: Arial, Helvetica, sans-serif; font-weight: bold}
  -->
  </style>
</head>

<body bgcolor="#FFFFFF" text="#000000" onLoad="javascript:SetSelect()">
<font face="Arial, Helvetica, sans-serif">
  <p align="center"><font size="6">Add your cam to BadCams!</font></p>
  <p align="center"><b>*** <i>NOTE: All cams on this portal are FREE.  If you charge<br>to view your cam, you will NOT be approved!</i></b>
<form name="newcamform" method="post" action="addcam.cgi">
<p align="center"> </p>
<table width="80%" border="0" cellspacing="0" cellpadding="10" align="center">
  <tr> 
    <td align="right">First Name</td>
    <td>`;
if ($FileErr eq 'LenFN') {
   print qq`<font color=red><i>You must enter your first name!</i></font><br>`; }
elsif ($FileErr eq 'BadFN') {
   print qq`<font color=red><i>Illegal characters in your first name!  Please check and retype.</i></font><br>`; }
print qq`
      <input type="text" name="FirstName" value="$FirstName" width=30 maxlength=20>
    </td>
  </tr>
  <tr> 
    <td align="right">Last Name</td>
    <td>`;
if ($FileErr eq 'LenLN') {
   print qq`<font color=red><i>You must enter your last name!</i></font><br>`; }
elsif ($FileErr eq 'BadLN') {
   print qq`<font color=red><i>Illegal characters in your last name!  Please check and retype.</i></font><br>`; }
print qq`
      <input type="text" name="LastName" value="$LastName" width=30 maxlength=30>
    </td>
  </tr>
  <tr> 
    <td align="right">Email Address</td>
    <td> `;
if ($FileErr eq 'BadEm') {
   print qq`<font color=red><i>Invalid Email Address!  Please check and retype.</i></font><br>`; }
elsif ($FileErr eq 'LenEm') {
   print qq`<font color=red><i>You must enter your email address!</i></font><br>`; }
print qq`
      <input type="text" name="UserEmail" value="$UserEmail" maxlength="60" size="40">
    </td>
  </tr>
  <tr> 
    <td align="right">Gender</td>
    <td>`;
if ($FileErr eq 'BadGN') {
   print qq`<font color=red><i>You must enter your gender!</i></font><br>`; }
print qq`
      <input type="radio" name="UserGender" value="F"`;
if ($UserGender eq 'F') { print " checked"; }
print qq`> Female 
      <input type="radio" name="UserGender" value="M"`;
if ($UserGender eq 'M') { print " checked"; }
print qq`> Male </td>
  </tr>
  <tr> 
    <td align=right>Birthday (Month/Date/Year)</td>
    <td> `;
if ($FileErr eq 'BadBM') {
   print qq`<font color=red><i>Please enter your birth month!</i></font><br>`; }
elsif ($FileErr eq 'BadBD') {
   print qq`<font color=red><i>Please enter your birth date!</i></font><br>`; }
elsif ($FileErr eq 'BadBY') {
   print qq`<font color=red><i>Please enter your birth year!</i></font><br>`; }
elsif ($FileErr eq 'YngBY') {
   print qq`<font color=red><i>Sorry, you are too young to put your cam on this site!</i></font><br>`; }
print qq`
      <select name="BdayMonth">
        <option value="">--</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
      </select>
      / 
        <select name="BdayDate">
        <option value="">--</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
        <option value="13">13</option>
        <option value="14">14</option>
        <option value="15">15</option>
        <option value="16">16</option>
        <option value="17">17</option>
        <option value="18">18</option>
        <option value="19">19</option>
        <option value="20">20</option>
        <option value="21">21</option>
        <option value="22">22</option>
        <option value="23">23</option>
        <option value="24">24</option>
        <option value="25">25</option>
        <option value="26">26</option>
        <option value="27">27</option>
        <option value="28">28</option>
        <option value="29">29</option>
        <option value="30">30</option>
        <option value="31">31</option>
      </select>
      / 
      <input type="text" name="BdayYear" value="$BdayYear" width=6 maxlength=4>
    </td>
  </tr>
  <tr>
    <td align="right">Sexual Orientation</td>
    <td>`;
if ($FileErr eq 'BadSx') {
   print qq`<font color=red><i>Please enter your Sexual Orientation!</i></font><br>`; }
print qq`
      <select name="SexOrient" size="1" value="" >
        <option value="Not Specified">Not Specified 
        <option value="Straight">Straight 
        <option value="Straight but Curious">Straight but Curious 
        <option value="Gay/Lesbian">Gay/Lesbian 
        <option value="Bisexual">Bisexual 
        <option value="Undecided">Undecided 
        <option value="Just Plain Horny">Just Plain Horny 
      </select>
    </td>
  </tr>
  <tr> 
    <td align="right">State or Province (if living in U.S. or Canada)</td>
    <td>`;
if ($FileErr eq 'BadSt') {
   print qq`<font color=red><i>You must enter your state, or if not living<br>in the U.S. or Canada, you must enter your country!</i></font><br>`; }
elsif ($FileErr eq 'USNoS') {
   print qq`<font color=red><i>If you live in the U.S. or Canada, you must enter your state!</i></font><br>`; }
print qq`
        <select name="UserState" size="5" value="">\n`;
if ($UserState) { print qq`        <option value="$UserState" selected>$UserState\n        <option value="">------------`; }
print qq`
        <option value="OU">Outside US & Canada
        <option value="Alabama">Alabama
        <option value="Alaska">Alaska 
        <option value="Arizona">Arizona 
        <option value="Arkansas">Arkansas 
        <option value="California">California 
        <option value="Colorado">Colorado 
        <option value="Connecticut">Connecticut 
        <option value="Deleware">Delaware 
        <option value="Dist. of Columbia">Dist. of Columbia 
        <option value="Florida">Florida 
        <option value="Georgia">Georgia 
        <option value="Hawaii">Hawaii 
        <option value="Idaho">Idaho 
        <option value="Illinois">Illinois 
        <option value="Indiana">Indiana 
        <option value="Iowa">Iowa 
        <option value="Kansas">Kansas 
        <option value="Kentucky">Kentucky 
        <option value="Louisiana">Louisiana 
        <option value="Maine">Maine 
        <option value="Maryland">Maryland 
        <option value="Massachusetts">Massachusetts 
        <option value="Michigan">Michigan 
        <option value="Minnesota">Minnesota 
        <option value="Mississippi">Mississippi 
        <option value="Missouri">Missouri 
        <option value="Montana">Montana 
        <option value="Nebraska">Nebraska 
        <option value="Nevada">Nevada 
        <option value="New Hampshire">New Hampshire 
        <option value="New Jersey">New Jersey 
        <option value="New Mexico">New Mexico 
        <option value="New York">New York 
        <option value="North Carolina">North Carolina 
        <option value="North Dakota">North Dakota 
        <option value="Ohio">Ohio 
        <option value="Oklahoma">Oklahoma 
        <option value="Oregon">Oregon 
        <option value="Pennsylvania">Pennsylvania 
        <option value="Puerto Rico">Puerto Rico 
        <option value="Rhode Island">Rhode Island 
        <option value="South Carolina">South Carolina 
        <option value="South Dakota">South Dakota 
        <option value="Tennessee">Tennessee 
        <option value="Texas">Texas 
        <option value="Utah">Utah 
        <option value="Vermont">Vermont 
        <option value="Virginia">Virginia 
        <option value="Washington">Washington 
        <option value="West Virginia">West Virginia 
        <option value="Wisconsin">Wisconsin 
        <option value="Wyoming">Wyoming 
        <option value="Virgin Islands">Virgin Islands 
        <option value="British Columbia">British Columbia 
        <option value="Alberta">Alberta 
        <option value="Ontario">Ontario 
        <option value="Quebec">Quebec 
        <option value="New Brunswick">New Brunswick 
        <option value="Nova Scotia">Nova Scotia 
        <option value="Prince Edward Island">Prince Edward Island 
        <option value="Newfoundland">Newfoundland 
        <option value="Yukon Territory">Yukon Territory 
        <option value="Northwest Territories">Northwest Territories 
        <option value="Other">Other 
      </select>
    </td>
  </tr>
  <tr> 
    <td align="right">Country<br>(If outside U.S. or Canada)</td>
    <td> 
        <input type="text" name="UserCountry" value="$UserCountry" maxlength="22" size="30">
    </td>
  </tr>
  <tr> 
    <td> </td>
    <td> </td>
  </tr>
  <tr> 
    <td align="right">Site/Webcam Name</td>
    <td> `;
if ($FileErr eq 'LenSN') {
   print qq`<font color=red><i>You must enter your site/webcam name!</i></font><br>`; }
print qq`
      <input type="text" name="SiteName" value="$SiteName" maxlength="80" size="60">
    </td>
  </tr>
  <tr> 
    <td align="right">Site/Webcam Description</td>
    <td>`;
if ($FileErr eq 'BadSD') {
   print qq`<font color=red><i>Illegal Site/Webcam description!  Please retype.</i></font><br>`; }
print qq`
      <input type="text" name="SiteDesc" value="$SiteDesc" size="60" maxlength="200">
    </td>
  </tr>
  <tr> 
    <td align="right">Site URL (main page)</td>
    <td>`;
if ($FileErr eq 'BadSU') {
   print qq`<font color=red><i>Invalid website URL!  Please check and retype.</i></font><br>`; }
elsif ($FileErr eq 'NoESU') {
   print qq`<font color=red><i>That website URL does not exist!  Please check and retype.</i></font><br>`; }
print qq`
      <input type="text" name="SiteURL" value="$SiteURL" size="60" maxlength="200">
    </td>
  </tr>
  <tr> 
    <td align="right">Webcam URL<br>(this must be the direct .jpg address!)</td>
    <td> `;
if ($FileErr eq 'BadCU') {
   print qq`<font color=red><i>Invalid webcam URL!  Please check and retype.</i></font><br>`; }
elsif ($FileErr eq 'NoCSU') {
   print qq`<font color=red><i>That webcam URL does not exist!  Please check and retype.</i></font><br>`; }
print qq`
      <input type="text" name="CamURL" value="$CamURL" size="60" maxlength="200">
    </td>
  </tr>
  <tr> 
    <td align="right">Site Rating</td>
    <td>`;
if ($FileErr eq 'BadSR') {
   print qq`<font color=red><i>Please select your site's rating.</i></font><br>`; }
print qq`
      <select name="SiteRating">
        <option value="PG">PG</option>
        <option value="R">R</option>
        <option value="X">X</option>
      </select>
    </td>
  </tr>
  <tr> 
    <td> </td>
    <td> </td>
  </tr>
  <tr> 
    <td align="right">UserName</td>
    <td>`;
if ($FileErr eq 'LenUN') {
   print qq`<font color=red><i>Your username must be 4-20 characters long!</i></font><br>`; }
elsif ($FileErr eq 'BadUN') {
   print qq`<font color=red><i>Your username contains invalid characters!<br>Please use only letters or numbers (no spaces).</i></font><br>`; }
elsif ($FileErr eq 'AlrUN') {
   print qq`<font color=red><i>Sorry, that username is already taken!  Please try a new name.</i></font><br>`; }
print qq`
      <input type="text" name="UserName" value="$UserName" size="20" maxlength="20">
    </td>
  </tr>
  <tr> 
    <td align="right">Password</td>
    <td>`;
if ($FileErr eq 'LenPW') {
   print qq`<font color=red><i>Your password must be 6-20 characters long!</i></font><br>`; }
elsif ($FileErr eq 'BadPW') {
   print qq`<font color=red><i>Your password contains invalid characters!<br>Please use only letters or numbers (no spaces).</i></font><br>`; }
elsif ($FileErr eq 'PasNM') {
   print qq`<font color=red><i>Your passwords do not match!  Please retype.</i></font><br>`; }
print qq`
      <input type="password" name="UserP1" value="$UserP1" size="20" maxlength="20">
    </td>
  </tr>
  <tr> 
    <td align="right">Verify Password</td>
    <td> 
      <input type="password" name="UserP2" value="$UserP2" size="20" maxlength="20">
    </td>
  </tr>
</table>
  <p align="center">
    <input type="submit" name="Submit" value="Submit">
  </p>
  </form>
      </body>
</html>`;
exit;


sub unquote {
   $_[0] =~ s/\'/\&\#39;/g;
   $_[0] =~ s/\"/\&\#34;/g;
   return $_[0];
}
