/** * Timezone class * * This class can handle all our timezone operations and conversions. * * @author Christoph Haas * @modified 29.12.2012 * @license http://www.opensource.org/licenses/mit-license.php MIT License */ Ext.namespace("Zarafa.plugins.calendarimporter.data"); Zarafa.plugins.calendarimporter.data.Timezones = Ext.extend(Object, { store : [ ['Pacific/Midway','(UTC -11:00) Midway, Niue, Pago Pago', -660], ['America/Adak','(UTC -10:00) Adak', -600], ['Pacific/Fakaofo','(UTC -10:00) Fakaofo, Honolulu, Johnston, Rarotonga, Tahiti', -600], ['Pacific/Marquesas','(UTC -10:30) Marquesas', -630], ['America/Anchorage','(UTC -09:00) Anchorage, Juneau, Nome, Sitka, Yakutat', -540], ['Pacific/Gambier','(UTC -09:00) Gambier', -540], ['America/Dawson','(UTC -08:00) Dawson, Los Angeles, Tijuana, Vancouver, Whitehorse', -480], ['America/Santa_Isabel','(UTC -08:00) Santa Isabel', -480], ['America/Metlakatla','(UTC -08:00) Metlakatla, Pitcairn', -480], ['America/Dawson_Creek','(UTC -07:00) Dawson Creek, Hermosillo, Phoenix', -420], ['America/Chihuahua','(UTC -07:00) Chihuahua, Mazatlan', -420], ['America/Boise','(UTC -07:00) Boise, Cambridge Bay, Denver, Edmonton, Inuvik, Ojinaga, Shiprock, Yellowknife', -420], ['America/Chicago','(UTC -06:00) Beulah, Center, Chicago, Knox, Matamoros, Menominee, New Salem, Rainy River, Rankin Inlet, Resolute, Tell City, Winnipeg', -360], ['America/Belize','(UTC -06:00) Belize, Costa Rica, El Salvador, Galapagos, Guatemala, Managua, Regina, Swift Current, Tegucigalpa', -360], ['Pacific/Easter','(UTC -06:00) Easter', -360], ['America/Bahia_Banderas','(UTC -06:00) Bahia Banderas, Cancun, Merida, Mexico City, Monterrey', -360], ['America/Detroit','(UTC -05:00) Detroit, Grand Turk, Indianapolis, Iqaluit, Louisville, Marengo, Monticello, Montreal, Nassau, New York, Nipigon, Pangnirtung, Petersburg, Thunder Bay, Toronto, Vevay, Vincennes, Winamac', -300], ['America/Atikokan','(UTC -05:00) Atikokan, Bogota, Cayman, Guayaquil, Jamaica, Lima, Panama, Port-au-Prince', -300], ['America/Havana','(UTC -05:00) Havana', -300], ['America/Caracas','(UTC -05:30) Caracas', -330], ['America/Glace_Bay','(UTC -04:00) Bermuda, Glace Bay, Goose Bay, Halifax, Moncton, Thule', -240], ['Atlantic/Stanley','(UTC -04:00) Stanley', -240], ['America/Santiago','(UTC -04:00) Palmer, Santiago', -240], ['America/Anguilla','(UTC -04:00) Anguilla, Antigua, Aruba, Barbados, Blanc-Sablon, Boa Vista, Curacao, Dominica, Eirunepe, Grenada, Guadeloupe, Guyana, Kralendijk, La Paz, Lower Princes, Manaus, Marigot, Martinique, Montserrat, Port of Spain, Porto Velho, Puerto Rico, Rio Branco, Santo Domingo, St Barthelemy, St Kitts, St Lucia, St Thomas, St Vincent, Tortola', -240], ['America/Campo_Grande','(UTC -04:00) Campo Grande, Cuiaba', -240], ['America/Asuncion','(UTC -04:00) Asuncion', -240], ['America/St_Johns','(UTC -04:30) St Johns', -270], ['America/Sao_Paulo','(UTC -03:00) Sao Paulo', -180], ['America/Araguaina','(UTC -03:00) Araguaina, Bahia, Belem, Buenos Aires, Catamarca, Cayenne, Cordoba, Fortaleza, Jujuy, La Rioja, Maceio, Mendoza, Paramaribo, Recife, Rio Gallegos, Rothera, Salta, San Juan, Santarem, Tucuman, Ushuaia', -180], ['America/Montevideo','(UTC -03:00) Montevideo', -180], ['America/Godthab','(UTC -03:00) Godthab', -180], ['America/Argentina/San_Luis','(UTC -03:00) San Luis', -180], ['America/Miquelon','(UTC -03:00) Miquelon', -180], ['America/Noronha','(UTC -02:00) Noronha, South Georgia', -120], ['Atlantic/Cape_Verde','(UTC -01:00) Cape Verde', -60], ['America/Scoresbysund','(UTC -01:00) Azores, Scoresbysund', -60], ['Atlantic/Canary','(UTC) Canary, Dublin, Faroe, Guernsey, Isle of Man, Jersey, Lisbon, London, Madeira', 0], ['Africa/Abidjan','(UTC) Abidjan, Accra, Bamako, Banjul, Bissau, Casablanca, Conakry, Dakar, Danmarkshavn, El Aaiun, Freetown, Lome, Monrovia, Nouakchott, Ouagadougou, Reykjavik, Sao Tome, St Helena', 0], ['Africa/Algiers','(UTC +01:00) Algiers, Bangui, Brazzaville, Douala, Kinshasa, Lagos, Libreville, Luanda, Malabo, Ndjamena, Niamey, Porto-Novo, Tunis', 60], ['Africa/Ceuta','(UTC +01:00) Amsterdam, Andorra, Belgrade, Berlin, Bratislava, Brussels, Budapest, Ceuta, Copenhagen, Gibraltar, Ljubljana, Longyearbyen, Luxembourg, Madrid, Malta, Monaco, Oslo, Paris, Podgorica, Prague, Rome, San Marino, Sarajevo, Skopje, Stockholm, Tirane, Vaduz, Vatican, Vienna, Warsaw, Zagreb, Zurich', 60], ['Africa/Windhoek','(UTC +01:00) Windhoek', 60], ['Asia/Damascus','(UTC +02:00) Damascus', 120], ['Asia/Beirut','(UTC +02:00) Beirut', 120], ['Asia/Jerusalem','(UTC +02:00) Jerusalem', 120], ['Asia/Nicosia','(UTC +02:00) Athens, Bucharest, Chisinau, Helsinki, Istanbul, Mariehamn, Nicosia, Riga, Sofia, Tallinn, Vilnius', 120], ['Africa/Blantyre','(UTC +02:00) Blantyre, Bujumbura, Cairo, Gaborone, Gaza, Harare, Hebron, Johannesburg, Kigali, Lubumbashi, Lusaka, Maputo, Maseru, Mbabane, Tripoli', 120], ['Asia/Amman','(UTC +02:00) Amman', 120], ['Africa/Addis_Ababa','(UTC +03:00) Addis Ababa, Aden, Antananarivo, Asmara, Baghdad, Bahrain, Comoro, Dar es Salaam, Djibouti, Juba, Kaliningrad, Kampala, Khartoum, Kiev, Kuwait, Mayotte, Minsk, Mogadishu, Nairobi, Qatar, Riyadh, Simferopol, Syowa, Uzhgorod, Zaporozhye', 180], ['Asia/Tehran','(UTC +03:30) Tehran', 210], ['Asia/Yerevan','(UTC +04:00) Yerevan', 240], ['Asia/Dubai','(UTC +04:00) Dubai, Mahe, Mauritius, Moscow, Muscat, Reunion, Samara, Tbilisi, Volgograd', 240], ['Asia/Baku','(UTC +04:00) Baku', 240], ['Asia/Kabul','(UTC +04:30) Kabul', 270], ['Antarctica/Mawson','(UTC +05:00) Aqtau, Aqtobe, Ashgabat, Dushanbe, Karachi, Kerguelen, Maldives, Mawson, Oral, Samarkand, Tashkent', 300], ['Asia/Colombo','(UTC +05:30) Colombo, Kolkata', 330], ['Asia/Kathmandu','(UTC +05:45) Kathmandu', 345], ['Antarctica/Vostok','(UTC +06:00) Almaty, Bishkek, Chagos, Dhaka, Qyzylorda, Thimphu, Vostok, Yekaterinburg', 360], ['Asia/Rangoon','(UTC +06:30) Cocos, Rangoon', 390], ['Antarctica/Davis','(UTC +07:00) Bangkok, Christmas, Davis, Ho Chi Minh, Hovd, Jakarta, Novokuznetsk, Novosibirsk, Omsk, Phnom Penh, Pontianak, Vientiane', 420], ['Antarctica/Casey','(UTC +08:00) Brunei, Casey, Choibalsan, Chongqing, Harbin, Hong Kong, Kashgar, Krasnoyarsk, Kuala Lumpur, Kuching, Macau, Makassar, Manila, Perth, Shanghai, Singapore, Taipei, Ulaanbaatar, Urumqi', 480], ['Australia/Eucla','(UTC +08:45) Eucla', 525], ['Asia/Dili','(UTC +09:00) Dili, Irkutsk, Jayapura, Palau, Pyongyang, Seoul, Tokyo', 540], ['Australia/Adelaide','(UTC +09:30) Adelaide, Broken Hill', 570], ['Australia/Darwin','(UTC +09:30) Darwin', 570], ['Antarctica/DumontDUrville','(UTC +10:00) Brisbane, Chuuk, DumontDUrville, Guam, Lindeman, Port Moresby, Saipan, Yakutsk', 600], ['Australia/Currie','(UTC +10:00) Currie, Hobart, Melbourne, Sydney', 600], ['Australia/Lord_Howe','(UTC +10:30) Lord Howe', 630], ['Antarctica/Macquarie','(UTC +11:00) Efate, Guadalcanal, Kosrae, Macquarie, Noumea, Pohnpei, Sakhalin, Vladivostok', 660], ['Pacific/Norfolk','(UTC +11:30) Norfolk', 690], ['Antarctica/McMurdo','(UTC +12:00) Auckland, McMurdo, South Pole', 720], ['Asia/Anadyr','(UTC +12:00) Anadyr, Fiji, Funafuti, Kamchatka, Kwajalein, Magadan, Majuro, Nauru, Tarawa, Wake, Wallis', 720], ['Pacific/Chatham','(UTC +12:45) Chatham', 765], ['Pacific/Enderbury','(UTC +13:00) Enderbury, Tongatapu', 780], ['Pacific/Apia','(UTC +13:00) Apia', 780], ['Pacific/Kiritimati','(UTC +14:00) Kiritimati', 840] ], /* map all citys to the above timezones */ map : { /* Pacific */ 'Pacific/Midway' : 'Pacific/Midway', 'Pacific/Niue' : 'Pacific/Midway', 'Pacific/Pago_Pago' : 'Pacific/Midway', 'Pacific/Fakaofo' : 'Pacific/Fakaofo', 'Pacific/Honolulu' : 'Pacific/Fakaofo', 'Pacific/Johnston' : 'Pacific/Fakaofo', 'Pacific/Rarotonga' : 'Pacific/Fakaofo', 'Pacific/Tahiti' : 'Pacific/Fakaofo', 'Pacific/Marquesas' : 'Pacific/Marquesas', 'Pacific/Gambier' : 'Pacific/Gambier', 'Pacific/Easter' : 'Pacific/Easter', 'Pacific/Norfolk' : 'Pacific/Norfolk', 'Pacific/Chatham' : 'Pacific/Chatham', 'Pacific/Enderbury' : 'Pacific/Enderbury', 'Pacific/Tongatapu' : 'Pacific/Enderbury', 'Pacific/Apia' : 'Pacific/Apia', 'Pacific/Kiritimati' : 'Pacific/Kiritimati', /* America */ 'America/Adak' : 'America/Adak', 'America/Anchorage' : 'America/Anchorage', 'America/Juneau' : 'America/Anchorage', 'America/Nome' : 'America/Anchorage', 'America/Sitka' : 'America/Anchorage', 'America/Yakutat' : 'America/Anchorage', 'America/Dawson' : 'America/Dawson', 'America/Los_Angeles' : 'America/Dawson', 'America/Tijuana' : 'America/Dawson', 'America/Vancouver' : 'America/Dawson', 'America/Whitehorse' : 'America/Dawson', 'America/Santa_Isabel' : 'America/Santa_Isabel', 'America/Metlakatla' : 'America/Metlakatla', 'America/Dawson_Creek' : 'America/Dawson_Creek', 'America/Hermosillo' : 'America/Dawson_Creek', 'America/Phoenix' : 'America/Dawson_Creek', 'America/Chihuahua' : 'America/Chihuahua', 'America/Mazatlan' : 'America/Chihuahua' /* Europe */ /* Africa */ /* Australia */ /* Atlantic */ /* Antarctica */ /* Artic */ /* Asia */ /* Indian */ /* Others */ }, /* return unmapped timezone... */ unMap: function(timezone) { return this.map[timezone] !== undefined ? this.map[timezone] : timezone; }, getOffset: function(timezone) { /* find timezone, this needs to be optimized ;) */ timezone = this.unMap(timezone); for(i = 0; i < this.store.length; i++) { if(this.store[i][0] == timezone) { return (this.store[i][2] * 60000); } } return 0; // no offset found... } }); Zarafa.plugins.calendarimporter.data.Timezones = new Zarafa.plugins.calendarimporter.data.Timezones();