let price = 1.87;
let cid = [
["PENNY", 1.01],
["NICKEL", 2.05],
["DIME", 3.1],
["QUARTER", 4.25],
["ONE", 90],
["FIVE", 55],
["TEN", 20],
["TWENTY", 60],
["ONE HUNDRED", 100]
];
cid.forEach(arr => drawer.innerHTML += `<br>${arr[0]}: $${arr[1]}`)
let reversedCid = cid.slice().reverse();
const purchaseBtn = document.getElementById('purchase-btn');
//to log anything to console easier using log();
const log = arg => console.log(arg);
const priceDiv = document.getElementById('price-div');
let changeDue = document.getElementById('change-due');
const fix = arg => parseFloat((arg).toFixed(2).replace('.00','').replace('.10',.1));
priceDiv.textContent = `price : $${price}`
purchaseBtn.addEventListener('click',()=>{
let cash = document.getElementById('cash').value;
if(cash < price){
alert("Customer does not have enough money to purchase the item");
}else if(cash == price){
changeDue.textContent = "No change due - customer paid with exact cash";
}else{
let x = reversedCid;
let y = cid;
const amount =[100,20,10,5,1,0.25,0.1,0.05,0.01];
let fixedCash = fix(parseFloat(cash -= price));
let due = [ ["ONE HUNDRED", 0],
["TWENTY", 0],
["TEN", 0],
["FIVE", 0],
["ONE", 0],
["QUARTER", 0],
["DIME", 0],
["NICKEL", 0],
["PENNY", 0]
];
amount.forEach((num,index)=>{
while(fixedCash - num >= 0 && (reversedCid[index][1] * 100) % (num * 100) === 0 && reversedCid[index][1] - num >= 0){
fixedCash = fix(fixedCash - num);
due[index][1] = fix(due[index][1] + num);
reversedCid[index][1] = fix(reversedCid[index][1] - num);
}
})
if(fixedCash !== 0){
log(cid)
cid = y;
reversedCid = x;
fixedCash = fix(parseFloat(cash -= price));
changeDue.textContent = "Status: INSUFFICIENT_FUNDS";
}else{
cid = [["PENNY", reversedCid[8][1]],
["NICKEL", reversedCid[7][1]],
["DIME", reversedCid[6][1]],
["QUARTER", reversedCid[5][1]],
["ONE", reversedCid[4][1]],
["FIVE", reversedCid[3][1]],
["TEN", reversedCid[2][1]],
["TWENTY", reversedCid[1][1]],
["ONE HUNDRED", reversedCid[0][1]
]]
drawer.innerHTML = '<b>changes in cid:';
cid.forEach(arr => drawer.innerHTML += `<br>${arr[0]}: $${arr[1]}`)
due = due.filter(num => num[1] !== 0)
changeDue.innerHTML = "Status: OPEN";
due.forEach(arr => changeDue.innerHTML += `<br>${arr[0]}: $${arr[1]}`)
}
}
})