https://www.linkconnector.com/wordpress/wp-content/plugins/wp-goog…/js/ga-scroll-events.js?ver=2.4.1
1/*! 2 * WP Googel Analytics Events | v2.4.1 3 * Copyright (c) 2013 Yuval Oren (@yuvalo) 4 * License: GPLv2 5 */ 6 7/*jslint indent: 4 */ 8/*global $, jQuery, document, window, _gaq*/ 9 10var scroll_events = (function ($) { 11 "use strict"; 12 13 var scroll_elements = []; 14 var click_elements = []; 15 var universal = 0; 16 var ga_element; 17 18 var track_event = function (category, action, label, universal, bounce ){ 19 var event_category = !category ? '' : category; 20 var event_action = !action ? '' : action; 21 var event_label = !label ? '' : label; 22 var event_bounce = !bounce ? false : bounce; 23 24 if( typeof ga_element === "undefined" ){ 25 if( typeof ga !== 'undefined' ){ 26 ga_element = ga; 27 } 28 else if( typeof _gaq !== 'undefined' ){ 29 ga_element = _gaq; 30 } 31 else if( typeof __gaTracker === "function" ){ 32 ga_element = __gaTracker; 33 } 34 } 35 36 if( universal ){ 37 // ga_element('send','event', category, action, label); 38 ga_element('send','event', category, action, label, {'nonInteraction': event_bounce}); 39 40 } 41 else { 42 // ga_element.push(['_trackEvent',category, action, label]); 43 ga_element.push( ['_trackEvent',category, action, label, '', event_bounce] ); 44 } 45 46 }; 47 48 var click_event = function( event ){ 49 50 track_event(event.data.category, event.data.action, event.data.label, event.data.universal, event.data.bounce); 51 var hasHref = event.currentTarget.href; 52 if (hasHref && hasHref !== "") { 53 event.preventDefault(); 54 if (event.currentTarget.target.trim() === "_blank") { 55 var w = window.open('', '_blank'); 56 w.location.href = event.currentTarget.href; 57 } else { 58 setTimeout(function () { 59 window.location = event.currentTarget.href; 60 }, 100); 61 } 62 } 63 }; 64 65 return { 66 bind_events : function (settings) { 67 scroll_elements = settings.scroll_elements; 68 click_elements = settings.click_elements; 69 universal = settings.universal; 70 var i; 71 for (i = 0; i < click_elements.length; i++) { 72 var clicked = click_elements[i]; 73 clicked.universal = universal; 74 $(clicked.select).on('click', clicked, click_event); 75 } 76 77 78 79 $(window).scroll(function () { 80 var ga_window = $(window).height(); 81 var ga_scroll_top = $(document).scrollTop(); 82 var i; 83 for (i = 0; i < scroll_elements.length; i++) { 84 if (!scroll_elements[i].sent) { 85 scroll_elements[i].offset = $(scroll_elements[i].select).offset(); 86 if (scroll_elements[i].offset && ga_scroll_top + ga_window >= scroll_elements[i].offset.top + $(scroll_elements[i].select).height()) { 87 track_event(scroll_elements[i].category, scroll_elements[i].action, scroll_elements[i].label, universal, scroll_elements[i].bounce); 88 scroll_elements[i].sent = true; 89 } 90 } 91 } 92 }); 93 } 94 }; 95 96}(jQuery));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.