/*  /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

    +++ Calendar 2 +++

    LastModified : 2005-09/13
    
    Powered by kerry
    http://202.248.69.143/~goma/
    
    動作ブラウザ :: あまりにも古いブラウザでなければ動作
    
    
    過去未来のカレンダをリロード無しで再描画できるブラウザは
    IE4+, Gecko, Opera7+
    
    /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
    
    * Usage
    
    @ 適当な場所で外部ファイルを読み込みカレンダを描画させたい場所へ以下を記述
    
    <script type="text/javascript" src="calendar2.js"> < /script>
    
    <script type="text/javascript"><!--
    calendar_print(); // -->
    < /script>
    
    
    
    @ 任意の年月のカレンダを描画させる
    
    <script type="text/javascript"><!--
    _year           = 2005;     // 年
    _month          = 10;       // 月
    clndrVar.fixed  = true;     // 複数作る場合は必ず 真 を代入しておく。
                                // 過去未来の表示書き換え機能が対応していない為。
    
    // 複数作る場合は親要素の ID が重複するのを避けるため
    //  clndrAttrs.boxID を連番にするなど細工する。例えば
    //  for (i=1; i<=12; i++) { 
    //      clndrAttrs.boxID += i;
    //      calendar_print( _year , i );
    //  }
    
    calendar_print( _year , _month );
    
    
    
    // ↓でも可能。calendar_print(); は親要素を作るのに対し
    // calendar_make(); は Table の親要素を作らない
    
    isCalendar = calendar_make( _year , _month );
    document.write( isCalendar );
    
    // -->
    < /script>
    
    /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/


    * 設定 */



