mirror of
https://git.ari.lt/ari.lt/ari.lt.git
synced 2025-02-05 01:59:25 +01:00
204 lines
5.4 KiB
JavaScript
204 lines
5.4 KiB
JavaScript
|
"use strict";
|
||
|
|
||
|
var content = document.getElementById("content");
|
||
|
var bar = document.getElementById("bar");
|
||
|
var bar_list = document.getElementById("bar-list");
|
||
|
var menus = document.getElementById("menus");
|
||
|
var mobileMenu = document.getElementById("mobile-menu");
|
||
|
var showMobileMenu = true;
|
||
|
|
||
|
function addNewBarElement(innerElement, content, attrs) {
|
||
|
var appendElement = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : bar_list;
|
||
|
var item = document.createElement('li');
|
||
|
var itemContent = document.createElement(innerElement);
|
||
|
item.setAttribute("class", "nav-item");
|
||
|
|
||
|
for (var attr in attrs) {
|
||
|
itemContent.setAttribute(attr, attrs[attr]);
|
||
|
}
|
||
|
|
||
|
itemContent.innerHTML = content;
|
||
|
appendElement.appendChild(document.createTextNode("\n"));
|
||
|
item.appendChild(itemContent);
|
||
|
appendElement.appendChild(item);
|
||
|
}
|
||
|
|
||
|
function detectSmallScreen() {
|
||
|
var isSmall = window.matchMedia ? window.matchMedia("screen and (max-width: 699px)") : screen.width <= 699;
|
||
|
var bar_items = document.getElementsByClassName("doHide");
|
||
|
|
||
|
if (isSmall.matches) {
|
||
|
var _iteratorNormalCompletion = true;
|
||
|
var _didIteratorError = false;
|
||
|
var _iteratorError = undefined;
|
||
|
|
||
|
try {
|
||
|
for (var _iterator = bar_items[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
||
|
var bar_item = _step.value;
|
||
|
bar_item.classList.add("smallHide");
|
||
|
}
|
||
|
} catch (err) {
|
||
|
_didIteratorError = true;
|
||
|
_iteratorError = err;
|
||
|
} finally {
|
||
|
try {
|
||
|
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
|
||
|
_iterator["return"]();
|
||
|
}
|
||
|
} finally {
|
||
|
if (_didIteratorError) {
|
||
|
throw _iteratorError;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (!document.getElementById("mobileMenu")) {
|
||
|
addNewBarElement('a', 'Menu', {
|
||
|
"href": "#!",
|
||
|
"class": "nav-item bigHide noMargin",
|
||
|
"onClick": "openMobileMenu();",
|
||
|
"id": "mobileMenu"
|
||
|
});
|
||
|
}
|
||
|
} else {
|
||
|
var _iteratorNormalCompletion2 = true;
|
||
|
var _didIteratorError2 = false;
|
||
|
var _iteratorError2 = undefined;
|
||
|
|
||
|
try {
|
||
|
for (var _iterator2 = bar_items[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
||
|
var _bar_item = _step2.value;
|
||
|
|
||
|
_bar_item.classList.remove("smallHide", "noMargin");
|
||
|
}
|
||
|
} catch (err) {
|
||
|
_didIteratorError2 = true;
|
||
|
_iteratorError2 = err;
|
||
|
} finally {
|
||
|
try {
|
||
|
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
|
||
|
_iterator2["return"]();
|
||
|
}
|
||
|
} finally {
|
||
|
if (_didIteratorError2) {
|
||
|
throw _iteratorError2;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function mobileCmd(e) {
|
||
|
var textbox = document.getElementById("mobileCmd");
|
||
|
var output = document.getElementById("mobileCmdOutput");
|
||
|
if (!e) e = window.event;
|
||
|
var keyCode = e.code || e.key;
|
||
|
|
||
|
if (keyCode == 'Enter') {
|
||
|
if (textbox.value) {
|
||
|
try {
|
||
|
var out = commands[textbox.value.replace(/^\$ /, '').split(' ')[0]](textbox.value);
|
||
|
} catch (e) {
|
||
|
var out = e;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (out) {
|
||
|
output.innerText = out;
|
||
|
textbox.value = '';
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function addNewMobileMenuItem(innerElement, content, attrs) {
|
||
|
if (!document.getElementById("mobileList")) {
|
||
|
var _list = document.createElement("ul");
|
||
|
|
||
|
_list.setAttribute("id", "mobileList");
|
||
|
|
||
|
mobileMenu.appendChild(_list);
|
||
|
}
|
||
|
|
||
|
var list = document.getElementById("mobileList");
|
||
|
var item = document.createElement("li");
|
||
|
var itemContent = document.createElement(innerElement);
|
||
|
|
||
|
for (var attr in attrs) {
|
||
|
itemContent.setAttribute(attr, attrs[attr]);
|
||
|
}
|
||
|
|
||
|
itemContent.innerHTML = content;
|
||
|
list.appendChild(document.createTextNode("\n"));
|
||
|
item.appendChild(itemContent);
|
||
|
list.appendChild(item);
|
||
|
}
|
||
|
|
||
|
function openMobileMenu() {
|
||
|
if (!showMobileMenu) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var list = document.getElementById("mobileList");
|
||
|
|
||
|
if (!list) {
|
||
|
alert("No menu found :)");
|
||
|
showMobileMenu = false;
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var output = document.getElementById("mobileCmdOutput");
|
||
|
output.innerHTML = '';
|
||
|
|
||
|
if (mobileMenu.classList.contains("hiddenMobile")) {
|
||
|
mobileMenu.classList.remove("hiddenMobile");
|
||
|
} else {
|
||
|
mobileMenu.classList.add("hiddenMobile");
|
||
|
}
|
||
|
|
||
|
var textbox = document.getElementById("mobileCmd");
|
||
|
textbox.focus();
|
||
|
}
|
||
|
|
||
|
addNewBarElement('a', 'Random_things', {
|
||
|
"href": "/page/random",
|
||
|
"class": "nav-item doHide"
|
||
|
});
|
||
|
addNewBarElement('a', 'JavaScript_apps', {
|
||
|
"href": "/page/js",
|
||
|
"class": "nav-item doHide"
|
||
|
});
|
||
|
addNewBarElement('a', 'Source_code', {
|
||
|
"href": "//github.com/TruncatedDinosour/website",
|
||
|
"class": "nav-item doHide"
|
||
|
});
|
||
|
addNewBarElement('a', 'Ari\'s_Web', {
|
||
|
"href": "/",
|
||
|
"class": "nav-logo"
|
||
|
});
|
||
|
addNewMobileMenuItem('b', 'Pages:', {});
|
||
|
addNewMobileMenuItem('p', ' * Random_things', {
|
||
|
"class": "keep-whitespace"
|
||
|
});
|
||
|
addNewMobileMenuItem('p', ' * JavaScript_apps', {
|
||
|
"class": "keep-whitespace"
|
||
|
});
|
||
|
addNewMobileMenuItem('p', ' * Source_code', {
|
||
|
"class": "keep-whitespace"
|
||
|
});
|
||
|
addNewMobileMenuItem('p', ' * Home', {
|
||
|
"class": "keep-whitespace"
|
||
|
});
|
||
|
addNewMobileMenuItem('br', '', {});
|
||
|
addNewMobileMenuItem('b', 'type "help" for help', {});
|
||
|
addNewMobileMenuItem('input', '', {
|
||
|
"type": "text",
|
||
|
"class": "cmd",
|
||
|
"onkeypress": "mobileCmd();",
|
||
|
"id": "mobileCmd"
|
||
|
});
|
||
|
addNewMobileMenuItem('div', '', {
|
||
|
"id": "mobileCmdOutput",
|
||
|
"class": "cmd-output"
|
||
|
});
|
||
|
detectSmallScreen();
|
||
|
setInterval(detectSmallScreen, 100);
|