Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let priceMap = ((type) => {
- if (type === "online") {
- return {
- "js-fundamentals": 170 * 0.94,
- "js-advanced": 180 * 0.94,
- "js-applications": 190 * 0.94,
- "js-web": 490 * 0.94,
- };
- } else {
- return {
- "js-fundamentals": 170,
- "js-advanced": 180,
- "js-applications": 190,
- "js-web": 490,
- };
- }
- })();
- function solve() {
- let listCourses = document.querySelector("#myCourses > div.courseBody > ul");
- function buttonAction() {
- let type = "";
- let selectedOptions = [];
- Array
- .from(document.querySelectorAll("input"))
- .filter(el => el.checked === true)
- .forEach(el => el.value.includes("js") ? selectedOptions.push(el.value) : type = el.value);
- let price = Math.floor(calculatePrice(selectedOptions));
- addToHTMLList(selectedOptions);
- let priceForm = document.querySelector("#myCourses > div.courseFoot > p");
- let currentPrice = Number(priceForm.innerHTML.split(" ")[1]);
- let sum = currentPrice + price;
- priceForm.innerHTML = `Cost: ${sum}.00 BGN`;
- }
- function addToHTMLList(selectedOptions) {
- selectedOptions.forEach(el => addToCourse(el));
- }
- function transformName(rawName) {
- let name = rawName.split("-")[1];
- return `JS-${name.charAt(0).toUpperCase() + name.slice(1)}`;
- }
- function addToCourse(courseName) {
- if (courseName !== "HTML and CSS") {
- courseName = transformName(courseName);
- }
- let applications = document.createElement("li");
- applications.innerHTML = courseName;
- listCourses.appendChild(applications);
- }
- function calculatePrice(selectedOptions) {
- let coursesToAdd = selectedOptions.slice(0, selectedOptions.length);
- let price = 0;
- if (coursesToAdd.indexOf("js-fundamentals") !== -1 && coursesToAdd.indexOf("js-advanced") !== -1) {
- price += priceMap[coursesToAdd.shift()] + (priceMap[coursesToAdd.shift()] * 0.90);
- if (coursesToAdd.indexOf("js-applications") !== -1) {
- price = (price + priceMap[coursesToAdd.shift()]) * 0.94;
- }
- if (coursesToAdd.length === 1) {
- price += priceMap[coursesToAdd.shift()];
- selectedOptions.push('HTML and CSS');
- }
- }
- while (coursesToAdd.length > 0) {
- price += priceMap[coursesToAdd.shift()];
- }
- return price;
- }
- document.querySelector("#availableCourses > div.courseFoot > button").addEventListener("click", buttonAction);
- }
- solve();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement