//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
// 08.06.03		chg		Pakistan DST for only 2008
//09.06.14		add 	Country
// 09.09.01		add		Tunisia
// 10.03.21		cahnge	for new clock & weather module	
// 10.05.19		add 	5 Countries


if(document.getElementById('hwwRoot')){
	var dirLogoSRC = document.getElementById('hwwRoot').src;
	var dirLen = dirLogoSRC.length;
	var dirRoot = dirLogoSRC.substring(0, dirLen - 28);
}


function checkTimeZone(x){

	var checkCountry = x;
	var zone = 0;
	var dstFlag = 0;

	if (checkCountry == "Antigua"){
		zone = -4;
		dstFlag = 0;
		flagImg = "antigua_flag.gif";
	}
	else if (checkCountry == "Argentina"){
		zone = -3;
		dstFlag = 0;
		flagImg = "argentina_flag.gif";
	}
	else if (checkCountry == "Aruba"){
		zone = -4;
		dstFlag = 0;
		flagImg = "aruba_flag.gif";
	}
/*	else if (checkCountry == "ASEAN"){
		zone = 0;
		dstFlag = 0;
	} */
	else if (checkCountry == "Australia"){
		zone = 10;
		dstFlag = 4;
		flagImg = "australia_flag.gif";
	}
	else if (checkCountry == "Austria"){
		zone = 1;
		dstFlag = 2;
		flagImg = "austria_flag.gif";
	}
	else if (checkCountry == "Bahamas"){
		zone = -5;
		dstFlag = 27; //modify 07.03.08
		flagImg = "bahamas_flag.gif";
	}
	else if (checkCountry == "Bangladesh"){
		zone = 6;
		dstFlag = 0;
		flagImg = "bangladesh_flag.gif";
	}
	else if (checkCountry == "Barbados"){
		zone = -4;
		dstFlag = 0;
		flagImg = "barbados_flag.gif";
	}
	else if (checkCountry == "Belgium"){
		zone = 1;
		dstFlag = 2;
		flagImg = "belgium_flag.gif";
	}
	else if (checkCountry == "Bermuda"){
		zone = -4;
		dstFlag = 1;
		flagImg = "bermuda_flag.gif";
	}
	else if (checkCountry == "Bolivia"){
		zone = -4;
		dstFlag = 0;
		flagImg = "bolivia_flag.gif";
	}
	else if (checkCountry == "Brazil"){
		zone = -3;
		dstFlag = 5;
		flagImg = "brazil_flag.gif";
	}
	else if (checkCountry == "BurkinaFaso"){
		zone = 0;
		dstFlag = 0;
		flagImg = "burkinafaso_flag.gif";
	}
	else if (checkCountry == "Canada"){
		zone = -5;
		dstFlag = 1;
		flagImg = "canada_flag.gif";
	}
	else if (checkCountry == "Chile"){
		zone = -4;
		dstFlag = 9;
		flagImg = "chile_flag.gif";
	}
	else if (checkCountry == "China"){
		zone = 8;
		dstFlag = 0;
		flagImg = "china_flag.gif";
	}
	else if (checkCountry == "Colombia"){
		zone = -5;
		dstFlag = 0;
		flagImg = "colombia_flag.gif";
	}
	else if (checkCountry == "CostaRica"){
		zone = -6;
		dstFlag = 0;
		flagImg = "costarica_flag.gif";
	}
	else if (checkCountry == "Croatia"){
		zone = 1;
		dstFlag = 2;
		flagImg = "croatia_flag.gif";
	}
	else if (checkCountry == "Curacao"){
		zone = -4;
		dstFlag = 0;
		flagImg = "curacao_flag.gif";
	}
	else if (checkCountry == "CzechRepublic"){
		zone = 1;
		dstFlag = 2;
		flagImg = "czech_flag.gif";
	}
	else if (checkCountry == "Denmark"){
		zone = 1;
		dstFlag = 2;
		flagImg = "denmark_flag.gif";
	}
	else if (checkCountry == "Dominican"){
		zone = -4;
		dstFlag = 0;
		flagImg = "dominican_flag.gif";
	}
	else if (checkCountry == "Ecuador"){
		zone = -5;
		dstFlag = 0;
		flagImg = "ecuador_flag.gif";
	}
	else if (checkCountry == "Elsalvador"){
		zone = -6;
		dstFlag = 0;
		flagImg = "elsalvador_flag.gif";
	}
	else if (checkCountry == "Estonia"){
		zone = 2;
		dstFlag = 2;
		flagImg = "estonia_flag.gif";
	}
/*	else if (checkCountry == "EU"){
		zone = 0;
		dstFlag = 0;
	} */
	else if (checkCountry == "Finland"){
		zone = 2;
		dstFlag = 2;
		flagImg = "finland_flag.gif";
	}
	else if (checkCountry == "France"){
		zone = 1;
		dstFlag = 2;
		flagImg = "france_flag.gif";
	}
	else if (checkCountry == "Germany"){
		zone = 1;
		dstFlag = 2;
		flagImg = "germany_flag.gif";
	}
	else if (checkCountry == "GrandCayman"){
		zone = -5;
		dstFlag = 0;
		flagImg = "uk_flag.gif";
	}
	else if (checkCountry == "Greece"){
		zone = 2;
		dstFlag = 2;
		flagImg = "greece_flag.gif";
	}
	else if (checkCountry == "Grenada"){
		zone = -4;
		dstFlag = 0;
		flagImg = "grenada_flag.gif";
	}
	else if (checkCountry == "Guam"){
		zone = 10;
		dstFlag = 0;
		flagImg = "usa_flag.gif";
	}
	else if (checkCountry == "Guatemala"){
		zone = -6;
		dstFlag = 0;
		flagImg = "guatemala_flag.gif";
	}
	else if (checkCountry == "Guyana"){
		zone = -4;
		dstFlag = 0;
		flagImg = "guyana_flag.gif";
	}
	else if (checkCountry == "Haiti"){
		zone = -5;
		dstFlag = 27; //modify 07.03.08
		flagImg = "haiti_flag.gif";
	}
	else if (checkCountry == "Honduras"){
		zone = -6;
		dstFlag = 30; //modify 07.03.08
		flagImg = "honduras_flag.gif";
	}
	else if (checkCountry == "HongKong"){
		zone = 8;
		dstFlag = 0;
		flagImg = "hongkong_flag.gif";
	}
	else if (checkCountry == "Hungary"){
		zone = 1;
		dstFlag = 2;
		flagImg = "hungary_flag.gif";
	}
	else if (checkCountry == "Iceland"){
		zone = 0;
		dstFlag = 0;
		flagImg = "iceland_flag.gif";
	}
	else if (checkCountry == "India"){
		zone = 5.5;
		dstFlag = 0;
		flagImg = "india_flag.gif";
	}
	else if (checkCountry == "Indonesia"){
		zone = 7;
		dstFlag = 0;
		flagImg = "indonesia_flag.gif";
	}
	else if (checkCountry == "Iran"){
		zone = 3.5;
		dstFlag = 0; //modify 06.03.30
 		flagImg = "iran_flag.gif";
	}
	else if (checkCountry == "Ireland"){
		zone = 0;
		dstFlag = 2;
		flagImg = "ireland_flag.gif";
	}
	else if (checkCountry == "Israel"){
		zone = 2;
		dstFlag = 13;
		flagImg = "israel_flag.gif";
	}
	else if (checkCountry == "Italy"){
		zone = 1;
		dstFlag = 2;
		flagImg = "italy_flag.gif";
	}
	else if (checkCountry == "Jamaica"){
		zone = -5;
		dstFlag = 0;
		flagImg = "jamaica_flag.gif";
	}
	else if (checkCountry == "Japan"){
		zone = 9;
		dstFlag = 0;
		flagImg = "japan_flag.gif";
	}
	else if (checkCountry == "Korea"){
		zone = 9;
		dstFlag = 0;
		flagImg = "korea_flag.gif";
	}
	else if (checkCountry == "Latvia"){
		zone = 2;
		dstFlag = 2;
		flagImg = "latvia_flag.gif";
	}
	else if (checkCountry == "Lithuania"){
		zone = 2;
		dstFlag = 2;
		flagImg = "lithuania_flag.gif";
	}
	else if (checkCountry == "Malaysia"){
		zone = 8;
		dstFlag = 0;
		flagImg = "malaysia_flag.gif";
	}
	else if (checkCountry == "Mauritius"){
		zone = 4;
		dstFlag = 0;
		flagImg = "mauritius_flag.gif";
	}
	else if (checkCountry == "Mexico"){
		zone = -6;
		dstFlag = 27; //modify 07.03.08
		flagImg = "mexico_flag.gif";
	}
	else if (checkCountry == "Morocco"){
		zone = 0;
		dstFlag = 0;
		flagImg = "morocco_flag.gif";
	}
	else if (checkCountry == "Nepal"){
		zone = 5.75;
		dstFlag = 0;
		flagImg = "nepal_flag.gif";
	}
	else if (checkCountry == "Netherlands"){
		zone = 1;
		dstFlag = 2;
		flagImg = "netherlands_flag.gif";
	}
	else if (checkCountry == "NewZealand"){
		zone = 12;
		dstFlag = 8;
		flagImg = "newzealand_flag.gif";
	}
	else if (checkCountry == "Nicaragua"){
		zone = -6;
		dstFlag = 0;
		flagImg = "nicaragua_flag.gif";
	}
	else if (checkCountry == "Nigeria"){
		zone = 1;
		dstFlag = 0;
		flagImg = "nigeria_flag.gif";
	}
	else if (checkCountry == "Norway"){
		zone = 1;
		dstFlag = 2;
		flagImg = "norway_flag.gif";
	}
	else if (checkCountry == "Pakistan"){
		zone = 5;
		dstFlag = 31;
		flagImg = "pakistan_flag.gif";
	}
	else if (checkCountry == "Panama"){
		zone = -5; //modify 07.03.08
		dstFlag = 0;
		flagImg = "panama_flag.gif";
	}
	else if (checkCountry == "Paraguay"){
		zone = -4;
		dstFlag = 19;
		flagImg = "paraguay_flag.gif";
	}
	else if (checkCountry == "Peru"){
		zone = -5;
		dstFlag = 0;
		flagImg = "peru_flag.gif";
	}
	else if (checkCountry == "Philippines"){
		zone = 8;
		dstFlag = 0;
		flagImg = "philippines_flag.gif";
	}
	else if (checkCountry == "Poland"){
		zone = 1;
		dstFlag = 2;
		flagImg = "poland_flag.gif";
	}
	else if (checkCountry == "Portugal"){
		zone = 0;
		dstFlag = 2;
		flagImg = "portugal_flag.gif";
	}
	else if (checkCountry == "PuertoRico"){
		zone = -4;
		dstFlag = 0;
		flagImg = "puertorico_flag.gif";
	}
	else if (checkCountry == "Russia"){
		zone = 3;
		dstFlag = 2;
		flagImg = "russia_flag.gif";
	}
	else if (checkCountry == "Saipan"){
		zone = 10;
		dstFlag = 0;
		flagImg = "usa_flag.gif";
	}
	else if (checkCountry == "Singapore"){
		zone = 8;
		dstFlag = 0;
		flagImg = "singapore_flag.gif";
	}
	else if (checkCountry == "Slovakia"){
		zone = 1;
		dstFlag = 2;
		flagImg = "slovakia_flag.gif";
	}
	else if (checkCountry == "SouthAfrica"){
		zone = 2;
		dstFlag = 0;
		flagImg = "southafrica_flag.gif";
	}
	else if (checkCountry == "Spain"){
		zone = 1;
		dstFlag = 2;
		flagImg = "spain_flag.gif";
	}
	else if (checkCountry == "SriLanka"){
		zone = 5.5; //modify 07.03.08
		dstFlag = 0;
		flagImg = "sriLanka_flag.gif";
	}
	else if (checkCountry == "StKitts"){
		zone = -4;
		dstFlag = 0;
		flagImg = "stkitts_flag.gif";
	}
	else if (checkCountry == "StLucia"){
		zone = -4;
		dstFlag = 0;
		flagImg = "stlucia_flag.gif";
	}
	else if (checkCountry == "StMaarten"){
		zone = -4;
		dstFlag = 0;
		flagImg = "stmaarten_flag.gif";
	}
	else if (checkCountry == "Suriname"){
		zone = -3;
		dstFlag = 0;
		flagImg = "suriname_flag.gif";
	}
	else if (checkCountry == "Sweden"){
		zone = 1;
		dstFlag = 2;
		flagImg = "sweden_flag.gif";
	}
	else if (checkCountry == "Switzerland"){
		zone = 1;
		dstFlag = 2;
		flagImg = "switzerland_flag.gif";
	}
	else if (checkCountry == "Syria"){
		zone = 2;
		dstFlag = 7;
		flagImg = "syria_flag.gif";
	}
	else if (checkCountry == "Taiwan"){
		zone = 8;
		dstFlag = 0;
		flagImg = "taiwan_flag.gif";
	}
	else if (checkCountry == "Thailand"){
		zone = 7;
		dstFlag = 0;
		flagImg = "thailand_flag.gif";
	}
	else if (checkCountry == "Trinidad"){
		zone = -4;
		dstFlag = 0;
		flagImg = "trinidad_flag.gif";
	}
	else if (checkCountry == "Turkey"){
		zone = 2;
		dstFlag = 2;
		flagImg = "turkey_flag.gif";
	}
	else if (checkCountry == "UAE"){
		zone = 4;
		dstFlag = 0;
		flagImg = "uae_flag.gif";
	}
	else if (checkCountry == "UK"){
		zone = 0;
		dstFlag = 2;
		flagImg = "uk_flag.gif";
	}
	else if (checkCountry == "USA"){
		zone = -5;
		dstFlag = 1;
		flagImg = "usa_flag.gif";
	}
	else if (checkCountry == "Ukraine"){
		zone = 2;
		dstFlag = 2;
		flagImg = "ukraine_flag.gif";
	}
	else if (checkCountry == "Uruguay"){
		zone = -3;
		dstFlag = 26; //modify 07.03.08
		flagImg = "uruguay_flag.gif";
	}
	else if (checkCountry == "Venezuela"){
		zone = -4;
		dstFlag = 0;
		flagImg = "venezuela_flag.gif";
	}
	else if (checkCountry == "Vietnam"){
		zone = 7;
		dstFlag = 0;
		flagImg = "vietnam_flag.gif";
	}
	else if (checkCountry == "NY"){
		zone = -5;
		dstFlag = 1;
		flagImg = "usa_flag.gif";
	}
	else if (checkCountry == "LA"){
		zone = -8;
		dstFlag = 1;
		flagImg = "usa_flag.gif";
	}
	else if (checkCountry == "EDT"){
		zone = -5;
		dstFlag = 1;
		flagImg = "usa_flag.gif";
	}
	else if (checkCountry == "PDT"){
		zone = -8;
		dstFlag = 1;
		flagImg = "usa_flag.gif";
	}
	else if (checkCountry == "CDT"){
		zone = -6;
		dstFlag = 1;
		flagImg = "usa_flag.gif";
	}
	else if (checkCountry == "EST"){
		zone = -5;
		dstFlag = 0;
		flagImg = "usa_flag.gif";
	}
	else if (checkCountry == "Brazil2"){
		zone = -4;
		dstFlag = 0;
		flagImg = "brazil_flag.gif";
	}
	else if (checkCountry == "Seychelles"){
		zone = 4;
		dstFlag = 0;
		flagImg = "seychelles_flag.gif";
	}
	else if (checkCountry == "Egypt"){
		zone = 2;
		dstFlag = 6;
		flagImg = "egypt_flag.gif";
	}
	else if (checkCountry == "Bahrain"){
		zone = 3;
		dstFlag = 0;
		flagImg = "bahrain_flag.gif";
	}
	else if (checkCountry == "Qatar"){
		zone = 3;
		dstFlag = 0;
		flagImg = "qatar_flag.gif";
	}
	else if (checkCountry == "SanMarino"){
		zone = 1;
		dstFlag = 2;
		flagImg = "sanmarino_flag.gif";
	}
	else if (checkCountry == "Monaco"){
		zone = 1;
		dstFlag = 2;
		flagImg = "monaco_flag.gif";
	}
	else if (checkCountry == "Luxembourg"){
		zone = 1;
		dstFlag = 2;
		flagImg = "luxembourg_flag.gif";
	}
	else if (checkCountry == "Macedonia"){
		zone = 1;
		dstFlag = 2;
		flagImg = "macedonia_flag.gif";
	}
	else if (checkCountry == "Bulgaria"){
		zone = 2;
		dstFlag = 2;
		flagImg = "bulgaria_flag.gif";
	}
	else if (checkCountry == "Romania"){
		zone = 2;
		dstFlag = 2;
		flagImg = "romania_flag.gif";
	}
	else if (checkCountry == "Slovenia"){
		zone = 1;
		dstFlag = 2;
		flagImg = "slovenia_flag.gif";
	}
	else if (checkCountry == "Cyprus"){
		zone = 2;
		dstFlag = 2;
		flagImg = "cyprus_flag.gif";
	}
	else if (checkCountry == "Brunei"){ //add 08.04.22
		zone = 8;
		dstFlag = 0;
		flagImg = "brunei_flag.gif";
	}
	else if (checkCountry == "Cambodia"){ //add 08.04.22
		zone = 7;
		dstFlag = 0;
		flagImg = "cambodia_flag.gif";
	}
	else if (checkCountry == "Fiji"){ //add 08.04.22
		zone = 12;
		dstFlag = 0;
		flagImg = "fiji_flag.gif";
	}
	else if (checkCountry == "Laos"){ //add 08.04.22
		zone = 7;
		dstFlag = 0;
		flagImg = "laos_flag.gif";
	}
	else if (checkCountry == "NewCaledonia"){ //add 08.04.22
		zone = 11;
		dstFlag = 0;
		flagImg = "newcaledonia_flag.gif";
	}
	else if (checkCountry == "Tahiti"){ //add 08.04.22
		zone = -10;
		dstFlag = 0;
		flagImg = "tahiti_flag.gif";
	}
	else if (checkCountry == "Benin"){ //add 09.06.14
		zone = 1;
		dstFlag = 0;
		flagImg = "benin_flag.gif";
	}
	else if (checkCountry == "BurkinaFaso"){ //add 09.06.14
		zone = 0;
		dstFlag = 0;
		flagImg = "burkinafaso_flag.gif";
	}
	else if (checkCountry == "Ethiopia"){ //add 09.06.14
		zone = 3;
		dstFlag = 0;
		flagImg = "ethiopia_flag.gif";
	}
	else if (checkCountry == "Gabon"){ //add 09.06.14
		zone = 1;
		dstFlag = 0;
		flagImg = "gabon_flag.gif";
	}
	else if (checkCountry == "Ghana"){ //add 09.06.14
		zone = 0;
		dstFlag = 0;
		flagImg = "ghana_flag.gif";
	}
	else if (checkCountry == "Reunion"){ //add 09.06.14
		zone = 4;
		dstFlag = 0;
		flagImg = "france_flag.gif";
	}
	else if (checkCountry == "CotedIvoire"){ //add 09.06.14
		zone = 0;
		dstFlag = 0;
		flagImg = "cotedIvoire_flag.gif";
	}
	else if (checkCountry == "Kenya"){ //add 09.06.14
		zone = 3;
		dstFlag = 0;
		flagImg = "kenya_flag.gif";
	}
	else if (checkCountry == "Madagascar"){ //add 09.06.14
		zone = 3;
		dstFlag = 0;
		flagImg = "madagascar_flag.gif";
	}
	else if (checkCountry == "Mozambique"){ //add 09.06.14
		zone = 2;
		dstFlag = 0;
		flagImg = "mozambique_flag.gif";
	}
	else if (checkCountry == "Senegal"){ //add 09.06.14
		zone = 0;
		dstFlag = 0;
		flagImg = "senegal_flag.gif";
	}
	else if (checkCountry == "SierraLeone"){ //add 09.06.14
		zone = 0;
		dstFlag = 0;
		flagImg = "sierraleone_flag.gif";
	}
	else if (checkCountry == "Sudan"){ //add 09.06.14
		zone = 3;
		dstFlag = 0;
		flagImg = "sudan_flag.gif";
	}
	else if (checkCountry == "Uganda"){ //add 09.06.14
		zone = 3;
		dstFlag = 0;
		flagImg = "uganda_flag.gif";
	}
	else if (checkCountry == "Zambia"){ //add 09.06.14
		zone = 2;
		dstFlag = 0;
		flagImg = "zambia_flag.gif";
	}
	else if (checkCountry == "Zimbabwe"){ //add 09.06.14
		zone = 2;
		dstFlag = 0;
		flagImg = "zimbabwe_flag.gif";
	}
	else if (checkCountry == "Azerbaijan"){ //add 09.06.14
		zone = 4;
		dstFlag = 2;
		flagImg = "azerbaijan_flag.gif";
	}
	else if (checkCountry == "Bahrain"){ //add 09.06.14
		zone = 3;
		dstFlag = 0;
		flagImg = "bahrain_flag.gif";
	}
	else if (checkCountry == "Oman"){ //add 09.06.14
		zone = 4;
		dstFlag = 0;
		flagImg = "oman_flag.gif";
	}
	else if (checkCountry == "SaudiArabia"){ //add 09.06.14
		zone = 3;
		dstFlag = 0;
		flagImg = "saudiarabia_flag.gif";
	}
	else if (checkCountry == "Lebanon"){ //add 09.06.14
		zone = 2;
		dstFlag = 28;
		flagImg = "lebanon_flag.gif";
	}
	else if (checkCountry == "Yemen"){ //add 09.06.14
		zone = 3;
		dstFlag = 0;
		flagImg = "yemen_flag.gif";
	}
	else if (checkCountry == "Mongolia"){ //add 09.06.14
		zone = 8;
		dstFlag = 0;
		flagImg = "mongolia_flag.gif";
	}	
	else if (checkCountry == "Angola"){ //add 09.06.14
		zone = 1;
		dstFlag = 0;
		flagImg = "angola_flag.gif";
	}
	else if (checkCountry == "Tunisia"){ //add 09.09.01
		zone = 1;
		dstFlag = 0;
		flagImg = "tunisia_flag.gif";
	}
	else if (checkCountry == "Bhutan"){ //add 2010.05.19
		zone = 6;
		dstFlag = 0;
		flagImg = "bhutan_flag.gif";
	}
	else if (checkCountry == "Jordan"){ //add 2010.05.19
		zone = 2;
		dstFlag = 14;
		flagImg = "jordan_flag.gif";
	}
	else if (checkCountry == "Kuwait"){ //add 2010.05.19
		zone = 3;
		dstFlag = 0;
		flagImg = "kuwait_flag.gif";
	}
	else if (checkCountry == "Malta"){ //add 2010.05.19
		zone = 1;
		dstFlag = 2;
		flagImg = "malta_flag.gif";
	}
	else if (checkCountry == "Serbia"){ //add 2010.05.19
		zone = 1;
		dstFlag = 2;
		flagImg = "serbia_flag.gif";
	}
	else if (checkCountry == "Armenia"){ //add 2010.11.12
		zone = 4;
		dstFlag = 2;
		flagImg = "armenia_flag.gif";
	}
	
	return {zone:zone, dstFlag:dstFlag, flagImg:flagImg};
}

//--------------------------
// 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日曜日()
sun6_1 = calcDst(year,6,1,0);   // 6月第1日曜日（パキスタン2008開始）
mon8_1 = calcDst(year,8,1,1);   // 8月第1月曜日()
mon9_1= calcDst(year,9,1,1);  // 9月第1月曜日（パキスタン2008終了）
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,29,-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="*";}
  } else if (c_dstFlag == 31) { //パキスタン2008型
    if ((sun6_1<=twntime) || (mon9_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; }

  var timeObj = {time:"", date:"", plusminus:plusminus, nowoffset:nowoffset, mark:mark};
  
  if(txtType == "separate"){
	  timeObj.time = "<font style='font-size:30px;font-family: Verdana;'>" + nowhour + ":" + nowmin + ":" + nowsec + "</font>" + "<font class='m'>" +  mark + "</font><br>"
	  timeObj.date = "<font class='m'>" + nowday + ", "  + nowmonth + " " + nowdate + ", "  + year + "</font><br>";
  }
  else if(txtType == "top"){
	  timeObj.time = "<font style='font-size:16px;font-family: Verdana;color:#FFFFFF;font-weight: bold;'>" + nowhour + ":" + nowmin + ":" + nowsec + "</font>" + "<font color='#FFFFFF' class='s'>" +  mark + "</font><br>";
	  timeObj.date = "<font color='#BBBBBB' class='ss'>" + nowday + ", "  + nowmonth + " " + nowdate + ", "  + year + "</font><br>";
  }
  
  return timeObj;
}

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時刻（内部表現）

  var zoneText = checkTimeZone(localCountry);
  zone1 = zoneText.zone;
  dstFlag1 = zoneText.dstFlag;
  timetext1 = calcTime(pctime,zone1,dstFlag1,"separate");
  
  clockPoint = document.getElementById("clock");
  clockPoint.innerHTML = timetext1.time + timetext1.date;

  //1秒毎に時刻更新
  setTimeout("updateClock(localCountry)", 999);
}

