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 ipoFeatures = document.querySelectorAll("#ipo-features li");

var allFeaturesList = [
  stocksFeatures,
  cryptoFeatures,
  forexFeatures,
  currentWeatherFeatures,
  dailyForecastFeatures,
  newsFeatures,
  upcomingGamesFeatures,
  pastGamesFeatures,
  liveGamesFeatures,
  teamStatsFeatures,
  imagesFeatures,
  gifsFeatures,
  messagesFeatures,
  commoditiesFeatures,
  indicesFeatures,
  moviesFeatures,
  ipoFeatures,
];

// 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 ipoRemoveBtn = document.getElementById("ipo-remove-btn");

var allFeaturesRemoveBtns = [
  stocksRemoveBtn,
  cryptoRemoveBtn,
  forexRemoveBtn,
  currentWeatherRemoveBtn,
  dailyForecastRemoveBtn,
  newsRemoveBtn,
  upcomingGamesRemoveBtn,
  pastGamesRemoveBtn,
  liveGamesRemoveBtn,
  teamStatsRemoveBtn,
  imagesRemoveBtn,
  gifsRemoveBtn,
  messagesRemoveBtn,
  commoditiesRemoveBtn,
  indicesRemoveBtn,
  moviesRemoveBtn,
  ipoRemoveBtn,
];
// 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 ipoincreaseBtn = document.getElementById("ipo-increase-btn");

var allFeaturesIncreaseBtns = [
  stocksincreaseBtn,
  cryptoincreaseBtn,
  forexincreaseBtn,
  currentWeatherincreaseBtn,
  dailyForecastincreaseBtn,
  newsincreaseBtn,
  upcomingGamesincreaseBtn,
  pastGamesincreaseBtn,
  liveGamesincreaseBtn,
  teamStatsincreaseBtn,
  imagesincreaseBtn,
  gifsincreaseBtn,
  messagesincreaseBtn,
  commoditiesincreaseBtn,
  indicesincreaseBtn,
  moviesincreaseBtn,
  ipoincreaseBtn,
];

// 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 ipoDecreaseBtn = document.getElementById("ipo-decrease-btn");

var allFeaturesDecreaseBtns = [
  stocksDecreaseBtn,
  cryptoDecreaseBtn,
  forexDecreaseBtn,
  currentWeatherDecreaseBtn,
  dailyForecastDecreaseBtn,
  newsDecreaseBtn,
  upcomingGamesDecreaseBtn,
  pastGamesDecreaseBtn,
  liveGamesDecreaseBtn,
  teamStatsDecreaseBtn,
  imagesDecreaseBtn,
  gifsDecreaseBtn,
  messagesDecreaseBtn,
  commoditiesDecreaseBtn,
  indicesDecreaseBtn,
  moviesDecreaseBtn,
  ipoDecreaseBtn,
];

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");
  ipoFeatures = document.querySelectorAll("#ipo-features li");
  
  allFeaturesList = [
    stocksFeatures,
    cryptoFeatures,
    forexFeatures,
    currentWeatherFeatures,
    dailyForecastFeatures,
    newsFeatures,
    upcomingGamesFeatures,
    pastGamesFeatures,
    liveGamesFeatures,
    teamStatsFeatures,
    imagesFeatures,
    gifsFeatures,
    messagesFeatures,
    commoditiesFeatures,
    indicesFeatures,
    moviesFeatures,
    ipoFeatures,
  ];
};

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") && (index == 0 )){
          let symbol = item.innerText;
          item.remove();
          uploaded_images = [];
          uploaded_GIFs = [];
          fetch("/deletePortfolioSettings", {
            method: "POST",
            body: JSON.stringify(symbol),
          });  
      }
      else if ((item.getAttribute("class") == "active") && (index == 1 )){
          let symbol = item.innerText;
          item.remove();
          uploaded_images = [];
          uploaded_GIFs = [];
          fetch("/deletePortfolioCryptoSettings", {
            method: "POST",
            body: JSON.stringify(symbol),
          });  
      }
      else if (item.getAttribute("class") == "active") {
          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 ipos = document.getElementById("ipo-features");

var allFeatures = [
  stocks,
  crypto1,
  forex,
  currentWeather,
  dailyForecast,
  news,
  upcomingGames,
  pastGames,
  liveGames,
  teamStats,
  images,
  gifs,
  messages,
  commodities,
  indices,
  movies,
  ipos,
];

// 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,
  null,
];

// 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,
  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,
  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,
  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,
  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,
  null,
];


var allFeaturesLimit = [
  200,
  100,
  100,
  20,
  20,
  null,
  null,
  null,
  null,
  null,
  20,
  20,
  20,
  30,
  40,
  null,
  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",
  });
  document.getElementById('yooo').style.display = "block";
});


var restartButton = document.getElementById("restart-btn");

restartButton.addEventListener("click", () => {
  fetch("/restart", {
    method: "GET",
  });
  document.getElementById('yooo').style.display = "block";
});

