Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     const addBtn = document.querySelector("body > form > button");
  3.     let [bookInput, yearInput, priceInput] = Array.from(document.querySelectorAll("form > input"));
  4.     const bookShelfOldBooks = document.querySelector("#outputs > section:nth-child(1) > div");
  5.     const bookShelfNewBooks = document.querySelector("#outputs > section:nth-child(2) > div");
  6.     let priceWrapper = document.querySelector("body > h1:nth-child(3)");
  7.     let price = 0;
  8.  
  9.     addBtn.addEventListener('click', (e) => {
  10.         e.preventDefault();
  11.         checkForValidInputs();
  12.     });
  13.  
  14.     function checkForValidInputs() {
  15.         let year = Number(yearInput.value);
  16.         let price = Number(priceInput.value);
  17.         let type = '';
  18.         if (bookInput.value !== '' && year > 0 && price > 0) {
  19.             if (year >= 2000) {
  20.                 type = 'new';
  21.             } else {
  22.                 type = 'old';
  23.             }
  24.             addNewBook(type, year, price);
  25.         }
  26.     }
  27.  
  28.     function addNewBook(type, y, p) {
  29.         let divBook = document.createElement('div');
  30.         divBook.classList.add('book');
  31.  
  32.         let par = document.createElement('p');
  33.         par.textContent = `${bookInput.value} [${y}]`;
  34.  
  35.         let buyBtn = document.createElement('button');
  36.         buyBtn.textContent = `Buy it only for ${p.toFixed(2)} BGN`;
  37.         buyBtn.addEventListener('click', (e) => removeBookAndIcreaseProfit(p, e, type));
  38.  
  39.  
  40.         divBook.appendChild(par);
  41.         divBook.appendChild(buyBtn);
  42.  
  43.         if (type === 'new') {
  44.             let newBooksBtn = document.createElement('button');
  45.             newBooksBtn.textContent = `Move to old section`;
  46.             newBooksBtn.addEventListener('click', () => moveToOldSection(divBook, newBooksBtn));
  47.  
  48.             divBook.appendChild(newBooksBtn);
  49.  
  50.             bookShelfNewBooks.appendChild(divBook);
  51.         } else {
  52.             p = p * 0.85;
  53.             buyBtn.textContent = `Buy it only for ${p.toFixed(2)} BGN`;
  54.             bookShelfOldBooks.appendChild(divBook);
  55.  
  56.         }
  57.  
  58.     }
  59.  
  60.     function removeBookAndIcreaseProfit(p, e, type) {
  61.         price += p;
  62.         priceWrapper.textContent = `Total Store Profit: ${+price.toFixed(2)} BGN`;
  63.         let elementToRemove = e.target.parentElement;
  64.         if (type === 'new') {
  65.             bookShelfNewBooks.removeChild(elementToRemove);
  66.         } else {
  67.             bookShelfOldBooks.removeChild(elementToRemove);
  68.         }
  69.  
  70.  
  71.     }
  72.  
  73.     function moveToOldSection(child, btnToRemove) {
  74.         bookShelfNewBooks.removeChild(child);
  75.         child.removeChild(btnToRemove);
  76.         bookShelfOldBooks.appendChild(child);
  77.  
  78.     }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement