function ctPak(){
	this.CountryName = a;
	this.LangCode	 = b;
	this.TimeZone	 = c;	// 0 or positive(eg 12) or minus(eg. -4)
	this.DSTPeriod	 = d;	// "" or "yyyy/mm/dd-yyyy/mm/dd"
}
function tzPak(df, sContries){
	var	s = sContries.split( "/" );
	this.Diff = df;
	this.oCells = new Array(s.length);
	for (var i=0; i<s.length; i++){
		this.oCells[i] = s[i];
	}
}
/* *--------------------------------------------------------* */
/* *	Current Lang-Code Definition						* */
/* *--------------------------------------------------------* */

var AEC = "United Arab Emirates";	// アラブ首長国連邦
var ARC = "Argentina"; 				// アルゼンチン
var ATC = "Austria"; 				// オーストリア
var AUC = "Australia";          	// オーストラリア
var BAC = "Bosnia and Herzegovina";	// ボスニア・ヘルツエコビア
var BEC = "Belgium"; 				// ベルギー
var BGC = "Bulgaria"; 				// ブルガリア
var BRC = "Brazil";             	// ブラジル
var BTC = "Bhutan";             	// ブータン
var BYC = "Belarus";      			// ベルラーシ
var CAC = "Canada";             	// カナダ
var CHC = "Switzerland";        	// スイス
var CLC = "Chile";              	// チリ
var CNC = "China";              	// 中国：本土
var COC = "Colombia"; 				// コロンビア
var CZC = "Czech Republic";     	// チェコ
var DAC = "Bulgaria"; 				// ブルガリア
var DEC = "Germany";            	// ドイツ
var DKC = "Denmark";            	// デンマーク
var DZC = "Algeria";       			// アルジェリア
var EEC = "Estonia"; 				// エストニア
var EGC = "Egypt"; 					// エジプト
var ESC = "Spain";              	// スペイン
var FIC = "Finland";            	// フィンランド
var FRC = "France";             	// フランス
var GBC = "United Kingdom";     	// 英国
var GRC = "Greece";             	// ギリシャ
var HKC = "Hong Kong";          	// 香港
var HUC = "Hungary"; 				// ハンガリー
var IDC = "Indonesia"; 				// インドネシア
var IEC = "Ireland"; 				// アイルランド
var ILC = "Israel"; 				// イスラエル
var INC = "India";              	// インド
var IRC = "Iran"; 					// イラン
var ISC = "Iceland";      			// アイスランド
var ITC = "Italy";              	// イタリア
var JPC = "Japan";              	// 日本
var KEC = "Kenya";       			// ケニア
var KGC = "Kyrgyzstan";     		// キルギス共和国
var KRC = "Korea, Republic of"; 	// 韓国
var KWC = "Kuwait";       			// クウェート
var LKC = "Sri Lanka"; 				// スリランカ
var LTC = "Lithuania";          	// リトアニア
var LVC = "Latvia"; 				// ラトビア
var MAC = "Morocco";     			// モロッコ
var MGC = "Madagascar"; 			// マダガスカル
var MNC = "Mongolia";           	// モンゴル
var MOC = "Macau"; 					// マカオ
var MUC = "Mauritius";     			// モーリシャス
var MXC = "Mexico";             	// メキシコ
var MYC = "Malaysia";           	// マレーシア
var NGC = "Nigeria"; 				// ナイジェリア
var NIC = "Nicaragua";     			// ニカラグア
var NLC = "Netherlands";        	// オランダ
var NOC = "Norway";      			// ノルウエイ
var NZC = "New Zealand";        	// ＮＺ
var PEC = "Peru";               	// ペルー
var PGC = "Portugal"; 				// ポルトガル
var PHC = "Philippines";   			// フィリピン
var PKC = "Pakistan";      			// パキスタン
var PLC = "Polish";             	// ポーランド
var PRC = "Puerto Rico"; 			// プエルトリコ
var PTC = "Palestinian Territory"; 	// パレスチナ自治区
var PYC = "Paraguay";				// パラグアイ
var ROC = "Romania"; 				// ルーマニア
var RUC = "Russian Federation"; 	// ロシア
var SAC = "Saudi Arabia"; 			// サウジアラビア
var SGC = "Singapore";          	// シンガポール
var SIC = "Slovenia"; 				// スロベニア
var SKC = "Slovakia"; 				// スロバキア
var SVC = "Sweden";        			// スウェーデン
var THC = "Thailand"; 				// タイ国
var TRC = "Turkey"; 				// トルコ
var TWC = "Taiwan";             	// 台湾
var UAC = "Ukraine";      			// ウクライナ
var USC = "United States";      	// 米国
var VEC = "Venezuela";     			// ベネズエラ
var VNC = "Vietnam";            	// ベトナム
var VQC = "Virgin Islands,US."; 	// バージン諸島（米）
var ZAC = "South Africa";       	// 南アフリカ