var resetButton = document.getElementById("reset-btn");

resetButton.addEventListener("click", () => {
  fetch("/reset", {
    method: "GET",
  });
  document.getElementById('yooo').style.display = "block";
});


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",
    "IPO Calendar",
  ];
  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;
    case 17:
      s = getIpoSettings(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 whatFeature = document.getElementById('drop').value;
  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);

  if (whatFeature == 2) {
    let portfolio = page.querySelectorAll(".portfolio-select")[0].checked;
    settings = {
      percent: percent,
      point: point,
      logos: no_logos,
      title: title,
      symbols: symbols,
      chart: portfolio,
    };
  }
  else if (whatFeature == 1) {
    let prepost = page.querySelectorAll(".prepost-select")[0].checked;
    let portfolio = page.querySelectorAll(".portfolio-select")[0].checked;
    settings = {
      prepost: prepost,
      percent: percent,
      point: point,
      logos: no_logos,
      title: title,
      symbols: symbols,
      chart: portfolio,
    };    
  }
  else {
    settings = {
      percent: percent,
      point: point,
      logos: no_logos,
      title: title,
      symbols: symbols,
    }; 
  }
  console.log(settings);

  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",
    "IPO Calendar",
  ];
  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",
    "IPO Calendar",
  ];
  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),
  });
}


function saveIpoAPIKey(){
  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",
    "IPO Calendar",
  ];
  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("/saveIpoAPIKey", {
    method: "POST",
    body: JSON.stringify(settings),
  });
}

var ipoAPIbtn = document.getElementById("ipo-api-btn");
ipoAPIbtn.addEventListener("click", saveIpoAPIKey);

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 getIpoSettings(page) {
  let title = page.querySelectorAll(".title-select")[0].checked;
  let api_key = page.querySelectorAll(".api-key")[0];

  settings = {
    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;
  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";
  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 <= 17; 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";
}


function showDivTwo() {
  document.getElementById('wifi-message').style.display = "block";
}


// 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"
        }

    }



