-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
110 lines (97 loc) · 3.12 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
const ambulanceData = [
{
id: 1,
type: "Basic Ambulance",
availability: "Available",
cost: 150,
image: "./basic-ambulance.jpg",
},
{
id: 2,
type: "Advanced Ambulance",
availability: "Available",
cost: 300,
image: "./advanced-ambulance.jpg",
},
{
id: 3,
type: "ICU Ambulance",
availability: "Unavailable",
cost: 500,
image: "./icu-ambulance.jpg",
},
];
const ambulanceList = document.getElementById("ambulanceList");
const searchInput = document.getElementById("searchInput");
const sortSelect = document.getElementById("sortSelect");
function displayAmbulances(ambulances) {
ambulanceList.innerHTML = "";
ambulances.forEach((ambulance) => {
ambulanceList.innerHTML += `
<div class="col-md-4">
<div class="card mb-4">
<img src="${ambulance.image}" class="card-img-top" alt="Ambulance Image">
<div class="card-body">
<h5 class="card-title">${ambulance.type}</h5>
<p class="card-text">Cost: $${ambulance.cost}</p>
<p class="card-text">Availability: ${ambulance.availability}</p>
</div>
</div>
</div>
`;
});
}
// Initial display
displayAmbulances(ambulanceData);
// Search functionality
searchInput.addEventListener("input", function () {
const query = searchInput.value.toLowerCase();
const filteredAmbulances = ambulanceData.filter((ambulance) => ambulance.type.toLowerCase().includes(query));
displayAmbulances(filteredAmbulances);
});
// Sorting functionality
sortSelect.addEventListener("change", function () {
let sortedAmbulances = [...ambulanceData];
if (sortSelect.value === "costLowHigh") {
sortedAmbulances.sort((a, b) => a.cost - b.cost);
} else if (sortSelect.value === "costHighLow") {
sortedAmbulances.sort((a, b) => b.cost - a.cost);
}
displayAmbulances(sortedAmbulances);
});
document.getElementById("contactForm").addEventListener("submit", function (event) {
event.preventDefault();
const name = document.getElementById("name").value.trim();
const phone = document.getElementById("phone").value.trim();
const location = document.getElementById("location").value.trim();
const ambulanceType = document.getElementById("ambulanceType").value.trim();
const message = document.getElementById("message").value.trim();
let isValid = true;
let errorMessage = '';
if (name === "") {
errorMessage += "Please enter your name.\n";
isValid = false;
}
const phonePattern = /^[0-9]{10}$/; // 10 digit phone number
if (phone === "") {
errorMessage += "Please enter your phone number.\n";
isValid = false;
} else if (!phonePattern.test(phone)) {
errorMessage += "Please enter a valid 10-digit phone number.\n";
isValid = false;
}
if (location === "") {
errorMessage += "Please enter your location.\n";
isValid = false;
}
if (ambulanceType === "") {
errorMessage += "Please select an ambulance type.\n";
isValid = false;
}
if (isValid) {
alert("An Ambulance has been requested for your location, and will arrive shortly.");
document.getElementById("contactForm").reset();
} else {
alert(errorMessage);
}
});