/********************************************************************
 *
 * 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;");











