<script type="text/javascript" src="https://gsvlabs-confluence-files.s3-us-west-2.amazonaws.com/js/Passport/eventsDashboard.js"></script>


<link rel="stylesheet" type="text/css" href="https://gsvlabs-confluence-files.s3-us-west-2.amazonaws.com/stylesheets/Passport/eventsDashboardStylesheet.css" />

<style>
div#rw_theme_header {
    background: #ffffff !important;
}
#location-clear-button {
	display: flex;
    position: absolute;
    right: 0px;
    cursor: pointer;
    height: 12px;
    width: 12px;
    margin: 12px 10px;
}
/* Page Title */
.general-text-container {
    display: flex;
    flex-direction: column;
    width: 40%;
    padding: 100px 0px 0px 31px !important;
}

/* My Events Container */
#my-events-container {
	display: none;
}

/* Event Date */
.bigTimeContainer {
    height: auto;
    width: 54px;
    background: white;
    box-shadow: 1px 2px 11px 0 rgba(0, 0, 0, 0.12);
    display: flex;
    flex-direction: column;
    /* justify-content: space-evenly; */
    align-items: center;
    padding-bottom: 5px;
    border: solid 1px #979797;
}

.bigTimeDate {
    color: var(--primary-font-color);
    font-size: 25px;
}

.bigTimeMonth {
    font-size: 14px;
    width: 100%;
    display: flex;
    justify-content: center;
    background: #1f2833;
    color: var(--secondary-font-color) !important;
}

/* Event Program Card Styling */
.program span {
    background: transparent !important;
    color: var(--primary-font-color) !important;
	font-weight: 100;
	font-size: 14px !important;
}
.program {
    color: var(--primary-font-color) !important;
    font-family: unset !important;
    font-size: 14px !important;
    text-align: start;
    margin-left: 16px;
	margin-top: 10px;
	overflow-y: auto;
    height: auto;
	font-weight: normal;
}
br {
    display: none;
}
.program h1 {
    margin: 0;
    color: var(--primary-font-color) !important;
    font-size: 14px;
}
.program .p1 {
    font-size: 14px !important;
}
.program div {
    font-size: 14px !important;
    font-weight: normal !important;
}
/ * Location search bar */
.wiki-content #events-search-container {
    min-width: 280px;
    width: 25%;
    max-width: 320px;
}

#location-search-container img {
    position: relative !important;
    left: 0px !important;
    height: 12px !important;
    width: 12px !important;
    opacity: 0.7;
	cursor: pointer;
}

#location-search-container img:hover {
	filter: invert(62%) sepia(80%) saturate(588%) hue-rotate(349deg) brightness(98%) contrast(94%);
}

.wiki-content #location-searchbar {
	background: #1f2833;
    color: var(--secondary-font-color);
  	box-shadow: none;
	font-size: 13px;
	width: calc(100% - 40px);	
	height: 15px;
	padding: 15px 20px;
	border: none;
}

/* Create Event Button */
a.createEventButton {
	display: none;
    box-sizing: border-box;
    transition: background-color .1s ease-out;
    border-radius: 3.01px;
    border-style: solid;
    border-width: 1px;
    cursor: pointer;
    font-family: inherit;
    font-size: 14px;
    font-variant: normal;
    font-weight: 400;
    background-image: none;
    background-color: rgba(9,30,66,0.08);
    border-color: transparent;
    color: #344563;
    text-decoration: none;
    height: 2.14285714em;
    line-height: 1.42857143em;
    margin: 0;
    padding: 4px 10px;
    vertical-align: baseline;
    white-space: nowrap;
    color: black !IMPORTANT;
    border-radius: 6px;
}
.createEventContainer {
    display: flex;
    justify-content: flex-end;
    margin: 10px 26px 0 0;
}

/* Dashboard Banner */
img.events-dashboard-banner {
    width: 100%;
    height: auto;
	margin-bottom: -20px;
}
.events-dashboard-banner-container {
    margin: 0 0 -5px 0;
}
.countryFilterContainer #cc-placeholder {
    height: 45px;
    min-height: 45px;
    margin: 0px;
    text-align: left;
    width: calc(100% - 40px);
    justify-content: space-between;
    padding: 0px 20px;
    cursor: text;
    position: relative;
    align-items: center;
    background: #1f2833;
  	border: 1px solid #ddd;
  	box-shadow: none;
}
.wiki-content .ev-cards-section .ev-cards-section-title {
	color: #000000 !important;
}
.wiki-content .ev-cards-outer-container {background-image: unset !important;}
.countryFilterContainer {
	justify-content: center !important;
}
.custom-section-container{
 flex-direction: column !important;
}
.countryFilterContainer #country-clear-button {
    position: absolute;
    right: 0px;
}

@media screen and (max-width: 640px) {
.filtersContainer {
	justify-content: center;
}
}
</style>


