fintic-tracker/static/app.js
2023-01-09 18:34:29 +08:00

2317 lines
71 KiB
JavaScript
Executable File

var availableFeatures = document.querySelectorAll("#available-features li");
var availableFeatures2 = document.querySelectorAll("#available-features-2 li");
var displayFormat = document.querySelector("#display-format");
var displayFormat2 = document.querySelector("#display-format-2");
var featureToDisplay = document.querySelector("#feature-to-display");
var featureToDisplay2 = document.querySelector("#feature-to-display-2");
var displayToFeature = document.querySelector("#display-to-feature");
var displayToFeature2 = document.querySelector("#display-to-feature-2");
var displayToFormat = document.querySelectorAll("#display-format li");
var displayToFormat2 = document.querySelectorAll("#display-format-2 li");
var availableToDisplay = document.querySelector("#available-features");
var availableToDisplay2 = document.querySelector("#available-features-2");
var displayincreaseBtn = document.getElementById("display-increase-btn");
var displayincreaseBtn2 = document.getElementById("display-increase-btn-2");
var displayDecreaseBtn = document.getElementById("display-decrease-btn");
var displayDecreaseBtn2 = document.getElementById("display-decrease-btn-2");
var secondRow = document.getElementById("second-row");
// features lists
var stocksFeatures = document.querySelectorAll("#stocks-features li");
var cryptoFeatures = document.querySelectorAll("#crypto-features li");
var forexFeatures = document.querySelectorAll("#forex-features li");
var currentWeatherFeatures = document.querySelectorAll(
"#current-weather-features li"
);
var dailyForecastFeatures = document.querySelectorAll(
"#daily-forecast-features li"
);
var newsFeatures = document.querySelectorAll("#news-features li");
var upcomingGamesFeatures = document.querySelectorAll(
"#upcoming-games-features li"
);
var pastGamesFeatures = document.querySelectorAll("#past-games-features li");
var liveGamesFeatures = document.querySelectorAll("#live-games-features li");
var teamStatsFeatures = document.querySelectorAll("#team-stats-features li");
var imagesFeatures = document.querySelectorAll("#images-features li");
var gifsFeatures = document.querySelectorAll("#gifs-features li");
var messagesFeatures = document.querySelectorAll("#messages-features li");
var commoditiesFeatures = document.querySelectorAll("#commodities-features li");
var indicesFeatures = document.querySelectorAll("#indices-features li");
var moviesFeatures = document.querySelectorAll("#movies-features li");
var allFeaturesList = [
stocksFeatures,
cryptoFeatures,
forexFeatures,
currentWeatherFeatures,
dailyForecastFeatures,
newsFeatures,
upcomingGamesFeatures,
pastGamesFeatures,
liveGamesFeatures,
teamStatsFeatures,
imagesFeatures,
gifsFeatures,
messagesFeatures,
commoditiesFeatures,
indicesFeatures,
moviesFeatures,
];
// features remove buttons
var stocksRemoveBtn = document.getElementById("stocks-remove-btn");
var cryptoRemoveBtn = document.getElementById("crypto-remove-btn");
var forexRemoveBtn = document.getElementById("forex-remove-btn");
var currentWeatherRemoveBtn = document.getElementById(
"current-weather-remove-btn"
);
var dailyForecastRemoveBtn = document.getElementById(
"daily-forecast-remove-btn"
);
var newsRemoveBtn = document.getElementById("news-remove-btn");
var upcomingGamesRemoveBtn = document.getElementById(
"upcoming-games-remove-btn"
);
var pastGamesRemoveBtn = document.getElementById("past-games-remove-btn");
var liveGamesRemoveBtn = document.getElementById("live-games-remove-btn");
var teamStatsRemoveBtn = document.getElementById("team-stats-remove-btn");
var imagesRemoveBtn = document.getElementById("images-remove-btn");
var gifsRemoveBtn = document.getElementById("gifs-remove-btn");
var messagesRemoveBtn = document.getElementById("messages-remove-btn");
var commoditiesRemoveBtn = document.getElementById("commodities-remove-btn");
var indicesRemoveBtn = document.getElementById("indices-remove-btn");
var moviesRemoveBtn = document.getElementById("movies-remove-btn");
var allFeaturesRemoveBtns = [
stocksRemoveBtn,
cryptoRemoveBtn,
forexRemoveBtn,
currentWeatherRemoveBtn,
dailyForecastRemoveBtn,
newsRemoveBtn,
upcomingGamesRemoveBtn,
pastGamesRemoveBtn,
liveGamesRemoveBtn,
teamStatsRemoveBtn,
imagesRemoveBtn,
gifsRemoveBtn,
messagesRemoveBtn,
commoditiesRemoveBtn,
indicesRemoveBtn,
moviesRemoveBtn,
];
// features increase buttons
var stocksincreaseBtn = document.getElementById("stocks-increase-btn");
var cryptoincreaseBtn = document.getElementById("crypto-increase-btn");
var forexincreaseBtn = document.getElementById("forex-increase-btn");
var currentWeatherincreaseBtn = document.getElementById(
"current-weather-increase-btn"
);
var dailyForecastincreaseBtn = document.getElementById(
"daily-forecast-increase-btn"
);
var newsincreaseBtn = document.getElementById("news-increase-btn");
var upcomingGamesincreaseBtn = document.getElementById(
"upcoming-games-increase-btn"
);
var pastGamesincreaseBtn = document.getElementById("past-games-increase-btn");
var liveGamesincreaseBtn = document.getElementById("live-games-increase-btn");
var teamStatsincreaseBtn = document.getElementById("team-stats-increase-btn");
var imagesincreaseBtn = document.getElementById("images-increase-btn");
var gifsincreaseBtn = document.getElementById("gifs-increase-btn");
var messagesincreaseBtn = document.getElementById("messages-increase-btn");
var commoditiesincreaseBtn = document.getElementById("commodities-increase-btn");
var indicesincreaseBtn = document.getElementById("indices-increase-btn");
var moviesincreaseBtn = document.getElementById("movies-increase-btn");
var allFeaturesIncreaseBtns = [
stocksincreaseBtn,
cryptoincreaseBtn,
forexincreaseBtn,
currentWeatherincreaseBtn,
dailyForecastincreaseBtn,
newsincreaseBtn,
upcomingGamesincreaseBtn,
pastGamesincreaseBtn,
liveGamesincreaseBtn,
teamStatsincreaseBtn,
imagesincreaseBtn,
gifsincreaseBtn,
messagesincreaseBtn,
commoditiesincreaseBtn,
indicesincreaseBtn,
moviesincreaseBtn,
];
// features decrease buttons
var stocksDecreaseBtn = document.getElementById("stocks-decrease-btn");
var cryptoDecreaseBtn = document.getElementById("crypto-decrease-btn");
var forexDecreaseBtn = document.getElementById("forex-decrease-btn");
var currentWeatherDecreaseBtn = document.getElementById(
"current-weather-decrease-btn"
);
var dailyForecastDecreaseBtn = document.getElementById(
"daily-forecast-decrease-btn"
);
var newsDecreaseBtn = document.getElementById("news-decrease-btn");
var upcomingGamesDecreaseBtn = document.getElementById(
"upcoming-games-decrease-btn"
);
var pastGamesDecreaseBtn = document.getElementById("past-games-decrease-btn");
var liveGamesDecreaseBtn = document.getElementById("live-games-decrease-btn");
var teamStatsDecreaseBtn = document.getElementById("team-stats-decrease-btn");
var imagesDecreaseBtn = document.getElementById("images-decrease-btn");
var gifsDecreaseBtn = document.getElementById("gifs-decrease-btn");
var messagesDecreaseBtn = document.getElementById("messages-decrease-btn");
var commoditiesDecreaseBtn = document.getElementById("commodities-decrease-btn");
var indicesDecreaseBtn = document.getElementById("indices-decrease-btn");
var moviesDecreaseBtn = document.getElementById("movies-decrease-btn");
var allFeaturesDecreaseBtns = [
stocksDecreaseBtn,
cryptoDecreaseBtn,
forexDecreaseBtn,
currentWeatherDecreaseBtn,
dailyForecastDecreaseBtn,
newsDecreaseBtn,
upcomingGamesDecreaseBtn,
pastGamesDecreaseBtn,
liveGamesDecreaseBtn,
teamStatsDecreaseBtn,
imagesDecreaseBtn,
gifsDecreaseBtn,
messagesDecreaseBtn,
commoditiesDecreaseBtn,
indicesDecreaseBtn,
moviesDecreaseBtn,
];
const changeVarValue = () => {
stocksFeatures = document.querySelectorAll("#stocks-features li");
cryptoFeatures = document.querySelectorAll("#crypto-features li");
forexFeatures = document.querySelectorAll("#forex-features li");
currentWeatherFeatures = document.querySelectorAll(
"#current-weather-features li"
);
dailyForecastFeatures = document.querySelectorAll(
"#daily-forecast-features li"
);
newsFeatures = document.querySelectorAll("#news-features li");
upcomingGamesFeatures = document.querySelectorAll(
"#upcoming-games-features li"
);
pastGamesFeatures = document.querySelectorAll("#past-games-features li");
liveGamesFeatures = document.querySelectorAll("#live-games-features li");
teamStatsFeatures = document.querySelectorAll("#team-stats-features li");
imagesFeatures = document.querySelectorAll("#images-features li");
gifsFeatures = document.querySelectorAll("#gifs-features li");
messagesFeatures = document.querySelectorAll("#messages-features li");
commoditiesFeatures = document.querySelectorAll("#commodities-features li");
indicesFeatures = document.querySelectorAll("#indices-features li");
moviesFeatures = document.querySelectorAll("#movies-features li");
allFeaturesList = [
stocksFeatures,
cryptoFeatures,
forexFeatures,
currentWeatherFeatures,
dailyForecastFeatures,
newsFeatures,
upcomingGamesFeatures,
pastGamesFeatures,
liveGamesFeatures,
teamStatsFeatures,
imagesFeatures,
gifsFeatures,
messagesFeatures,
commoditiesFeatures,
indicesFeatures,
moviesFeatures,
];
};
const addEventOnList = () => {
// for available feature
for (let i = 0; i < availableFeatures.length; i++) {
const availableFeature = availableFeatures[i];
availableFeature.addEventListener("click", () => {
for (let i = 0; i < availableFeatures.length; i++) {
availableFeatures[i].setAttribute("class", "");
}
if (availableFeature.getAttribute("class") == "active") {
availableFeature.setAttribute("class", "");
} else {
availableFeature.setAttribute("class", "active");
}
});
}
// for available feature 2
for (let i = 0; i < availableFeatures2.length; i++) {
const availableFeature = availableFeatures2[i];
availableFeature.addEventListener("click", () => {
for (let i = 0; i < availableFeatures2.length; i++) {
availableFeatures2[i].setAttribute("class", "");
}
if (availableFeature.getAttribute("class") == "active") {
availableFeature.setAttribute("class", "");
} else {
availableFeature.setAttribute("class", "active");
}
});
}
// for display format
for (let i = 0; i < displayToFormat.length; i++) {
const display_format = displayToFormat[i];
display_format.addEventListener("click", () => {
for (let i = 0; i < displayToFormat.length; i++) {
displayToFormat[i].setAttribute("class", "");
}
if (display_format.getAttribute("class") == "active") {
display_format.setAttribute("class", "");
} else {
display_format.setAttribute("class", "active");
}
});
}
// for display format 2
for (let i = 0; i < displayToFormat2.length; i++) {
const display_format = displayToFormat2[i];
display_format.addEventListener("click", () => {
for (let i = 0; i < displayToFormat2.length; i++) {
displayToFormat2[i].setAttribute("class", "");
}
if (display_format.getAttribute("class") == "active") {
display_format.setAttribute("class", "");
} else {
display_format.setAttribute("class", "active");
}
});
}
};
const addEventonBtns = () => {
featureToDisplay.addEventListener("click", () => {
for (let i = 0; i < availableFeatures.length; i++) {
const availableFeature = availableFeatures[i];
if (availableFeature.getAttribute("class") == "active") {
availableFeature.remove();
availableFeature.setAttribute("class", "");
displayFormat.appendChild(availableFeature);
availableFeatures = document.querySelectorAll("#available-features li");
displayToFormat = document.querySelectorAll("#display-format li");
addEventOnList();
}
}
});
displayToFeature.addEventListener("click", () => {
for (let i = 0; i < displayToFormat.length; i++) {
const availableFormat = displayToFormat[i];
if (availableFormat.getAttribute("class") == "active") {
availableFormat.remove();
availableFormat.setAttribute("class", "");
availableToDisplay.appendChild(availableFormat);
availableFeatures = document.querySelectorAll("#available-features li");
displayToFormat = document.querySelectorAll("#display-format li");
addEventOnList();
}
}
});
featureToDisplay2.addEventListener("click", () => {
for (let i = 0; i < availableFeatures2.length; i++) {
const availableFeature = availableFeatures2[i];
if (availableFeature.getAttribute("class") == "active") {
availableFeature.remove();
availableFeature.setAttribute("class", "");
displayFormat2.appendChild(availableFeature);
availableFeatures2 = document.querySelectorAll(
"#available-features-2 li"
);
displayToFormat2 = document.querySelectorAll("#display-format-2 li");
addEventOnList();
}
}
});
displayToFeature2.addEventListener("click", () => {
for (let i = 0; i < displayToFormat2.length; i++) {
const availableFormat = displayToFormat2[i];
if (availableFormat.getAttribute("class") == "active") {
availableFormat.remove();
availableFormat.setAttribute("class", "");
availableToDisplay2.appendChild(availableFormat);
availableFeatures2 = document.querySelectorAll(
"#available-features-2 li"
);
displayToFormat2 = document.querySelectorAll("#display-format-2 li");
addEventOnList();
}
}
});
};
addEventOnList();
addEventonBtns();
const addEventOnFeaturesList = () => {
allFeaturesList.map((value) => {
for (let i = 0; i < value.length; i++) {
const availableFeature = value[i];
availableFeature.addEventListener("click", () => {
for (let i = 0; i < value.length; i++) {
value[i].setAttribute("class", "");
}
if (availableFeature.getAttribute("class") == "active") {
availableFeature.setAttribute("class", "");
} else {
availableFeature.setAttribute("class", "active");
let getCustomImages = JSON.parse(
localStorage.getItem("customImages")
);
let getCustomGifs = JSON.parse(localStorage.getItem("customGifs"));
let getCustomMsg = JSON.parse(localStorage.getItem("customMsg"));
getCustomImages.map((value) => {
let scrollSpeed1 = document.getElementById("inputScrollSpeed11");
let scrollSpeed2 = document.getElementById("inputScrollSpeedRow11");
let inputTransition = document.getElementById("inputTransition11");
let inputText12 = document.getElementById("inputText12");
let displayCheck = document.getElementById("flexCheckChecked25");
if (value.fileName == availableFeature.innerText) {
scrollSpeed1.value = value.scrollSpeed;
scrollSpeed2.value = value.scrollSpeed2;
inputTransition.value = value.transition;
inputText12.value = value.pauseScreen;
displayCheck.checked = value.displayCheck;
}
});
getCustomGifs.map((value) => {
let scrollSpeed1 = document.getElementById("inputScrollSpeed12");
let scrollSpeed2 = document.getElementById("inputScrollSpeedRow12");
let inputTransition = document.getElementById("inputTransition12");
let inputText12 = document.getElementById("inputText112");
let displayCheck = document.getElementById("flexCheckChecked28");
if (value.fileName == availableFeature.innerText) {
scrollSpeed1.value = value.scrollSpeed;
scrollSpeed2.value = value.scrollSpeed2;
inputTransition.value = value.transition;
inputText12.value = value.pauseScreen;
displayCheck.checked = value.displayCheck;
}
});
getCustomMsg.map((value) => {
let scrollSpeed1 = document.getElementById("inputScrollSpeed13");
let scrollSpeed2 = document.getElementById("inputScrollSpeedRow13");
let inputTransition = document.getElementById("inputTransition13");
let inputMsg = document.getElementById("inputText14");
let inputColor = document.getElementById("inputScrollSpeed16");
let inputSize = document.getElementById("inputScrollSpeed17");
let inputBg = document.getElementById("inputScrollSpeed19");
let displayCheck = document.getElementById("flexCheckChecked29");
if (value.messageName == availableFeature.innerText) {
scrollSpeed1.value = value.scrollSpeed1;
scrollSpeed2.value = value.scrollSpeed2;
inputTransition.value = value.transition;
inputMsg.value = value.messageInput;
inputColor.value = value.colorInput;
inputSize.value = value.sizeInput;
inputBg.value = value.backgroundInput;
displayCheck.checked = value.displayCheck;
}
});
}
});
}
});
};
addEventOnFeaturesList();
// display increase function
displayincreaseBtn.addEventListener("click", () => {
for (let i = 0; i < displayToFormat.length; i++) {
var displayItem = displayToFormat[i];
if (displayItem.getAttribute("class") == "active") {
var prevElement = displayItem.previousElementSibling;
var currentText = displayItem.innerText;
displayItem.innerText = prevElement.innerText;
prevElement.innerText = currentText;
prevElement.setAttribute("class", "active");
displayItem.setAttribute("class", "");
}
}
});
// display increase 2 function
displayincreaseBtn2.addEventListener("click", () => {
for (let i = 0; i < displayToFormat2.length; i++) {
var displayItem = displayToFormat2[i];
if (displayItem.getAttribute("class") == "active") {
var prevElement = displayItem.previousElementSibling;
var currentText = displayItem.innerText;
displayItem.innerText = prevElement.innerText;
prevElement.innerText = currentText;
prevElement.setAttribute("class", "active");
displayItem.setAttribute("class", "");
}
}
});
// display decrease function
displayDecreaseBtn.addEventListener("click", () => {
for (let i = 0; i < displayToFormat.length; i++) {
var displayItem = displayToFormat[i];
if (displayItem.getAttribute("class") == "active") {
var nextElement = displayItem.nextElementSibling;
var currentText = displayItem.innerText;
displayItem.innerText = nextElement.innerText;
nextElement.innerText = currentText;
nextElement.setAttribute("class", "active");
displayItem.setAttribute("class", "");
break;
}
}
});
// display decrease 2 function
displayDecreaseBtn2.addEventListener("click", () => {
for (let i = 0; i < displayToFormat2.length; i++) {
var displayItem = displayToFormat2[i];
if (displayItem.getAttribute("class") == "active") {
var nextElement = displayItem.nextElementSibling;
var currentText = displayItem.innerText;
displayItem.innerText = nextElement.innerText;
nextElement.innerText = currentText;
nextElement.setAttribute("class", "active");
displayItem.setAttribute("class", "");
break;
}
}
});
// feature remove function
allFeaturesRemoveBtns.map((value, index) => {
value.addEventListener("click", () => {
for (let i = 0; i < allFeaturesList[index].length; i++) {
var item = allFeaturesList[index][i];
console.log(item);
if (item.getAttribute("class") == "active") {
/*
if (item.parentElement.getAttribute("id") == "images-features") {
let getImages = JSON.parse(localStorage.getItem("customImages"));
let filter = getImages.filter(
(value) => value.fileName !== item.innerText
);
localStorage.setItem("customImages", JSON.stringify(filter));
} else if (item.parentElement.getAttribute("id") == "gifs-features") {
let getGifs = JSON.parse(localStorage.getItem("customGifs"));
let filter = getGifs.filter(
(value) => value.fileName !== item.innerText
);
localStorage.setItem("customGifs", JSON.stringify(filter));
} else if (
item.parentElement.getAttribute("id") == "messages-features"
) {
let getMsgs = JSON.parse(localStorage.getItem("customMsg"));
let filter = getMsgs.filter(
(value) => value.messageName !== item.innerText
);
localStorage.setItem("customMsg", JSON.stringify(filter));
}
else {
*/
item.remove();
uploaded_images = [];
uploaded_GIFs = [];
//}
}
}
});
});
// feature increase function
allFeaturesIncreaseBtns.map((value, index) => {
value.addEventListener("click", () => {
for (let i = 0; i < allFeaturesList[index].length; i++) {
var item = allFeaturesList[index][i];
if (item.getAttribute("class") == "active") {
var prevElement = item.previousElementSibling;
var currentText = item.innerText;
item.innerText = prevElement.innerText;
prevElement.innerText = currentText;
prevElement.setAttribute("class", "active");
item.setAttribute("class", "");
}
}
});
});
// feature decrease function
allFeaturesDecreaseBtns.map((value, index) => {
value.addEventListener("click", () => {
for (let i = 0; i < allFeaturesList[index].length; i++) {
var item = allFeaturesList[index][i];
if (item.getAttribute("class") == "active") {
var nextElement = item.nextElementSibling;
var currentText = item.innerText;
item.innerText = nextElement.innerText;
nextElement.innerText = currentText;
nextElement.setAttribute("class", "active");
item.setAttribute("class", "");
break;
}
}
});
});
// all features
var stocks = document.getElementById("stocks-features");
var crypto1 = document.getElementById("crypto-features");
var forex = document.getElementById("forex-features");
var currentWeather = document.getElementById("current-weather-features");
var dailyForecast = document.getElementById("daily-forecast-features");
var news = document.getElementById("news-features");
var upcomingGames = document.getElementById("upcoming-games-features");
var pastGames = document.getElementById("past-games-features");
var liveGames = document.getElementById("live-games-features");
var teamStats = document.getElementById("team-stats-features");
var images = document.getElementById("images-features");
var gifs = document.getElementById("gifs-features");
var messages = document.getElementById("messages-features");
var commodities = document.getElementById("commodities-features");
var indices = document.getElementById("indices-features");
var movies = document.getElementById("movies-features");
var allFeatures = [
stocks,
crypto1,
forex,
currentWeather,
dailyForecast,
news,
upcomingGames,
pastGames,
liveGames,
teamStats,
images,
gifs,
messages,
commodities,
indices,
movies,
];
// features select box
var newsSelect = document.getElementById("inputTransition63");
var upcomingGamesSelect = document.getElementById("inputTransition73");
var pastGamesSelect = document.getElementById("inputTransition83");
var liveGamesSelect = document.getElementById("inputTransition93");
var teamStatsSelect = document.getElementById("inputTransition103");
var moviesSelect = document.getElementById("inputTransition64");
var allFeaturesSelectBox = [
null,
null,
null,
null,
null,
newsSelect,
upcomingGamesSelect,
pastGamesSelect,
liveGamesSelect,
teamStatsSelect,
null,
null,
null,
null,
null,
moviesSelect,
];
// features select add buttons
var newsAddBtn = document.getElementById("inputTransitionBtn63");
var upcomingGamesAddBtn = document.getElementById("inputTransitionBtn73");
var pastGamesAddBtn = document.getElementById("inputTransitionBtn83");
var liveGamesAddBtn = document.getElementById("inputTransitionBtn93");
var teamStatsAddBtn = document.getElementById("inputTransitionBtn103");
var allFeaturesSelectAddBtn = [
null,
null,
null,
null,
null,
newsAddBtn,
upcomingGamesAddBtn,
pastGamesAddBtn,
liveGamesAddBtn,
teamStatsAddBtn,
null,
null,
null,
null,
null,
null,
];
allFeaturesSelectAddBtn.map((value, index) => {
if (value != null) {
value.addEventListener("click", () => {
var tag = document.createElement("li");
tag.innerHTML = allFeaturesSelectBox[index].value;
allFeatures[index].appendChild(tag);
changeVarValue();
addEventOnFeaturesList();
});
}
});
// features input file
var imagesFile = document.getElementById("inputText11");
var gifsFile = document.getElementById("inputText1112");
var allFeaturesFile = [
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
imagesFile,
gifsFile,
null,
null,
null,
null,
];
// features file add button
var imagesFileAddBtn = document.getElementById("inputTextBtn11");
var gifsFileAddBtn = document.getElementById("inputTextBtn1112");
var allFeaturesFileAddBtn = [
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
imagesFileAddBtn,
gifsFileAddBtn,
null,
null,
null,
null,
];
// features input text
var stocksText = document.getElementById("inputText3");
var cryptoText = document.getElementById("inputText4");
var forexText = document.getElementById("inputText5");
var currentWeatherText = document.getElementById("inputText6");
var dailyForecastText = document.getElementById("inputText7");
var messagesText = document.getElementById("inputText13");
var commoditiesText = document.getElementById("inputText20");
var indicesText = document.getElementById("inputText21");
var allFeaturesText = [
stocksText,
cryptoText,
forexText,
currentWeatherText,
dailyForecastText,
null,
null,
null,
null,
null,
null,
null,
messagesText,
commoditiesText,
indicesText,
null,
];
// features text add button
var stocksTextAddBtn = document.getElementById("inputTextBtn3");
var cryptoTextAddBtn = document.getElementById("inputTextBtn4");
var forexTextAddBtn = document.getElementById("inputTextBtn5");
var currentWeatherTextAddBtn = document.getElementById("inputTextBtn6");
var dailyForecastTextAddBtn = document.getElementById("inputTextBtn7");
var messagesTextAddBtn = document.getElementById("inputTextBtn13");
var commoditiesTextAddBtn = document.getElementById("inputTextBtn20");
var indicesTextAddBtn = document.getElementById("inputTextBtn21");
var allFeaturesTextAddBtn = [
stocksTextAddBtn,
cryptoTextAddBtn,
forexTextAddBtn,
currentWeatherTextAddBtn,
dailyForecastTextAddBtn,
null,
null,
null,
null,
null,
null,
null,
messagesTextAddBtn,
commoditiesTextAddBtn,
indicesTextAddBtn,
null,
];
var allFeaturesLimit = [
200,
100,
100,
20,
20,
null,
null,
null,
null,
null,
20,
20,
20,
30,
40,
null,
];
var createLi = false;
// function addingItems() {
allFeaturesTextAddBtn.map((value, index) => {
if (value !== null) {
value.addEventListener("click", () => {
if ((value == messagesTextAddBtn) && (createLi === true)) {
// custom message
let messageName = document.getElementById("inputText13").value;
let scrollSpeed1 = document.getElementById("inputScrollSpeed13").value;
let scrollSpeed2 = document.getElementById(
"inputScrollSpeedRow13"
).value;
let transition = document.getElementById("inputTransition13").value;
let messageInput = document.getElementById("inputText14").value;
let colorInput = document.getElementById("inputScrollSpeed16").value;
let sizeInput = document.getElementById("inputScrollSpeed17").value;
let backgroundInput =
document.getElementById("inputScrollSpeed19").value;
let displayCheck =
document.getElementById("flexCheckChecked29").checked;
let messagesWrapper = document.getElementById("messages-features");
let fileFound = false;
for (let i = 0; i < messagesWrapper.children.length; i++) {
fileFound =
messagesWrapper.children[i]?.innerText == messageName && true;
}
if (!fileFound) {
let values = {
messageName,
scrollSpeed1,
scrollSpeed2,
transition,
messageInput,
colorInput,
sizeInput,
backgroundInput,
displayCheck,
};
let getCustomMsg = localStorage.getItem("customMsg");
let newValues = getCustomMsg && JSON.parse(getCustomMsg);
getCustomMsg && newValues.push(values);
// getCustomMsg
// ? localStorage.setItem("customMsg", JSON.stringify(newValues))
// : localStorage.setItem("customMsg", JSON.stringify([values]));
var tag = document.createElement("li");
var msg = "You've reached the maximum limit of items to add for this feature";
// if the list length exceeds the limit
if (allFeatures[index].getElementsByTagName("li").length == allFeaturesLimit[index]){
document.getElementById("limit-msg").innerHTML = msg;
}
else{
tag.innerHTML = allFeaturesText[index].value;
allFeatures[index].appendChild(tag);
changeVarValue();
addEventOnFeaturesList();
createLi = false;
}}
} else {
var msg = "You've reached the maximum limit of items to add for this feature";
// if the list length exceeds the limit
if (allFeatures[index].getElementsByTagName("li").length > allFeaturesLimit[index]){
document.getElementById("limit-msg").innerHTML = msg;
}
else{
if (createLi === true) {
var tag = document.createElement("li");
tag.innerHTML = allFeaturesText[index].value;
allFeatures[index].appendChild(tag);
changeVarValue();
addEventOnFeaturesList();
createLi = false;
}
}
}});
}
});
var startButton = document.getElementById("start-btn");
// start the display
startButton.addEventListener("click", () => {
fetch("/start", {
method: "PUT",
});
});
var brightnessButton = document.getElementById("brightness-btn");
// start the display
brightnessButton.addEventListener("click", () => {
let brightness = document.querySelectorAll(".brightness-text")[0].value;
fetch("/brightness", {
method: "PUT",
body: JSON.stringify({ brightness: brightness }),
});
});
var shutdownButton = document.getElementById("shutdown-btn");
shutdownButton.addEventListener("click", () => {
fetch("/shutdown", {
method: "GET",
});
});
var restartButton = document.getElementById("restart-btn");
restartButton.addEventListener("click", () => {
fetch("/restart", {
method: "GET",
});
});
var resetButton = document.getElementById("reset-btn");
resetButton.addEventListener("click", () => {
fetch("/reset", {
method: "GET",
});
});
var stopButton = document.getElementById("stop-btn");
stopButton.addEventListener("click", () => {
fetch("/stop", {
method: "GET",
});
});
var screensaverButton = document.getElementById("screensaver-btn");
screensaverButton.addEventListener("click", () => {
let anim = localStorage.getItem("inputAnimation");
fetch("/screensaver", {
method: "POST",
body: anim,
});
});
var updateButton = document.getElementById("update-btn");
updateButton.addEventListener("click", () => {
fetch("/update", {
method: "POST",
});
});
var dispFormatButton = document.getElementById("dispformat-btn");
var displayFormats = document.getElementById("inputDisplayFormat");
// gets selected functions to display
function getSelected(selector) {
var opt;
for (var i = 0, len = selector.options.length; i < len; i++) {
opt = selector.options[i];
if (opt.selected === true) {
break;
}
}
return opt.innerHTML;
}
function getListItems(list_el) {
let symbols = list_el.getElementsByTagName("li");
let items = [];
for (var i = 0; i < symbols.length; ++i) {
items.push(symbols[i].innerText);
}
return items;
}
// gets which features are to be displayed
function getDisplaying(){
let opt = getSelected(displayFormats);
if (opt.includes("Standard")) {
var list_el = document.getElementById("display-format");
let features = getListItems(list_el);
return [features];
} else if (opt.includes("Professional")) {
var top_list_el = document.getElementById("display-format");
let top_features = getListItems(top_list_el);
var bot_list_el = document.getElementById("display-format-2");
let bot_features = getListItems(bot_list_el);
let features = [top_features, bot_features];
return features;
}
}
// gets feature specific settings
function getFeatureSettings() {
let featureSelector = document.getElementById("drop");
feature = getSelected(featureSelector);
let features = [
"Stocks",
"Crypto",
"Forex",
"Current Weather",
"Daily Forecast",
"News",
"Sports (Upcoming Games)",
"Sports (Past Games)",
"Sports (Live Games)",
"Sports (Team Stats)",
"Custom Images",
"Custom GIFs",
"Custom Messages",
"Commodities",
"Indices",
"Movies",
];
let pageNum = features.indexOf(feature) + 1;
let pageSelector = "Page" + pageNum.toString();
let page = document.getElementById(pageSelector);
// these common to all settings
let speeds = page.querySelectorAll(".speed-select");
var speed;
var speed2;
speed = getSelected(speeds[0]);
if (speeds.length == 2) {
speed2 = getSelected(page.querySelectorAll(".speed-select")[1]);
} else {
speed2 = "Medium";
}
let animation = getSelected(page.querySelectorAll(".animation-select")[0]);
var settings = { feature: feature, speed: speed, speed2: speed2, animation: animation }; // general settings
var s;
//function specific settings
switch (pageNum) {
case 1:
case 2:
case 3:
s = getTradingSettings(page);
break;
case 4:
case 5:
s = getWeatherSettings(page);
break;
case 6:
s = getNewsSettings(page);
break;
case 7:
case 8:
case 9:
case 10:
s = getSportsSettings(page);
break;
case 11:
case 12:
s = getImageSettings(page);
break;
case 13:
s = getMessageSettings(page);
break;
case 14:
s = getTradingSettings(page);
break;
case 15:
s = getTradingSettings(page);
break;
case 16:
s = getMovieSettings(page);
break;
}
settings = { ...settings, ...s }; // merge both sets of settings
return settings;
}
function getFiles() {
var data = new FormData();
for (var i = 0; i < uploaded_images.length; i++) {
data.append(uploaded_images[i].name, uploaded_images[i]);
console.log(uploaded_images[i].name);
}
for (var i = 0; i < uploaded_GIFs.length; i++) {
data.append(uploaded_GIFs[i].name, uploaded_GIFs[i]);
}
//return data;
fetch("/upload", {
method: "POST",
body: data,
});
}
function saveSettings() {
let displaying = getDisplaying();
let feature_settings = getFeatureSettings();
let files = getFiles();
console.log(JSON.stringify({'displaying': displaying, 'feature_settings': feature_settings, 'files':files}));
fetch("/save", {
method: "POST",
body: JSON.stringify({'displaying': displaying, 'feature_settings': feature_settings}),
});
}
let saveSettingsButtons = document.querySelectorAll(".save-btn").forEach((button) => button.addEventListener("click", saveSettings));
// gets the stock, crypto or forex specific settings
function getTradingSettings(page) {
// get all the tick boxes
let percent = page.querySelectorAll(".percent-select")[0].checked;
let point = page.querySelectorAll(".point-select")[0].checked;
let no_logos = page.querySelectorAll(".logo-select")[0].checked;
let title = page.querySelectorAll(".title-select")[0].checked;
let symbols_el = page.querySelectorAll(".symbol-list")[0];
let symbols = getListItems(symbols_el);
let settings = {
percent: percent,
point: point,
logos: no_logos,
title: title,
symbols: symbols,
};
return settings;
}
// gets the current wether and forecast settings
function getWeatherSettings(page) {
let temp = getSelected(page.querySelectorAll(".temp-select")[0]);
let speed = getSelected(page.querySelectorAll(".wind-speed-select")[0]);
let title = page.querySelectorAll(".title-select")[0].checked;
let api_key = page.querySelectorAll(".api-key")[0];
let
settings = {
temp: temp,
wind_speed: speed,
title: title,
api_key:api_key
};
//only for daily weather
try {
current_weather = page.querySelectorAll(".current-weather-select")[0]
.checked;
settings["current_weather"] = current_weather;
} catch {}
let locations_el = page.querySelectorAll(".location-list")[0];
let locations = getListItems(locations_el);
settings["locations"] = locations;
console.log(settings);
return settings;
}
function saveWeatherAPIKey(){
let featureSelector = document.getElementById("drop");
feature = getSelected(featureSelector);
let features = [
"Stocks",
"Crypto",
"Forex",
"Current Weather",
"Daily Forecast",
"News",
"Sports (Upcoming Games)",
"Sports (Past Games)",
"Sports (Live Games)",
"Sports (Team Stats)",
"Custom Images",
"Custom GIFs",
"Custom Messages",
"Commodities",
"Indices",
"Movies",
];
let pageNum = features.indexOf(feature) + 1;
let pageSelector = "Page" + pageNum.toString();
let page = document.getElementById(pageSelector);
let api_key = page.querySelectorAll(".api-key")[0].value;
let settings = {
api_key:api_key
};
console.log(settings);
fetch("/saveWeatherAPIKey", {
method: "POST",
body: JSON.stringify(settings),
});
}
function saveMovieAPIKey(){
let featureSelector = document.getElementById("drop");
feature = getSelected(featureSelector);
let features = [
"Stocks",
"Crypto",
"Forex",
"Current Weather",
"Daily Forecast",
"News",
"Sports (Upcoming Games)",
"Sports (Past Games)",
"Sports (Live Games)",
"Sports (Team Stats)",
"Custom Images",
"Custom GIFs",
"Custom Messages",
"Commodities",
"Indices",
"Movies",
];
let pageNum = features.indexOf(feature) + 1;
let pageSelector = "Page" + pageNum.toString();
let page = document.getElementById(pageSelector);
let api_key = page.querySelectorAll(".api-key")[0].value;
let settings = {
api_key:api_key
};
console.log(settings);
fetch("/saveMovieAPIKey", {
method: "POST",
body: JSON.stringify(settings),
});
}
var movieAPIbtn = document.getElementById("movie-api-btn");
movieAPIbtn.addEventListener("click", saveMovieAPIKey);
var weatherAPIbtn = document.getElementById("weather-api-btn");
weatherAPIbtn.addEventListener("click", saveWeatherAPIKey);
function getNewsSettings(page) {
let country = getSelected(page.querySelectorAll(".country-select")[0]);
let category = getSelected(page.querySelectorAll(".category-select")[0]);
let country_check = page.querySelectorAll(".country-check")[0].checked;
let category_check = page.querySelectorAll(".category-check")[0].checked;
let num_headlines = page.querySelectorAll(".headline-num")[0].value
let title = page.querySelectorAll(".title-select")[0].checked;
settings = {
country: country,
category: category,
use_country: country_check,
use_category: category_check,
num_headlines: num_headlines,
title: title,
};
console.log(settings);
return settings;
}
function getMovieSettings(page) {
let category = getSelected(page.querySelectorAll(".movie-categories")[0]);
let title = page.querySelectorAll(".title-select")[0].checked;
let api_key = page.querySelectorAll(".api-key")[0];
settings = {
category: category,
title: title,
api_key: api_key
};
return settings;
}
function getSportsSettings(page) {
let title = page.querySelectorAll(".title-select")[0].checked;
let leagues_el = page.querySelectorAll(".league-list")[0];
leagues = getListItems(leagues_el);
settings = { title: title, leagues: leagues };
return settings;
}
var uploaded_images = [];
var uploaded_GIFs = [];
allFeaturesFileAddBtn.map((value, index) => {
if (value !== null) {
value.addEventListener("click", () => {
var tag = document.createElement("li");
tag.innerHTML = allFeaturesFile[index].files[0].name;
if (index == 10) {
let getCustomImg = localStorage.getItem("customImages");
let fileName = imagesFile.files[0].name;
let scrollSpeed = document.getElementById("inputScrollSpeed11").value;
let scrollSpeed2 = document.getElementById(
"inputScrollSpeedRow11"
).value;
let transition = document.getElementById("inputTransition11").value;
let pauseScreen = document.getElementById("inputText12").value;
let displayCheck =
document.getElementById("flexCheckChecked25").checked;
let fileFound = false;
for (let i = 0; i < allFeatures[index].children.length; i++) {
fileFound =
allFeatures[index].children[i]?.innerText == fileName && true;
}
if (!fileFound) {
let values = {
fileName,
scrollSpeed,
scrollSpeed2,
transition,
pauseScreen,
displayCheck,
};
let newValues = getCustomImg && JSON.parse(getCustomImg);
getCustomImg && newValues.push(values);
// getCustomImg
// ? localStorage.setItem("customImages", JSON.stringify(newValues))
// : localStorage.setItem("customImages", JSON.stringify([values]));
uploaded_images.push(allFeaturesFile[index].files[0]);
allFeatures[index].appendChild(tag);
}
} else if (index == 11) {
let getCustomGifs = localStorage.getItem("customGifs");
let fileName = allFeaturesFile[index].files[0].name;
let scrollSpeed = document.getElementById("inputScrollSpeed12").value;
let scrollSpeed2 = document.getElementById(
"inputScrollSpeedRow12"
).value;
let transition = document.getElementById("inputTransition12").value;
let pauseScreen = document.getElementById("inputText112").value;
let displayCheck =
document.getElementById("flexCheckChecked28").checked;
let fileFound = false;
for (let i = 0; i < allFeatures[index].children.length; i++) {
fileFound =
allFeatures[index].children[i]?.innerText == fileName && true;
}
if (!fileFound) {
let values = {
fileName,
scrollSpeed,
scrollSpeed2,
transition,
pauseScreen,
displayCheck,
};
let newValues = getCustomGifs && JSON.parse(getCustomGifs);
getCustomGifs && newValues.push(values);
// getCustomGifs
// ? localStorage.setItem("customGifs", JSON.stringify(newValues))
// : localStorage.setItem("customGifs", JSON.stringify([values]));
uploaded_GIFs.push(allFeaturesFile[index].files[0]);
allFeatures[index].appendChild(tag);
}
}
imagesFile.value = "";
changeVarValue();
addEventOnFeaturesList();
});
}
});
//images and GIFs
function getImageSettings(page) {
let pause = page.querySelectorAll(".pause-select")[0].value;
let title = page.querySelectorAll(".title-select")[0].checked;
let images_el = page.querySelectorAll(".image-list")[0];
images = getListItems(images_el);
settings = { title: title, pause: pause, images: images };
return settings;
}
var messages = [];
messagesTextAddBtn.addEventListener("click", () => {
let pageSelector = "Page13";
let page = document.getElementById(pageSelector);
let msg_name = messagesText.value;
//let speed = getSelected(page.querySelectorAll(".speed-select")[0]);
//let animation = getSelected(page.querySelectorAll(".animation-select")[0]);
let message_text = page.querySelectorAll(".message-input")[0].value;
let text_colour = getSelected(page.querySelectorAll(".text-colour")[0]);
let text_size = getSelected(page.querySelectorAll(".text-size")[0]);
let background_colour = getSelected(page.querySelectorAll(".back-colour")[0]);
let message = {
name: msg_name,
text: message_text,
text_colour: text_colour,
size: text_size,
background_colour: background_colour,
};
messages.push(message);
});
function getMessageSettings(page) {
let messages_el = page.querySelectorAll(".message-list")[0];
let message_names = getListItems(messages_el);
//remove any messages that arent in the list
let new_messages = [];
let new_names = [];
for (let i = 0; i < message_names.length; i++) {
for (let j = 0; j < messages.length; j++) {
if (message_names[i] == messages[j]["name"]) {
new_messages.push(messages[j]);
new_names.push(messages[j]["name"]);
}
}
if ( !(new_names.includes(message_names[i]))) {
new_messages.push({name: message_names[i]});
}
}
let title = page.querySelectorAll(".title-select")[0].checked;
return { title: title, messages: new_messages };
}
// Join Network
let wifiSsidInput = document.getElementById("wifi-ssid-input");
let wifiPassInput = document.getElementById("wifi-pass-input");
let countryCodeInput = document.getElementById("country-code-input");
let joinNetworkBtn = document.querySelector("#join-network-btn");
let connectedText = document.querySelector("#connected-text");
joinNetworkBtn.addEventListener("click", () => {
localStorage.setItem("wifiSsid", wifiSsidInput.value);
localStorage.setItem("wifiPass", wifiPassInput.value);
localStorage.setItem("countryCode", countryCodeInput.value);
// connectedText.style.display = "block";
// setTimeout(() => {
// connectedText.style.display = "none";
// }, 2000);
data = {country:countryCodeInput.value, ssid:wifiSsidInput.value, pwd:wifiPassInput.value}
fetch("/wifi", {
method: "POST",
body: JSON.stringify(data),
});
});
// change display format
let displayFormatDropDown = document.querySelector("#inputDisplayFormat");
let displayFormatBtn = document.querySelector("#dispformat-btn");
let selectedDisplayText = document.querySelector("#selected-display-text");
let topRowText = document.querySelector("#top-row-text");
let bottomRowText = document.querySelector("#bottom-row-text");
displayFormatBtn.addEventListener("click", () => {
selectedDisplayText.innerText = displayFormatDropDown.value;
localStorage.setItem("displayFormat", displayFormatDropDown.value);
if (selectedDisplayText.innerText === "Professional Two Rows") {
topRowText.style.display = "inline";
bottomRowText.style.display = "inline";
secondRow.style.display = "flex";
inputScrollSpeedRow.forEach((value) => {
value.parentElement.parentElement.style.display = "flex";
});
} else {
topRowText.style.display = "none";
bottomRowText.style.display = "none";
secondRow.style.display = "none";
inputScrollSpeedRow.forEach((value) => {
value.parentElement.parentElement.style.display = "none";
});
}
});
// after clicking reset user settings, change back to standard scrolling
let resetSettingsBtn = document.querySelector("#reset-btn")
resetSettingsBtn.addEventListener("click", () => {
selectedDisplayText.innerText = "Standard Scrolling";
localStorage.setItem("displayFormat", "Standard Scrolling");
topRowText.style.display = "none";
bottomRowText.style.display = "none";
secondRow.style.display = "none";
inputScrollSpeedRow.forEach((value) => {
value.parentElement.parentElement.style.display = "none";
});
});
// if selected display text = Professional two rows
if (selectedDisplayText.innerText === "Professional Two Rows") {
topRowText.style.display = "inline";
}
// change host name
let hostNameInput = document.getElementById("host-name-input");
let hostNameBtn = document.getElementById("host-name-btn");
let hostNameText = document.getElementById("host-name");
hostNameBtn.addEventListener("click", () => {
hostNameText.innerText = hostNameInput.value;
// localStorage.setItem("hostName", hostNameText.innerText);
data = {hostname:hostNameText.innerText}
fetch("/hostname", {
method: "POST",
body: JSON.stringify(data),
});
});
// Add Weather API Key
// let weatherKeyInput = document.getElementById("api-key");
// let weatherKeyBtn = document.getElementById("weather-api-button");
// let inputTextWeather = document.getElementById("inputText-weather");
// weatherKeyBtn.addEventListener("click", () => {
// inputTextWeather.innerText = weatherKeyInput.value;
// data = {api-key:inputTextWeather.innerText}
// fetch("/weatherAPI", {
// method: "POST",
// body: JSON.stringify(data),
// });
// });
// change brightness
let brightnessInput = document.getElementById("brightness-input");
let brightnessBtn = document.getElementById("brightness-btn");
brightnessBtn.addEventListener("click", () => {
// localStorage.setItem("brightness", brightnessInput.value);
});
// change input animation
let inputAnimation = document.getElementById("inputAnimation");
let inputAnimationBtn = document.getElementById("input-animation-btn");
inputAnimationBtn.addEventListener("click", () => {
localStorage.setItem("inputAnimation", inputAnimation.value);
});
// scroll speed row two
let inputScrollSpeedRow = [];
for (let i = 1; i <= 16; i++) {
inputScrollSpeedRow.push(
document.getElementById(
i === 1 ? "inputScrollSpeedRow" : `inputScrollSpeedRow${i}`
)
);
}
window.onload = () => {
// let getHostName = localStorage.getItem("hostName");
// let getBrightness = localStorage.getItem("brightness");
// let getWifiSsid = localStorage.getItem("wifiSsid");
// let getWifiPass = localStorage.getItem("wifiPass");
// let getCountryCode = localStorage.getItem("countryCode");
// let getInputAnimation = localStorage.getItem("inputAnimation");
// getHostName &&
// (hostNameText.innerText = getHostName) &&
// (hostNameInput.value = getHostName);
//getBrightness && (brightnessInput.value = getBrightness);
//getWifiSsid && (wifiSsidInput.value = getWifiSsid);
//getWifiPass && (wifiPassInput.value = getWifiPass);
//getCountryCode && (countryCodeInput.value = getCountryCode);
let getDispayFormat = localStorage.getItem("displayFormat");
getDispayFormat && (displayFormatDropDown.value = getDispayFormat);
selectedDisplayText.innerText = displayFormatDropDown.value;
// getInputAnimation && (inputAnimation.value = getInputAnimation);
if (selectedDisplayText.innerText === "Professional Two Rows") {
topRowText.style.display = "inline";
bottomRowText.style.display = "inline";
secondRow.style.display = "flex";
inputScrollSpeedRow.forEach((value) => {
value.parentElement.parentElement.style.display = "flex";
});
} else {
topRowText.style.display = "none";
bottomRowText.style.display = "none";
secondRow.style.display = "none";
inputScrollSpeedRow.forEach((value) => {
value.parentElement.parentElement.style.display = "none";
});
}
// custom images
/*
let localCustomImages = JSON.parse(localStorage.getItem("customImages"));
localCustomImages?.map((value) => {
let tag = document.createElement("li");
tag.innerText = value.fileName;
images.appendChild(tag);
});
// custom gifs
let localCustomGifs = JSON.parse(localStorage.getItem("customGifs"));
localCustomGifs?.map((value) => {
let tag = document.createElement("li");
tag.innerText = value.fileName;
gifs.appendChild(tag);
});
// custom messages
let localCustomMsg = JSON.parse(localStorage.getItem("customMsg"));
localCustomMsg?.map((value) => {
let tag = document.createElement("li");
tag.innerText = value.messageName;
var messagesWrapper = document.getElementById("messages-features");
messagesWrapper.appendChild(tag);
});
* */
addEventOnList();
addEventonBtns();
changeVarValue();
addEventOnFeaturesList();
};
// Update button CSS effects if update available vs if already up to date
var btnText = document.getElementById("update-btn").innerText
var divClass = document.getElementById("outer-div")
if(btnText == "Up to date"){
divClass.classList.remove("main-div2");
divClass.classList.add("main-div3");
}else{
divClass.classList.remove("main-div3");
divClass.classList.add("main-div2");
}
function togglePass() {
var x = document.getElementById("wifi-pass-input");
if (x.type === "password") {
x.type = "text";
} else {
x.type = "password";
}
}
// Show messages when updating ticker / joining wifi network
function showDiv() {
document.getElementById('update-message').style.display = "block";
setTimeout(function showDiv(){
document.getElementById('update-message').style.display = "none";
}, 30000);
}
function showDivTwo() {
document.getElementById('wifi-message').style.display = "block";
setTimeout(function showDivTwo(){
document.getElementById('wifi-message').style.display = "none";
}, 30000);
}
// Display message asking for restart of ticker when new API key added for weather
function showWeatherP() {
if(document.getElementById("api-key1").value==="") {
document.getElementById('weather-api-p').style.display = "none";
}
else if (document.getElementById("api-key1").value==="Weather API Key") {
document.getElementById('weather-api-p').style.display = "none";
}
else {
document.getElementById('weather-api-p').style.display = "block"
}
}
// Display message asking for restart of ticker when new API key added for movie
function showMovieP() {
if(document.getElementById("api-key-movie").value==="") {
document.getElementById('movie-api-p').style.display = "none";
}
else if (document.getElementById("api-key-movie").value==="Movies API Key") {
document.getElementById('movie-api-p').style.display = "none";
}
else {
document.getElementById('movie-api-p').style.display = "block"
}
}
// Disable adding cities when no API key detected
if(document.getElementById("api-key1").value==="") {
document.getElementById('inputTextBtn6').disabled = true;
}
else if (document.getElementById("api-key1").value==="Weather API Key") {
document.getElementById('inputTextBtn6').disabled = true;
}
else {
document.getElementById('inputTextBtn6').disabled = false;
}
if(document.getElementById("api-key").value==="") {
document.getElementById('inputTextBtn7').disabled = true;
}
else if (document.getElementById("api-key").value==="Weather API Key") {
document.getElementById('inputTextBtn7').disabled = true;
}
else {
document.getElementById('inputTextBtn7').disabled = false;
}
// Stocks validation
function stockValidate() {
var specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|,<>\/?~]/;
let x = document.getElementById("inputText3").value;
let text;
if (x.toUpperCase() != x) {
document.getElementById('demo').style.display = "block";
text = "Stock symbol must be uppercase";
document.getElementById("inputText3").value = '';
// createLi = false;
}
else if (x === '') {
document.getElementById('demo').style.display = "block";
text = "No blanks"
// createLi = false;
}
else if (x.includes(' ')) {
text = "No spaces";
document.getElementById('demo').style.display = "block";
document.getElementById("inputText3").value = '';
// createLi = false;
}
else if (x.length > 5) {
document.getElementById('demo').style.display = "block";
text = "No more than 5 characters";
document.getElementById("inputText3").value = '';
// createLi = false;
}
else if (/\d/.test(x)) {
document.getElementById('demo').style.display = "block";
text = "No numbers allowed";
document.getElementById("inputText3").value = '';
// createLi = false;
}
// CAREFUL TO DELETE THE BACKEND LIST ITEMS, JUST DELETING THE VALUE LIKE THIS ISN"T 100% ACCURATE
else if (specialChars.test(x)) {
document.getElementById('demo').style.display = "block";
text = "No special characters allowed";
document.getElementById("inputText3").value = '';
// createLi = false;
}
else {
text = "Input OK";
document.getElementById('demo').style.display = "none";
createLi = true;
// CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST
// addingItems();
setTimeout(
function() {
document.getElementById('inputText3').value="";
}, 100);
}
document.getElementById("demo").innerHTML = text;
}
// Crypto validation
function cryptoValidate() {
var specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|<>\/?~]/;
let x = document.getElementById("inputText4").value;
let baseCurrency = x.split(",")[1];
// console.log(baseCurrency)
let text;
if (x.toUpperCase() != x) {
document.getElementById('demo2').style.display = "block";
text = "Crypto and base must be uppercase";
document.getElementById("inputText4").value = '';
// createLi = false;
}
else if (x === '') {
document.getElementById('demo2').style.display = "block";
text = "No blanks"
// createLi = false;
}
else if (x.includes(' ')) {
text = "No spaces";
document.getElementById('demo2').style.display = "block";
document.getElementById("inputText4").value = '';
// createLi = false;
}
else if (specialChars.test(x)) {
document.getElementById('demo2').style.display = "block";
text = "No special characters allowed";
document.getElementById("inputText4").value = '';
// createLi = false;
}
else if (!x.includes(',')) {
document.getElementById('demo2').style.display = "block";
document.getElementById("inputText4").value = '';
text = "Missing ',' (e.g. BTC,USD)"
// createLi = false;
}
else if (!["USD","AUD","BTC","CAD","CHF","EUR","GBP","ETH","JPY","NZD"].includes(baseCurrency)) {
document.getElementById('demo2').style.display = "block";
document.getElementById("inputText4").value = '';
text = "Invalid base currency"
}
else {
text = "Input OK";
document.getElementById('demo2').style.display = "none";
createLi = true;
// CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST
setTimeout(
function() {
document.getElementById('inputText4').value="";
}, 100);
}
document.getElementById("demo2").innerHTML = text;
}
// Forex validation
function forexValidate() {
var specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|<>\/?~]/;
let x = document.getElementById("inputText5").value;
let quoteCurrency = x.split(",")[1];
let baseCurrency = x.split(",")[0];
// console.log("base"+baseCurrency);
// console.log("quote"+quoteCurrency);
let text;
if (x.toUpperCase() != x) {
document.getElementById('demo3').style.display = "block";
text = "Base and quote must be uppercase";
document.getElementById("inputText5").value = '';
// createLi = false;
}
else if (x === '') {
document.getElementById('demo3').style.display = "block";
text = "No blanks"
}
else if (x.includes(' ')) {
text = "No spaces";
document.getElementById('demo3').style.display = "block";
document.getElementById("inputText5").value = '';
}
else if (/\d/.test(x)) {
document.getElementById('demo3').style.display = "block";
text = "No numbers allowed";
document.getElementById("inputText5").value = '';
}
// CAREFUL TO DELETE THE BACKEND LIST ITEMS, JUST DELETING THE VALUE LIKE THIS ISN"T 100% ACCURATE
else if (specialChars.test(x)) {
document.getElementById('demo3').style.display = "block";
text = "No special characters allowed";
document.getElementById("inputText5").value = '';
}
else if (!x.includes(',')) {
document.getElementById('demo3').style.display = "block";
document.getElementById("inputText5").value = '';
text = "Missing ',' (e.g. EUR,USD)"
}
else if (x.length > 7) {
document.getElementById('demo3').style.display = "block";
text = "No more than 7 characters";
document.getElementById("inputText5").value = '';
}
else if (!["USD","EUR","JPY","GBP","AUD","CAD","CHF","CNY","HKD","NZD","SEK","KRW","SGD","NOK","MXN","INR","RUB","ZAR","TRY","BRL",
"TWD","DKK","PLN","THB","IDR","HUF","ILS","CLP","PHP","AED","CZK","COP","SAR","MYR","RON","CLP","ARS","VND","QAR","KWD"].includes(baseCurrency)) {
document.getElementById('demo3').style.display = "block";
document.getElementById("inputText5").value = '';
text = "Invalid base currency"
}
else if (!["AED","AFN","ALL","AMD","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BMD","BND","BOB","BRL","BSD", "BTN", "BWP", "BYN",
"BZD", "CAD", "CDF", "CHF", "CLP", "CNY", "COP", "CRC", "CUC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "EUR",
"FJD", "FKP", "FOK", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "IMP",
"INR", "IQD", "IRR", "ISK", "JMD", "JOD", "JPY","KES","KGS","KHR","KID","KMF","KRW","KWD", "KYD","KZT","LAK","LBP","LKR","LRD","LSL", "LYD",
"MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN",
"PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STN","SYP","SZL",
"THB","TJS","TMT","TND","TOP","TRY","TTD","TVD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VES","VND","VUV","WST","YER","ZAR"].includes(quoteCurrency)) {
document.getElementById('demo3').style.display = "block";
document.getElementById("inputText5").value = '';
text = "Invalid quote currency"
}
else {
text = "Input OK";
document.getElementById('demo3').style.display = "none";
createLi = true;
// CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST
// addingItems();
setTimeout(
function() {
document.getElementById('inputText5').value="";
}, 100);
}
document.getElementById("demo3").innerHTML = text;
}
// Custom messages validation
function customMsgValidate() {
let x = document.getElementById("inputText13").value;
let y = document.getElementById("inputText14").value;
let text;
if ((x === '') && (y !== '')) {
createLi = false;
document.getElementById('demo4').style.display = "block";
text = "No blanks"
document.getElementById("inputText14").value = '';
document.getElementById('demo5').style.display = "none";
}
else if ((y === '') && (x !== '')){
createLi = false;
document.getElementById('demo5').style.display = "block";
document.getElementById("inputText13").value = '';
document.getElementById('demo4').style.display = "none";
text = "No blanks"
}
else if ((y === '') && (x === '')){
createLi = false;
document.getElementById('demo5').style.display = "block";
// document.getElementById("inputText13").value = '';
document.getElementById('demo4').style.display = "block";
text = "No blanks"
}
else if ((x !== '') && (y !== '')) {
text = "Input OK";
document.getElementById('demo4').style.display = "none";
document.getElementById('demo5').style.display = "none";
createLi = true;
// CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST
// addingItems();
setTimeout(
function() {
document.getElementById('inputText13').value="";
document.getElementById('inputText14').value="";
}, 100);
}
document.getElementById("demo4").innerHTML = text;
document.getElementById("demo5").innerHTML = text;
}
// current weather validation
function currentWeatherValidate() {
var specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|<>\/?~]/;
let x = document.getElementById("inputText6").value;
let text;
if (specialChars.test(x)) {
document.getElementById('demo6').style.display = "block";
text = "No special characters allowed";
document.getElementById("inputText6").value = '';
}
else if (x === '') {
document.getElementById('demo6').style.display = "block";
text = "No blanks"
}
else if (/\d/.test(x)) {
document.getElementById('demo6').style.display = "block";
text = "No numbers allowed";
document.getElementById("inputText6").value = '';
}
else {
text = "Input OK";
document.getElementById('demo6').style.display = "none";
createLi = true;
// CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST
// addingItems();
setTimeout(
function() {
document.getElementById('inputText6').value="";
}, 100);
}
document.getElementById("demo6").innerHTML = text;
}
// Daily forecast validation
function dailyWeatherValidate() {
var specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|<>\/?~]/;
let x = document.getElementById("inputText7").value;
let text;
if (specialChars.test(x)) {
document.getElementById('demo7').style.display = "block";
text = "No special characters allowed";
document.getElementById("inputText7").value = '';
}
else if (x === '') {
document.getElementById('demo7').style.display = "block";
text = "No blanks"
}
else if (/\d/.test(x)) {
document.getElementById('demo7').style.display = "block";
text = "No numbers allowed";
document.getElementById("inputText7").value = '';
}
else {
text = "Input OK";
document.getElementById('demo7').style.display = "none";
createLi = true;
// CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST
// addingItems();
setTimeout(
function() {
document.getElementById('inputText7').value="";
}, 100);
}
document.getElementById("demo7").innerHTML = text;
}
// Commodities validation
function commoditiesValidate() {
var specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|<>\/?~]/;
let x = document.getElementById("inputText20").value;
let text;
if (x.toUpperCase() != x) {
document.getElementById('demo8').style.display = "block";
text = "Commodity symbol must be uppercase";
document.getElementById("inputText20").value = '';
// createLi = false;
}
else if (x === '') {
document.getElementById('demo8').style.display = "block";
text = "No blanks"
// createLi = false;
}
else if (x.includes(' ')) {
text = "No spaces";
document.getElementById('demo8').style.display = "block";
document.getElementById("inputText20").value = '';
// createLi = false;
}
else if (specialChars.test(x)) {
document.getElementById('demo8').style.display = "block";
text = "No special characters allowed";
document.getElementById("inputText20").value = '';
// createLi = false;
}
else if (!["ALU","BRENTOIL","LCO","COFFEE","XCU","CORN","COTTON","XAU","IRD","NI","XPD","XPT","XRH","RICE","RUTH","XAG","SOYBEAN",
"XDR","SUGAR","TIN","WHEAT","WTIOIL","ZNC","ETHANOL","CPO","NG","COCOA","ROBUSTA","LUMBER","RUBBER"].includes(x)) {
document.getElementById('demo8').style.display = "block";
document.getElementById("inputText20").value = '';
text = "Invalid commodity symbol"
}
else {
text = "Input OK";
document.getElementById('demo8').style.display = "none";
createLi = true;
// CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST
setTimeout(
function() {
document.getElementById('inputText20').value="";
}, 100);
}
document.getElementById("demo8").innerHTML = text;
}
// Indices validation
function indicesValidate() {
var specialChars = /[`!@#$%&*()_+\-=\[\]{};':"\\|<>\/?~]/;
let x = document.getElementById("inputText21").value;
let text;
if (x.toUpperCase() != x) {
document.getElementById('demo9').style.display = "block";
text = "Index symbol must be uppercase";
document.getElementById("inputText21").value = '';
// createLi = false;
}
else if (x === '') {
document.getElementById('demo9').style.display = "block";
text = "No blanks"
// createLi = false;
}
else if (x.includes(' ')) {
text = "No spaces";
document.getElementById('demo9').style.display = "block";
document.getElementById("inputText21").value = '';
// createLi = false;
}
else if (specialChars.test(x)) {
document.getElementById('demo9').style.display = "block";
text = "No special characters allowed";
document.getElementById("inputText21").value = '';
// createLi = false;
}
else if (!["^DJI","^GSPC","^NDX","^RUT","^VIX","^GSPTSE","^MXX","^BVSP","^GDAXI","^FTSE","^IBEX","^FCHI","^SSMI","^BFX","^ATX","^AEX","^OMX","^IXIC","FTSEMIB.MI",
"^OMXH25","PSI20.LS","^STOXX","^STOXX50E","^N100","^KS11","^NZ50","^AXJO","^STI","000001.SS","399001.SZ","^N225","^NSEI","^BSESN","^HSI","^TWII","^JKSE","PSEI.PS","^SET.BK","XU100.IS"].includes(x)) {
document.getElementById('demo9').style.display = "block";
document.getElementById("inputText21").value = '';
text = "Invalid index symbol"
}
else {
text = "Input OK";
document.getElementById('demo9').style.display = "none";
createLi = true;
// CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST
setTimeout(
function() {
document.getElementById('inputText21').value="";
}, 100);
}
document.getElementById("demo9").innerHTML = text;
}