#!/usr/bin/perl

sub main {

	&in_cookie;
	&idcheck;
	if (($f) && ($value{'mid'} eq $mm_mid) && ($value{'pass'} eq $mm_pass)) {
		&ot_cookie;
		if ($value{'mode'} eq "detail") { &detail; }
		elsif ($value{'mode'} eq "regist") { &regist; }
		elsif ($value{'mode'} eq "history") { &history; }
		else { &init; }
	}
	else { &login; }

}

# ------------------------------------------------------------------------------

sub login {

	&header("会員画面 - 認証");

	$html  .= qq(
<FORM METHOD="post" ACTION="$script12">
<INPUT TYPE=hidden NAME="mode" VALUE="init">
<table border="0" cellpadding="1" cellspacing="3">
	<TR>
		<TD bgcolor="#f0fff0"><A NAME="mid" TITLE="パスワードを半角英数字で入力">　■ ＩＤ　</A></TD>
		<TD bgcolor="#FFFFFF"><INPUT TYPE=text NAME="mid" VALUE="$c_mid" SIZE=20></TD>
	</TR>
	<TR>
		<TD bgcolor="#f0fff0"><A NAME="pass" TITLE="パスワードを半角英数字で入力">　■ パスワード　</A></TD>
		<TD bgcolor="#FFFFFF"><INPUT TYPE=password NAME="pass" VALUE="$c_pass" SIZE=15></TD>
	</TR>
	<TR>
		<TD COLSPAN=2 align=center><INPUT TYPE=submit NAME="submit" VALUE="ログイン"></TD>
	</TR>
</TABLE>
</FORM>
<br><br>
<a href="./reissue.cgi">ＩＤ・パスワードをお忘れの方はこちら</a>
);

	&footer;

}

# ------------------------------------------------------------------------------

