1/* eslint-disable */ 2(function ($) { 3 'use strict'; 4 5 function gens_set_cookie(name, value, days) { 6 var expires = ''; 7 if (days) { 8 var date = new Date(); 9 date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000); 10 expires = '; expires=' + date.toUTCString(); 11 } 12 document.cookie = name + '=' + (value || '') + expires + '; path=/'; 13 } 14 15 //Javascript GET cookie parameter 16 const urlParams = new URLSearchParams(window.location.search); 17 const myParam = urlParams.get('raf'); 18 var $_GET = {}; 19 document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () { 20 function decode(s) { 21 return decodeURIComponent(s.split('+').join(' ')); 22 } 23 24 $_GET[decode(arguments[1])] = decode(arguments[2]); 25 }); 26 27 // Get time var defined in woo backend 28 var $time = 1; 29 if (typeof gens_raf !== 'undefined' && gens_raf.cookieTime !== '') { 30 $time = parseInt(gens_raf.cookieTime); 31 } 32 33 //If raf is set, add cookie. 34 if ((typeof $_GET['raf'] !== 'undefined' && $_GET['raf'] !== null) || myParam) { 35 //console.log(window.location.hostname); 36 gens_set_cookie('gens_raf', myParam ? myParam : $_GET['raf'], $time); 37 } 38 39 if (typeof gens_raf.modal !== 'undefined' && gens_raf.modal) { 40 const delay = gens_raf.modal_delay ? gens_raf.modal_delay * 1000 : 0; 41 setTimeout(function () { 42 const modalElement = document.getElementById('raf-modal'); 43 if (modalElement) { 44 modalElement.style.display = 'flex'; 45 } 46 }, delay); 47 } 48 49 // Share Shortcode 50 $.fn.rafSocShare = function (opts) { 51 var $this = this; 52 53 opts = $.extend( 54 { 55 attr: 'href', 56 linked_in: false, 57 pinterest: false, 58 whatsapp: false, 59 }, 60 opts 61 ); 62 63 for (var opt in opts) { 64 if (opts[opt] === false) { 65 continue; 66 } 67 68 switch (opt) { 69 case 'facebook': 70 var url = 'https://www.facebook.com/sharer/sharer.php?u='; 71 var name = 'Facebook'; 72 _popup(url, name, opts[opt], 400, 640); 73 break; 74 75 case 'twitter': 76 var posttitle = $('.gens-referral_share__tw').data('title'); 77 var via = $('.gens-referral_share__tw').data('via'); 78 var url = 'https://twitter.com/intent/tweet?via=' + via + '&text=' + encodeURIComponent(posttitle) + '&url='; 79 var name = 'Twitter'; 80 _popup(url, name, opts[opt], 440, 600); 81 break; 82 83 case 'whatsappDesktop': 84 var posttitle = $('.gens-referral_share__wade').data('title'); 85 var url = 'whatsapp://send?text=' + encodeURIComponent(posttitle) + '%20'; 86 var name = 'WhatsApp Desktop'; 87 _popup(url, name, opts[opt], 600, 600); 88 break; 89 90 case 'linked_in': 91 var url = 'https://www.linkedin.com/shareArticle?mini=true&url='; 92 var name = 'LinkedIn'; 93 _popup(url, name, opts[opt], 570, 520); 94 break; 95 96 case 'pinterest': 97 var url = 'https://www.pinterest.com/pin/create/link/?url='; 98 var name = 'Pinterest'; 99 _popup(url, name, opts[opt], 500, 800); 100 break; 101 102 case 'whatsapp': 103 var posttitle = $('.gens-referral_share__wa').data('title'); 104 var name = 'Whatsapp'; 105 var url = 'whatsapp://send?text=' + encodeURIComponent(posttitle) + '%20'; 106 _popup(url, name, opts[opt], 500, 800); 107 break; 108 109 case 'viber': 110 var posttitle = $('.gens-referral_share__viber').data('title'); 111 var name = 'Whatsapp'; 112 var url = 'viber://forward?text=' + encodeURIComponent(posttitle) + '%20'; 113 _popup(url, name, opts[opt], 500, 800); 114 break; 115 116 default: 117 break; 118 } 119 } 120 121 function _popup(url, name, opt, height, width) { 122 if (opt !== false && $this.find(opt).length) { 123 $this.on('click', opt, function (e) { 124 e.preventDefault(); 125 126 var top = screen.height / 2 - height / 2; 127 var left = screen.width / 2 - width / 2; 128 var share_link = $(this).attr(opts.attr); 129 130 if (name === 'Whatsapp') { 131 window.location = url + encodeURIComponent(share_link) + '%20'; 132 return true; 133 }
133 else if (name === 'WhatsApp Desktop') { 134 window.open(url, name, 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=' + height + ',width=' + width + ',top=' + top + ',left=' + left); 135 } else { 136 window.open( 137 url + encodeURIComponent(share_link), 138 name, 139 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=' + height + ',width=' + width + ',top=' + top + ',left=' + left 140 ); 141 } 142 143 return false; 144 }); 145 } 146 } 147 return; 148 }; 149 150 function gensCopyText(text) { 151 function selectElementText(element) { 152 if (document.selection) { 153 var range = document.body.createTextRange(); 154 range.moveToElementText(element); 155 range.select(); 156 } else if (window.getSelection) { 157 var range = document.createRange(); 158 range.selectNode(element); 159 window.getSelection().removeAllRanges(); 160 window.getSelection().addRange(range); 161 } 162 } 163 var element = document.createElement('DIV'); 164 element.textContent = text; 165 element.style.backgroundColor = '#fff'; 166 element.style.color = '#000'; 167 document.body.appendChild(element); 168 selectElementText(element); 169 document.execCommand('copy'); 170 element.remove(); 171 } 172 173 jQuery(document).ready(function () { 174 $('.gens-referral_share').rafSocShare({ 175 facebook: '.gens-referral_share__fb', 176 twitter: '.gens-referral_share__tw', 177 whatsappDesktop: '.gens-referral_share__wade', 178 linked_in: '.gens-referral_share__ln', 179 pinterest: '.gens-referral_share__pin', 180 whatsapp: '.gens-referral_share__wa', 181 viber: '.gens-referral_share__viber', 182 }); 183 184 $('#js--gens-email-clone').on('click', function (e) { 185 e.preventDefault(); 186 var $clone = $('#gens-referral_share__email').children().first().clone(); 187 $clone.insertBefore('#js--gens-email-clone').find('input').val(''); 188 }); 189 190 $('.raf-close').on('click', function (e) { 191 e.preventDefault(); 192 $('#raf-modal').hide(); 193 }); 194 195 $('#js--gens-email-remove').on('click', function (e) { 196 e.preventDefault(); 197 if ($('.gens-referral_share__email__inputs').length > 1) { 198 $('#gens-referral_share__email').find('.gens-referral_share__email__inputs').last().remove(); 199 } 200 }); 201 202 $('#gens-referral_share__email').submit(function (e) { 203 e.preventDefault(); 204 var valid = true; 205 $('.gens-referral_share__email__inputs').each(function () { 206 var emailInput = $(this).find("input[type='email']"); 207 emailInput.removeClass('error'); 208 if (!validateEmail(emailInput.val())) { 209 valid = false; 210 emailInput.addClass('error'); 211 } 212 }); 213 if (valid === true) { 214 gensAjaxSubmit(); 215 } 216 }); 217 218 // Click to copy 219 $('.gens-ctc').on('click', function () { 220 var that = this; 221 var text = $(this).text(); 222 var copied = $(this).data('text'); 223 var raf_link = $(this).parent().find('strong').text(); 224 var copied; 225 gensCopyText(raf_link); 226 $(this).text(copied); 227 setTimeout(function () { 228 $(that).text(text); 229 }, 1500); 230 }); 231 232 const copyInputs = Array.from(document.querySelectorAll('.gens-copy')); 233 copyInputs.forEach((input) => { 234 input.addEventListener('click', function () { 235 const input = this.querySelector('input'); 236 const copyIcon = this.querySelector('.gens-copy-icon'); 237 const copiedIcon = this.querySelector('.gens-copied-icon'); 238 239 navigator.clipboard 240 .writeText(input.value) 241 .then(() => { 242 copyIcon.style.display = 'none'; 243 copiedIcon.style.display = 'block'; 244 245 setTimeout(() => { 246 copyIcon.style.display = 'block'; 247 copiedIcon.style.display = 'none'; 248 }, 2000); 249 }) 250 .catch((err) => { 251 console.error('Could not copy text: ', err); 252 }); 253 }); 254 }); 255 256 // Generate referral link from guest email 257 $('body').on('click', '.gens-raf-generate-link', function () {
258 var valid = true; 259 var $email = $('.gens-raf-guest-email'); 260 var $name = $('.gens-raf-guest-name'); 261 if (!validateEmail($email.val())) { 262 valid = false; 263 $email.addClass('error'); 264 } 265 if (valid === true) { 266 $('.gens-raf__url strong').text($('.gens-raf__url strong').text() + '?raf=' + $email.val()); 267 const input = $('.gens-raf-field--link'); 268 if (input.length) { 269 input.val(input.val() + '?raf=' + $email.val()); 270 } 271 $('.gens-referral_share') 272 .find('a') 273 .each(function () { 274 var $href = $(this).attr('href'); 275 $(this).attr('href', $href + '?raf=' + $email.val()); 276 }); 277 var $link = $('.gens-refer-a-friend').attr('data-link'); 278 $('.gens-refer-a-friend').attr('data-link', $link + '?raf=' + $email.val()); 279 $('.gens-refer-a-friend').attr('data-name', $name.val()); 280 $('.gens-refer-a-friend--generate').hide(); 281 $('.gens-refer-a-friend--guest').show(); 282 gens_set_cookie('gens_raf_guest', $email.val(), 7); 283 } 284 }); 285 286 // Refresh on email change 287 var typingTimer; 288 var gensDoneTypingInterval = 1000; 289 290 $('#billing_email').on('input', function () { 291 window.clearTimeout(typingTimer); 292 typingTimer = window.setTimeout(() => gensDoneTyping('email'), gensDoneTypingInterval); 293 }); 294 295 $('#shipping_email').on('input', function () { 296 window.clearTimeout(typingTimer); 297 typingTimer = window.setTimeout(() => gensDoneTyping('email'), gensDoneTypingInterval); 298 }); 299 300 $('#billing_phone').on('input', function () { 301 window.clearTimeout(typingTimer); 302 typingTimer = window.setTimeout(() => gensDoneTyping('phone'), gensDoneTypingInterval); 303 }); 304 305 function validateEmail(email) { 306 var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 307 return re.test(String(email).toLowerCase()); 308 } 309 310 function gensDoneTyping(type) { 311 if (type === 'email') { 312 var val = $('#billing_email').val(); 313 if (val.indexOf('@') > -1) { 314 jQuery(document.body).trigger('update_checkout'); 315 } 316 } else { 317 jQuery(document.body).trigger('update_checkout'); 318 } 319 } 320 321 function gensAjaxSubmit() { 322 $("#gens-referral_share__email input[type='submit']").prop('disabled', true); 323 var data = new Array(); 324 var link = $('.gens-refer-a-friend').data('link'); 325 var name = $('.gens-refer-a-friend').data('name'); 326 $('.gens-referral_share__email__inputs').each(function () { 327 var email = $(this).find("input[type='email']").val(); 328 var text = $(this).find("input[type='text']").val(); 329 if (email != '') { 330 var valueToPush = {}; 331 valueToPush.email = email; 332 valueToPush.name = text; 333 data.push(valueToPush); 334 } 335 }); 336 337 jQuery.ajax({ 338 type: 'POST', 339 url: gens_raf.ajax_url, 340 data: { 341 data: data, 342 link: link, 343 name: name, 344 action: 'gens_share_via_email', 345 }, 346 success: function (data) { 347 // Remove form and say thx 348 $('.gens-raf-submit-success').show(); 349 $('.gens-raf-send-emails').hide(); 350 var $success = "<div class='gens-raf-mail-share'>" + gens_raf.success_msg + '</div>'; 351 $('.gens-referral_share__email__inputs').not(':first').remove(); 352 $('.gens-referral_share__email__inputs').find('input').val(''); 353 $("#gens-referral_share__email input[type='submit']").prop('disabled', false); 354 $('.gens-referral_share__email').after($success); 355 setTimeout(function (d) { 356 $('.gens-raf-mail-share').remove(); 357 $('.gens-raf-submit-success').hide(); 358 $('.gens-raf-send-emails').show(); 359 }, 4500); 360 }, 361 }); 362 return false;
363 } 364 }); 365})(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.