function calendar_init()    
{

//  /_/_/_/_/_/_/_/ 基本設定 /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
    
    /*  
     *  曜日を [日月火....] 漢字一文字または [Sun,Mon,Tue....] 三文字の英表記を
     *  "ja" 又は "en" で指定
     */
    clndrVar.weekLang       = "ja";
    
    /*
     *  CAPTION に現在表示されているカレンダの年月のフォーマット。
     *  
     *  %Y -> 年
     *  %M -> 月
     *　%L -> 前の月を表示する際のリンク文字
     *　%N -> 次の月を表示する際のリンク文字
     */
//    clndrVar.captionFormat  = "%L %Y年 %M月 %N";
    clndrVar.captionFormat  = "<div class='caption_inner'>%L %M月 %N</div>";
    
    /*  
     *  %L に入る前の月を表示する際のリンク文字。画像を使うならタグを記述
     */
    clndrVar.lastMonthChar  = "&lt;&lt;";
    
    /*  
     *  %N に入る次の月を表示する際のリンク文字。画像を使うならタグを記述
     */
    clndrVar.nextMonthChar  = "&gt;&gt;";
    
    /*
     *  空の (日付の無い) セルに入れる文字
     */
    clndrVar.daySpaceChar   = "";
    
    /*
     *  過去未来のカレンダ描画機能を使用しない
     */
    clndrVar.fixed          = false; // はい -> true | いいえ -> false
    
    /*
     *  ( 上の clndrVar.fixed が true の時にはこの設定は意味がない )
     *  false (偽) にすると古いブラウザで過去未来のカレンダを生成する際に
     *  ページをリロードし再描画を行なわなくなる。
     *  つまり旧ブラウザでは今月のカレンダのみとなり、過去未来のカレンダを生成
     *  する為のリロードを行なわず、リンク文字も表示されない。
     */
    clndrVar.oldBrwsReload  = true; // リロード有効 -> true | 無効 -> false
    
    /*
     *  旧ブラウザで過去未来のカレンダを生成する際、自分自身 (のページ) に
     *  クエリを渡し描画すべき年月を判定している。その際のキー。
     */
    clndrVar.queryName      = "calendar";
    
    /*
     *  旧ブラウザ用リロード時ジャンプ先カレンダの A Name の値の suffix
     */
    clndrVar.aName          = "X_calendar";
    
    
//  /_/_/_/_/_/_/_/ 見栄え絡みの設定 /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

    /*
     *  カレンダの TABLE 要素の親要素
     *  この要素の中にカレンダが描画される
     */
    clndrVar.boxElm     = "div";
    
    /*
     *  上記要素の ID
     *  ID が重複しているなら変更する。普通は無視してかまわない。
     */
    clndrAttrs.boxID    = "X_calendar_boxId" ;
    
    /*  
     *  TABLE 要素の属性
     *  <TABLE "ココ">
     */
    clndrAttrs.table    = "class='X_calendar_table' summary='カレンダ'" ;
    
    /*
     *  CAPTION 要素の属性。
     *  <TABLE> <CAPTION "ココ"> %L %Y年 %M月 %N < /CAPTION>
     */
    clndrAttrs.caption  = "class='X_calendar_caption'" ;
    
    /*
     *  曜日の TH 要素の属性
     *  <TABLE> <CAPTION> <THEAD> <TR> <TH "ココ">日 <TH "ココ">月....
     */
    clndrAttrs.week     = "class='X_calendar_weeks'" ;
    
    /*
     *  曜日の TH 要素の属性
     *  <TABLE> <CAPTION> <THEAD> <TR> <TH "ココ">日 <TH "ココ">月....
     */
    clndrAttrs.weekSat  = "class='X_calendar_weeks_sat'" ;
    
    /*
     *  曜日の TH 要素の属性
     *  <TABLE> <CAPTION> <THEAD> <TR> <TH "ココ">日 <TH "ココ">月....
     */
    clndrAttrs.weekSun  = "class='X_calendar_weeks_sun'" ;
    
    /*
     *  曜日の TH 要素の中の FONT 要素の属性
     *  <TABLE> <CAPTION> <THEAD> <TR> <TH> <FONT "ココ"> 日 <TH> <FONT "ココ"> 月....
     */
    clndrAttrs.weekF    = "" ;
    
    /*
     *  「平日」の日付 TD 要素の属性
     *  <TABLE> <CAPTION> <THEAD> <TR> <TH> 日 <TH> 月....
     *  <TBODY> <TR> <TD "ココ"> 10 <TD "ココ"> 11 ....
     */
    clndrAttrs.def      = "class='X_calendar_default'" ;
    
    /*
     *  「平日」の日付 TD 要素の中の FONT 要素の属性
     *  <TABLE> <CAPTION> <THEAD> <TR> <TH> 日 <TH> 月....
     *  <TBODY> <TR> <TD> <FONT "ココ"> 24 <TD> <FONT "ココ"> 25 ....
     */
    clndrAttrs.defF     = "" ;
    
    /*
     *  「本日」の日付 TD 要素の属性
     *  <TBODY> <TR> <TD "ココ"> 10 <TD> 11 ....
     */
    clndrAttrs.today    = "class='X_calendar_today'" ;
    
    /*
     *  「本日」の日付 TD 要素の中の FONT 要素の属性
     *  <TBODY> <TR> <TD> <FONT "ココ"> 24 <TD> 25 ....
     */
    clndrAttrs.todayF   = "" ;
    
    /*
     *  「祭日」の日付 TD 要素の属性
     *  <TBODY> <TR> <TD "ココ"> 10 <TD> 11 ....
     */
    clndrAttrs.holiday  = "class='X_calendar_holiday'" ;
    
    /*
     *  「祭日」の日付 TD 要素の中の FONT 要素の属性
     *  <TBODY> <TR> <TD> <FONT "ココ"> 24 <TD> 25 ....
     */
    clndrAttrs.holidayF = "" ;
        
    /*
     *  「土曜日」の日付 TD 要素の属性
     *  <TBODY> <TR> <TD "ココ"> 10 <TD> 11 ....
     */
    clndrAttrs.sat  = "class='X_calendar_sat'" ;
    
    /*
     *  「土曜日」の日付 TD 要素の中の FONT 要素の属性
     *  <TBODY> <TR> <TD> <FONT "ココ"> 24 <TD> 25 ....
     */
    clndrAttrs.satF = "" ;
        
    /*
     *  「日曜日」の日付 TD 要素の属性
     *  <TBODY> <TR> <TD "ココ"> 10 <TD> 11 ....
     */
    clndrAttrs.sun  = "class='X_calendar_sun'" ;
    
    /*
     *  「日曜日」の日付 TD 要素の中の FONT 要素の属性
     *  <TBODY> <TR> <TD> <FONT "ココ"> 24 <TD> 25 ....
     */
    clndrAttrs.sunF = "" ;
        
    /*
     *  日付のないセル TD 要素の属性
     *  <TBODY> <TR> <TD "ココ"> * <TD "ココ"> * ....
     */
    clndrAttrs.none     = "class='X_calendar_none'";
    
    /*
     *  日付のないセル TD 要素の中の FONT 要素の属性
     *  <TBODY> <TR> <TD> <FONT "ココ"> * <TD> <FONT "ココ"> * ....
     */
    clndrAttrs.noneF    = "" ;
    
    /*
     *  曜日の入っている THEAD 要素の属性
     *  <TABLE> <CAPTION> <THEAD "ココ"> <TR> <TH> 日 <TH> 月 ......
     */
    clndrAttrs.thead    = "" ;
    
    /*
     *  日付の入っている TBODY 要素の属性
     *  <TABLE> <CAPTION> <THEAD> <TR> <TH> 日 <TH> 月 ......
     *  <TBODY "ココ"> <TR> <TD> * <TD> 1 ....
     */
    clndrAttrs.tbody    = "";



//  /_/_/_/_/_/_/_/ リンクの設定 /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

    /* 
     *  特定の年月日にリンクをはりたい場合、アンカーの属性を値とし
     *  添え字を年月日とすることで可能。必要なだけ書き連ねませう。
     *  e.g.
     *  clndrLink["#20050101"] = "href='http://127.0.0.1/newyear.html' target='win_foo'";
     *  clndrLink["#20051225"] = "href='xmas.html' title='Merry Merry Christmas!'";
     *
     *  clndrLink   ->  この変数名は固定
     *  "#20050101" ->  4桁の年、2桁の月、2桁の日。一文字目の "#" は以下で変更可能。
     *                  変更する場合は必ず数字ではない文字で一文字以上。例えば "X" なら
     *                  clndrVar.linkDaySuffix  = "X";
     *                  clndrLink["X20050822"]  = "hello.html"; // またはJS の命名規則に沿っていれば
     *                  clndrLink.X20050822     = "hello.html"; // ← これも可。同じこと
     *  = "値";         -> このリンク、 A 要素の属性
     */
    clndrVar.linkDaySuffix  = "#";


    /*
     *  もし今日から何日後、又は何日前という日付がほしい時は以下の関数を利用できる。
     *
     *  getDayF( N ); 
     *
     *  N は明日なら 1、3日前なら -3 という数値。0 (zero) や省略すると本日。
     *  この関数を呼び出すと常に今日を基準とした前後 N 日がフォーマット済みで返ってくる。
     *  フォーマットは変数の添え字に使える文字列で "#20051225" というもの。
     *  e.g., 
     *  clndrLink[ getDayF(  ) ] = "href='today.html'";     // 常に今日の日付
     *  clndrLink[ getDayF( 1) ] = "href='tomorrow.html'";  // 常に一日後の日付
     *  clndrLink[ getDayF(-1) ] = "href='yesterday.html'"; // 常に一日前の日付
     */
    



//  /_/_/_/_/_/_/_/ 設定終わり /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/


    


    clndrVar.pDelimiter = ".";
    clndrVar.weekLang   = clndrVar.weekLang.toLowerCase();
}





clndrLink   = new Array();
clndrAttrs  = new Array();
clndrVar    = new Array();

clndrVar.weeks      = new Array("ja", "en", "usr");
clndrVar.weeks.ja   = new Array("日", "月", "火", "水", "木", "金", "土");
clndrVar.weeks.en   = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");


function getDayF(_n) 
{
    var dd = new Date();
    if (!isNaN(_n)) {
        _n *= 60* 60* 24* 1000;
        dd.setTime(dd.getTime() + _n);
    }
    var y = dd.getYear();   if (y<1900) y += 1900;
    var m = dd.getMonth();  if (++m < 10) m = "0"+ m;
    return clndrVar.linkDaySuffix+ y+ m+ dd.getDate();
}

function calendar_getVAEday(_y, _m) {
    return parseInt((_m== 3? 20.8431: 23.2488)+ (0.242194* (_y- 1980))- parseInt((_y- 1980) / 4))+"";
}

function calendar_getLastDate(_y, _m) {
    return _m == 2? ((!(_y%4) && _y%100) || !(_y%400))? 29: 28:
                       (_m==4 || _m==6 || _m==9 || _m==11)? 30: 31;
}

function calendar_getHoliday(_y, _m, _fd)
{
    var hdz = new Array();
    if (_y < 1948) return hdz;
    if (!(_fd > 1)) _fd += 7;

    switch (_m)
    {
        case  1: hdz = new Array(1, 9+(7-_fd));         break;  // 成人の日(第２月曜日)
        case  2: if (_y ==1989) hdz= new Array(11, 24);
                 else           hdz[0] = 11;            break;  // 建国記念日
        case  3: hdz[0] = calendar_getVAEday(_y, _m);   break;  // 春分の日
        case  4: if (_y ==1959) hdz= new Array(10, 29);
                 else           hdz[0] = 29;            break;  // みどりの日
        case  5: if (_y < 2007) hdz= new Array(3, 5);           // 憲法記念日 こどもの日   
                 else           hdz= new Array(3, 4, 5);break;  // みどりの日
        case  6: if (_y ==1993) hdz[0] =  9;            break;
        case  7: if (_y < 2003) hdz[0] = 20;                    // 海の日 (第３月曜日)
                 else hdz[0] = 16+ (7- _fd);            break;  
        case  8: /*     nothing     */                  break;
        case  9: if (_y < 2003) hdz[0] = 15;            // 敬老の日 (第３月曜日), 秋分の日
                 else           hdz[0] = 16+ (7- _fd);
                 hdz[1] = calendar_getVAEday(_y, _m);   break;
        case 10: hdz[0] = 9+ (7- _fd);                  break;  // 体育の日 (第２月曜日)
        case 11: if (_y ==1990) hdz = new Array(3, 12, 23); 
                 else hdz = new Array(3, 23);           break;  // 文化の日 勤労感謝の日
        case 12: hdz[0] = 23;                           break;  // 天皇誕生日
    }
    
    hdz = calendar_valSort(hdz);
    if (_y < 1973) return hdz;

    var i, j;
    _fd--;
    for (i=0; i<hdz.length; i++) 
    {
        hdz[i] -= 0;
                
        if (_y >= 1985) 
        if (hdz[i+1] && hdz[i] - hdz[i+1] == -2)            // 国民の休日
            hdz[hdz.length] = hdz[i]+ 1;
        
        if (!((hdz[i]+ _fd) % 7))                           // 振り替え休日
        {
            if (_y < 2005) hdz[i]++;
            else 
                for (j=1; i<hdz.length; j++)
                if (hdz[i]+ j != hdz[i+j]) {
                    hdz[i] += j; break;
                }
        }
    }

    return calendar_valSort(hdz);
}

