#!/usr/bin/perl

#####################################################################
#
#                      ***   W a y - C A R T  ***
#                                Version 2.0
#--------------------------------------------------------------------
#                  Developed by  Lim, Dae-Ho
#                           http://way.co.kr
#
#####################################################################
# 1998/12/11-12/13  by lawwal Ver 1.0
# 1999/01/07        by lawwal Ver 1.2
# 1999/03/02-03/04  by lawwal Ver 1.5
# 1999/04/27        by lawwal Ver 1.6 (Plus WinNT/98/95)
#####################################################################
# 1999/05/02-05/16  by lawwal Ver 2.0 (Plus Goods code, Credit card)
# 1999/06/10        by lawwal Ver 2.0 Bug Fix
#####################################################################

umask 000;

&input_data;

&set_data;

&tmp_file_del;

&cookieread;

&check_cookie;

&continue;

if($Config{'j'} eq "p" ||
   !$Config{'j'})
  { &add; }

if($Config{'j'} eq "m")
  { &edit; }

if($Config{'j'} eq "r")
  { &reset; }

if($Config{'j'} eq "o")
  { &pay; }

if($Config{'j'} eq "e")
  { &process; }

if($Config{'j'} eq "u")
  { &up_url; }

if($Config{'j'} eq "v")
  { &view; }

exit;

#####################################################################

sub set_data {
	
require "./conf-cart.cgi";

$CODE_S   = $CODE;
$NAME_S   = $NAME;
$QTT_S    = $QTT;
$AMOUNT_S = $AMOUNT;
$TOT_S    = $TOT;
$TOTS_S   = $TOTS;
$FUNC_S   = $FUNC;

$CODE_S   =~ s/  /&nbsp; /g;
$NAME_S   =~ s/  /&nbsp; /g;
$QTT_S    =~ s/  /&nbsp; /g;
$AMOUNT_S =~ s/  /&nbsp; /g;
$TOT_S    =~ s/  /&nbsp; /g;
$TOTS_S   =~ s/  /&nbsp; /g;
$FUNC_S   =~ s/  /&nbsp; /g;


$real_time = &get_date("ymdhms", 0);
$real_year = substr($real_time, 0,4);
$real_m    = substr($real_time, 5,2);
$real_d    = substr($real_time, 8,2);

$cgi_name = $ENV{"SCRIPT_NAME"};
@cgi_name = split(/\/+/, $cgi_name);
$cgi_name_index = $#cgi_name;
$cgi_name = $cgi_name[$cgi_name_index];

$pdt_code  = $Config{'code'};
$pdt_divi  = $Config{'class'};
$pdt_qtt   = $Config{'qtt'};
$pdt_add1  = $Config{'add1'};
$pdt_add2  = $Config{'add2'};
$pdt_add3  = $Config{'add3'};

$pdt_code  =~ s/^ +| +$//g;
$pdt_divi  =~ s/^ +| +$//g;
$pdt_qtt   =~ s/^ +| +$//g;
$pdt_add1  =~ s/^ +| +$//g;
$pdt_add2  =~ s/^ +| +$//g;
$pdt_add3  =~ s/^ +| +$//g;
$pdt_f_am  =~ s/^ +| +$//g;

@tmp = ();
foreach $tmp ($pdt_add1, $pdt_add2, $pdt_add3) {
  if($tmp) { push(@tmp, $tmp); } }

if(@tmp) { $pdt_add = join(", ", @tmp); }


foreach $prg_var (@Config_2) {
        if( ($prg_var ne "j") &&
            ($prg_var ne "code") &&
            ($prg_var ne "class") &&
            ($prg_var ne "qtt") &&
            ($prg_var ne "add1") &&
            ($prg_var ne "add2") &&
            ($prg_var ne "add3") &&
            ($prg_var ne "method") &&
            ($prg_var ne "line_cnt") &&
            ($prg_var ne "check") &&
            ($prg_var ne "x") &&
            ($prg_var ne "y") )
         { push(@Config_3, $prg_var); }

 } #-- foreach

foreach $prg_var (@Config_2) {
        if($prg_var eq "E-mail") { $mail_var = "ok"; }
        }

   $remote_addr              = $ENV{'REMOTE_ADDR'};
   $http_user_agent          = $ENV{'HTTP_USER_AGENT'};
   $http_accept_language     = $ENV{'HTTP_ACCEPT_LANGUAGE'};

 } 

#####################################################################

sub up_url {

        print "Location: $up_url\n\n";
        exit;
 }
 	
#####################################################################
	
sub add {

       if($pdt_qtt < 1) { $pdt_qtt = 1; }
       $tmp = $pdt_code;
       ($goods_category, $goods_code) = $tmp =~ /(.*)\-(.*)/;

       $FILE = "./code/.$goods_category.cgi";
       open(FILE, "$FILE") || &error_file_open;
         while(<FILE>) {
         ($category, $code, $name, $amount, $keys, $url, $etc, $class)
         = split(/\|/, $_);
           if($code eq $goods_code) {
             $pdt_no = $pdt_code;
             $pdt_name = $name;
             $pdt_amt  = $amount;
             if($pdt_divi) {
               foreach $tmp (split(/\:\:/, $class)) {
                 ($class_name, $class_amount) = split(/ = /, $tmp);
                 if($class_name eq $pdt_divi) {
                   $pdt_class_amount = $class_amount;
                   last; }
                }
               last;
             }
           }
          }
       close(FILE);

if(!$pdt_name) {
 print "Content-type: text/html\n\n";
 &short_msg("»óÇ°ÄÚµå°¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù.",  "»óÇ°ÄÚµå°¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù."); }

if($pdt_class_amount) { $pdt_amt = $pdt_class_amount; }
  else { $pdt_divi = ""; }
if($pdt_divi)         { $pdt_name = "$pdt_name - $pdt_divi"; }
if($pdt_add)          { $pdt_name = "$pdt_name ($pdt_add)"; }

          $pdt_qtt =~ s/\D//g;
          
          $pdt_sum = $pdt_qtt * $pdt_amt;

          $insert_data = "$pdt_no|$pdt_name|$pdt_qtt|$pdt_amt|\n";

          $pdt_qtt = &comma($pdt_qtt);
          $pdt_amt = &comma($pdt_amt);
          $pdt_sum = &comma($pdt_sum);

          $FILE = "$conodir/$cono";
          open(FILE, ">>$FILE") || &error_file_open;
            print FILE $insert_data;
          close(FILE);
          
          $FILE = "$contdir/$cono";
          open(FILE, ">$FILE") || &error_file_open;
            print FILE $ENV{'HTTP_REFERER'};
          close(FILE);
          
          $FILE = "$conodir/$cono";
          open(FILE, "$FILE") || &error_file_open;
          while ($tmp = <FILE>)
             { chomp $tmp;
               push(@arr_cart, $tmp); }
          close (FILE);

          $continue_url = $ENV{'HTTP_REFERER'};

          if($add_table eq "Y") { &add_msg; }
          else { &view; }

 exit;

 }
	