var	DIFF_MINB = -10;
var	DIFF_MAXF = 12;

var	DIFF_10_B = USC + "(Hawaii)";
var	DIFF_09_B = USC + "(Alaska)";
var	DIFF_08_B = USC + "/" + CAC + "/" + MXC;
var	DIFF_07_B = USC + "/" + CAC + "/" + MXC;
var	DIFF_06_B = "United States/Canada/Mexico/Nicaragua/El Salvador/Guatemala";
var	DIFF_05_B = "Brazil/United States/Canada/Colombia/Peru/Cuba/Jamaica/Haiti";
var	DIFF_04_B = "Brazil/Chile/Venezuela/Ecuador/Dominican Republic/Puerto Rico/Paraguay/Virgin Islands,US.";
var	DIFF_03_B = "Brazil/Argentina/Uruguay";
var	DIFF_01_B = "Iceland";
var	DIFF_00_N = "Ireland/United Kingdom/Portugal";
var	DIFF_01_F = "Italia/Austria/Netherlands/Switzerland/Spain/Slovakia/Czech Republic/Croatia/Monaco/Slovenia/"
			  + "Denmark/Germany/Norway/Hungary/France/Belgium/Poland/Bosnia and Herzegovina/Morocco/Nigeria";
var	DIFF_02_F = "Israel/Turkey/Greece/Finland/Bulgaria/Romania/Egypt/South Africa/Ukraine/Jordan/Lebanon/Rwanda/Estonia/"
			  + "Latvia/Lithuania/Palestinian Territory";
var	DIFF_03_F = "Kuwait/Russian Federation/Kenya/Iraq/Qatar/Georgia/Ethiopia/Madagascar/Saudi Arabia/Mauritius";
var	DIFF_35_F = "Iran";
var	DIFF_04_F = "United Arab Emirates/Oman";
var	DIFF_45_F = "Afghanistan";
var	DIFF_05_F = "Pakistan/Kyrgyzstan";
var	DIFF_55_F = "India";
var	DIFF_06_F = "Nepal/Bangladesh/Kazakhstan";
var	DIFF_65_F = "Myanmar";
var	DIFF_07_F = "Indonesia/Thailand/Vietnam/China/Cambodia/Lao";
var	DIFF_08_F = "Indonesia/Singapore/Philippines/Malaysia/China/Hong Kong/Taiwan/Australia/Mongolia/Macau";
var	DIFF_09_F = "Japan/Korea/Indonesia/Palau/Guam(USA)";
var	DIFF_95_F = "Australia";
var	DIFF_10_F = "Australia/Papua New Guinea";
var	DIFF_11_F = "Solomon Islands/New Caledonia/Micronesia";
var	DIFF_12_F = "New Zealand/Fiji";

function makeTZdata(){
	var i = 0;
	this[i++] = new tzPak( -10, DIFF_10_B );
	this[i++] = new tzPak(  -9, DIFF_09_B );
	this[i++] = new tzPak(  -8, DIFF_08_B );
	this[i++] = new tzPak(  -7, DIFF_07_B );
	this[i++] = new tzPak(  -6, DIFF_06_B );
	this[i++] = new tzPak(  -5, DIFF_05_B );
	this[i++] = new tzPak(  -4, DIFF_04_B );
	this[i++] = new tzPak(  -3, DIFF_03_B );
	this[i++] = new tzPak(  -1, DIFF_01_B );
	this[i++] = new tzPak(   0, DIFF_00_N );
	this[i++] = new tzPak(   1, DIFF_01_F );
	this[i++] = new tzPak(   2, DIFF_02_F );
	this[i++] = new tzPak(   3, DIFF_03_F );
	this[i++] = new tzPak( 3.5, DIFF_35_F );
	this[i++] = new tzPak(   4, DIFF_04_F );
	this[i++] = new tzPak( 4.5, DIFF_45_F );
	this[i++] = new tzPak(   5, DIFF_05_F );
	this[i++] = new tzPak( 5.5, DIFF_55_F );
	this[i++] = new tzPak(   6, DIFF_06_F );
	this[i++] = new tzPak( 6.5, DIFF_65_F );
	this[i++] = new tzPak(   7, DIFF_07_F );
	this[i++] = new tzPak(   8, DIFF_08_F );
	this[i++] = new tzPak(   9, DIFF_09_F );
	this[i++] = new tzPak( 9.5, DIFF_95_F );
	this[i++] = new tzPak(  10, DIFF_10_F );
	this[i++] = new tzPak(  11, DIFF_11_F );
	this[i++] = new tzPak(  12, DIFF_12_F );
	this.length = i;
}
var	TZD = new makeTZdata();
function fnGetTimeZone(){
   var d, tz;
   d = new Date();
   tz = d.getTimezoneOffset();
   return((-1) * (tz/60));	//  -nn, 0, or +nn
}

