| Server IP : 14.225.204.176 / Your IP : 216.73.216.252 Web Server : nginx/1.24.0 System : Linux nodejs-ybgk 6.8.0-40-generic #40-Ubuntu SMP PREEMPT_DYNAMIC Fri Jul 5 10:34:03 UTC 2024 x86_64 User : root ( 0) PHP Version : 8.1.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/html/php/harmoniegolfpark.com/assets/js/ |
Upload File : |
// Avoid `console` errors in browsers that lack a console.
(function() {
var method;
var noop = function() {};
var methods = [
'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
'timeStamp', 'trace', 'warn'
];
var length = methods.length;
var console = (window.console = window.console || {});
while (length--) {
method = methods[length];
// Only stub undefined methods.
if (!console[method]) {
console[method] = noop;
}
}
}());
// Global debug logger
var debug = true,
log = function(s){
if(debug) {
console.log(s);
}
};
var GOLF = GOLF || {};
var Modernizr = Modernizr || {};
$win = $(window);
$doc = $(document);
function geocodeAddress(geocoder, resultsMap) {
var address = document.getElementById('txt_direction').value;
geocoder.geocode({'address': address}, function(results, status) {
if (status === 'OK') {
resultsMap.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: resultsMap,
position: results[0].geometry.location
});
} else {
alert('Geocode was not successful for the following reason: ' + status);
}
});
};
var accordion = function () {
$('.link-view-more').on('click', function (e) {
e.preventDefault();
if ($(this).closest('.short-desc').hasClass('open')) {
$('.short-desc').removeClass('open');
} else {
$('.short-desc').removeClass('open');
$(this).closest('.short-desc').addClass('open');
}
// Show the content
$('.short-desc .drawer').slideToggle('300');
});
};
$doc.ready(function(){
GOLF.initCollapseMenu();
GOLF.initComponents();
GOLF.hero_slider();
GOLF.photo_slider();
GOLF.driving_range_slider();
GOLF.tournament_slider();
GOLF.handicap();
GOLF.newsmember();
GOLF.holeTooltip();
GOLF.scrollToElements();
GOLF.holesDetailPopup();
GOLF.initValidationForms();
GOLF.initTabs();
// Accordion
accordion();
//tab (index.html)
tabControl();
//slide last news
GOLF.news_slider();
});
GOLF.initCollapseMenu = function(){
$( '.toogle-nav .toogle-nav__link' ).on( 'click' , function() {
$( this ).addClass( 'is-current' );
$( '.header' ).addClass( 'is-opening' );
} );
// $('.js-btn-close').on('click' , function() {
// $('.header').removeClass( 'is-opening' );
// $('.toogle-nav__link').toggleClass( 'is-current' );
// });
$(document).bind('click', function(e){
if ($('.header__nav-m').find(e.target).length > 0 || $('.header__nav-m')[0] == e.target) {
if($(e.target).hasClass('js-btn-close') || $(e.target).parent().hasClass('js-btn-close')){
$('.header').removeClass( 'is-opening' );
$('.toogle-nav__link').toggleClass( 'is-current' );
}
return;
} else {
if($('.header').hasClass('is-opening') && !$(e.target).hasClass('toogle-nav__link')){
$('.header').removeClass( 'is-opening' );
$('.toogle-nav__link').toggleClass( 'is-current' );
}
}
});
}
/* ==================================================
Replace all SVG images with inline SVG that have "svg" class
================================================== */
$('img.svg').each(function(){
var $img = jQuery(this);
var imgID = $img.attr('id');
var imgClass = $img.attr('class');
var imgURL = $img.attr('src');
var imgTitle = $img.attr('title');
jQuery.get(imgURL, function(data) {
// Get the SVG tag, ignore the rest
var $svg = jQuery(data).find('svg');
// Add replaced image's ID to the new SVG
if(typeof imgID !== 'undefined') {
$svg = $svg.attr('id', imgID);
}
// Add replaced image's classes to the new SVG
if(typeof imgClass !== 'undefined') {
$svg = $svg.attr('class', imgClass+' replaced-svg');
}
// Remove any invalid XML tags as per http://validator.w3.org
$svg = $svg.removeAttr('xmlns:a');
// Replace image with new SVG
$img.replaceWith($svg);
$svg.find('title').remove();
}, 'xml');
});
/* ==================================================
hero-slider
================================================== */
GOLF.initComponents = function(){
//datepicker
if($('.form-row-date input').length){
$('.form-row-date input').Zebra_DatePicker({
direction: 1,
default_position: 'below'
});
}
//select menu
if($('#txt_time_to, #txt_time_from').length){
$('#txt_time_to, #txt_time_from').selectmenu({
icons: { button: "fa fa-clock-o" }
});
}
//nav category
if($('.nav-category').length){
$('.header').css('position', 'absolute');
$(window).scroll(function(){
if ($(window).scrollTop() > 300) {
$('.nav-category').css({
'position': 'fixed',
top: 0,
left: 0,
right: 0,
'z-index': 1000
});
} else {
$('.nav-category').css('position', 'initial');
}
});
}
}
/* ==================================================
hero-slider
================================================== */
GOLF.hero_slider = function() {
var hero_slider = $('.js-hero-slider');
hero_slider.slick({
dots: true,
autoplay: true,
autoplaySpeed: 8000,
mobileFirst: true,
fade: true,
arrows:false
});
}
/* ==================================================
hero-slider
================================================== */
GOLF.photo_slider = function() {
var photo_slider = $('.js-hm-photos__slider');
photo_slider.slick({
dots: true,
autoplay: true,
autoplaySpeed: 8000,
mobileFirst: true,
fade: true,
arrows:false
});
}
/* ==================================================
hero-slider
================================================== */
GOLF.driving_range_slider = function() {
var driving_range_slider = $('.js-slider-driving-range');
driving_range_slider.slick({
dots: true,
autoplay: true,
autoplaySpeed: 8000,
mobileFirst: true,
fade: true,
arrows:false
});
}
/* ==================================================
hero-slider
================================================== */
GOLF.tournament_slider = function() {
var tournament_slider = $('.js-slider-tournament');
tournament_slider.slick({
dots: true,
autoplay: true,
autoplaySpeed: 8000,
mobileFirst: true,
fade: true,
arrows:false
});
}
/* ==================================================
hero-slider
================================================== */
GOLF.handicap = function() {
var handicap = $('.js-slider-handicap');
handicap.slick({
dots: true,
autoplay: true,
autoplaySpeed: 8000,
mobileFirst: true,
fade: true,
arrows:false
});
}
/* ==================================================
hero-slider
================================================== */
GOLF.newsmember = function() {
var newsmember = $('.js-slider-new-member');
newsmember.slick({
dots: true,
autoplay: true,
autoplaySpeed: 8000,
mobileFirst: true,
fade: true,
arrows:false
});
}
/* ==================================================
tooltip
================================================== */
GOLF.holeTooltip = function() {
if($('.hole-tooltip').length > 0 && $(window).width() > 768) {
new $.Zebra_Tooltips($('.hole-tooltip'), {
background_color: '#101E30',
color: '#FFF'
});
//Onclick link -> show WEST button
var btnWestZones = $('.btn-west-course');
var btnEastZones = $('.btn-east-course');
btnWestZones.on('click', function (e) {
e.preventDefault();
var _this = $(this);
_this.removeClass('block-show').addClass('block-hide');
btnEastZones.removeClass('block-hide').addClass('block-show');
$('.content-golf__desc').find('.btn-hole-west').removeClass('block-hide').addClass('block-show');
$('.content-golf__desc').find('.btn-hole-east').removeClass('block-show').addClass('block-hide');
});
//Onclick link -> show WEST button
btnEastZones.on('click', function (e) {
e.preventDefault();
var _this = $(this);
_this.removeClass('block-show').addClass('block-hide');
btnWestZones.removeClass('block-hide').addClass('block-show');
$('.content-golf__desc').find('.btn-hole-east').removeClass('block-hide').addClass('block-show');
$('.content-golf__desc').find('.btn-hole-west').removeClass('block-show').addClass('block-hide');
});
}
}
/* ==================================================
Scroll to ID
================================================== */
GOLF.scrollToElements = function() {
$("a.nav-category__link").click(function (event) {
var _linkScrollTo = $(this).attr("href");
event.preventDefault();
$('html, body').animate({
scrollTop: $(_linkScrollTo).offset().top - 50
}, 1000);
});
}
/* ==================================================
colorbox
================================================== */
GOLF.holesDetailPopup = function(){
if($.colorbox){
var setDescription = function(pos){
var holes = $('.btn-hole-west, .btn-hole-east');
var desc = $('#cboxDescription');
if(!desc.length){
$('#cboxContent').append('<div id="cboxDescription"></div>');
desc = $('#cboxDescription');
}
if(isNaN(pos)){
desc.html($(pos).attr('data-desc'));
} else {
desc.html($(holes[pos]).attr('data-desc'));
}
};
var setHoleInfo = function(pos){
var holes = $('.btn-hole-west, .btn-hole-east');
var tblInfo = $('#cboxHoleInfo');
if(isNaN(pos)){
eval('var dataMen = ' + $(pos).attr('data-men-info'));
eval('var dataLadies = ' + $(pos).attr('data-ladies-info'));
} else {
eval('var dataMen = ' + $(holes[pos]).attr('data-men-info'));
eval('var dataLadies = ' + $(holes[pos]).attr('data-ladies-info'));
}
if(!tblInfo.length){
$('#cboxContent').append('<div id="cboxHoleInfo">'+
'<div class="hole-info">'+
'<div class="title">Men</div>'+
'<div class="yards"></div>'+
'<div class="meters"></div>'+
'<div class="par"></div>'+
'</div>'+
'<div class="line"></div>'+
'<div class="hole-info">'+
'<div class="title">Ladies</div>'+
'<div class="yards"></div>'+
'<div class="meters"></div>'+
'<div class="par"></div>'+
'</div>'+
'</div>');
tblInfo = $('#cboxHoleInfo');
}
var infos = tblInfo.find('.hole-info');
$(infos[0]).find('.yards').html(dataMen.yards + ' yards');
$(infos[0]).find('.meters').html(dataMen.meters + ' meters');
$(infos[0]).find('.par').html('Par ' + dataMen.par);
$(infos[1]).find('.yards').html(dataLadies.yards + ' yards');
$(infos[1]).find('.meters').html(dataLadies.meters + ' meters');
$(infos[1]).find('.par').html('Par ' + dataLadies.par);
}
$('.btn-hole-west, .btn-hole-east').colorbox({
rel: 'holes-group',
width: 650,
height: 560,
current: 'Holes {current} of {total}',
onLoad: function(){
//insert logo
var logo = $('#cboxlogo');
if(!logo.length){
$('#cboxContent').append('<div id="cboxlogo"><img src="assets/images/logo.png"/></div>');
}
//insert title
$('#cboxTitle').html($(this).attr('title'));
//insert description
setDescription(this);
//insert info
setHoleInfo(this);
//insert navigation
var holeNav = $('#cboxHoleNav');
if(!holeNav.length){
var pos = $(this).attr('data-pos');
var total = $('.btn-hole-west, .btn-hole-east').length;
var strNav = '';
for(var i=0; i<total; i++){
strNav += '<span> </span>';
}
$('#cboxContent').append('<div id="cboxHoleNav">'+
strNav +
'</div>');
holeNav = $('#cboxHoleNav');
}
holeNav.find('span').each(function(index, el){
if(pos == index){
$(el).addClass('current');
}
$(el).unbind().bind('click', function(e){
$.colorbox.launchAt(index);
holeNav.find('span').removeClass('current');
$(this).addClass('current');
});
});
}
});
}
}
/* ==================================================
Forms
================================================== */
GOLF.validateForm = function (formSelector) {
var frm = $(formSelector);
frm.initialize({
scrollToFirstError: false
});
frm.on('submit', function (e) {
$('.simple-validator-error').removeClass('simple-validator-error');
if (frm.validate()) {
return;
} else {
e.preventDefault();
}
});
}
GOLF.initValidationForms = function () {
if ($('#form-login').length) {
// PIZ.validateForm('#form-login');
}
if ($('#form-register').length) {
GOLF.validateForm('#form-register');
$('#form-register').registerValidator('data-cust-day', function (control) {
if ($('#txt-yy').val()=='' && $('#txt-mm').val()=='' && $('#txt-dd').val()=='') {
return true;
} else {
var year = $('#txt-yy').val();
var month = $('#txt-mm').val();
var day = $('#txt-dd').val();
var value = '' + (year==''?'undefined':year) + '-' + (month==''?'undefined':month) + '-' + (day==''?'undefined':day);
if(Number(month) == 2 && Number(day) > 29){
return false;
} else {
var d = new Date(value);
return (d == 'Invalid Date'?false:true);
}
}
});
$('#form-register').registerValidator('data-cust-phone', function (control) {
if ((control.val().length == 10 || control.val().length == 11) && !isNaN(Number(control.val()))) {
return true;
} else {
return false;
}
});
// $('#form-register .btn-continue').on('click', function (e) {
// e.preventDefault();
// var ok = $('#form-register #phone').validateField();
// if (ok) {
// // $('#form-register .register--step-1').hide();
// // $('#form-register .register--step-2').show();
// // $('.block--register .dot__list__item:first').removeClass('is-current');
// // $('.block--register .dot__list__item:last').addClass('is-current');
// // $('.simple-validator-error').removeClass('simple-validator-error');
// } else {
// $('#form-register').trigger('submit');
// }
// });
}
}
/* ==================================================
Tabs
================================================== */
//tabs
GOLF.initTabs = function () {
if($('.nav-news').length){
var tabs = $('.nav-news .nav-news__item');
var tabContents = $('.content-news .container');
var curPos = 0;
if (!tabs.length) return;
// $(tabContents[0]).parent().height($(tabContents[0]).height());
tabs.each(function (index, el) {
$(el).unbind().bind('click', function (e) {
e.preventDefault();
$(tabContents).hide();
$(tabContents[index]).show();
$(tabs[curPos]).removeClass('current');
$(tabs[index]).addClass('current');
curPos = index;
});
});
}
}
var tabControl = function(){
var $feature = $('.tab-controls');
$feature.on('click', 'a', function(e) {
e.preventDefault();
var $this = $(this),
classTabActive = 'current',
classContentActive = 'current',
$target = $($this.attr('href')),
$parent = $this.parent(),
$group = $($this.data('group')).find('.tab-container');
if(!$parent.hasClass(classTabActive)) {
$parent.siblings('li').removeClass(classTabActive);
$parent.addClass(classTabActive);
$group.removeClass(classContentActive);
$target.addClass(classContentActive);
}
});
};
GOLF.news_slider = function() {
var $status = $('.paging-info');
var $slickElement = $('.slide-news');
$slickElement.on('init reInit afterChange', function (event, slick, currentSlide, nextSlide) {
var i = (currentSlide ? currentSlide : 0) + 1;
$status.text(i + '/' + slick.slideCount);
});
$slickElement.slick({
dots: false,
autoplay: false,
autoplaySpeed: 8000,
mobileFirst: true,
arrows:true,
});
}