Aliendreamer

js stadion two

Feb 5th, 2019
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     let allButtons = Array.from(document.querySelectorAll('section table tbody tr td button'));
  3.     let outputElement = document.getElementById('output');
  4.     let summaryChildren = document.getElementById('summary').children;
  5.     summaryChildren[0].addEventListener('click', summaryEvent)
  6.     let profit = 0;
  7.     let fans = 0;
  8.     let team;
  9.     let sector;
  10.     let seat;
  11.  
  12.     allButtons.map((x, index) => {
  13.         let reminder = index % 3;
  14.  
  15.         switch (reminder) {
  16.             case 0:
  17.                 x.addEventListener('click', sectorAEvent);
  18.                 break;
  19.             case 1:
  20.                 x.addEventListener('click', sectorBEvent);
  21.                 break;
  22.             case 2:
  23.                 x.addEventListener('click', sectorCEvent);
  24.                 break;
  25.         }
  26.     });
  27.  
  28.     function summaryEvent() {
  29.         let summarySpan = document.getElementsByTagName('span')[0];
  30.         summarySpan.textContent = `${profit} leva, ${fans} fans.`
  31.     }
  32.  
  33.     function sectorAEvent(e) {
  34.         let button = e.target;
  35.         let isAvailableResult = isAvailable(button);
  36.         seat = e.target.textContent;
  37.         sector = 'A';
  38.         team = getTeam(button);
  39.  
  40.         if (isAvailableResult) {
  41.             fans++;
  42.             changeButtonsColor(button);
  43.             profit = addProfit(sector, team, profit);
  44.         }
  45.         appendCurrentResult(isAvailableResult, seat, team, sector);
  46.     };
  47.  
  48.     function sectorBEvent(e) {
  49.         let button = e.target;
  50.         let isAvailableResult = isAvailable(button);
  51.         seat = e.target.textContent;
  52.         sector = 'B';
  53.         team = getTeam(button);
  54.  
  55.         if (isAvailableResult) {
  56.             fans++;
  57.             changeButtonsColor(button);
  58.             profit = addProfit(sector, team, profit);
  59.         }
  60.         appendCurrentResult(isAvailableResult, seat, team, sector);
  61.     };
  62.  
  63.     function sectorCEvent(e) {
  64.         let button = e.target;
  65.         let isAvailableResult = isAvailable(button);
  66.         seat = e.target.textContent;
  67.         sector = 'C';
  68.         team = getTeam(button);
  69.  
  70.         if (isAvailableResult) {
  71.             fans++;
  72.             changeButtonsColor(button);
  73.             profit = addProfit(sector, team, profit);
  74.         }
  75.         appendCurrentResult(isAvailableResult, seat, team, sector);
  76.     };
  77.  
  78.     function isAvailable(button) {
  79.         if (button.style.backgroundColor === 'rgb(255, 0, 0)') {
  80.             return false;
  81.         }
  82.         return true;
  83.     };
  84.  
  85.     function addProfit(sector, team, profit) {
  86.         switch (team) {
  87.             case 'Levski':
  88.             case 'Litex':
  89.                 switch (sector) {
  90.                     case 'A': profit += 10; break;
  91.                     case 'B': profit += 7; break;
  92.                     case 'C': profit += 5;break;
  93.                 }; break;
  94.             case 'VIP':
  95.                 switch (sector) {
  96.                     case 'A':profit += 25; break;
  97.                     case 'B': profit += 15; break;
  98.                     case 'C': profit += 10; break;
  99.                 }; break;
  100.         }
  101.         return profit;
  102.     };
  103.  
  104.     function changeButtonsColor(button) {
  105.         button.style.backgroundColor = 'rgb(255,0,0)';
  106.     };
  107.  
  108.     function appendCurrentResult(available, seat, team, sector) {
  109.         let result;
  110.         if (available) {
  111.             result = ` Seat ${seat} in zone ${team} sector ${sector} was taken.\n`;
  112.         }else{
  113.             result = ` Seat ${seat} in zone ${team} sector ${sector} is unavailable.\n`
  114.         }
  115.         outputElement.textContent += result;
  116.     };
  117.  
  118.     function getTeam(button) {
  119.         let sectionDiv = button.parentNode.parentNode.parentNode.parentNode.parentNode;
  120.  
  121.         if (sectionDiv.classList.contains('Levski')) {
  122.             return 'Levski';
  123.         } else if (sectionDiv.classList.contains('Litex')) {
  124.             return 'Litex'
  125.         } else if (sectionDiv.classList.contains('VIP')) {
  126.             return 'VIP';
  127.         }
  128.     };
  129. }
Advertisement
Add Comment
Please, Sign In to add comment