Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve() {
- // TODO
- let sum=0;
- // probably can get it done with one function for tickets with nearest section and then grab its classname but i like it this way maybe longer but cleaner for read and debug
- let allTickets={
- "Litex":[],
- "Levski":[],
- "Vip":[]
- }
- Array.from(document.querySelectorAll(".Litex table tbody tr td button"))
- .forEach(element => {element.addEventListener('click',(ev)=> LitexTickets(ev));});
- Array.from(document.querySelectorAll(".Levski table tbody tr td button"))
- .forEach(element => {element.addEventListener('click',(ev)=> LevskiTickets(ev));});
- Array.from(document.querySelectorAll(".VIP table tbody tr td button"))
- .forEach(element => {element.addEventListener('click',(ev)=> VipTickets(ev));});
- document.querySelector('#summary button').addEventListener("click",Report);
- const spanDiv=document.querySelector('#summary span');
- function LitexTickets(ev){
- const rows = document.querySelectorAll('.Litex table tr');
- const rowsArray = Array.from(rows);
- const rowIndex = rowsArray.findIndex(row => row.contains(ev.target));
- const columns = Array.from(rowsArray[rowIndex].querySelectorAll('.Litex table td'));
- const columnIndex = columns.findIndex(column => column.contains(ev.target));
- ProcessTickets(ev,"Litex",columnIndex);
- }
- function LevskiTickets(ev){
- const rows = document.querySelectorAll('.Levski table tr');
- const rowsArray = Array.from(rows);
- const rowIndex = rowsArray.findIndex(row => row.contains(ev.target));
- const columns = Array.from(rowsArray[rowIndex].querySelectorAll('.Levski table td'));
- const columnIndex = columns.findIndex(column => column.contains(ev.target));
- ProcessTickets(ev,"Levski",columnIndex);
- }
- function VipTickets(ev){
- const rows = document.querySelectorAll('.VIP table tr');
- const rowsArray = Array.from(rows);
- const rowIndex = rowsArray.findIndex(row => row.contains(ev.target));
- const columns = Array.from(rowsArray[rowIndex].querySelectorAll('.VIP table td'));
- const columnIndex = columns.findIndex(column => column.contains(ev.target));
- ProcessVipTickets(ev,"Vip",columnIndex);
- }
- function ProcessVipTickets(e,team,index){
- let seat=Number(e.target.innerHTML);
- let sector=index==0?'A':index==1?'B':'C';
- let seatCode=sector+seat;
- let taken=allTickets[team].includes(seatCode);
- let textArea=document.getElementById("output");
- let result='';
- if(taken){
- result=` Seat ${seat} in zone ${team} sector ${sector} is unavailable.\n`;
- }
- else{
- allTickets[team].push(seatCode);
- e.target.setAttribute("style", "background-color:rgb(255,0,0)");
- let price= index==0?25:index==1?15:10;
- sum+=price;
- result=` Seat ${seat} in zone ${team} sector ${sector} was taken.\n`;
- }
- textArea.value+=result;
- console.log(seat);
- }
- function ProcessTickets(e,team,index){
- let seat=Number(e.target.innerHTML);
- let sector=index==0?'A':index==1?'B':'C';
- let seatCode=sector+seat;
- let taken=allTickets[team].includes(seatCode);
- let textArea=document.getElementById("output");
- let result='';
- if(taken){
- result=` Seat ${seat} in zone ${team} sector ${sector} is unavailable.\n`;
- }
- else{
- allTickets[team].push(seatCode);
- e.target.setAttribute("style", "background-color:rgb(255,0,0)");
- let price= index==0?10:index==1?7:5;
- sum+=price;
- result=` Seat ${seat} in zone ${team} sector ${sector} was taken.\n`;
- }
- textArea.value+=result;
- console.log(seat);
- }
- function Report(){
- let allFans=0;
- for (const value of Object.values(allTickets)) {
- allFans+=value.length;
- }
- let result=`${sum} leva, ${allFans} fans.`
- spanDiv.textContent= result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment