<?php

/**
 * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 *
 * @package fusionLib
 * @copyright Copyright (c) 2012 - 2013 fusionLib. All rights reserved.
 * @link http://fusionlib.com
 */

/**
 * flDateTzMenu Class
 *
 * Class to provide timezone information for use in menus.
 *
 * @package fusionLib
 */
abstract class flDateTzMenu {

	/**
	 * Get the menu data.
	 *
	 * @return array Mapping of Olson value to friendly timezone name.
	 */
	static function get() {
		fusionLib::bindTextDomain('fusionLib');
		$tzData = array(
			'Etc/GMT+12' => __('(UTC-12:00) International Date Line West'),
			'Etc/GMT+11' => __('(UTC-11:00) Coordinated Universal Time-11'),
			'Pacific/Honolulu' => __('(UTC-10:00) Hawaii'),
			'America/Anchorage' => __('(UTC-09:00) Alaska'),
			'America/Santa_Isabel' => __('(UTC-08:00) Baja California'),
			'America/Los_Angeles' => __('(UTC-08:00) Pacific Time (US & Canada)'),
			'America/Phoenix' => __('(UTC-07:00) Arizona'),
			'America/Chihuahua' => __('(UTC-07:00) Chihuahua, La Paz, Mazatlan'),
			'America/Denver' => __('(UTC-07:00) Mountain Time (US & Canada)'),
			'America/Guatemala' => __('(UTC-06:00) Central America'),
			'America/Chicago' => __('(UTC-06:00) Central Time (US & Canada)'),
			'America/Mexico_City' => __('(UTC-06:00) Guadalajara, Mexico City, Monterrey'),
			'America/Regina' => __('(UTC-06:00) Saskatchewan'),
			'America/Bogota' => __('(UTC-05:00) Bogota, Lima, Quito'),
			'America/New_York' => __('(UTC-05:00) Eastern Time (US & Canada)'),
			'America/Indianapolis' => __('(UTC-05:00) Indiana (East)'),
			'America/Caracas' => __('(UTC-04:30) Caracas'),
			'America/Asuncion' => __('(UTC-04:00) Asuncion'),
			'America/Halifax' => __('(UTC-04:00) Atlantic Time (Canada)'),
			'America/Cuiaba' => __('(UTC-04:00) Cuiaba'),
			'America/La_Paz' => __('(UTC-04:00) Georgetown, La Paz, Manaus, San Juan'),
			'America/Santiago' => __('(UTC-04:00) Santiago'),
			'America/St_Johns' => __('(UTC-03:30) Newfoundland'),
			'America/Sao_Paulo' => __('(UTC-03:00) Brasilia'),
			'America/Buenos_Aires' => __('(UTC-03:00) Buenos Aires'),
			'America/Cayenne' => __('(UTC-03:00) Cayenne, Fortaleza'),
			'America/Godthab' => __('(UTC-03:00) Greenland'),
			'America/Montevideo' => __('(UTC-03:00) Montevideo'),
			'America/Bahia' => __('(UTC-03:00) Salvador'),
			'Etc/GMT+2' => __('(UTC-02:00) Coordinated Universal Time-02'),
			'Atlantic/Azores' => __('(UTC-01:00) Azores'),
			'Atlantic/Cape_Verde' => __('(UTC-01:00) Cape Verde Is.'),
			'Africa/Casablanca' => __('(UTC) Casablanca'),
			'Etc/GMT' => __('(UTC) Coordinated Universal Time'),
			'Europe/London' => __('(UTC) Dublin, Edinburgh, Lisbon, London'),
			'Atlantic/Reykjavik' => __('(UTC) Monrovia, Reykjavik'),
			'Europe/Berlin' => __('(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna'),
			'Europe/Budapest' => __('(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague'),
			'Europe/Paris' => __('(UTC+01:00) Brussels, Copenhagen, Madrid, Paris'),
			'Europe/Warsaw' => __('(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb'),
			'Africa/Lagos' => __('(UTC+01:00) West Central Africa'),
			'Africa/Windhoek' => __('(UTC+01:00) Windhoek'),
			'Asia/Amman' => __('(UTC+02:00) Amman'),
			'Europe/Bucharest' => __('(UTC+02:00) Athens, Bucharest'),
			'Asia/Beirut' => __('(UTC+02:00) Beirut'),
			'Africa/Cairo' => __('(UTC+02:00) Cairo'),
			'Asia/Damascus' => __('(UTC+02:00) Damascus'),
			'Africa/Johannesburg' => __('(UTC+02:00) Harare, Pretoria'),
			'Europe/Kiev' => __('(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius'),
			'Europe/Istanbul' => __('(UTC+02:00) Istanbul'),
			'Asia/Jerusalem' => __('(UTC+02:00) Jerusalem'),
			'Asia/Nicosia' => __('(UTC+02:00) Nicosia'),
			'Asia/Baghdad' => __('(UTC+03:00) Baghdad'),
			'Europe/Kaliningrad' => __('(UTC+03:00) Kaliningrad, Minsk'),
			'Asia/Riyadh' => __('(UTC+03:00) Kuwait, Riyadh'),
			'Africa/Nairobi' => __('(UTC+03:00) Nairobi'),
			'Asia/Tehran' => __('(UTC+03:30) Tehran'),
			'Asia/Dubai' => __('(UTC+04:00) Abu Dhabi, Muscat'),
			'Asia/Baku' => __('(UTC+04:00) Baku'),
			'Europe/Moscow' => __('(UTC+04:00) Moscow, St. Petersburg, Volgograd'),
			'Indian/Mauritius' => __('(UTC+04:00) Port Louis'),
			'Asia/Tbilisi' => __('(UTC+04:00) Tbilisi'),
			'Asia/Yerevan' => __('(UTC+04:00) Yerevan'),
			'Asia/Kabul' => __('(UTC+04:30) Kabul'),
			'Asia/Karachi' => __('(UTC+05:00) Islamabad, Karachi'),
			'Asia/Tashkent' => __('(UTC+05:00) Tashkent'),
			'Asia/Calcutta' => __('(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi'),
			'Asia/Colombo' => __('(UTC+05:30) Sri Jayawardenepura'),
			'Asia/Katmandu' => __('(UTC+05:45) Kathmandu'),
			'Asia/Almaty' => __('(UTC+06:00) Astana'),
			'Asia/Dhaka' => __('(UTC+06:00) Dhaka'),
			'Asia/Yekaterinburg' => __('(UTC+06:00) Ekaterinburg'),
			'Asia/Rangoon' => __('(UTC+06:30) Yangon (Rangoon)'),
			'Asia/Bangkok' => __('(UTC+07:00) Bangkok, Hanoi, Jakarta'),
			'Asia/Novosibirsk' => __('(UTC+07:00) Novosibirsk'),
			'Asia/Shanghai' => __('(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi'),
			'Asia/Krasnoyarsk' => __('(UTC+08:00) Krasnoyarsk'),
			'Asia/Singapore' => __('(UTC+08:00) Kuala Lumpur, Singapore'),
			'Australia/Perth' => __('(UTC+08:00) Perth'),
			'Asia/Taipei' => __('(UTC+08:00) Taipei'),
			'Asia/Ulaanbaatar' => __('(UTC+08:00) Ulaanbaatar'),
			'Asia/Irkutsk' => __('(UTC+09:00) Irkutsk'),
			'Asia/Tokyo' => __('(UTC+09:00) Osaka, Sapporo, Tokyo'),
			'Asia/Seoul' => __('(UTC+09:00) Seoul'),
			'Australia/Adelaide' => __('(UTC+09:30) Adelaide'),
			'Australia/Darwin' => __('(UTC+09:30) Darwin'),
			'Australia/Brisbane' => __('(UTC+10:00) Brisbane'),
			'Australia/Sydney' => __('(UTC+10:00) Canberra, Melbourne, Sydney'),
			'Pacific/Port_Moresby' => __('(UTC+10:00) Guam, Port Moresby'),
			'Australia/Hobart' => __('(UTC+10:00) Hobart'),
			'Asia/Yakutsk' => __('(UTC+10:00) Yakutsk'),
			'Pacific/Guadalcanal' => __('(UTC+11:00) Solomon Is., New Caledonia'),
			'Asia/Vladivostok' => __('(UTC+11:00) Vladivostok'),
			'Pacific/Auckland' => __('(UTC+12:00) Auckland, Wellington'),
			'Etc/GMT-12' => __('(UTC+12:00) Coordinated Universal Time+12'),
			'Pacific/Fiji' => __('(UTC+12:00) Fiji'),
			'Asia/Magadan' => __('(UTC+12:00) Magadan'),
			'Pacific/Tongatapu' => __('(UTC+13:00) Nuku\'alofa'),
			'Pacific/Apia' => __('(UTC+13:00) Samoa')
		);
		return $tzData;
	}
}
