//update history
// 04.12.08		add		Seychelles
// 05.01.28		add		Egypt
//				add		text link to /worldclock/
// 05.04.06		add		Bahrain, Qatar, San Marino, Monaco
// 05.05.19		change	Israel DST, Monglia DST, ウルグアイ型
// 05.05.19		add		パラグアイ型
// 05.06.02		add		Luxembourg
// 05.07.29		add		Macedonia, Bulgaria, Romania, Slovenia, Cyprus
// 06.03.30		change  DST 2006
// 07.03.08		change  DST 2007


function checkTimeZone(x){

	checkCountry = x;

	
	if (checkCountry == "Antigua"){
		zone = -4;
		dstFlag = 0;
	}
	else if (checkCountry == "Argentina"){
		zone = -3;
		dstFlag = 0;
	}
	else if (checkCountry == "Aruba"){
		zone = -4;
		dstFlag = 0;
	}
/*	else if (checkCountry == "ASEAN"){
		zone = 0;
		dstFlag = 0;
	} */
	else if (checkCountry == "Australia"){
		zone = 10;
		dstFlag = 4;
	}
	else if (checkCountry == "Austria"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "Bahamas"){
		zone = -5;
		dstFlag = 27; //modify 07.03.08
	}
	else if (checkCountry == "Bangladesh"){
		zone = 6;
		dstFlag = 0;
	}
	else if (checkCountry == "Barbados"){
		zone = -4;
		dstFlag = 0;
	}
	else if (checkCountry == "Belgium"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "Bermuda"){
		zone = -4;
		dstFlag = 1;
	}
	else if (checkCountry == "Bolivia"){
		zone = -4;
		dstFlag = 0;
	}
	else if (checkCountry == "Brazil"){
		zone = -3;
		dstFlag = 5;
	}
	else if (checkCountry == "BurkinaFaso"){
		zone = 0;
		dstFlag = 0;
	}
	else if (checkCountry == "Canada"){
		zone = -5;
		dstFlag = 1;
	}
	else if (checkCountry == "Chile"){
		zone = -4;
		dstFlag = 9;
	}
	else if (checkCountry == "China"){
		zone = 8;
		dstFlag = 0;
	}
	else if (checkCountry == "Colombia"){
		zone = -5;
		dstFlag = 0;
	}
	else if (checkCountry == "CostaRica"){
		zone = -6;
		dstFlag = 0;
	}
	else if (checkCountry == "Croatia"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "Curacao"){
		zone = -4;
		dstFlag = 0;
	}
	else if (checkCountry == "CzechRepublic"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "Denmark"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "Dominican"){
		zone = -4;
		dstFlag = 0;
	}
	else if (checkCountry == "Ecuador"){
		zone = -5;
		dstFlag = 0;
	}
	else if (checkCountry == "Elsalvador"){
		zone = -6;
		dstFlag = 0;
	}
	else if (checkCountry == "Estonia"){
		zone = 2;
		dstFlag = 2;
	}
/*	else if (checkCountry == "EU"){
		zone = 0;
		dstFlag = 0;
	} */
	else if (checkCountry == "Finland"){
		zone = 2;
		dstFlag = 2;
	}
	else if (checkCountry == "France"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "Germany"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "GrandCayman"){
		zone = -5;
		dstFlag = 0;
	}
	else if (checkCountry == "Greece"){
		zone = 2;
		dstFlag = 2;
	}
	else if (checkCountry == "Grenada"){
		zone = -4;
		dstFlag = 0;
	}
	else if (checkCountry == "Guam"){
		zone = 10;
		dstFlag = 0;
	}
	else if (checkCountry == "Guatemala"){
		zone = -6;
		dstFlag = 0;
	}
	else if (checkCountry == "Guyana"){
		zone = -4;
		dstFlag = 0;
	}
	else if (checkCountry == "Haiti"){
		zone = -5;
		dstFlag = 27; //modify 07.03.08
	}
	else if (checkCountry == "Honduras"){
		zone = -6;
		dstFlag = 30; //modify 07.03.08
	}
	else if (checkCountry == "HongKong"){
		zone = 8;
		dstFlag = 0;
	}
	else if (checkCountry == "Hungary"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "Iceland"){
		zone = 0;
		dstFlag = 0;
	}
	else if (checkCountry == "India"){
		zone = 5.5;
		dstFlag = 0;
	}
	else if (checkCountry == "Indonesia"){
		zone = 7;
		dstFlag = 0;
	}
	else if (checkCountry == "Iran"){
		zone = 3.5;
		dstFlag = 0; //modify 06.03.30
 	}
	else if (checkCountry == "Ireland"){
		zone = 0;
		dstFlag = 2;
	}
	else if (checkCountry == "Israel"){
		zone = 2;
		dstFlag = 13;
	}
	else if (checkCountry == "Italy"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "Jamaica"){
		zone = -5;
		dstFlag = 0;
	}
	else if (checkCountry == "Japan"){
		zone = 9;
		dstFlag = 0;
	}
	else if (checkCountry == "Korea"){
		zone = 9;
		dstFlag = 0;
	}
	else if (checkCountry == "Latvia"){
		zone = 2;
		dstFlag = 2;
	}
	else if (checkCountry == "Lithuania"){
		zone = 2;
		dstFlag = 2;
	}
	else if (checkCountry == "Malaysia"){
		zone = 8;
		dstFlag = 0;
	}
	else if (checkCountry == "Mauritius"){
		zone = 4;
		dstFlag = 0;
	}
	else if (checkCountry == "Mexico"){
		zone = -6;
		dstFlag = 27; //modify 07.03.08
	}
	else if (checkCountry == "Morocco"){
		zone = 0;
		dstFlag = 0;
	}
	else if (checkCountry == "Nepal"){
		zone = 5.75;
		dstFlag = 0;
	}
	else if (checkCountry == "Netherlands"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "NewZealand"){
		zone = 12;
		dstFlag = 8;
	}
	else if (checkCountry == "Nicaragua"){
		zone = -6;
		dstFlag = 0;
	}
	else if (checkCountry == "Nigeria"){
		zone = 1;
		dstFlag = 0;
	}
	else if (checkCountry == "Norway"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "Pakistan"){
		zone = 5;
		dstFlag = 0;
	}
	else if (checkCountry == "Panama"){
		zone = -5; //modify 07.03.08
		dstFlag = 0;
	}
	else if (checkCountry == "Paraguay"){
		zone = -4;
		dstFlag = 19;
	}
	else if (checkCountry == "Peru"){
		zone = -5;
		dstFlag = 0;
	}
	else if (checkCountry == "Philippines"){
		zone = 8;
		dstFlag = 0;
	}
	else if (checkCountry == "Poland"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "Portugal"){
		zone = 0;
		dstFlag = 2;
	}
	else if (checkCountry == "PuertoRico"){
		zone = -4;
		dstFlag = 0;
	}
	else if (checkCountry == "Russia"){
		zone = 3;
		dstFlag = 2;
	}
	else if (checkCountry == "Saipan"){
		zone = 10;
		dstFlag = 0;
	}
	else if (checkCountry == "Singapore"){
		zone = 8;
		dstFlag = 0;
	}
	else if (checkCountry == "Slovakia"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "SouthAfrica"){
		zone = 2;
		dstFlag = 0;
	}
	else if (checkCountry == "Spain"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "SriLanka"){
		zone = 5.5; //modify 07.03.08
		dstFlag = 0;
	}
	else if (checkCountry == "StKitts"){
		zone = -4;
		dstFlag = 0;
	}
	else if (checkCountry == "StLucia"){
		zone = -4;
		dstFlag = 0;
	}
	else if (checkCountry == "StMaarten"){
		zone = -4;
		dstFlag = 0;
	}
	else if (checkCountry == "Suriname"){
		zone = -3;
		dstFlag = 0;
	}
	else if (checkCountry == "Sweden"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "Switzerland"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "Syria"){
		zone = 2;
		dstFlag = 7;
	}
	else if (checkCountry == "Taiwan"){
		zone = 8;
		dstFlag = 0;
	}
	else if (checkCountry == "Thailand"){
		zone = 7;
		dstFlag = 0;
	}
	else if (checkCountry == "Trinidad"){
		zone = -4;
		dstFlag = 0;
	}
	else if (checkCountry == "Turkey"){
		zone = 2;
		dstFlag = 2;
	}
	else if (checkCountry == "UAE"){
		zone = 4;
		dstFlag = 0;
	}
	else if (checkCountry == "UK"){
		zone = 0;
		dstFlag = 2;
	}
	else if (checkCountry == "USA"){
		zone = -5;
		dstFlag = 1;
	}
	else if (checkCountry == "Ukraine"){
		zone = 2;
		dstFlag = 2;
	}
	else if (checkCountry == "Uruguay"){
		zone = -3;
		dstFlag = 26; //modify 07.03.08
	}
	else if (checkCountry == "Venezuela"){
		zone = -4;
		dstFlag = 0;
	}
	else if (checkCountry == "Vietnam"){
		zone = -8;
		dstFlag = 0;
	}
	else if (checkCountry == "NY"){
		zone = -5;
		dstFlag = 1;
	}
	else if (checkCountry == "LA"){
		zone = -8;
		dstFlag = 1;
	}
	else if (checkCountry == "EDT"){
		zone = -5;
		dstFlag = 1;
	}
	else if (checkCountry == "PDT"){
		zone = -8;
		dstFlag = 1;
	}
	else if (checkCountry == "CDT"){
		zone = -6;
		dstFlag = 1;
	}
	else if (checkCountry == "EST"){
		zone = -5;
		dstFlag = 0;
	}
	else if (checkCountry == "Brazil2"){
		zone = -4;
		dstFlag = 0;
	}
	else if (checkCountry == "Seychelles"){
		zone = 4;
		dstFlag = 0;
	}
	else if (checkCountry == "Egypt"){
		zone = 2;
		dstFlag = 6;
	}
	else if (checkCountry == "Bahrain"){
		zone = 3;
		dstFlag = 0;
	}
	else if (checkCountry == "Qatar"){
		zone = 3;
		dstFlag = 0;
	}
	else if (checkCountry == "SanMarino"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "Monaco"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "Luxembourg"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "Macedonia"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "Bulgaria"){
		zone = 2;
		dstFlag = 2;
	}
	else if (checkCountry == "Romania"){
		zone = 2;
		dstFlag = 2;
	}
	else if (checkCountry == "Slovenia"){
		zone = 1;
		dstFlag = 2;
	}
	else if (checkCountry == "Cyprus"){
		zone = 2;
		dstFlag = 2;
	}
	else if (checkCountry == "Brunei"){ //add 08.04.22
		zone = 8;
		dstFlag = 0;
	}
	else if (checkCountry == "Cambodia"){ //add 08.04.22
		zone = 7;
		dstFlag = 0;
	}
	else if (checkCountry == "Fiji"){ //add 08.04.22
		zone = 12;
		dstFlag = 0;
	}
	else if (checkCountry == "Laos"){ //add 08.04.22
		zone = 7;
		dstFlag = 0;
	}
	else if (checkCountry == "NewCaledonia"){ //add 08.04.22
		zone = 11;
		dstFlag = 0;
	}
	else if (checkCountry == "Tahiti"){ //add 08.04.22
		zone = -10;
		dstFlag = 0;
	}
}

