
/*--カレンダーによる日付入力スクリプトここから--*/


/********************************************************************
 * カレンダーによる日付入力スクリプト
 *
 * ( 下記スクリプトは改造も可能ですがまったくいじらずにそのままペース
 *   トするだけでもご利用いただけるように書いてあります )
 *
 *  Syntax : wrtCalendar( formElementObject[,moveMonthFlg][,winOpenFlg] )
 *  例     : wrtCalendar( this )
 *
 *  使いたいINPUT入力タグにonFocus="wrtCalendar(this)"を ペーストし
 *  ます。それぞれのタグに違う名前(NAME属性)を忘れずに付けておいてく
 *  ださい。
 *
 *  Example :受付日:&lt;INPUT NAME=e1 TYPE=text
 *                         onFocus="wrtCalendar(this)">
 *
 * ------------------------------------------------------------------
 * calendar.js Copyright(c)1999 Toshirou Takahashi tato@fureai.or.jp
 * Support http://www.fureai.or.jp/~tato/JS/BOOK/INDEX.HTM
 * ------------------------------------------------------------------
 */



var absnow = new Date()
var now    = new Date()

var Win=navigator.userAgent.indexOf('Win')!=-1
var Mac=navigator.userAgent.indexOf('Mac')!=-1
var X11=navigator.userAgent.indexOf('X11')!=-1

var winflg=1