function calendar_valSort(_ary)
{
    var i, j, tmp;
    for (i=0; i<_ary.length-1; i++)
    {
        for (j=i+1; j<_ary.length; j++)
            if (_ary[j] < _ary[i]) 
            {
                tmp = _ary[j];
                _ary[j] = _ary[i];
                _ary[i] = tmp;
            }
    }
    return _ary;
}

function calendar_getDD(_y, _m)
{
    var dd      = new Array();
    var isDate  = new Date();
    var isY     = isDate.getYear();
    var isM     = isDate.getMonth()+ 1;
    var isD     = isDate.getDate();
    if (isY < 1900) isY += 1900;
    
    if (!_y || !_m) {
        if(isY == 2010 && isM <4) isM=4;
        dd          = calendar_getDD(isY, isM);
    } else {
        isDate      = new Date(_y, _m- 1, 1);
        dd.year     = isDate.getYear();
        if (dd.year < 1900) dd.year += 1900;
        dd.month    = isDate.getMonth()+ 1;
        dd.firstDay = isDate.getDay();
        dd.lastDay  = calendar_getLastDate(dd.year, dd.month);
        dd.holiday  = calendar_getHoliday(dd.year, dd.month, dd.firstDay);
        dd.today    = (isY == dd.year && isM == dd.month)? isD: -1;
    }
    return dd;
}

