﻿/********************************************************************
*
* Supporting functions that may be shared between plug-ins
*
*******************************************************************/
/*
* Utility Function: split v1.5 - split a string (JS 1.0 compatible)
*/
s.split=new Function("l","d",""
+"var i,x=0,a=new Array;while(l){i=l.indexOf(d);i=i>-1?i:l.length;a[x"
+"++]=l.substring(0,i);l=l.substring(i+d.length);}return a");
/********************************************************************
*
* Supporting functions that may be shared between plug-ins
*
*******************************************************************/
/*
* s.join: 1.0 - s.join(v,p)
*
* v - Array (may also be array of array)
* p - formatting parameters (front, back, delim, wrap)
*
*/
s.join = new Function("v","p",""
+"var s = this;var f,b,d,w;if(p){f=p.front?p.front:'';b=p.back?p.back"
+":'';d=p.delim?p.delim:'';w=p.wrap?p.wrap:'';}var str='';for(var x=0"
+";x<v.length;x++){if(typeof(v[x])=='object' )str+=s.join( v[x],p);el"
+"se str+=w+v[x]+w;if(x<v.length-1)str+=d;}return f+str+b;");
/********************************************************************
*
* s.crossDomainParticipation (should be in Plug-ins section)
*
*******************************************************************/
/* 
* Plugin: s.crossDomainParticipation : 1.2 - stacks values from 
* specified variable in cookie and returns value 
*/ 
/* crossDomainParticipation Example: 1.2 -- REQUIRES s.split 
* 
* List of Parameters: 
* vu-variable to stack values from 
* cn-name of cookie to stack values in 
* ex-expiration of variable value in days 
* ct-number of distinct values to store in cookie 
* dl-delimiter to display in variable 
* ev-success event(s) which clear cookie (use comma separated list) 
* 
*/
s.crossDomainParticipation = new Function("v","cn","ex","ct","dl","ev","" 
+"var s=this;var ay=s.split(ev,',');for(var u=0;u<ay.length;u++){if(s" 
+".events&&s.events.indexOf(ay[u])!=-1){s.c_w(cn,'');return '';}}if(!" 
+"v||v=='')return '';var arry=new Array();var a=new Array();var c=s.c" 
+"_r(cn);var g=0;var h=new Array();if(c&&c!='') arry=eval(c);var e=ne" 
+"w Date();e.setFullYear(e.getFullYear()+5);if(arry.length>0&&arry[ar" 
+"ry.length-1][0]==v)arry[arry.length-1]=[v, new Date().getTime()];el" 
+"se arry[arry.length]=[v, new Date().getTime()];var data=s.join(arry" 
+",{delim:',',front:'[',back:']',wrap:'\\''});var start=arry.length-c" 
+"t < 0?0:arry.length-ct;s.c_w(cn,data,e);for(var x=start;x<arry.leng" 
+"th;x++){var diff=Math.round(new Date()-new Date(parseInt(arry[x][1]" 
+")))/86400000;if(diff<ex){h[g]=arry[x][0];a[g++]=arry[x];}}var r=s.j" 
+"oin(h,{delim:dl});return r;");
/********************************************************************
*
* s.crossVisitParticipation (should be in Plug-ins section)
*
*******************************************************************/
/* 
* Plugin: s.crossVisitParticipation : 1.2 - stacks values from 
* specified variable in cookie and returns value 
*/ 
/* crossVisitParticipation Example: 1.2 -- REQUIRES s.split 
* 
* List of Parameters: 
* vu-variable to stack values from 
* cn-name of cookie to stack values in 
* ex-expiration of variable value in days 
* ct-number of distinct values to store in cookie 
* dl-delimiter to display in variable 
* ev-success event(s) which clear cookie (use comma separated list) 
* 
*/
s.crossVisitParticipation = new Function("v","cn","ex","ct","dl","ev","" 
+"var s=this;var ay=s.split(ev,',');for(var u=0;u<ay.length;u++){if(s" 
+".events&&s.events.indexOf(ay[u])!=-1){s.c_w(cn,'');return '';}}if(!" 
+"v||v=='')return '';var arry=new Array();var a=new Array();var c=s.c" 
+"_r(cn);var g=0;var h=new Array();if(c&&c!='') arry=eval(c);var e=ne" 
+"w Date();e.setFullYear(e.getFullYear()+5);if(arry.length>0&&arry[ar" 
+"ry.length-1][0]==v)arry[arry.length-1]=[v, new Date().getTime()];el" 
+"se arry[arry.length]=[v, new Date().getTime()];var data=s.join(arry" 
+",{delim:',',front:'[',back:']',wrap:'\\''});var start=arry.length-c" 
+"t < 0?0:arry.length-ct;s.c_w(cn,data,e);for(var x=start;x<arry.leng" 
+"th;x++){var diff=Math.round(new Date()-new Date(parseInt(arry[x][1]" 
+")))/86400000;if(diff<ex){h[g]=arry[x][0];a[g++]=arry[x];}}var r=s.j" 
+"oin(h,{delim:dl});return r;");
