

<!--

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


function includeFlash( url, width, height, title, quality )
{
	document.write( '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="' + width + '" height="' + height + '" title="' + title + '">' );
	document.write( '<param name="movie" value="' + url + '" />' );
	document.write( '<param name="quality" value="' + quality + '" />' );
	document.write( '<embed src="' + url + '" quality="' + quality + '" pluginspage="https://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="' + width + '" height="' + height + '"></embed>' );
	document.write( '</object>' );
}

// エレメントオブジェクトを取得
function getElementObject( id )
{
    if( document.all )
    {
        return document.all( id );
    }
    else if( document.getElementById )
    {
        return document.getElementById( id );
    }
    else if( document.layers )
    {
        return document.layers[ id ];
    }

    return false;
}

//-------------------------------------------
// intervalの実行
function load()
{
	getJapanTime();
	getVancouverTime();

	setInterval( 'getJapanTime()',     1000 * 20 );
	setInterval( 'getVancouverTime()', 1000 * 20 );
}

//-------------------------------------------
// 日本の時間の取得
function getJapanTime()
{
	var hour        = '';
	var minutes     = '';
	var japan_time  = '';
	var japan       = '';

	var now = new Date();

	// 世界標準時との差
	var margin_hour    = Math.ceil( now.getTimezoneOffset() / 60 );
	var margin_minutes = now.getTimezoneOffset() - ( margin_hour * 60 );

	// 世界標準時
	var gmt_hour    = now.getHours()   + margin_hour;
	var gmt_minutes = now.getMinutes() + margin_minutes;

	// 時差の計算
	hour = timeZone( gmt_hour, 9 );

	if( gmt_minutes < 10 )
		minutes = '0' + gmt_minutes;
	else
		minutes = gmt_minutes;

	japan_time = hour + ':' + minutes;

	japan = getElementObject( 'japan' );
	japan.innerHTML = japan_time;
}

//-------------------------------------------
// バンクーバの時間の取得
// 日本との時差が17時間
function getVancouverTime()
{
	var hour           = '';
	var minutes        = '';
	var vancouver_time = '';
	var vancouver      = '';

	var difference;

	var now = new Date();

	// 世界標準時との差
	var margin_hour    = Math.ceil( now.getTimezoneOffset() / 60 );
	var margin_minutes = now.getTimezoneOffset() - ( margin_hour * 60 );

	// 世界標準時
	var gmt_hour    = now.getHours()   + margin_hour;
	var gmt_minutes = now.getMinutes() + margin_minutes;

	// 時差の計算
	if( isNowDstUS() ){
		// サマータイム期間である
		difference = -7;
	} else {
		// サマータイム期間ではない
		difference = -8;
	}
	hour = timeZone( gmt_hour, difference );

	if( gmt_minutes < 10 )
		minutes = '0' + gmt_minutes;
	else
		minutes = gmt_minutes;

	vancouver_time = hour + ':' + minutes;

	vancouver = getElementObject( 'vancouver' );
	vancouver.innerHTML = vancouver_time;
}

//-------------------------------------------
// 時差の計算と0の付加
function timeZone( gmt_hour, difference )
{
	var hour = 0;
	var base_hour = gmt_hour + difference;

	if( base_hour < 0 )
	{
		hour = base_hour + 24;
	}
	else if( base_hour >= 24 )
	{
		hour = base_hour - 24;
	}
	else
	{
		hour = base_hour;
	}

	if( hour < 10 )
	{
		hour = '0' + hour;
	}

	return hour;
}

//-------------------------------------------
// サマータイム期間中か
function isNowDstUS()
{
	var now = new Date();
	var year = now.getFullYear();
	
	var pos_startUS = getDstStartUS(year);
	var pos_endUS   = getDstEndUS(year);
	
    var pos_t = now.getTime() + (now.getTimezoneOffset() + (-8 * 60)) * 60 * 1000;
	
	if ((pos_startUS <= pos_t) && (pos_t < pos_endUS)) {
		return true;
	}
	return false;
}

// ◆米国版 DST 開始設定（3月第2日曜日2:00AM から 11月第1日曜日2:00AM まで）
// サマータイム開始時刻を return で返す
function getDstStartUS(year)
{
    // 第2引数の2→3月　第3引数の1→1日　第4引数の2→2:00AM
    var dst_start = new Date(year, 3-1, 1, 2, 0, 0);
    for (var i = 8; i <= 14; i++) {
        dst_start.setDate(i);
        if (0 == dst_start.getDay()) {    // 0は日曜日を意味する
            break;
        }
    }
    return dst_start.getTime();
}

// ◆米国版 DST 終了設定（3月第2日曜日2:00AM から 11月第1日曜日2:00AM まで）
// サマータイム終了時刻を return で返す
function getDstEndUS(year)
{
    // 第2引数の10→11月　第3引数の1→1日　第4引数の2→2:00AM
    var dst_end = new Date(year, 11-1, 1, 2, 0, 0);
    for (var i = 1; i <= 7; i++) {
        dst_end.setDate(i);
        if (0 == dst_end.getDay()) {    // 0は日曜日を意味する
            break;
        }
    }
    return dst_end.getTime();
}