sub init {

	if ($value{'payment'}) { &payment; }

	&header("会員画面");
	&lnk;

	$upidfile = $file . '/' . $mm_mid . '/upid.cgi';
	if (!open(UPID,"+< $upidfile")) { &error("ファイルが開けませんでした。upidfile","管理者までご連絡ください。"); }
	$upid = <UPID>;
	flock(UPID,2);
	seek(UPID,0,0);
	$upid =~ s/\n//g;
	@up_mid = split(/ /,$upid);
	$max = $ms_max + 2;
	if (@up_mid > $max) { pop(@up_mid); }
	$upid = "@up_mid";
	print UPID "$upid\n";
	truncate(UPID, tell(UPID));
	close(UPID);

	if (!open(MPAY,"$mpayfile")) { &error("ファイルが開けませんでした。mpayfile","管理者までご連絡ください。"); }
	@mpay = <MPAY>;
	close(MPAY);
	$payout = 0;
	foreach $mpay (@mpay) {
		$mpay =~ s/\n//g;
		&mpay_split;
		if ($value{'mid'} eq $mp_mid) {
			$payout = $payout + $mp_payout;
		}
	}

	$amt2 = $mm_accum - $mm_payout - $payout;
	$pay_3 = qq(請求可能\額);
	if ($payout) {
		$pay_3 = qq(請求中);
	}
	elsif (($amt2 ne 0) && ($amt2 >= $ms_delay)) {
		$payout = $amt2;
		$pay_1 = qq(		<td align=center valign="middle" bgcolor="#f0fff0"><b>請求</b></td>\n);
		$pay_2 = qq(		<td align=center valign=middle bgcolor="#ffffff"><input type=submit name=payment value="請求"></td>\n);
	}
	else {
		$payout = $amt2;
		$pay_3 = qq(現在残高);
	}

	$upctfile = $file . '/' . $mm_mid . '/upct.cgi';
	if (!open(UPCT,"$upctfile")) { &error("ファイルが開けませんでした。upctfile","管理者までご連絡ください。"); }
	$upct = <UPCT>;
	close(UPCT);
	$upct =~ s/\n//g;
	@up_cnt = split(/ /,$upct);

	$mm_accum = &yen("$mm_accum");
	$mm_payout = &yen("$mm_payout");
	$payout = &yen("$payout");

	$ms_delay = &yen("$ms_delay");

	if (!$up_cnt[0]) { $up_cnt[0] = 0; }
	$downline = qq(
<br>
<table border="1" cellpadding="3" cellspacing="0">
	<tr>
		<td align=left valign="middle" bgcolor="#f0fff0"><b>紹介者数合計</b></td>
		<td align=right valign="middle" bgcolor="#ffffff" width=80><FONT color="#000000">$up_cnt[0]</FONT></td>
	</tr>
);

	foreach ( 1 .. $ms_max+1 ) {
		if ($_ eq 1) { $dan = "直接紹介"; }
		else { $i = $_ - 1; $dan = "間接紹介（$i段目）"; }
		if (!$up_cnt[$_]) { $up_cnt[$_] = 0; }
		$downline .= qq(
	<tr>
		<td align=left valign="middle" bgcolor="#f0fff0"><b>$dan</b></td>
		<td align=right valign="middle" bgcolor="#ffffff"><FONT color="#000000">$up_cnt[$_]</FONT></td>
	</tr>
);
	}

	$downline .= qq(
</table>
);

	$html  .= qq($ms_msg2
<br>
<br>
<h4>ようこそ&nbsp;&nbsp;$mm_nameさん</h4>
<form method="post" action="$script12">
<input type=hidden name="mid" value="$value{'mid'}">
<input type=hidden name="pass" value="$value{'pass'}">
<input type=hidden name="mode" value="init">
<input type=hidden name="amt2" value="$amt2">
<table border="1" cellpadding="3" cellspacing="0" width=450>
	<tr>
		<td align=center valign="middle" bgcolor="#f0fff0"><b>報酬合計</b></td>
		<td align=center valign="middle" bgcolor="#f0fff0"><b>払出合計</b></td>
		<td align=center valign="middle" bgcolor="#f0fff0"><b>$pay_3</b></td>
		$pay_1
	</tr>
	<tr>
		<td align=right valign=middle bgcolor="#ffffff"><FONT color="#000000">$mm_accum$ms_unit</FONT></td>
		<td align=right valign=middle bgcolor="#ffffff"><FONT color="#000000">$mm_payout$ms_unit</FONT></td>
		<td align=right valign=middle bgcolor="#ffffff"><FONT color="#000000">$payout$ms_unit</FONT></td>
		$pay_2
	</tr>
</table>
払出は$ms_delay$ms_unit以上から受け付けています。
</form>
$downline
<br>
<hr>
<br>
<b>【宣伝用ＵＲＬ】</b>
<table border="1" cellpadding="3" cellspacing="0">
	<tr>
		<td>
			全商材用
		</td>
		<td>
			<a href="$script00\?sid=$mm_mid" target="_blank">$script00\?sid=$mm_mid</a>
		</td>
	</tr>
);

	if (!open(MGOD,"$mgodfile")) { &error("ファイルが開けませんでした。mgodfile","管理者までご連絡ください。"); }
	@mgod = <MGOD>;
	close(MGOD);
	$f = 0;
	foreach $mgod (@mgod) {
		$mgod =~ s/\n//g;
		&mgod_split;
		if ($mg_page) {
			$html  .= qq(
	<tr>
		<td>
			$mg_goods
		</td>
		<td>
			<a href="$script00\?sid=$mm_mid\&gid=$mg_gid" target="_blank">$script00\?sid=$mm_mid\&gid=$mg_gid</a>
		</td>
	</tr>
);
		}
	}

	$html  .= qq(
</table>
<br>
);

	&footer;

}

# ------------------------------------------------------------------------------

sub payment {

	if ((!$mm_bank) || (!$mm_branch) || (!$mm_actp) || (!$mm_acct) || (!$mm_acnm)) {
		print "Location: $script12\?mid=$mm_mid\&pass=$mm_pass\&mode=detail\n\n";
		exit;
	}

	if (!open(MPAY,"$mpayfile")) { &error("ファイルが開けませんでした。mpayfile","管理者までご連絡ください。"); }
	@mpay = <MPAY>;
	close(MPAY);
	$payout = 0;
	foreach $mpay (@mpay) {
		$mpay =~ s/\n//g;
		&mpay_split;
		if ($value{'mid'} eq $mp_mid) {
			$payout = $payout + $mp_payout;
		}
	}

	$amt2 = $mm_accum - $mm_payout - $payout;
	if ($amt2 >= $ms_delay) {
		$mp_mid = $mm_mid;
		$mp_name = $mm_name;
		$mp_payout = $amt2;
		$mp_effdt = $time;
		&mpay_join;
		open(MPAY,">> $mpayfile");
		flock(MPAY,2);
		seek(MPAY,0,2);
		print MPAY "$mpay\n";
		close (MPAY);
		&sendmail;
	}

}