#####################################################################

sub add_msg {

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

      $html_table  = "<div align=left><table border=0 width=586><TABLE width=550 border=$tbl_border cellspacing=$tbl_bd_cs cellpadding=$tbl_bd_cp>\n";
      $html_table .= "
<TR>
<TH align=center bgcolor=$tbl_h_bg><font size=-1 color=$tbl_h_tx>$CODE_S</TH>
<TH align=center bgcolor=$tbl_h_bg><font size=-1 color=$tbl_h_tx>$NAME_S</TH>
<TH align=center bgcolor=$tbl_h_bg><font size=-1 color=$tbl_h_tx>$QTT_S</TH>
<TH align=center bgcolor=$tbl_h_bg><font size=-1 color=$tbl_h_tx>$AMOUNT_S</TH>
<TH align=center bgcolor=$tbl_h_bg><font size=-1 color=$tbl_h_tx>$TOT_S</TH>
</TR>
";

          $html_table .= "
<TR>
<TD align=left bgcolor=$tbl_b_bg><font size=-1 color=$tbl_b_tx>$pdt_no</font></TD>
<TD align=center bgcolor=$tbl_b_bg><font size=-1 color=$tbl_b_tx>$pdt_name</font></TD>
<TD align=center bgcolor=$tbl_b_bg><font size=-1 color=$tbl_b_tx>$pdt_qtt</font></TD>
<TD align=right bgcolor=$tbl_b_bg><font size=-1 color=$tbl_b_tx>$pdt_amt¿ø</font></TD>
<TD align=right bgcolor=$tbl_b_bg><font size=-1 color=$tbl_b_tx>$pdt_sum¿ø</font></TD>
</TR>
";
        
# <p align="left">         
&html_header("<ul>¼±ÅÃÇÏ½Å »óÇ°À» Àå¹Ù±¸´Ï¿¡ ³Ö¾ú½À´Ï´Ù.", "<ul><ul><ul>¼±ÅÃÇÏ½Å »óÇ°À» Àå¹Ù±¸´Ï¿¡ ³Ö¾ú½À´Ï´Ù.</ul></ul></ul></ul>");
          
          print "<ul><ul><ul><ul>´ÙÀ½ »óÇ°À» Àå¹Ù±¸´Ï¿¡ ³Ö¾ú½À´Ï´Ù.</ul></ul></ul></ul></p><p>\n";
          print $html_table;
          print "</table>\n";
          print "<p>\n";

          print "<ul><ul><ul><table width=250><tr>\n";
          print "<td width=100 valign=top>\n";
          print "<a href=$continue_url>\n";
          print "<img src=$imgdir/cart-con.gif align=middle border=0 alt='¼îÇÎ °è¼ÓÇÏ±â'></a></td>";
          print "<td width=50>&nbsp; </td>\n";

          print "<td width=100>\n";
          print "<form method=post action=$cgi_name>\n";
          print "<input type=hidden name=j value=o>\n";
          print "<input type=image src=$imgdir/cart-order.gif align=middle border=0 alt='ÁÖ¹®ÇÏ±â'></FORM></td>";

          print "</table></ul></ul></ul>\n";

          &view_table;
          &view_html_insert;
          print "\n$html_table</form><br>\n";
          &html_tail;
 exit;

 }

#####################################################################

sub continue {

    $FILE = "$contdir/$cono";
    if(-e $FILE) {
          open(FILE, "$FILE") || &error_file_open;
          $continue_url = <FILE>;
          close (FILE); }
   else { $continue_url = $up_url; }

 }
    
#####################################################################

