+ /**
+ * New version dismiss.
+ * Hide the message for one week using localStorage.
+ */
+ var newVersionDismiss = document.getElementById('new-version-dismiss');
+ var newVersionMessage = document.querySelector('.new-version-message');
+ if (newVersionMessage != null
+ && localStorage.getItem('newVersionDismiss') != null
+ && parseInt(localStorage.getItem('newVersionDismiss')) + 7*24*60*60*1000 > (new Date()).getTime()
+ ) {
+ newVersionMessage.style.display = 'none';
+ }
+ if (newVersionDismiss != null) {
+ newVersionDismiss.addEventListener('click', function () {
+ localStorage.setItem('newVersionDismiss', (new Date()).getTime());
+ });
+ }
+
+ var hiddenReturnurl = document.getElementsByName('returnurl');
+ if (hiddenReturnurl != null) {
+ hiddenReturnurl.value = window.location.href;
+ }
+
+ /**
+ * Autofocus text fields
+ */
+ var autofocusElements = document.querySelector('.autofocus');
+ if (autofocusElements != null) {
+ autofocusElements.focus();
+ }
+
+ /**
+ * Handle sub menus/forms
+ */
+ var openers = document.getElementsByClassName('subheader-opener');
+ if (openers != null) {
+ [].forEach.call(openers, function(opener) {
+ opener.addEventListener('click', function(event) {
+ event.preventDefault();
+
+ var id = opener.getAttribute('data-open-id');
+ var sub = document.getElementById(id);
+
+ if (sub != null) {
+ [].forEach.call(document.getElementsByClassName('subheader-form'), function (element) {
+ if (element != sub) {
+ removeClass(element, 'open')
+ }
+ });
+
+ sub.classList.toggle('open');
+ }
+ });
+ });
+ }
+
+ function removeClass(element, classname) {
+ element.className = element.className.replace(new RegExp('(?:^|\\s)'+ classname + '(?:\\s|$)'), ' ');
+ }
+
+ /**
+ * Remove CSS target padding (for fixed bar)
+ */
+ if (location.hash != '') {
+ var anchor = document.querySelector(location.hash);
+ if (anchor != null) {
+ var padsize = anchor.clientHeight;
+ console.log(document.querySelector(location.hash).clientHeight);
+ this.window.scroll(0, this.window.scrollY - padsize);
+ anchor.style.paddingTop = 0;
+ }
+ }
+};