|
|
@@ -0,0 +1,89 @@ |
|
|
$ = jQuery; |
|
|
|
|
|
/* |
|
|
* jQuery BBQ: Back Button & Query Library - v1.3pre - 8/26/2010 |
|
|
* http://benalman.com/projects/jquery-bbq-plugin/ |
|
|
* |
|
|
* Copyright (c) 2010 "Cowboy" Ben Alman |
|
|
* Dual licensed under the MIT and GPL licenses. |
|
|
* http://benalman.com/about/license/ |
|
|
*/ |
|
|
(function($,r){var h,n=Array.prototype.slice,t=decodeURIComponent,a=$.param,j,c,m,y,b=$.bbq=$.bbq||{},s,x,k,e=$.event.special,d="hashchange",B="querystring",F="fragment",z="elemUrlAttr",l="href",w="src",p=/^.*\?|#.*$/g,u,H,g,i,C,E={};function G(I){return typeof I==="string"}function D(J){var I=n.call(arguments,1);return function(){return J.apply(this,I.concat(n.call(arguments)))}}function o(I){return I.replace(H,"$2")}function q(I){return I.replace(/(?:^[^?#]*\?([^#]*).*$)?.*/,"$1")}function f(K,P,I,L,J){var R,O,N,Q,M;if(L!==h){N=I.match(K?H:/^([^#?]*)\??([^#]*)(#?.*)/);M=N[3]||"";if(J===2&&G(L)){O=L.replace(K?u:p,"")}else{Q=m(N[2]);L=G(L)?m[K?F:B](L):L;O=J===2?L:J===1?$.extend({},L,Q):$.extend({},Q,L);O=j(O);if(K){O=O.replace(g,t)}}R=N[1]+(K?C:O||!N[1]?"?":"")+O+M}else{R=P(I!==h?I:location.href)}return R}a[B]=D(f,0,q);a[F]=c=D(f,1,o);a.sorted=j=function(J,K){var I=[],L={};$.each(a(J,K).split("&"),function(P,M){var O=M.replace(/(?:%5B|=).*$/,""),N=L[O];if(!N){N=L[O]=[];I.push(O)}N.push(M)});return $.map(I.sort(),function(M){return L[M]}).join("&")};c.noEscape=function(J){J=J||"";var I=$.map(J.split(""),encodeURIComponent);g=new RegExp(I.join("|"),"g")};c.noEscape(",/");c.ajaxCrawlable=function(I){if(I!==h){if(I){u=/^.*(?:#!|#)/;H=/^([^#]*)(?:#!|#)?(.*)$/;C="#!"}else{u=/^.*#/;H=/^([^#]*)#?(.*)$/;C="#"}i=!!I}return i};c.ajaxCrawlable(0);$.deparam=m=function(L,I){var K={},J={"true":!0,"false":!1,"null":null};$.each(L.replace(/\+/g," ").split("&"),function(O,T){var N=T.split("="),S=t(N[0]),M,R=K,P=0,U=S.split("]["),Q=U.length-1;if(/\[/.test(U[0])&&/\]$/.test(U[Q])){U[Q]=U[Q].replace(/\]$/,"");U=U.shift().split("[").concat(U);Q=U.length-1}else{Q=0}if(N.length===2){M=t(N[1]);if(I){M=M&&!isNaN(M)?+M:M==="undefined"?h:J[M]!==h?J[M]:M}if(Q){for(;P<=Q;P++){S=U[P]===""?R.length:U[P];R=R[S]=P<Q?R[S]||(U[P+1]&&isNaN(U[P+1])?{}:[]):M}}else{if($.isArray(K[S])){K[S].push(M)}else{if(K[S]!==h){K[S]=[K[S],M]}else{K[S]=M}}}}else{if(S){K[S]=I?h:""}}});return K};function A(K,I,J){if(I===h||typeof I==="boolean"){J=I;I=a[K?F:B]()}else{I=G(I)?I.replace(K?u:p,""):I}return m(I,J)}m[B]=D(A,0);m[F]=y=D(A,1);$[z]||($[z]=function(I){return $.extend(E,I)})({a:l,base:l,iframe:w,img:w,input:w,form:"action",link:l,script:w});k=$[z];function v(L,J,K,I){if(!G(K)&&typeof K!=="object"){I=K;K=J;J=h}return this.each(function(){var O=$(this),M=J||k()[(this.nodeName||"").toLowerCase()]||"",N=M&&O.attr(M)||"";O.attr(M,a[L](N,K,I))})}$.fn[B]=D(v,B);$.fn[F]=D(v,F);b.pushState=s=function(L,I){if(G(L)&&/^#/.test(L)&&I===h){I=2}var K=L!==h,J=c(location.href,K?L:{},K?I:2);location.href=J};b.getState=x=function(I,J){return I===h||typeof I==="boolean"?y(I):y(J)[I]};b.removeState=function(I){var J={};if(I!==h){J=x();$.each($.isArray(I)?I:arguments,function(L,K){delete J[K]})}s(J,2)};e[d]=$.extend(e[d],{add:function(I){var K;function J(M){var L=M[F]=c();M.getState=function(N,O){return N===h||typeof N==="boolean"?m(L,N):m(L,O)[N]};K.apply(this,arguments)}if($.isFunction(I)){K=I;return J}else{K=I.handler;I.handler=J}}})})(jQuery,this); |
|
|
|
|
|
/*! jquery.cookie v1.4.1 | MIT */ |
|
|
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?a(require("jquery")):a(jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}}); |
|
|
|
|
|
(function() { |
|
|
var FormTracking; |
|
|
|
|
|
FormTracking = (function() { |
|
|
function FormTracking() {} |
|
|
|
|
|
window.form_selector = '[data-drip-embedded-form]'; // css selector for your optin forms |
|
|
|
|
|
FormTracking.prototype.setup = function() { |
|
|
this._setup_new_session(); |
|
|
this._extract_and_store_utm(); |
|
|
this._modify_any_drip_forms(); |
|
|
}; |
|
|
|
|
|
FormTracking.prototype._setup_new_session = function() { |
|
|
if (!jQuery.cookie('orig_ref')) { |
|
|
var url = window.location.origin + window.location.pathname; |
|
|
jQuery.cookie('orig_ref', url, { |
|
|
path: '/', |
|
|
expires: 365 |
|
|
}); |
|
|
} |
|
|
} |
|
|
|
|
|
FormTracking.prototype._extract_and_store_utm = function() { |
|
|
var utm_hash = ''; |
|
|
p = $.deparam.querystring(); |
|
|
|
|
|
if (!$.isEmptyObject(p)) { |
|
|
|
|
|
res = {}; |
|
|
$.each(p, function(key, value) { |
|
|
if (key.indexOf('utm') === 0) { |
|
|
res[key] = value; |
|
|
} |
|
|
}) |
|
|
|
|
|
jQuery.cookie('orig_utm', $.param(res), { |
|
|
path: '/', |
|
|
expires: 365 |
|
|
}) |
|
|
} |
|
|
} |
|
|
|
|
|
FormTracking.prototype._modify_any_drip_forms = function() { |
|
|
$(form_selector).each(function(){ |
|
|
var original_referrer = $.cookie('orig_ref'); |
|
|
var utms = $.cookie('orig_utm'); |
|
|
|
|
|
$(this).append($('<input type="hidden">').attr('name', 'fields[original_referrer]').val(original_referrer)); |
|
|
$(this).append($('<input type="hidden">').attr('name', 'fields[optin_url]').val(window.location.origin + window.location.pathname)); |
|
|
|
|
|
if (utms) { |
|
|
var t = this; |
|
|
utms = $.deparam(utms) |
|
|
$.each(utms, function(key, value){ |
|
|
$(t).append($('<input type="hidden">').attr('name', 'fields['+key+']').val(value)) |
|
|
}) |
|
|
} |
|
|
|
|
|
}) |
|
|
} |
|
|
|
|
|
return FormTracking; |
|
|
|
|
|
})(); |
|
|
|
|
|
window._form_tracking = new FormTracking; |
|
|
|
|
|
jQuery(function(){ |
|
|
window._form_tracking.setup(); |
|
|
}); |
|
|
|
|
|
}).call(this); |