function updateClock2(i) {
  localCountry2 = i;
  now = new Date();
  pctime2 = now.getTime(); //PC時刻（内部表現）

  var zoneText = checkTimeZone(localCountry2);
  zone2 = zoneText.zone;
  dstFlag2 = zoneText.dstFlag;
  timetext2 = calcTime(pctime2,zone2,dstFlag2,"separate");
  
  clockPoint2 = document.getElementById("clock2");
  clockPoint2.innerHTML = timetext2.time + timetext2.date;
 
  //1秒毎に時刻更新
  setTimeout("updateClock2(localCountry2)", 999);
}

function updateClock3(i) {
  localCountry3 = i;
  now = new Date();
  pctime3 = now.getTime(); //PC時刻（内部表現）

  var zoneText = checkTimeZone(localCountry3);
  zone3 = zoneText.zone;
  dstFlag3 = zoneText.dstFlag;
  timetext3 = calcTime(pctime3,zone3,dstFlag3,"separate");
  
  clockPoint3 = document.getElementById("clock3");
  clockPoint3.innerHTML = timetext3.time + timetext3.date;
 
  //1秒毎に時刻更新
  setTimeout("updateClock3(localCountry3)", 999);
}

function updateClock4(i) {
  localCountry4 = i;
  now = new Date();
  pctime4 = now.getTime(); //PC時刻（内部表現）

  var zoneText = checkTimeZone(localCountry4);
  zone4 = zoneText.zone;
  dstFlag4 = zoneText.dstFlag;
  timetext4 = calcTime(pctime4,zone4,dstFlag4,"separate");
  
  clockPoint4 = document.getElementById("clock4");
  clockPoint4.innerHTML = timetext4.time + timetext4.date;
 
  //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) {
  now = new Date();
  pctime = now.getTime(); //PC時刻（内部表現）
  localCountryArray[j] = i;
  
  var zoneText = checkTimeZone(localCountryArray[j]);
  zoneArray[j] = zoneText.zone;
  dstFlagArray[j] = zoneText.dstFlag;
 
  var timetext = calcTime(pctime,zoneArray[j],dstFlagArray[j],"top");
  timetextArray[j] = timetext.time + timetext.date;

  clockCount += 1;
}

