/* By Osvaldas Valutis, www.osvaldas.info Available for use under the MIT License */ ;(function( $, window, document, undefined ) { $.fn.doubleTapToGo = function( params ) { if( !( 'ontouchstart' in window ) && !navigator.msMaxTouchPoints && !navigator.userAgent.toLowerCase().match( /windows phone os 7/i ) ) return false; this.each( function() { var curItem = false; $( this ).on( 'click', function( e ) { var item = $( this ); if( item[ 0 ] != curItem[ 0 ] ) { e.preventDefault(); curItem = item; } }); $( document ).on( 'click touchstart MSPointerDown', function( e ) { var resetItem = true, parents = $( e.target ).parents(); for( var i = 0; i < parents.length; i++ ) if( parents[ i ] == curItem[ 0 ] ) resetItem = false; if( resetItem ) curItem = false; }); }); return this; }; })( jQuery, window, document ); var isMobileView = false; var windowWidth = $(window).width(); var screentype = (windowWidth > 1174) ? "desktop" : ( (windowWidth > 501 && windowWidth < 1175) ? "tablet" : "mobile"); function trimText(title, len) { if (title > parseInt(len)) return $.trim(title).substring(0, len).split(" ").slice(0, -1).join(" ") + "..."; return title; } function getDates(dateStr) { var result = new Array(); if (dateStr.indexOf(",") > -1) { // Contains more than 1 date value var dates = dateStr.split(","); for (var x = 0; x < dates.length; x++) { var dateObj = new Object(); var dt = dates[x]; var dtRange = new Array(); if (dt.indexOf('-') > -1) { // Date range found - split dateObj.single = false; dateObj.range = dt.split('-'); } else { dateObj.single = true; dateObj.date = dt; } result.push(dateObj); } } else { var dateObj = new Object(); if (dateStr.indexOf('-') > -1) { // Date range found - split dateObj.single = false; dateObj.range = dateStr.split('-'); } else { dateObj.single = true; dateObj.date = dateStr; } result.push(dateObj); } return result; } function getDate(str) { var result = str.split("/"); return new Date(parseInt(result [2], 10), parseInt(result [1], 10) - 1, parseInt(result [0], 10)); } function checkInRange(startdate, enddate, dt) { // 1 option for single date: // S E // 1. | x | // // 4 options for date range: // S E // 1. <--|----> | // 2. <--|----------|--> // 3. | <------> | // 4. | <--------|--> var sDate = getDate(startdate); var eDate = getDate(enddate); if (dt.single) { var testDate = getDate(dt.date); if (testDate >= sDate && testDate <= eDate) return true; } else { if (dt.range.length != 2) return false; var testSDate = getDate(dt.range[0]); var testEDate = getDate(dt.range[1]); if (testSDate <= sDate) { if (testEDate >= sDate) return true; // #1 & #2 } else { if (testSDate >= sDate && testSDate <= eDate) return true; // #3 if (testSDate <= eDate && testEDate >= eDate) return true; // #4 } } return false; } function setFirstLastClasses() { var listItems = $('.event-result-item'); $(listItems).removeClass("first-child").removeClass("last-child"); var listPos = 1; $.each(listItems, function(i,listItem){ if(listPos == 1 || listPos % 4 == 0) { $(listItem).addClass("first-child"); } if(listPos % 3 == 0) { $(listItem).addClass("last-child"); $(listItems[i+1]).addClass("first-child"); } listPos++; }); } function filterByDate(startdate, enddate) { if (enddate == "") enddate = '31/12/2050'; $('.items_block,.event-result-item').each(function(index) { var $item = $(this); var eDate = $item.attr('data-eventdates'); var dtRange = getDates(eDate); var inRange = false; for (var y = 0; y < dtRange.length && !inRange; y++) { var dt = dtRange[y]; inRange = checkInRange(startdate, enddate, dt); } if(!inRange) { $item.addClass('excluderange'); $item.removeClass('result-item-order'); } else { $item.removeClass('excluderange'); $item.addClass('result-item-order'); } }); pageResults(); // Set classes for list items //setFirstLastClasses(); } function getDateDDMMYYYY() { var today = new Date(); var dd = today.getDate(); var mm = today.getMonth()+1; //January is 0! return ((dd < 10)?'0'+dd:dd) + '/' + ((mm < 10)?'0'+mm:mm) + '/' + today.getFullYear(); } function getSrc($obj) { var src = $obj.attr('data-' + screentype); if (typeof src !== typeof undefined && src !== false) { // found a src attribute by this name if (src != "") { return src; } else if (screentype != "desktop") { // attempt to replace image with the desktop version src = $obj.attr('data-desktop'); if (typeof src !== typeof undefined && src !== false) { // found a src attribute by this name if (src != "") return src; } } } return ""; } function getAlt($obj) { var alt = $obj.attr('data-' + screentype + '-alt'); if (typeof alt !== typeof undefined && alt !== false) { if (alt != "") { return alt; } else { if (screentype != "desktop") { // attempt to replace image with the desktop version alt = $obj.attr('data-desktop-alt'); if (typeof alt !== typeof undefined && alt !== false) { // found an alt attribute by this name return alt; } } } } return ""; } function presetDatePicker($target) { var today = getDateDDMMYYYY(); $target.val(today); $target.on('click', function() { if ($(this).val() == today) $(this).val(''); }); $target.on('blur', function() { if ($(this).val() == "") $(this).val(today); }); } function pageResults(cPage) { if (!cPage) cPage = 0; else cPage = cPage*1; var $target = $('#pagination'); var rpp = 3; var items = 0; $('.items_block').each(function () { if ($(this).hasClass('excludetype') || $(this).hasClass('excluderange')) return; items++; }); if (items > 0) $('.noresults').addClass("hidden"); else $('.noresults').removeClass("hidden"); var pages = Math.floor(items / rpp); if (items % rpp > 0) pages += 1; if (pages <= 1) { $target.html(""); return; } // Adjust any pages out of range... if (cPage >= pages) cPage = (pages - 1); var pgStart = cPage*rpp; var pgEnd = pgStart + rpp; if (pgEnd > items) pgEnd = items; // More than 1 page of results - paginate var index = 0; $('.items_block,.event-result-item').each(function () { if ($(this).hasClass('excludetype') || $(this).hasClass('excluderange')) return; if (index < pgStart) $(this).addClass('paged'); else if (index >= pgEnd) $(this).addClass('paged'); else $(this).removeClass('paged'); index++; }); var pagination = '