| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642 |
- extends ../layout
- block scripts
- script(src="https://js.recurly.com/v3/recurly.js")
- script(type='text/javascript').
- window.recomendedCurrency = '#{currency}'
- window.countryCode = '#{countryCode}'
- window.plan_code = '#{plan_code}'
- window.recurlyApiKey = "!{settings.apis.recurly.publicKey}"
- window.couponCode = "#{couponCode}"
- block content
- - locals.supressDefaultJs = true
- script(data-main=jsPath+'main.js', src=jsPath+'libs/require.js', baseurl=jsPath)
- .content.content-alt
- .container(ng-controller="NewSubscriptionController" ng-cloak)
- .row.card-group
- .col-md-5.col-md-push-4
- .card.card-highlighted
- .page-header
- .row
- .col-xs-9
- h2 {{planName}}
- .col-xs-3
- div.dropdown.changePlanButton.pull-right(ng-cloak, dropdown)
- a.btn.btn-default.dropdown-toggle(
- href="#",
- data-toggle="dropdown",
- dropdown-toggle
- )
- | {{currencyCode}} ({{plans[currencyCode]['symbol']}})
- span.caret
- ul.dropdown-menu(role="menu")
- li(ng-repeat="(currency, value) in plans")
- a(
- ng-click="changeCurrency(currency)",
- ) {{currency}} ({{value['symbol']}})
- hr.thin
- .row
- .col-md-12.text-center
- div(ng-if="trialLength")
- span !{translate("first_few_days_free", {trialLen:'{{trialLength}}'})}
- span(ng-if="discountMonths && discountRate") - {{discountMonths}} #{translate("month")}s {{discountRate}}% Off
- div(ng-if="price")
- strong {{price.currency.symbol}}{{price.next.total}}
- span(ng-if="monthlyBilling") #{translate("every")} #{translate("month")}
- span(ng-if="!monthlyBilling") #{translate("every")} #{translate("year")}
- div(ng-if="normalPrice")
- span.small Normally {{price.currency.symbol}}{{normalPrice}}
- .row
- div(sixpack-switch="subscription-form")
- .col-md-12(sixpack-default)
- form(ng-show="planName",novalidate)
- .row
- .col-md-12
- .form-group
- .row
- .col-md-6
- label.radio-inline
- input.paymentTypeOption(type="radio",value="credit_card", ng-model="paymentMethod.value")
- i.fa.fa-cc-mastercard.fa-3x
- span
- i.fa.fa-cc-visa.fa-3x
- .col-md-6
- label.radio-inline
- input.paymentTypeOption(type="radio", value="paypal", ng-model="paymentMethod.value")
- i.fa.fa-cc-paypal.fa-3x
- .alert.alert-warning.small(ng-show="genericError")
- strong {{genericError}}
- span(ng-hide="paymentMethod.value == 'paypal'")
- .row
- .col-md-12
- .form-group
- div.alert.alert-warning.small(ng-hide="validation.correctCvv") #{translate("invalid")} CVV
- div.alert.alert-warning.small(ng-hide="validation.correctCardNumber") #{translate("invalid")} #{translate("credit_card_number")}
- .row
- .col-md-6
- .form-group(ng-class="validation.number == false || validation.errorFields.number ? 'has-error' : ''")
- input.form-control(ng-model='data.number', ng-blur="validateCardNumber()", placeholder="#{translate('credit_card_number')}")
- .col-md-3
- .form-group(ng-class="validation.correctCvv == false || validation.errorFields.cvv ? 'has-error' : ''")
- input.form-control(ng-model='data.cvv', ng-blur="validateCvv()", placeholder="CVV")
- .row
- .col-md-12
- div.alert.alert-warning.small(ng-hide="validation.correctExpiry") #{translate("invalid")} #{translate("expiry")}
- .row
- .col-md-3
- .form-group(ng-class="validation.correctExpiry == false || validation.errorFields.month ? 'has-error' : ''")
- select.form-control(data-recurly='month', ng-change="validateExpiry()", ng-model='data.month')
- option(value="", disabled, selected) Month
- option(value="01") 01
- option(value="02") 02
- option(value="03") 03
- option(value="04") 04
- option(value="05") 05
- option(value="06") 06
- option(value="07") 07
- option(value="08") 08
- option(value="09") 09
- option(value="10") 10
- option(value="11") 11
- option(value="12") 12
- .col-md-4
- .form-group(ng-class="validation.correctExpiry == false || validation.errorFields.year ? 'has-error' : ''")
- select.form-control(data-recurly='year', ng-change="validateExpiry()", ng-model='data.year')
- option(value="", disabled, selected) Year
- option(value="2016") 2016
- option(value="2017") 2017
- option(value="2018") 2018
- option(value="2019") 2019
- option(value="2020") 2020
- option(value="2021") 2021
- option(value="2022") 2022
- option(value="2023") 2023
- option(value="2024") 2024
- option(value="2025") 2025
- option(value="2026") 2026
- .row
- .col-md-6
- .form-group(ng-class="validation.errorFields.first_name ? 'has-error' : ''")
- input.form-control(type='text', value='', maxlength='255', , onkeyup='', data-recurly="first_name", ng-model="data.first_name", required, placeholder="#{translate('first_name')}")
- .col-md-6
- .form-group(ng-class="validation.errorFields.last_name ? 'has-error' : ''")
- input.form-control(type='text', value='', maxlength='255', onkeyup='', data-recurly="last_name", ng-model="data.last_name", required, placeholder="#{translate('last_name')}")
- hr
- .row
- .col-md-12
- .form-group(ng-class="validation.errorFields.address1 ? 'has-error' : ''")
- label #{translate("billing_address")}
- input.form-control(type='text', value='', maxlength='255', onkeyup='', ng-model="data.address1", placeholder="#{translate('address')}")
- .form-group(ng-class="validation.errorFields.address2 ? 'has-error' : ''")
- input.form-control(type='text', value='', maxlength='255', onkeyup='', ng-model="data.address2", placeholder="#{translate('address')}")
- .form-group(ng-class="validation.errorFields.state ? 'has-error' : ''")
- input.form-control(type='text', value='', maxlength='255', onkeyup='', ng-model="data.state", placeholder="#{translate('state')}")
- .row
- .col-md-7
- .form-group(ng-class="validation.errorFields.city ? 'has-error' : ''")
- input.form-control(type='text', value='', maxlength='255', onkeyup='', data-recurly="city", ng-model="data.city", placeholder="#{translate('city')}")
- .col-md-5(ng-class="validation.errorFields.postal_code ? 'has-error' : ''")
- input.form-control(type='text', value='', maxlength='255', onkeyup='', data-recurly="postal_code", ng-model="data.postal_code", placeholder="#{translate('zip_post_code')}")
- .row
- .col-md-7
- .form-group(ng-class="validation.errorFields.country ? 'has-error' : ''")
- select.form-control(data-recurly="country", ng-model="data.country", ng-change="updateCountry()", required)
- mixin countries_options()
- .row
- .col-md-8
- if (showCouponField)
- .form-group
- input.form-control(type='text', ng-blur="applyCoupon()", ng-model="data.coupon", placeholder="#{translate('coupon')}")
- .row
- .col-md-8
- if (showVatField)
- .form-group
- input.form-control(type='text', ng-blur="applyVatNumber()", ng-model="data.vat_number", placeholder="#{translate('vat_number')}")
- .row
- .col-xs-7
- .form-group
- button.btn.btn-success(ng-click="submit()", ng-disabled="processing", sixpack-convert="payment-left-menu-bottom") #{translate("upgrade_now")}
-
- .col-xs-3.pricingBreakdown
- div(ng-if="price.next.subtotal != price.next.total") Subtotal
- div(ng-if="price.next.tax!='0.00'") Tax
- div
- strong Total
- .col-xs-2
- div(ng-if="price.next.subtotal != price.next.total").pull-right {{price.currency.symbol}}{{price.next.subtotal}}
- div(ng-if="price.next.tax!='0.00'").pull-right {{price.currency.symbol}}{{price.next.tax}}
- div.pull-right
- strong {{price.currency.symbol}}{{price.next.total}}
-
- .col-md-12(sixpack-when="simple")
- form(
- ng-if="planName"
- name="simpleCCForm"
- novalidate
- )
- div.payment-method-toggle
- a.payment-method-toggle-switch(
- href
- ng-click="setPaymentMethod('credit_card');"
- ng-class="paymentMethod.value === 'credit_card' ? 'payment-method-toggle-switch-selected' : ''"
- )
- i.fa.fa-cc-mastercard.fa-2x
- span
- i.fa.fa-cc-visa.fa-2x
- span
- i.fa.fa-cc-amex.fa-2x
- a.payment-method-toggle-switch(
- href
- ng-click="setPaymentMethod('paypal');"
- ng-class="paymentMethod.value === 'paypal' ? 'payment-method-toggle-switch-selected' : ''"
- )
- i.fa.fa-cc-paypal.fa-2x
-
- .alert.alert-warning.small(ng-show="genericError")
- strong {{genericError}}
- div(ng-if="paymentMethod.value === 'credit_card'")
- .row
- .col-xs-6
- .form-group(ng-class="validation.errorFields.first_name || inputHasError(simpleCCForm.firstName) ? 'has-error' : ''")
- label(for="first-name") #{translate('first_name')}
- input#first-name.form-control(
- type="text"
- maxlength='255'
- data-recurly="first_name"
- name="firstName"
- ng-model="data.first_name"
- required
- )
- span.input-feedback-message {{ simpleCCForm.firstName.$error.required ? 'This field is required' : '' }}
- .col-xs-6
- .form-group(for="last-name",ng-class="validation.errorFields.last_name || inputHasError(simpleCCForm.lastName)? 'has-error' : ''")
- label(for="last-name") #{translate('last_name')}
- input#last-name.form-control(
- type="text"
- maxlength='255'
- data-recurly="last_name"
- name="lastName"
- ng-model="data.last_name"
- required
- )
- span.input-feedback-message {{ simpleCCForm.lastName.$error.required ? 'This field is required' : '' }}
- .form-group(ng-class="validation.correctCardNumber == false || validation.errorFields.number || inputHasError(simpleCCForm.ccNumber) ? 'has-error' : ''")
- label(for="card-no") #{translate("credit_card_number")}
- input#card-no.form-control(
- type="text"
- ng-model="data.number"
- name="ccNumber"
- ng-focus="validation.correctCardNumber = true; validation.errorFields.number = false;"
- ng-blur="validateCardNumber();"
- required
- cc-format-card-number
- )
- span.input-feedback-message {{ simpleCCForm.ccNumber.$error.required ? 'This field is required' : 'Please re-check the card number' }}
- .row
- .col-xs-6
- .form-group.has-feedback(ng-class="validation.correctExpiry == false || validation.errorFields.expiry || inputHasError(simpleCCForm.expiry) ? 'has-error' : ''")
- label #{translate("expiry")}
- input.form-control(
- type="text"
- ng-model="data.mmYY"
- name="expiry"
- placeholder="MM / YY"
- ng-focus="validation.correctExpiry = true; validation.errorFields.expiry = false;"
- ng-blur="updateExpiry(); validateExpiry()"
- required
- cc-format-expiry
- )
- span.input-feedback-message {{ simpleCCForm.expiry.$error.required ? 'This field is required' : 'Please re-check the expiry date' }}
- .col-xs-6
- .form-group.has-feedback(ng-class="validation.correctCvv == false || validation.errorFields.cvv || inputHasError(simpleCCForm.cvv) ? 'has-error' : ''")
- label #{translate("security_code")}
- input.form-control(
- type="text"
- ng-model="data.cvv"
- ng-focus="validation.correctCvv = true; validation.errorFields.cvv = false;"
- ng-blur="validateCvv()"
- name="cvv"
- required
- cc-format-sec-code
- )
- .form-control-feedback
- a.form-helper(
- href
- tabindex="-1"
- tooltip-template="'cvv-tooltip-tpl.html'"
- tooltip-trigger="mouseenter"
- tooltip-append-to-body="true"
- ) ?
- span.input-feedback-message {{ simpleCCForm.cvv.$error.required ? 'This field is required' : 'Please re-check the security code' }}
-
- div
- .form-group(ng-class="validation.errorFields.country || inputHasError(simpleCCForm.country) ? 'has-error' : ''")
- label(for="country") #{translate('country')}
- select#country.form-control(
- data-recurly="country"
- ng-model="data.country"
- name="country"
- ng-change="updateCountry()"
- required
- )
- mixin countries_options()
- span.input-feedback-message {{ simpleCCForm.country.$error.required ? 'This field is required' : '' }}
- if (showVatField)
- .form-group
- label(for="vat-no") #{translate('vat_number')}
- input#vat-no.form-control(
- type="text"
- ng-blur="applyVatNumber()"
- ng-model="data.vat_number"
- )
- if (showCouponField)
- .form-group
- label(for="coupon-code") #{translate('coupon_code')}
- input#coupon-code.form-control(
- type="text"
- ng-blur="applyCoupon()"
- ng-model="data.coupon"
- )
-
- p(ng-if="paymentMethod.value === 'paypal'") #{translate("paypal_upgrade")}
-
- div.price-breakdown(ng-if="price.next.tax !== '0.00'")
- hr.thin
- span Total:
- strong {{price.currency.symbol}}{{price.next.total}}
- span ({{price.currency.symbol}}{{price.next.subtotal}} + {{price.currency.symbol}}{{price.next.tax}} tax)
- span(ng-if="monthlyBilling") #{translate("every")} #{translate("month")}
- span(ng-if="!monthlyBilling") #{translate("every")} #{translate("year")}
- hr.thin
- div.payment-submit
- button.btn.btn-success.btn-block(
- ng-click="submit()"
- ng-disabled="processing || !isFormValid(simpleCCForm);"
- sixpack-convert="payment-left-menu-bottom"
- )
- span(ng-show="processing")
- i.fa.fa-spinner.fa-spin
- |
- | {{ paymentMethod.value === 'credit_card' ? '#{translate("upgrade_cc_btn")}' : '#{translate("upgrade_paypal_btn")}' }}
- .col-md-3.col-md-pull-4
- if showStudentPlan == 'true'
- a.btn-primary.btn.plansPageStudentLink(
- href,
- ng-click="switchToStudent()"
- ) #{translate("half_price_student")}
- .card.card-first
- .paymentPageFeatures
- h3 #{translate("unlimited_projects")}
- p #{translate("create_unlimited_projects")}
-
- h3
- if plan.features.collaborators == -1
- - var collaboratorCount = 'Unlimited'
- else
- - var collaboratorCount = plan.features.collaborators
- | #{translate("collabs_per_proj", {collabcount:collaboratorCount})}
- p #{translate("work_on_single_version")}. #{translate("view_collab_edits")} in real time.
-
- h3 #{translate("full_doc_history")}
- p #{translate("see_what_has_been")}
- span.added #{translate("added")}
- | #{translate("and")}
- span.removed #{translate("removed")}.
- | #{translate("restore_to_any_older_version")}.
-
- h3 #{translate("sync_to_dropbox")}
- p
- | #{translate("acces_work_from_anywhere")}.
- | #{translate("work_offline_and_sync_with_dropbox")}.
-
- hr
-
- p.small.text-center We're confident that you'll love ShareLaTeX, but if not you can cancel anytime. We'll give you your money back, no questions asked, if you let us know within 30 days.
- hr
- span
- a(href="https://www.positivessl.com" style="font-family: arial; font-size: 10px; color: #212121; text-decoration: none;")
- img(src="https://www.positivessl.com/images-new/PositiveSSL_tl_trans.png" alt="SSL Certificate" title="SSL Certificate" border="0")
- div(style="font-family: arial;font-weight:bold;font-size:15px;color:#86BEE0;")
- a(href="https://www.positivessl.com" style="color:#86BEE0; text-decoration: none;")
- script(type="text/javascript").
- ga('send', 'event', 'pageview', 'payment_form', "#{plan_code}")
- script(
- type="text/ng-template"
- id="cvv-tooltip-tpl.html"
- )
- p For #[strong Visa, MasterCard and Discover], the #[strong 3 digits] on the #[strong back] of your card.
- p For #[strong American Express], the #[strong 4 digits] on the #[strong front] of your card.
- mixin countries_options()
- option(value='', disabled, selected) #{translate("country")}
- option(value='-') --------------
- option(value='AF') Afghanistan
- option(value='AL') Albania
- option(value='DZ') Algeria
- option(value='AS') American Samoa
- option(value='AD') Andorra
- option(value='AO') Angola
- option(value='AI') Anguilla
- option(value='AQ') Antarctica
- option(value='AG') Antigua and Barbuda
- option(value='AR') Argentina
- option(value='AM') Armenia
- option(value='AW') Aruba
- option(value='AC') Ascension Island
- option(value='AU') Australia
- option(value='AT') Austria
- option(value='AZ') Azerbaijan
- option(value='BS') Bahamas
- option(value='BH') Bahrain
- option(value='BD') Bangladesh
- option(value='BB') Barbados
- option(value='BE') Belgium
- option(value='BZ') Belize
- option(value='BJ') Benin
- option(value='BM') Bermuda
- option(value='BT') Bhutan
- option(value='BO') Bolivia
- option(value='BA') Bosnia and Herzegovina
- option(value='BW') Botswana
- option(value='BV') Bouvet Island
- option(value='BR') Brazil
- option(value='BQ') British Antarctic Territory
- option(value='IO') British Indian Ocean Territory
- option(value='VG') British Virgin Islands
- option(value='BN') Brunei
- option(value='BG') Bulgaria
- option(value='BF') Burkina Faso
- option(value='BI') Burundi
- option(value='KH') Cambodia
- option(value='CM') Cameroon
- option(value='CA') Canada
- option(value='IC') Canary Islands
- option(value='CT') Canton and Enderbury Islands
- option(value='CV') Cape Verde
- option(value='KY') Cayman Islands
- option(value='CF') Central African Republic
- option(value='EA') Ceuta and Melilla
- option(value='TD') Chad
- option(value='CL') Chile
- option(value='CN') China
- option(value='CX') Christmas Island
- option(value='CP') Clipperton Island
- option(value='CC') Cocos [Keeling] Islands
- option(value='CO') Colombia
- option(value='KM') Comoros
- option(value='CD') Congo [DRC]
- option(value='CK') Cook Islands
- option(value='CR') Costa Rica
- option(value='HR') Croatia
- option(value='CU') Cuba
- option(value='CY') Cyprus
- option(value='CZ') Czech Republic
- option(value='DK') Denmark
- option(value='DG') Diego Garcia
- option(value='DJ') Djibouti
- option(value='DM') Dominica
- option(value='DO') Dominican Republic
- option(value='NQ') Dronning Maud Land
- option(value='TL') East Timor
- option(value='EC') Ecuador
- option(value='EG') Egypt
- option(value='SV') El Salvador
- option(value='EE') Estonia
- option(value='ET') Ethiopia
- option(value='FK') Falkland Islands [Islas Malvinas]
- option(value='FO') Faroe Islands
- option(value='FJ') Fiji
- option(value='FI') Finland
- option(value='FR') France
- option(value='GF') French Guiana
- option(value='PF') French Polynesia
- option(value='TF') French Southern Territories
- option(value='FQ') French Southern and Antarctic Territories
- option(value='GA') Gabon
- option(value='GM') Gambia
- option(value='GE') Georgia
- option(value='DE') Germany
- option(value='GH') Ghana
- option(value='GI') Gibraltar
- option(value='GR') Greece
- option(value='GL') Greenland
- option(value='GD') Grenada
- option(value='GP') Guadeloupe
- option(value='GU') Guam
- option(value='GT') Guatemala
- option(value='GG') Guernsey
- option(value='GW') Guinea-Bissau
- option(value='GY') Guyana
- option(value='HT') Haiti
- option(value='HM') Heard Island and McDonald Islands
- option(value='HN') Honduras
- option(value='HK') Hong Kong
- option(value='HU') Hungary
- option(value='IS') Iceland
- option(value='IN') India
- option(value='ID') Indonesia
- option(value='IE') Ireland
- option(value='IM') Isle of Man
- option(value='IL') Israel
- option(value='IT') Italy
- option(value='JM') Jamaica
- option(value='JP') Japan
- option(value='JE') Jersey
- option(value='JT') Johnston Island
- option(value='JO') Jordan
- option(value='KZ') Kazakhstan
- option(value='KE') Kenya
- option(value='KI') Kiribati
- option(value='KW') Kuwait
- option(value='KG') Kyrgyzstan
- option(value='LA') Laos
- option(value='LV') Latvia
- option(value='LS') Lesotho
- option(value='LY') Libya
- option(value='LI') Liechtenstein
- option(value='LT') Lithuania
- option(value='LU') Luxembourg
- option(value='MO') Macau
- option(value='MK') Macedonia [FYROM]
- option(value='MG') Madagascar
- option(value='MW') Malawi
- option(value='MY') Malaysia
- option(value='MV') Maldives
- option(value='ML') Mali
- option(value='MT') Malta
- option(value='MH') Marshall Islands
- option(value='MQ') Martinique
- option(value='MR') Mauritania
- option(value='MU') Mauritius
- option(value='YT') Mayotte
- option(value='FX') Metropolitan France
- option(value='MX') Mexico
- option(value='FM') Micronesia
- option(value='MI') Midway Islands
- option(value='MD') Moldova
- option(value='MC') Monaco
- option(value='MN') Mongolia
- option(value='ME') Montenegro
- option(value='MS') Montserrat
- option(value='MA') Morocco
- option(value='MZ') Mozambique
- option(value='NA') Namibia
- option(value='NR') Nauru
- option(value='NP') Nepal
- option(value='NL') Netherlands
- option(value='AN') Netherlands Antilles
- option(value='NT') Neutral Zone
- option(value='NC') New Caledonia
- option(value='NZ') New Zealand
- option(value='NI') Nicaragua
- option(value='NE') Niger
- option(value='NG') Nigeria
- option(value='NU') Niue
- option(value='NF') Norfolk Island
- option(value='VD') North Vietnam
- option(value='MP') Northern Mariana Islands
- option(value='NO') Norway
- option(value='OM') Oman
- option(value='QO') Outlying Oceania
- option(value='PC') Pacific Islands Trust Territory
- option(value='PK') Pakistan
- option(value='PW') Palau
- option(value='PS') Palestinian Territories
- option(value='PA') Panama
- option(value='PZ') Panama Canal Zone
- option(value='PY') Paraguay
- option(value='YD') People's Democratic Republic of Yemen
- option(value='PE') Peru
- option(value='PH') Philippines
- option(value='PN') Pitcairn Islands
- option(value='PL') Poland
- option(value='PT') Portugal
- option(value='PR') Puerto Rico
- option(value='QA') Qatar
- option(value='RO') Romania
- option(value='RU') Russia
- option(value='RW') Rwanda
- option(value='RE') Réunion
- option(value='BL') Saint Barthélemy
- option(value='SH') Saint Helena
- option(value='KN') Saint Kitts and Nevis
- option(value='LC') Saint Lucia
- option(value='MF') Saint Martin
- option(value='PM') Saint Pierre and Miquelon
- option(value='VC') Saint Vincent and the Grenadines
- option(value='WS') Samoa
- option(value='SM') San Marino
- option(value='SA') Saudi Arabia
- option(value='SN') Senegal
- option(value='RS') Serbia
- option(value='CS') Serbia and Montenegro
- option(value='SC') Seychelles
- option(value='SL') Sierra Leone
- option(value='SG') Singapore
- option(value='SK') Slovakia
- option(value='SI') Slovenia
- option(value='SB') Solomon Islands
- option(value='ZA') South Africa
- option(value='GS') South Georgia and the South Sandwich Islands
- option(value='KR') South Korea
- option(value='ES') Spain
- option(value='LK') Sri Lanka
- option(value='SR') Suriname
- option(value='SJ') Svalbard and Jan Mayen
- option(value='SZ') Swaziland
- option(value='SE') Sweden
- option(value='CH') Switzerland
- option(value='ST') São Tomé and Príncipe
- option(value='TW') Taiwan
- option(value='TJ') Tajikistan
- option(value='TZ') Tanzania
- option(value='TH') Thailand
- option(value='TG') Togo
- option(value='TK') Tokelau
- option(value='TO') Tonga
- option(value='TT') Trinidad and Tobago
- option(value='TA') Tristan da Cunha
- option(value='TN') Tunisia
- option(value='TR') Turkey
- option(value='TM') Turkmenistan
- option(value='TC') Turks and Caicos Islands
- option(value='TV') Tuvalu
- option(value='UM') U.S. Minor Outlying Islands
- option(value='PU') U.S. Miscellaneous Pacific Islands
- option(value='VI') U.S. Virgin Islands
- option(value='UG') Uganda
- option(value='UA') Ukraine
- option(value='AE') United Arab Emirates
- option(value='GB') United Kingdom
- option(value='US') United States
- option(value='UY') Uruguay
- option(value='UZ') Uzbekistan
- option(value='VU') Vanuatu
- option(value='VA') Vatican City
- option(value='VE') Venezuela
- option(value='VN') Vietnam
- option(value='WK') Wake Island
- option(value='WF') Wallis and Futuna
- option(value='EH') Western Sahara
- option(value='YE') Yemen
- option(value='ZM') Zambia
- option(value='AX') Åland Islands
|