<style>
.wiki-content .ev-cards-outer-container {
    background-image: url("https://gsvlabs-confluence-files.s3-us-west-2.amazonaws.com/images/EWC+2020/gradient-vertical.jpg");
    background-size: cover;
    background-repeat: no-repeat;
}
#announcements-wrapper > span.conf-macro {
	height: 100%;
}

#additional-filters-button {
	width: 280px;
}

.zran-event {
	display: none;
}

@media only screen and (max-width: 480px) {
  .events-search-main {
    flex-direction: column;
    align-items: center;
    height: 75px;
    flex-wrap: nowrap;
    justify-content: flex-start;
    padding-bottom: 0px;
    overflow: hidden;
	align-self: center;
	padding-top: 70px;
  }
  .wiki-content .ev-search-container {
    padding-bottom: 45px;
  }
  .countryFilterContainer {
	height: 49px !important;
	min-height: 49px;
  }
  .countryFilterContainer #cc-placeholder {
	font-size: 14px;
  }
  .program {
	flex-shrink: 7;
  }
}
</style>

<script>
// New Version of Format Date (Asynchronous)
async function formatDate2(d) {
  const monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
  var hh = d.getHours(); 
  var m = d.getMinutes();
  var s = d.getSeconds();
  var dd = "am";
  var h = hh;
  if (h >= 12) {
    h = hh-12;
    dd = "pm";
  }
  if (h == 0) {
    h = 12;
  }
  m = m<10?"0"+m:m;
  s = s<10?"0"+s:s;

  var strTime = h+":"+m+" "+dd
  return strTime + " on " + monthNames[d.getMonth()] + " " + d.getDate();
  // return dayNames[d.getDay()] + ", " + monthNames[d.getMonth()] + " " + d.getDate() + " " + d.getFullYear() + ", " + strTime;
}
</script>

<script>
/* Allow Admins to Create Events */
var isAdmin = false;
var userGroups = [];
if (AJS.params.remoteUser) {
    // Group Data
    jQuery.ajax({
      url: "/rest/api/user/memberof?username=" + AJS.params.remoteUser,
      type: "get",
      dataType: 'json',
      async: false,
      success: function (data) {
        var res = data.results;
        for (var i = 0; i < res.length; i++) {
          var groupName = res[i].name;
          userGroups.push(groupName);
          if (groupName === 'confluence-administrators') {
            isAdmin = true;
          }
		  if (groupName === 'gsvlabs-admins') {
            isContentAdmin = true;
          }
		   if (groupName === 'operations-admins') {
            isContentAdmin = true;
          }
        }
      }
    });
}
if(isAdmin || isContentAdmin) {
	console.log("Showing Create Event Button");
	$('.createEventButton').waitUntilExists(() => {
 		$('.createEventButton').show();
	});
}
</script>



<div class="events-dashboard-banner-container">
	
</div>



<div id="ev-main-content">



<div class="filtersContainer events-search-main">
    <div id="events-search-container">
		<img src="/download/attachments/46334146/searchicon.png?api=v2" />
		<input id="events-searchbar" type="text" autocomplete="off" placeholder="Search for a Specific Event" />
	</div>

    <div class="countryFilterContainer">  
		<input type='text' id='cc-placeholder' autocomplete="off" placeholder='Categories' onkeyup='handleCountrySearch(this, event)' />
        <ul id="countryFilter">
        </ul>
    </div>

	<div id="location-search-container">
		<input id="location-searchbar" type="text" autocomplete="false" placeholder="Location" />
	</div>

	<div class="dateFilterContainer">
        <div class="dateFilter">
			<p class="dateInputContainer"><input type="text" placeholder="Start Date" id="startdate"></p>      <span>↔</span>      <p class="dateInputContainer"><input type="text" placeholder="End Date" id="enddate"></p>
		</div>
    </div>

	<div class="resetFilterContainer">
    	<a id="resetFilter">Clear All Filters</a>
	</div>
</div>

<div id="additional-filters-button" style="display: none;">
	<img src="/download/attachments/46334146/addfilters.png?api=v2" />
	<span>Additional Filters</span>
</div>



<div class="createEventContainer">
	<a class="createEventButton" href="/display/EVE/Create+Event">Create Event</a>
</div>


<script>
/*window.addEventListener('load', () => {
	document.getElementById("cc-placeholder").disabled = false;
});*/
</script>



<h2 class="ev-cards-section-title">Search Results</h2>





<div class="ev-cards-outer-container">
	<div id="ev-cards-main-view">


<span class="conf-macro output-inline" data-hasbody="true" data-macro-name="custom-section">



<h2 class="ev-cards-section-title">Upcoming Events</h2>


<span class="conf-macro output-inline" data-hasbody="true" data-macro-name="custom-section">



<div class="conf-macro output-block fullSite" data-hasbody="true" data-macro-name="confiform-cleanview"> </div>



</span>



</span>


<script>

getUpcomingEvents().then(() => showOrHideScrollButtons(0));

</script>


