Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */
var coll = document.getElementsByClassName("collapsible");
var i;
for (i = 0; i < coll.length; i++) {
coll[i].addEventListener("click", function() {
this.classList.toggle("active");
var content = this.nextElementSibling;
$(content).toggle('fast');
});
}
var imageRotationTimeout; // Declare this variable globally
var loading = true;
function setMainImage(imageHtml) {
var mainImageDiv = document.querySelector('.mainImage');
// Apply the blink effect
mainImageDiv.classList.add('blink');
// Delay the image update to allow the blink effect to be visible
setTimeout(function() {
// Set new image HTML and loading bar
mainImageDiv.innerHTML = imageHtml + '<div class="loadingBar"></div>';
resetAndStartLoadingBar();
// Remove the blink class after the animation ends
setTimeout(function() {
mainImageDiv.classList.remove('blink');
}, 500); // Duration of the blink animation in milliseconds
}, 250); // Short delay before updating the image
}
function toggleLoadingBarVisibility() {
loading = false;
var loadingBar = document.querySelector('.loadingBar');
if (loadingBar) {
var isHidden = loadingBar.style.display === 'none';
loadingBar.style.display = isHidden ? 'block' : 'none';
}
}
function addClickEventToImages() {
var images = document.querySelectorAll('.carousel .dpImage');
images.forEach(function(image, index) {
image.addEventListener('click', function() {
// Cancel auto rotation
clearTimeout(imageRotationTimeout);
// Hide the loading bar by setting its display to 'none'
toggleLoadingBarVisibility();
// Set clicked image as main image
setMainImage(this.innerHTML);
});
});
}
var lastSelectedIndex = -1;
var currentIndex = 0;
var rotationInterval = 10000; // 10 seconds
var imageRotationTimeout;
function getNextIndex(imagesLength) {
var nextIndex;
do {
nextIndex = Math.floor(Math.random() * imagesLength);
} while (nextIndex === lastSelectedIndex);
return nextIndex;
}
function startImageRotation() {
var images = document.querySelectorAll('.carousel .dpImage');
currentIndex = getNextIndex(images.length);
setMainImage(images[currentIndex].innerHTML);
lastSelectedIndex = currentIndex;
resetAndStartLoadingBar();
// Schedule the next rotation
imageRotationTimeout = setTimeout(startImageRotation, rotationInterval);
}
function resetAndStartLoadingBar() {
if(loading) {
var loadingBar = document.querySelector('.loadingBar');
loadingBar.style.transition = 'none'; // Disable transition
loadingBar.style.width = '0%'; // Reset the width immediately
setTimeout(function() {
loadingBar.style.transition = 'width ' + rotationInterval + 'ms linear';
loadingBar.style.width = '100%'; // Start the transition
}, 10); // Small delay to allow for width reset
}
}
// Initialize
window.onload = function() {
addClickEventToImages();
startImageRotation(); // Start the initial rotation
};
function init(){
new SmoothScroll(document,120,12)
}
function SmoothScroll(target, speed, smooth) {
if (target === document)
target = (document.scrollingElement
|| document.documentElement
|| document.body.parentNode
|| document.body) // cross browser support for document scrolling
var moving = false
var pos = target.scrollTop
var frame = target === document.body
&& document.documentElement
? document.documentElement
: target // safari is the new IE
target.addEventListener('mousewheel', scrolled, { passive: false })
target.addEventListener('DOMMouseScroll', scrolled, { passive: false })
function scrolled(e) {
e.preventDefault(); // disable default scrolling
var delta = normalizeWheelDelta(e)
pos += -delta * speed
pos = Math.max(0, Math.min(pos, target.scrollHeight - frame.clientHeight)) // limit scrolling
if (!moving) update()
}
function normalizeWheelDelta(e){
if(e.detail){
if(e.wheelDelta)
return e.wheelDelta/e.detail/40 * (e.detail>0 ? 1 : -1) // Opera
else
return -e.detail/3 // Firefox
}else
return e.wheelDelta/120 // IE,Safari,Chrome
}
function update() {
moving = true
var delta = (pos - target.scrollTop) / smooth
target.scrollTop += delta
if (Math.abs(delta) > 0.5)
requestFrame(update)
else
moving = false
}
var requestFrame = function() { // requestAnimationFrame cross browser
return (
window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function(func) {
window.setTimeout(func, 1000 / 50);
}
);
}()
}