function  calendar_getLinkDays(_y, _m)
{
    var slen= clndrVar.linkDaySuffix.length;
    var nt  = _y;
    var tmp = new Array();
    nt     +=  (_m < 10? "0": "")+ _m;
    
    for (var i in clndrLink) if (i.indexOf(nt) == slen)
        tmp[i.substring(6+slen)-0] = clndrLink[i];

    return tmp;
}

function  calendar_isReplace(_d, _f, _s)
{
    var n   = _d.indexOf(_f);
    if (n >= 0)
    {
        tmp = _d.substring(0, n);
        tmp+= _s;
        _d  = tmp + _d.substring(n+ _f.length);
    }
    return _d;
}


function calendar_mkInnrCaption(_y, _m)
{
    var capStr  =  calendar_isReplace(clndrVar.captionFormat, "%Y", _y);
    capStr      =  calendar_isReplace(capStr, "%M", _m);

    var l = "";
    var n = "";
    var ymL, ymR;
    
    if (!clndrVar.fixed)
    {
        if (_m == 1)    ymL = (_y-1)+ clndrVar.pDelimiter+ 12;
        else            ymL = _y+ clndrVar.pDelimiter+ (_m-1);
        if (_m == 12)   ymR = (_y+1)+ clndrVar.pDelimiter+ 1;
        else            ymR = _y+ clndrVar.pDelimiter+ (_m+1);
        
        if (document.all || document.getElementById)
        {
            ymL = calendar_isReplace(ymL, clndrVar.pDelimiter, ",");
            ymR = calendar_isReplace(ymR, clndrVar.pDelimiter, ",");
            l = "<div class='left'><a href='javascript:calendar_swap("+ ymL+ ")'>"+ clndrVar.lastMonthChar+"<\x2fa><\x2fdiv>";
            n = "<div class='right'><a href='javascript:calendar_swap("+ ymR+ ")'>"+ clndrVar.nextMonthChar+"<\x2fa><\x2fdiv>";
        }
        else if (clndrVar.oldBrwsReload)
        {
            ymL += "#"+ clndrVar.aName;
            ymR += "#"+ clndrVar.aName;
            var pt = location.pathname+ "?"+ clndrVar.queryName+ "=";
            l = "<a name='"+ clndrVar.aName+ "L' href='"+ pt+ ymL+ "L'>"+ clndrVar.lastMonthChar+"<\x2fa>";
            n = "<a name='"+ clndrVar.aName+ "N' href='"+ pt+ ymR+ "N'>"+ clndrVar.nextMonthChar+"<\x2fa>";
        }
    }
    capStr = calendar_isReplace(capStr, "%L", l);
    return   calendar_isReplace(capStr, "%N", n);
}

