diff --git a/company.js b/company.js
index 8b13789..41639bc 100644
--- a/company.js
+++ b/company.js
@@ -1 +1,173 @@
+const employeeName = document.getElementById("employeeName");
+const employeeSalary = document.getElementById("employeeSalary");
+const employeeType = document.getElementById("employeeType");
+const managerDepartment = document.getElementById("managerDepartment");
+const engineerExperience = document.getElementById("engineerExperience");
+const managerDepartmentLabel = document.getElementById(
+ "managerDepartmentLabel"
+);
+const engineerExperienceLabel = document.getElementById(
+ "engineerExperienceLabel"
+);
+const employeeForm = document.getElementById("employeeForm");
+const submitButton = document.getElementById("submit");
+const results = document.querySelector(".results");
+////////////////////
+class Employee {
+ constructor(name, salary) {
+ this.name = name;
+ this.salary = salary;
+ }
+ calculateAnnualSalary() {
+ return this.salary * 12;
+ }
+}
+class Manager extends Employee {
+ constructor(name, salary, department) {
+ super(name, salary);
+ this.department = department;
+ }
+ calculateAnnualSalary() {
+ const baseSalary = super.calculateAnnualSalary();
+ const bonus = baseSalary * 0.1;
+ const totalSalary = Math.floor(baseSalary) + Math.floor(bonus);
+ return { totalSalary, bonus };
+ }
+}
+class Engineer extends Employee {
+ constructor(name, salary, department, experienceYears) {
+ super(name, salary);
+ this.department = department;
+ this.experienceYears = experienceYears;
+ }
+ calculateAnnualSalary() {
+ if (this.experienceYears >= 5) {
+ const baseSalary = super.calculateAnnualSalary();
+ const bonus = baseSalary * 0.1;
+ const totalSalary = baseSalary + Math.floor(bonus);
+ return { totalSalary, bonus };
+ } else {
+ const baseSalary = super.calculateAnnualSalary();
+ const bonus = 0;
+ const totalSalary = baseSalary + Math.floor(bonus);
+ return { totalSalary, bonus };
+ }
+ }
+}
+
+employeeType.addEventListener("change", (e) => {
+ if (employeeType.value === "employee") {
+ managerDepartment.style.display = "none";
+ managerDepartmentLabel.style.display = "none";
+ engineerExperience.style.display = "none";
+ engineerExperienceLabel.style.display = "none";
+ return;
+ }
+ if (employeeType.value === "manager") {
+ managerDepartment.style.display = "block";
+ managerDepartmentLabel.style.display = "block";
+ engineerExperience.style.display = "none";
+ engineerExperienceLabel.style.display = "none";
+ return;
+ }
+ if (employeeType.value === "engineer") {
+ managerDepartment.style.display = "block";
+ managerDepartmentLabel.style.display = "block";
+ engineerExperience.style.display = "block";
+ engineerExperienceLabel.style.display = "block";
+ }
+});
+submitButton.addEventListener("click", (e) => {
+ e.preventDefault();
+ const mainDiv = document.createElement("div");
+ const employeeAndSalaryDiv = document.createElement("div");
+ const employeeDiv = document.createElement("div");
+ const salaryDiv = document.createElement("div");
+ const employeeImg = document.createElement("img");
+ const employeeInfo = document.createElement("p");
+ const salaryInfo = document.createElement("p");
+ mainDiv.classList.add("employee-card");
+ employeeAndSalaryDiv.classList.add("employeeAndSalaryDiv");
+ salaryDiv.classList.add("salaryDiv");
+ employeeDiv.classList.add("employeeDiv");
+ //////////////
+ if (employeeType.value === "employee") {
+ const employee = new Employee(employeeName.value, employeeSalary.value);
+ employeeInfo.innerHTML = `Employee Info :
+ Name: ${employee.name}
+ Department: ${employeeType.value} `;
+ salaryInfo.innerHTML = `Salary Info :
+ Salary : ${employee.salary} $
+ Annual Salary: ${employee.calculateAnnualSalary()} $
+ Bonus: 0 $`;
+ employeeImg.src = "/image/employee.png";
+ employeeDiv.appendChild(employeeInfo);
+ salaryDiv.appendChild(salaryInfo);
+ employeeAndSalaryDiv.appendChild(employeeDiv);
+ employeeAndSalaryDiv.appendChild(salaryDiv);
+ mainDiv.appendChild(employeeImg);
+ mainDiv.appendChild(employeeAndSalaryDiv);
+ results.appendChild(mainDiv);
+ }
+ if (employeeType.value === "manager") {
+ const manager = new Manager(
+ employeeName.value,
+ employeeSalary.value,
+ managerDepartment.value
+ );
+ const { totalSalary, bonus } = manager.calculateAnnualSalary();
+ console.log(manager.calculateAnnualSalary().bonus);
+ employeeInfo.innerHTML = `Employee Info :
+ Name: ${manager.name}
+ Department: ${employeeType.value}
+ Manager of : ${manager.department}`;
+ salaryInfo.innerHTML = `Salary Info :
+ Salary : ${manager.salary} $
+ Annual Salary: ${totalSalary} $
+ Annual Bonus: ${bonus} $`;
+ employeeImg.src = "/image/manager.png";
+
+ employeeDiv.appendChild(employeeInfo);
+ salaryDiv.appendChild(salaryInfo);
+ employeeAndSalaryDiv.appendChild(employeeDiv);
+ employeeAndSalaryDiv.appendChild(salaryDiv);
+ mainDiv.appendChild(employeeImg);
+ mainDiv.appendChild(employeeAndSalaryDiv);
+ results.appendChild(mainDiv);
+ }
+ if (employeeType.value === "engineer") {
+ const engineer = new Engineer(
+ employeeName.value,
+ employeeSalary.value,
+ managerDepartment.value,
+ engineerExperience.value
+ );
+ const { totalSalary, bonus } = engineer.calculateAnnualSalary();
+ employeeInfo.innerHTML = `Employee Info :
+ Name: ${engineer.name}
+ Department: ${employeeType.value}
+ Manager of: ${engineer.department}`;
+ salaryInfo.innerHTML = `Salary Info :
+ Salary : ${engineer.salary} $
+ Annual Salary: ${totalSalary} $
+ Annual Bonus: ${bonus} $`;
+ employeeImg.src = "/image/engineer.png";
+
+ employeeDiv.appendChild(employeeInfo);
+ salaryDiv.appendChild(salaryInfo);
+ employeeAndSalaryDiv.appendChild(employeeDiv);
+ employeeAndSalaryDiv.appendChild(salaryDiv);
+ mainDiv.appendChild(employeeImg);
+ mainDiv.appendChild(employeeAndSalaryDiv);
+ results.appendChild(mainDiv);
+ }
+});
+const darkModeToggle = document.getElementById("darkModeToggle");
+const body = document.body;
+
+darkModeToggle.addEventListener("click", () => {
+ body.classList.toggle("dark");
+ body.style.transition = "0.5s";
+
+});
diff --git a/image/employee.png b/image/employee.png
new file mode 100644
index 0000000..7f04bcb
Binary files /dev/null and b/image/employee.png differ
diff --git a/image/engineer.png b/image/engineer.png
new file mode 100644
index 0000000..f48098d
Binary files /dev/null and b/image/engineer.png differ
diff --git a/image/manager.png b/image/manager.png
new file mode 100644
index 0000000..426f718
Binary files /dev/null and b/image/manager.png differ
diff --git a/index.html b/index.html
index b0ff8bc..eae5d1a 100644
--- a/index.html
+++ b/index.html
@@ -7,15 +7,17 @@