//moved s_analytics.trackLinkClick to common_var.js	
function isLog(msg) {
   //try { console.log(msg); } catch(_e){}
}
function addEvent(elm, evType, fn, useCapture) {
	elm["on"+evType]=fn; return;
}
function isPageTypeError() { 
	if (document.getElementById('pageType')) { 
		s_analytics.pageType = document.getElementById('pageType').content;
		isLog('pageType = ' + s_analytics.pageType);
		applyFooter();
		return true;
	} else { 
		setLoggedInStatus(); 
		setServer(); 
		initAnalytics(); 	
		isPageRefreshed(); 
		return false; 
	} 
}
function isPageRefreshed() {
	isLog('hi from isPageRefreshed()');
	if (document.getElementById('pageRefresh')) { 
		var pageRefresh = document.getElementById('pageRefresh').content.toLowerCase();	
		if(!isVarEmpty(pageRefresh) && pageRefresh == 'true') return true;
	} else { 
		isLog('applyFooter() called');
		applyFooter();
		return false;
	}
}  
function setLoggedInStatus() { 
	if((readCookie('userId') != null) 
	|| (document.referrer.match('registration/register') 
	&& document.URL.match('registration/register') 
	&& !document.getElementById('password.errors') 
	&& !document.getElementById('userName.errors'))) { 
		s_analytics.prop27 = 'logged in';
		isLog('logged in');
	} else {
		s_analytics.prop27 = 'logged out';
  		isLog('logged out');
 	}
}
function readCookie(name) {
	var nameEQ = name + '=';
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
function trimUrl(url) { 
	var i = url.indexOf('//');
	if(i>0){
	   url = url.substring((i+2), url.length);				
  	   i =  url.indexOf('/');
	}
	if(i>0){
		var suffix = url.substring((i+1), url.length);
		var temp = replace(suffix,'/',':');
		if(temp.indexOf('?') == -1) {  		
			return temp;		
		}else {  
			return temp.substr(0, temp.lastIndexOf('?'));
		}
	}
	return '';
} 
function replace(string,text,by) {
	// Replaces text with by in string
	var strLength = string.length, txtLength = text.length;
	if ((strLength == 0) || (txtLength == 0)) return string;	
	var i = string.indexOf(text);
	if ((!i) && (text != string.substring(0,txtLength))) return string;
	if (i == -1) return string;
	var newstr = string.substring(0,i) + by;
	if (i+txtLength < strLength) newstr += replace(string.substring(i+txtLength,strLength),text,by);
	return newstr;
}

/*****************PROP FUNCTIONS********************/
function setTopEmailedContent(contentId, contentTitle) { 
	var s_analytics=s_gi(s_account);
	s_analytics.linkTrackVars='prop28';
	s_analytics.linkTrackEvents='';
	s_analytics.prop28 = contentTitle + '-' + contentId; 
	try{ 
	s_analytics.tl(this,'o','topEmailedContent');
	}catch(e) { 
		//console.warn(e);
	} 
	isLog('s_analytics.tl() called'); 
	isLog('emailed content = ' + s_analytics.prop28); 
} 

function setTopStory(story) {
	s_analytics.prop1 = story; 
	isLog('story = ' + s_analytics.prop3);
} 

function setPageType(pageType) { 
	s_analytics.pageType = pageType; 
	isLog('pagetype = ' + s_analytics.pageType);
}   

function setServer() { 
	s_analytics.server='nfl.com';	
	s_analytics.prop22='www.nfl.com'; 
} 
  
function setChannel(channel) { 
	s_analytics.channel = channel; 
	s_analytics.eVar3 = channel;
	isLog('channel = ' + s_analytics.channel);	
	isLog('channel eVar = ' + s_analytics.eVar3);
} 

function setPageName(pageName) { 
	//console.log(loggingOff);
	pageName = formatOmnitureValue(pageName); 
	s_analytics.pageName = pageName; 
	s_analytics.eVar2 = pageName;
	isLog('pagename = ' + s_analytics.pageName);
	isLog('pagename eVar = ' + s_analytics.eVar2);
} 

function setHierarchy(hier) {
	hier = formatOmnitureValue(hier); 
	if(hier.indexOf('|') == -1) hier = hier + '|landing'; 
	s_analytics.hier1 = hier;  
	s_analytics.prop5 = hier;
	s_analytics.eVar4 = hier;
	isLog('site hierarchy = ' + hier); 
	isLog('content hierarchy = ' + s_analytics.prop5);
	isLog('content hierarchy eVar = ' + s_analytics.eVar4);
}

function setContentSubSection(contentSubSection) { 
	s_analytics.prop2 = contentSubSection;
	isLog('content subsection = ' + s_analytics.prop2);
} 

/*****************EVENT FUNCTIONS********************/
function setAdImpressionEvent(event) {
	var s_analytics=s_gi(s_account);
	s_analytics.linkTrackVars='';
	s_analytics.linkTrackEvents = '';
	s_analytics.events = event; 
	try { 
		s_analytics.tl(this,'o','setAdImpressionEvent');
	} catch(e) { 
		//console.warn(e);
	} 
	isLog('s_analytics.tl() called');
	isLog('ad impression made...');
} 

function setAdClickThroughEvent(event) {
	var s_analytics=s_gi(s_account);
	s_analytics.linkTrackVars='';
	s_analytics.linkTrackEvents = '';
	s_analytics.events = event; 
	isLog('s_analytics.tl() called');
	try { 
		s_analytics.tl(this,'o','setAdClickThroughEvent');
	} catch(e) { 
		//console.warn(e);
	}  
	isLog('ad clicked through...');
} 

function setMediaBeginEvent(event, id, file_name) {
	var s_analytics=s_gi(s_account);
	if(event == 'event6') { 
		s_analytics.linkTrackVars='prop3,prop17,eVar7,events,products,eVar13';
		s_analytics.linkTrackEvents = 'event6';
		isLog('hello');
		s_analytics.eVar7 = id + '-' + file_name;
		s_analytics.prop17 = id + '-' + file_name;
		s_analytics.prop3 = 'videos';
		//setContentSource(''); 
		s_analytics.events = event;
		isLog('s_analytics.tl() called');
		try { 		
			s_analytics.tl(this,'o','setMediaBeginEvent');
		} catch(e) { 
			//console.warn(e);
		}  
		isLog('video started...'); 
		isLog('video started id = ' + id);
		isLog('video started filename = ' + file_name);
	} 
	if(event == 'event8') { 
		s_analytics.linkTrackVars='events';
		s_analytics.linkTrackEvents = 'event8';
		s_analytics.events = event;
		try { 
			s_analytics.tl(this,'o','setMediaBeginEvent');
		} catch(e) { 
			//console.warn(e);
		} 
		isLog('s_analytics.tl() called');
		isLog('video ad started...');
	} 
	if(event == 'event14') {
		s_analytics.linkTrackVars='events,eVar13';
		s_analytics.linkTrackEvents = 'event14';
		s_analytics.eVar13 = id + '-' + file_name; 
		s_analytics.events = event; 
		try { 
			s_analytics.tl(this,'o','setMediaBeginEvent');
		} catch(e) { 
			//console.warn(e);
		} 
		isLog('s_analytics.tl() called');
		isLog('audio started...'); 
	} 
} 

function setMediaTimedEvent(event, id, file_name, time) {
	var s_analytics=s_gi(s_account);
	isLog('event value passed = ' + event);
	if(event == 'event12') {
		s_analytics.linkTrackVars='prop3,prop17,eVar7,events,products,eVar13';
		s_analytics.linkTrackEvents = 'event12';
		s_analytics.eVar7 = id + '-' + file_name;
		s_analytics.prop17 = id + '-' + file_name;
		s_analytics.prop3 = 'videos';
		s_analytics.products = ';;;;event12=' + time;   
		s_analytics.events = event;
		try { 
			s_analytics.tl(this,'o','setMediaTimedEvent');
		} catch(e) { 
			//console.warn(e);
		}  
		isLog('called');
		isLog('video ' + time + ' minutes elapsed.');
		isLog('video id = ' + id); 
		isLog('video filename = ' + file_name); 
	}
}  

function setMediaProgressEvent(event, id, file_name, percentage) {
	var s_analytics=s_gi(s_account);
	isLog('event value passed = ' + event);
	if(event == 'event10') {	
		s_analytics.linkTrackVars='eVar7,events,products';
		s_analytics.linkTrackEvents = 'event10,event16,event17,event18';
		s_analytics.eVar7 = id + '-' + file_name; 
		s_analytics.products = ';;;;event10=' + 25;   
		
		if(percentage == '25')  { 
			s_analytics.events = event + "," + 'event16';
			isLog('25 percent test passed');
			
			 } 
		if(percentage == '50') { 
			s_analytics.events = event + "," + 'event17';
			isLog('50 percent test passed');
			} 
		if(percentage == '75')  { 
			s_analytics.events = event + "," + 'event18';
			isLog('75 percent test passed');
			} 
		try { 
		s_analytics.tl(this,'o','setMediaProgressEvent');
		} catch(e) { 
			//console.warn(e);
		}  
		isLog('called');
		isLog('video ' + percentage + '% complete...');
		isLog('video id = ' + id); 
		isLog('video filename = ' + file_name); 
	} 
	if(event == 'event9') {
		s_analytics.linkTrackVars='eVar7,events';
		s_analytics.linkTrackEvents = 'event9';
		s_analytics.eVar7 = id + '-' + file_name;  
		s_analytics.events = event;
		try { 
		s_analytics.tl(this,'o','setMediaProgressEvent');
		}catch(e) { 
			//console.warn(e);
		}  
		    isLog('s_analytics.tl() called');
		    isLog('video ad ended...');
	}
	
	if(event == 'event7') {
		s_analytics.linkTrackVars='eVar7,events,products';
		s_analytics.linkTrackEvents = 'event7';
		s_analytics.eVar7 = id + '-' + file_name;  
		s_analytics.events = event + ',' + 'event10'; 
		s_analytics.products = ';;;;event10=' + 25;
		try { 
		s_analytics.tl(this,'o','setMediaProgressEvent'); 
		} catch(e) { 
			//console.warn(e);
		} 
		isLog('s_analytics.tl() called');
		isLog('video ended...'); 
		isLog('video id = ' + id); 
		isLog('video filename = ' + file_name);
	} 
	
	if(event == 'event15') {
		s_analytics.linkTrackVars='eVar13,events';
		s_analytics.linkTrackEvents = 'event15';
		s_analytics.eVar13 = id + '-' + file_name; 
		s_analytics.events = event; 
		try { 
		s_analytics.tl(this,'o','setMediaProgressEvent');
		} catch(e) { 
			//console.warn(e);
		} 
		isLog('s_analytics.tl() called');
		isLog('audio ended...'); 
	}
}  

function setSweepstakeRegistrationEvent(event, sweepstakeRegistrationId, sweepstakeDescription) { 
	s_analytics.eVar9 = sweepstakeRegistrationId + '-' + sweepstakeDescription; 
	isLog('sweepstake = ' + s_analytics.eVar9); 
	s_analytics.events = event; 
	isLog('sweepstakes registered...');
}

//this function is called by pollview.js
function setPollEvent(event){
	var s_analytics=s_gi(s_account);
	s_analytics.linkTrackVars='events';
	s_analytics.linkTrackEvents = 'event13';
	s_analytics.events = event;  
	try { 
	s_analytics.tl(this,'o','setPollEvent');
	} catch(e) { 
		//console.warn(e);
	} 
	isLog('s_analytics.tl() called');
	isLog('user casts vote...'); 
}
 
function setRegistrationEvent(event, id) { 
	s_analytics.prop29 = id;	
	s_analytics.events = event;
	isLog('new user registered...');
	isLog('new user id = ' + s_analytics.prop29); 		
} 

// this function is called by /scripts/analytics/reg_login.js
function setLoginEvent(event) {
	s_analytics.events = event; 	
	isLog('s.t() called');
	isLog('old user logged in...');
}

// this function is called by home.jsp
// setLoginEvent() is not re-used in this case because s.tl() is disctinct from s.t()
function setAjaxLoginEvent(event) { 
	s_analytics.linkTrackVars='events';
	s_analytics.linkTrackEvents = 'event11';
	var s_analytics=s_gi(s_account);
	s_analytics.events = event;
	isLog('s_analytics.tl() called from ajax login event func');
	try { 
	s_analytics.tl(this,'o','setAjaxLoginEvent');
	} catch(e) { 
		//console.warn(e);
	}
	isLog('old user logged in...');
}  

function setSiteSearchTerm(term) { 
	s_analytics.prop6 = term;
	isLog('site search term = ' + s_analytics.prop6);
} 

function setPlayerSearchTerm(term) { 
	s_analytics.prop25 = term;
	isLog('player search term = ' + s_analytics.prop25);
} 

function setSearchResultsReturned(count, type) {
	if(type == 'article') s_analytics.prop7 = count;
	if(type == 'photo') s_analytics.prop31 = count; 
	if(type == 'video')	s_analytics.prop32 = count; 	
	isLog('search results returned = ' + s_analytics.prop7);
} 
 
function setAudioId(id) { 

} 
 
function setPhoto(photo) { 
	s_analytics.prop16 = photo; 
	//s.t(); 	
	isLog('(not calling s.t()) photo =  ' + photo);
} 
 

function setPhotoGalleryTitle(title, id) { 
	s_analytics.prop15 = title + '-' + id; 
	isLog('photo gallery title = ' + s_analytics.prop15);
}

// this function is called by fieldpassaudio.jsp
// this function is called by scores.jsp
function setFieldPass(season, week, visitor, home, teamSelected) {
	var s_analytics=s_gi(s_account);
	s_analytics.linkTrackVars='prop30';
	s_analytics.linkTrackEvents='';
	if(season >= 2007) {
		var index = teamSelected.lastIndexOf('real');
		if(index > 0 && (teamSelected.length == (index+4)) ) {
		    teamSelected = teamSelected.substring(0,teamSelected.lastIndexOf('real'));
		}
		index = teamSelected.lastIndexOf('wmp');
		if(index > 0 && (teamSelected.length == (index+3)) ) {
		    teamSelected = teamSelected.substring(0,teamSelected.lastIndexOf('wmp'));
		}    
	}					
	if(visitor == teamSelected) 
		var fieldPass = season + ':' + week + ':' + teamSelected + ' (vs.' + home + ')'; 
	else
		var fieldPass = season + ':' + week + ':' +	teamSelected + ' (vs. ' + visitor + ')'; 	
	
	s_analytics.prop30 = fieldPass.toLowerCase();
	isLog('season =' + season);
	isLog('week =' + week);
	isLog('teamSelected =' + teamSelected);
	isLog('visitor =' + visitor);
	isLog('home =' + home);
	try { 
		s_analytics.tl(this,'o','setFieldPass');
	}catch(e) { 
		//console.warn(e);
	}
	isLog('fieldpass = ' + s_analytics.prop30); 	
} 

function setArticleId(id) {
	s_analytics.prop11 = id;
	isLog('article id = ' + s_analytics.prop11);
}

function setArticleTitle(title) {
	s_analytics.prop12 = title;
	isLog('article title = ' + s_analytics.prop12);
}

function setArticleAuthor(author) {
	s_analytics.prop13 = author;
	isLog('article author = ' + s_analytics.prop13);
}
 
function setContentType(type) {
	s_analytics.prop3 = type;
	isLog('content type = ' + s_analytics.prop3); 

} 

function setContentSource(source) { 
	s_analytics.prop4 = source;
	isLog('content source = ' + s_analytics.prop4);
} 

// utility function
function isArrEmpty(params, begin, end) {
	//isLog('hi from isEmpty(' + start + ')');
	for(begin; begin < end; begin++) {
		if(params[begin] != 'none' && params[begin] != null && params[begin] != '' && params[begin] != 'null' && params[begin] != '-1')  
			return false; 
		else 
			continue; 
	}
	return true; 
}

function isVarEmpty(param) { 
	if(param != 'none' && param != null && param != '' && param != 'null' && param != '-1' && param != 'undefined')  
		return false; 
	else 
		return true; 
}

// utility function 
function formatOmnitureValue(str) {
	str = str.replace(/;jsessionid=(.+)/, ""); //strip out jsessionid var that gets added by server at random times
	return str;
}
function printArr(params, begin, end) { 
	isLog('hi from printArr()');	
	for(begin; begin < end; begin++) {
		if(isVarEmpty(params[begin]))
			isLog('params(' + begin + ') = ' + 'nothing'); 
		else    
			isLog('params(' + begin + ') = ' + params[begin]); 
	}
} 

// utility function
function lowerCase(params) { 
	isLog('hi from lowerCase()'); 
	var paramsTemp = new Array(params.length);
	for(var i = 0; i < params.length; i++) {
		paramsTemp[i] = params[i].toLowerCase();    
	}
	return paramsTemp;
} 

function getConferenceById(id) { 
	if(id == '0011') return 'afc'; 
	if(id == '0015') return 'nfc'; 	
	if(id == 'all') return id;
	if(id == 'afc') return id; 
	if(id == 'nfc') return id; 
	return 'conferenceNotAvailable'; 	
} 

function getDivisionById(id) { 
	if(id == '0013') return 'afc north'; 
	if(id == '0019') return 'afc south'; 
	if(id == '0012') return 'afc east'; 
	if(id == '0014') return 'afc west'; 
	if(id == '0017') return 'nfc north'; 
	if(id == '0020') return 'nfc south'; 
	if(id == '0016') return 'nfc east'; 
	if(id == '0018') return 'nfc west';
	return 'divisionNotAvailable'; 
} 

function getPositionTypeById(id) { 
	if(id == 'tm') return 'offensive'; 
	if(id == 'opp')	return 'defensive'; 
	return 'positionTypeNotAvailable';
} 

function getYearById(id) { 
	if(id == '0') 
		return 'year-rookie'; 
	else
		return 'year-' + id; 
} 

function getWeekById(id) {
	if(id == '22')	return 'probowl'; 
	if(id == '21')	return 'superbowl'; 
	if(id == '20') 	return 'conference championships';
	if(id == '19') 	return 'divisional playoffs';
	if(id == '18') 	return 'wild card';
	if(id == '0') 	return 'preseason';
	return 'week ' + id; 
} 
function getMonthById(id) { 
	if(id == '1') return 'jan'; 
	if(id == '2') return 'feb'; 
	if(id == '3') return 'mar';
	if(id == '4') return 'apr';
	if(id == '5') return 'may';
	if(id == '6') return 'jun';
	if(id == '7') return 'jul'; 
	if(id == '8') return 'aug'; 
	if(id == '9') return 'sep';
	if(id == '10')return 'oct';
	if(id == '11')return 'nov';
	if(id == '12')return 'dec';
}  
function getLinkTrackVars() { 
	return "prop30,prop28,prop3,prop4,prop17,eVar7,events,products";	
} 
function getLinkTrackEvents() { 
	return "event11,event13,event6,event7,event10,event14,event15,event16,event17,event18";
} 