99 lines
4.1 KiB
JavaScript
99 lines
4.1 KiB
JavaScript
let currentLang = 'ru';
|
|
|
|
|
|
function updateLanguage() {
|
|
const language = langData[currentLang];
|
|
|
|
document.getElementById("header").textContent = language.header;
|
|
document.getElementById("dTaxLabel").textContent = language.dTaxLabel;
|
|
document.getElementById("dPriceLabel").textContent = language.dPriceLabel;
|
|
document.getElementById("dConsLabel").textContent = language.dConsLabel;
|
|
document.getElementById("pTaxLabel").textContent = language.pTaxLabel;
|
|
document.getElementById("pPriceLabel").textContent = language.pPriceLabel;
|
|
document.getElementById("pConsLabel").textContent = language.pConsLabel;
|
|
document.getElementById("annualKmLabel").textContent = language.annualKmLabel;
|
|
document.getElementById("resultText1").textContent = language.resultText1;
|
|
document.getElementById("resultText2").textContent = language.resultText2;
|
|
document.getElementById("resultText3").textContent = language.resultText3;
|
|
document.getElementById("resultText4").textContent = language.resultText4;
|
|
document.getElementById("tableDistance").textContent = language.tableDistance;
|
|
document.getElementById("tableDieselTotal").textContent = language.tableDieselTotal;
|
|
document.getElementById("tablePetrolTotal").textContent = language.tablePetrolTotal;
|
|
document.getElementById("tableDifference").textContent = language.tableDifference;
|
|
|
|
calculate();
|
|
}
|
|
|
|
|
|
document.querySelector('#language-toggle').addEventListener('click', () => {
|
|
currentLang = (currentLang === 'en') ? 'ru' : 'en';
|
|
updateLanguage();
|
|
});
|
|
|
|
document.querySelector('#dark-mode-toggle').addEventListener('click', () => {
|
|
document.body.classList.toggle('dark-mode');
|
|
});
|
|
|
|
function calculate() {
|
|
const dTax = parseFloat(document.getElementById("dTax").value);
|
|
const dPrice = parseFloat(document.getElementById("dPrice").value);
|
|
const dCons = parseFloat(document.getElementById("dCons").value);
|
|
const pTax = parseFloat(document.getElementById("pTax").value);
|
|
const pPrice = parseFloat(document.getElementById("pPrice").value);
|
|
const pCons = parseFloat(document.getElementById("pCons").value);
|
|
const annualKm = parseFloat(document.getElementById("annualKm").value);
|
|
|
|
const dieselCostPerKm = (dPrice * dCons) / 100;
|
|
const petrolCostPerKm = (pPrice * pCons) / 100;
|
|
|
|
const dieselAnnualCost = (dTax + (dieselCostPerKm * annualKm));
|
|
const petrolAnnualCost = (pTax + (petrolCostPerKm * annualKm));
|
|
|
|
const diff = Math.abs(dieselAnnualCost - petrolAnnualCost);
|
|
|
|
let breakEvenCons = 0;
|
|
if (dCons < pCons || dTax > pTax) {
|
|
breakEvenCons = (pCons - ((dTax - pTax) / (annualKm * (pPrice - dPrice))));
|
|
if (breakEvenCons <= 0) breakEvenCons = 0;
|
|
}
|
|
|
|
let minDieselPrice = 0;
|
|
if (dPrice < pPrice || dTax > pTax) {
|
|
minDieselPrice = (pPrice - ((dTax - pTax) / (annualKm * (pCons - dCons))));
|
|
if (minDieselPrice <= 0) minDieselPrice = 0;
|
|
}
|
|
|
|
document.getElementById("displayKm").textContent = annualKm.toLocaleString();
|
|
document.getElementById("breakEvenCons").textContent = breakEvenCons.toFixed(2);
|
|
document.getElementById("minDieselPrice").textContent = minDieselPrice.toFixed(2);
|
|
|
|
const tbody = document.getElementById("comparisonTable").getElementsByTagName('tbody')[0];
|
|
tbody.innerHTML = '';
|
|
|
|
for (let i = 10000; i <= 50000; i += 5000) {
|
|
const row = tbody.insertRow();
|
|
const cell1 = row.insertCell(0);
|
|
const cell2 = row.insertCell(1);
|
|
const cell3 = row.insertCell(2);
|
|
const cell4 = row.insertCell(3);
|
|
|
|
const dCost = (dTax + ((dPrice * dCons) / 100 * i)).toFixed(2);
|
|
const pCost = (pTax + ((pPrice * pCons) / 100 * i)).toFixed(2);
|
|
const diffCost = (parseFloat(pCost) - parseFloat(dCost)).toFixed(2);
|
|
|
|
cell1.innerHTML = "<strong>" + i.toLocaleString() + "</strong>";
|
|
cell2.innerHTML = dCost + " €";
|
|
cell3.innerHTML = pCost + " €";
|
|
cell4.innerHTML = diffCost + " €";
|
|
|
|
if (diffCost > 0) {
|
|
cell4.className = "saving";
|
|
} else {
|
|
cell4.className = "loss";
|
|
}
|
|
}
|
|
}
|
|
|
|
calculate();
|
|
updateLanguage();
|