#!/usr/bin/perl
# 
# ↑多くのプロバイダーはこのままでokですが、違う場合は
# プロバイダーの指定に合わせて変更して下さい
# 
# ■■i-mode くじ kuji.cgi■■
# ■■ver1.0 Jun.8.2000■■
# ■■Copyright(C)2000 AkiSoft.com ■■
# ■■http://www.akisoft.com/■■
# 個人が自分用に営利目的以外に使用されるのは自由です。
# 営利目的、法人の使用、または、他の人への設置は登録が必要です。
# 　登録番号： ここに記入
# -----------------------------------------------------------
# ■初期設定部
# 日本語コード変換モジュールのパス指定
#   この例は同一のディレクトリにjcode.plを配置している。
#   ひとつ上のディレクトリに置く場合は'../jcode.pl'と書く
require 'jcode.pl';

# 戻る場所のURLを設定
$URL ='http://www.nandemo.com/j/jsky.html';

# ■コメントを変えて楽しんで下さい。

# 初期画面のタイトル
$Title1 ='jmode クジ';

# 結果表示画面のタイトル
$Title2 ='クジの結果';

# -----------------------------------------------------------
if ($ENV{'REQUEST_METHOD'} eq "POST") {
    read(STDIN, $formdata, $ENV{'CONTENT_LENGTH'});
} else {
    $formdata = $ENV{'QUERY_STRING'};
}

@pairs = split(/&/,$formdata);

foreach $pair (@pairs) {
    ($name, $value) = split(/=/, $pair);
    $value =~ tr/+/ /;
    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    $value =~ s/</&lt;/g;
    $value =~ s/>/&gt;/g;
    $value =~ s/\n//g;
    $value =~ s/ /　/g;
    $value =~ s/\,/，/g;
    &jcode'h2z_sjis(*value);
    &jcode'sjis(*value);
    $DAT{$name} = $value;
}

if ($ENV{'HTTP_USER_AGENT'} =~ /DoCoMo/) {
    $iMode = 1;
} else {
    $iMode = 0;
}

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); #時刻調整

@week = ('日','月','火','水','木','金','土');

$year = $year + 1900;
$mon = $mon + 1;
$days[4] = $days[6] = $days[9] = $days[11] = 30;
$days[1] = $days[3] = $days[5] = $days[7] = $days[8] = $days[10] = $days[12] = 31;

if ($year % 4) {
    $days[2] = 28;
} else {
    $days[2] = 29; 
}

# ■初期画面
print (<<EOF);
Content-Type: text/html\n
<HTML><HEAD><TITLE>i-mode Kuji</TITLE>
</HEAD><BODY>
EOF

if ($DAT{mode} eq "") {
    print "$Title1<br>";
    print "<form action='./kuji.cgi' method='POST'>";
    print "<input type='hidden' name='mode' value='kinyu'>";
    print "くじの種類<br>";
    print "<select name='shurui' size=1>";
    print "<option value=1>当選を決める";
    print "<option value=2>落選を決める";
    print "<option value=3>順番を決める";
    print "</select><br>";
    print "参加人数<br>";
    print "<select name='sanka' size=1>";
    print "<option value=2>2";
    print "<option value=3>3";
    print "<option value=4>4";
    print "<option value=5>5";
    print "<option value=6>6";
    print "<option value=7>7";
    print "<option value=8>8";
    print "<option value=9>9";
    print "<option value=10>10";
    print "<option value=11>11";
    print "<option value=12>12";
    print "</select><br>";
    print "当選(落選)数<br>";
    print "<select name='tosen' size=1>";
    print "<option value=1>1";
    print "<option value=2>2";
    print "<option value=3>3";
    print "<option value=4>4";
    print "<option value=5>5";
    print "<option value=6>6";
    print "<option value=7>7";
    print "<option value=8>8";
    print "<option value=9>9";
    print "<option value=10>10";
    print "<option value=11>11";
    print "<option value=12>12";
    print "</select><br>";    
    print "<input type='submit' value='名前を記入'></form>";
    if ($URL) {
        print "<a href=$URL accesskey='0'>[0] 戻る</a><br>";
    }
    if ($iMode) {
        print "AkiSoft.com";
    } else {
        print "<a href='http://www.nandemo.com/'>ナンデモドットコム</a>";
    }
}

# ■名前の記入
if ($DAT{mode} eq "kinyu") {
    $shuru = $DAT{shurui};
    $sank = $DAT{sanka};
    $tose = $DAT{tosen};
    if (($shuru eq 3)||($sank >= $tose)){
        print "名前を記入<br>";
        print "<form action='./kuji.cgi' method='POST'><hr>";
        for($i = 0 ; $i < $sank ; $i++) {
            print "<input type='text' name='T$i' value='#$i' istyle='1' size=10><br>";
        }
        print "未記入の場合は番号で結果を発表\<br>";
        print "<input type='hidden' name='mode' value='jikko'>";
        print "<input type='hidden' name='shur' value='$shuru'>";
        print "<input type='hidden' name='san' value='$sank'>";
        print "<input type='hidden' name='tos' value='$tose'>";
        print "<input type='submit' value='抽選実行'></form>";
    } else {
        print "参加者＜当選者<br>もう一度記入<br>";
        print "<a href='./kuji.cgi' accesskey='0'>[0] 戻る</a>";
    }
}

# ■結果発表
if ($DAT{mode} eq "jikko") {
    $shuru = $DAT{shur};
    $sank = $DAT{san};
    $tose = $DAT{tos};
    for ($k =0; $k < $sank ;$k++) {
        $T[$k] =$DAT{"T$k"};
    }    
    srand(time|$$);
    $kekka = rand($sank);
    $a = rand($sank);
    $b = rand($sank);
    if ($shuru eq 1) {
        print "当選者の発表\<hr>";
        for ($j=0 ; $j < $tose ; $j++) {
            $c =rand($sank-$j);
            $cc = int($c);
            $l = $j+1;
            $p=0;
            $T[$cc];
            print "$l:$T[$cc]<br>";
            for($k=0;$k<($sank-$j);$k++){
                if ($T[$k] ne $T[$cc]) {
                    $temp[$p] = $T[$k];
                    $p++;
                }
            }
            @T = @temp;
        }
        print "<hr><a href='./kuji.cgi' accesskey='0'>[0] 戻る</a>";        
    } elsif($shuru eq 2 ) {
        print "落選者の発表\<br>";
        for ($j=0 ; $j < $tose ; $j++) {
            $c =rand($sank-$j);
            $cc = int($c);
            $l = $j+1;
            $p=0;
            $T[$cc];
            print "$l:$T[$cc]<br>";
            for($k=0;$k<($sank-$j);$k++){
                if ($T[$k] ne $T[$cc]) {
                    $temp[$p] = $T[$k];
                    $p++;
                }
            }
            @T = @temp;
        }
        print "<hr><a href='./kuji.cgi' accesskey='0'>[0] 戻る</a>";        
    } else {
        print "順番の発表\<br>";
        for ($j=0 ; $j < $sank ; $j++) {
            $c =rand($sank-$j);
            $cc = int($c);
            $l = $j+1;
            $p=0;
            $T[$cc];
            print "$l:$T[$cc]<br>";
            for($k=0;$k<($sank-$j);$k++){
                if ($T[$k] ne $T[$cc]) {
                    $temp[$p] = $T[$k];
                    $p++;
                }
            }
            @T = @temp;
        }
        print "<hr><a href='./kuji.cgi' accesskey='0'>[0] 戻る</a>";        
    }
}

# ■HTMLの最後

print "</BODY></HTML>";

# --END--