sub view {

print "Content-type: text/html\n\n";
          $FILE = "$conodir/$cono";

          open(FILE, "$FILE") || &error_file_open;
          while ($tmp = <FILE>)
             { chomp $tmp;
               push(@arr_cart, $tmp);
              }
          close (FILE);
          if(@arr_cart) { 
                    	          
          &html_header("<ul>Àå¹Ù±¸´Ï¿¡ µé¾îÀÖ´Â »óÇ°¸ñ·ÏÀÔ´Ï´Ù.", "<ul><ul>Àå¹Ù±¸´Ï¿¡ µé¾îÀÖ´Â »óÇ°¸ñ·ÏÀÔ´Ï´Ù.</ul></ul></ul>");

          print "<table width=500><TR><TD>¼ö·®À» º¯°æÇÏ°Å³ª Àå¹Ù±¸´Ï¿¡¼­ ²¨³»°í ½ÍÀº »óÇ°Àº ¿ìÃø ±â´É¹öÆ°<font size=-1>(¼ö·® ´Ã¸®±â, ¼ö·® ÁÙÀÌ±â, Àå¹Ù±¸´Ï¿¡¼­ ²¨³»±â)</font>À» ÀÌ¿ëÇÏ½Ã±â ¹Ù¶ø´Ï´Ù.</TD></TR></table><p>\n";
          
          &view_table;
          print $html_table;

          print "<BR>\n";
          print "<ul><ul><ul><table width=250><tr>\n";
          print "<td width=100 valign=top>\n";
          print "<a href=$continue_url>\n";
          print "<img src=$imgdir/cart-con.gif align=middle border=0 alt='¼îÇÎ °è¼ÓÇÏ±â'></a></td>";
          print "<td width=50>&nbsp; </td>\n";

          print "<td width=100>\n";
          print "<form method=post action=$cgi_name>\n";
          print "<input type=hidden name=j value=o>\n";
          print "<input type=image src=$imgdir/cart-order.gif align=middle border=0 alt='ÁÖ¹®ÇÏ±â'></FORM></td>";

          print "</table></ul></ul></ul>\n";

          &html_tail;
        }
     else { &short_msg("Àå¹Ù±¸´Ï°¡ ºñ¾îÀÖ½À´Ï´Ù",  "<lu><ul><ul><ul><ul>Àå¹Ù±¸´Ï°¡ ºñ¾îÀÖ½À´Ï´Ù</ul></ul></ul></ul></ul>"); }
 exit;

 }
          
#####################################################################

sub view_table {
	
      $html_table  = "<TABLE width=550 border=$tbl_border cellspacing=$tbl_bd_cs cellpadding=$tbl_bd_cp>\n";
      $html_table .= "
<TR>
<TH align=center bgcolor=$tbl_h_bg><font size=-1 color=$tbl_h_tx>$CODE_S</font></TH>
<TH align=center bgcolor=$tbl_h_bg><font size=-1 color=$tbl_h_tx>$NAME_S</font></TH>
<TH align=center bgcolor=$tbl_h_bg><font size=-1 color=$tbl_h_tx>$QTT_S</font></TH>
<TH align=center bgcolor=$tbl_h_bg><font size=-1 color=$tbl_h_tx>$AMOUNT_S</font></TH>
<TH align=center bgcolor=$tbl_h_bg><font size=-1 color=$tbl_h_tx>$TOT_S</font></TH>
<TH align=center bgcolor=$tbl_h_bg><font size=-1 color=$tbl_h_tx>$FUNC_S</font></TH>
</TR>
";

   $line_cnt =1;
   foreach $list(@arr_cart)
     { ($pdt_no, $pdt_name, $pdt_qtt, $pdt_amt) = split(/\|/, $list);

        $pdt_sum = $pdt_qtt * $pdt_amt;
        $pdt_sum_tmp = $pdt_sum;
        $pdt_qtt = &comma($pdt_qtt);
        $pdt_amt = &comma($pdt_amt);
        $pdt_sum = &comma($pdt_sum);

        $tot_sum = $tot_sum + $pdt_sum_tmp;

          $html_table .= "
<TR>
<TD align=center bgcolor=$tbl_b_bg><font size=-1 color=$tbl_b_tx>$pdt_no</font></TD>
<TD align=center bgcolor=$tbl_b_bg><font size=-1 color=$tbl_b_tx>$pdt_name</font></TD>
<TD align=center bgcolor=$tbl_b_bg><font size=-1 color=$tbl_b_tx>$pdt_qtt</font></TD>
<TD align=right bgcolor=$tbl_b_bg><font size=-1 color=$tbl_b_tx>$pdt_amt¿ø</font></TD>
<TD align=right bgcolor=$tbl_b_bg><font size=-1 color=$tbl_b_tx>$pdt_sum¿ø</font></TD>
";


$html_table .= "<TD align=center valign=middle bgcolor=$tbl_b_bg>\n";
$html_table .= "<TABLE border=0 cellpadding=0 cellspacing=0>\n<TR>\n";
$html_table .= "<TD><form method=post action=$cgi_name>
<input type=hidden name=line_cnt value=$line_cnt>
<input type=hidden name=j value=m>
<input type=hidden name=method value=p>
<input type=image src=$imgdir/cart-f-1.gif align=absmiddle border=0 alt='¼ö·® ´Ã¸®±â'></TD></form>\n";

$html_table .= "<TD>&nbsp;</TD>\n";

$html_table .= "<TD><form method=post action=$cgi_name>
<input type=hidden name=line_cnt value=$line_cnt>
<input type=hidden name=j value=m>
<input type=hidden name=method value=m>
<input type=image src=$imgdir/cart-f-2.gif align=absmiddle border=0 alt='¼ö·® ÁÙÀÌ±â'></TD></form>\n";

$html_table .= "<TD>&nbsp;</TD>\n";

$html_table .= "<TD><form method=post action=$cgi_name>
<input type=hidden name=line_cnt value=$line_cnt>
<input type=hidden name=j value=m>
<input type=hidden name=method value=d>
<input type=image src=$imgdir/cart-f-3.gif align=absmiddle border=0 alt='Àå¹Ù±¸´Ï¿¡¼­ ²¨³»±â'></TD></form>\n";

        $html_table .= "</TR></TABLE>\n";

        $html_table .= "</TD></TR>\n";

        $line_cnt++;
          }

        $tot_sum=&comma($tot_sum);
        $html_table .= "
<TR>
<TH colspan=4 align=center bgcolor=$tbl_t_bg><font size=-1 color=$tbl_t_tx>$TOTS_S</font></TH>
<TH align=right bgcolor=$tbl_t_bg><font size=-1 color=$tbl_t_tx>$tot_sum¿ø</font></TH>
";
        $html_table .= "<TD align=center bgcolor=$tbl_t_bg>
<form method=post action=$cgi_name>
<input type=hidden name=j value=r>
<input type=image src=$imgdir/cart-out.gif align=middle border=0 alt='Àå¹Ù±¸´Ï ¸ðµÎ ºñ¿ì±â'></TD></FORM></TR></table>\n";
          	          
 }

