from zope.schema.vocabulary import SimpleTerm
from zope.schema.vocabulary import SimpleVocabulary

timezone_list = (
    # Based on
    # http://www.healthstream.com/hlchelp/Administrator/Classes/HLC_Time_Zone_Abbreviations.htm
    # REMOVED: ('01', u'(GMT–12:00) International Date Line West'),
    ("02", "SMST　–　Midway Island, Samoa (GMT–11:00)"),
    ("03", "HAST　–　Hawaii (GMT–10:00)"),
    ("04", "AK　–　Alaska (GMT–09:00)"),
    ("05", "PT　–　Pacific Time (US & Canada) (GMT–08:00)"),
    ("06", "PST　–　Tijuana, Baja California (GMT–08:00)"),
    ("07", "MST　-　Arizona (GMT–07:00)"),
    ("08", "MSTM　–　Chihuahua, La Paz, Mazatlan (GMT–07:00)"),
    ("09", "MT　–　Mountain Time (US & Canada) (GMT–07:00)"),
    ("10", "CAST　–　Central America (GMT–06:00)"),
    ("11", "CT　–　Central Time (US & Canada) (GMT–06:00)"),
    ("12", "CST　–　Guadalajara, Mexico City, Monterrey (GMT–06:00)"),
    ("13", "CCST　–　Saskatchewan (GMT–06:00)"),
    ("14", "SAPST　–　Bogota, Lima, Quito, Rio Branco (GMT–05:00)"),
    ("15", "ET　–　Eastern Time (US & Canada) (GMT–05:00)"),
    ("16", "EST　–　Indiana (East) (GMT–05:00)"),
    ("17", "VST　–　Caracas (GMT–04:30)"),
    ("18", "AST　–　Atlantic Time (Canada) (GMT–04:00)"),
    ("19", "SAWST　–　Manaus (GMT–04:00)"),
    ("20", "PSAST　–　Santiago (GMT–04:00)"),
    ("21", "NST　–　Newfoundland (GMT–03:30)"),
    ("22", "ESAST　–　Brasilia (GMT–03:00)"),
    ("23", "ART　–　Buenos Aires, Georgetown (GMT–03:00)"),
    ("24", "GNST　–　Greenland (Nuuk) (GMT–03:00)"),
    ("25", "MVST　–　Montevideo (GMT–03:00)"),
    ("26", "Mid–Atlantic (GMT–02:00)"),
    ("27", "CVT　–　Cape Verde Is. (GMT–01:00)"),
    ("28", "AZOST　–　Azores (GMT–01:00)"),
    ("29", "GST　–　Dakar, Monrovia, Reykjavik (GMT+00:00)"),
    (
        "30",
        "GMT　–　Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London (GMT+00:00)",
    ),
    ("31", "WET　–　Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna (GMT+01:00)"),
    ("32", "CET　–　Belgrade, Bratislava, Budapest, Ljubljana, Prague (GMT+01:00)"),
    ("33", "RST　–　Brussels, Copenhagen, Madrid, Paris (GMT+01:00)"),
    ("34", "CEST　–　Sarajevo, Skopje, Warsaw, Zagreb (GMT+01:00)"),
    ("35", "ECT　–　West Central Africa (GMT+01:00)"),
    ("36", "JST　–　Amman (GMT+02:00)"),
    ("37", "GTBST　–　Athens, Bucharest, Istanbul (GMT+02:00)"),
    ("38", "MEST　–　Beirut (GMT+02:00)"),
    ("39", "EGST　–　Cairo (GMT+02:00)"),
    ("40", "SAST　–　Harare, Pretoria (GMT+02:00)"),
    ("41", "EET　–　Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius (GMT+02:00)"),
    ("42", "ISST　–　Jerusalem (GMT+02:00)"),
    ("43", "EEST　–　Minsk (GMT+02:00)"),
    ("44", "NMST　–　Windhoek (GMT+02:00)"),
    ("45", "ABST　–　Kuwait, Riyadh, Baghdad (GMT+03:00)"),
    ("46", "MSK　–　Moscow, St. Petersburg, Volgograd (GMT+03:00)"),
    ("47", "EAT　–　Nairobi (GMT+03:00)"),
    ("48", "GET　–　Tbilisi (GMT+03:00)"),
    ("49", "IRST　–　Tehran (GMT+03:30)"),
    ("50", "ARBST　–　Abu Dhabi, Muscat (GMT+04:00)"),
    ("51", "AZT　–　Baku (GMT+04:00)"),
    ("52", "AMT　–　Yerevan (GMT+04:00)"),
    ("53", "AFT　–　Kabul (GMT+04:30)"),
    ("54", "YEKT　–　Yekaterinburg (GMT+05:00)"),
    ("55", "PKT　–　Islamabad, Karachi, Tashkent (GMT+05:00)"),
    ("56", "SLT　–　Sri Jayawardenapura (GMT+05:30)"),
    ("57", "IST　–　Chennai, Kolkata, Mumbai, New Delhi (GMT+05:30)"),
    ("58", "NPT　–　Kathmandu (GMT+05:45)"),
    ("59", "NCAST　–　Almaty, Novosibirsk (GMT+06:00)"),
    ("60", "BST　–　Astana, Dhaka (GMT+06:00)"),
    ("61", "MYST　–　Yangon (Rangoon) (GMT+06:30)"),
    ("62", "THA　–　Bangkok, Hanoi, Jakarta (GMT+07:00)"),
    ("63", "KRAT　–　Krasnoyarsk (GMT+07:00)"),
    ("64", "CST　–　Beijing, Chongqing, Hong Kong, Urumqi (GMT+08:00)"),
    ("65", "SNST　–　Kuala Lumpur, Singapore (GMT+08:00)"),
    ("66", "UST　–　Irkutsk, Ulaan Bataar (GMT+08:00)"),
    ("67", "AWST　–　Perth (GMT+08:00)"),
    ("68", "TIST　–　Taipei (GMT+08:00)"),
    ("69", "TST　–　Osaka, Sapporo, Tokyo (GMT+09:00)"),
    ("70", "KST　–　Seoul (GMT+09:00)"),
    ("71", "YAKT　–　Yakutsk (GMT+09:00)"),
    ("72", "CAUST　–　Adelaide (GMT+09:30)"),
    ("73", "ACST　-　Darwin (GMT+09:30)"),
    ("74", "EAST　–　Brisbane (GMT+10:00)"),
    ("75", "AEST　–　Canberra, Melbourne, Sydney (GMT+10:00)"),
    ("76", "TAST　–　Hobart (GMT+10:00)"),
    ("77", "WPST　–　Guam, Port Moresby (GMT+10:00)"),
    ("78", "VLAT　–　Vladivostok (GMT+10:00)"),
    ("79", "SBT　–　Magadan, Solomon Is., New Caledonia (GMT+11:00)"),
    ("80", "NZST　–　Auckland, Wellington (GMT+12:00)"),
    ("81", "FJT　–　Fiji, Kamchatka, Marshall Is. (GMT+12:00)"),
    ("82", "PHOT　–　Nuku'alofa (GMT+13:00)"),
)


terms = [SimpleTerm(value=p[0], token=p[0], title=p[1]) for p in timezone_list]
timezone_vocabulary = SimpleVocabulary(terms)
