|
|
document.addEventListener('DOMContentLoaded', function() { |
|
|
|
|
|
const cars = [ |
|
|
{ |
|
|
id: 1, |
|
|
name: "Ferrari SF90 Stradale", |
|
|
description: "Hybrid supercar with 986 horsepower", |
|
|
image: "http://static.photos/automotive/640x360/10", |
|
|
specs: { |
|
|
engine: "4.0L V8 + 3 electric motors", |
|
|
horsepower: 986, |
|
|
torque: "800 Nm", |
|
|
topSpeed: "340 km/h" |
|
|
} |
|
|
}, |
|
|
{ |
|
|
id: 2, |
|
|
name: "Porsche Taycan Turbo S", |
|
|
description: "High-performance electric sedan", |
|
|
image: "http://static.photos/automotive/640x360/11", |
|
|
specs: { |
|
|
engine: "Dual electric motors", |
|
|
horsepower: 750, |
|
|
torque: "1050 Nm", |
|
|
topSpeed: "260 km/h" |
|
|
} |
|
|
}, |
|
|
{ |
|
|
id: 3, |
|
|
name: "Lamborghini Huracán EVO", |
|
|
description: "Naturally aspirated V10 supercar", |
|
|
image: "http://static.photos/automotive/640x360/12", |
|
|
specs: { |
|
|
engine: "5.2L V10", |
|
|
horsepower: 630, |
|
|
torque: "600 Nm", |
|
|
topSpeed: "325 km/h" |
|
|
} |
|
|
} |
|
|
]; |
|
|
|
|
|
|
|
|
const monitoredWebsites = [ |
|
|
{ url: "https://tesla.com", status: "up", lastChecked: "2023-06-15T10:30:00Z" }, |
|
|
{ url: "https://porsche.com", status: "up", lastChecked: "2023-06-15T10:35:00Z" }, |
|
|
{ url: "https://ferrari.com", status: "down", lastChecked: "2023-06-15T10:40:00Z" } |
|
|
]; |
|
|
|
|
|
|
|
|
const carShowcase = document.querySelector('#showcase .grid'); |
|
|
cars.forEach(car => { |
|
|
const carCard = document.createElement('div'); |
|
|
carCard.className = 'bg-white rounded-xl shadow-md overflow-hidden card-hover'; |
|
|
carCard.innerHTML = ` |
|
|
<img src="${car.image}" alt="${car.name}" class="w-full h-48 object-cover"> |
|
|
<div class="p-6"> |
|
|
<h3 class="font-bold text-xl mb-2">${car.name}</h3> |
|
|
<p class="text-gray-600 mb-4">${car.description}</p> |
|
|
<div class="flex justify-between items-center"> |
|
|
<span class="text-sm text-gray-500">${car.specs.horsepower} HP</span> |
|
|
<a href="#" class="text-red-600 hover:text-red-700 font-semibold">Details →</a> |
|
|
</div> |
|
|
</div> |
|
|
`; |
|
|
carShowcase.appendChild(carCard); |
|
|
}); |
|
|
|
|
|
|
|
|
const monitorTable = document.getElementById('monitor-table'); |
|
|
monitoredWebsites.forEach(site => { |
|
|
const row = document.createElement('tr'); |
|
|
row.className = 'border-t hover:bg-gray-50'; |
|
|
|
|
|
const statusClass = site.status === 'up' ? 'status-up' : |
|
|
site.status === 'down' ? 'status-down' : 'status-pending'; |
|
|
|
|
|
row.innerHTML = ` |
|
|
<td class="px-4 py-3">${site.url}</td> |
|
|
<td class="px-4 py-3"><span class="${statusClass}">${site.status}</span></td> |
|
|
<td class="px-4 py-3">${new Date(site.lastChecked).toLocaleString()}</td> |
|
|
`; |
|
|
monitorTable.appendChild(row); |
|
|
}); |
|
|
|
|
|
|
|
|
const monitorForm = document.getElementById('monitor-form'); |
|
|
monitorForm.addEventListener('submit', function(e) { |
|
|
e.preventDefault(); |
|
|
const urlInput = this.querySelector('input[type="url"]'); |
|
|
const url = urlInput.value.trim(); |
|
|
|
|
|
if (url) { |
|
|
|
|
|
alert(`Starting to monitor: ${url}\n(Would call API in real implementation)`); |
|
|
urlInput.value = ''; |
|
|
} |
|
|
}); |
|
|
|
|
|
|
|
|
function handleResize() { |
|
|
|
|
|
} |
|
|
|
|
|
window.addEventListener('resize', handleResize); |
|
|
handleResize(); |
|
|
}); |