//--------------------------
// main
//--------------------------
nowyear = new Date();
year = nowyear.getYear(); if (year < 2000) { year += 1900; }
offset = nowyear.getTimezoneOffset() / 60; //GMTからの時差(単位:時)

//夏時間の開始終了日計算 //modify 06.03.08
sun2_3 = calcDst(year,2,3,0);   // 2月第3日曜日(ブラジル型終了)
sun2_e = calcDst(year,2,4,0);   // 2月最終日曜日()
sat3_2 = calcDst(year,3,2,6);   // 3月第2土曜日()
sat3_4 = calcDst(year,3,4,6);   // 3月第2土曜日()
sat3_e = calcDst(year,3,5,6);   // 3月最終土曜日(NIS型開始)
sun3_2 = calcDst(year,3,2,0);   // 3月第2日曜日(チリ型終了, パラグァイ型終了, ウルグアイ型終了)
sun3_3 = calcDst(year,3,3,0);   // 3月第3日曜日(ニュージーランド型終了)
sun3_e = calcDst(year,3,5,0);   // 3月最終日曜日(欧州型開始, Tunisia開始)
fri4_1 = calcDst(year,4,1,5);   // 4月第1金曜日()
fri4_3 = calcDst(year,4,3,5);   // 4月第3金曜日()
fri4_e = calcDst(year,4,4,5);   // 4月最終金曜日()
sun4_1 = calcDst(year,4,1,0);   // 4月第1日曜日(米国型開始,中央南半球型終了,オーストラリア型終了,タスマニア型終了)
sun4_2 = calcDst(year,4,2,0);   // 4月第1日曜日()
sun4_3 = calcDst(year,4,3,0);   // 4月第3日曜日(フォークランド型終了) 変更2005.05.19
sun4_e = calcDst(year,4,5,0);   // 4月最終日曜日(エジプト型開始)
sun5_1 = calcDst(year,5,1,0);   // 5月第1日曜日()
mon8_1 = calcDst(year,8,1,1);   // 8月第1月曜日()
sun9_1 = calcDst(year,9,1,0);   // 9月第1日曜日(中央南半球型開始,フォークランド型開始)
sun9_3 = calcDst(year,9,3,0);   // 9月第3日曜日()
fri9_1 = calcDst(year,9,1,5);   // 9月第1金曜日()
fri9_e = calcDst(year,9,5,5);   // 9月最終金曜日(エジプト型終了)
sun10_1= calcDst(year,10,1,0);  // 10月第1日曜日(タスマニア型開始,ニュージーランド型開始)
sat10_2= calcDst(year,10,2,6);  // 10月第2土曜日()
sun10_2= calcDst(year,10,2,0);  // 10月第2日曜日(ウルグアイ型開始)
fri10_3= calcDst(year,10,3,5);   // 10月第3金曜日()
sun10_3= calcDst(year,10,3,0);  // 10月第3日曜日(ブラジル型開始, チリ型開始, パラグァイ型開始)
sun10_e= calcDst(year,10,5,0);  // 10月最終日曜日(米国型終了,欧州型終了,オーストラリア型開始, Cuba終了, Tunisia終了)
sat10_e= calcDst(year,10,5,6);  // 10月最終土曜日(NIS型終了)
sun11_1= calcDst(year,11,1,0);  // 11月第1日曜日()

