#counter
**内容 [#x2307cb2]
#setlinebreak(on)
#contents
**1.目的 [#l604e78e]
部署のメンバーが今どこで何しているのか把握するために使用します。
電話対応、取次ぎがスムーズになるかと思われます。
(入力するのだけは面倒。社内の勤務システムと連動できればさらに便利になりますね。。)
**2.ツールのURL [#w5c16ff2]
http://hinata.la.coocan.jp/tool/zaseki_koushin.cgi
(適当に更新していただいてまったく問題ありません。むしろたくさんいじってみて下さい。)

**3.機能の概要 [#re0dd3a1]
3-1.出勤状況を座席表に反映させ表示する。
  「向きを逆にする」をクリックすると逆向きの座席表になる。
3-2.出勤状況は更新ページから更新できる。
  「出勤状況を更新する」をクリックすると更新用ページが表示され、情報を更新できる。
  (個別更新、チーム一括更新ができる。)
3-3.ロケーション(休務)ごとに並べえる。
  「ロケーション(休務)ごとに表示する」をクリックすると
3-4.取次ぎ方法を表示する。
  座席表の各座席にマウスをポイントすると、取り次ぎ方法が表示される。
  別ロケーションの場合はその電話番号が出力される。

**4.使用イメージ [#peedc9d7]
4-1.出勤状況の更新
  朝のミーティングの前などに各チームにて「出勤状況更新ページ」
  から情報を更新する。
4-2.出勤状況の確認
  電話がかかってきた時など、その人がどこにいるのか確認するためには
  座席表(もしくは逆向きの座席表)を表示する。
  
 ※ 日中情報が更新されることもあるためすでに表示している場合は
   「最新の情報を表示する」をクリックした方が無難です。
 ※ その情報がいつの情報であるか、最終更新日時も座席表に表示されている。

4-3.ロケーションごとに表示
  「ロケーション(休務)ごとに表示する」のページは、
  まとめて報告したい時(朝のミーティングなど)にはこのページを確認すると便利かと。

 ※ こツールの例では、大手町を本拠地としていてよく新宿ロケーションに出かけることがある、という設定です。

**5.ディレクトリ構成 [#e3f31060]
 zaseki_asami.cgi
 zaseki_hyouji.cgi
 zaseki_koushin.cgi
 zaseki_data/poptxt.js   ←ポップアップを出力するためのJavascript
            /url.txt     ←内線番号と各人のURLを対応付けたtxt
             zaseki1.txt ←出勤状況のデータたち
             zaseki2.txt
             zaseki3.txt
             zaseki4.txt
             zaseki5.txt
            /tmp/        ←情報の更新時に一時的に使用するディレクトリ
            /jpg/        ←顔写真用の画像置き場。内線番号.JPG(内線番号.gif)で保存。
※poptxt.jsのソースは[[HIMAJIN>http://himajin.moo.jp/]]様のページから頂きました。
 誠にありがとうございます。
※顔写真用の画像は[[First Moon>http://www.first-moon.com/]]様のページから拝借しました。
 誠にありがとうございます。

座席データ等はこんな感じ。
http://hinata.la.coocan.jp/tool/zaseki_data/zaseki1.txt
http://hinata.la.coocan.jp/tool/zaseki_data/zaseki2.txt
http://hinata.la.coocan.jp/tool/zaseki_data/zaseki3.txt
http://hinata.la.coocan.jp/tool/zaseki_data/zaseki4.txt
http://hinata.la.coocan.jp/tool/zaseki_data/zaseki5.txt
http://hinata.la.coocan.jp/tool/zaseki_data/memberinfo.txt


**6.ソースイメージ [#v8d7c0fa]
***6-1.zaseki_koushin.cgi [#xa7aa111]
 #!/usr/bin/perl
 
 sub decode {
     local($args, $n_read, *terms, $tag, $value);
 
     $ENV{'REQUEST_METHOD'} eq "POST" ?
     ($n_read = sysread(STDIN, $args, $ENV{'CONTENT_LENGTH'})):
     ($args = $ENV{'QUERY_STRING'});
 
     @terms = split('&', $args);
 
     foreach (@terms) {
         ($tag, $value) = split(/=/, $_, 2);
         $value =~ s/\+/ /g;
         $value =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("c", hex($1))/ge;
         $tags{$tag} = $value;       # tags is global
     }
 }
 
 sub printradio{
     my $checked ="";
     if ($_[0] eq $_[1]){$checked="checked";}
     print <<EOL;
     <input type="radio" name="locate$_[2]_$_[3]" value="$_[0]" $checked>$_[0]
 EOL
 }
 sub printform{
     my $color ="white";
     if($_[5]%2==1){$color="#CCFFFF";}
     print <<EOL;
         <tr bgcolor="$color"><td width="120"> $_[1]</td>
         <td>
 EOL
     &printradio("大手町",$_[2],$_[4],$_[0]);
     &printradio("新宿",$_[2],$_[4],$_[0]);
     &printradio("年休",$_[2],$_[4],$_[0]);
     &printradio("週休",$_[2],$_[4],$_[0]);
     &printradio("長期出張",$_[2],$_[4],$_[0]);
     &printradio("深夜勤務",$_[2],$_[4],$_[0]);
     &printradio("研修",$_[2],$_[4],$_[0]);
     &printradio("その他",$_[2],$_[4],$_[0]);
     print "</td>";
     print <<EOL;
     <td> <input type=\"text\" name="bikou$_[4]_$_[0]" size="30" maxlength="40" value="$_[3]"></td>
     <td> <input type="submit" value="個別更新" name="submit$_[4]_$_[0]"> </td>
     </tr>
 EOL
 }
 sub team{
     my $color="";
     my $bikou="";
     my $koushin="";
     my $count=0;
     my $teamname="";
     my $filename=$_[0];
     my $teamnum="";
 
     if($_[0]=~/zaseki([0-9])\.txt/){
         $teamnum=$1;
     }else{
         return;
     }
 
     open(F,$filename);
     while(<F>){
         if($_=~/teamname=([\S\s]+),[0-9\-\/\s]+/){
             $teamname=$1;
             print <<EOL;
             <input type="checkbox" name="check$teamnum" value="on"> $teamname
             <table><tr><td></td><td><center>出勤状況</td><td><center>備考</td><td></td></tr>
 EOL
         }
         if($_=~/([0-9]*),([0-9\-]*),(\S*),(\S*),([\S\s]*),[0-9\s\/:]*/){
             if($4 eq ""){next;}
             &printform("$1","$3","$4","$5",$teamnum,$count);
             $count++;
         next;
         }
         if($_=~/([0-9]*),(\S*),(\S*),([\S\s]*),[0-9\s\/:]*/){
             if($3 eq ""){next;}
             &printform("$1","$2","$3","$4",$teamnum,$count);
             $count++;
         }
     }
     print <<EOL;
     <tr><td></td><td></td><td></td><td> <input type="submit" value="このチームをすべて更新" name="submit${teamnum}_all"></td></tr>
     </table>
     <hr>
 EOL
     close(F);
 }
 
 sub print_menu(){

     print <<"EOL";
     <table>
     <tr>
     <td>
     <form method="POST" action="zaseki_koushin.cgi">
         <input type="hidden" name="gyaku" value="$tags{gyaku}">
         <input type="hidden" name="photo" value="$tags{photo}">
         <input type="submit" value="最新の情報を表示する" name="sonomama">
     </form>
     </td>
     <td width=20></td>
     <td>
     <form method="POST" action="zaseki_hyouji.cgi">
         <input type="hidden" name="gyaku" value="$tags{gyaku}">
         <input type="hidden" name="photo" value="$tags{photo}">
         <input type="submit" value="情報を更新せずに座席表を表示する" name="sonomama">
     </form>
     </td>
     <tr>
     </table>
 EOL
 }
 if ($ENV{'REQUEST_METHOD'} eq "POST") {
     &decode();
 }
 
 print <<"EOL";
 Content-type: text/html
 
 <HTML>
     <HEAD>
         <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
         <TITLE>出勤状況更新ページ</TITLE>
     </HEAD>
 <BODY>
 EOL
 &print_menu();
 print <<"EOL";
 <hr>
 <form method="POST" action="zaseki_hyouji.cgi">
 EOL
 
 @files = glob ("zaseki_data/zaseki*.txt");
 foreach $i (@files){
     &team("$i");
 }
 
 print<<"EOL";
 <table align="center">
 <tr><td><input type="submit" value="チェックしたチームを一括更新" name="submitchecked_all"></td><td></td><td></td></tr>
 <tr><td align="right"><input type="submit" value="全チームを一括更新" name="submitall_all"></td><td><font size="2">←</font></td><td><font size="2">「全チームを一括更新」使用時は更新日時がすべて現在になる<br>ことに注意してください。</font></td></tr>
 </table>
 <input type="hidden" name="gyaku" value="$tags{gyaku}">
 <input type="hidden" name="photo" value="$tags{photo}">
 </form>
 <hr>
 EOL
 &print_menu();
 print <<"EOL";
     </BODY>
 </HTML>
 EOL

***6-2.zaseki_hyouji.cgi [#gd9e2ba1]
 #!/usr/bin/perl
 
 $title="";
 $gyaku=0;
 $photo=0;
 $photo_msg="";
 @files = glob ("zaseki_data/zaseki*.txt");
 
 sub decode {
     local($args, $n_read, *terms, $tag, $value);
 
     $ENV{'REQUEST_METHOD'} eq "POST" ?
     ($n_read = sysread(STDIN, $args, $ENV{'CONTENT_LENGTH'})):
     ($args = $ENV{'QUERY_STRING'});
 
     @terms = split('&', $args);
 
     foreach (@terms) {
         ($tag, $value) = split(/=/, $_, 2);
         $value =~ s/\+/ /g;
         $value =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("c", hex($1))/ge;
         $tags{$tag} = $value;       # tags is global
     }
 }
 
 sub kobetsu_koushin{
     my $updated_line="";
     my $locate="locate${_[0]}_${_[1]}";
     my $bikou="bikou${_[0]}_${_[1]}";
     $tags{$bikou}=~s/,/、/g;
     my $team=${_[0]};
     my $naisen=${_[1]};
     ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
     my $yyyymmddHHMM = sprintf("%04d/%02d/%02d %02d:%02d", $year + 1900, $mon +1, $mday, $hour, $min);
     open(OLD,"zaseki_data/zaseki$team.txt");
     while(<OLD>){
         if($_=~/$naisen,([0-9\-]*),(\S*),\S*,[\S\s]*,[0-9\s\/:]*/){
             $updated_line="$naisen,$1,$2,$tags{$locate},$tags{$bikou},$yyyymmddHHMM\n";
             last;
         }
         if($_=~/$naisen,(\S*),\S*,[\S\s]*,[0-9\s\/:]*/){
             $updated_line="$naisen,$1,$tags{$locate},$tags{$bikou},$yyyymmddHHMM\n";
             last;
         }
     }
 
     close(OLD);
 
     open(TMP,">zaseki_data/tmp/zaseki${team}_tmp.txt");
     open(OLD,"zaseki_data/zaseki$team.txt");
     while(<OLD>){
         if($_=~/$naisen/){print TMP $updated_line;}else{print TMP $_;}
     }
     close(OLD);
     close(TMP);
     open(TMP,"zaseki_data/tmp/zaseki${team}_tmp.txt");
     open(NEW,">zaseki_data/zaseki$team.txt");
     while(<TMP>){
         print NEW $_;
     }
     close(NEW);
     close(TMP);
 }
 sub button_check{
     my $button="";
     $button="submit$_[1]_all";
     if($tags{$button} ne ""){return $button;}
     open(F,$_[0]);
     while(<F>){
         if($_=~/^([0-9]{4})/){
             $button="submit$_[1]_$1";
             if($tags{$button} ne ""){return $button;}
         }
     }
 }
 
 sub which_button{
     my $button="";
     my $teamnum=0;
     foreach $filename (@files){
         if($filename=~/zaseki([0-9])\.txt/){
             $teamnum=$1;
         }else{
             next;
         }
         $button=&button_check("$filename","$teamnum");
         if($button ne ""){return $button;}
     }
     return $button;
 }
 
 sub data_koushin{
 
     if($tags{sonomama} ne ""){return;}
     if($tags{submitall_all} ne ""){
 
         foreach $filename (@files){
             if($filename=~/zaseki([0-9])\.txt/){
                 my $team=$1;
                 open(TEAM,"$filename");
                 while(<TEAM>){
                     if($_=~/^([0-9]{4})/){
                         &kobetsu_koushin("$team","$1");
                     }
                 }
                 close(TEAM);
             }
         }
         return;
     }
     if($tags{submitchecked_all} ne ""){
         foreach $filename (@files){
             if($filename=~/zaseki([0-9])\.txt/){
                 my $team=$1;
                 my $checknum="check$team";
                 if($tags{$checknum} ne ""){
                     open(TEAM,"$filename");
                     while(<TEAM>){
                         if($_=~/^([0-9]{4})/){
                             &kobetsu_koushin("$team","$1");
                         }
                     }
                     close(TEAM);
                 }
             }
         }
         return;
         
     }
     my $submitted_button= &which_button();
     $submitted_button =~s/submit//g;
     @list = split( /_/ , $submitted_button );
     my $team=$list[0];
     my $naisen=$list[1];
 
     if($naisen eq "all"){
         open(TEAM,"zaseki_data/zaseki$team.txt");
         while(<TEAM>){
             if($_=~/^([0-9]{4})/){
                 &kobetsu_koushin("$team","$1");
             }
         }
         close(TEAM);
     }else{
         &kobetsu_koushin("$team","$naisen");
     }
 }
 sub gyakuflg_koushin{
     if($tags{hanten} ne ""){
         if($tags{gyaku}==1){$gyaku=0;}elsif($tags{gyaku}==0){$gyaku=1;}
     }else{
         $gyaku=$tags{gyaku};
     }
 }
 sub photoflg_koushin{
     if($tags{photohanten} ne ""){
         if($tags{photo}==1){$photo=0;}elsif($tags{photo}==0){$photo=1;}
     }else{
         $photo=$tags{photo};
     }
 }
 sub desidecolor{
     if($_[0] eq "年休")    {return "gray";}
     if($_[0] eq "週休")    {return "gray";}
     if($_[0] eq "研修")    {return "gray";}
     if($_[0] eq "長期出張"){return "gray";}
     if($_[0] eq "その他")  {return "gray";}
     if($_[0] eq "深夜勤務"){return "#9999CC";}
     if($_[0] eq "大手町")  {return "#99CCCC";}
     if($_[0] eq "新宿")    {return "#99CC99";}
 }
 sub setbordercolor{
     if($_[0]==1)    {return "#b8860b";}
     if($_[0]==2)    {return "#006400";}
     if($_[0]==3)    {return "#006400";}
     if($_[0]==4)    {return "#000099";}
     if($_[0]==5)    {return "#800080";}
 }
 sub setmsg{
     my $naisen=$_[0];
     my $name=$_[1];
     my $locate=$_[2];
     if($locate eq "大手町" || $locate eq "深夜勤務"){
         if($naisen eq "0000"){return "";}
         else{
             return "'■取次ぎ方法1 パーク保留<br> 1-1.「パーク保留」ボタンを押す。<br>"
                     . " 1-2.表示されたパーク番号を$nameさんに伝える。<br>"
                     . " 1-3.$nameさんはその番号を入力して発信する。<br>"
                     . "■取次ぎ方法2 転送<br> 2-1.「転送/音声メール」ボタンを押す。<br>"
                     . " 2-2.<font size=4><b>$naisen</b></font>を入力し「決定/発信」ボタンを押す。<br>"
                     . " 2-3.$nameさんが出たら切る。<br>"
                     . "   (転送をやめたい場合は「取消」ボタンを押す。)'";
         }
     }elsif($locate eq "新宿"){
         return "'■新宿電話番号<br>"
             . " 03-xxxx-xxxx'";
     }else{
         return "";
     }
 }
 
 
 sub zaseki_print{
     my $naisen = $_[0];
     my $name   = $_[1];
     my $locate = $_[2];
     my $bikou  = $_[3];
     my $koushin= $_[4];
     my $gaisen = $_[5];
     my $count  = $_[6];
     my $msg="";
     my $head="";
     my $tail="";
     my $color="";
     my $local_bordercolor="bgcolor=$bordercolor";
     my $img="";
     my $url="";
     my $naisennamelocate="";
     my $width=0;
     my $k_width=0;
 
     if($photo==1 && $name ne ""){
 #       $img="<img src=\"./zaseki_data/jpg/$naisen.JPG\" width=\"50\" height=\"55\">";
         $img="<img src=\"./zaseki_data/jpg/$naisen.gif\" width=\"50\" height=\"55\">";
     }
     if($naisen ne ""){
         open(URL,"./zaseki_data/url.txt");
         while(<URL>){
             if($_=~/$naisen,(\S+)\s+\/\//){
                 $url="onClick=\"window.open('$1','_blank')\"";
             }
         }
         close(URL);
     }
     if($gaisen ne ""){$gaisen="<br>$gaisen";}
     if($photo==0){
         $width=140;
         $k_width=160;
         $naisennamelocate=<<EOL;
             <font size = "1">$naisen $gaisen</font><br>
             <b>$name </b><br>
             $locate <br>
 
 EOL
     }elsif($photo==1){
         $width=160;
         $k_width=180;
         $naisennamelocate=<<EOL;
             <table>
                 <tr><td width="100"><font size = "1">$naisen $gaisen</font></td><td rowspan="3">$img</td></tr>
                 <tr><td><b>$name </b></td>
                 <tr><td>$locate </td><tr>
             </table>
 EOL
     }
 
     $color = &desidecolor("$locate");
     if($name eq "" || $name=~/BU/){
         $local_bordercolor="";
     }
 
     if($2 ne ""){
         $koushin="最終更新 $koushin";
     }else{
         $koushin=" ";
     }
     $msg=&setmsg("$naisen","$name","$locate");
 
     if($count==0){$head= "<td><table border=1><tr>\n";}
     elsif($count==4){$tail= "</tr><tr>";}
     elsif($count==9){$tail= "</tr></table></td>";}
     elsif($count==100){
         my $border="";
         if($name ne ""){$border="border=1";}
         $head="<td width =$k_width><table $border><tr>";
         $tail="</tr></table>";
     }elsif($count==101){
         my $border="";
         if($name ne ""){$border="border=1";}
         $head="<table $border $border><tr>";
         $tail="</tr></table></td>";
     }
 
 
     print <<"EOL";
     $head
     <td>
     <table border="0" $local_bordercolor  cellspacing="3"><tr>
     <td bgcolor ="$color" width="$width" $url onMouseover="opentext($msg)" onMouseout="opentext('')" >
     $naisennamelocate
     <font size = 2>$bikou </font><br>
     <div align="right"><font size = 1>$koushin</font></div></td>
     </tr></table>
     </td>
     $tail
 EOL
 
 }
 sub shima{
     my $count=0;
     my $k_count=100;
     my @line;
 
     if($_[0]=~/zaseki([0-9])\.txt/){
             $bordercolor=&setbordercolor("$1");
     }else{
         next;
     }
 
     open(F,$_[0]);
     while(<F>){
         if($_=~/teamname=([\S\s]+),([0-9\-\/\s]+)/){
             if($gyaku==0){
                 print "<table><tr><td></td><td>■$1 ( $2)</td><tr>";
             }elsif($gyaku==1){
                 print "<table><tr>■$1 ( $2)<td></td><td></td><tr>";
             }
         }
         if($_=~/([0-9]*),([0-9\-]*),(\S*),(\S*),([\S\s]*),([0-9\s\/:]*)/){
             if($gyaku==0){
                 &zaseki_print("$1","$3","$4","$5","$6","$2","$k_count");
                 $k_count++;
             }elsif($gyaku==1){
                 $line[$linecnt]=$_;
                 $linecnt++;
             }
         next;
         }
         if($_=~/([0-9]*),(\S*),(\S*),([\S\s]*),([0-9\s\/:]*)/){
             if($gyaku==0){
                 &zaseki_print("$1","$2","$3","$4","$5","","$count");
                 $count++;
             }elsif($gyaku==1){
                 $line[$linecnt]=$_;
                 $linecnt++;
             }
         }
     }
     close(F);
 
     $count=0;
     if($gyaku==1){
         for ($index=$linecnt;$index>=0;$index--){
             if($line[$index]=~/([0-9]*),([0-9\-]*),(\S*),(\S*),([\S\s]*),([0-9\s\/:]*)/){
                 &zaseki_print("$1","$3","$4","$5","$6","$2","$k_count");
                 $k_count++;
                 next;
             }
             if($line[$index]=~/([0-9]*),(\S*),(\S*),([\S\s]*),([0-9\s\/:]*)/){
                 &zaseki_print("$1","$2","$3","$4","$5","","$count");
                 $count++;
             }
         }
     }
     print "</tr></table><br>";
 }
 sub print_menu{
     print<<"EOL";
     <table>
     <tr>
     <td>
     <form method="POST" action="zaseki_hyouji.cgi">
         <input type="hidden" name="gyaku" value="$gyaku">
         <input type="hidden" name="photo" value="$photo">
         <input type="submit" value="最新の情報を表示する" name="sonomama">
     </form>
     </td>
     <td width=20></td>
     <td>
     <form method="POST" action="zaseki_koushin.cgi">
         <input type="hidden" name="gyaku" value="$gyaku">
         <input type="hidden" name="photo" value="$photo">
         <input type="submit" value="出勤情報の更新ページへ" name="sonomama"> 
     </form>
     </td>
     <td width=20></td>
     <td>
     <form method="POST" action="zaseki_hyouji.cgi">
         <input type="hidden" name="gyaku" value="$gyaku">
         <input type="hidden" name="photo" value="$photo">
         <input type="submit" value="向きを逆にする" name="hanten"> 
     </form>
     </td>
     <td width=20></td>
     <td>
     <form method="POST" action="zaseki_asami.cgi">
         <input type="hidden" name="gyaku" value="$gyaku">
         <input type="hidden" name="photo" value="$photo">
         <input type="submit" value="ロケーション(休務)ごとに表示する" name="sonomama">
     </form>
     </td>
     <tr>
     </table>
 EOL
 }
 
 if ($ENV{'REQUEST_METHOD'} eq "POST") {
     &decode();
     &data_koushin();
     &gyakuflg_koushin();
     &photoflg_koushin();
 }
 if($gyaku==0){
     $tille="座席表 (山向き)";
 }elsif($gyaku==1){
     $tille="座席表 (海向き)";
 }
 
 if($photo==0){
     $photo_msg="写真表示 ON";
 }elsif($photo==1){
     $photo_msg="写真表示 OFF";
 }
 
 
 print <<"EOL";
 Content-type: text/html
 
 <HTML>
     <HEAD>
         <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
         <TITLE>$tille</TITLE>
         <script type="text/javascript" src="zaseki_data/poptxt.js">
         </script>
     </HEAD>
 <BODY>
 EOL
 
 &print_menu();
 print <<"EOL";
 <hr>
 <table>
     <tr>
         <td><table><tr><td bgcolor="#99CCCC" height="20" width="30"></td></tr></table></td>
         <td>・・・大手町</td>
         <td width="20"></td>
         <td><table><tr><td bgcolor="#99CC99" height="20" width="30"></td></tr></table></td>
         <td>・・・新宿</td>
         <td width="20"></td>
         <td><table><tr><td bgcolor="#9999CC" height="20" width="30"></td></tr></table></td>
         <td>・・・深夜勤務</td>
         <td width="20"></td>
         <td><table><tr><td bgcolor="gray" height="20" width="30"></td></tr></table></td>
         <td>・・・年休,週休,長期出張,研修,その他</td>
     </tr>
 </table>
 <table align="right">
     <tr>
     <td>
     <form method="POST" action="zaseki_hyouji.cgi">
         <input type="hidden" name="gyaku" value="$gyaku">
         <input type="hidden" name="photo" value="$photo">
         <input type="submit" value="$photo_msg" name="photohanten">
     </form>
     </td>
     </tr>
 </table>
  <br>
 EOL
 
 if($gyaku==0){
     foreach $i (@files){
         &shima("$i");
     }
 }elsif($gyaku==1){
     my $filecount=@files;
     my $ind;
     for ($ind=$filecount;$ind>=0;$ind--){
         &shima("$files[$ind]");
     }
 }
 
 $time = localtime(time);
 
 if($photo==1){
     print "※ 画像素材は<a href=\"http://www.first-moon.com/\">First Moon</a>様のサイトからお借りいたしました。"
 }
 print "<hr>";
 &print_menu();
 print <<"EOL";
     </BODY>
 </HTML>
 EOL
***6-3.zaseki_asami.cgi [#s3208208]
 #!/usr/bin/perl
 
 $globalcnt=0;
 
 sub decode {
     local($args, $n_read, *terms, $tag, $value);
 
     $ENV{'REQUEST_METHOD'} eq "POST" ?
     ($n_read = sysread(STDIN, $args, $ENV{'CONTENT_LENGTH'})):
     ($args = $ENV{'QUERY_STRING'});
 
     @terms = split('&', $args);
 
     foreach (@terms) {
         ($tag, $value) = split(/=/, $_, 2);
         $value =~ s/\+/ /g;
         $value =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("c", hex($1))/ge;
         $tags{$tag} = $value;       # tags is global
     }
 }
 
 @locations=("新宿","深夜勤務","年休","週休","研修","長期出張","その他","大手町");
 sub desidecolor{
     if($_[0] eq "年休")    {return "gray";}
     if($_[0] eq "週休")    {return "gray";}
     if($_[0] eq "研修")    {return "gray";}
     if($_[0] eq "長期出張"){return "gray";}
     if($_[0] eq "その他")  {return "gray";}
     if($_[0] eq "深夜勤務"){return "#9999CC";}
     if($_[0] eq "大手町")  {return "#99CCCC";}
     if($_[0] eq "新宿")    {return "#99CC99";}
 }
 sub shima{
     my $count=0;
     my $color="";
     my $koushin="";
     my $msg="";
     my $teamname="";
 
     my $color=&desidecolor("$_[1]");
     open(F,$_[0]);
     while(<F>){
         if($_=~/teamname=([\S\s]+),[0-9\-\/\s]+/){
             $teamname=$1;
         }
         if($_=~/([0-9]*),([0-9\-]*),(\S*),(\S*),([\S\s]*),([0-9\s\/:]*)/){
             if($4 eq $_[1]){
                 $count++;
             }
         next;
         }
         if($_=~/([0-9]*),(\S*),(\S*),([\S\s]*),([0-9\s\/:]*)/){
             if($3 eq $_[1]){
                 $count++;
             }
         }
     }
     $globalcnt=$globalcnt+$count;
     $teamname="<td width=150 rowspan=$count>$teamname</td>";
     open(F,$_[0]);
     while(<F>){
         if($_=~/([0-9]*),([0-9\-]*),(\S*),(\S*),([\S\s]*),([0-9\s\/:]*)/){
             if($4 eq $_[1]){
                 print <<EOL;
                 <tr bgcolor="$color">
                     $teamname
                     <td width=120>$3</td>
                     <td width=200>$5 </td>
                     <td><font size=2>最終更新 $6</font></td>
                 </tr>
 EOL
             $teamname="";
             }
         next;
         }
         if($_=~/([0-9]*),(\S*),(\S*),([\S\s]*),([0-9\s\/:]*)/){
             if($3 eq $_[1]){
                 print <<EOL;
                 <tr bgcolor="$color">
                     $teamname
                     <td width=120>$2</td>
                     <td width=200>$4 </td>
                     <td><font size=2>最終更新 $5</font></td>
                 </tr>
 EOL
             $teamname="";
             }
         }
     }
     close(F);
 }
 
 sub print_menu{
     print<<"EOL";
     <table>
     <tr>
     <td>
     <form method="POST" action="zaseki_asami.cgi">
         <input type="hidden" name="gyaku" value="$tags{gyaku}">
         <input type="hidden" name="photo" value="$tags{photo}">
         <input type="submit" value="最新の情報を表示する" name="sonomama">
     </form>
     </td>
     <td width=20></td>
     <td>
     <form method="POST" action="zaseki_hyouji.cgi">
         <input type="hidden" name="gyaku" value="$tags{gyaku}">
         <input type="hidden" name="photo" value="$tags{photo}">
         <input type="submit" value="座席表を表示する" name="sonomama"> 
     </form>
     </td>
     <td width=20></td>
     <td>
     <form method="POST" action="zaseki_koushin.cgi">
         <input type="hidden" name="gyaku" value="$tags{gyaku}">
         <input type="hidden" name="photo" value="$tags{photo}">
         <input type="submit" value="出勤情報の更新ページへ" name="sonomama"> 
     </form>
     </td>
     <tr>
     </table>
 EOL
 }
 print FW "zaseki_hyouji.cgi\n";
 if ($ENV{'REQUEST_METHOD'} eq "POST") {
     &decode();
 }
 
 print <<"EOL";
 Content-type: text/html
 
 <HTML>
     <HEAD>
         <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
         <TITLE>朝ミ確認用</TITLE>
         <script type="text/javascript" src="zaseki_data/poptxt.js">
         </script>
     </HEAD>
 <BODY>
 EOL
 &print_menu();
 print <<"EOL";
 <hr>
 <br>
 EOL
 foreach $locate(@locations){
     $globalcnt=0;
     print "■$locate<br><table border=1>";
     @files = glob ("zaseki_data/*.txt");
     foreach $team (@files){
         &shima("$team","$locate");
     }
     print "</table>";
     if($globalcnt==0){
         print "なし<br> <br>";
     }else{print " <br>";}
 }
 
 print "<hr>";
 &print_menu();
 print <<"EOL";
     </BODY>
 </HTML>
 EOL

**7.改版履歴 [#d6a87859]
***090414(初版) [#a1cac902]
#ref(zaseki_koushin.cgi_090414.txt)
#ref(zaseki_hyouji.cgi_090414.txt)
#ref(zaseki_gyaku.cgi_090414.txt)
#ref(zaseki_asami.cgi_090414.txt)
#ref(zaseki1.txt)
#ref(zaseki2.txt)
#ref(zaseki3.txt)
#ref(zaseki4.txt)
#ref(zaseki5.txt)

※poptxt.jsは[[HIMAJIN>http://himajin.moo.jp/]]様のページから拝借いたしました。
 再配布になってしまうため、ここにはアップしません。
 ↑のリンクの「すぐに使えるJavaScript」→「ポップアップテキスト」です。

作った頃のメモ→[[メモメモ/2009-04-09]]、[[メモメモ/2009-04-12]]、[[メモメモ/2009-04-13]]
***090419 [#i9f7e135]
#ref(zaseki_090419.zip)
#ref(zaseki_koushin.cgi_090419.txt)
#ref(zaseki_hyouji.cgi_090419.txt)
#ref(zaseki_asami.cgi_090419.txt)
■Bug#1 zaseki_data配下に不正な.txtがあるとデータが壊れる。 
■Bug#2 座席表を反転させた状態で更新した場合、反転させた座席表に戻るようにして欲しい。
■Bug#3 全チーム一括更新したい。
の対処。
***090421 [#cd7a9933]
#ref(zaseki_090421.zip)
#ref(zaseki_koushin.cgi_090421.txt)
#ref(zaseki_hyouji.cgi_090421.txt)
#ref(zaseki_asami.cgi_090421.txt)

■Bug#3 全チーム一括更新したい。
に関連し、チェックしたチームのみ一括更新する機能を追加。

***090422 [#v542834d]
#ref(zaseki_090422.zip)
#ref(zaseki_koushin.cgi_090422.txt)
#ref(zaseki_hyouji.cgi_090422.txt)
#ref(zaseki_asami.cgi_090422.txt)
■Bug#9 備考欄が2行のとき逆向きの座席表の表示がずれる。
■Bug#11 課長席の空箱を表示しないようにして欲しい。
■Bug#18 zaseki_data配下に不正なファイルがあると個別更新が行えない。
■Bug#19 部長も表示したい。 
の対処。
***090423 [#j3027324]
#ref(zaseki_090423.zip)
#ref(zaseki_koushin.cgi_090423.txt)
#ref(zaseki_hyouji.cgi_090423.txt)
#ref(zaseki_asami.cgi_090423.txt)
#ref(url.txt)
■Bug#14 座席表に顔写真を載せて欲しい。 
■Bug#15 各座席から電子社員録の個人URLにリンクして欲しい。
の対処及び
▲Bug#12 チームごとの識別も色で行いたい。
の暫定対処。
zaseki_hyouji.cgiの随所に散らばっていたglob(zaseki_data/zaseki*.txt)が実は1箇所でよいのではないかと気づき、ソースの頭1箇所に記述するよう修正。
合わせてglobal変数をわかりやすく頭に記述するようにした。いまさら。。。w

※ 画像はすべて[[First Moon>http://www.first-moon.com/]]様のページから拝借しました。
 再配布になってしまうのでzipからは外しておきます。
 jpgディレクトリ配下に内線番号.JPG(内線番号.gif)で画像が保存されています。

[[メモメモ/2009-04-23]]

**バグ管理簿 [#od1d05c2]
#ls2

----
- みました。とりあえずHTML::Templateなどを使って、プログラムとHTMLコードを分けたほうがいいですね。保守しづらいと思います -- [[yusuketsuiki]] &new{2009-04-17 (金) 17:23:30};
- あ、どうもです。なんか早速バグっていたようで、データがめちゃめちゃ壊れていました。。&br;そんなライブラリがあるんですね!アドバイスありがとうございます! -- [[日向充]] &new{2009-04-17 (金) 19:50:18};
- ちょっとググって見ました。めちゃめちゃ便利そうですね。いつもアドバイスありがとうございます。 -- [[日向充]] &new{2009-04-17 (金) 19:56:51};
- X4Vdw3  <a href="http://akwgbyupqaqv.com/">akwgbyupqaqv</a>, [url=http://thugrnjtwzeo.com/]thugrnjtwzeo[/url], [link=http://qdgfpwjwqexp.com/]qdgfpwjwqexp[/link], http://lupcgiklhrvi.com/ -- [[nxpikb]] &new{2010-10-24 (日) 13:39:02};
- http://oceanup.com/user/33718 adipex for sale without a prescription , http://oceanup.com/user/33722 primary pulmonary hypertension cialis , http://wiki.sidekick.com/account/Valium-Online-6157m valium buy on-line fedex ups , http://legacycenter.ning.com/profiles/blogs/phentermine-online-without opensolaris forums buy phentermine online order , http://pulse.yahoo.com/_DTOSY24Y2WYVBPC74YFAFYRCU4/blog/articles/193179 adipex quick no prescription , http://www.firstearthbattalion.org/?q=node/73074 to buy phentermine online without a , http://legacycenter.ning.com/profiles/blogs/xanax-online-pharmacy-october gg xanax , http://legacycenter.ning.com/profiles/blogs/tramadol-price-october-2010 drinking alcohol tramadol , http://oceanup.com/user/33725 can xanax be taken during pregnancy , http://www.fti.dn.ua/magnetism/view_profile.php?userid=12944 does phentermine contain the maoi drug ,  -- [[why prescribe xanax]] &new{2010-10-24 (日) 19:46:02};
- http://ucpbl.aau.dk/adipex2/weblog seap debt counseling adipex diet pill , http://trailfire.com/tramadol_online_af tramadol and fibromyalgia , http://ucpbl.aau.dk/tramadol2/weblog tramadol and amphetamines , http://understandingrace.net/cs/members/Phentermine+reviews.aspx buy phentermine and online dr consultation , http://wiki.sidekick.com/account/Adipex-Online-n157m can men take adipex , http://understandingrace.net/cs/members/Cialis+reviews.aspx taking half a 20mg cialis , http://my.vision.edu/kimberlyem/weblog phentermine hcl pharmacy you , http://understandingrace.net/cs/members/generic+Phentermine.aspx phentermine best buy diet pill , http://pulse.yahoo.com/_DTOSY24Y2WYVBPC74YFAFYRCU4/blog/articles/193176 sandbox test tumb ultram tramadol , http://wiki.sidekick.com/account/Soma-Online-y157m soma recruitment ,  -- [[need phentermine without dr prescription]] &new{2010-10-24 (日) 19:46:05};
- http://trailfire.com/adipex_online_w8 diet pills adipex free ship , http://www.firstearthbattalion.org/?q=node/73079 tramadol site , http://understandingrace.net/cs/members/Valium+with+no+prescription.aspx valium 10 mg street price , http://pulse.yahoo.com/_DTOSY24Y2WYVBPC74YFAFYRCU4/blog/articles/193179 adipex no prescription no member fees , http://ucpbl.aau.dk/soma2010/weblog 9 cheap soma on , http://pulse.yahoo.com/_DTOSY24Y2WYVBPC74YFAFYRCU4/blog/articles/193176 how to buy tramadol , http://trailfire.com/tramadol_online_7s tramadol yasmin metrogel nasacort aq , http://wiki.sidekick.com/account/Viagra-Online-n157m safer than viagra , http://www.firstearthbattalion.org/?q=node/73093 prednisone cialis combine , http://understandingrace.net/cs/members/Soma+dose.aspx kirkwood disposable soma ,  -- [[cialis dosage 40 mg]] &new{2010-10-24 (日) 22:10:38};
- http://acuerdonacional.ccncol.org/pg/profile/isabellehannahy cialis theme music , http://ucpbl.aau.dk/viagraw157m/weblog buy viagra contact us page , http://www.tvcocina.com/forum/topics/xanax-online-no-prescription do employers test for xanax , http://wiki.sidekick.com/account/Viagra-Online-n157m generic viagra forumes , http://trailfire.com/viagra_online_zj viagra inhancers , http://acuerdonacional.ccncol.org/pg/profile/samanthacoopery fast shipping xanax valium cheap prescription , http://www.tvcocina.com/forum/topics/prescription-drugs-tramadol tramadol for pain relief , http://www.firstearthbattalion.org/?q=node/73097 seizures and valium , http://ucpbl.aau.dk/cialis5157m/weblog cheapest online cialis , http://www.firstearthbattalion.org/?q=node/73094 xanax ncaa ,  -- [[side effects the day after valium]] &new{2010-10-24 (日) 23:23:03};
- http://www.firstearthbattalion.org/?q=node/73081 tramadol pill description , http://understandingrace.net/cs/members/Valium+drug+interactions.aspx diazepam 5mg tablets generic for valium , http://understandingrace.net/cs/members/Phentermine+reviews.aspx delivered only order overnight phentermine , http://ucpbl.aau.dk/phentermine2/weblog what is phentermine medicine , http://pulse.yahoo.com/_CROS64EEC65LJ42OA65HHNCE6A/blog/articles/206018 valium family of drugs , http://pulse.yahoo.com/_DTOSY24Y2WYVBPC74YFAFYRCU4/blog/articles/193170 phentermine hcl prescription online , http://www.cadence.com/Community/members/Phentermine-side-effects.aspx phentermine 30 blue 90 , http://my.vision.edu/alexajerem/weblog cialis tmax research , http://pulse.yahoo.com/_DTOSY24Y2WYVBPC74YFAFYRCU4/blog/articles/193177 tramadol and ibuprofen interactions , http://pulse.yahoo.com/_CROS64EEC65LJ42OA65HHNCE6A/blog/articles/206017 valium us pharmacies fast shipping ,  -- [[tramadol 3d]] &new{2010-10-25 (月) 00:35:59};
- http://cialisyl155.splinder.com/ cialis grapefruit interaction , http://trailfire.com/adipex_online_w8 adipex rxlist , http://ucpbl.aau.dk/phentermined/weblog buy phentermine viagra meridia ultr , http://acuerdonacional.ccncol.org/pg/profile/sofiaaudreyy clenbuterol phentermine , http://oceanup.com/user/33724 xanax vs alcohol , http://trailfire.com/tramadol_online_af 8000 cheap online tramadol under , http://www.cadence.com/Community/members/Cialis-price.aspx generic cialis pills stories , http://www.tvcocina.com/forum/topics/buy-generic-tramadol-online is tramadol a narcotic medication , http://understandingrace.net/cs/members/Tramadol+forum.aspx tramadol elavil , http://wiki.sidekick.com/account/Adipex-Online-o157m free adipex without perscription ,  -- [[tramadol and dentistry]] &new{2010-10-25 (月) 01:50:01};
- http://pulse.yahoo.com/_CROS64EEC65LJ42OA65HHNCE6A/blog/articles/206012 viagra cialis euros puntagorda , http://www.cadence.com/Community/members/Tramadol-without-rx.aspx tramadol liver function , http://ucpbl.aau.dk/valiumu157m/weblog recommended valium dosage per day , http://www.firstearthbattalion.org/?q=node/73082 tramadol and throat , http://www.cadence.com/Community/members/Tramadol-without-rx.aspx tramadol urine retention , http://pulse.yahoo.com/_CROS64EEC65LJ42OA65HHNCE6A/blog/articles/206010 where do i buy viagra in , http://oceanup.com/user/33715 tylenol tramadol , http://my.vision.edu/kyleanto/weblog phentermine patient guidelines , http://trailfire.com/viagra_online_zj viagra every day , http://trailfire.com/cialis_online_hb tadalafil or cialis ,  -- [[what is phentermine used for]] &new{2010-10-25 (月) 03:03:46};
- http://understandingrace.net/cs/members/Xanax+with+no+prescription.aspx buy xanax generic xanax order xanax , http://www.firstearthbattalion.org/?q=node/73081 buy navn tramadol weblog , http://my.vision.edu/jacobhen/weblog does tramadol test positive for opiates , http://understandingrace.net/cs/members/Adipex+side+effects.aspx order adipex no prescripyion , http://ucpbl.aau.dk/phentermine1/weblog order phentermine oval a 159 , http://pulse.yahoo.com/_DTOSY24Y2WYVBPC74YFAFYRCU4/blog/articles/193166 what happens when you snort phentermine , http://ucpbl.aau.dk/adipex3/weblog buy adipex online without a prescription , http://www.firstearthbattalion.org/?q=node/73078 tramadol thailand , http://ucpbl.aau.dk/phentermine2/weblog online pharmacy phentermine no prescription , http://ucpbl.aau.dk/xanax9157m/weblog xanax how long does it stay in your system ,  -- [[tramadol free shipping overnight]] &new{2010-10-25 (月) 04:16:42};
- http://pulse.yahoo.com/_DTOSY24Y2WYVBPC74YFAFYRCU4/blog/articles/193174 canine tramadol overdose , http://pulse.yahoo.com/_CROS64EEC65LJ42OA65HHNCE6A/blog/articles/206006 soma pittsburgh , http://www.tvcocina.com/forum/topics/xanax-online-no-prescription xanax injected , http://phentermine6l155.splinder.com/ does phentermine cause acne , http://tramadolml155.splinder.com/ very cheap tramadol cod , http://wiki.sidekick.com/account/Viagra-Online-q157m female viagra official side free , http://wiki.sidekick.com/account/Valium-Online-g157m no prescription overnight delivery valium , http://acuerdonacional.ccncol.org/pg/profile/jaydensofiay extracting opiods from tramadol , http://oceanup.com/user/33724 mixing ambien and xanax safe , http://ucpbl.aau.dk/tramadol4/weblog tramadol hydrochloride abuse ,  -- [[phentermine and poly cystic ovarian syndrome]] &new{2010-10-25 (月) 05:28:26};
- http://www.firstearthbattalion.org/?q=node/73090 soldier salutes with no viagra , http://www.fti.dn.ua/magnetism/view_profile.php?userid=12949 xanax for sell no prescription , http://ucpbl.aau.dk/phentermine1/weblog phentermine online fedex , http://www.firstearthbattalion.org/?q=node/73081 tramadol hydrochoride , http://www.firstearthbattalion.org/?q=node/73087 does adipex have ephedra in it , http://ucpbl.aau.dk/valiumu157m/weblog buy cheap valium 32 , http://pulse.yahoo.com/_DTOSY24Y2WYVBPC74YFAFYRCU4/blog/articles/193174 tramadol non-narcotic , http://understandingrace.net/cs/members/Adipex+sample.aspx pill mesh adipex , http://wiki.sidekick.com/account/Soma-Online-y157m huxley brave new world soma , http://trailfire.com/valium_online_af valium gel for seizures ,  -- [[phentermine cod cheap no prescription]] &new{2010-10-25 (月) 06:40:14};
- http://www.cadence.com/Community/members/Cialis-price.aspx cialis use in bodybuilding , http://www.firstearthbattalion.org/?q=node/73085 adipex without a prescription not phentermine , http://ucpbl.aau.dk/tramadol3/weblog tramadol overdose death , http://pulse.yahoo.com/_DTOSY24Y2WYVBPC74YFAFYRCU4/blog/articles/193181 adipex while breastfeeding , http://trailfire.com/phentermine_online_i does cyp3a4 metalize phentermine , http://www.firstearthbattalion.org/?q=node/73084 diet plan adipex , http://pulse.yahoo.com/_DTOSY24Y2WYVBPC74YFAFYRCU4/blog/articles/193181 buy adipex ships fedex , http://ucpbl.aau.dk/adipex3/weblog buy adipex discretely , http://wiki.sidekick.com/account/Cialis-Online-9157m does cialis increse blood pressure , http://trailfire.com/tramadol_online_7e tramadol police ,  -- [[chronic pain tramadol]] &new{2010-10-25 (月) 07:52:21};
- http://my.vision.edu/kyleanto/weblog energy equal to phentermine , http://pulse.yahoo.com/_DTOSY24Y2WYVBPC74YFAFYRCU4/blog/articles/193178 tramadol als droge , http://pulse.yahoo.com/_DTOSY24Y2WYVBPC74YFAFYRCU4/blog/articles/193171 phentermine how long to metabolize , http://legacycenter.ning.com/profiles/blogs/xanax-online-pharmacy-october xanax detection in urinalysis , http://understandingrace.net/cs/members/Viagra+sample.aspx genuine viagra sales , http://www.firstearthbattalion.org/?q=node/73087 adipex no prescription usa pharmacy , http://understandingrace.net/cs/members/Tramadol+with+no+prescription.aspx home loan mortgage lender buy tramadol , http://pulse.yahoo.com/_DTOSY24Y2WYVBPC74YFAFYRCU4/blog/articles/193166 take phentermine morning hoodia afternoon , http://wiki.sidekick.com/account/Xanax-Online-l157m xanax mastercard bars , http://www.cadence.com/Community/members/Cialis-price.aspx the effect of cialis on women ,  -- [[phentermine testimony]] &new{2010-10-25 (月) 09:05:42};
- http://understandingrace.net/cs/members/Phentermine+reviews.aspx phentermine pills from , http://trailfire.com/adipex_online_an buy adipex online mastercard , http://trailfire.com/valium_online_nm valium for vertigo , http://understandingrace.net/cs/members/Xanax+with+no+prescription.aspx jail time for xanax , http://wiki.sidekick.com/account/Valium-Online-6157m fun with valium , http://understandingrace.net/cs/members/Phentermine+sample.aspx overnight saturday phentermine before 4pm , http://trailfire.com/phentermine_online_7 phentermine and zoloft us approved pharmacies , http://wiki.sidekick.com/account/Xanax-Online-l157m pay for xanax with visa , http://acuerdonacional.ccncol.org/pg/profile/wyattlucasy phentermine and usa , http://www.cadence.com/Community/members/Tramadol-without-rx.aspx of tramadol hydrochloride in ,  -- [[study viagra woman]] &new{2010-10-25 (月) 10:17:41};
- http://www.cadence.com/Community/members/Cialis-price.aspx comprar cialis en barcelona , http://www.firstearthbattalion.org/?q=node/73071 atkins diet menu diet phentermine pill , http://wiki.sidekick.com/account/Tramadol-Online-515 no insurance tramadol , http://wiki.sidekick.com/account/phentermine-y157m buy phentermine overnight by phone , http://trailfire.com/phentermine_online_w pills phentermine fear of pills , http://trailfire.com/cialis_online_hb cialis generic tabs , http://www.firstearthbattalion.org/?q=node/73068 cheap phentermine online cod , http://oceanup.com/user/33712 tramadol m print on one side , http://www.fti.dn.ua/magnetism/view_profile.php?userid=12948 cialis overnigth , http://oceanup.com/user/33712 buy tramadol online cod cash ,  -- [[viagra kad??]] &new{2010-10-25 (月) 11:28:36};
- http://trailfire.com/cialis_online_vt cialis lowers blood pressure , http://www.fti.dn.ua/magnetism/view_profile.php?userid=12947 tramadol and ulcerative colitis , http://oceanup.com/user/33723 viagra cialis canadian pharmacy , http://www.fti.dn.ua/magnetism/view_profile.php?userid=12945 phentermine online no prescription online pharmacy , http://oceanup.com/user/33707 us phentermine no prescription , http://pulse.yahoo.com/_CROS64EEC65LJ42OA65HHNCE6A/blog/articles/206006 soma parts , http://legacycenter.ning.com/profiles/blogs/phentermine-online-without phentermine cold fingers , http://www.cadence.com/Community/members/generic-Xanax.aspx what's stronger xanax or klonopin , http://ucpbl.aau.dk/xanax9157m/weblog xanax sleeping medication , http://oceanup.com/user/33715 drug more tramadol ,  -- [[xanax absue]] &new{2010-10-25 (月) 12:40:39};
- http://wiki.sidekick.com/account/Xanax-Online-z157m xanax and dogs and dose , http://www.fti.dn.ua/magnetism/view_profile.php?userid=12946 pet health insurance tramadol on line , http://understandingrace.net/cs/members/Valium+with+no+prescription.aspx stronger than valium , http://wiki.sidekick.com/account/Tramadol-Online-515 best price for tramadol generic ultram , http://pulse.yahoo.com/_DTOSY24Y2WYVBPC74YFAFYRCU4/blog/articles/193179 adipex diet pil ls , http://pulse.yahoo.com/_CROS64EEC65LJ42OA65HHNCE6A/blog/articles/206012 price comparison viagra cialis , http://wiki.sidekick.com/account/Soma-Online-y157m hindu mythology soma , http://www.firstearthbattalion.org/?q=node/73074 bootleg pharmacy india phentermine pill , http://wiki.sidekick.com/account/Xanax-Online-z157m xanax dosage forms , http://understandingrace.net/cs/members/Valium+drug+interactions.aspx keyword valium overnight delivery ,  -- [[q phentermine hq]] &new{2010-10-25 (月) 13:52:18};
- http://ucpbl.aau.dk/xanaxs157m/weblog what milligram is a blue xanax , http://pulse.yahoo.com/_DTOSY24Y2WYVBPC74YFAFYRCU4/blog/articles/193177 tramadol affects ph , http://my.vision.edu/alexajerem/weblog uprima viagra cialis , http://ucpbl.aau.dk/valiumu157m/weblog valium diazepam information , http://oceanup.com/user/33716 no prescription needed for adipex , http://ucpbl.aau.dk/xanax9157m/weblog xanax g 3719 , http://ucpbl.aau.dk/phentermine2/weblog customer reviews about save generic phentermine , http://acuerdonacional.ccncol.org/pg/profile/arianacoley tramadol online tramadol overnight cod , http://pulse.yahoo.com/_DTOSY24Y2WYVBPC74YFAFYRCU4/blog/articles/193168 phentermine without prescription 30mg , http://wiki.sidekick.com/account/Tramadol-Online-8157 buy tramadol online no prescription ,  -- [[new phentermine buy 30mg phentermine]] &new{2010-10-25 (月) 16:15:11};
- http://acuerdonacional.ccncol.org/pg/profile/wyattlucasy phentermine birth side effects , http://acuerdonacional.ccncol.org/pg/profile/sofiaaudreyy phentermine script included , http://trailfire.com/phentermine_online_7 phentermine no rx 37.5 , http://www.fti.dn.ua/magnetism/view_profile.php?userid=12948 cialis male enhancement , http://ucpbl.aau.dk/xanaxs157m/weblog is xanax a narcotic , http://pulse.yahoo.com/_CROS64EEC65LJ42OA65HHNCE6A/blog/articles/206016 withdraw from addiction to xanax , http://pulse.yahoo.com/_DTOSY24Y2WYVBPC74YFAFYRCU4/blog/articles/193168 inexspensive phentermine , http://my.vision.edu/jacobhen/weblog cold water pill extraction tramadol , http://www.firstearthbattalion.org/?q=node/73096 affects of valium , http://wiki.sidekick.com/account/Tramadol-Online-e157 tramadol veterinarians ,  -- [[adipex tolerance]] &new{2010-10-25 (月) 16:15:23};
- http://understandingrace.net/cs/members/generic+Phentermine.aspx phentermine 37.5mg on line , http://understandingrace.net/cs/members/Cialis+reviews.aspx cialis prevent heart disease , http://understandingrace.net/cs/members/Soma+dose.aspx soma blocks , http://www.firstearthbattalion.org/?q=node/73095 xanax no rx next day , http://www.firstearthbattalion.org/?q=node/73071 weight loss tips with phentermine , http://www.tvcocina.com/forum/topics/prescription-drugs-tramadol tramadol para que sirve , http://pulse.yahoo.com/_CROS64EEC65LJ42OA65HHNCE6A/blog/articles/206017 valium overdose how much , http://my.vision.edu/kimberlyem/weblog phentermine a159 , http://understandingrace.net/cs/members/Cialis+side+effects.aspx cialis prescription drug stores yasmin , http://wiki.sidekick.com/account/phentermine-y157m phentermine 37.5 mg without rx ,  -- [[viagra animate]] &new{2010-10-25 (月) 17:27:04};
- http://ucpbl.aau.dk/phentermine3/weblog phentermine liver damage , http://wiki.sidekick.com/account/Viagra-Online-n157m viagra controlled substance , http://trailfire.com/adipex_online_w8 adipex 37.5 mg x 60 qty , http://www.firstearthbattalion.org/?q=node/73089 carisoprodol soma 350 , http://ucpbl.aau.dk/soma2010/weblog buy linecom soma , http://oceanup.com/user/33721 viagra and india , http://my.vision.edu/luissteveny/weblog xanax musle relax , http://pulse.yahoo.com/_DTOSY24Y2WYVBPC74YFAFYRCU4/blog/articles/193179 phentermine gen adipex 37.5 mg , http://wiki.sidekick.com/account/Soma-Online-y157m free shipping generic soma , http://acuerdonacional.ccncol.org/pg/profile/sofiaaudreyy phentermine obesity on yahoo health ,  -- [[buy cialis narod ru domain]] &new{2010-10-25 (月) 18:39:06};
- http://www.mrbassonline.com/elgg/phen01/weblog/ legit phentermine websites , http://www.box.net/shared/r5v605iiqh xanax physicians directory , http://heroeswiki.ew.com/account/Adipex-Online-x158m search results buy adipex online , http://www.mrbassonline.com/elgg/valiumwr234/weblog/ valium sold in usa , http://forum.zensupport.co.uk/user/Profile.aspx?UserName=prescription+drugs+Phentermine cheap phentermine free shipping bloghoster , http://www.giantbomb.com/profile/makaylahaydeny/valium-forum/30-70847/ valium on a drug test , http://www.tippingpoint.org.uk/profiles/blogs/xanax-without-rx-october-2010 xanax and weed , http://www.thebreastsite.com/user/Profile.aspx?UserID=85052 tramadol order by 3 cst , http://heroeswiki.ew.com/account/phentermine-t158m phentermine for sale in u s , http://myfcdallas.ning.com/profiles/blogs/tramadol-online-without tramadol 100mg 180 ,  -- [[buy adipex direct]] &new{2010-10-29 (金) 18:09:39};

#comment
----
-[[Perlメモ]]
-[[プログラミング]]

#amazon_live(books-jp,search,Perl,48)
#amazon_search(small)

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS