//date.js	030404/030404
//最終更新日の表示

//Ref: http://www.din.or.jp/~hagi3/JavaScript/JSTips/Default.htm
{
// ブラウザ情報の設定
      ie =(navigator.appName=='Microsoft Internet Explorer');
      nn =(navigator.appName=='Netscape');
      mac=(navigator.appVersion.indexOf('Mac')!=-1);
      ver=parseInt(navigator.appVersion);
      if(ie && ver==4)
        ver = parseInt(
                navigator.appVersion.substring
                  (navigator.appVersion.indexOf('MSIE ')+5)
                );
 
      // 月名の変換
      function Month(){
        var i=0;
        this[i++]='Jan'; this[i++]='Feb'; this[i++]='Mar';
        this[i++]='Apr'; this[i++]='May'; this[i++]='Jun';
        this[i++]='Jul'; this[i++]='Aug'; this[i++]='Sep';
        this[i++]='Oct'; this[i++]='Nov'; this[i++]='Dec';
      }
      month = new Month();

      // 最終更新日の日付を算出する
      function updateDate(){
        var lm = document.lastModified;
        var lmDate;

        if(ie && ver<4){
          // IE4 より前のブラウザは parse できない
          var i,j,nm;
          i=lm.indexOf(' ',0); j=lm.indexOf(' ',i+1);
          nm ='' +lm.substring(i+1,j);
          i=lm.indexOf(' ',j); j=lm.indexOf(' ',i+1);
          nm+='/'+lm.substring(i+1,j);
          i=lm.indexOf(' ',j); j=lm.indexOf(' ',i+1);
          nm+='/'+lm.substring(j+1,lm.length)
             +' '+lm.substring(i+1,j);
          lmDate = new Date(Date.parse(nm));
        } else {
          var p,pd=Date.parse(document.lastModified);
          if(!pd && (p=document.lastModified.indexOf(' JST'))!=-1){
          // Linux版 NN4 では 'JST' 付きの文字列は parse できない
            pd=Date.parse(document.lastModified.substring(0,p));
          }
          lmDate = new Date(pd);
        }
        // 年号は getFullYear メソッドがあれば、これを使用する
        var y=lmDate.getFullYear?
                lmDate.getFullYear():lmDate.getYear();
        // Y2K問題の補正をする
        var oy=y;
        if(y< 100) y+=1900;
        if(y<1980) y+= 100;
        if(oy!=y) lmDate.setYear(y);
        if(ie && ver<5 && navigator.appVersion.indexOf('MSIE 5')==-1){
          // IE4以前のブラウザは地域化の考慮が欠けているので補正する
          lmDate.setTime(
            lmDate.getTime()-lmDate.getTimezoneOffset()*60*1000);
        }
        else if(mac && !ie && ver==4){
          // Mac版 NN4も地域化の考慮が欠けているので補正する
          // 但し、getTimezoneOffset の戻り値のフォーマットが異なる！
          var tz=lmDate.getTimezoneOffset();
          lmDate.setTime(
            lmDate.getTime()+(parseInt(tz/100)*60+tz%100)*60*1000);
        }
        // 算出した最終更新日を文字列に成形して戻す
        return (month[lmDate.getMonth()]+'. '+lmDate.getDate()+', '+y);
      }
      // 最終更新日を出力する
      document.write('<i>Last updated '+updateDate()+'</i>');
}


