D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
stickain
/
flyfishing.davidsteele.com
/
wp-content
/
plugins
/
countdown-builder
/
assets
/
js
/
Filename :
Sticky.js
back
Copy
function ycdAddEvent(element, eventName, fn) { if (element.addEventListener) element.addEventListener(eventName, fn, false); else if (element.attachEvent) element.attachEvent('on' + eventName, fn); } function YcdSticky() { } YcdSticky.prototype = new YcgGeneral(); YcdSticky.prototype.init = function() { var header = jQuery('.ycd-sticky-header'); var settings = jQuery(header).data('settings'); this.seconds = 0; this.isActive = true; this.listeners() this.header(); this.stickyClock(); if (settings['ycd-sticky-show-condition'] === 'stickyConditionScroll') { var currentScrollPercentage = function() { return ((document.documentElement.scrollTop + document.body.scrollTop) / (document.documentElement.scrollHeight - document.documentElement.clientHeight) * 100); } var scrollCallBack = function(){ const scrollTop = parseInt(currentScrollPercentage()); if (scrollTop >= parseInt(settings['ycd-sticky-scroll-percent'])) { jQuery(header).removeClass('ycd-hide-banner') } else { jQuery(header).addClass('ycd-hide-banner'); } }; scrollCallBack(); jQuery(window).scroll(scrollCallBack); } else if (settings['ycd-sticky-show-condition'] === 'initial') { if (settings['ycd-sticky-scroll-delay'] != 0) { jQuery(".ycd-sticky-header").addClass('ycd-hide-banner'); setTimeout(function () { jQuery(header).removeClass('ycd-hide-banner') }, parseInt(settings['ycd-sticky-scroll-delay'])*1000) } } }; YcdSticky.prototype.listeners = function () { var that = this; jQuery(window).bind("tabInactive", function () { that.isActive = false; }) jQuery(window).bind("tabActive", function () { that.isActive = true; }) } YcdSticky.prototype.setCounterTime = function(calendarValue, selectedTimezone) { var currentDate = moment(new Date()).tz(selectedTimezone).format('MM/DD/YYYY H:m:s'); //var currentDate = moment(new Date()).format('MM/DD/YYYY H:m:s'); var dateTime = new Date(currentDate).valueOf(); var timeNow = Math.floor(dateTime / 1000); var seconds = Math.floor(new Date(calendarValue).getTime() / 1000) - timeNow; if (seconds < 0) { seconds = 0; } return seconds; }; YcdSticky.prototype.stickyClock = function() { var that = this; var header = jQuery('.ycd-sticky-header'); var settings = jQuery(header).data('settings'); var endDate = settings.endDate; endDate = endDate.replace(/-/g, '/'); var currentDate = moment(new Date(endDate)); var countDownDate = new Date(currentDate).getTime(); var stickyClock = jQuery('.ycd-sticky-clock'); this.seconds = that.getSeconds(settings)*1000; var runTimer = function () { var enableDays = settings['ycd-sticky-enable-days']; var enableHours = settings['ycd-sticky-enable-hours']; var enableMinutes = settings['ycd-sticky-enable-minutes']; var enableSeconds = settings['ycd-sticky-enable-seconds']; var now = moment().tz(settings.timeZone).format('MM/DD/YYYY HH:mm:ss'); //var now = moment().format('MM/DD/YYYY HH:mm:ss'); if (!that.isActive && settings['ycd-countdown-stop-inactive']) { return false; } that.seconds -= 1000; var distance = that.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); var isDouble = YCD_STICKY_ARGS.double; days = (days > 0) ? days : 0; hours = (hours > 0) ? hours : 0; minutes = (minutes > 0) ? minutes : 0; seconds = (seconds > 0) ? seconds : 0; if (isDouble) { if (days < 10) days = '0' + days; if (hours < 10) hours = '0' + hours; if (minutes < 10) minutes = '0' + minutes; if (seconds < 10) seconds = '0' + seconds; } // Build clockHtml dynamically based on enabled units var clockParts = []; if (enableDays) clockParts.push(days + YCD_STICKY_ARGS.days); if (enableHours) clockParts.push(hours + YCD_STICKY_ARGS.hours); if (enableMinutes) clockParts.push(minutes + YCD_STICKY_ARGS.minutes); if (enableSeconds) clockParts.push(seconds + YCD_STICKY_ARGS.seconds); var clockHtml = clockParts.join(' '); stickyClock.html(clockHtml); if (distance < 0) { clearInterval(x); that.endBehavior(stickyClock, settings); } }; var x = setInterval(function() { runTimer(); }, 1000); runTimer(); }; YcdSticky.prototype.endBehavior = function(countdown, options) { if (options['ycd-countdown-end-sound']) { var soundUrl = options['ycd-countdown-end-sound-url']; var song = new Audio (soundUrl); song.play(); } var id = options.id; var behavior = options['ycd-countdown-expire-behavior']; var expireText = options['ycd-expire-text']; var expireUrl = options['ycd-expire-url']; var headerWrapper = jQuery('.ycd-sticky-header-'+id); var countdownWrapper = countdown.parents('.ycd-countdown-wrapper').first(); jQuery(window).trigger('YcdExpired', {'id': id}); switch(behavior) { case 'hideCountdown': headerWrapper.hide(); break; case 'showText': countdown.fadeOut('slow').replaceWith(expireText); break; case 'redirectToURL': countdown.fadeOut('slow'); window.location.href = expireUrl; break; } }; YcdSticky.prototype.initClose = function () { var closeButton = jQuery('.ycd-sticky-close-text'); if (!closeButton.length) { return false; } var that = this; closeButton.bind('click', function () { var id = jQuery(this).parent().data('id'); that.closeBannerById(id); }); }; YcdSticky.prototype.closeBannerById = function (id) { var currentHeader = jQuery('.ycd-sticky-header-'+id); if (currentHeader.length) { currentHeader.hide(); jQuery(window).trigger('ycdStickyCountdownClose', [id]); } }; YcdSticky.prototype.buttonBehavior = function() { var header = jQuery('.ycd-sticky-header'); var settings = jQuery(header).data('settings'); var that = this; jQuery('.ycd-sticky-button').bind('click', function (e) { e.preventDefault(); var behavior = settings['ycd-sticky-expire-behavior']; if (behavior == 'redirectToURL') { var url = settings['ycd-sticky-url']; if (settings['ycd-sticky-url-new-tab']) { window.open(url); } else { window.location = url; } } else if (behavior == 'copy') { var textAreaId = 'ycd-copy-text-area-' + 1; var value = settings['ycd-sticky-button-copy']; var textArea = jQuery('<input>', { id: textAreaId, value: value, style: 'position: absolute; right: -10000px' }); if (!jQuery('#' + textAreaId).length) { jQuery('body').append(textArea); } jQuery('#' + textAreaId).select(); document.execCommand('copy'); jQuery('#' + textAreaId).remove(); if (settings['ycd-sticky-copy-alert']) { alert(settings['ycd-sticky-alert-text']); } } else if(behavior == 'closeBanner') { that.closeBannerById(settings['id']); } }); }; YcdSticky.prototype.header = function() { var header = jQuery('.ycd-sticky-header'); if(!header.length) { return false; } this.buttonBehavior(); this.initClose(); var sticky = header.offset().top; if (!header.data('footer')) { ycdAddEvent(window, 'scroll', function(e) { if (window.pageYOffset > sticky) { jQuery(header).addClass('ycd-sticky'); } else { jQuery(header).removeClass('ycd-sticky'); } }); } }; jQuery(document).ready(function() { var obj = new YcdSticky(); obj.init(); });