function s_prePlugins(s){

	//tracking code
	s.eVar15=s.getQueryParam('l-id');//internal link
	s.eVar16=s.crossVisitParticipation(s.eVar15,"cvp_lid","30","7",">","purchase")
	s.eVar17=s.getQueryParam('s-id');//shop link

	//page name
	if(!s.pageName){

		//first try to get from on-page tag
		try{
			s.pageName=document.getElementById('s_pagename').value;
		}catch(e){}

		//if not available, set pagename based on URL
		if(!s.pageName){
			s.pageName=decodeURI(s.getPageName());

			//remove extensions
			if(s.pageName)s.pageName=s.pageName.replace(/\.[a-z]+$/,'');

			//if null, treat it as a root directory
			if(!s.pageName)s.pageName='top';

			//set pagename based on URL patterns
			if(s.pageName.match(/^cart$/)){
				s.pageName='cart:1.shopping cart';
			}else if(s.pageName.match(/^member$/)){
				s.pageName='cart:2.login or register';
			}else if(s.pageName.match(/^shipping$/)){
				s.pageName='cart:3.shipping address for member';
			}else if(s.pageName.match(/^payment$/)){
				s.pageName='cart:4.select payment';
			}else if(s.pageName.match(/^summary$/)){
				s.pageName='cart:5.confirmation';
			}else if(s.pageName.match(/^finish$/)){
				s.pageName='cart:6.finish process with offline payment';
			}else if(s.pageName.match(/^error$/)){
				s.pageName='cart:.error page';
			}else if(s.pageName.match(/^prepare:/)){
				s.pageName='cart:.select shop';
			}else if(s.pageName.match(/^cart:delete:/)){
				s.pageName='cart:.delete product';
			}else if(s.pageName.match(/^register$/)){
				s.pageName='register';
			}else if(s.pageName.match(/^search:(\d+):(.+)$/)){
				s.pageName='search';
				s.eVar13=RegExp.$1;
				s.eVar12=RegExp.$2;
			}else{
				//append domain name to pagename
				s.pageName='['+s.server.split('.')[0]+']'+s.pageName;
			}
		}
	}

	//set values and events per pagename
	switch(s.pageName){
	case 'product detail:':
		s.events=s.apl(s.events,'prodView');
		s.events=s.apl(s.events,'event5');
		try{
			s.products=';'+document.getElementById('s_product_id').value;
			s.pageName+=document.getElementById('s_product_id').value;
		}catch(e){}
		break;
	case 'cart:1.shopping cart':
		s.events=s.apl(s.events,'scAdd');
		try{
			s.products=document.getElementById('s_cart_value').value;
		}catch(e){}
		break;
	case 'cart:2.login or register':
		s.events=s.apl(s.events,'scOpen')
		try{
			s.products=document.getElementById('s_cart_value').value;
		}catch(e){}
		break;
	case 'cart:3.shipping address for member':
		s.events=s.apl(s.events,'scOpen');
		try{
			s.products=document.getElementById('s_cart_value').value;
		}catch(e){}
		break;
	case 'cart:4.select payment(M)':
	case 'cart:4.select payment(Non M)':
		s.events=s.apl(s.events,'scCheckout');
		try{
			s.products=document.getElementById('s_cart_value').value;
		}catch(e){}
		break;
	case 'cart:5.confirmation(M)':
	case 'cart:5.confirmation(Non M)':
		break;
	case 'register':
		s.events=s.apl(s.events,'event1');
		break;
	case '[premium]search':
		s.events=s.apl(s.events,'event7');
		s.eVar11='+1';
		break;
	case '[search]search':
		s.events=s.apl(s.events,'event8');
		try{
			s.eVar11=document.getElementById('keyword').value;
		}catch(e){}
		break;
	}

	//shop ID
	try{
		s.eVar6=document.getElementById('s_shop_id').value;
	}catch(e){}

	//event pagename
	if(s.pageName.match(/\]event:(.+)$/)){
		s.eVar22=RegExp.$1;
	}

	//channel name
	s.channel=s.pageName.split(':')[0];

	//finding method
	if(s.channel!='product detail'&&s.channel!='cart')s.eVar14=s.channel;

	//cookie-stored data
	if(s.server.indexOf('tarad.com')>0){
		s.prop22=s.getNewRepeat(90);
		if(s.prop22=='New'){
			s.prop23='D=pageName';
		}
		if(s.getCk('follow_email')){
			s.eVar1='Member';
			s.eVar2=s.getCk('follow_email');
			s.prop21='D=pageName';
		}
	}

}

function s_postPlugins(s){

	//debug
	if(s.prop37.indexOf(':')==-1)s.prop37+=':101006';//s_code version
	s.prop34=s.products;

	if(s.eVar33&&s.server=='www.tarad.com')s.eVar31='D=v33';

	//visit start by new users
	if(s.events&&s.events.indexOf('event21')>-1&&s.prop22=='New'){
		s.events=s.apl(s.events,'event9');
	}

	//don't send call for dev
	if(s.un.match(/dev$/)||s.eVar6=='5'||s.eVar6=='70778'){
		s.disableTracking=true;
	}
}

//send the data to SiteCatalyst server
void(s.t());