#####################################################################

 sub view_html_insert {

        print <<"__END_OF_HTML__";

<br>
<br>
<b><font size=+1><ul><ul>&nbsp;&nbsp;&nbsp;&nbsp;Àå¹Ù±¸´Ï¿¡ µé¾îÀÖ´Â »óÇ°¸ñ·ÏÀÔ´Ï´Ù.</ul></ul></font></b></font>
<HR size=2 WIDTH=550 align=left NOSHADE color=teal>
<table width=550>
<TR>
<TD><font size=-1>¼ö·®À» º¯°æÇÏ°Å³ª Àå¹Ù±¸´Ï¿¡¼­ ²¨³»°í ½ÍÀº »óÇ°Àº ¿ìÃø ±â´É¹öÆ°(¼ö·® ´Ã¸®±â, ¼ö·® ÁÙÀÌ±â, Àå¹Ù±¸´Ï¿¡¼­ ²¨³»±â)À» ÀÌ¿ëÇÏ½Ã±â ¹Ù¶ø´Ï´Ù.</font></TD>
</TR>
</table>
<br>

__END_OF_HTML__

 }

#####################################################################

sub edit {

          $edit_meth = $Config{'method'};
          $order_no = $Config{'line_cnt'};

          $FILE = "$conodir/$cono";

          open(FILE, "$FILE") || &error_file_open;
          while ($tmp = <FILE>)
             { $line_num ++;
                 { if ($order_no eq $line_num) {
                      &edit_run; }
                }
              $re_insert .= $tmp;
              }
          close (FILE);
          open(FILE, ">$FILE") || &error_file_open;
          print FILE $re_insert;
          close(FILE);
          &view;
          
exit;

}
          
#####################################################################

sub edit_run {

   if($edit_meth eq "p") {
    ($pdt_no, $pdt_name, $pdt_qtt, $pdt_amt) = split(/\|/, $tmp);
    $pdt_qtt++;
    $tmp = "$pdt_no|$pdt_name|$pdt_qtt|$pdt_amt|\n";
    }

   if($edit_meth eq "m") {
    ($pdt_no, $pdt_name, $pdt_qtt, $pdt_amt) = split(/\|/, $tmp);
    $pdt_qtt--;
    if($pdt_qtt ne 0) {
      $tmp = "$pdt_no|$pdt_name|$pdt_qtt|$pdt_amt|\n"; }
      else { $tmp = ""; }
    }
   if($edit_meth eq "d") {
    $tmp = "";
    }

 }

#####################################################################

sub pay {

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

          $FILE = "$conodir/$cono";

          open(FILE, "$FILE") || &error_file_open;
          while ($tmp = <FILE>)
             { chomp $tmp;
               push(@arr_cart, $tmp);
              }
          close (FILE);
          if(@arr_cart) { 
          	
          &html_header("<ul>ÁÖ¹®¼­¸¦ ÀÛ¼ºÇØ ÁÖ½Ã±â ¹Ù¶ø´Ï´Ù.", "<ul><ul><ul>ÁÖ¹®¼­¸¦ ÀÛ¼ºÇØ ÁÖ½Ã±â ¹Ù¶ø´Ï´Ù.</ul></ul></ul></ul>");

    print <<"__END_OF_HTML__";


<left>
<ul><ul><ul><ul><p>´ÙÀ½Àº ±ÍÇÏÀÇ »óÇ°ÁÖ¹®¼­ÀÔ´Ï´Ù.<br>
   Á¤È®È÷ ÀÔ·ÂÇÏ¿©ÁÖ½Ã±â ¹Ù¶ø´Ï´Ù.</font><br>
</ul></ul></ul></ul></left>
__END_OF_HTML__

          print "<form method=post action=$cgi_name name=cart_order_form>\n";


print "\n<!-- ORDER FORM START -->\n";

$FILE = $order_file;
open(FILE, "$FILE") || &error_file_open;
   while(<FILE>) {
        print $_;
   }

print "\n<!-- ORDER FORM END -->\n";

          print "\n<br>\n";

          print "<ul><ul><ul><table width=250><tr>\n";
          print "<td width=100>\n";
          print "<input type=hidden name=j value=e>\n";
          print "<input type=image src=$imgdir/cart-ok.gif align=middle border=0 alt='ÃÖÁ¾ ÁÖ¹®È®ÀÎ'></FORM></td>";
          print "<td width=50>&nbsp; </td>\n";

          print "<td width=100 valign=top>\n";
          print "<a href=$continue_url>\n";
          print "<img src=$imgdir/cart-con.gif align=middle border=0 alt='¼îÇÎ °è¼ÓÇÏ±â'></a></td>";

          print "</table></ul></ul></ul>\n";


    print <<"__END_OF_HTML__";

</form>
<p>
</left>
<left>
	
__END_OF_HTML__

          &view_table;
          &view_html_insert;
          print "\n$html_table</form><br>\n";
          &html_tail;
          	
 }
          
   else { &short_msg("Àå¹Ù±¸´Ï°¡ ºñ¾îÀÖ½À´Ï´Ù", "Àå¹Ù±¸´Ï°¡ ºñ¾îÀÖ½À´Ï´Ù"); }
 exit;

 }
          
#####################################################################

sub reset {

print "Content-type: text/html\n\n";
          $FILE = "$conodir/$cono";


          open(FILE, ">$FILE") || &error_file_open;
          print FILE "";
          close(FILE);
          
        &short_msg("Àå¹Ù±¸´Ï¸¦ ºñ¿ü½À´Ï´Ù.", "<ul><ul><ul><ul>Àå¹Ù±¸´Ï¸¦ ºñ¿ü½À´Ï´Ù.</ul></ul></ul></ul></ul>");


exit;

 }

