Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (function(window) {
- var document = window.document,
- initFormCookies = function(form) {
- addQueryParamsToCookies();
- addCookieInputsToForm(form);
- },
- addQueryParamsToCookies = function() {
- var params = parseQueryString(document.location.search.substring(1)),
- keys = ['utm_source', 'utm_medium', 'utm_campaign', 'ref'],
- cookies = ['domain=.'+window.location.hostname.split('.').slice(-2).join('.')],
- cookieString = '';
- for (var i = 0; i < keys.length; i++) {
- if (params[keys[i]]) {
- cookies.push([keys[i], params[keys[i]]].join('='));
- }
- }
- cookieString = cookies.join('; ')
- document.cookie = cookieString
- },
- addCookieInputsToForm = function(form) {
- var cookies = parseQueryString(document.cookie, '; '),
- keys = ['utm_source', 'utm_medium', 'utm_campaign', 'ref'];
- for (var i = 0; i < keys.length; i++) {
- if (!cookies[keys[i]]) continue;
- var input = document.createElement('input');
- input.type = 'hidden';
- input.name = keys[i];
- input.value = cookies[keys[i]];
- form.appendChild(input);
- }
- },
- parseQueryString = function(queryString, delimiter = '&', separator = '=') {
- var pairs = queryString.split(delimiter),
- pair = [],
- params = {};
- pairs.map(function(item) {
- pair = item.split(separator);
- if (pair.length < 2) { return false; }
- params[pair[0]] = pair[1];
- });
- return params;
- };
- window.addEventListener('DOMContentLoaded', function() {
- var forms = document.querySelectorAll('.email-capture-form');
- for (i = 0; i < forms.length; i++) {
- initFormCookies(forms[i]);
- }
- });
- }(window));
Add Comment
Please, Sign In to add comment