2022-07-18 01:40:50 -07:00
|
|
|
// Gilroy Hacks Website Source Code -> JS (https://gilroyhacks.com)
|
|
|
|
"use strict";
|
|
|
|
|
|
|
|
// document is loaded and DOM is ready
|
|
|
|
document.addEventListener('DOMContentLoaded', function(){
|
|
|
|
// Email replace
|
|
|
|
function setAttributes(elem, attrs) {
|
|
|
|
for(var key in attrs) {
|
|
|
|
elem.setAttribute(key, attrs[key]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-07-23 00:44:55 -07:00
|
|
|
const tech_emails = document.querySelectorAll('.email-replace-tech');
|
|
|
|
tech_emails.forEach(entry => {
|
|
|
|
setAttributes(entry, {"href": "mailto:tech" + "@" + "gilroyhacks.com?subject=Gilroy Hacks", "target": "_blank"});
|
|
|
|
entry.innerHTML = "tech" + "@" + "gilroyhacks.com";
|
|
|
|
});
|
2022-07-18 01:40:50 -07:00
|
|
|
|
|
|
|
var aadhavan = document.getElementById("email-replace-aadhavan");
|
|
|
|
setAttributes(aadhavan, {"href": "mailto:aadhavan.magesh" + "@" + "gmail.com?subject=Gilroy Hacks", "target": "_blank"});
|
|
|
|
aadhavan.innerHTML = "aadhavan.magesh" + "@" + "gmail.com";
|
|
|
|
|
|
|
|
var isaac = document.getElementById("email-replace-isaac");
|
2022-10-19 00:40:00 -07:00
|
|
|
setAttributes(isaac, {"href": "mailto:ihwang" + "@" + "gilroyhacks.com?subject=Gilroy Hacks", "target": "_blank"});
|
|
|
|
isaac.innerHTML = "ihwang" + "@" + "gilroyhacks.com";
|
2022-07-18 01:40:50 -07:00
|
|
|
|
2022-10-06 23:51:05 -07:00
|
|
|
var steven = document.getElementById("email-replace-steven");
|
|
|
|
setAttributes(steven, {"href": "mailto:stevendinh987" + "@" + "gmail.com?subject=Gilroy Hacks", "target": "_blank"});
|
|
|
|
steven.innerHTML = "stevendinh987" + "@" + "gmail.com";
|
2022-07-22 09:59:28 -07:00
|
|
|
|
2022-07-18 01:40:50 -07:00
|
|
|
var vijay = document.getElementById("email-replace-vijay");
|
2022-10-19 00:40:00 -07:00
|
|
|
setAttributes(vijay, {"href": "mailto:vijay" + "@" + "gilroyhacks.com?subject=Gilroy Hacks", "target": "_blank"});
|
|
|
|
vijay.innerHTML = "vijay" + "@" + "gilroyhacks.com";
|
2022-07-18 01:40:50 -07:00
|
|
|
|
2022-10-06 23:51:05 -07:00
|
|
|
var jonathan = document.getElementById("email-replace-jonathan");
|
|
|
|
setAttributes(jonathan, {"href": "mailto:jonathantessmann" + "@" + "gmail.com?subject=Gilroy Hacks", "target": "_blank"});
|
|
|
|
jonathan.innerHTML = "jonathantessmann" + "@" + "gmail.com";
|
|
|
|
|
2022-07-18 01:40:50 -07:00
|
|
|
var james = document.getElementById("email-replace-james");
|
2022-10-19 00:40:00 -07:00
|
|
|
setAttributes(james, {"href": "mailto:james" + "@" + "gilroyhacks.com?subject=Gilroy Hacks", "target": "_blank"});
|
|
|
|
james.innerHTML = "james" + "@" + "gilroyhacks.com";
|
2022-07-18 01:40:50 -07:00
|
|
|
|
|
|
|
var ezra = document.getElementById("email-replace-ezra");
|
|
|
|
setAttributes(ezra, {"href": "mailto:ezrabridger27" + "@" + "gmail.com?subject=Gilroy Hacks", "target": "_blank"});
|
|
|
|
ezra.innerHTML = "ezrabridger27" + "@" + "gmail.com";
|
|
|
|
|
|
|
|
var mark = document.getElementById("email-replace-mark");
|
|
|
|
setAttributes(mark, {"href": "mailto:markshen00" + "@" + "gmail.com?subject=Gilroy Hacks", "target": "_blank"});
|
|
|
|
mark.innerHTML = "markshen00" + "@" + "gmail.com";
|
|
|
|
|
|
|
|
var bryce = document.getElementById("email-replace-bryce");
|
|
|
|
setAttributes(bryce, {"href": "mailto:brycemankovsky" + "@" + "gmail.com?subject=Gilroy Hacks", "target": "_blank"});
|
|
|
|
bryce.innerHTML = "brycemankovsky" + "@" + "gmail.com";
|
|
|
|
|
|
|
|
// Scroll Element
|
|
|
|
// Creating an observer when the user views that element
|
|
|
|
const observer = new IntersectionObserver(entries => {
|
|
|
|
// Loop over the entries
|
|
|
|
entries.forEach(entry => {
|
|
|
|
// If the element is visible
|
|
|
|
if (entry.isIntersecting) {
|
|
|
|
// Add the animation class
|
|
|
|
entry.target.classList.add('slide-animation');
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
const observer_prize_2 = new IntersectionObserver(entries => {
|
|
|
|
entries.forEach(entry => {
|
|
|
|
if (entry.isIntersecting) {
|
|
|
|
entry.target.classList.add('slide-animation-prize-2');
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
const observer_prize_1 = new IntersectionObserver(entries => {
|
|
|
|
entries.forEach(entry => {
|
|
|
|
if (entry.isIntersecting) {
|
|
|
|
entry.target.classList.add('slide-animation-prize-1');
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
const observer_prize_3 = new IntersectionObserver(entries => {
|
|
|
|
entries.forEach(entry => {
|
|
|
|
if (entry.isIntersecting) {
|
|
|
|
entry.target.classList.add('slide-animation-prize-3');
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
const observer_team_img = new IntersectionObserver(entries => {
|
|
|
|
entries.forEach(entry => {
|
|
|
|
if (entry.isIntersecting) {
|
|
|
|
entry.target.classList.add('slide-animation-card-img');
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
const observer_team_desc = new IntersectionObserver(entries => {
|
|
|
|
entries.forEach(entry => {
|
|
|
|
if (entry.isIntersecting) {
|
|
|
|
entry.target.classList.add('slide-animation-card-desc');
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2022-07-23 16:47:05 -07:00
|
|
|
const workshop_entry = document.querySelectorAll('.workshop-entry');
|
|
|
|
workshop_entry.forEach(entry => {
|
|
|
|
observer.observe(entry);
|
|
|
|
});
|
|
|
|
|
2022-07-19 01:01:21 -07:00
|
|
|
const rules_obj = document.querySelectorAll('.rules-box');
|
|
|
|
rules_obj.forEach(entry => {
|
|
|
|
observer.observe(entry);
|
|
|
|
});
|
|
|
|
|
2022-07-18 01:40:50 -07:00
|
|
|
const entries = document.querySelectorAll('.team-picture');
|
|
|
|
entries.forEach(entry => {
|
|
|
|
observer_team_img.observe(entry);
|
|
|
|
});
|
|
|
|
|
|
|
|
const entries_desc = document.querySelectorAll('.team-description');
|
|
|
|
entries_desc.forEach(entry => {
|
|
|
|
observer_team_desc.observe(entry);
|
|
|
|
});
|
|
|
|
|
|
|
|
const prize_entries = document.querySelectorAll('.prize-column');
|
|
|
|
prize_entries.forEach(entry => {
|
|
|
|
observer.observe(entry);
|
|
|
|
});
|
|
|
|
|
|
|
|
const prize_entries_edge = document.querySelectorAll('.podium-edge');
|
|
|
|
prize_entries_edge.forEach(entry => {
|
|
|
|
observer.observe(entry);
|
|
|
|
});
|
|
|
|
|
2022-12-16 12:24:55 -08:00
|
|
|
// Add class animations to these elements
|
2022-12-16 00:14:37 -08:00
|
|
|
let elements_id = [
|
2022-12-17 00:23:37 -08:00
|
|
|
'#event-title',
|
|
|
|
'#what-GilroyHacks',
|
|
|
|
'#why-GilroyHacks',
|
|
|
|
'#who-GilroyHacks',
|
2022-12-19 23:20:22 -08:00
|
|
|
'#slide-wrapper-main',
|
|
|
|
'#prev',
|
|
|
|
'#next',
|
2022-12-16 00:14:37 -08:00
|
|
|
'#signup-title',
|
|
|
|
'#steps-card',
|
|
|
|
'#sponsor-title',
|
|
|
|
'#sponsor-container',
|
|
|
|
'#schedule-title',
|
|
|
|
'#schedule-pa',
|
|
|
|
'#workshops-description',
|
|
|
|
'#second-podium',
|
|
|
|
'#first-podium',
|
|
|
|
'#third-podium',
|
|
|
|
'#chart',
|
|
|
|
'#prize-box',
|
|
|
|
'#administration',
|
|
|
|
'#logistics',
|
|
|
|
'#outreach',
|
|
|
|
'#tech',
|
|
|
|
'#marketing'
|
|
|
|
];
|
2022-07-18 01:40:50 -07:00
|
|
|
elements_id.forEach(entry => {
|
|
|
|
var thing = document.querySelector(entry)
|
|
|
|
observer.observe(document.querySelector(entry));
|
|
|
|
});
|
|
|
|
|
|
|
|
observer_prize_2.observe(document.querySelector('#second-place'));
|
|
|
|
observer_prize_1.observe(document.querySelector('#first-place'));
|
|
|
|
observer_prize_3.observe(document.querySelector('#third-place'));
|
|
|
|
|
|
|
|
// Scroll Nav
|
|
|
|
// Toggle the .pa-fixed-header class when the user
|
|
|
|
// scroll 100px
|
|
|
|
|
|
|
|
window.onscroll = () => {scrollNavbar()};
|
|
|
|
|
|
|
|
var scrollNavbar = () => {
|
|
|
|
// Target elements
|
|
|
|
const navBar = document.getElementById("navBar");
|
|
|
|
const links = document.querySelectorAll("#navBar a");
|
|
|
|
|
2022-10-15 15:34:07 -07:00
|
|
|
if (document.documentElement.scrollTop > 20) {
|
2022-07-18 01:40:50 -07:00
|
|
|
navBar.classList.add("pa-fixed-header");
|
|
|
|
|
|
|
|
// Change the color of links on scroll
|
|
|
|
for (let i = 0; i < links.length; i++) {
|
|
|
|
const element = links[i];
|
|
|
|
element.classList.add('text-black');
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
navBar.classList.remove("pa-fixed-header");
|
|
|
|
|
|
|
|
// Change the color of links back to default
|
|
|
|
for (let i = 0; i < links.length; i++) {
|
|
|
|
const element = links[i];
|
|
|
|
element.classList.remove('text-black');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Timer
|
|
|
|
// SRC: W3Schools https://www.w3schools.com/howto/howto_js_countdown.asp
|
|
|
|
// Set the date we're counting down to
|
2022-12-16 12:24:55 -08:00
|
|
|
const events = {
|
|
|
|
"Opening Ceremony": "Apr 15, 2023 10:00:00",
|
|
|
|
"Lunch": "Apr 15, 2023 12:00:00",
|
|
|
|
"Web Dev Workshop": "Apr 15, 2023 13:00:00",
|
|
|
|
"[REDACTED] Workshop": "Apr 15, 2023 15:00:00",
|
|
|
|
"Kahoot": "Apr 15, 2023 17:00:00",
|
|
|
|
"Hacking Ends": "Apr 16, 2023 14:00:00",
|
|
|
|
"Project Presentations": "Apr 16, 2023 14:30:00",
|
|
|
|
"Awards Ceremony" : "Apr 16, 2023 16:30:00"
|
|
|
|
}
|
|
|
|
var countDownDate = 0;
|
2022-07-18 01:40:50 -07:00
|
|
|
// Get today's date and time
|
|
|
|
var now = new Date().getTime();
|
|
|
|
|
2022-12-16 12:24:55 -08:00
|
|
|
// Test for the current event
|
|
|
|
for (const event in events) {
|
|
|
|
var testDate = new Date(events[event]).getTime();
|
|
|
|
if (testDate > countDownDate && now < testDate) {
|
|
|
|
countDownDate = testDate;
|
|
|
|
document.getElementById("event-name").innerHTML = event;
|
2022-12-16 12:58:01 -08:00
|
|
|
document.styleSheets[0].addRule('#timer:after','content: "'+ events[event] +'";');
|
2022-12-16 12:24:55 -08:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
2022-07-18 01:40:50 -07:00
|
|
|
|
2022-12-16 12:24:55 -08:00
|
|
|
// Update the count down every 1 second
|
|
|
|
var x = setInterval(function() {
|
2022-07-18 01:40:50 -07:00
|
|
|
|
2022-12-16 12:24:55 -08:00
|
|
|
// Find the distance between now and the count down date
|
|
|
|
var distance = countDownDate - now;
|
|
|
|
|
|
|
|
// Time calculations for days, hours, minutes and seconds
|
|
|
|
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
|
|
|
|
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
|
|
|
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
|
|
|
|
// var seconds = Math.floor((distance % (1000 * 60)) / 1000);
|
|
|
|
|
|
|
|
// If the count down is finished, write some text
|
|
|
|
if (distance < 0) {
|
|
|
|
clearInterval(x);
|
|
|
|
document.getElementById("timer").innerHTML = "---";
|
|
|
|
document.getElementById("event-name").innerHTML = "Event Ended";
|
|
|
|
}
|
|
|
|
// Display the result in the element with id="timer"
|
|
|
|
else if (days != 0) {
|
|
|
|
document.getElementById("timer").innerHTML = days + "d " + hours + "h";
|
|
|
|
}
|
|
|
|
else if (hours != 0) {
|
|
|
|
document.getElementById("timer").innerHTML = hours + "h " + minutes + "m";
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
document.getElementById("timer").innerHTML = minutes + "m";
|
|
|
|
}
|
2022-07-18 01:40:50 -07:00
|
|
|
}, 1000);
|
|
|
|
});
|
|
|
|
|
|
|
|
// page is fully loaded, including all frames, objects and images
|
|
|
|
window.addEventListener("load", function() {
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
// General functions
|
2022-07-18 16:46:17 -07:00
|
|
|
// Checkbox Local Storage
|
|
|
|
var i;
|
2022-07-26 00:34:26 -07:00
|
|
|
var checkboxes = document.querySelectorAll('#signup-checklist input[type=checkbox]');
|
2022-07-18 16:46:17 -07:00
|
|
|
var verify = true;
|
|
|
|
function save() {
|
|
|
|
for (i = 0; i < checkboxes.length; i++) {
|
|
|
|
localStorage.setItem(checkboxes[i].value, checkboxes[i].checked);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
window.onload = function() {
|
|
|
|
load();
|
|
|
|
};
|
|
|
|
function load() {
|
|
|
|
for (i = 0; i < checkboxes.length; i++) {
|
|
|
|
checkboxes[i].checked = localStorage.getItem(checkboxes[i].value) === 'true' ? true:false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
function check(id) {
|
|
|
|
document.getElementById(id).checked = true;
|
|
|
|
}
|
|
|
|
function uncheck(id) {
|
|
|
|
document.getElementById(id).checked = false;
|
|
|
|
}
|
|
|
|
function notification(id) {
|
|
|
|
if (localStorage.getItem(checkboxes[id].value) != true) { verify = false; }
|
|
|
|
if (verify) { document.getElementById('notification').style.visibility = visible; }
|
2022-08-17 14:35:32 -07:00
|
|
|
}
|
|
|
|
|
2022-12-16 19:13:03 -08:00
|
|
|
// Disable Scroll (temporarily)
|
|
|
|
// left: 37, up: 38, right: 39, down: 40,
|
|
|
|
// spacebar: 32, pageup: 33, pagedown: 34, end: 35, home: 36
|
|
|
|
var keys = {37: 1, 38: 1, 39: 1, 40: 1};
|
|
|
|
|
|
|
|
function preventDefault(e) {
|
|
|
|
e.preventDefault();
|
|
|
|
}
|
|
|
|
|
|
|
|
function preventDefaultForScrollKeys(e) {
|
|
|
|
if (keys[e.keyCode]) {
|
|
|
|
preventDefault(e);
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// modern Chrome requires { passive: false } when adding event
|
|
|
|
var supportsPassive = false;
|
|
|
|
try {
|
|
|
|
window.addEventListener("test", null, Object.defineProperty({}, 'passive', {
|
|
|
|
get: function () { supportsPassive = true; }
|
|
|
|
}));
|
|
|
|
} catch(e) {}
|
|
|
|
|
|
|
|
var wheelOpt = supportsPassive ? { passive: false } : false;
|
|
|
|
var wheelEvent = 'onwheel' in document.createElement('div') ? 'wheel' : 'mousewheel';
|
|
|
|
|
|
|
|
// call this to Disable
|
|
|
|
function disableScroll() {
|
|
|
|
window.addEventListener('DOMMouseScroll', preventDefault, false); // older FF
|
|
|
|
window.addEventListener(wheelEvent, preventDefault, wheelOpt); // modern desktop
|
|
|
|
window.addEventListener('touchmove', preventDefault, wheelOpt); // mobile
|
|
|
|
window.addEventListener('keydown', preventDefaultForScrollKeys, false);
|
|
|
|
}
|
|
|
|
|
|
|
|
// call this to Enable
|
|
|
|
function enableScroll() {
|
|
|
|
window.removeEventListener('DOMMouseScroll', preventDefault, false);
|
|
|
|
window.removeEventListener(wheelEvent, preventDefault, wheelOpt);
|
|
|
|
window.removeEventListener('touchmove', preventDefault, wheelOpt);
|
|
|
|
window.removeEventListener('keydown', preventDefaultForScrollKeys, false);
|
|
|
|
}
|
|
|
|
|
|
|
|
var openClick = false;
|
|
|
|
var openModal = false;
|
|
|
|
var currentModal;
|
|
|
|
|
|
|
|
function closeModal(id) {
|
|
|
|
document.getElementById(id).style.display = "none";
|
|
|
|
document.getElementById("modal-overlay").style.display = "none";
|
|
|
|
enableScroll();
|
|
|
|
openModal = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
function showModal(id) {
|
|
|
|
document.getElementById(id).style.display = "block";
|
|
|
|
document.getElementById("modal-overlay").style.display = "block";
|
|
|
|
document.getElementById("modal-overlay").style.opacity = 1;
|
|
|
|
document.getElementById("modal-overlay").classList.add("modal-animation");
|
|
|
|
disableScroll();
|
|
|
|
openClick = true;
|
|
|
|
openModal = true;
|
|
|
|
currentModal = id;
|
|
|
|
}
|
|
|
|
|
|
|
|
document.addEventListener(
|
|
|
|
"click",
|
|
|
|
function (event) {
|
|
|
|
// If user either clicks X button OR clicks outside the modal window, then close modal by calling closeModal()
|
|
|
|
if (!openClick && openModal == true) {
|
2022-12-16 19:20:01 -08:00
|
|
|
if (event.target.matches(".button-close-modal") || !event.target.closest(".modal")) {
|
2022-12-16 19:13:03 -08:00
|
|
|
closeModal(currentModal);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
openClick = false;
|
|
|
|
},
|
|
|
|
false
|
|
|
|
);
|
|
|
|
|
2022-12-19 23:20:22 -08:00
|
|
|
var slider = document.getElementById('slider'),
|
|
|
|
sliderItems = document.getElementById('items'),
|
|
|
|
prev = document.getElementById('prev'),
|
|
|
|
next = document.getElementById('next');
|
|
|
|
slide(slider, sliderItems, prev, next);
|
|
|
|
function slide(wrapper, items, prev, next) {
|
|
|
|
var posX1 = 0,
|
|
|
|
posX2 = 0,
|
|
|
|
posInitial,
|
|
|
|
posFinal,
|
|
|
|
threshold = 100,
|
|
|
|
slides = items.getElementsByClassName('slide'),
|
|
|
|
slidesLength = slides.length,
|
|
|
|
slideSize = items.getElementsByClassName('slide')[0].offsetWidth,
|
|
|
|
firstSlide = slides[0],
|
|
|
|
lastSlide = slides[slidesLength - 1],
|
|
|
|
cloneFirst = firstSlide.cloneNode(true),
|
|
|
|
cloneLast = lastSlide.cloneNode(true),
|
|
|
|
index = 0,
|
|
|
|
allowShift = true;
|
2022-12-17 00:23:37 -08:00
|
|
|
|
2022-12-19 23:20:22 -08:00
|
|
|
// Clone first and last slide
|
|
|
|
items.appendChild(cloneFirst);
|
|
|
|
items.insertBefore(cloneLast, firstSlide);
|
|
|
|
wrapper.classList.add('loaded');
|
2022-12-17 00:23:37 -08:00
|
|
|
|
2022-12-19 23:20:22 -08:00
|
|
|
// Mouse and Touch events
|
|
|
|
items.onmousedown = dragStart;
|
2022-12-17 00:23:37 -08:00
|
|
|
|
2022-12-19 23:20:22 -08:00
|
|
|
// Touch events
|
|
|
|
items.addEventListener('touchstart', dragStart);
|
|
|
|
items.addEventListener('touchend', dragEnd);
|
|
|
|
items.addEventListener('touchmove', dragAction);
|
2022-12-17 00:23:37 -08:00
|
|
|
|
2022-12-19 23:20:22 -08:00
|
|
|
// Click events
|
|
|
|
prev.addEventListener('click', function () { shiftSlide(-1) });
|
|
|
|
next.addEventListener('click', function () { shiftSlide(1) });
|
2022-12-17 00:23:37 -08:00
|
|
|
|
2022-12-19 23:20:22 -08:00
|
|
|
// Transition events
|
|
|
|
items.addEventListener('transitionend', checkIndex);
|
2022-12-17 00:23:37 -08:00
|
|
|
|
2022-12-19 23:20:22 -08:00
|
|
|
function dragStart (e) {
|
|
|
|
e = e || window.event;
|
|
|
|
e.preventDefault();
|
|
|
|
posInitial = items.offsetLeft;
|
2022-12-17 00:23:37 -08:00
|
|
|
|
2022-12-19 23:20:22 -08:00
|
|
|
if (e.type == 'touchstart') {
|
|
|
|
posX1 = e.touches[0].clientX;
|
|
|
|
} else {
|
|
|
|
posX1 = e.clientX;
|
|
|
|
document.onmouseup = dragEnd;
|
|
|
|
document.onmousemove = dragAction;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
function dragAction (e) {
|
|
|
|
e = e || window.event;
|
2022-12-17 00:23:37 -08:00
|
|
|
|
2022-12-19 23:20:22 -08:00
|
|
|
if (e.type == 'touchmove') {
|
|
|
|
posX2 = posX1 - e.touches[0].clientX;
|
|
|
|
posX1 = e.touches[0].clientX;
|
|
|
|
} else {
|
|
|
|
posX2 = posX1 - e.clientX;
|
|
|
|
posX1 = e.clientX;
|
|
|
|
}
|
|
|
|
items.style.left = (items.offsetLeft - posX2) + "px";
|
|
|
|
}
|
2022-12-17 00:23:37 -08:00
|
|
|
|
2022-12-19 23:20:22 -08:00
|
|
|
function dragEnd (e) {
|
|
|
|
posFinal = items.offsetLeft;
|
|
|
|
if (posFinal - posInitial < -threshold) {
|
|
|
|
shiftSlide(1, 'drag');
|
|
|
|
} else if (posFinal - posInitial > threshold) {
|
|
|
|
shiftSlide(-1, 'drag');
|
|
|
|
} else {
|
|
|
|
items.style.left = (posInitial) + "px";
|
|
|
|
}
|
|
|
|
document.onmouseup = null;
|
|
|
|
document.onmousemove = null;
|
|
|
|
}
|
2022-12-17 00:23:37 -08:00
|
|
|
|
2022-12-19 23:20:22 -08:00
|
|
|
function shiftSlide(dir, action) {
|
|
|
|
items.classList.add('shifting');
|
2022-12-17 00:23:37 -08:00
|
|
|
|
2022-12-19 23:20:22 -08:00
|
|
|
if (allowShift) {
|
|
|
|
if (!action) { posInitial = items.offsetLeft; }
|
|
|
|
if (dir == 1) {
|
|
|
|
items.style.left = (posInitial - slideSize) + "px";
|
|
|
|
index++;
|
|
|
|
} else if (dir == -1) {
|
|
|
|
items.style.left = (posInitial + slideSize) + "px";
|
|
|
|
index--;
|
|
|
|
}
|
|
|
|
};
|
2022-12-17 00:23:37 -08:00
|
|
|
|
2022-12-19 23:20:22 -08:00
|
|
|
allowShift = false;
|
|
|
|
}
|
2022-12-17 00:23:37 -08:00
|
|
|
|
2022-12-19 23:20:22 -08:00
|
|
|
function checkIndex (){
|
|
|
|
items.classList.remove('shifting');
|
|
|
|
if (index == -1) {
|
|
|
|
items.style.left = -(slidesLength * slideSize) + "px";
|
|
|
|
index = slidesLength - 1;
|
|
|
|
}
|
|
|
|
if (index == slidesLength) {
|
|
|
|
items.style.left = -(1 * slideSize) + "px";
|
|
|
|
index = 0;
|
|
|
|
}
|
2022-12-17 00:23:37 -08:00
|
|
|
|
2022-12-19 23:20:22 -08:00
|
|
|
allowShift = true;
|
|
|
|
}
|
|
|
|
}
|
2022-12-17 00:23:37 -08:00
|
|
|
|
2022-08-17 14:35:32 -07:00
|
|
|
var options = {
|
2022-08-17 22:15:55 -07:00
|
|
|
series: [{
|
2022-08-17 14:35:32 -07:00
|
|
|
name: 'Idea',
|
2022-08-17 21:39:32 -07:00
|
|
|
data: [7, 9, 6, 10, 14],
|
2022-08-17 14:35:32 -07:00
|
|
|
}, {
|
|
|
|
name: 'Implementation',
|
|
|
|
data: [11, 6, 11, 3, 9]
|
|
|
|
}, {
|
|
|
|
name: 'Presentation',
|
|
|
|
data: [12, 7, 12, 11, 8]
|
|
|
|
}, {
|
|
|
|
name: 'Overall',
|
2022-08-17 21:39:32 -07:00
|
|
|
data: [10, 6, 9, 7, 11],
|
2022-08-17 14:35:32 -07:00
|
|
|
}],
|
2022-08-29 18:25:10 -07:00
|
|
|
chart: {
|
2022-08-17 14:35:32 -07:00
|
|
|
type: 'bar',
|
|
|
|
height: 350,
|
|
|
|
stacked: true,
|
2022-08-31 15:05:53 -07:00
|
|
|
background: '#0d1117'
|
2022-08-17 14:35:32 -07:00
|
|
|
},
|
|
|
|
plotOptions: {
|
|
|
|
bar: {
|
|
|
|
horizontal: true,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
stroke: {
|
|
|
|
width: 1,
|
|
|
|
colors: ['#fff']
|
|
|
|
},
|
|
|
|
title: {
|
2022-08-29 20:53:44 -07:00
|
|
|
text: 'Team Scores - Summer 2022',
|
2022-08-29 15:21:15 -07:00
|
|
|
style: {
|
|
|
|
color: '#fff'
|
|
|
|
}
|
2022-08-17 14:35:32 -07:00
|
|
|
},
|
|
|
|
xaxis: {
|
|
|
|
categories: ['Team 2', 'Team 3', 'Team 4', 'Team 6', 'Team 7'],
|
|
|
|
labels: {
|
|
|
|
formatter: function (val) {
|
|
|
|
return val + ""
|
2022-08-17 21:39:32 -07:00
|
|
|
},
|
|
|
|
style: {
|
|
|
|
colors: '#fff'
|
2022-08-17 14:35:32 -07:00
|
|
|
}
|
2022-08-17 21:39:32 -07:00
|
|
|
},
|
2022-08-17 14:35:32 -07:00
|
|
|
},
|
|
|
|
yaxis: {
|
2022-08-17 21:39:32 -07:00
|
|
|
labels: {
|
|
|
|
style: {
|
|
|
|
colors: '#fff'
|
|
|
|
}
|
|
|
|
},
|
2022-08-17 14:35:32 -07:00
|
|
|
title: {
|
|
|
|
text: undefined
|
|
|
|
},
|
|
|
|
},
|
|
|
|
tooltip: {
|
|
|
|
y: {
|
|
|
|
formatter: function (val) {
|
|
|
|
return val + ""
|
|
|
|
}
|
2022-08-17 21:39:32 -07:00
|
|
|
},
|
2022-08-29 15:24:48 -07:00
|
|
|
theme: 'dark'
|
2022-08-17 14:35:32 -07:00
|
|
|
},
|
|
|
|
fill: {
|
|
|
|
opacity: 1
|
|
|
|
},
|
|
|
|
legend: {
|
|
|
|
position: 'top',
|
|
|
|
horizontalAlign: 'left',
|
2022-08-17 21:39:32 -07:00
|
|
|
offsetX: 40,
|
2022-08-29 15:21:15 -07:00
|
|
|
labels: {
|
|
|
|
colors: '#fff',
|
|
|
|
},
|
2022-08-17 21:39:32 -07:00
|
|
|
},
|
2022-08-17 14:35:32 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
var chart = new ApexCharts(document.querySelector("#chart"), options);
|
2022-12-17 01:49:14 -08:00
|
|
|
chart.render();
|