PageSourceSearch

https://cruize-radio.com/wp-content/plugins/radio-station/js/radio-station-clock.js?ver=1784269467

js cruize-radio.com collected 2026-10-07 02:59:35 UTC 7,670 bytes, 204 lines download raw bytes

1/* ------------------ */
2/* Radio Clock Script */
3/* ------------------ */
4
5/* Convert Date Time to Time String */
6function radio_time_string(datetime, hours, seconds, override) {
7
8	if (override) {
9		isostring = datetime.toISOString();
10		h = parseInt(isostring.substr(11,2));
11		m = parseInt(isostring.substr(14,2));
12	} else {
13		h = datetime.getHours();
14		m = datetime.getMinutes();
15	}
16
17	if (seconds) {
18		if (override) {s = parseInt(isostring.substr(17,2));}
19		else {s = datetime.getSeconds();}
20		if (s < 10) {s = '0'+s;}
21	}
22
23	if (m < 10) {m = '0'+m;}
24	if (hours == 12) {
25		if ( h < 12 ) {mer = radio.units.am;}
26		if ( h > 11 ) {mer = radio.units.pm;}
27		if ( h == 0 ) {h = '12'; mer = radio.units.am;}
28		if ( h > 12 ) {h = h - 12;}
29	} else {
30		mer = '';
31		if ( h < 10 ) {h = '0'+h;}
32	}
33
34	timestring = '<span class="rs-hour">'+h+'</span>';
35	timestring += '<span class="rs-sep rs-time-sep">'+radio.sep+'</span>';
36	timestring += '<span class="rs-minutes">'+m+'</span>';
37	if (seconds) {
38		timestring += '<span class="rs-sep rs-time-sep">'+radio.sep+'</span>';
39		timestring += '<span class="rs-seconds">'+s+'</span>';
40	}
41	if (mer != '') {timestring += ' <span class="rs-meridiem">'+mer+'</span>';}
42	return timestring;
43}
44
45/* Convert Date Time to Date String */
46function radio_date_string(datetime, day, date, month, override) {
47	if (override) {
48		isostring = datetime.toISOString();
49		m = parseInt(isostring.substr(5,2)) - 1;
50		dd = parseInt(isostring.substr(8,2));
51		d = datetime.getDay(); /* TODO */
52	} else {
53		d = datetime.getDay();
54		m = datetime.getMonth();
55		dd = datetime.getDate();
56	}
57	datestring = '';
58	if (day != '') {
59		if (day == 'short') {datestring = radio.labels.sdays[d];}
60		else {datestring += radio.labels.days[d];}
61	}
62	if (date) {datestring += ' '+dd;}
63	if (month != '') {
64		if (month == 'short') {datestring += ' '+radio.labels.smonths[m];}
65		else {datestring += ' '+radio.labels.months[m];}
66	}
67	return datestring;
68}
69
70/* Update Current Time Clock */
71function radio_clock_date_time() {
72
73	if (radio_clock_init) {init = false;}
74	else {init = true; radio_clock_init = true;}
75
76	/* user datetime / timezone */
77	userdatetime = new Date();
78	useroffset  = -(userdatetime.getTimezoneOffset());
79	if (typeof jstz == 'function') {userzone = jstz.determine().name();}
80	else {userzone = Intl.DateTimeFormat().resolvedOptions().timeZone;}
81
82	/* server datetime / offset */
83	serverdatetime = new Date();
84	serveroffset = ( -(useroffset) * 60) + radio.timezone.offset;
85	serverdatetime.setTime(userdatetime.getTime() + (serveroffset * 1000));
86
87	/* get timezone override */
88	override = false;
89	if (typeof radio_timezone_override == 'function') {
90		override = radio_timezone_override();
91		if (radio.clock_debug) {console.log('User Timezone Selection Override: '+override);}
92		if (override) {
93			userzone = override;
94			offset = radio_offset_override(false);
95			userdatetime.setTime(userdatetime.getTime() + (offset * 60 * 1000));
96			useroffset = offset;
97		}
98	}
99
100	/* loop clock instances */
101	clock = document.getElementsByClassName('radio-station-clock');
102	for (i = 0; i < clock.length; i++) {
103		if (clock[i]) {
104			classes = clock[i].className;
105			seconds = false; day = ''; date = false; month = ''; zone = false;
106			if (classes.indexOf('format-24') > -1) {hours = 24;} else {hours = 12;}
107			if (classes.indexOf('seconds') > -1) {seconds = true;}
108			if (classes.indexOf('day') > -1) {
109				if (classes.indexOf('day-short') > -1) {day = 'short';} else {day = 'full';}
110			}
111			if (classes.indexOf('date') > -1) {date = true;}
112			if (classes.indexOf('month') > -1) {
113				if (classes.indexOf('month-short') > -1) {month = 'short';} else {month = 'full';}
114			}
115			if (classes.indexOf('zone') > -1) {zone = true;}
116			servertime = radio_time_string(serverdatetime, hours, seconds, false);
117			serverdate = radio_date_string(serverdatetime, day, date, month, false);
118			usertime = radio_time_string(userdatetime, hours, seconds, override);
119			userdate = radio_date_string(userdatetime, day, date, month, override);
120
121			/* loop server / user clocks */
122			clocks = clock[i].children;
123			for (j = 0; j < clocks.length; j++) {
124				if (clocks[j]) {
125					classes = clocks[j].className;
126
127					/* update server clock */
128					if (classes.indexOf('radio-station-server-clock') > -1) {
129						divs = clocks[j].children;
130						for (k = 0; k < divs.length; k++) {
131							if ((divs[k].className == 'radio-server-time') && (divs[k].innerHTML != servertime)) {divs[k].innerHTML = servertime;}
132							else if ((divs[k].className == 'radio-server-date') && (divs[k].innerHTML != serverdate)) {divs[k].innerHTML = serverdate;}
133							else if (init && zone && (divs[k].className == 'radio-server-zone')) {
134								/* server timezone */
135								format = divs[k].getAttribute('data-format'); f = format.split('-');
136								serverzone = radio.timezone.location; szone = '';
137								serverzone = serverzone.replace('_',' '); parts = serverzone.split('/');
138								if (typeof radio.timezone.code != 'undefined') {code = radio.timezone.code} else {code = '';}
139								if ((f[0] == '1') && (code != '')) {szone += code+' ';}
140								if ((f[3] == '1') && radio.timezone.utczone) {
141									szone += ' [UTC'+radio.timezone.utc+']';
142								} else {
143									if ((f[1] == '1') || (f[2] == '1')) {
144										if ((f[0] == '1') && (code != '')) {szone += '(';}
145										if (f[2] == '1') {szone += parts[1];}
146										if ((f[1] == '1') && (f[2] == '1')) {szone += ', ';}
147										if (f[1] == '1') {szone += parts[0];}
148										if ((f[0] == '1') && (code != '')) {szone += ')';}
149									}
150									if (f[3] == '1') {szone += ' ['+radio.timezone.utc+']';}
151								}
152								if (divs[k].innerHTML != szone) {divs[k].innerHTML = szone;}
153							}
154						}
155					}
156
157					/* update user clock */
158					if (classes.indexOf('radio-station-user-clock') > -1) {
159						divs = clocks[j].children;
160						for (k = 0; k < divs.length; k++) {
161							if ((divs[k].className == 'radio-user-time') && (divs[k].innerHTML != usertime)) {divs[k].innerHTML = usertime;}
162							else if ((divs[k].className == 'radio-user-date') && (divs[k].innerHTML != userdate)) {divs[k].innerHTML = userdate;}
163							else if (init && zone && (divs[k].className == 'radio-user-zone')) {
164								/* user timezone offset */
165								format = divs[k].getAttribute('data-format'); f = format.split('-');
166								code = radio_timezone_code(userzone); /* console.log(code); */
167								/* console.log(radio.timezone.zonename_override); */
168								if ((typeof radio.timezone.zonename_override != 'undefined') && radio.timezone.zonename_override) {code = radio.timezone.zonename_override;}
169								uzone = userzone.replace('_',' '); parts = uzone.split('/');
170								uzone = '';
171								if ((f[0] == '1') && (code != '')) {uzone += code+' ';}
172								if ((f[1] == '1') || (f[2] == '1')) {
173									if ((f[0] == '1') && (code != '')) {uzone += '(';}
174									if (f[2] == '1') {uzone += parts[1];}
175									if ((f[1] == '1') && (f[2] == '1')) {uzone += ', ';}
176									if (f[1] == '1') {uzone += parts[0];}
177									if ((f[0] == '1') && (code != '')) {uzone += ')';}
178								}
179								if (f[3] == '1') {
180									houroffset = parseInt(useroffset);
181									if (houroffset == 0) {uzone += ' [UTC]';}
182									else {
183										houroffset = houroffset / 60;
184										if (houroffset > 0) {uzone += ' [UTC+'+houroffset+']';}
185										else {uzone += ' [UTC'+houroffset+']';}
186									}
187								}
188								if (divs[k].innerHTML != uzone) {divs[k].innerHTML = uzone;}
189							}
190						}
191					}
192				}
193			}
194		}
195	}
196
197	/* clock loop */
198	setTimeout(radio_clock_date_time, 1000);
199	return true;
200}
201
202/* Start the Clock */
203var radio_clock_init = false;
204setTimeout(radio_clock_date_time, 1000);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.