1/** 2 * SITE.Tracking 3 * 4 * @author CLHOM 5 * @website http://www.kiiiick.com 6 * @copyright Copyright (C) KiiiiCK Co., All Rights Reserved. 7 */ 8 9"use strict"; 10 11var SITE = SITE || {}; 12 13;(function(SITE) { 14 15 SITE.Tracking = function(configs) { 16 17 //-- set public value --// 18 19 20 //-- set private value --// 21 var _driver = []; 22 23 var _configs = { 24 // selector 25 eventTarget: '', 26 27 // driver 28 driver: ['ga', 'gagtag', 'gtag', 'fbpixel'], 29 30 // events 31 events: ['load', 'click', 'change'], 32 33 // status 34 debug: true 35 36 // hook functions 37 38 }; 39 40 var _helper = { 41 console: { 42 log: function(v){ 43 if (_configs.debug === true) { 44 console.log(v); 45 } else { 46 return false; 47 } 48 } 49 } 50 }; 51 52 //-- set construct in object --// 53 function __construct() { 54 _helper.console.log('<Tracking> init'); 55 56 if (String(typeof _configs.driver).toLowerCase() == 'string') { 57 setDriver(_configs.driver); 58 } else { 59 for (var k in _configs.driver) { 60 setDriver(_configs.driver[k]); 61 } 62 } 63 } 64 65 //-- set private function --// 66 function setDriver(target) { 67 switch (target) { 68 case 'ga': 69 _driver[target] = new SITE.Tracking_GoogleAnalytics({debug: _configs.debug}); 70 break; 71 72 case 'gagtag': 73 _driver[target] = new SITE.Tracking_GoogleAnalyticsGtag({debug: _configs.debug}); 74 break; 75 76 case 'gtag': 77 _driver[target] = new SITE.Tracking_GoogleTagManager({debug: _configs.debug}); 78 break; 79 80 case 'fbpixel': 81 _driver[target] = new SITE.Tracking_Fbpixel({debug: _configs.debug}); 82 break; 83 } 84 85 setEvent(target); 86 } 87 88 function setEvent(target) { 89 var _event = function(e) { 90 var $this = $(this), 91 data = $this.data(); 92 93 if ($this.attr('type') == 'submit') 94 { 95 var valided = true, 96 $form = $this.parents('form'); 97 98 if ($form.length > 0 && $form[0].elements.length > 0) 99 { 100 $.each($form[0].elements, function(k, v) { 101 if (v.validity != undefined && ! v.validity.valid) valided = false; 102 }); 103 } 104 105 if (valided === true) startTrack(data, target); 106 } 107 else 108 { 109 startTrack(data, target); 110 } 111 112 return true; 113 }; 114 115 // Event register 116 for (var k in _configs.events) { 117 var v = _configs.events[k]; 118 119 switch (v) { 120 case 'load': 121 $(_configs.eventTarget + '[data-tracking-event="load"]').each(_event); 122 break; 123 124 default: 125 $('body').on(v + '.tracking', _configs.eventTarget + '[data-tracking-event="' + v + '"]', _event); 126 break; 127 } 128 } 129 } 130 131 function startTrack(data, target) { 132 switch (target) { 133 case 'ga': 134 if (data.trackingGa != undefined) _driver[target].trackEvent(data.trackingGa.event, data.trackingGa.data); 135 if (data.trackingGaEcommerce != undefined) _driver[target].trackEcommerce(data.trackingGaEcommerce.event, data.trackingGaEcommerce.data); 136 break; 137 138 case 'gagtag': 139 if (data.trackingGagtag != undefined) _driver[target].trackEvent(data.trackingGagtag.event, data.trackingGagtag.data); 140 break; 141 142 case 'gtag': 143 if (data.trackingGtag != undefined) _driver[target].trackEvent(data.trackingGtag); 144 break; 145 146 case 'fbpixel': 147 if (data.trackingFbpixel != undefined) _driver[target].trackEvent(data.trackingFbpixel.event, data.trackingFbpixel.data); 148 break; 149 } 150 151 return true; 152 } 153 154 //-- set public function --// 155 this.startTrack = startTrack; 156 this.setEvent = setEvent; 157 158 var _this = this; 159 160 _configs = $.extend(_configs, configs); 161 162 __construct(); 163 164 }; 165 166})(SITE); 167/** 168 * SITE.Tracking_Fbpixel 169 * 170 * @author CLHOM 171 * @website http://www.kiiiick.com 172 * @copyright Copyright (C) KiiiiCK Co., All Rights Reserved. 173 */ 174 175"use strict"; 176 177var SITE = SITE || {}; 178 179;(function(SITE) { 180 181 SITE.Tracking_Fbpixel = function(configs) { 182 183 //-- set public value --// 184 185 186 //-- set private value --// 187 var _configs = { 188 // selectors 189 190 191 // jquery object 192 193 194 // status 195 debug: true 196 197 // hook functions 198 199 }; 200 201 var _helper = { 202 console: { 203 log: function(v){ 204 if (_configs.debug === true) { 205 console.log(v); 206 } else { 207 return false;
208 } 209 } 210 }, 211 212 fbq: function(t, c, d) { 213 try { 214 _helper.console.log('-- FB Pixel --'); 215 _helper.console.log('> ' + t + ': ' + c); 216 217 if (d != undefined) { 218 _helper.console.log('> data: '); 219 _helper.console.log(d); 220 if (_configs.debug === false) fbq(t, c, d); 221 } else { 222 if (_configs.debug === false) fbq(t, c); 223 } 224 } catch (err) {} 225 } 226 }; 227 228 //-- set construct in object --// 229 function __construct() { 230 _helper.console.log('<FB Pixel> init'); 231 } 232 233 //-- set private function --// 234 235 236 //-- set public function --// 237 this.trackEvent = function(c, d) { 238 if (c == undefined) { 239 _helper.console.log('data incomplete!'); 240 return; 241 } 242 243 if (d != undefined) { 244 if (!$.isPlainObject(d)) { 245 _helper.console.log('wrong data format!'); 246 return; 247 } 248 249 _helper.fbq('track', c, d); 250 } else { 251 _helper.fbq('track', c); 252 } 253 }; 254 255 256 var _this = this; 257 258 _configs = $.extend(_configs, configs); 259 260 __construct(); 261 262 }; 263 264})(SITE); 265/** 266 * SITE.Tracking_GoogleAnalytics 267 * 268 * @author CLHOM 269 * @website http://www.kiiiick.com 270 * @copyright Copyright (C) KiiiiCK Co., All Rights Reserved. 271 */ 272 273"use strict"; 274 275var SITE = SITE || {}; 276 277;(function(SITE) { 278 279 280 SITE.Tracking_GoogleAnalytics = function(configs) { 281 282 //-- set public value --// 283 284 285 //-- set private value --// 286 var _configs = { 287 // selectors 288 289 290 // jquery object 291 292 293 // status 294 debug: true 295 296 // hook functions 297 298 }; 299 300 var _helper = { 301 console: { 302 log: function(v){ 303 if (_configs.debug === true) { 304 console.log(v); 305 } else { 306 return false; 307 } 308 } 309 }, 310 311 ga: function(t, c, d) { 312 try { 313 _helper.console.log('-- Google Analytics --'); 314 _helper.console.log('> ' + t + ': ' + c); 315 316 if (t == 'ecommerce') { 317 if (d != undefined) { 318 _helper.console.log('> data: '); 319 _helper.console.log(d); 320 if (_configs.debug === false) ga(c, d); 321 } else { 322 if (_configs.debug === false) ga(c); 323 } 324 } else { 325 if (d != undefined) { 326 _helper.console.log('> data: '); 327 _helper.console.log(d); 328 if (_configs.debug === false) ga(t, c, d); 329 } 330 } 331 } catch (err) {} 332 } 333 }; 334 335 //-- set construct in object --// 336 function __construct() { 337 _helper.console.log('<Google Analytics> init'); 338 } 339 340 //-- set private function --// 341 342 343 //-- set public function --// 344 this.trackEvent = function(c, d) { 345 if (c == undefined || d == undefined) { 346 _helper.console.log('data incomplete!'); 347 return; 348 } 349 350 if (!$.isPlainObject(d)) { 351 _helper.console.log('wrong data format!'); 352 return; 353 } 354 355 _helper.ga('send', c, d); 356 }; 357 358 this.trackEcommerce = function(c, d) { 359 if (c == undefined) { 360 _helper.console.log('data incomplete!'); 361 return; 362 } 363 364 _helper.ga('ecommerce', c, d); 365 } 366 367 368 var _this = this; 369 370 _configs = $.extend(_configs, configs); 371 372 __construct(); 373 374 }; 375 376})(SITE); 377/** 378 * SITE.Tracking_GoogleAnalyticsGtag 379 * 380 * @author CLHOM 381 * @website http://www.kiiiick.com 382 * @copyright Copyright (C) KiiiiCK Co., All Rights Reserved. 383 */ 384 385"use strict"; 386 387var SITE = SITE || {}; 388 389;(function(SITE) { 390 391 392 SITE.Tracking_GoogleAnalyticsGtag = function(configs) { 393 394 //-- set public value --// 395 396 397 //-- set private value --// 398 var _configs = { 399 // selectors 400 401 402 // jquery object 403 404 405 // status 406 debug: true 407 408 // hook functions 409 410 }; 411 412 var _helper = { 413 console: { 414 log: function(v){ 415 if (_configs.debug === true) { 416 console.log(v); 417 } else { 418 return false; 419 } 420 } 421 }, 422 423 gtag: function(t, c, d) { 424 try { 425 _helper.console.log('-- Google Analytics Gtag --'); 426 _helper.console.log('> ' + t + ': ' + c); 427 428 if (d != undefined) { 429 _helper.console.log('> data: '); 430 _helper.console.log(d); 431 if (_configs.debug === false) gtag(t, c, d); 432 } 433 } catch (err) {} 434 } 435 }; 436 437 //-- set construct in object --// 438 function __construct() { 439 _helper.console.log('<Google Analytics Gtag> init'); 440 } 441 442 //-- set private function --// 443 444 445 //-- set public function --// 446 this.trackEvent = function(c, d) { 447 if (c == undefined || d == undefined) { 448 _helper.console.log('data incomplete!'); 449 return; 450 } 451 452 if (!$.isPlainObject(d)) { 453 _helper.console.log('wrong data format!'); 454 return; 455 } 456 457 _helper.gtag('event', c, d); 458 }; 459 460 461 var _this = this; 462 463 _configs = $.extend(_configs, configs); 464 465 __construct(); 466 467 }; 468 469})(SITE);
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.