function calendar_mkInnrTBody(_d)
{   
    var buf     = "";
    var hIdx    = 0;
    var key     = "";
    var n       = Math.ceil((_d.firstDay+ _d.lastDay) / 7);
    var dLink   = calendar_getLinkDays(_d.year, _d.month);
    var i, j, k, tmp;
    
    var now      = new Date();
        now      = new Date(now.getFullYear(), (now.getMonth() + 1), now.getDate());
    var after    = computeMonth(now.getFullYear(), now.getMonth(), now.getDate(), 6);
    var lchOpen = new Date(2010, 4, 6);
    
    for (i=0; i<n; i++)
    {
        buf += "<tr>";
        for (j=0; j<7; j++)
        {
            k = (i*7)+ j- _d.firstDay+ 1;
            if (k <= 0 || k > _d.lastDay) {
                k = clndrVar.daySpaceChar;
                key = "none";
            }
            else if (k == _d.today) 
                key = "today";
            else if (!j) 
                key = "sun";    // sunday
            else if (k == _d.holiday[hIdx]) {
                key = "holiday";
                hIdx++;
            }
            else if (j == 6) 
                key = "sat";    // satday
            else
                key = "def";
            
//            if (dLink[k])
//                k = "<a "+ dLink[k]+ ">"+ k+ "<\x2fa>";
              k = createLink(_d.year, _d.month, k, now.getTime(), after.getTime(), lchOpen.getTime() );

            tmp =   clndrAttrs[key+"F"];
            buf +=  "<td "+ clndrAttrs[key] +">"
                +   (tmp? "<font "+ tmp+ ">"+ k +"<\x2ffont>": k)
                +   "<\x2ftd>";
        }
        buf     += "<\x2ftr>";
    }
    return buf;
}

function calendar_swap(_y, _m)
{
    document[document.all? "all": "getElementById"
            ](clndrAttrs.boxID).innerHTML = calendar_make(_y, _m);
}

function calendar_make(_y, _m)
{
    var d       = calendar_getDD(_y, _m);
    var capStr  = calendar_mkInnrCaption(d.year, d.month);
    var weeks   = "";
    var w       = clndrVar.weeks[clndrVar.weekLang];
    var tmp     = "";
    
    for (var i=0; i<w.length; i++)

        if (!i) {
          weeks   += "<th "+ clndrAttrs.weekSun+ ">"
                  +   (clndrAttrs.weekF? "<font "+ clndrAttrs.weekF+ ">"+ w[i]+ "<\x2ffont>": w[i])
                  +   "<\x2fth>";
        }
        else if (i==6) {
          weeks   += "<th "+ clndrAttrs.weekSat+ ">"
                  +   (clndrAttrs.weekF? "<font "+ clndrAttrs.weekF+ ">"+ w[i]+ "<\x2ffont>": w[i])
                  +   "<\x2fth>";
        }
        else {
          weeks   += "<th "+ clndrAttrs.week+ ">"
                  +   (clndrAttrs.weekF? "<font "+ clndrAttrs.weekF+ ">"+ w[i]+ "<\x2ffont>": w[i])
                  +   "<\x2fth>";
        }

    return      "<table "+ clndrAttrs.table+ ">"
            +   "<caption "+ clndrAttrs.caption+ ">"+ capStr+ "<\x2fcaption>"
            +   "<thead "+ clndrAttrs.thead+ ">"
            +   "<tr>" + weeks + "<\x2ftr>"
            +   "<\x2fthead>"
            +   "<tbody "+ clndrAttrs.tbody+ ">"
            +   calendar_mkInnrTBody(d)
            +   "<\x2ftbody><\x2ftable>"
            ;
}