start_iraq = calcDst(year,4,1,-1); // 日付指定(イラク型開始)
end_iraq = calcDst(year,4,1,-1); // 日付指定(イラク型終了)
start_mongolia = calcDst(year,3,31,-1); // 日付指定(モンゴル型開始)
end_mongolia = calcDst(year,9,29,-1); // 日付指定(モンゴル型終了)
start_iran = calcDst(year,3,22,-1); // 日付指定(イラン型開始)
end_iran = calcDst(year,9,22,-1); // 日付指定(イラン型終了)
start_israel = calcDst(year,3,30,-1); // 日付指定(イスラエル型開始)
end_israel = calcDst(year,9,16,-1); // 日付指定(イスラエル型終了)
start_jordan = calcDst(year,3,29,-1); // 日付指定(ヨルダン型開始)
end_jordan = calcDst(year,10,19,-1); // 日付指定(ヨルダン型終了)
start_syria = calcDst(year,4,1,-1); // 日付指定(シリア型開始)
end_syria = calcDst(year,10,1,-1); // 日付指定(シリア型終了)
start_cuba = calcDst(year,3,25,-1); // 日付指定(キューバ開始)
start_gaza = calcDst(year,4,1,-1); // 日付指定(Gaza Strip開始, West Bank開始)
end_gaza = calcDst(year,9,7,-1); // 日付指定(Gaza Strip終了, West Bank終了)