var LCDAR   = "es-ar";  var LNMAR   = "Spanish (Argentina)";   		// スペイン語:アルゼンチン
var LCDAU	= "en-au";	var	LNMAU	= "English (Australia)";		// 英語：豪州
var LCDCA	= "en-ca";	var	LNMCA	= "English (Canada)";			// 英語：カナダ
var LCDCN   = "zh-cn";  var LNMCN   = "Chinese (PRC)";              // 中国語：本土
var LCDCZ   = "cs";     var LNMCZ   = "Czech";          			// チェコ語
var LCDDA   = "da";  	var LNMDA   = "Danish";   					// デンマーク語
var LCDDE   = "de";     var LNMDE   = "German (Standard)";          // ドイツ語
var LCDEL   = "el";     var LNMEL   = "Greek";                      // ギリシャ語
var LCDEN   = "en";     var LNMEN   = "English (General)";          // 英語：一般
var LCDES   = "es";     var LNMES   = "Spanish (Traditional)";      // スペイン語
var LCDFI   = "fi";     var LNMFI   = "Finnish";                    // フィンランド語
var LCDFR   = "fr";     var LNMFR   = "French (Standard)";          // フランス語
var LCDGB   = "en-gb";  var LNMGB   = "English (United Kingdom)";   // 英語：英国
var LCDHE   = "he";     var LNMHE   = "Hebrew";          			// ヘブライ語
var LCDHK   = "zh-hk";  var LNMHK   = "Chinese (Hong Kong)";        // 中国語：香港
var LCDHU   = "hu";     var LNMHU   = "Hungarian";          		// ハンガリー語
var LCDIE	= "en-ie"; 	var	LNMIE	= "English (Ireland)";			// 英語：アイルランド
var LCDIT   = "it";     var LNMIT   = "Italian (Standard)";         // イタリア語
var LCDJM	= "en-jm";	var	LNMJM	= "English (Jamaica)"			// 英語：ジャマイカ
var LCDJP   = "ja";     var LNMJP   = "Japanese";                   // 日本語
var LCDKR   = "kr";     var LNMKR   = "Korean";          			// 韓国語
var LCDLT   = "lt";  	var LNMLT   = "Lithuanian";   				// リトアニア語
var LCDNL   = "nl";     var LNMNL   = "Dutch (Standard)";           // オランダ語
var LCDNO   = "no";  	var LNMNO   = "Norwegian";   				// ノルウエイ語
var LCDNO2  = "nb-no";  var LNMNO2  = "Norwegian";   				// ノルウエイ語2
var LCDNZ	= "en-nz";	var	LNMNZ	= "English (New Zealand)";		// 英語：ＮＺ
var LCDPL   = "pl";     var LNMPL   = "Polish";                     // ポーランド語
var LCDPT   = "pt-br";  var LNMBR   = "Portuguese (Brazil)";        // ポルトガル語：ブラジル
var LCDRO   = "ro";  	var LNMRO   = "Romanian";   				// ルーマニア語
var LCDRU   = "ru";     var LNMRU   = "Russian";                    // ロシア語
var LCDSA   = "ar-sa"; 	var LNMSA   = "Arabic (Saudi Arabia)";   	// アラビア語
var LCDSG   = "zh-sg";  var LNMSG   = "Chinese (Singapore)";        // 中国語：新波塔
var LCDSK   = "sk";     var LNMSK   = "Slovak";          			// スロバキア語
var LCDSV   = "sv";     var LNMSV   = "Swedish";          			// スウェーデン語
var LCDTR   = "tr";  	var LNMTR   = "Turkish";   					// トルコ語
var LCDTW   = "zh-tw";  var LNMTW   = "Chinese (Taiwan)";           // 中国語：台湾
var LCDUS   = "en-us";  var LNMUS   = "English (USA)";              // 英語：米国
var LCDUS2  = "en_us";  var LNMUS2  = "English (USA)";              // 英語：米国2
var LCDZA	= "en-za"; 	var	LNMZA	= "English (South Africa)"		// 英語：南アフリカ
var LCDFR2  = "fr-fr";  var LNMFR2  = "French (Standard)";   		// フランス語(カナダ)
var LCDIT2  = "it-it";  var LNMIT2  = "Italian (Standard)";         // イタリア語
var LCDSV2  = "sv-se";  var LNMSV2  = "Swedish";          			// スウェーデン語
var LCDCZ2  = "cs-cz";  var LNMCZ2  = "Czech";          			// チェコ語
/*
"en-bz", "English (Belize)
"en-tt", "English (Trinidad)
"et", "Estonian
"fr-be", "French (Belgium)
"fr-ca", "French (Canada)
"fr-ch", "French (Switzerland)
"fr-lu", "French (Luxembourg)
"de-ch", "German (Switzerland)
"de-at", "German (Austria)
"de-lu", "German (Luxembourg)
"de-li", "German (Liechtenstein)
"hi", "Hindi
"id", "Indonesian
"it-ch", "Italian (Switzerland)
"pt Portuguese (Portugal)
"th", "Thai
*/