function calendar_print(y,m)
{
    var y, m;
    var n = location.search.indexOf(clndrVar.queryName+"=");
    if (clndrVar.oldBrwsReload && n > 0)
    {
        n += clndrVar.queryName.length+ 1; // 1 = "="
        var tmp = location.search.substr(n);
        n = tmp.indexOf(clndrVar.pDelimiter);
        y = tmp.substr(0, n);
        m = tmp.substr(n+ 1);
    }

    document.write(
        "<"+ clndrVar.boxElm+ " id='"+ clndrAttrs.boxID +"'>"
        + calendar_make(y,m)+ "<\x2f"+ clndrVar.boxElm+ ">"
    );
}

function createLink(_y,_m,_d,now,after,lchOpen) {
  
  var event;
  var dispDay = new Date(_y,_m,_d);

  if(_d == "") {
    return _d;
  } else if(now > dispDay.getTime()) {
    return _d;
  } else if(after < dispDay.getTime()) {
    return _d;
  } else if(lchOpen > dispDay.getTime()) {
    return _d;
  }
  
  var ym = _y + "/" + ("0"+_m).slice(-2) + "/01";
  event  = "clickSubmit('"+ ym +"','"+ _d +"')";
  return '<a href="#page" onclick="'+event+'">'+ _d + "<\x2fa>";
}

function clickSubmit(_ym,_d) {
	document.form_reserve.dt_yyyymm.value = _ym;
	document.form_reserve.dt_dd.value = _d;
	document.form_reserve.submit();
}

function computeMonth(year, month, day, addMonths) {
    month += addMonths;
    var endDay = calendar_getLastDate(year, month);
    if(day > endDay) day = endDay;
    var dt = new Date(year, month, day);
    return dt;
}

function createSelectBox() {
  var date = new Date();
  
  //■■年月セレクトボックス作成
  if (navigator.platform.indexOf("Win") != -1){
    gy = date.getYear();
    if (navigator.appName == "Netscape"){
      gy += 1900;
    }  
  }else{
    gy = date.getYear();
    if (navigator.appName == "Microsoft Internet Explorer"){
    }else{
      gy += 1900;
    }
  }
  gy2 = gy;

  gm = date.getMonth()+1;
  
  str = ""
  sgm = ""
  sgd = ""
  str = "<select name='dt_yyyymm' size='1'>"

  for (i=1; i <= 12; i++ ){

    if(gm > 12){
      gm = 1;
      gy = gy + 1;
    }
    if(gm < 10){
      sgm="0" + gm;
    } else {
      sgm="" + gm;
    }
//    str += ( (gy==2010&&gm<4 ) || gy < 2010 ) ? "" : "<option value='" + gy + "/" + sgm + "/" + "01'>" + gy + "年 " + sgm + "月" + "</option>";
    
    if((gy==2010&&gm<4 ) || gy < 2010) {
    } else if(i==1) {
      str += "<option value='" + gy + "/" + sgm + "/" + "01' selected='selected'>" + gy + "年 " + sgm + "月" + "</option>";
    } else {
      str += "<option value='" + gy + "/" + sgm + "/" + "01'>" + gy + "年 " + sgm + "月" + "</option>";
    }
    
    gm=gm+1;
  }

  str = str + "</select> "
  document.write(str);

  //■日セレクトボックス作成
  str = ""
  str = "<select name='dt_dd' size='1'>"
  gd = date.getDate();
  for (i=1; i <= 31; i++ ){
    sgd=""+ i
    if(sgd==gd){
      str=str + "<option value=" + sgd + " selected='selected'>" + i + "日" + "</option>";
    } else {
      str=str + "<option value=" + sgd + " >" + i + "日" + "</option>";
    }
//    str=str + "<option value='" + sgd + "'>" + i + "日" + "</option>";
  }

  str = str + "</select>"
  document.write(str);


var openTime = new Date(2010,4,6).getTime();
var nowTime = new Date( gy2, date.getMonth()+1 , gd).getTime();

//実行日がオープン前の場合、オープン日を選択
if(openTime>nowTime) {
	document.form_reserve.dt_yyyymm.value = "2010/04/01";
	document.form_reserve.dt_dd.value = "6";
}

}


calendar_init();