<span class="conf-macro output-inline" data-hasbody="true" data-macro-name="custom-section">



<h2 class="ev-cards-section-title">OneValley Events</h2>


<span class="conf-macro output-inline" data-hasbody="true" data-macro-name="custom-section">



<div class="conf-macro output-block fullSite" data-hasbody="true" data-macro-name="confiform-cleanview"> </div>



</span>



</span>


<script>

getLiveStreamEvents().then(() => showOrHideScrollButtons(4));

</script>


<span class="conf-macro output-inline" data-hasbody="true" data-macro-name="custom-section">



<h2 class="ev-cards-section-title">My Events</h2>


<span class="conf-macro output-inline" data-hasbody="true" data-macro-name="custom-section">



<div class="conf-macro output-block fullSite" data-hasbody="true" data-macro-name="confiform-cleanview"> </div>



</span>



</span>


</div>



<h2 class="ev-cards-section-title" style="margin-bottom: 60px;">All Events</h2>


<div class="conf-macro output-block fullSite" data-hasbody="true" data-macro-name="confiform-cleanview"> </div>



<script>

getAllEvents();

</script>


<style>
.eventcard .dates {
    color: white;
}
.eventcard .attendees {
	color: #3ddeed;
}
</style>




<h2 class="ev-cards-section-title" style="margin-bottom: 60px;">Unpublished Events</h2>


<div class="conf-macro output-block fullSite" data-hasbody="true" data-macro-name="confiform-cleanview"> </div>



<script>

getUnpublishedEvents();

</script>



<span class="conf-macro output-inline" data-hasbody="true" data-macro-name="custom-section">



<h2 class="ev-cards-section-title">My Created Events</h2>


<span class="conf-macro output-inline" data-hasbody="true" data-macro-name="custom-section">



<div class="conf-macro output-block fullSite" data-hasbody="true" data-macro-name="confiform-cleanview"> </div>



</span>



<script>

getMyEvents().then(() => showOrHideScrollButtons(2));

</script>





</span>


</div>	
</div>
</div>
</div>


<script>
$('#ev-cards-sidebar ul').on('click', function(){
    $("#ev-cards-sidebar ul").removeClass("ev-cards-active-sidebar");
    $(this).addClass("ev-cards-active-sidebar");
});
</script>


<style>
#unpublished-events .conf-macro.output-block[data-macro-name=confiform-cleanview] {
    padding: 0px 35px;
    display: grid;
    grid-template-columns: repeat(auto-fill, 280px);
    grid-gap: 40px;
    height: auto !important;
    justify-content: left;
}
</style>


 <script>

  const getMinutesUntilEventStart = (startDate) => {
    let nowDate = new Date();
    let eventStartDate = new Date(startDate);

    let diffMilliseconds = eventStartDate.getTime() - nowDate.getTime();
    let diffMinutes =  (diffMilliseconds / 60000);

    return diffMinutes;
  }

  const getMinutesUntilEventEnd = (endDate) => {
    let nowDate = new Date();
    let eventEndDate = new Date(endDate);

    let diffMilliseconds = eventEndDate.getTime() - nowDate.getTime();
    let diffMinutes =  (diffMilliseconds / 60000);

    return diffMinutes;
  }

  window.addEventListener('load', () => {
    let upcomingEvents = document.getElementById('scroll-section-1');
    let upcomingCards = Array.from(upcomingEvents.getElementsByClassName('eventcard'));

    for (let i = 0; i < upcomingCards.length; i++) {
      let currCard = upcomingCards[i];
      let currCardStart = currCard.dataset.startdate;
      let minsTilStart = getMinutesUntilEventStart(currCardStart);

      if (minsTilStart <= 0) {
		// Check if event is offline 
	    if (currCard.dataset.offline == "true") {
		  	continue;
	    }
        let liveEl = document.createElement("div");
        liveEl.classList.add('live-circle');
        liveEl.innerText = "LIVE";
        currCard.insertAdjacentElement('afterbegin', liveEl);
      }  
    }
	
  });
</script>

<script>


<style>
  .live-circle {
    font-size: 13px;
    padding: 3px 18px;
    text-transform: uppercase;
    font-weight: bold;
    background-color: #cc1f1f;
    color: white;
    position: absolute;
    z-index: 2;
    margin: 8px 8px;
    box-shadow: 1px 1px 5px #00000054;
  }
</style>

<style>
  .watch-indicator {
    font-size: 12px;
    padding: 3px 10px;
    text-transform: uppercase;
    font-weight: bold;
    background-color: #036bc4;
    color: white;
    position: absolute;
    z-index: 2;
    margin: 8px 8px;
    box-shadow: 1px 1px 5px #00000054;
	border-radius: 3px;
	display: flex;
	justify-content: center;
	align-items: center;
  }
  .watch-indicator-icon {
	display: block;
    width: 14px !important;
    height: 14px !important;
    margin-right: 6px;
    padding-bottom: 2px;
  }
</style>