Guest User

Untitled

a guest
Oct 19th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. (function(window) {
  2.  
  3. var document = window.document,
  4. initFormCookies = function(form) {
  5. addQueryParamsToCookies();
  6. addCookieInputsToForm(form);
  7. },
  8. addQueryParamsToCookies = function() {
  9. var params = parseQueryString(document.location.search.substring(1)),
  10. keys = ['utm_source', 'utm_medium', 'utm_campaign', 'ref'],
  11. cookies = ['domain=.'+window.location.hostname.split('.').slice(-2).join('.')],
  12. cookieString = '';
  13.  
  14. for (var i = 0; i < keys.length; i++) {
  15. if (params[keys[i]]) {
  16. cookies.push([keys[i], params[keys[i]]].join('='));
  17. }
  18. }
  19. cookieString = cookies.join('; ')
  20. document.cookie = cookieString
  21. },
  22. addCookieInputsToForm = function(form) {
  23. var cookies = parseQueryString(document.cookie, '; '),
  24. keys = ['utm_source', 'utm_medium', 'utm_campaign', 'ref'];
  25.  
  26. for (var i = 0; i < keys.length; i++) {
  27. if (!cookies[keys[i]]) continue;
  28. var input = document.createElement('input');
  29. input.type = 'hidden';
  30. input.name = keys[i];
  31. input.value = cookies[keys[i]];
  32. form.appendChild(input);
  33. }
  34. },
  35. parseQueryString = function(queryString, delimiter = '&', separator = '=') {
  36. var pairs = queryString.split(delimiter),
  37. pair = [],
  38. params = {};
  39.  
  40. pairs.map(function(item) {
  41. pair = item.split(separator);
  42. if (pair.length < 2) { return false; }
  43. params[pair[0]] = pair[1];
  44. });
  45.  
  46. return params;
  47. };
  48.  
  49. window.addEventListener('DOMContentLoaded', function() {
  50. var forms = document.querySelectorAll('.email-capture-form');
  51. for (i = 0; i < forms.length; i++) {
  52. initFormCookies(forms[i]);
  53. }
  54. });
  55.  
  56. }(window));
Add Comment
Please, Sign In to add comment