var trackAllInited = false;
var lastUrl;

function trackAll(url){
	if(typeof(url)=="string"){
		var dot = url.indexOf(".");
		var slash = url.indexOf("/",dot);
		if(slash==-1)slash = url.indexOf("\\",dot);
		if(dot!=-1 && slash!=-1 && slash<url.length-1){
			url = 	url.substr(slash+1);
		}
		
		if(lastUrl==url)return;
		lastUrl = url;
		
		var info;
		if(PAGE_SCHEMA){
			info = PAGE_SCHEMA[generateKey(url)];
			if(!info)info = PAGE_SCHEMA[generateKey(SWFAddress.getValue())];
			if(info && info.track==false)return
		}
		if(!trackAllInited)trackAllInit();
		var title = info && info.title?info.title:"";
		// Urchin (Google)
		if(this["urchinTracker"]!=null)urchinTracker(url);
		// Google Analytics
		if(this["pageTracker"])pageTracker._trackEvent(url,"pageView");
		// PostClick
		if(this["pcTrack"]!=null && info!=null && info.pcCode!=null)pcTrack(info.pcCode);
		// Adconion
		if(this["adconionTrack"]!=null && info!=null && info.adconionCode!=null)adconionTrack(info.adconionCode);
		// Adconion - Reduced Beacon
		if(this["reducedBeaconTrack"]!=null && info!=null && info.beaconCode!=null)reducedBeaconTrack(info.beaconCode);						
		// Switch ATDMT
		if(this["switchTrack"]!=null && info!=null && info.switchCode!=null)switchTrack(info.switchCode);		
		// DoubleClick
		if(this["dcTrack"]!=null && info!=null && info.dcCode!=null && SITE_SCHEMA!=null && SITE_SCHEMA.dcSiteCode!=null)dcTrack(SITE_SCHEMA.dcSiteCode, SITE_SCHEMA.dcSiteType, info.dcCode);
		// Facilitate (silhouette.js)
		if(this["ni_TrackHit"]!=null && SITE_SCHEMA!=null && SITE_SCHEMA.fdSiteCode!=null){
			var fullUrl;
			var firstChar = url.charAt(0);
			fullUrl = window.location.protocol+"//"+window.location.hostname+((firstChar!="/" && firstChar!="\\")?"/":"")+url;
			ni_TrackHit("syd.facilitatedigital.com", SITE_SCHEMA.fdSiteCode, "", "", "", "", "", "", title, fullUrl, 1, "", "", "", "", "");
		}
	}
}
function trackAllInit(){
	trackAllInited = true;
	if(SITE_SCHEMA && SITE_SCHEMA.urchinSiteCode){
		_uacct = SITE_SCHEMA.urchinSiteCode;
		if(this["_gat"]!=null){
			pageTracker = _gat._getTracker(SITE_SCHEMA.urchinSiteCode);
			pageTracker._trackPageview();
		}
	}
}
function generateKey(url){
	url = url.toLowerCase();
	url = url.replace(/^[\/.,?&=-]/g,"");
	url = url.replace(/[\/.,?&=-]$/g,"");
	url = url.replace(/[\/.,?&=-]/g,"_");
	if(url.length==0){
		return "empty";
	}
	return url;
}