#####################################################################

sub process {

          $FILE = "$conodir/$cono";

          open(FILE, "$FILE") || &error_file_open;
          while ($tmp = <FILE>)
             { chomp $tmp;
               push(@arr_cart, $tmp);
              }
          close (FILE);
          if(@arr_cart) { 

&check_data;
                    	          
&data_gmr;

if( ($order_mail ne "Y") &&
    ($order_save ne "Y") ) {
 die print "Content-type: text/html\n\n
               <html><head></head><body><br><h1>Error !</h1><p>
               ÁÖ¹®Á¤º¸ÀúÀåÀÌ³ª ÁÖ¹®¸ÞÀÏ¼ö½ÅÁß ÇÑ°¡Áö ÀÌ»óÀ» ¼±ÅÃÇØ ÁÖ½Ê½Ã¿À.<p>
               </body></html>";
 }

&send_mail;

if($order_save eq "Y") { &data_save; }

   # RESET............
   if(-e "$conodir/$cono") { unlink("$conodir/$cono"); }
   if(-e "$contdir/$cono") { unlink("$contdir/$cono"); }
   print "Content-type: text/html\n";
   print "Set-Cookie: cono=;\n";

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

        &html_header("ÁÖ¹®¼­°¡ Á¢¼öµÇ¾ú½À´Ï´Ù.", "ÁÖ¹®¼­°¡ Á¢¼öµÇ¾ú½À´Ï´Ù.");

print "\n<!-- THANK FILE START -->\n";
$FILE = $thank_file;
open(FILE, "$FILE") || &error_file_open;
   while(<FILE>) {
        print $_;
   }
print "\n<!-- THANK FILE END -->\n";

if($Config{'°áÁ¦¹æ¹ý'} eq "½Å¿ëÄ«µå") {

$FILE = "$card_file";
open(FILE, "$FILE") || &error_file_open;
   while(<FILE>) {
        $card_form .= $_;
   }

$card_form = &form_conv($card_form);

print "\n<!-- CARD FILE START -->\n";
print $card_form;
print "\n<!-- CARD FILE END -->\n";

print "<br><br><br>\n";
      &html_tail;
      exit;

 }

  else {
          print "\n<br>\n";

        print "<br><br><br>\n";
        print "<form method=post action=$cgi_name>\n";
        print "<input type=hidden name=j value=u>\n";
        print "<input type=submit value=\"»óÀ§ ¸Þ´º\"> &nbsp;\n";
        print "</form>\n";
	print "<ul><ul><br><br>\n";
	&html_tail;
	exit; }

       }
   else { &short_msg("Àå¹Ù±¸´Ï°¡ ºñ¾îÀÖ½À´Ï´Ù","Àå¹Ù±¸´Ï°¡ ºñ¾îÀÖ½À´Ï´Ù"); }
 exit;

 }

#####################################################################

sub form_conv {

local($data) = @_;
$data =~ s/\:\:cono\:\:/$cono/g;
$data =~ s/\:\:tot_amount\:\:/$tot_amount/g;
$data =~ s/\:\:E-mail\:\:/$Config{'E-mail'}/g;

return $data;

 }

#####################################################################

sub data_gmr {

$print_list  = "¡á ÁÖ¹®ÀÏ½Ã : $real_time \n";
$print_list .= "\n";
$print_list .= "¡á ÁÖ¹®¹øÈ£ : $cono \n";
$print_list .= "\n";
$print_list .= "¡á ÁÖ¹®³»¿ë ------------------------------------------------------ \n";
$print_list .= "   <  $CODE        $NAME     $QTT    $AMOUNT       $TOT  > \n";
 
 foreach $list(@arr_cart)
         {
 ($pdt_no, $pdt_name, $pdt_qtt, $pdt_amt) = split(/\|/, $list);

        $pdt_sum = $pdt_qtt * $pdt_amt; # ´Ü°¡ * ±Ý¾× = °è
        $pdt_sum_tmp = $pdt_sum;
        $pdt_qtt = &comma($pdt_qtt);
        $pdt_amt = &comma($pdt_amt);
        $pdt_sum = &comma($pdt_sum);

        $tot_sum = $tot_sum + $pdt_sum_tmp;

$print_list .= "     $pdt_no    $pdt_name    $pdt_qtt     $pdt_amt¿ø    $pdt_sum¿ø \n";

          }
        $tot_amount = $tot_sum;
        $tot_sum=&comma($tot_sum);
$print_list .= "     ----------   $TOTS   ----------  $tot_sum ¿ø \n";


$print_lst2  = "¡áÁÖ¹®ÀÚ Á¤º¸ --------------------------------------------------- \n";

foreach $usr_field (@Config_3) {
$print_lst2 .= "  $usr_field : $Config{$usr_field} \n"; }

if($buyer_env eq "Y") {
$print_lst2 .= "¡áÁÖ¹®ÀÚ Á¢¼ÓÁ¤º¸ ----------------------------------------------- \n";
$print_lst2 .= "  REMOTE_ADDR : $remote_addr \n";
$print_lst2 .= "  HTTP_USER_AGENT : $http_user_agent \n";
$print_lst2 .= "  HTTP_ACCEPT_LANGUAGE : $http_accept_language \n";
 }

 }

#####################################################################

