aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/styles/prosilver/template/timezone.js
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/styles/prosilver/template/timezone.js')
-rw-r--r--phpBB/styles/prosilver/template/timezone.js61
1 files changed, 51 insertions, 10 deletions
diff --git a/phpBB/styles/prosilver/template/timezone.js b/phpBB/styles/prosilver/template/timezone.js
index 5d07b1d3ad..deebbf36a8 100644
--- a/phpBB/styles/prosilver/template/timezone.js
+++ b/phpBB/styles/prosilver/template/timezone.js
@@ -1,10 +1,37 @@
-function phpbb_preselect_tz_select()
+function phpbb_switch_tz_date(keep_selection)
{
- var selector = document.getElementsByClassName('tz_select')[0];
- if (selector.value)
+ var timezone_groups = document.getElementById("timezone");
+ for (var i = 0; i < timezone_groups.childElementCount; i++) {
+ if (timezone_groups.children[i].tagName == "OPTGROUP" &&
+ timezone_groups.children[i].label != document.getElementById("tz_date").value)
+ {
+ timezone_groups.children[i].style.display = "none";
+ }
+ else if (timezone_groups.children[i].tagName == "OPTGROUP")
+ {
+ // Display other options
+ timezone_groups.children[i].style.display = "block";
+ }
+ }
+ if (typeof keep_selection !== 'undefined')
{
- return;
+ if (!keep_selection)
+ {
+ timezone_groups.children[0].selected = true;
+ }
}
+}
+
+function phpbb_enable_tz_dates()
+{
+ var tz_select_date = document.getElementById("tz_select_date");
+ tz_select_date.style.display = "block";
+}
+
+function phpbb_preselect_tz_select(force_selector, l_suggestion)
+{
+
+ var selector = document.getElementById('tz_date');
// The offset returned here is in minutes and negated.
// http://www.w3schools.com/jsref/jsref_getTimezoneOffset.asp
var offset = (new Date()).getTimezoneOffset();
@@ -42,12 +69,26 @@ function phpbb_preselect_tz_select()
var option = selector.options[i];
if (option.value.substring(0, prefix_length) == prefix)
{
- // Firefox scrolls the selector only to put the option into view;
- // for negative-offset timezones, this means the first timezone
- // of a particular offset will be the bottom one, and selected,
- // with all other timezones not visible. Not much can be done
- // about that here unfortunately.
- option.selected = true;
+ if (selector.value && selector.value != option.value && !force_selector)
+ {
+ // We do not select the option for the user, but notify him,
+ // that we would suggest a different setting.
+ document.getElementById("tz_select_date_suggest").style.display = "inline";
+ document.getElementById("tz_select_date_suggest").title = l_suggestion.replace("%s", option.innerHTML);
+ document.getElementById("tz_select_date_suggest").innerHTML = l_suggestion.replace("%s", option.innerHTML.substring(0, 9));
+ phpbb_switch_tz_date(true);
+ }
+ else
+ {
+ // Firefox scrolls the selector only to put the option into view;
+ // for negative-offset timezones, this means the first timezone
+ // of a particular offset will be the bottom one, and selected,
+ // with all other timezones not visible. Not much can be done
+ // about that here unfortunately.
+ option.selected = true;
+ phpbb_switch_tz_date(!force_selector);
+ document.getElementById("tz_select_date_suggest").style.display = "none";
+ }
break;
}
}