function wrtCalendar(oj,arg1,arg2){

  oj.blur()

  if(!arguments[1])arg1=0
  if(arguments[1])winflg=0

  //-初期化
  if(arg1==0)now = new Date()
  /*
  //-年月日取得
  nowdate  = now.getDate()
  nowmonth = now.getMonth() + arg1
  nowyear  = now.getYear()

  //-月移動処理
  if(nowmonth==12 && arg1 > 0){
    nowmonth=0;nowyear++
  } else if(nowmonth==-1 && arg1 < 0){
    nowmonth=11;nowyear--
  }

  */

  //-年月日取得
  nowdate  = now.getDate()
  nowmonth = now.getMonth()
  nowyear  = now.getYear()

  //-月移動処理
  if(nowmonth==11 && arg1 > 0){
    nowmonth = -1 + arg1 ; nowyear++
  } else if(nowmonth==0 && arg1 < 0){
    nowmonth = 12 + arg1 ; nowyear--
  } else {
    nowmonth += arg1
  }

  //-2000年問題対応
  if(nowyear<1900)nowyear=1900+nowyear

  //-現在を確定
  now   = new Date(nowyear,nowmonth,nowdate)

  //-YYYYMM作成
  nowyyyymm=nowyear*100+nowmonth

  //-YYYY/MM作成
  nowtitleyyyymm=nowyear+'/'+(nowmonth + 1)

  //-週設定
  week = new Array('日','月','火','水','木','金','土');

  //-カレンダー表示用サブウインドウオープン
  if(winflg){

    var w=152
    var h=156

    //-calendar用OS別サイズ微調整
    if(Win){ w+=0  ; h+=0  }
    if(Mac){ w+=8  ; h+=22  }
    if(X11){ w+=5  ; h+=46 }

    var x=100
    var y=20

    if(document.all){

        x=window.event.screenX+30
        y=window.event.screenY-180

    } else if (document.layers){

        x+=window.screenX
        y+=window.screenY
    }

    GRS_mkSubWin('','calendar',x,y,w,h)

  }


  //-カレンダー構築用基準日の取得
  today    = now.getTime()
  fstday   = today - ( now.getDate() * 1000*60*60*24 ) //今月の1日
  fstday   = new Date(fstday)
  startday = fstday - ( fstday.getDay() * 1000*60*60*24 )  //最初の日曜日
  startday = new Date(startday)

  //-カレンダー構築用HTML
  ddata = ''
  ddata += '<HTML>'
  ddata += '<HEAD>'
  ddata += '<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=x-sjis">'
  ddata += '<TITLE>Auto Input Calendar</TITLE>'
  ddata += '<STYLE>'
  ddata += ' BODY  { font:12px ; line-height:12px ; margin : 7px };'
  ddata += ' TH  { font:12px ; line-height:12px ; font-weight : 900 };'
  ddata += ' TD  { font:12px ; font-family : Arial; line-height:12px };'

  ddata += ' A  { text-decoration:none;color:#000000;font:12px;font-family:Arial;line-height:12px };'
  ddata += ' INPUT  { font:10px ; font-family : Arial ; line-height:10px ; padding:0px}'
  ddata += '</STYLE>'
  ddata += '</HEAD>'
  ddata += '<BODY  BGCOLOR=#dddddd>'

  ddata += '<FORM>'
  ddata += '<TABLE BORDER=0 BGCOLOR=#dddddd  BORDERCOLOR=#dddddd WIDTH=140 HEIGHT=140>'

  //-MONTH
  ddata += '   <TR BGCOLOR=orange BORDERCOLOR=orange WIDTH=140 HEIGHT=14>'
    ddata += '   <TH COLSPAN=7 WIDTH=140 HEIGHT=14 ALIGN="right"><NOBR>'

    ddata +=       nowtitleyyyymm
    ddata += '&nbsp;<INPUT TYPE=button VALUE="<<" onClick="self.opener.wrtCalendar(self.opener.document.'+oj.form.name+'.'+oj.name+',-1,0)">'
    ddata += '<INPUT TYPE=button VALUE="o" onClick="self.opener.wrtCalendar(self.opener.document.'+oj.form.name+'.'+oj.name+',0,0)">'
    ddata += '<INPUT TYPE=button VALUE=">>" onClick="self.opener.wrtCalendar(self.opener.document.'+oj.form.name+'.'+oj.name+',1,0)">'
    ddata += '</NOBR></TH>'
  ddata += '   </TR>'

  //-WEEK
  ddata += '   <TR BGCOLOR=pink WIDTH=140 HEIGHT=14>'

  for (i=0;i<7;i++){
    ddata += '   <TH WIDTH=14 HEIGHT=14>'
    ddata +=       week[i]
    ddata += '   </TH>'
  }
  ddata += '   </TR>'

  //-DATE
  for(j=0;j<6;j++){
    ddata += '   <TR BGCOLOR=#ffffff>'
    for(i=0;i<7;i++){
      nextday = startday.getTime() + (i * 1000*60*60*24)
      wrtday  = new Date(nextday)

      wrtdate = wrtday.getDate()
      wrtmonth= wrtday.getMonth()
      wrtyear = wrtday.getYear()
      if(wrtyear < 1900)wrtyear=1900 + wrtyear
      wrtyyyymm = nowyear * 100 + wrtmonth
      wrtyyyymmdd= ''+nowyear +'/'+ (wrtmonth+1) +'/'+wrtdate

      wrtdateA  = '<A HREF="javascript:function v(){self.opener.document.'+oj.form.name+'.'+oj.name+'.value=(\''+wrtyyyymmdd+'\');self.close()};v()" '
      wrtdateA += '>'
      wrtdateA += '<FONT COLOR=#000000>'
      wrtdateA += wrtdate
      wrtdateA += '</FONT>'
      wrtdateA += '</A>'


      if(wrtyyyymm != nowyyyymm){
        ddata += ' <TD BGCOLOR=#cccccc WIDTH=14 HEIGHT=14>'
        ddata += wrtdateA

      } else if(wrtdate == nowdate && wrtmonth == absnow.getMonth() && wrtday.getYear() == absnow.getYear()){
        ddata += ' <TD BGCOLOR=magenta WIDTH=14 HEIGHT=14>'
        ddata += '<FONT COLOR="#ffffff">'+wrtdateA+'</FONT>'

      } else {
        ddata += ' <TD WIDTH=14 HEIGHT=14>'
        ddata += wrtdateA
      }
      ddata += '   </TD>'
    }
    ddata += '   </TR>'

    startday = new Date(nextday)
    startday = startday.getTime() + (1000*60*60*24)
    startday = new Date(startday)
  }

  //-mac用クローズボタン
  if(Mac){
    ddata += '   <TR>'
      ddata += '   <TD COLSPAN=7 ALIGN=center>'
       ddata += '   <INPUT TYPE=button VALUE="CLOSE" onClick="self.close();return false">'
      ddata += '   </TD>'
    ddata += '   </TR>'
  }

  ddata += '</TABLE>'

  ddata += '</FORM>'

  ddata += '</BODY>'
  ddata += '</HTML>'
calendarwin.document.write(ddata)
calendarwin.document.close()
winflg=1
}


/********************************************************************
 * 簡易サブウインドウ開き
 *  Syntax : GRS_mkSubWin(URL,winName,x,y,w,h)
 *  例     : GRS_mkSubWin(winIndex,'test.htm','win0',100,200,150,300)
 * ------------------------------------------------------------------
 */

var calendarwin;

function GRS_mkSubWin(URL,winName,x,y,w,h){

    var para =""
             +" left="        +x
             +",screenX="     +x
             +",top="         +y
             +",screenY="     +y
             +",toolbar="     +0
             +",location="     +0
             +",directories=" +0
             +",status="      +0
             +",menubar="     +0
             +",scrollbars="  +0
             +",resizable="   +1
             +",innerWidth="  +w
             +",innerHeight=" +h
             +",width="       +w
             +",height="      +h

        calendarwin=window.open(URL,winName,para);
        calendarwin.focus()

  }

/*--カレンダーによる日付入力スクリプトここまで--*/