# ------------------------------------------------------------------------------

sub history {

	&header("会員画面");
	&lnk;

	$html  .= qq($ms_msg2<h4>販売実績</h4>
<table border="0" cellpadding="5" cellspacing="1" bgcolor="#000000" width=520>
	<tr>
		<td align=center bgcolor="#f0fff0" width=240>
			<b>販売商品</b>
		</td>
		<td align=center bgcolor="#f0fff0" width=120>
			<b>販売件数</b>
		</td>
		<td align=center bgcolor="#f0fff0" width=120>
			<b>販売報酬</b>
		</td>
	</tr>
);

	if (!open(MGOD,"$mgodfile")) { &error("ファイルが開けませんでした。mgodfile","管理者までご連絡ください。"); }
	@mgod = <MGOD>;
	close(MGOD);
	foreach $mgod (@mgod) {
		$mgod =~ s/\n//g;
		&mgod_split;
		$cnt = 0;
		$amt = 0;
		$ggetfile = $file . '/' . $mm_mid . '/gget_' . $mg_gid . '.cgi';
		if (-e "$ggetfile") {
			if (!open(GGET,"$ggetfile")) { &error("ファイルが開けませんでした。ggetfile","管理者までご連絡ください。"); }
			@gget = <GGET>;
			close(GGET);
			foreach $gget (@gget) {
				$gget =~ s/\n//g;
				&gget_split;
				$cnt = $cnt + 1;
				$amt = $amt + $gg_amt;
			}
		}
		$cnt = &yen("$cnt");
		$amt = &yen("$amt");
		$html  .= qq(
	<tr>
		<td align=left bgcolor="#ffffff">
			$mg_goods
		</td>
		<td align=right bgcolor="#ffffff">
			$cnt件
		</td>
		<td align=right bgcolor="#ffffff">
			$amt円
		</td>
	</tr>
);
	}

	$html  .= qq(
</table>
<br>
);

	&footer;

}

# ------------------------------------------------------------------------------

sub detail {

	&header("会員画面");
	&lnk;

	&detail_disp;

	&footer;

}

# ------------------------------------------------------------------------------

sub detail_disp {

	if ((!$mm_bank) || (!$mm_branch) || (!$mm_actp) || (!$mm_acct) || (!$mm_acnm)) {
		$bb = qq(<font color="#ff0000"><b>振込先銀行情報が不完全です</b></font><br>);
	}

	$cc1 = ""; $cc2 = "";
	if ($mm_actp eq "1") { $cc1 = " selected"; }
	elsif ($mm_actp eq "2") { $cc2 = " selected"; }

	$mm_info =~ s/<br>/\n/g;

	$html  .= qq($ms_msg2<h4>登録情報更新</h4>
$bb
<FORM METHOD="post" ACTION="$script12">
<INPUT TYPE=hidden NAME="mode" VALUE="regist">
<input type=hidden name="mid" value="$value{'mid'}">
<input type=hidden name="pass" value="$value{'pass'}">
<table border="0" cellpadding="5" cellspacing="1" bgcolor="#000000" width=520>
	<tr>
		<td align=left valign=top bgcolor="#f0fff0" width=120>
			<b>ＩＤ</b>
		</td>
		<td valign=middle bgcolor="#ffffff">
			<b><FONT color="#000000">$mm_mid</FONT></b>
		</td>
	</tr>
	<tr>
		<td align=left valign=top bgcolor="#f0fff0">
			<b>パスワード</b>
		</td>
		<td valign=middle bgcolor="#ffffff">
			<input type=text name="passnew" value="$mm_pass" size=10>
		</td>
	</tr>
	<tr>
		<td align=left valign=top bgcolor="#f0fff0">
			<b>メールアドレス</b>
		</td>
		<td valign=middle bgcolor="#ffffff">
			<input type=text name="mail" value="$mm_mail" size=50>
		</td>
	</tr>
	<tr>
		<td align=left valign=top bgcolor="#f0fff0">
			<b>お名前</b>
		</td>
		<td valign=middle bgcolor="#ffffff">
			<input type=text name="name" value="$mm_name" size=30>
		</td>
	</tr>
	<tr>
		<td align=left valign=top bgcolor="#f0fff0">
			<b>銀行名</b>
		</td>
		<td valign=middle bgcolor="#ffffff">
			<input type=text name="bank" value="$mm_bank" size=30>
		</td>
	</tr>
	<tr>
		<td align=left valign=top bgcolor="#f0fff0">
			<b>支店名</b>
		</td>
		<td valign=middle bgcolor="#ffffff">
			<input type=text name="branch" value="$mm_branch" size=30>
		</td>
	</tr>
	<tr>
		<td align=left valign=top bgcolor="#f0fff0">
			<b>口座番号</b>
		</td>
		<td valign=middle bgcolor="#ffffff">
			<select name="actp">
				<option value="1"$cc1>$actp[1]</option>
				<option value="2"$cc2>$actp[2]</option>
			</select>
			<input type=text name="acct" value="$mm_acct" size=12>
		</td>
	</tr>
	<tr>
		<td align=left valign=top bgcolor="#f0fff0">
			<b>口座名義</b>
		</td>
		<td valign=middle bgcolor="#ffffff">
			<input type=text name="acnm" value="$mm_acnm" size=30>
		</td>
	</tr>
</table>
<br>
<input type=submit name=upd value="　更　新　">
</form>
);

}

# ------------------------------------------------------------------------------

sub regist {

	if ($value{'upd'}) {
		if (!$value{'mail'}) { &error("入力がありません","メールアドレス"); }
		elsif ($value{'mail'} !~ /^[\w.-]+\@([\w-]+\.)+\w+$/) { &error("メールアドレスエラー","メールアドレスを半角英数字と-_.\@で入力してください。"); }
		if (!$value{'name'}) { &error("入力がありません","お名前"); }
		if (!$value{'passnew'}) { &error("入力がありません","パスワード"); }
		elsif ($value{'passnew'} =~ /\W/) { &error("パスワードエラー","半角英数字で入力してください"); }
		if (!$value{'bank'}) { &error("入力がありません","銀行名"); }
		if (!$value{'branch'}) { &error("入力がありません","支店名"); }
		if (!$value{'acct'}) { &error("入力がありません","口座番号"); }
		elsif ($value{'acct'} =~ /[^0-9]/) { &error("口座番号エラー","半角数字で入力してください"); }
		if (!$value{'acnm'}) { &error("入力がありません","口座名義"); }
	}

	$value{'pass'} = $value{'passnew'};

	if (!open(MMST,"+< $mmstfile")) { &error("ファイルが開けませんでした。mmstfile","管理者までご連絡ください。"); }
	$mmst = <MMST>;
	flock(MMST,2);
	seek(MMST,0,0);
	$mmst =~ s/\n//g;
	&mmst_split;
	$mm_pass = $value{'pass'};
	$mm_name = $value{'name'};
	$mm_mail = $value{'mail'};
	$mm_bank = $value{'bank'};
	$mm_branch = $value{'branch'};
	$mm_actp = $value{'actp'};
	$mm_acct = $value{'acct'};
	$mm_acnm = $value{'acnm'};
	&mmst_join;
	print MMST "$mmst\n";
	truncate(MMST, tell(MMST));
	close(MMST);

	$mmstfile = $file . '/mmst.cgi';
	if (!open(MMST,"+< $mmstfile")) { &error("ファイルが開けませんでした。mmstfile","管理者までご連絡ください。"); }
	@mmst = <MMST>;
	flock(MMST,2);
	seek(MMST,0,0);

	foreach $mmst (@mmst) {
		$mmst =~ s/\n//g;
		&mmst_split;
		if ($value{'mid'} eq $mm_mid) {
			$mm_pass = $value{'pass'};
			$mm_name = $value{'name'};
			$mm_mail = $value{'mail'};
			$mm_bank = $value{'bank'};
			$mm_branch = $value{'branch'};
			$mm_actp = $value{'actp'};
			$mm_acct = $value{'acct'};
			$mm_acnm = $value{'acnm'};
			&mmst_join;
		}
		print MMST "$mmst\n";
	}

	truncate(MMST, tell(MMST));
	close(MMST);

	&header("会員画面");
	&lnk;

	$html  .= qq(
<br>
<br>
<u><h4><font color="#0080C0">更新完了</font></h4></u>
<br>
<br>
<br>
);

	&footer;

}