sub send_mail {

if($order_mail eq "Y") {
      $SEND_TO  = $owner_mail;
      $SEND_FR  = $owner_mail;
      $SEND_SU  = "$owner_url ÁÖ¹®¼­";
      $SEND_ME  = "-" x 75 . "\n";
      $SEND_ME .= $print_list;
      $SEND_ME .= $print_lst2;
      $SEND_ME .= "-" x 75 . "\n";

  &sendmail_act;
  }

if($buyer_mail eq "Y") {
     unless ($Config{'E-mail'} =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/ ||
     $Config{'E-mail'} !~ /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/) { 

      $SEND_TO  = $Config{'E-mail'};
      $SEND_FR  = $owner_mail;
      $SEND_SU  = "$owner_name, ÁÖ¹®Á¤º¸";
      $SEND_ME  = "-" x 75 . "\n";
      $SEND_ME .= "        »óÇ°À» ÁÖ¹®ÇØÁÖ½Å °í°´²² Áø½ÉÀ¸·Î °¨»çµå¸³´Ï´Ù. \n";
      $SEND_ME .= "        ¸¸¾à °í°´²²¼­ ÁÖ¹®ÇÏ½Å »óÇ°¿¡ ´ëÇØ ±Ã±ÝÇÑ »çÇ×ÀÌ \n";
      $SEND_ME .= "        ÀÖÀ¸½Ã¸é ¸ÞÀÏ($owner_mail)·Î ¹®ÀÇÇÏ½Ã°Å³ª, \n";
      $SEND_ME .= "        È¨ÆäÀÌÁö($owner_url)¸¦ ÀÌ¿ëÇØ ÁÖ½Ã±â ¹Ù¶ø´Ï´Ù. \n";
      $SEND_ME .= "\n";
      $SEND_ME .= "        =======     $owner_name / $owner_url     ======= \n";
      $SEND_ME .= "\n";
      $SEND_ME .= $print_list;
      $SEND_ME .= "-" x 75 . "\n";

   &sendmail_act;
    
 }
 }

 }

#####################################################################

sub sendmail_act {
	
    if(-x $mailprogram) {
    open(MAIL,"|$mailprogram -t -f $owner_mail");
      print MAIL "To: $SEND_TO \n";
      print MAIL "From : $SEND_FR ($owner_mail) \n";
      print MAIL "Subject : $SEND_SU \n\n";;
      print MAIL $SEND_ME;
    close (MAIL);
     }
    else {
     if(!$smtp_server) { $smtp_server = "127.0.0.1"; }
     &socket_mail($smtp_server,  $owner_mail, $SEND_FR, "$owner_mail",
                  $SEND_TO, $SEND_CC, "$SEND_SU", "$SEND_ME"); }

 }

#####################################################################
	
sub data_save {

    if($file_ext eq "") { $file_ext = "cgi"; }

    # ÀÏÀÏÁ¤º¸
    $FILE_1 = "$orderdir/$real_year$real_m$real_d.$file_ext";

    # ÀüÃ¼Á¤º¸
    $FILE_2 = "$orderdir/total.$file_ext";

    push(@file_du, $FILE_1); push(@file_du, $FILE_2);
    foreach $FILE(@file_du) {
    open(FILE, ">>$FILE") || &error_file_open;
      print FILE "=" x 75 . "\n";
      print FILE $print_list;
      print FILE $print_lst2;
      print FILE "\n";
    close (FILE);
    }

 }

#####################################################################

sub cono_pid {
	
($Second, $Minute, $Hour, $DayOfMonth, $Month, $Year, $WeekDay, $DayOfYear, $IsDST)=localtime(time);
$RealMonth = $Month + 1;
if($RealMonth<10){$RealMonth="0$RealMonth";}
if($DayOfMonth<10){$DayOfMonth="0$DayOfMonth";}
if($Hour<10){$Hour="0$Hour";}
if($Minute<10){$Minute="0$Minute";}
if($Second<10){$Second="0$Second";}
$Year_2 = $Year + 1900;
$cono = "$Year_2$RealMonth$DayOfMonth$Hour$Minute$Second-$$";

 }

#####################################################################

sub cookieread {
	$buffer=$ENV{'HTTP_COOKIE'};
	@strings = split(/; /,$buffer);
	foreach $strs (@strings) {
		($name, $value) = split(/=/,$strs);
		$value =~ tr/+/ /;
		$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
		$COOKIE{$name} = $value; }
 }
 
sub cookieset {
	local($name) = $_[0];
	local($value) = $_[1];
        print "Content-type: text/html\n";
	print "Set-Cookie: $name=$value;\n";
 }

#####################################################################

sub check_cookie {

$cono = $COOKIE{'cono'};

if($cono eq "")
  { &cono_pid;
    &cookieset('cono', $cono);
    if(-e "$conodir/$cono")
      { unlink("$conodir/$cono"); }
    open(TOUCH, ">$conodir/$cono");
    close(TOUCH);
   }

if($cono ne "" &&
   (!-e "$conodir/$cono") )
   {
    open(TOUCH, ">$conodir/$cono");
    close(TOUCH); }
 }

#####################################################################

sub html_header {
	
        local($html_title, $page_title) = @_;

# BODY Tag Á¶Á¤
if($bg_img eq "Y") { $base_dsgn_tag = "background=white "; }
if($bgcolor) { $base_dsgn_tag .= "bgcolor=$bgcolor "; }
if($text_color) { $base_dsgn_tag .= "text=$text_color"; }

	print <<"__END_OF_HTML__";
<!----------------------------------------------------->
<!--                                                 -->
<!--           ***   W a y - C A R T   ***           -->
<!--                     Version 2.0                 -->
<!--                                                 -->
<!--           Developed by  Lim, Dae-Ho             -->
<!--                    http://way.co.kr             -->
<!--                                                 -->
<!----------------------------------------------------->

<!-- HEAD HTML START -->
<HTML>
<HEAD>
<TITLE>$html_title</TITLE>
<META http-equiv="content-type" content="text/html; charset=EUC-KR">

<style type="text/css">
BODY          { font-family:±¼¸²,±¼¸²Ã¼; text-decoration:none; }
</style>
</HEAD>

<BODY $base_dsgn_tag>
<div align="left"><FONT size="+1">
<ul><IMG SRC=$imgdir/cart-top.gif border=0><br>
<br>
<br>
<b>$page_title</b></font>
<ul><HR size=2 WIDTH=550 align=left NOSHADE color=teal><p>

<!-- HEAD HTML END -->

__END_OF_HTML__

 }

