#!/usr/local/bin/perl

$mailprog = "/usr/lib/sendmail";

&ParseAndConvert;
&SendOrderToShop;
&SendOrderToClient;
&CloseIt;

exit(0);

sub ParseAndConvert {
  if (@_) {
    local (*in) = @_;
  }
  local ($i, $loc, $key, $val);

  if ($ENV{'REQUEST_METHOD'} eq "GET") {
    $in = $ENV{'QUERY_STRING'};
  }
  elsif ($ENV{'REQUEST_METHOD'} eq "POST") {
    read(STDIN, $in, $ENV{'CONTENT_LENGTH'});
  }

  $in_buffer = $in;
  @in = split(/&/,$in);
  foreach $i (0 .. $#in) {
    $in[$i] =~ s/\+/ /g;
    $in[$i] =~ s/%(..)/pack("c",hex($1))/ge;
    $loc = index($in[$i],"=");
    $key = substr($in[$i],0,$loc);
    $val = substr($in[$i],$loc+1);
    $in{$key} .= '\0' if (defined($in{$key}));
    $in{$key} .= $val;
  }
		
  $Messagehtml = $in{'Messagehtml'};
		$Search = q(<LV_061/>);	$Replace = q(=3D);	$Messagehtml =~ s/$Search/$Replace/g;
		$Search = q(<LV_034/>);	$Replace = q("); 		$Messagehtml =~ s/$Search/$Replace/g;		
		
  return 1;
}

sub SendOrderToShop {
  open(LCE,">lce/order-" . $in{'OrderID'} . ".lce");
  print LCE $in{'Attachment'};
  close(LCE);

  open(MAIL,"|$mailprog -t");

  print MAIL "To: $in{'To'}\n";
  print MAIL "From: $in{'From'}\n";
  print MAIL "Reply-To: $in{'From'}\n";
  print MAIL "Subject: $in{'Subject'}\n";
  print MAIL "MIME-Version: 1.0\n";
  print MAIL "Content-Type: multipart/mixed; boundary=\"---- =_NextPart_$in{'OrderID'}\"\n\n";

  print MAIL "This is a multi-part message in MIME format.\n\n";
  print MAIL "------ =_NextPart_$in{'OrderID'}\n";

  print MAIL "Content-Type: text/html; charset=ISO-8859-1\n";
  print MAIL "Content-Transfer-Encoding: quoted-printable\n\n";
  print MAIL "$Messagehtml\n\n";

  close(MAIL);
}

sub check_email {
  $email = $_[0];

  if ($email =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/ ||
      $email !~ /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/) {
    return 0;
  }
  else {
    return 1;
  }
}

sub SendOrderToClient {
  if (&check_email($in{'From'})) {
    open(MAIL,"|$mailprog -t");

    print MAIL "To: $in{'From'}\n";
    print MAIL "From: $in{'To'}\n";
    print MAIL "Reply-To: $in{'To'}\n";
    print MAIL "Subject: $in{'SubjectMailClient'}\n";
    print MAIL "MIME-Version: 1.0\n";
    print MAIL "Content-Type: multipart/mixed; boundary=\"---- =_NextPart_$in{'OrderID'}\"\n\n";

    print MAIL "This is a multi-part message in MIME format.\n\n";
    print MAIL "------ =_NextPart_$in{'OrderID'}\n";

    print MAIL "Content-Type: text/html; charset=ISO-8859-1\n";
    print MAIL "Content-Transfer-Encoding: quoted-printable\n\n";
    print MAIL "$Messagehtml\n\n";
    print MAIL "------ =_NextPart_$in{'OrderID'}\n";

    print MAIL "Content-Type: application/octet-stream;\n";
    print MAIL " name=\"".$in{'SubjectMailClient'}.".txt\"\n";
    print MAIL "Content-Transfer-Encoding: 8bit\n"; 
    print MAIL "Content-Disposition: attachment;\n";
    print MAIL " filename=\"".$in{'SubjectMailClient'}.".txt\"\n\n";
    print MAIL "$in{'Message'}\n\n";

    close(MAIL);				
  }
}

sub CloseIt {
  # If redirect option is used, print the redirectional location header.   #
  if ($in{'redirect'}) {
      print "Location: $in{'redirect'}\n\n";
  }
  else {
    print "Content-type:  text/html\n\n";
    print qq|
      <html>
      <head>
        <title>$in{'Subject'}</title>
      </head>
      <BODY ONLOAD="setTimeout('window.close()',1)">
      </body>
      </html>
    |;
  }
}