function updateClockMulti() {
  now = new Date();
  pctime = now.getTime(); //PC時刻（内部表現）

  for(x=1; x<=clockCount;x++){
	var timetext = calcTime(pctime,zoneArray[x],dstFlagArray[x],"top");
    timetextArray[x] = timetext.time + timetext.date;
  
	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();
 }
}

////////////////////////////////////////////////////////////////////////
//for world clock & weather module
////////////////////////////////////////////////////////////////////////

function checkClockZone(num) {
	var aryLength = clockAry.length;
	
	var zoneText = checkTimeZone(clockAry[num].clockID);
	clockAry[num].zone = zoneText.zone;
	clockAry[num].dstFlag = zoneText.dstFlag;
	clockAry[num].flagImg = zoneText.flagImg;
}

function updateTimeText() {
	var aryLength = clockAry.length;
	
	for(var i=0; i<aryLength; i++){
		var now = new Date();
		var pctime = now.getTime(); //PC時刻（内部表現）
		
		var timetext = calcTime(pctime, clockAry[i].zone, clockAry[i].dstFlag, "separate");
		
		var  clockPoint = document.getElementById("clock" + (i+1));
		clockPoint.innerHTML = timetext.time
		
		var  datePoint = document.getElementById("date" + (i+1));
		datePoint.innerHTML = timetext.date;
		
		var offsettext = "<font class='s'>" + "UTC/GMT Offset " + "(" + timetext.plusminus + timetext.nowoffset + timetext.mark + ")"  + "</font>";
		if(timetext.mark == "*"){
		offsettext += "<br><font class='ss' color='#999999'>" + "'*' means the place is observing DST" + "</font>";
		}
		var offsetPoint = document.getElementById("offset" + (i+1));
		offsetPoint.innerHTML = offsettext;
	}
	
  //1秒毎に時刻更新
  setTimeout("updateTimeText()", 999);
}

