Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve() {
- let allButtons = Array.from(document.querySelectorAll('section table tbody tr td button'));
- let outputElement = document.getElementById('output');
- let summaryChildren = document.getElementById('summary').children;
- summaryChildren[0].addEventListener('click', summaryEvent)
- let profit = 0;
- let fans = 0;
- let team;
- let sector;
- let seat;
- allButtons.map((x, index) => {
- let reminder = index % 3;
- switch (reminder) {
- case 0:
- x.addEventListener('click', sectorAEvent);
- break;
- case 1:
- x.addEventListener('click', sectorBEvent);
- break;
- case 2:
- x.addEventListener('click', sectorCEvent);
- break;
- }
- });
- function summaryEvent() {
- let summarySpan = document.getElementsByTagName('span')[0];
- summarySpan.textContent = `${profit} leva, ${fans} fans.`
- }
- function sectorAEvent(e) {
- let button = e.target;
- let isAvailableResult = isAvailable(button);
- seat = e.target.textContent;
- sector = 'A';
- team = getTeam(button);
- if (isAvailableResult) {
- fans++;
- changeButtonsColor(button);
- profit = addProfit(sector, team, profit);
- }
- appendCurrentResult(isAvailableResult, seat, team, sector);
- };
- function sectorBEvent(e) {
- let button = e.target;
- let isAvailableResult = isAvailable(button);
- seat = e.target.textContent;
- sector = 'B';
- team = getTeam(button);
- if (isAvailableResult) {
- fans++;
- changeButtonsColor(button);
- profit = addProfit(sector, team, profit);
- }
- appendCurrentResult(isAvailableResult, seat, team, sector);
- };
- function sectorCEvent(e) {
- let button = e.target;
- let isAvailableResult = isAvailable(button);
- seat = e.target.textContent;
- sector = 'C';
- team = getTeam(button);
- if (isAvailableResult) {
- fans++;
- changeButtonsColor(button);
- profit = addProfit(sector, team, profit);
- }
- appendCurrentResult(isAvailableResult, seat, team, sector);
- };
- function isAvailable(button) {
- if (button.style.backgroundColor === 'rgb(255, 0, 0)') {
- return false;
- }
- return true;
- };
- function addProfit(sector, team, profit) {
- switch (team) {
- case 'Levski':
- case 'Litex':
- switch (sector) {
- case 'A': profit += 10; break;
- case 'B': profit += 7; break;
- case 'C': profit += 5;break;
- }; break;
- case 'VIP':
- switch (sector) {
- case 'A':profit += 25; break;
- case 'B': profit += 15; break;
- case 'C': profit += 10; break;
- }; break;
- }
- return profit;
- };
- function changeButtonsColor(button) {
- button.style.backgroundColor = 'rgb(255,0,0)';
- };
- function appendCurrentResult(available, seat, team, sector) {
- let result;
- if (available) {
- result = ` Seat ${seat} in zone ${team} sector ${sector} was taken.\n`;
- }else{
- result = ` Seat ${seat} in zone ${team} sector ${sector} is unavailable.\n`
- }
- outputElement.textContent += result;
- };
- function getTeam(button) {
- let sectionDiv = button.parentNode.parentNode.parentNode.parentNode.parentNode;
- if (sectionDiv.classList.contains('Levski')) {
- return 'Levski';
- } else if (sectionDiv.classList.contains('Litex')) {
- return 'Litex'
- } else if (sectionDiv.classList.contains('VIP')) {
- return 'VIP';
- }
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment