@cryptotaxi247 / netdata-1 / commits / 99b3b8f1c

the dashboard supports multiple timezones; fixes #2698

Costa Tsaousis (ktsaou) committed Oct 9, 2017 at 00:57 UTC 99b3b8f1c85f532aa076df52b9a83f8c65e1dfc6
2 files changed +581 -5
web/dashboard.js
+136 -5
@@ -287,16 +287,21 @@ var NETDATA = window.NETDATA || {};
287 // rendering the chart that is panned or zoomed).
288 // Used with .current.global_pan_sync_time
289
290 - last_page_resize: Date.now(), // the timestamp of the last resize request
290 + last_page_resize: Date.now(), // the timestamp of the last resize request
291
292 last_page_scroll: 0, // the timestamp the last time the page was scrolled
293
294 + browser_timezone: 'unknown', // timezone detected by javascript
295 + server_timezone: 'unknown', // timezone reported by the server
296 +
297 // the current profile
298 // we may have many...
299 current: {
300 units: 'auto', // can be 'auto' or 'original'
301 temperature: 'celsius', // can be 'celsius' or 'fahrenheit'
302 seconds_as_time: true, // show seconds as DDd:HH:MM:SS ?
303 + timezone: 'default', // the timezone to use, or 'default'
304 + user_set_server_timezone: 'default', // as set by the user on the dashboard
305
306 pixels_per_point: isSlowDevice()?5:1, // the minimum pixels per point for all charts
307 // increase this to speed javascript up
@@ -566,6 +571,8 @@ var NETDATA = window.NETDATA || {};
571 }
572 }
573 }
574 +
575 + NETDATA.dateTime.init(NETDATA.options.current.timezone);
576 };
577
578 // ----------------------------------------------------------------------------------------------------------------
@@ -1166,6 +1173,10 @@ var NETDATA = window.NETDATA || {};
1173 if(data !== null) {
1174 var h = NETDATA.chartRegistry.fixid(host);
1175 self.charts[h] = data.charts;
1176 +
1177 + // update the server timezone in our options
1178 + if(typeof data.timezone === 'string')
1179 + NETDATA.options.server_timezone = data.timezone;
1180 }
1181 else NETDATA.error(406, host + '/api/v1/charts');
1182
@@ -1468,6 +1479,126 @@ var NETDATA = window.NETDATA || {};
1479 };
1480
1481
1482 + // ----------------------------------------------------------------------------------------------------------------
1483 + // date/time conversion
1484 +
1485 + NETDATA.dateTime = {
1486 + using_timezone: false,
1487 +
1488 + // these are the old netdata functions
1489 + // we fallback to these, if the new ones fail
1490 +
1491 + localeDateStringNative: function(d) {
1492 + return d.toLocaleDateString();
1493 + },
1494 +
1495 + localeTimeStringNative: function(d) {
1496 + return d.toLocaleTimeString();
1497 + },
1498 +
1499 + xAxisTimeStringNative: function(d) {
1500 + return NETDATA.zeropad(d.getHours()) + ":"
1501 + + NETDATA.zeropad(d.getMinutes()) + ":"
1502 + + NETDATA.zeropad(d.getSeconds());
1503 + },
1504 +
1505 + // initialize the new date/time conversion
1506 + // functions.
1507 + // if this fails, we fallback to the above
1508 + init: function(timezone) {
1509 +
1510 + // detect browser timezone
1511 + try {
1512 + NETDATA.options.browser_timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
1513 + }
1514 + catch(e) {
1515 + NETDATA.options.browser_timezone = 'cannot-detect-it';
1516 + }
1517 +
1518 + var ret = false;
1519 +
1520 + try {
1521 + var dateOptions ={
1522 + localeMatcher: 'best fit',
1523 + formatMatcher: 'best fit',
1524 + weekday: 'short',
1525 + year: 'numeric',
1526 + month: 'short',
1527 + day: '2-digit'
1528 + };
1529 +
1530 + var timeOptions = {
1531 + localeMatcher: 'best fit',
1532 + hour12: false,
1533 + formatMatcher: 'best fit',
1534 + hour: '2-digit',
1535 + minute: '2-digit',
1536 + second: '2-digit'
1537 + };
1538 +
1539 + var xAxisOptions = {
1540 + localeMatcher: 'best fit',
1541 + hour12: false,
1542 + formatMatcher: 'best fit',
1543 + hour: '2-digit',
1544 + minute: '2-digit',
1545 + second: '2-digit'
1546 + };
1547 +
1548 + if(typeof timezone === 'string' && timezone !== '' && timezone !== 'default') {
1549 + dateOptions.timeZone = timezone;
1550 + timeOptions.timeZone = timezone;
1551 + timeOptions.timeZoneName = 'short';
1552 + xAxisOptions.timeZone = timezone;
1553 + this.using_timezone = true;
1554 + }
1555 + else {
1556 + timezone = 'default';
1557 + this.using_timezone = false;
1558 + }
1559 +
1560 + this.dateFormat = new Intl.DateTimeFormat(navigator.language, dateOptions);
1561 + this.timeFormat = new Intl.DateTimeFormat(navigator.language, timeOptions);
1562 + this.xAxisFormat = new Intl.DateTimeFormat(navigator.language, xAxisOptions);
1563 +
1564 + this.localeDateString = function(d) {
1565 + return this.dateFormat.format(d);
1566 + };
1567 +
1568 + this.localeTimeString = function(d) {
1569 + return this.timeFormat.format(d);
1570 + };
1571 +
1572 + this.xAxisTimeString = function(d) {
1573 + return this.xAxisFormat.format(d);
1574 + };
1575 +
1576 + var d = new Date();
1577 + var t = this.dateFormat.format(d) + ' ' + this.timeFormat.format(d) + ' ' + this.xAxisFormat.format(d);
1578 +
1579 + ret = true;
1580 + }
1581 + catch(e) {
1582 + console.log('Cannot setup Date/Time formatting: ' + e.toString());
1583 +
1584 + timezone = 'default';
1585 + this.localeDateString = this.localeDateStringNative;
1586 + this.localeTimeString = this.localeTimeStringNative;
1587 + this.xAxisTimeString = this.xAxisTimeStringNative;
1588 + this.using_timezone = false;
1589 +
1590 + ret = false;
1591 + }
1592 +
1593 + // save it
1594 + NETDATA.setOption('timezone', timezone);
1595 +
1596 + return ret;
1597 + }
1598 + };
1599 + NETDATA.dateTime.init(NETDATA.options.current.timezone);
1600 +
1601 +
1602 // ----------------------------------------------------------------------------------------------------------------
1603 // units conversion
1604
@@ -3019,8 +3150,8 @@ var NETDATA = window.NETDATA || {};
3150 if(this.legendSetDateLast.ms !== ms) {
3151 var d = new Date(ms);
3152 this.legendSetDateLast.ms = ms;
3022 - this.legendSetDateLast.date = d.toLocaleDateString();
3023 - this.legendSetDateLast.time = d.toLocaleTimeString();
3153 + this.legendSetDateLast.date = NETDATA.dateTime.localeDateString(d);
3154 + this.legendSetDateLast.time = NETDATA.dateTime.localeTimeString(d);
3155 }
3156
3157 if(this.element_legend_childs.title_date !== null)
@@ -5156,7 +5287,7 @@ var NETDATA = window.NETDATA || {};
5287 ticker: Dygraph.dateTicker,
5288 axisLabelFormatter: function (d, gran) {
5289 void(gran);
5159 - return NETDATA.zeropad(d.getHours()) + ":" + NETDATA.zeropad(d.getMinutes()) + ":" + NETDATA.zeropad(d.getSeconds());
5290 + return NETDATA.dateTime.xAxisTimeString(d);
5291 }
5292 },
5293 y: {
@@ -5788,7 +5919,7 @@ var NETDATA = window.NETDATA || {};
5919 type: 'timeseries',
5920 tick: {
5921 format: function(x) {
5791 - return NETDATA.zeropad(x.getHours()) + ":" + NETDATA.zeropad(x.getMinutes()) + ":" + NETDATA.zeropad(x.getSeconds());
5922 + return NETDATA.dateTime.xAxisTimeString(x);
5923 }
5924 }
5925 }
web/index.html
+445
@@ -265,6 +265,11 @@
265 max-height: 80vh;
266 overflow-x: hidden;
267 }
268 + .scrollable-menu-50 {
269 + height: auto;
270 + max-height: 50vh;
271 + overflow-x: hidden;
272 + }
273
274 /* Back to top (hidden on mobile) */
275 .back-to-top,
@@ -2738,6 +2743,17 @@
2743 self.bootstrapToggle(NETDATA.getOption('temperature') === 'celsius' ? 'on' : 'off');
2744 }
2745 };
2746 + var timezone_sync_option = function(option) {
2747 + var self = $('#' + option);
2748 +
2749 + document.getElementById('browser_timezone').innerText = NETDATA.options.browser_timezone;
2750 + document.getElementById('server_timezone').innerText = NETDATA.options.server_timezone;
2751 + document.getElementById('current_timezone').innerText = NETDATA.options.current.timezone;
2752 +
2753 + if(self.prop('checked') === NETDATA.dateTime.using_timezone) {
2754 + self.bootstrapToggle(NETDATA.dateTime.using_timezone ? 'off' : 'on');
2755 + }
2756 + };
2757
2758 sync_option('eliminate_zero_dimensions');
2759 sync_option('destroy_on_hide');
@@ -2754,6 +2770,7 @@
2770 theme_sync_option('netdata_theme_control');
2771 units_sync_option('units_conversion');
2772 temp_sync_option('units_temp');
2773 + timezone_sync_option('local_timezone');
2774
2775 if(NETDATA.getOption('parallel_refresher') === false) {
2776 $('#concurrent_refreshes_row').hide();
@@ -2781,6 +2798,13 @@
2798 $('#smooth_plot').change(function() { NETDATA.setOption('smooth_plot', $(this).prop('checked')); });
2799 $('#pan_and_zoom_data_padding').change(function() { NETDATA.setOption('pan_and_zoom_data_padding', $(this).prop('checked')); });
2800 $('#seconds_as_time').change(function() { NETDATA.setOption('seconds_as_time', $(this).prop('checked')); });
2801 + $('#local_timezone').change(function() {
2802 + if($(this).prop('checked'))
2803 + selected_server_timezone('default', true);
2804 + else
2805 + selected_server_timezone('default', false);
2806 + });
2807 +
2808
2809 $('#units_conversion').change(function() {
2810 NETDATA.setOption('units', $(this).prop('checked')?'auto':'original');
@@ -2951,9 +2975,60 @@
2975 }
2976 };
2977
2978 + var selected_server_timezone = function(timezone, status) {
2979 + // console.log(timezone + " " + ((typeof status === 'undefined')?'undefined':status).toString());
2980 +
2981 + // clear the error
2982 + document.getElementById('timezone_error_message').innerHTML = '';
2983 +
2984 + if (typeof status === 'undefined') {
2985 + // the user selected a timezone from the menu
2986 +
2987 + if (NETDATA.dateTime.init(timezone) === false) {
2988 + NETDATA.dateTime.init();
2989 +
2990 + if(!$('#local_timezone').prop('checked'))
2991 + $('#local_timezone').bootstrapToggle('on');
2992 +
2993 + document.getElementById('timezone_error_message').innerHTML = 'Ooops! That timezone was not accepted by your browser. Please open a github issue to help us fix it.';
2994 + NETDATA.setOption('user_set_server_timezone', NETDATA.options.server_timezone);
2995 + }
2996 + else {
2997 + NETDATA.setOption('user_set_server_timezone', timezone);
2998 +
2999 + if($('#local_timezone').prop('checked'))
3000 + $('#local_timezone').bootstrapToggle('off');
3001 + }
3002 + }
3003 + else {
3004 + if (status === true) {
3005 + NETDATA.dateTime.init();
3006 + }
3007 + else {
3008 + if (NETDATA.options.current.user_set_server_timezone === 'default')
3009 + NETDATA.options.current.user_set_server_timezone = NETDATA.options.server_timezone;
3010 +
3011 + timezone = NETDATA.options.current.user_set_server_timezone;
3012 + if (NETDATA.dateTime.init(timezone) === false) {
3013 + NETDATA.dateTime.init();
3014 +
3015 + if(!$('#local_timezone').prop('checked'))
3016 + $('#local_timezone').bootstrapToggle('on');
3017 +
3018 + document.getElementById('timezone_error_message').innerHTML = 'Sorry. The timezone "' + timezone.toString() + '" is not accepted by your browser. Please select one from the list.';
3019 + NETDATA.setOption('user_set_server_timezone', NETDATA.options.server_timezone);
3020 + }
3021 + }
3022 + }
3023 +
3024 + document.getElementById('current_timezone').innerText = NETDATA.options.current.timezone;
3025 + return false;
3026 + }
3027 +
3028 // our entry point
3029 // var netdataStarted = performance.now();
3030 var netdataCallback = initializeDynamicDashboard;
3031 +
3032 </script>
3033 </head>
3034
@@ -3468,6 +3543,376 @@
3543 </small>
3544 </td>
3545 </tr>
3546 + <tr class="option-row">
3547 + <td class="option-control"><input id="local_timezone" type="checkbox" checked data-toggle="toggle" data-on="Your Time" data-off="Server Time" data-onstyle="success" data-offstyle="danger" data-width="110px"></td>
3548 + <td class="option-info"><strong>Show browser local time or server time?</strong><br/>
3549 + <small>When set to <b>Your Time</b>, the charts will use your browser local time. When set to <b>Server Time</b> the charts will use the server time.
3550 + <br/>
3551 + Set it to <b>Your Time</b> to have a common time-reference, no matter where the server is and which time zone it uses (all your dashboards will report your local time).
3552 + Set it to <b>Server Time</b> when you need to compare netdata charts with server log files.
3553 + <br/>
3554 + Your browser time zone is: <b><span id="browser_timezone">-</span></b>.</br>
3555 + The server reported timezone is: <b><span id="server_timezone">-</span></b> (you can set this in netdata.conf <code>[globa].timezone</code>).<br/>
3556 + The current time zone on the dashboard is: <b><span id="current_timezone">-</span></b>.
3557 + <br/>
3558 + <div class="dropup">
3559 + <button class="btn btn-default dropdown-toggle" type="button" id="dropdownTimeZone" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
3560 + Select Server Time Zone
3561 + <span class="caret"></span>
3562 + </button>
3563 + <ul class="dropdown-menu scrollable-menu-50" aria-labelledby="dropdownTimeZone">
3564 + <li><a href=# onclick="return selected_server_timezone('Africa/Abidjan');">Africa/Abidjan</a></li>
3565 + <li><a href=# onclick="return selected_server_timezone('Africa/Accra');">Africa/Accra</a></li>
3566 + <li><a href=# onclick="return selected_server_timezone('Africa/Algiers');">Africa/Algiers</a></li>
3567 + <li><a href=# onclick="return selected_server_timezone('Africa/Bissau');">Africa/Bissau</a></li>
3568 + <li><a href=# onclick="return selected_server_timezone('Africa/Cairo');">Africa/Cairo</a></li>
3569 + <li><a href=# onclick="return selected_server_timezone('Africa/Casablanca');">Africa/Casablanca</a></li>
3570 + <li><a href=# onclick="return selected_server_timezone('Africa/Ceuta');">Africa/Ceuta</a></li>
3571 + <li><a href=# onclick="return selected_server_timezone('Africa/El_Aaiun');">Africa/El_Aaiun</a></li>
3572 + <li><a href=# onclick="return selected_server_timezone('Africa/Johannesburg');">Africa/Johannesburg</a></li>
3573 + <li><a href=# onclick="return selected_server_timezone('Africa/Khartoum');">Africa/Khartoum</a></li>
3574 + <li><a href=# onclick="return selected_server_timezone('Africa/Lagos');">Africa/Lagos</a></li>
3575 + <li><a href=# onclick="return selected_server_timezone('Africa/Maputo');">Africa/Maputo</a></li>
3576 + <li><a href=# onclick="return selected_server_timezone('Africa/Monrovia');">Africa/Monrovia</a></li>
3577 + <li><a href=# onclick="return selected_server_timezone('Africa/Nairobi');">Africa/Nairobi</a></li>
3578 + <li><a href=# onclick="return selected_server_timezone('Africa/Ndjamena');">Africa/Ndjamena</a></li>
3579 + <li><a href=# onclick="return selected_server_timezone('Africa/Tripoli');">Africa/Tripoli</a></li>
3580 + <li><a href=# onclick="return selected_server_timezone('Africa/Tunis');">Africa/Tunis</a></li>
3581 + <li><a href=# onclick="return selected_server_timezone('Africa/Windhoek');">Africa/Windhoek</a></li>
3582 + <li><a href=# onclick="return selected_server_timezone('America/Adak');">America/Adak</a></li>
3583 + <li><a href=# onclick="return selected_server_timezone('America/Anchorage');">America/Anchorage</a></li>
3584 + <li><a href=# onclick="return selected_server_timezone('America/Araguaina');">America/Araguaina</a></li>
3585 + <li><a href=# onclick="return selected_server_timezone('America/Argentina/Buenos_Aires');">America/Argentina/Buenos_Aires</a></li>
3586 + <li><a href=# onclick="return selected_server_timezone('America/Argentina/Catamarca');">America/Argentina/Catamarca</a></li>
3587 + <li><a href=# onclick="return selected_server_timezone('America/Argentina/Cordoba');">America/Argentina/Cordoba</a></li>
3588 + <li><a href=# onclick="return selected_server_timezone('America/Argentina/Jujuy');">America/Argentina/Jujuy</a></li>
3589 + <li><a href=# onclick="return selected_server_timezone('America/Argentina/La_Rioja');">America/Argentina/La_Rioja</a></li>
3590 + <li><a href=# onclick="return selected_server_timezone('America/Argentina/Mendoza');">America/Argentina/Mendoza</a></li>
3591 + <li><a href=# onclick="return selected_server_timezone('America/Argentina/Rio_Gallegos');">America/Argentina/Rio_Gallegos</a></li>
3592 + <li><a href=# onclick="return selected_server_timezone('America/Argentina/Salta');">America/Argentina/Salta</a></li>
3593 + <li><a href=# onclick="return selected_server_timezone('America/Argentina/San_Juan');">America/Argentina/San_Juan</a></li>
3594 + <li><a href=# onclick="return selected_server_timezone('America/Argentina/San_Luis');">America/Argentina/San_Luis</a></li>
3595 + <li><a href=# onclick="return selected_server_timezone('America/Argentina/Tucuman');">America/Argentina/Tucuman</a></li>
3596 + <li><a href=# onclick="return selected_server_timezone('America/Argentina/Ushuaia');">America/Argentina/Ushuaia</a></li>
3597 + <li><a href=# onclick="return selected_server_timezone('America/Asuncion');">America/Asuncion</a></li>
3598 + <li><a href=# onclick="return selected_server_timezone('America/Atikokan');">America/Atikokan</a></li>
3599 + <li><a href=# onclick="return selected_server_timezone('America/Bahia');">America/Bahia</a></li>
3600 + <li><a href=# onclick="return selected_server_timezone('America/Bahia_Banderas');">America/Bahia_Banderas</a></li>
3601 + <li><a href=# onclick="return selected_server_timezone('America/Barbados');">America/Barbados</a></li>
3602 + <li><a href=# onclick="return selected_server_timezone('America/Belem');">America/Belem</a></li>
3603 + <li><a href=# onclick="return selected_server_timezone('America/Belize');">America/Belize</a></li>
3604 + <li><a href=# onclick="return selected_server_timezone('America/Blanc-Sablon');">America/Blanc-Sablon</a></li>
3605 + <li><a href=# onclick="return selected_server_timezone('America/Boa_Vista');">America/Boa_Vista</a></li>
3606 + <li><a href=# onclick="return selected_server_timezone('America/Bogota');">America/Bogota</a></li>
3607 + <li><a href=# onclick="return selected_server_timezone('America/Boise');">America/Boise</a></li>
3608 + <li><a href=# onclick="return selected_server_timezone('America/Cambridge_Bay');">America/Cambridge_Bay</a></li>
3609 + <li><a href=# onclick="return selected_server_timezone('America/Campo_Grande');">America/Campo_Grande</a></li>
3610 + <li><a href=# onclick="return selected_server_timezone('America/Cancun');">America/Cancun</a></li>
3611 + <li><a href=# onclick="return selected_server_timezone('America/Caracas');">America/Caracas</a></li>
3612 + <li><a href=# onclick="return selected_server_timezone('America/Cayenne');">America/Cayenne</a></li>
3613 + <li><a href=# onclick="return selected_server_timezone('America/Chicago');">America/Chicago</a></li>
3614 + <li><a href=# onclick="return selected_server_timezone('America/Chihuahua');">America/Chihuahua</a></li>
3615 + <li><a href=# onclick="return selected_server_timezone('America/Costa_Rica');">America/Costa_Rica</a></li>
3616 + <li><a href=# onclick="return selected_server_timezone('America/Creston');">America/Creston</a></li>
3617 + <li><a href=# onclick="return selected_server_timezone('America/Cuiaba');">America/Cuiaba</a></li>
3618 + <li><a href=# onclick="return selected_server_timezone('America/Curacao');">America/Curacao</a></li>
3619 + <li><a href=# onclick="return selected_server_timezone('America/Danmarkshavn');">America/Danmarkshavn</a></li>
3620 + <li><a href=# onclick="return selected_server_timezone('America/Dawson');">America/Dawson</a></li>
3621 + <li><a href=# onclick="return selected_server_timezone('America/Dawson_Creek');">America/Dawson_Creek</a></li>
3622 + <li><a href=# onclick="return selected_server_timezone('America/Denver');">America/Denver</a></li>
3623 + <li><a href=# onclick="return selected_server_timezone('America/Detroit');">America/Detroit</a></li>
3624 + <li><a href=# onclick="return selected_server_timezone('America/Edmonton');">America/Edmonton</a></li>
3625 + <li><a href=# onclick="return selected_server_timezone('America/Eirunepe');">America/Eirunepe</a></li>
3626 + <li><a href=# onclick="return selected_server_timezone('America/El_Salvador');">America/El_Salvador</a></li>
3627 + <li><a href=# onclick="return selected_server_timezone('America/Fortaleza');">America/Fortaleza</a></li>
3628 + <li><a href=# onclick="return selected_server_timezone('America/Fort_Nelson');">America/Fort_Nelson</a></li>
3629 + <li><a href=# onclick="return selected_server_timezone('America/Glace_Bay');">America/Glace_Bay</a></li>
3630 + <li><a href=# onclick="return selected_server_timezone('America/Godthab');">America/Godthab</a></li>
3631 + <li><a href=# onclick="return selected_server_timezone('America/Goose_Bay');">America/Goose_Bay</a></li>
3632 + <li><a href=# onclick="return selected_server_timezone('America/Grand_Turk');">America/Grand_Turk</a></li>
3633 + <li><a href=# onclick="return selected_server_timezone('America/Guatemala');">America/Guatemala</a></li>
3634 + <li><a href=# onclick="return selected_server_timezone('America/Guayaquil');">America/Guayaquil</a></li>
3635 + <li><a href=# onclick="return selected_server_timezone('America/Guyana');">America/Guyana</a></li>
3636 + <li><a href=# onclick="return selected_server_timezone('America/Halifax');">America/Halifax</a></li>
3637 + <li><a href=# onclick="return selected_server_timezone('America/Havana');">America/Havana</a></li>
3638 + <li><a href=# onclick="return selected_server_timezone('America/Hermosillo');">America/Hermosillo</a></li>
3639 + <li><a href=# onclick="return selected_server_timezone('America/Indiana/Indianapolis');">America/Indiana/Indianapolis</a></li>
3640 + <li><a href=# onclick="return selected_server_timezone('America/Indiana/Knox');">America/Indiana/Knox</a></li>
3641 + <li><a href=# onclick="return selected_server_timezone('America/Indiana/Marengo');">America/Indiana/Marengo</a></li>
3642 + <li><a href=# onclick="return selected_server_timezone('America/Indiana/Petersburg');">America/Indiana/Petersburg</a></li>
3643 + <li><a href=# onclick="return selected_server_timezone('America/Indiana/Tell_City');">America/Indiana/Tell_City</a></li>
3644 + <li><a href=# onclick="return selected_server_timezone('America/Indiana/Vevay');">America/Indiana/Vevay</a></li>
3645 + <li><a href=# onclick="return selected_server_timezone('America/Indiana/Vincennes');">America/Indiana/Vincennes</a></li>
3646 + <li><a href=# onclick="return selected_server_timezone('America/Indiana/Winamac');">America/Indiana/Winamac</a></li>
3647 + <li><a href=# onclick="return selected_server_timezone('America/Inuvik');">America/Inuvik</a></li>
3648 + <li><a href=# onclick="return selected_server_timezone('America/Iqaluit');">America/Iqaluit</a></li>
3649 + <li><a href=# onclick="return selected_server_timezone('America/Jamaica');">America/Jamaica</a></li>
3650 + <li><a href=# onclick="return selected_server_timezone('America/Juneau');">America/Juneau</a></li>
3651 + <li><a href=# onclick="return selected_server_timezone('America/Kentucky/Louisville');">America/Kentucky/Louisville</a></li>
3652 + <li><a href=# onclick="return selected_server_timezone('America/Kentucky/Monticello');">America/Kentucky/Monticello</a></li>
3653 + <li><a href=# onclick="return selected_server_timezone('America/La_Paz');">America/La_Paz</a></li>
3654 + <li><a href=# onclick="return selected_server_timezone('America/Lima');">America/Lima</a></li>
3655 + <li><a href=# onclick="return selected_server_timezone('America/Los_Angeles');">America/Los_Angeles</a></li>
3656 + <li><a href=# onclick="return selected_server_timezone('America/Maceio');">America/Maceio</a></li>
3657 + <li><a href=# onclick="return selected_server_timezone('America/Managua');">America/Managua</a></li>
3658 + <li><a href=# onclick="return selected_server_timezone('America/Manaus');">America/Manaus</a></li>
3659 + <li><a href=# onclick="return selected_server_timezone('America/Martinique');">America/Martinique</a></li>
3660 + <li><a href=# onclick="return selected_server_timezone('America/Matamoros');">America/Matamoros</a></li>
3661 + <li><a href=# onclick="return selected_server_timezone('America/Mazatlan');">America/Mazatlan</a></li>
3662 + <li><a href=# onclick="return selected_server_timezone('America/Menominee');">America/Menominee</a></li>
3663 + <li><a href=# onclick="return selected_server_timezone('America/Merida');">America/Merida</a></li>
3664 + <li><a href=# onclick="return selected_server_timezone('America/Metlakatla');">America/Metlakatla</a></li>
3665 + <li><a href=# onclick="return selected_server_timezone('America/Mexico_City');">America/Mexico_City</a></li>
3666 + <li><a href=# onclick="return selected_server_timezone('America/Miquelon');">America/Miquelon</a></li>
3667 + <li><a href=# onclick="return selected_server_timezone('America/Moncton');">America/Moncton</a></li>
3668 + <li><a href=# onclick="return selected_server_timezone('America/Monterrey');">America/Monterrey</a></li>
3669 + <li><a href=# onclick="return selected_server_timezone('America/Montevideo');">America/Montevideo</a></li>
3670 + <li><a href=# onclick="return selected_server_timezone('America/Nassau');">America/Nassau</a></li>
3671 + <li><a href=# onclick="return selected_server_timezone('America/New_York');">America/New_York</a></li>
3672 + <li><a href=# onclick="return selected_server_timezone('America/Nipigon');">America/Nipigon</a></li>
3673 + <li><a href=# onclick="return selected_server_timezone('America/Nome');">America/Nome</a></li>
3674 + <li><a href=# onclick="return selected_server_timezone('America/Noronha');">America/Noronha</a></li>
3675 + <li><a href=# onclick="return selected_server_timezone('America/North_Dakota/Beulah');">America/North_Dakota/Beulah</a></li>
3676 + <li><a href=# onclick="return selected_server_timezone('America/North_Dakota/Center');">America/North_Dakota/Center</a></li>
3677 + <li><a href=# onclick="return selected_server_timezone('America/North_Dakota/New_Salem');">America/North_Dakota/New_Salem</a></li>
3678 + <li><a href=# onclick="return selected_server_timezone('America/Ojinaga');">America/Ojinaga</a></li>
3679 + <li><a href=# onclick="return selected_server_timezone('America/Panama');">America/Panama</a></li>
3680 + <li><a href=# onclick="return selected_server_timezone('America/Pangnirtung');">America/Pangnirtung</a></li>
3681 + <li><a href=# onclick="return selected_server_timezone('America/Paramaribo');">America/Paramaribo</a></li>
3682 + <li><a href=# onclick="return selected_server_timezone('America/Phoenix');">America/Phoenix</a></li>
3683 + <li><a href=# onclick="return selected_server_timezone('America/Port-au-Prince');">America/Port-au-Prince</a></li>
3684 + <li><a href=# onclick="return selected_server_timezone('America/Port_of_Spain');">America/Port_of_Spain</a></li>
3685 + <li><a href=# onclick="return selected_server_timezone('America/Porto_Velho');">America/Porto_Velho</a></li>
3686 + <li><a href=# onclick="return selected_server_timezone('America/Puerto_Rico');">America/Puerto_Rico</a></li>
3687 + <li><a href=# onclick="return selected_server_timezone('America/Punta_Arenas');">America/Punta_Arenas</a></li>
3688 + <li><a href=# onclick="return selected_server_timezone('America/Rainy_River');">America/Rainy_River</a></li>
3689 + <li><a href=# onclick="return selected_server_timezone('America/Rankin_Inlet');">America/Rankin_Inlet</a></li>
3690 + <li><a href=# onclick="return selected_server_timezone('America/Recife');">America/Recife</a></li>
3691 + <li><a href=# onclick="return selected_server_timezone('America/Regina');">America/Regina</a></li>
3692 + <li><a href=# onclick="return selected_server_timezone('America/Resolute');">America/Resolute</a></li>
3693 + <li><a href=# onclick="return selected_server_timezone('America/Rio_Branco');">America/Rio_Branco</a></li>
3694 + <li><a href=# onclick="return selected_server_timezone('America/Santarem');">America/Santarem</a></li>
3695 + <li><a href=# onclick="return selected_server_timezone('America/Santiago');">America/Santiago</a></li>
3696 + <li><a href=# onclick="return selected_server_timezone('America/Santo_Domingo');">America/Santo_Domingo</a></li>
3697 + <li><a href=# onclick="return selected_server_timezone('America/Sao_Paulo');">America/Sao_Paulo</a></li>
3698 + <li><a href=# onclick="return selected_server_timezone('America/Scoresbysund');">America/Scoresbysund</a></li>
3699 + <li><a href=# onclick="return selected_server_timezone('America/Sitka');">America/Sitka</a></li>
3700 + <li><a href=# onclick="return selected_server_timezone('America/St_Johns');">America/St_Johns</a></li>
3701 + <li><a href=# onclick="return selected_server_timezone('America/Swift_Current');">America/Swift_Current</a></li>
3702 + <li><a href=# onclick="return selected_server_timezone('America/Tegucigalpa');">America/Tegucigalpa</a></li>
3703 + <li><a href=# onclick="return selected_server_timezone('America/Thule');">America/Thule</a></li>
3704 + <li><a href=# onclick="return selected_server_timezone('America/Thunder_Bay');">America/Thunder_Bay</a></li>
3705 + <li><a href=# onclick="return selected_server_timezone('America/Tijuana');">America/Tijuana</a></li>
3706 + <li><a href=# onclick="return selected_server_timezone('America/Toronto');">America/Toronto</a></li>
3707 + <li><a href=# onclick="return selected_server_timezone('America/Vancouver');">America/Vancouver</a></li>
3708 + <li><a href=# onclick="return selected_server_timezone('America/Whitehorse');">America/Whitehorse</a></li>
3709 + <li><a href=# onclick="return selected_server_timezone('America/Winnipeg');">America/Winnipeg</a></li>
3710 + <li><a href=# onclick="return selected_server_timezone('America/Yakutat');">America/Yakutat</a></li>
3711 + <li><a href=# onclick="return selected_server_timezone('America/Yellowknife');">America/Yellowknife</a></li>
3712 + <li><a href=# onclick="return selected_server_timezone('Antarctica/Casey');">Antarctica/Casey</a></li>
3713 + <li><a href=# onclick="return selected_server_timezone('Antarctica/Davis');">Antarctica/Davis</a></li>
3714 + <li><a href=# onclick="return selected_server_timezone('Antarctica/DumontDUrville');">Antarctica/DumontDUrville</a></li>
3715 + <li><a href=# onclick="return selected_server_timezone('Antarctica/Macquarie');">Antarctica/Macquarie</a></li>
3716 + <li><a href=# onclick="return selected_server_timezone('Antarctica/Mawson');">Antarctica/Mawson</a></li>
3717 + <li><a href=# onclick="return selected_server_timezone('Antarctica/Palmer');">Antarctica/Palmer</a></li>
3718 + <li><a href=# onclick="return selected_server_timezone('Antarctica/Rothera');">Antarctica/Rothera</a></li>
3719 + <li><a href=# onclick="return selected_server_timezone('Antarctica/Syowa');">Antarctica/Syowa</a></li>
3720 + <li><a href=# onclick="return selected_server_timezone('Antarctica/Troll');">Antarctica/Troll</a></li>
3721 + <li><a href=# onclick="return selected_server_timezone('Antarctica/Vostok');">Antarctica/Vostok</a></li>
3722 + <li><a href=# onclick="return selected_server_timezone('Asia/Almaty');">Asia/Almaty</a></li>
3723 + <li><a href=# onclick="return selected_server_timezone('Asia/Amman');">Asia/Amman</a></li>
3724 + <li><a href=# onclick="return selected_server_timezone('Asia/Anadyr');">Asia/Anadyr</a></li>
3725 + <li><a href=# onclick="return selected_server_timezone('Asia/Aqtau');">Asia/Aqtau</a></li>
3726 + <li><a href=# onclick="return selected_server_timezone('Asia/Aqtobe');">Asia/Aqtobe</a></li>
3727 + <li><a href=# onclick="return selected_server_timezone('Asia/Ashgabat');">Asia/Ashgabat</a></li>
3728 + <li><a href=# onclick="return selected_server_timezone('Asia/Atyrau');">Asia/Atyrau</a></li>
3729 + <li><a href=# onclick="return selected_server_timezone('Asia/Baghdad');">Asia/Baghdad</a></li>
3730 + <li><a href=# onclick="return selected_server_timezone('Asia/Baku');">Asia/Baku</a></li>
3731 + <li><a href=# onclick="return selected_server_timezone('Asia/Bangkok');">Asia/Bangkok</a></li>
3732 + <li><a href=# onclick="return selected_server_timezone('Asia/Barnaul');">Asia/Barnaul</a></li>
3733 + <li><a href=# onclick="return selected_server_timezone('Asia/Beirut');">Asia/Beirut</a></li>
3734 + <li><a href=# onclick="return selected_server_timezone('Asia/Bishkek');">Asia/Bishkek</a></li>
3735 + <li><a href=# onclick="return selected_server_timezone('Asia/Brunei');">Asia/Brunei</a></li>
3736 + <li><a href=# onclick="return selected_server_timezone('Asia/Chita');">Asia/Chita</a></li>
3737 + <li><a href=# onclick="return selected_server_timezone('Asia/Choibalsan');">Asia/Choibalsan</a></li>
3738 + <li><a href=# onclick="return selected_server_timezone('Asia/Colombo');">Asia/Colombo</a></li>
3739 + <li><a href=# onclick="return selected_server_timezone('Asia/Damascus');">Asia/Damascus</a></li>
3740 + <li><a href=# onclick="return selected_server_timezone('Asia/Dhaka');">Asia/Dhaka</a></li>
3741 + <li><a href=# onclick="return selected_server_timezone('Asia/Dili');">Asia/Dili</a></li>
3742 + <li><a href=# onclick="return selected_server_timezone('Asia/Dubai');">Asia/Dubai</a></li>
3743 + <li><a href=# onclick="return selected_server_timezone('Asia/Dushanbe');">Asia/Dushanbe</a></li>
3744 + <li><a href=# onclick="return selected_server_timezone('Asia/Famagusta');">Asia/Famagusta</a></li>
3745 + <li><a href=# onclick="return selected_server_timezone('Asia/Gaza');">Asia/Gaza</a></li>
3746 + <li><a href=# onclick="return selected_server_timezone('Asia/Hebron');">Asia/Hebron</a></li>
3747 + <li><a href=# onclick="return selected_server_timezone('Asia/Ho_Chi_Minh');">Asia/Ho_Chi_Minh</a></li>
3748 + <li><a href=# onclick="return selected_server_timezone('Asia/Hong_Kong');">Asia/Hong_Kong</a></li>
3749 + <li><a href=# onclick="return selected_server_timezone('Asia/Hovd');">Asia/Hovd</a></li>
3750 + <li><a href=# onclick="return selected_server_timezone('Asia/Irkutsk');">Asia/Irkutsk</a></li>
3751 + <li><a href=# onclick="return selected_server_timezone('Asia/Jakarta');">Asia/Jakarta</a></li>
3752 + <li><a href=# onclick="return selected_server_timezone('Asia/Jayapura');">Asia/Jayapura</a></li>
3753 + <li><a href=# onclick="return selected_server_timezone('Asia/Jerusalem');">Asia/Jerusalem</a></li>
3754 + <li><a href=# onclick="return selected_server_timezone('Asia/Kabul');">Asia/Kabul</a></li>
3755 + <li><a href=# onclick="return selected_server_timezone('Asia/Kamchatka');">Asia/Kamchatka</a></li>
3756 + <li><a href=# onclick="return selected_server_timezone('Asia/Karachi');">Asia/Karachi</a></li>
3757 + <li><a href=# onclick="return selected_server_timezone('Asia/Kathmandu');">Asia/Kathmandu</a></li>
3758 + <li><a href=# onclick="return selected_server_timezone('Asia/Khandyga');">Asia/Khandyga</a></li>
3759 + <li><a href=# onclick="return selected_server_timezone('Asia/Kolkata');">Asia/Kolkata</a></li>
3760 + <li><a href=# onclick="return selected_server_timezone('Asia/Krasnoyarsk');">Asia/Krasnoyarsk</a></li>
3761 + <li><a href=# onclick="return selected_server_timezone('Asia/Kuala_Lumpur');">Asia/Kuala_Lumpur</a></li>
3762 + <li><a href=# onclick="return selected_server_timezone('Asia/Kuching');">Asia/Kuching</a></li>
3763 + <li><a href=# onclick="return selected_server_timezone('Asia/Macau');">Asia/Macau</a></li>
3764 + <li><a href=# onclick="return selected_server_timezone('Asia/Magadan');">Asia/Magadan</a></li>
3765 + <li><a href=# onclick="return selected_server_timezone('Asia/Makassar');">Asia/Makassar</a></li>
3766 + <li><a href=# onclick="return selected_server_timezone('Asia/Manila');">Asia/Manila</a></li>
3767 + <li><a href=# onclick="return selected_server_timezone('Asia/Nicosia');">Asia/Nicosia</a></li>
3768 + <li><a href=# onclick="return selected_server_timezone('Asia/Novokuznetsk');">Asia/Novokuznetsk</a></li>
3769 + <li><a href=# onclick="return selected_server_timezone('Asia/Novosibirsk');">Asia/Novosibirsk</a></li>
3770 + <li><a href=# onclick="return selected_server_timezone('Asia/Omsk');">Asia/Omsk</a></li>
3771 + <li><a href=# onclick="return selected_server_timezone('Asia/Oral');">Asia/Oral</a></li>
3772 + <li><a href=# onclick="return selected_server_timezone('Asia/Pontianak');">Asia/Pontianak</a></li>
3773 + <li><a href=# onclick="return selected_server_timezone('Asia/Pyongyang');">Asia/Pyongyang</a></li>
3774 + <li><a href=# onclick="return selected_server_timezone('Asia/Qatar');">Asia/Qatar</a></li>
3775 + <li><a href=# onclick="return selected_server_timezone('Asia/Qyzylorda');">Asia/Qyzylorda</a></li>
3776 + <li><a href=# onclick="return selected_server_timezone('Asia/Riyadh');">Asia/Riyadh</a></li>
3777 + <li><a href=# onclick="return selected_server_timezone('Asia/Sakhalin');">Asia/Sakhalin</a></li>
3778 + <li><a href=# onclick="return selected_server_timezone('Asia/Samarkand');">Asia/Samarkand</a></li>
3779 + <li><a href=# onclick="return selected_server_timezone('Asia/Seoul');">Asia/Seoul</a></li>
3780 + <li><a href=# onclick="return selected_server_timezone('Asia/Shanghai');">Asia/Shanghai</a></li>
3781 + <li><a href=# onclick="return selected_server_timezone('Asia/Singapore');">Asia/Singapore</a></li>
3782 + <li><a href=# onclick="return selected_server_timezone('Asia/Srednekolymsk');">Asia/Srednekolymsk</a></li>
3783 + <li><a href=# onclick="return selected_server_timezone('Asia/Taipei');">Asia/Taipei</a></li>
3784 + <li><a href=# onclick="return selected_server_timezone('Asia/Tashkent');">Asia/Tashkent</a></li>
3785 + <li><a href=# onclick="return selected_server_timezone('Asia/Tbilisi');">Asia/Tbilisi</a></li>
3786 + <li><a href=# onclick="return selected_server_timezone('Asia/Tehran');">Asia/Tehran</a></li>
3787 + <li><a href=# onclick="return selected_server_timezone('Asia/Thimphu');">Asia/Thimphu</a></li>
3788 + <li><a href=# onclick="return selected_server_timezone('Asia/Tokyo');">Asia/Tokyo</a></li>
3789 + <li><a href=# onclick="return selected_server_timezone('Asia/Tomsk');">Asia/Tomsk</a></li>
3790 + <li><a href=# onclick="return selected_server_timezone('Asia/Ulaanbaatar');">Asia/Ulaanbaatar</a></li>
3791 + <li><a href=# onclick="return selected_server_timezone('Asia/Urumqi');">Asia/Urumqi</a></li>
3792 + <li><a href=# onclick="return selected_server_timezone('Asia/Ust-Nera');">Asia/Ust-Nera</a></li>
3793 + <li><a href=# onclick="return selected_server_timezone('Asia/Vladivostok');">Asia/Vladivostok</a></li>
3794 + <li><a href=# onclick="return selected_server_timezone('Asia/Yakutsk');">Asia/Yakutsk</a></li>
3795 + <li><a href=# onclick="return selected_server_timezone('Asia/Yangon');">Asia/Yangon</a></li>
3796 + <li><a href=# onclick="return selected_server_timezone('Asia/Yekaterinburg');">Asia/Yekaterinburg</a></li>
3797 + <li><a href=# onclick="return selected_server_timezone('Asia/Yerevan');">Asia/Yerevan</a></li>
3798 + <li><a href=# onclick="return selected_server_timezone('Atlantic/Azores');">Atlantic/Azores</a></li>
3799 + <li><a href=# onclick="return selected_server_timezone('Atlantic/Bermuda');">Atlantic/Bermuda</a></li>
3800 + <li><a href=# onclick="return selected_server_timezone('Atlantic/Canary');">Atlantic/Canary</a></li>
3801 + <li><a href=# onclick="return selected_server_timezone('Atlantic/Cape_Verde');">Atlantic/Cape_Verde</a></li>
3802 + <li><a href=# onclick="return selected_server_timezone('Atlantic/Faroe');">Atlantic/Faroe</a></li>
3803 + <li><a href=# onclick="return selected_server_timezone('Atlantic/Madeira');">Atlantic/Madeira</a></li>
3804 + <li><a href=# onclick="return selected_server_timezone('Atlantic/Reykjavik');">Atlantic/Reykjavik</a></li>
3805 + <li><a href=# onclick="return selected_server_timezone('Atlantic/South_Georgia');">Atlantic/South_Georgia</a></li>
3806 + <li><a href=# onclick="return selected_server_timezone('Atlantic/Stanley');">Atlantic/Stanley</a></li>
3807 + <li><a href=# onclick="return selected_server_timezone('Australia/Adelaide');">Australia/Adelaide</a></li>
3808 + <li><a href=# onclick="return selected_server_timezone('Australia/Brisbane');">Australia/Brisbane</a></li>
3809 + <li><a href=# onclick="return selected_server_timezone('Australia/Broken_Hill');">Australia/Broken_Hill</a></li>
3810 + <li><a href=# onclick="return selected_server_timezone('Australia/Currie');">Australia/Currie</a></li>
3811 + <li><a href=# onclick="return selected_server_timezone('Australia/Darwin');">Australia/Darwin</a></li>
3812 + <li><a href=# onclick="return selected_server_timezone('Australia/Eucla');">Australia/Eucla</a></li>
3813 + <li><a href=# onclick="return selected_server_timezone('Australia/Hobart');">Australia/Hobart</a></li>
3814 + <li><a href=# onclick="return selected_server_timezone('Australia/Lindeman');">Australia/Lindeman</a></li>
3815 + <li><a href=# onclick="return selected_server_timezone('Australia/Lord_Howe');">Australia/Lord_Howe</a></li>
3816 + <li><a href=# onclick="return selected_server_timezone('Australia/Melbourne');">Australia/Melbourne</a></li>
3817 + <li><a href=# onclick="return selected_server_timezone('Australia/Perth');">Australia/Perth</a></li>
3818 + <li><a href=# onclick="return selected_server_timezone('Australia/Sydney');">Australia/Sydney</a></li>
3819 + <li><a href=# onclick="return selected_server_timezone('Europe/Amsterdam');">Europe/Amsterdam</a></li>
3820 + <li><a href=# onclick="return selected_server_timezone('Europe/Andorra');">Europe/Andorra</a></li>
3821 + <li><a href=# onclick="return selected_server_timezone('Europe/Astrakhan');">Europe/Astrakhan</a></li>
3822 + <li><a href=# onclick="return selected_server_timezone('Europe/Athens');">Europe/Athens</a></li>
3823 + <li><a href=# onclick="return selected_server_timezone('Europe/Belgrade');">Europe/Belgrade</a></li>
3824 + <li><a href=# onclick="return selected_server_timezone('Europe/Berlin');">Europe/Berlin</a></li>
3825 + <li><a href=# onclick="return selected_server_timezone('Europe/Brussels');">Europe/Brussels</a></li>
3826 + <li><a href=# onclick="return selected_server_timezone('Europe/Bucharest');">Europe/Bucharest</a></li>
3827 + <li><a href=# onclick="return selected_server_timezone('Europe/Budapest');">Europe/Budapest</a></li>
3828 + <li><a href=# onclick="return selected_server_timezone('Europe/Chisinau');">Europe/Chisinau</a></li>
3829 + <li><a href=# onclick="return selected_server_timezone('Europe/Copenhagen');">Europe/Copenhagen</a></li>
3830 + <li><a href=# onclick="return selected_server_timezone('Europe/Dublin');">Europe/Dublin</a></li>
3831 + <li><a href=# onclick="return selected_server_timezone('Europe/Gibraltar');">Europe/Gibraltar</a></li>
3832 + <li><a href=# onclick="return selected_server_timezone('Europe/Helsinki');">Europe/Helsinki</a></li>
3833 + <li><a href=# onclick="return selected_server_timezone('Europe/Istanbul');">Europe/Istanbul</a></li>
3834 + <li><a href=# onclick="return selected_server_timezone('Europe/Kaliningrad');">Europe/Kaliningrad</a></li>
3835 + <li><a href=# onclick="return selected_server_timezone('Europe/Kiev');">Europe/Kiev</a></li>
3836 + <li><a href=# onclick="return selected_server_timezone('Europe/Kirov');">Europe/Kirov</a></li>
3837 + <li><a href=# onclick="return selected_server_timezone('Europe/Lisbon');">Europe/Lisbon</a></li>
3838 + <li><a href=# onclick="return selected_server_timezone('Europe/London');">Europe/London</a></li>
3839 + <li><a href=# onclick="return selected_server_timezone('Europe/Luxembourg');">Europe/Luxembourg</a></li>
3840 + <li><a href=# onclick="return selected_server_timezone('Europe/Madrid');">Europe/Madrid</a></li>
3841 + <li><a href=# onclick="return selected_server_timezone('Europe/Malta');">Europe/Malta</a></li>
3842 + <li><a href=# onclick="return selected_server_timezone('Europe/Minsk');">Europe/Minsk</a></li>
3843 + <li><a href=# onclick="return selected_server_timezone('Europe/Monaco');">Europe/Monaco</a></li>
3844 + <li><a href=# onclick="return selected_server_timezone('Europe/Moscow');">Europe/Moscow</a></li>
3845 + <li><a href=# onclick="return selected_server_timezone('Europe/Oslo');">Europe/Oslo</a></li>
3846 + <li><a href=# onclick="return selected_server_timezone('Europe/Paris');">Europe/Paris</a></li>
3847 + <li><a href=# onclick="return selected_server_timezone('Europe/Prague');">Europe/Prague</a></li>
3848 + <li><a href=# onclick="return selected_server_timezone('Europe/Riga');">Europe/Riga</a></li>
3849 + <li><a href=# onclick="return selected_server_timezone('Europe/Rome');">Europe/Rome</a></li>
3850 + <li><a href=# onclick="return selected_server_timezone('Europe/Samara');">Europe/Samara</a></li>
3851 + <li><a href=# onclick="return selected_server_timezone('Europe/Saratov');">Europe/Saratov</a></li>
3852 + <li><a href=# onclick="return selected_server_timezone('Europe/Simferopol');">Europe/Simferopol</a></li>
3853 + <li><a href=# onclick="return selected_server_timezone('Europe/Sofia');">Europe/Sofia</a></li>
3854 + <li><a href=# onclick="return selected_server_timezone('Europe/Stockholm');">Europe/Stockholm</a></li>
3855 + <li><a href=# onclick="return selected_server_timezone('Europe/Tallinn');">Europe/Tallinn</a></li>
3856 + <li><a href=# onclick="return selected_server_timezone('Europe/Tirane');">Europe/Tirane</a></li>
3857 + <li><a href=# onclick="return selected_server_timezone('Europe/Ulyanovsk');">Europe/Ulyanovsk</a></li>
3858 + <li><a href=# onclick="return selected_server_timezone('Europe/Uzhgorod');">Europe/Uzhgorod</a></li>
3859 + <li><a href=# onclick="return selected_server_timezone('Europe/Vienna');">Europe/Vienna</a></li>
3860 + <li><a href=# onclick="return selected_server_timezone('Europe/Vilnius');">Europe/Vilnius</a></li>
3861 + <li><a href=# onclick="return selected_server_timezone('Europe/Volgograd');">Europe/Volgograd</a></li>
3862 + <li><a href=# onclick="return selected_server_timezone('Europe/Warsaw');">Europe/Warsaw</a></li>
3863 + <li><a href=# onclick="return selected_server_timezone('Europe/Zaporozhye');">Europe/Zaporozhye</a></li>
3864 + <li><a href=# onclick="return selected_server_timezone('Europe/Zurich');">Europe/Zurich</a></li>
3865 + <li><a href=# onclick="return selected_server_timezone('Indian/Chagos');">Indian/Chagos</a></li>
3866 + <li><a href=# onclick="return selected_server_timezone('Indian/Christmas');">Indian/Christmas</a></li>
3867 + <li><a href=# onclick="return selected_server_timezone('Indian/Cocos');">Indian/Cocos</a></li>
3868 + <li><a href=# onclick="return selected_server_timezone('Indian/Kerguelen');">Indian/Kerguelen</a></li>
3869 + <li><a href=# onclick="return selected_server_timezone('Indian/Mahe');">Indian/Mahe</a></li>
3870 + <li><a href=# onclick="return selected_server_timezone('Indian/Maldives');">Indian/Maldives</a></li>
3871 + <li><a href=# onclick="return selected_server_timezone('Indian/Mauritius');">Indian/Mauritius</a></li>
3872 + <li><a href=# onclick="return selected_server_timezone('Indian/Reunion');">Indian/Reunion</a></li>
3873 + <li><a href=# onclick="return selected_server_timezone('Pacific/Apia');">Pacific/Apia</a></li>
3874 + <li><a href=# onclick="return selected_server_timezone('Pacific/Auckland');">Pacific/Auckland</a></li>
3875 + <li><a href=# onclick="return selected_server_timezone('Pacific/Bougainville');">Pacific/Bougainville</a></li>
3876 + <li><a href=# onclick="return selected_server_timezone('Pacific/Chatham');">Pacific/Chatham</a></li>
3877 + <li><a href=# onclick="return selected_server_timezone('Pacific/Chuuk');">Pacific/Chuuk</a></li>
3878 + <li><a href=# onclick="return selected_server_timezone('Pacific/Easter');">Pacific/Easter</a></li>
3879 + <li><a href=# onclick="return selected_server_timezone('Pacific/Efate');">Pacific/Efate</a></li>
3880 + <li><a href=# onclick="return selected_server_timezone('Pacific/Enderbury');">Pacific/Enderbury</a></li>
3881 + <li><a href=# onclick="return selected_server_timezone('Pacific/Fakaofo');">Pacific/Fakaofo</a></li>
3882 + <li><a href=# onclick="return selected_server_timezone('Pacific/Fiji');">Pacific/Fiji</a></li>
3883 + <li><a href=# onclick="return selected_server_timezone('Pacific/Funafuti');">Pacific/Funafuti</a></li>
3884 + <li><a href=# onclick="return selected_server_timezone('Pacific/Galapagos');">Pacific/Galapagos</a></li>
3885 + <li><a href=# onclick="return selected_server_timezone('Pacific/Gambier');">Pacific/Gambier</a></li>
3886 + <li><a href=# onclick="return selected_server_timezone('Pacific/Guadalcanal');">Pacific/Guadalcanal</a></li>
3887 + <li><a href=# onclick="return selected_server_timezone('Pacific/Guam');">Pacific/Guam</a></li>
3888 + <li><a href=# onclick="return selected_server_timezone('Pacific/Honolulu');">Pacific/Honolulu</a></li>
3889 + <li><a href=# onclick="return selected_server_timezone('Pacific/Kiritimati');">Pacific/Kiritimati</a></li>
3890 + <li><a href=# onclick="return selected_server_timezone('Pacific/Kosrae');">Pacific/Kosrae</a></li>
3891 + <li><a href=# onclick="return selected_server_timezone('Pacific/Kwajalein');">Pacific/Kwajalein</a></li>
3892 + <li><a href=# onclick="return selected_server_timezone('Pacific/Majuro');">Pacific/Majuro</a></li>
3893 + <li><a href=# onclick="return selected_server_timezone('Pacific/Marquesas');">Pacific/Marquesas</a></li>
3894 + <li><a href=# onclick="return selected_server_timezone('Pacific/Nauru');">Pacific/Nauru</a></li>
3895 + <li><a href=# onclick="return selected_server_timezone('Pacific/Niue');">Pacific/Niue</a></li>
3896 + <li><a href=# onclick="return selected_server_timezone('Pacific/Norfolk');">Pacific/Norfolk</a></li>
3897 + <li><a href=# onclick="return selected_server_timezone('Pacific/Noumea');">Pacific/Noumea</a></li>
3898 + <li><a href=# onclick="return selected_server_timezone('Pacific/Pago_Pago');">Pacific/Pago_Pago</a></li>
3899 + <li><a href=# onclick="return selected_server_timezone('Pacific/Palau');">Pacific/Palau</a></li>
3900 + <li><a href=# onclick="return selected_server_timezone('Pacific/Pitcairn');">Pacific/Pitcairn</a></li>
3901 + <li><a href=# onclick="return selected_server_timezone('Pacific/Pohnpei');">Pacific/Pohnpei</a></li>
3902 + <li><a href=# onclick="return selected_server_timezone('Pacific/Port_Moresby');">Pacific/Port_Moresby</a></li>
3903 + <li><a href=# onclick="return selected_server_timezone('Pacific/Rarotonga');">Pacific/Rarotonga</a></li>
3904 + <li><a href=# onclick="return selected_server_timezone('Pacific/Tahiti');">Pacific/Tahiti</a></li>
3905 + <li><a href=# onclick="return selected_server_timezone('Pacific/Tarawa');">Pacific/Tarawa</a></li>
3906 + <li><a href=# onclick="return selected_server_timezone('Pacific/Tongatapu');">Pacific/Tongatapu</a></li>
3907 + <li><a href=# onclick="return selected_server_timezone('Pacific/Wake');">Pacific/Wake</a></li>
3908 + <li><a href=# onclick="return selected_server_timezone('Pacific/Wallis');">Pacific/Wallis</a></li>
3909 + </ul>
3910 + </div>
3911 + <b><span id="timezone_error_message"></span></b>
3912 +
3913 + </small>
3914 + </td>
3915 + </tr>
3916 </table>
3917 </div>
3918 </form>