function lgPak(a, b){
	this.Lcode = a;
	this.Lname = b;
}

function makeLangData(){
	var i = 0;
	this[i++] = new lgPak( LCDAR   , LNMAR   );  // スペイン語:アルゼンチン
	this[i++] = new lgPak( LCDAU   , LNMAU   );  // 英語：豪州
	this[i++] = new lgPak( LCDCA   , LNMCA   );  // 英語：カナダ
	this[i++] = new lgPak( LCDCN   , LNMCN   );  // 中国語：本土
	this[i++] = new lgPak( LCDCZ   , LNMCZ   );  // チェコ語
	this[i++] = new lgPak( LCDCZ2  , LNMCZ2  );  // チェコ語2
	this[i++] = new lgPak( LCDDA   , LNMDA   );  // デンマーク語
	this[i++] = new lgPak( LCDDE   , LNMDE   );  // ドイツ語
	this[i++] = new lgPak( LCDEL   , LNMEL   );  // ギリシャ語
	this[i++] = new lgPak( LCDEN   , LNMEN   );  // 英語：一般
	this[i++] = new lgPak( LCDES   , LNMES   );  // スペイン語
	this[i++] = new lgPak( LCDFI   , LNMFI   );  // フィンランド語
	this[i++] = new lgPak( LCDFR   , LNMFR   );  // フランス語
	this[i++] = new lgPak( LCDFR2  , LNMFR2  );  // フランス語2
	this[i++] = new lgPak( LCDGB   , LNMGB   );  // 英語：英国
	this[i++] = new lgPak( LCDHE   , LNMHE   );  // ヘブライ語
	this[i++] = new lgPak( LCDHK   , LNMHK   );  // 中国語：香港
	this[i++] = new lgPak( LCDHU   , LNMHU   );  // ハンガリー語
	this[i++] = new lgPak( LCDIE   , LNMIE   );  // 英語：アイルランド
	this[i++] = new lgPak( LCDIT   , LNMIT   );  // イタリア語
	this[i++] = new lgPak( LCDIT2  , LNMIT2  );  // イタリア語2
	this[i++] = new lgPak( LCDJM   , LNMJM   );  // 英語：ジャマイカ
	this[i++] = new lgPak( LCDJP   , LNMJP   );  // 日本語
	this[i++] = new lgPak( LCDKR   , LNMKR   );  // 韓国語
	this[i++] = new lgPak( LCDLT   , LNMLT   );  // リトアニア語
	this[i++] = new lgPak( LCDNL   , LNMNL   );  // オランダ語
	this[i++] = new lgPak( LCDNO   , LNMNO   );  // ノルウエイ語
	this[i++] = new lgPak( LCDNO2  , LNMNO2  );  // ノルウエイ語2
	this[i++] = new lgPak( LCDNZ   , LNMNZ   );  // 英語：ＮＺ
	this[i++] = new lgPak( LCDPL   , LNMPL   );  // ポーランド語
	this[i++] = new lgPak( LCDPT   , LNMBR   );  // ポルトガル語：ブラジル
	this[i++] = new lgPak( LCDRO   , LNMRO   );  // ルーマニア語
	this[i++] = new lgPak( LCDRU   , LNMRU   );  // ロシア語
	this[i++] = new lgPak( LCDSA   , LNMSA   );  // アラビア語
	this[i++] = new lgPak( LCDSG   , LNMSG   );  // 中国語：新波塔
	this[i++] = new lgPak( LCDSK   , LNMSK   );  // スロバキア語
	this[i++] = new lgPak( LCDSV   , LNMSV   );  // スウェーデン語
	this[i++] = new lgPak( LCDSV2  , LNMSV2  );  // スウェーデン語2
	this[i++] = new lgPak( LCDTR   , LNMTR   );  // トルコ語
	this[i++] = new lgPak( LCDTW   , LNMTW   );  // 中国語：台湾
	this[i++] = new lgPak( LCDUS   , LNMUS   );  // 英語：米国
	this[i++] = new lgPak( LCDUS2  , LNMUS2  );  // 英語：米国2
	this[i++] = new lgPak( LCDZA   , LNMZA   );  // 英語：南アフリカ
	this.length = i;
}
var	LANG = new makeLangData();
function fnGetLangNameByCode( sLangCode ){
	for (var i=0; i<LANG.length; i++){
		if (LANG[i].Lcode == sLangCode) return(LANG[i].Lname);
	}
	return("Unknown");
}
