-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
207 lines (163 loc) · 6.19 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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
// Function to update time
function updateTime() {
const now = new Date();
// Add 1 hour, 31 minutes, and 27 seconds to the current time
now.setHours(now.getHours() + 0);
now.setMinutes(now.getMinutes() + 0);
now.setSeconds(now.getSeconds() + 0);
const daysOfWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
const dayOfWeek = daysOfWeek[now.getDay()];
const month = months[now.getMonth()];
const day = now.getDate();
let hours = now.getHours();
const minutes = now.getMinutes().toString().padStart(2, '0');
const seconds = now.getSeconds().toString().padStart(2, '0');
let timeOfDay = 'AM';
if (hours >= 12) {
timeOfDay = 'PM';
}
if (hours > 12) {
hours -= 12;
}
hours = hours === 0 ? 12 : hours;
const timeString = `${hours}:${minutes}:${seconds} ${timeOfDay}`;
const dateString = `${dayOfWeek}, ${month} ${day}`;
const fontColor = document.getElementById('fontColor').value;
document.getElementById('clock').textContent = timeString;
document.getElementById('date').textContent = dateString;
document.getElementById('clock').style.color = fontColor;
document.getElementById('date').style.color = fontColor;
document.title = timeString;
}
// Update time every second
setInterval(updateTime, 1000);
// Initial call to display the time immediately
updateTime();
let hideTimeoutColorPicker;
// Function to show color selector
function showColorSelector() {
const colorSelector = document.getElementById('colorSelector');
colorSelector.style.display = 'block';
// Cancel hiding timeout for color selector
clearTimeout(hideTimeoutColorPicker);
}
// Function to hide color selector
function hideColorSelector() {
const colorSelector = document.getElementById('colorSelector');
// Set timeout to hide color selector after 5 seconds
hideTimeoutColorPicker = setTimeout(function() {
colorSelector.style.display = 'none';
}, 5000); // 5 seconds delay
}
// Show color selector when mouse moves to bottom right
document.addEventListener('mouseenter', function(event) {
const x = event.clientX;
const y = event.clientY;
const bottom = window.innerHeight - y;
const right = window.innerWidth - x;
if (bottom < 50 && right < 50) {
showColorSelector();
}
});
// Hide color selector when mouse leaves the bottom right
document.addEventListener('mouseleave', function(event) {
const x = event.clientX;
const y = event.clientY;
const bottom = window.innerHeight - y;
const right = window.innerWidth - x;
if (bottom >= 50 || right >= 50) {
hideColorSelector();
}
});
// Cancel hiding timeout for color selector when interacting with it
document.getElementById('colorSelector').addEventListener('mouseenter', function() {
clearTimeout(hideTimeoutColorPicker);
});
// Hide color selector when mouse leaves the color selector area
document.getElementById('colorSelector').addEventListener('mouseleave', function() {
hideColorSelector();
});
// Hide color selector when color is selected
document.getElementById('fontColor').addEventListener('input', function() {
hideColorSelector();
});
// Function to show font options
function showFontOptions() {
const fontOptions = document.getElementById('fontOptions');
fontOptions.style.display = 'block';
// Set timeout to hide font options after 5 seconds
hideTimeoutFontOptions = setTimeout(function() {
fontOptions.style.display = 'none';
}, 5000); // 5 seconds delay
}
// Function to hide font options
function hideFontOptions() {
const fontOptions = document.getElementById('fontOptions');
fontOptions.style.display = 'none';
}
// Show font options when mouse moves to bottom left
document.addEventListener('mouseenter', function(event) {
const x = event.clientX;
const y = event.clientY;
const bottom = window.innerHeight - y;
const left = x;
if (bottom < 50 && left < 50) {
showFontOptions();
}
});
// Hide font options when mouse leaves the bottom left
document.addEventListener('mouseleave', function(event) {
const x = event.clientX;
const y = event.clientY;
const bottom = window.innerHeight - y;
const left = x;
if (bottom >= 50 || left >= 50) {
hideFontOptions();
}
});
// Function to change font
function changeFont(fontName) {
const clock = document.getElementById('clock');
const date = document.getElementById('date');
// Apply font family
clock.style.fontFamily = fontName;
date.style.fontFamily = fontName;
// Apply font size adjustments for Courier New
if (fontName === 'Courier New') {
clock.style.fontSize = '22em';
date.style.fontSize = '5em';
} else {
clock.style.fontSize = '25em';
date.style.fontSize = '10em';
}
}
// Array of song filenames
const songs = ['Dropkick Murphys.mp3', 'Gangnam.mp3', 'Godzilla.mp3', 'Star Wars.mp3','Dual.mp3']; // Add more song filenames as needed
// Function to play a random song
function playRandomSong() {
// Choose a random song from the array
const randomIndex = Math.floor(Math.random() * songs.length);
const randomSong = songs[randomIndex];
// Create an audio element
const audio = new Audio(`songs/${randomSong}`);
// Play the audio
audio.play();
}
// Function to play a random song at the top of every hour
function playRandomSongAtTopOfHour() {
// Get the current time
const now = new Date();
now.setMinutes(now.getMinutes() + 0);
now.setSeconds(now.getSeconds() + 0);
// Calculate the time until the next hour
const timeUntilNextHour = (60 - minutes) * 60 * 1000 - seconds * 1000;
// Schedule the random song to play at the top of the next hour
setTimeout(function() {
playRandomSong();
// Schedule the next random song to play at the top of the next hour
setInterval(playRandomSong, 1000 * 60 * 60); // Repeat every hour
}, timeUntilNextHour);
}
// Call the function to start playing random songs
playRandomSongAtTopOfHour();