#####################################################################

sub html_tail {

 $FILE = $tail_file;

 print "\n<!-- TAIL HTML START -->\n";

 open(FILE, "$FILE") || &error_file_open;
    while(<FILE>) {
         print $_;
    }

 print "\n<!-- TAIL HTML END -->\n";
 print "</div>\n</BODY>\n</HTML>\n";

 exit;

 }

#####################################################################

sub comma {
	
local ($comma) = @_;
local $dot = $comma;
$comma =~ s/\..*$//g; $dot =~ s/^\d+//g;
1 while $comma =~ s/(\d+)(\d{3})/$1,$2/;

return "$comma$dot";
 
 }

#####################################################################

sub short_msg {
        
        local($html_title_e, $page_title_e) = @_;
        
	&html_header($html_title_e, $page_title_e);
	print "\n<!-- SHORT MESSAGE START -->";
	print "<br><br>\n";
	print "<br>";

          print "<ul><ul><ul><table width=250><tr>\n";
          print "<td width=100 valign=top>\n";
          print "<a href=$continue_url>\n";
          print "<img src=$imgdir/cart-con.gif align=middle border=0 alt='¼îÇÎ °è¼ÓÇÏ±â'></a></td>";

          print "<td width=50>&nbsp; </td>\n";

          print "<td width=100>\n";
          print "<form method=post action=$cgi_name>\n";
          print "<input type=hidden name=j value=u>\n";
          print "<input type=submit value=\"»óÀ§ ¸Þ´º\"></FORM></td>";

          print "</tr></table></ul></ul></ul>\n";

	print "<br><br>\n";
	print "<br>\n";
	print "\n<!-- SHORT MESSAGE END -->";
	&html_tail;

 }

#####################################################################

sub error_file_open {

    die print "Content-type: text/html\n\n <html><head></head><body><br><h1>Error !</h1><p>
               FILE OPEN ERROR. (FILE NAME : $FILE)<p>
               </body></html>";
 }

#####################################################################

sub input_data {

    if ($ENV{'REQUEST_METHOD'} eq 'GET') {
         @pairs = split(/&/, $ENV{'QUERY_STRING'});
    }
    elsif ($ENV{'REQUEST_METHOD'} eq 'POST') {
        read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
        @pairs = split(/&/, $buffer);
    }
    else {
        exit;
    }

        foreach $pair (@pairs) {

        local($name, $value) = split(/=/, $pair);
 
        $name =~ tr/+/ /;
        $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;


        $value =~ tr/+/ /;
        $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
        $value =~ s/<!--(.|\n)*-->//g;

        push (@Config_2, $name);

        if (defined($Config{$name})) {
            $Config{$name} = $value;
        }
        else {
            if ($Config{$name} && $value) {
                $Config{$name} = "$Config{$name}, $value";
            }
            elsif ($value) {
                push(@Config_Order,$name);
                $Config{$name} = $value;
            }
        }
    }

 }

#####################################################################

sub get_date {

local ($time_type, $add_date) = @_;
my ($second, $minute, $hour, $date, $month, $year, $weekday, $yearmonth, $Isdst);
my ($year_2, $time_data, @dayname, $ampm, $ampm_2);


($second, $minute, $hour, $date, $month, $year, $weekday, $yearmonth, $Isdst) = localtime(time);

$year   += 1900 if length $year <= 3;
$year   += 100 if $year <= 1970;
$year_2  = $year;
$year    = substr($year, 2, 2);

$month = $month + 1;
@dayname = ('ÀÏ','¿ù','È­','¼ö','¸ñ','±Ý','Åä');
if($month < 10) { $month = "0$month"; }
if($date < 10) { $date = "0$date"; }
if($minute < 10) { $minute = "0$minute"; }
if($second < 10) { $second = "0$second"; }
if($hour > 11) { $hour_2 = $hour; $hour = $hour - 12; $ampm = "PM"; $ampm_2 = "¿ÀÈÄ"; }
  else { $hour_2 = $hour; $ampm = "AM"; $ampm_2 = "¿ÀÀü"; }
if($hour < 10) { $hour = "0$hour";}
if($hour_2 < 10) { $hour_2 = "0$hour_2";}

if($time_type eq "datetime") { return "$year/$month/$date ($dayname[$weekday]) $ampm $hour:$minute:$second"; }
  # ex. 98/01/01 (¸ñ) AM 00:00:00

if($time_type eq "dateonly") { return "$year/$month/$date ($dayname[$weekday])"; }
  # ex. 98/01/01 (¸ñ)

if($time_type eq "datetime4") { return "$year_2/$month/$date ($dayname[$weekday]) $ampm $hour:$minute:$second"; }
  # ex. 1998/01/01 (¸ñ) AM 00:00:00

if($time_type eq "dateonly4") { return "$year_2/$month/$date ($dayname[$weekday])"; }
  # ex. 1998/01/01 (¸ñ)

if($time_type eq "ymd") { return "$year_2/$month/$date"; }
  # ex. 1998/01/01

if($time_type eq "ymdhms") { return "$year_2/$month/$date $hour_2:$minute:$second"; }
  # ex. 1998/01/01 13:12:12

 }

#####################################################################

sub input_error { 
    
    foreach $missing_field (@err_2)
       { $missing_field_list .= "&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; - $missing_field<br>\n"; }

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

	&html_header("ÀÔ·Â³»¿ë¿¡ ¿À·ù°¡ ÀÖ½À´Ï´Ù.", "<ul><ul><ul><ul>ÀÔ·Â³»¿ë¿¡ ¿À·ù°¡ ÀÖ½À´Ï´Ù.</ul></ul></ul></ul></ul>");
	print "<br>\n";
	print "<ul><ul><ul><ul>ÀÔ·ÂÇÏ½Å ³»¿ëÁß ´ÙÀ½°ú °°Àº Ç×¸ñ¿¡ ¿À·ù°¡ ÀÖ½À´Ï´Ù.<p>";
	print "<table border=0 width=550\n";
	print "<tr><td>\n";
        print $missing_field_list;
        print "</td></tr></table>\n";
	print "<br><br><br>\n";
        print "<form method=post action=$cgi_name>\n";
        print "<a href=way-cart.cgi?j=v><img src=./img/cart-view.gif align=middle border=0 alt='¼îÇÎÄ«Æ® º¸±â'> 
        </a></ul></ul></ul></ul>\n";
	print "<br><br>\n";
	print "<br>\n";
	&html_tail;
	exit;

 }

#####################################################################

sub check_data {

   if(!$Config{'check'}) { return; }

   $check_len    = "$Config{'check'}/°áÁ¦¹æ¹ý+100-1";

   if($email_check eq "Y") { $check_email = "E-mail";
     &check_email; }

   &check_len;

    if (@error_fields)
       {
          foreach $err (@error_fields)
            {
              $last_index = $#err_2;
              $last_index_tmp = 0;
              $err_3 = 0;

              if ($last_index ne -1)
                 { 
                   while ($last_index >= $last_index_tmp)
                      {
                        if ($err_2[$last_index_tmp] eq $err)
                           {$err_3 = 1; }
                        $last_index_tmp ++;
                       }
                 }
              if ($err_3 ne 1)
              {push (@err_2, $err);}
             }
       if(@err_2)
         { &input_error ; }
       }
 }

#####################################################################

sub check_len {

        @check_len = split(/\/+/, $check_len);
        $last_index = $#check_len;
        $last_index_tmp = 0;

        while ($last_index >= $last_index_tmp)
        {
            $check_len_2 = $check_len[$last_index_tmp];
            ($ck_len_name, $ck_len_rg) = split(/\+/, $check_len_2);
            ($ck_len_rg_max, $ck_len_rg_min) = split(/\-/, $ck_len_rg);

              $cn = $Config{$ck_len_name};
        unless ( ( length($cn) <= $ck_len_rg_max) &&
                 ( length($cn) >= $ck_len_rg_min) )
                 {push(@error_fields, $ck_len_name); }

         $last_index_tmp ++; }
 }

#####################################################################

sub check_email {

        @check_email = split(/\/+/,$check_email);
        $last_index = $#check_email;
        $last_index_tmp = 0;
        while ($last_index >= $last_index_tmp)
        {
        if ($Config{$check_email[$last_index_tmp]} =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/ ||
            $Config{$check_email[$last_index_tmp]} !~ /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/)
            {push(@error_fields, $check_email[$last_index_tmp]); }
         $last_index_tmp ++; }
 }

#####################################################################

sub tmp_file_del {

&file_select("./$conodir");
&file_select("./$contdir");

foreach $if_file(@file_list_rslt) {
   if ( (-C $if_file) > 1 )
      { unlink("$if_file"); }
   }

 }
  
#####################################################################

sub file_select {

local ($DIR) = @_;

opendir(DIR, $DIR);
  @file_list = grep {!(/^\./)} readdir(DIR);
closedir(DIR);
foreach $file_list(@file_list) {
  push(@file_list_rslt, "$DIR/$file_list"); }

 }

#####################################################################

sub socket_mail {

################################
##  Socket Mail  (1999/04/26)
################################

use Socket;

local ($SERVER, $OWNER, $FROM, $FROM_N, $TO, $CC, $SUBJECT, $MESSAGE, $DIVI) = @_;

local $PROTO = (getprotobyname('tcp'))[2];
local $PORT  = (getservbyname('smtp', 'tcp'))[2];
local $SMTP  = ($SERVER =~ /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/)
               ? pack ('C4',$1,$2,$3,$4) : (gethostbyname $SERVER)[4];
socket(SOCK, AF_INET, SOCK_STREAM, $PROTO) || return 0;
connect(SOCK, pack('Sna4x8', AF_INET, $PORT, $SMTP)) || return 0;
local ($OLD) = select(SOCK); $|=1; select($OLD);
$SOCK = <SOCK>;
  if($SOCK =~ /^[45]/) { close SOCK; return 0; }
print SOCK "HELO $SERVER\r\n";
$SOCK = <SOCK>;
  if($SOCK =~ /^[45]/) { close SOCK; return 0; }
print SOCK "MAIL FROM: $OWNER\r\n";
$SOCK = <SOCK>;
  if($SOCK =~ /^[45]/) { close SOCK; return 0; }
print SOCK "RCPT TO: $TO\r\n";
$SOCK = <SOCK>;
  if($SOCK =~ /^[45]/) { close SOCK; return 0; }
  if($CC) { print SOCK "RCPT TO: $CC\r\n";
            $SOCK = <SOCK>;
            if($SOCK =~ /^[45]/) { close SOCK; return 0; } }
print SOCK "DATA\r\n";
$SOCK = <SOCK>;
  if($SOCK =~ /^[45]/) { close SOCK; return 0; }
  if($DIVI eq "HTML") {
    print SOCK "Mime-Version: 1.0\r\nContent-Type: text/html\r\n"; }
print SOCK "From: $FROM ($FROM_N)\r\n";
print SOCK "To: $TO\r\n";
print SOCK "Cc: $CC\r\n";
print SOCK "Subject: $SUBJECT\r\n\r\n";
print SOCK "$MESSAGE";
print SOCK "\r\n.\r\n";
$SOCK = <SOCK>;
  if($SOCK =~ /^[45]/) { close SOCK; return 0; }
print SOCK "QUIT\r\n";
close SOCK;
 return 1;

 }

#####################################################################