function showIpoP() {
  if(document.getElementById("api-key-ipo").value==="") {

            document.getElementById('ipo-api-p').style.display = "none";
        } 

        else if (document.getElementById("api-key-ipo").value==="IPO Calendar API Key") {
                      document.getElementById('ipo-api-p').style.display = "none";

        }

          else {
            document.getElementById('ipo-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 portfolioCheckbox = document.getElementById("flexCheckChecked4");
  let sharesText = document.getElementById("inputText8").value;
  let averageCost = document.getElementById("inputText9").value;
  let dateText = document.getElementById("inputText10").value;

  let text;
  let text2;
    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";
          //PORTFOLIO VALIDATION HERE
          if (portfolioCheckbox.checked) {
            if ((sharesText === ' ') || (averageCost === ' ') || (dateText === ' ')) {
              text2 = "No spaces";
              document.getElementById('demo-portfolio').style.display = "block";
              document.getElementById("inputText8").value = ''; 
              document.getElementById("inputText9").value = ''; 
              document.getElementById("inputText10").value = ''; 
              document.getElementById("inputText3").value = '';
            }
            else if ((isNaN(sharesText))|| (isNaN(averageCost))) {
              text2 = "No text characters, only numbers";
              document.getElementById('demo-portfolio').style.display = "block";
              document.getElementById("inputText8").value = ''; 
              document.getElementById("inputText9").value = ''; 
              document.getElementById("inputText10").value = '';     
              document.getElementById("inputText3").value = '';           
            }
            else if ((!dateText.includes('-')) && (dateText !== '')) {
              text2 = "Incorrect date format, it should be YYYY-MM-DD";
              document.getElementById('demo-portfolio').style.display = "block";
              document.getElementById("inputText8").value = ''; 
              document.getElementById("inputText9").value = ''; 
              document.getElementById("inputText10").value = '';  
              document.getElementById("inputText3").value = ''; 
            }
            else if (((sharesText !== '') || (averageCost !== '') || (dateText !== '')) && ((sharesText === '') || (averageCost === '') || (dateText === ''))) {
              text2 = "Some fields are empty";
              document.getElementById('demo-portfolio').style.display = "block";
              document.getElementById("inputText8").value = ''; 
              document.getElementById("inputText9").value = ''; 
              document.getElementById("inputText10").value = ''; 
              document.getElementById("inputText3").value = ''; 
            }
            else {
              text2 = "Input OK";
              document.getElementById('demo-portfolio').style.display = "none";
              createLi = true;
              // CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST
              // addingItems();
              let cost = document.getElementById('inputText9').value;
              let shares = document.getElementById('inputText8').value;
              let symbol = document.getElementById('inputText3').value;
              let days = document.getElementById('inputText10').value;

              let settings = {
                shares:shares,
                cost:cost,
                symbol:symbol,
                days:days,
              };
              console.log(JSON.stringify(settings));

              setTimeout(
                  function() {
                document.getElementById('inputText3').value="";
                document.getElementById("inputText8").value = ''; 
                document.getElementById("inputText9").value = ''; 
                document.getElementById("inputText10").value = ''; 
                document.getElementById("inputText3").value = ''; 
                  }, 100);

              if ((sharesText !== '') && (averageCost !== '') && (dateText !== '')) {
                fetch("/savePortfolioSettings", {
                  method: "POST",
                  body: JSON.stringify(settings),
                });
              }
            }
            document.getElementById("demo-portfolio").innerHTML = text2;
          }

          else {
            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];
  let portfolioCheckbox = document.getElementById("crypto_portfolio_checkbox");
  let sharesText = document.getElementById("cryptoshares").value;
  let averageCost = document.getElementById("cryptocost").value;
  let dateText = document.getElementById("cryptodate").value;

  let text;
  let text2;
    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";
          //PORTFOLIO VALIDATION HERE
          if (portfolioCheckbox.checked) {
            if ((sharesText === ' ') || (averageCost === ' ') || (dateText === ' ')) {
              text2 = "No spaces";
              document.getElementById('demo-portfolio-crypto').style.display = "block";
              document.getElementById("cryptoshares").value = ''; 
              document.getElementById("cryptocost").value = ''; 
              document.getElementById("cryptodate").value = ''; 
              document.getElementById("inputText4").value = '';
            }
            else if ((isNaN(sharesText))|| (isNaN(averageCost))) {
              text2 = "No text characters, only numbers";
              document.getElementById('demo-portfolio-crypto').style.display = "block";
              document.getElementById("cryptoshares").value = ''; 
              document.getElementById("cryptocost").value = ''; 
              document.getElementById("cryptodate").value = '';     
              document.getElementById("inputText4").value = '';           
            }
            else if ((!dateText.includes('-')) && (dateText !== '')) {
              text2 = "Incorrect date format, it should be YYYY-MM-DD";
              document.getElementById('demo-portfolio-crypto').style.display = "block";
              document.getElementById("cryptoshares").value = ''; 
              document.getElementById("cryptocost").value = ''; 
              document.getElementById("cryptodate").value = '';  
              document.getElementById("inputText4").value = ''; 
            }
            else if (((sharesText !== '') || (averageCost !== '') || (dateText !== '')) && ((sharesText === '') || (averageCost === '') || (dateText === ''))) {
              text2 = "Some fields are empty";
              document.getElementById('demo-portfolio-crypto').style.display = "block";
              document.getElementById("cryptoshares").value = ''; 
              document.getElementById("cryptocost").value = ''; 
              document.getElementById("cryptodate").value = ''; 
              document.getElementById("inputText4").value = ''; 
            }
            else {
              text2 = "Input OK";
              document.getElementById('demo-portfolio-crypto').style.display = "none";
              createLi = true;   

              let cost = document.getElementById('cryptocost').value;
              let shares = document.getElementById('cryptoshares').value;
              let symbol = document.getElementById('inputText4').value;
              let days = document.getElementById('cryptodate').value;

              let settings = {
                shares:shares,
                cost:cost,
                symbol:symbol,
                days:days,
              };
              console.log(JSON.stringify(settings));  

              setTimeout(
                  function() {
                document.getElementById('inputText4').value="";
                document.getElementById("cryptocost").value = ''; 
                document.getElementById("cryptoshares").value = ''; 
                document.getElementById("cryptodate").value = ''; 
                document.getElementById("inputText4").value = ''; 
                  }, 100);

              if ((sharesText !== '') && (averageCost !== '') && (dateText !== '')) {
                fetch("/savePortfolioCryptoSettings", {
                  method: "POST",
                  body: JSON.stringify(settings),
                });
              }
            }
            document.getElementById("demo-portfolio-crypto").innerHTML = text2;
          }

          else {
            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;
        }


// portoflio stuff

  var portfolioCheckbox = document.getElementById("flexCheckChecked4");
  if (portfolioCheckbox.checked) {
    document.getElementById('stocks-portfolio').style.display = "block";
  } else {
    document.getElementById('stocks-portfolio').style.display = "none";
  }


function portfolioValidate() {
  var portfolioCheckbox = document.getElementById("flexCheckChecked4");
  if (portfolioCheckbox.checked) {
    document.getElementById('stocks-portfolio').style.display = "block";
  } else {
    document.getElementById('stocks-portfolio').style.display = "none";
  }
}


// crypto portfolio stuff

var portfolioCryptoCheckbox = document.getElementById("crypto_portfolio_checkbox");
if (portfolioCryptoCheckbox.checked) {
  document.getElementById('crypto-portfolio').style.display = "block";
} else {
  document.getElementById('crypto-portfolio').style.display = "none";
}


function portfolioCryptoValidate() {
  var portfolioCryptoCheckbox = document.getElementById("crypto_portfolio_checkbox");
  if (portfolioCryptoCheckbox.checked) {
    document.getElementById('crypto-portfolio').style.display = "block";
  } else {
    document.getElementById('crypto-portfolio').style.display = "none";
  }
}