# ------------------------------------------------------------------------------

sub sendmail {

	$amt = &yen("$mp_payout");

	$mr_head3 =~ s/<br>/\n/g;
	$mr_head3 =~ s/\%name/$mm_name/g;
	$mr_foot3 =~ s/<br>/\n/g;
	$mr_foot3 =~ s/\%name/$mm_name/g;

	$subject = $mr_sub3;
	$from = mimeencode(jcode'jis($mr_mail3));
	$to = mimeencode(jcode'jis($mr_mail3));

	if (!open(OUT,"| $sendmail -t")) { &error('システム異常','申し訳ありませんが何らかの原因で処理できません.'); }
	print OUT "X-MSMail-priority: High\n";
	print OUT "X-Mailer: Microsoft Outlook Express 6.00.2720.3000\n";
	print OUT "X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2600.0000\n";
	print OUT "To: $mm_mail\n";
	print OUT "From: $from\n";
	&jis("Subject: $subject"); print OUT "$msg\n";
	print OUT "Content-Transfer-Encoding: 7bit\n";
	print OUT "Content-Type: text/plain\; charset=\"ISO-2022-JP\"\n\n";

	&jis("$mr_head3"); print OUT "$msg\n";

	$mailstr = "$bar
■専用ページ
$script12
ＩＤ：$mm_mid
パスワード：$mm_pass
請求額：$amt$ms_unit
銀行名：$mm_bank
支店名：$mm_branch
口座番号：$actp[$mm_acct]$mm_acct
口座名義：$mm_acnm
$bar";

	&jis("$mailstr"); print OUT "$msg\n";

	&jis("$mr_foot3"); print OUT "$msg\n";

	print OUT "\n";
	close(OUT);

	$subject = "$mr_sub3【管理者コピー】";

	if (!open(OUT,"| $sendmail -t")) { &error('システム異常','申し訳ありませんが何らかの原因で処理できません.'); }
	print OUT "X-MSMail-priority: High\n";
	print OUT "X-Mailer: Microsoft Outlook Express 6.00.2720.3000\n";
	print OUT "X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2600.0000\n";
	print OUT "To: $to\n";
	print OUT "From: $from\n";
	&jis("Subject: $subject"); print OUT "$msg\n";
	print OUT "Content-Transfer-Encoding: 7bit\n";
	print OUT "Content-Type: text/plain\; charset=\"ISO-2022-JP\"\n\n";

	&jis("$mr_head3"); print OUT "$msg\n";

	&jis("$mailstr"); print OUT "$msg\n";

	&jis("$mr_foot3"); print OUT "$msg\n";

	print OUT "\n";
	close(OUT);

}

# ------------------------------------------------------------------------------

sub lnk {

	$html  .= qq(
<TABLE border=0 cellspacing=0 cellpadding=2>
<TR>
<form method="post" action="$script12">
<TD align=center width=150>
<input type=hidden name="mid" value="$value{'mid'}">
<input type=hidden name="pass" value="$value{'pass'}">
<input type=hidden name="mode" value="init">
<input type=submit value="トップ" class="submit_btn">
</TD>
</form>
<form method="post" action="$script12">
<TD align=center width=150>
<input type=hidden name="mid" value="$value{'mid'}">
<input type=hidden name="pass" value="$value{'pass'}">
<input type=hidden name="mode" value="history">
<input type=submit value="販売実績" class="submit_btn">
</TD>
</form>
<form method="post" action="$script12">
<TD align=center width=150>
<input type=hidden name="mid" value="$value{'mid'}">
<input type=hidden name="pass" value="$value{'pass'}">
<input type=hidden name="mode" value="detail">
<input type=submit value="登録情報更新" class="submit_btn">
</TD>
</form>
</TR>
</TABLE>
);

}
1;