/*//y_3_22 = calcDst(year,3,22,-1); // 日付指定(イラン型開始)
y_3_24= calcDst(year,3,24,-1); // 日付指定(Cuba開始)
y_3_29 = calcDst(year,3,29,-1); // 日付指定(ヨルダン型開始)
y_3_30 = calcDst(year,3,30,-1); // 日付指定(ヨルダン型開始)
y_3_31  = calcDst(year,3,31,-1);  // 日付指定(イスラエル型開始)
y_3_25 = calcDst(year,3,25,-1); // 日付指定(モンゴル型開始)
y_4_1  = calcDst(year,4,1,-1);  // 日付指定(イラク型開始,シリア型開始)
y_4_21 = calcDst(year,4,21,-1); // 日付指定(Gaza Strip開始, West Bank開始)
//y_9_22 = calcDst(year,9,22,-1); // 日付指定(イラン型終了)
y_9_16= calcDst(year,9,16,-1); // 日付指定(イスラエル型終了)
y_9_29= calcDst(year,9,29,-1); // 日付指定(ヨルダン型終了)
y_9_30= calcDst(year,9,30,-1);  // 日付指定(モンゴル型終了,イラク型終了)
y_10_1 = calcDst(year,10,1,-1); // 日付指定(シリア型終了)
y_10_4= calcDst(year,10,4,-1);   // 日付指定(Gaza Strip終了, West Bank終了)*/





//時刻表示と更新
//--------------------------
// サブルーチン
//--------------------------
// その都市の夏時間対応ローカル時刻計算
// 引数　 .... PC時刻（内部表現、単位:ミリ秒）　pctime
// 　　　 .... 時刻を求める都市のタイムゾーン（単位:時）　tzone
// 　　　 .... 夏時間処理フラグ：無(0),米国型(1),欧州型(2),NIS型(3)等　dstFlag
// 戻り値 .... 夏時間対応ローカル時刻（日時表現）
//--------------------------
function calcTime(a_pctime,b_zone,c_dstFlag,txtType) {

  //ローカル時刻の計算
  twntime = a_pctime + (b_zone + offset) * 3600000; //単位ミリ秒
   mark = ""; //DSTマーク表示用
   
  //夏時間の処理 //modify 07.03.08
  
  //北半球は&&、南半球は||
  
  if (c_dstFlag == 1) { //米国型
    if ((sun3_2<=twntime) && (sun11_1>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 2) { //欧州型
    if ((sun3_e<=twntime) && (sun10_e>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 3) { //NIS型
    if ((sat3_4<=twntime) && (sat10_e>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 4) { //オーストラリア型
    if ((sun10_e<=twntime) || (sun3_e>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 5) { //ブラジル型
    if ((sun10_3<=twntime) || (sun2_e>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 6) { //エジプト型
    if ((fri4_e<=twntime) && (fri9_1>twntime))  { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 7) { //イラク型
    if ((start_iraq<=twntime) && (end_iraq>twntime))   { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 8) { //ニュージーランド型
    if ((sun10_1<=twntime) || (sun3_3>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 9) { //チリ型
    if ((sun10_2<=twntime) || (sun3_2>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 10) { //モンゴル型　*要毎年確認
    if ((start_mongolia<=twntime) && (end_mongolia>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 11) { //パレスチナ型　*不要
    if ((y_4_21<=twntime) && (y_10_4>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 12) { //イラン型　*要毎年確認
    if ((start_iran<=twntime) && (end_iran>twntime))  { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 13) { //イスラエル型　*要毎年確認
    if ((start_israel<=twntime) && (end_israel>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 14) { //ヨルダン型　*要毎年確認
    if ((start_jordan<=twntime) && (end_jordan>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 15) { //シリア型　*要毎年確認
    if ((start_syria<=twntime) && (end_syria>twntime))  { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 16) { //ナミビア型
    if ((sun9_1<=twntime) || (sun4_1>twntime))  { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 17) { //フォークランド型
    if ((sun9_1<=twntime) || (sun4_3>twntime))  { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 18) { //タスマニア型
    if ((sun10_1<=twntime) || (sun4_1>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 19) { //パラグァイ型
    if ((sun10_3<=twntime) || (sun3_2>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 20) { //キューバ型  (日付指定)  *要毎年確認
    if ((start_cuba<=twntime) && (sun10_e>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 21) { //Antarctica型
    if ((sun10_1<=twntime) || (sun3_3>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 22) { //Gaza Strip型
    if ((start_gaza<=twntime) && (end_gaza>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 23) { //Tunisia型
    if ((sun3_e<=twntime) && (sun10_e>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 24) { //West Bank型
    if ((start_gaza<=twntime) && (end_gaza>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 25) { //Nicaragua型  2009年までなし
    if ((sun4_2<=twntime) && (sun10_3>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 26) { //Uruguay型
    if ((sun10_1<=twntime) || (sun3_2>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 27) { //Bahamas型
    if ((sun4_1<=twntime) && (sun10_e>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 28) { //Lebanon型
    if ((sun3_e<=twntime) && (sun10_e>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 29) { //Easter Island型
    if ((sat10_2<=twntime) || (sat3_2>twntime)) { twntime+= 3600000; mark="*";}
  } else if (c_dstFlag == 30) { //Honduras型
    if ((sun5_1<=twntime) && (mon8_1>twntime))  { twntime+= 3600000; mark="*";}
  }

  
  //夏時間対応ローカル時刻を内部表現から日時表現に変換し戻り値にセット
  calcnow = new Date();
  calcnow.setTime(twntime);
  nowmonth = calcnow.getMonth();
    if(nowmonth == 0){ nowmonth = "Jan";}	
    else if(nowmonth == 1){ nowmonth = "Feb";}
    else if(nowmonth == 2){ nowmonth = "Mar";}
    else if(nowmonth == 3){ nowmonth = "Apr";}
	else if(nowmonth == 4){ nowmonth = "May";}
	else if(nowmonth == 5){ nowmonth = "Jun";}
	else if(nowmonth == 6){ nowmonth = "Jul";}
    else if(nowmonth == 7){ nowmonth = "Aug";}
    else if(nowmonth == 8){ nowmonth = "Sep";}
    else if(nowmonth == 9){ nowmonth = "Oct";}
	else if(nowmonth == 10){ nowmonth = "Nov";}
	else if(nowmonth == 11){ nowmonth = "Dec";}
	
  nowdate = calcnow.getDate();
  nowday = calcnow.getDay();
  	if(nowday == 0){ nowday = "Sun";}	
    else if(nowday == 1){ nowday = "Mon";}
    else if(nowday == 2){ nowday = "Tue";}
    else if(nowday == 3){ nowday = "Wed";}
	else if(nowday == 4){ nowday = "Thu";}
	else if(nowday == 5){ nowday = "Fri";}
	else if(nowday == 6){ nowday = "Sat";}

  nowhour = calcnow.getHours();   if (nowhour < 10) { nowhour = "0" + nowhour; }
  nowmin  = calcnow.getMinutes(); if (nowmin  < 10) { nowmin = "0" + nowmin; }
  nowsec  = calcnow.getSeconds(); if (nowsec  < 10) { nowsec = "0" + nowsec; }
  
	if(b_zone >= 0){
		plusminus = "+";
	}
	else{
		plusminus = "";
	}
	
	nowoffset = b_zone;
	if(mark == "*"){
		nowoffset += 1;
	}
	
  Utcnow = new Date();
  Utcyear = Utcnow.getUTCFullYear();
  Utcmonth = Utcnow.getUTCMonth();
    if(Utcmonth == 0){ Utcmonth = "Jan";}	
    else if(Utcmonth == 1){ Utcmonth = "Feb";}
    else if(Utcmonth == 2){ Utcmonth = "Mar";}
    else if(Utcmonth == 3){ Utcmonth = "Apr";}
	else if(Utcmonth == 4){ Utcmonth = "May";}
	else if(Utcmonth == 5){ Utcmonth = "Jun";}
	else if(Utcmonth == 6){ Utcmonth = "Jul";}
    else if(Utcmonth == 7){ Utcmonth = "Aug";}
    else if(Utcmonth == 8){ Utcmonth = "Sep";}
    else if(Utcmonth == 9){ Utcmonth = "Oct";}
	else if(Utcmonth == 10){ Utcmonth = "Nov";}
	else if(Utcmonth == 11){ Utcmonth = "Dec";}

  Utcdate = Utcnow.getUTCDate();
  Utcday = Utcnow.getDay();
  	if(Utcday == 0){ Utcday = "Sun";}	
    else if(Utcday == 1){ Utcday = "Mon";}
    else if(Utcday == 2){ Utcday = "Tue";}
    else if(Utcday == 3){ Utcday = "Wed";}
	else if(Utcday == 4){ Utcday = "Tur";}
	else if(Utcday == 5){ Utcday = "Fri";}
	else if(Utcday == 6){ Utcday = "Sat";}

  Utchour = Utcnow.getUTCHours();   if (Utchour < 10) { Utchour = "0" + Utchour; }
  Utcmin  = Utcnow.getUTCMinutes(); if (Utcmin  < 10) { Utcmin = "0" + Utcmin; }
  Utcsec  = Utcnow.getUTCSeconds(); if (Utcsec  < 10) { Utcsec = "0" + Utcsec; }

  if(txtType == "separate"){
	  return "<font style='font-size:30px;font-family: Verdana;'>" + nowhour + ":" + nowmin + ":" + nowsec + "</font>" + "<font class='m'>" +  mark + "</font><br>" + "<font class='m'>" + nowday + ", "  + nowmonth + " " + nowdate + ", "  + year + "</font><br>";
  }
  else if(txtType == "top"){
	  return "<font style='font-size:12px;font-family: Verdana;color:#FFFFFF;font-weight: bold;'>" + nowhour + ":" + nowmin + ":" + nowsec + "</font>" + "<font color='#FFFFFF' class='s'>" +  mark + "</font><br>" + "<font color='#BBBBBB' class='ss'>" + nowday + ", "  + nowmonth + " " + nowdate + ", "  + year + "</font><br>";
  }
}

function writeDate(){
  //document.write("<br>");
  //document.write("<font class='s'>" + "UTC/GMT Offset " + "(" + plusminus + nowoffset + mark + ")"  + "</font>");

	if(mark == "*"){
		document.write("<br>");
  		document.write("<font class='ss' color='#999999'>" + "'*' means the place is observing DST" + "</font>");
	}
  //document.write("<br>");
  //document.write("<font class='ss' color='#999999'>[ <a href='/worldclock/'>About Honda World Clock</a> ]</font>");
}


function updateClock(i) {
  localCountry = i;
  now = new Date();
  pctime = now.getTime(); //PC時刻（内部表現）

  checkTimeZone(localCountry);
  zone1 = zone;
  dstFlag1 = dstFlag;
  timetext1 = calcTime(pctime,zone1,dstFlag1,"separate");
  
  clockPoint = document.getElementById("clock");
  clockPoint.innerHTML = timetext1;

  //1秒毎に時刻更新
  setTimeout("updateClock(localCountry)", 999);
}

function updateClock2(i) {
  localCountry2 = i;
  now = new Date();
  pctime2 = now.getTime(); //PC時刻（内部表現）

  checkTimeZone(localCountry2);
  zone2 = zone;
  dstFlag2 = dstFlag;
  timetext2 = calcTime(pctime2,zone2,dstFlag2,"separate");
  
  clockPoint2 = document.getElementById("clock2");
  clockPoint2.innerHTML = timetext2;
 
  //1秒毎に時刻更新
  setTimeout("updateClock2(localCountry2)", 999);
}

function updateClock3(i) {
  localCountry3 = i;
  now = new Date();
  pctime3 = now.getTime(); //PC時刻（内部表現）

  checkTimeZone(localCountry3);
  zone3 = zone;
  dstFlag3 = dstFlag;
  timetext3 = calcTime(pctime3,zone3,dstFlag3,"separate");
  
  clockPoint3 = document.getElementById("clock3");
  clockPoint3.innerHTML = timetext3;
 
  //1秒毎に時刻更新
  setTimeout("updateClock3(localCountry3)", 999);
}

function updateClock4(i) {
  localCountry4 = i;
  now = new Date();
  pctime4 = now.getTime(); //PC時刻（内部表現）

  checkTimeZone(localCountry4);
  zone4 = zone;
  dstFlag4 = dstFlag;
  timetext4 = calcTime(pctime4,zone4,dstFlag4,"separate");
  
  clockPoint4 = document.getElementById("clock4");
  clockPoint4.innerHTML = timetext4;
 
  //1秒毎に時刻更新
  setTimeout("updateClock4(localCountry4)", 999);
}

localCountryArray = new Array();
zoneArray = new Array();
dstFlagArray = new Array();
timetextArray = new Array();
clockPointArray = new Array();
clockCount = 0;


function setClockMulti(i,j) {
  localCountryArray[j] = i;
  checkTimeZone(localCountryArray[j]);
  zoneArray[j] = zone;
  dstFlagArray[j] = dstFlag;
 
  now = new Date();
  pctime = now.getTime(); //PC時刻（内部表現）

  timetextArray[j] = calcTime(pctime,zoneArray[j],dstFlagArray[j],"top");

  clockCount += 1;
  
}

function updateClockMulti() {
  now = new Date();
  pctime = now.getTime(); //PC時刻（内部表現）

  for(x=1; x<=clockCount;x++){
	timetextArray[x] = calcTime(pctime,zoneArray[x],dstFlagArray[x],"top");
  
	clockPointArray[x] = document.getElementById("clock" + x);
	clockPointArray[x].innerHTML = timetextArray[x];

  }
  //1秒毎に時刻更新
  setTimeout("updateClockMulti()", 999);
}


function calcDst(year,month,num,wno) {
 //パラメータ判定
 if (wno < 0) { //日時指定の場合
  //指定年月日の午前2時の時刻を求め内部表現に変換し戻り値にセット
  dstime = new Date(year,month-1,num,2,0,0);
  return dstime.getTime();
 } else { //第何曜日指定（最終曜日は5）の場合

  //ツェラーの公式よりその年月の1日の曜日を計算
  if (month <= 2) { zyear = year - 1; zmonth = month + 12; }
  else { zyear = year; zmonth = month; }  //1月,2月は前年の13月,14月とする
  wday = (zyear + Math.floor(zyear/4) - Math.floor(zyear/100)
       + Math.floor(zyear/400) + Math.floor((13*zmonth + 8)/5) + 1) % 7;

  //最終曜日指定の場合第5曜日有無の判定
  if (num == 5) {
    if (month == 2) {
      if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
                    { leap = 1; } else { leap = 0; } //閏年判定
      if (leap == 0 || wno != wday) { num -= 1; } //閏年は29日のみ第5曜日
    } else if (month== 4 || month== 6 || month== 9 || month== 11) { //30日月
      if (wno <= 1) { if( (wno+1) <= wday && wday < (wno+6) ) { num -= 1; } }
               else { if( (wno+1) <= wday || wday < (wno-1) ) { num -= 1; } }
    } else { //31日月
      if (wno <= 2) { if( (wno+1) <= wday && wday < (wno+5) ) { num -= 1; } }
               else { if( (wno+1) <= wday || wday < (wno-2) ) { num -= 1; } }
    }
  }
  //第(num)wno曜日は何日かの計算
  if (wday <= wno) { dstime = (num-1) * 7 + ((wno+1) - wday); }
              else { dstime = num * 7 - (wday - (wno+1)); }

  //算出した年月日の午前2時の時刻を求め内部表現に変換し戻り値にセット
  dstime = new Date(year,month-1,dstime,2,0,0);
  return dstime.getTime();
 }
}
