if(typeof KIDS == "undefined" || !KIDS) var KIDS = {};

KIDS.namespace("reporting.omnifunctions");

KIDS.reporting.omnifunctions.nrtrackingcode="";
KIDS.reporting.omnifunctions.NRcall="";

KIDS.reporting.omnifunctions.kcaVoteEvent = function(category){
	try{
		var conf =  new Configuration();
		conf.setName("nickvia");
		conf.setDynamicAccountSelection(true);
		conf.setDynamicAccountList("nickviadev=nick-d.mtvi.com,nick-q.mtvi.com");
		conf.setLinkInternalFilters("javascript:,nick.com");
		conf.setTrackExternalLinks(true);
		conf.setTrackDownloadLinks(true);
		conf.setTrackInlineStats(true);
		conf.setLink("true");
		conf.init();
		conf.setLinkType("o");
		conf.setLinkName("KCA Voting:"+category);
		conf.setEvents("event5");
		KIDS.reporting.omnifunctions.sendReportingCall(conf);
	}catch(e){}
}
KIDS.reporting.omnifunctions.searchSetConversion = function(){
	try{
		if(com) com.mtvi.reporting.Search.setConversion();
	}catch(e){KIDS.utils.doLog(e.toString());}
}
KIDS.reporting.omnifunctions.reportCoverFlowImpression = function(pos,title){
	try{
		var conf =  new Configuration();
		conf.setLink("true");
		conf.init();
		conf.setLinkType("o");
		conf.setLinkName("Video Cover Flow Promo");
		conf.setProp("23",pos);		
		conf.setProp("24",title);
		KIDS.reporting.omnifunctions.sendReportingCall(conf);
	}catch(e){}
}
KIDS.reporting.omnifunctions.reportCoverFlowClickThru = function(pos,title){
	try{
		var conf =  new Configuration();
		conf.setLink("true");
		conf.init();
		conf.setLinkType("o");
		conf.setLinkName("Video Cover Flow Promo");
		conf.setProp("25",pos);		
		conf.setProp("26",title);
		KIDS.reporting.omnifunctions.sendReportingCall(conf);
	}catch(e){}
}
KIDS.reporting.omnifunctions.pageNameAppend = function(newPageName){
	try{
		var conf =  new Configuration();
		conf.init();
		conf.setName("nickvia");
		conf.setDynamicAccountSelection(true);
		conf.setDynamicAccountList("nickviadev=nick-d.mtvi.com,nick-q.mtvi.com");
		conf.setLinkInternalFilters("javascript:,nick.com");
		conf.setTrackExternalLinks(true);
		conf.setTrackDownloadLinks(true);
		conf.setTrackInlineStats(true);
		var oldPN = KIDS.reporting.config.getPageName();
		conf.setPageName(oldPN+ "-" +newPageName);
		KIDS.reporting.omnifunctions.sendReportingCall(conf);
		KIDS.reporting.omnifunctions.comscoreReport("comscore");
	}catch(e){}
}
KIDS.reporting.omnifunctions.pageNameReset = function(newPageName){
	try{
		var conf =  new Configuration();
		conf.init();
		conf.setName("nickvia");
		conf.setDynamicAccountSelection(true);
		conf.setDynamicAccountList("nickviadev=nick-d.mtvi.com,nick-q.mtvi.com");
		conf.setLinkInternalFilters("javascript:,nick.com");
		conf.setTrackExternalLinks(true);
		conf.setTrackDownloadLinks(true);
		conf.setTrackInlineStats(true);
		conf.setPageName(newPageName);
		KIDS.reporting.omnifunctions.sendReportingCall(conf);
	}catch(e){}
}
KIDS.reporting.omnifunctions.sendReportingCall = function(cObj){
	try{
		if(!com.mtvi.util.isDefined(cObj)) cObj = KIDS.reporting.config;
		KIDS.reporting.dispatcher.setAccountVars(cObj.setting);
		KIDS.reporting.dispatcher.sendCall();
	}catch(e){KIDS.utils.doLog(e.toString());}
}
KIDS.reporting.omnifunctions.sendLinkEvent = function(str,lnkname){
	try{
		if(com.mtvi.util.isDefined(str)) KIDS.reporting.account.name += "," + str;
		KIDS.reporting.dispatcher.sendLinkEvent({linkType:"o",lnk:true,linkName:lnkname});
	}catch(e){}
}
KIDS.reporting.omnifunctions.sendAnalyticsEvent = function(str,lnkname){
	try {
		if(com.mtvi.util.isDefined(lnkname)){
			KIDS.reporting.omnifunctions.sendLinkEvent(str,lnkname);
		}
	} catch(e){}
}
KIDS.reporting.omnifunctions.sendInitCall = function(e1,e2,e3){
	elementString=e1+"-"+e2+"-"+e3;
	linkName="/init_click_tracking/"+elementString;
	KIDS.reporting.omnifunctions.sendLinkEvent(null,linkName);
}	
KIDS.reporting.omnifunctions.reportPlayer = function(path,sitename,reportingsuite){}
KIDS.reporting.omnifunctions.sendKaraoke = function(actionName){
	try{
		var conf =  new Configuration(KIDS.reporting.config);		
		conf.init();
		conf.setPageName("/turbonick/karaoke/"+actionName);
		conf.setHier2(conf.getPageName());
		KIDS.reporting.omnifunctions.sendReportingCall(conf);
	}catch(e){}
}
KIDS.reporting.omnifunctions.trackEvent = function(event){
	try{
		var conf =  new Configuration(KIDS.reporting.config);		
		conf.init();
		conf.setPageName(conf.getPageName()+"/event-" + event);
		KIDS.reporting.omnifunctions.sendReportingCall(conf);
	}catch(e){}
}
KIDS.reporting.omnifunctions.trackKCA = function(area){
	try{
		var conf =  new Configuration(KIDS.reporting.config);		
		conf.init();
		conf.setPageName(conf.getPageName()+"/kca07-" + area);
		KIDS.reporting.omnifunctions.sendReportingCall(conf);		
	}catch(e){}
}
KIDS.reporting.omnifunctions.trackGamePlay = function(event,gamename){
	try{
		var conf =  new Configuration(KIDS.reporting.config);		
		conf.init();
		conf.setPageName(conf.getPageName()+"/event-" + event);
		conf.setProp(4,gamename);
		KIDS.reporting.omnifunctions.sendReportingCall(conf);
	}catch(e){}
}
KIDS.reporting.omnifunctions.bghReport = function(sectionName){
	try{
		KIDS.reporting.account.name = suiteID;
		var conf =  new Configuration(KIDS.reporting.config);		
		conf.init();
		conf.setPageName(conf.getPageName()+"-"+sectionName);
		conf.setHier2(conf.getPageName());
		KIDS.reporting.omnifunctions.sendReportingCall(conf);
	}catch(e){}
}
KIDS.reporting.omnifunctions.fetchGamePlaySite = function(locStr){
	var pattern = new RegExp("(nick)(?:-(?:jd|d|jq|q).mtvi)?.com","gi");
	var result = pattern.exec(locStr);
	if(result){//has nick
		pattern = new RegExp("/(turbonick|nicktropolis)/","gi");
		var result2 = pattern.exec(locStr);
		if(result2){//has turbonick or nicktrolopis
			return(result2[1]);
		}
		return(result[1]);
	}else{
		pattern = new RegExp("(nickjr)(?:-[dq].mtvi)?.com","gi");
		result = pattern.exec(locStr);
		if(result){//has nickjr
			if(locStr.indexOf("/playtime/")>0) return("playtime");
			return(result[1]);
		}else{
			pattern = new RegExp("(noggin)(?:-[dq].mtvi)?.com","gi");
			result = pattern.exec(locStr);
			if(result){//has noggin
				return(result[1]);
			}else{
				pattern = new RegExp("(shockwave|addictinggames|the-n).*.com","gi");
				result = pattern.exec(locStr);
				if(result) return(result[1]);
				else{//hardcoding for local envs
					pattern = new RegExp("localhost:9090","gi");
					result = pattern.exec(locStr);
					if(result) return("nick-localhost");
					else return(null);
				}
			}
		}
	}
}
KIDS.reporting.omnifunctions.trackKidsGamePlay = function(gameName){
	try{
		var conf =  new Configuration();		
		conf.init();
		var site = fetchGamePlaySite(document.URL);
		var suite = "viakidsgameplay";
		if(site=="nicktropolis") suite += ",vianicktropoliscom";
		conf.setName(suite);
		conf.setDynamicAccountSelection(false);
		conf.setChannel(site);
		conf.setHier1(site+"/"+gameName);
		conf.setHier2("");
		conf.setProp(1,conf.getHier1());
		conf.setProp(2,gameName);
		conf.setProp(3,site);
		KIDS.reporting.omnifunctions.sendReportingCall(conf);
	}catch(e){}
}
KIDS.reporting.omnifunctions.trackKCACamera = function(camera){
	try{
		var conf =  new Configuration(KIDS.reporting.config);		
		conf.init();
		
		var retval = "";
		if(camera=="orange_cam1"){
			retval += "OrangeCarpet1";
		}else if(camera=="orange_cam2"){
			retval += "OrangeCarpet2";
		}else if(camera=="hosted_cam"){
			retval += "HostCam";
		}else if(camera=="backStage_cam1"){
			retval += "Backstage1";
		}else if(camera=="backStage_cam2"){
			retval += "Backstage2";
		}else if(camera=="sky_cam"){
			retval += "SkyCam";
		}
		if(camera.indexOf("icktropolis")>0){
			conf.setPageName(camera);
			conf.setHier1("KCA_Webcam/"+camera.substr(camera.lastIndexOf("-")+1)+"/");
			conf.setHier2(conf.getHier1());
		}else{
			conf.setPageName("KCA_Webcam-TurboNick-"+retval);
			conf.setHier1("KCA_Webcam/"+retval+"/");
			conf.setHier2(conf.getHier1());
		}
		KIDS.reporting.omnifunctions.sendReportingCall(conf);
	}catch(e){}
}
KIDS.reporting.omnifunctions.doShowTemplateAction = function(category){
	try{
		KIDS.reporting.omnifunctions.pageNameAppend(category);
		changeAd(category);
	}catch(e){}
}
KIDS.reporting.omnifunctions.sendMyNickItem = function(itemName){
	linkName="/myNick/itemAdd/"+itemName;
	KIDS.reporting.omnifunctions.sendLinkEvent('',linkName);
}
KIDS.reporting.omnifunctions.BGHPledgeReporting = function(action,country){
	try{
		var conf =  new Configuration(KIDS.reporting.config);		
		conf.init();
		var newPageName;
		var newHier2;
		if(action!=null && country!=null){ 
			newPageName = "/"+action+"/"+country+"/viaWeb";
			newHier2 = "/"+country+"/"+action+"/viaWeb";
		}
		conf.setPageName(conf.getPageName()+newPageName);
		conf.setHier2(conf.getHier2()+newHier2);
		KIDS.reporting.omnifunctions.sendReportingCall(conf);
		KIDS.reporting.omnifunctions.comscoreReport("comscore");
	}catch(e){}
}
KIDS.reporting.omnifunctions.comscoreReport = function(htmlID){
	try{
		var str = '<iframe id="'+htmlID+'" src="/ad/comscore" style="overflow:hidden;margin:0px;padding:0px;display:none;" scrolling="no" width="1" height="1" frameborder="0"></iframe>';
		if($("#"+htmlID).length) $("#"+htmlID).replaceWith(str);
		else $(str).appendTo("body");
	}catch(e){}
}
KIDS.reporting.omnifunctions.pageNameAppendNicktoons = function(newPageName){
	try{
		var conf =  new Configuration(KIDS.reporting.config);		
		conf.init();
		if(newPageName!=null && newPageName.length>0) newPageName = "-"+newPageName;
		conf.setName("vianicktoons");
		conf.setPageName(conf.getPageName()+newPageName);
		KIDS.reporting.omnifunctions.sendReportingCall(conf);		
		KIDS.reporting.omnifunctions.comscoreReport("comscore");
	}catch(e){}
}
KIDS.reporting.omnifunctions.reportKCA = function(){
	try{
		var conf =  new Configuration(KIDS.reporting.config);		
		conf.init();
		conf.setPageName("/kids-choice-awards/overlay_voting/"+conf.getChannel());
		conf.setHier2(conf.getPageName().substr(1));
		KIDS.reporting.omnifunctions.sendReportingCall(conf);	
	}catch(e){}
}
KIDS.reporting.omnifunctions.mashupReporting = function(event){
	try{
		var conf =  new Configuration(KIDS.reporting.config);		
		conf.init();
		conf.setPageName(conf.getPageName()+"/mashups/"+event);
		conf.setHier1("turbonick/mashups/"+event);
		conf.setName("nickvia");
		KIDS.reporting.omnifunctions.sendReportingCall(conf);
	}catch(e){}
}
KIDS.reporting.omnifunctions.printTracker = function(urlAlias,contentType,showID,numberPages){
	try{
		var conf =  new Configuration(KIDS.reporting.config);
		conf.init();
		var site = "nicktoons";
		conf.setName("viakfprint");
		conf.setPageName(site+"-"+contentType+"-"+showID+"-"+urlAlias);
		conf.setChannel(site);
		conf.setHier1(site+"/"+contentType+"/"+showID+"/"+urlAlias);
		conf.setHier2(conf.getHier1());
		conf.setProp(1,numberPages);
		conf.setProp(2,site);
		conf.setProp(3,contentType);
		conf.setProp(4,showID);
		conf.setProp(5,urlAlias);
		KIDS.reporting.omnifunctions.sendReportingCall(conf);
	}catch(e){}
}
KIDS.reporting.omnifunctions.printReporting = function(site,urlAlias,contentType,showID,numberPages){
	try{
		var conf =  new Configuration(KIDS.reporting.config);
		conf.init();
		conf.setName("viakfprint");
		conf.setPageName(site+"-"+contentType+"-"+showID+"-"+urlAlias);
		conf.setChannel(site);
		conf.setHier1(site+"/"+contentType+"/"+showID+"/"+urlAlias);
		conf.setHier2(conf.getHier1());
		conf.setProp(1,numberPages);
		conf.setProp(2,site);
		conf.setProp(3,contentType);
		conf.setProp(4,showID);
		conf.setProp(5,urlAlias);
		KIDS.reporting.omnifunctions.sendReportingCall(conf);
	}catch(e){}
}
KIDS.reporting.omnifunctions.oldReportingCall = function(ro){
	try{
		var conf =  new Configuration(KIDS.reporting.config);
		conf.init();
		var or = ro.setOverrides;
		KIDS.reporting.omnifunctions.omniSetOverrides(or,"overwrite",conf);
		KIDS.reporting.omnifunctions.sendReportingCall(conf);
	}catch(e){}
}
KIDS.reporting.omnifunctions.omniSetOverrides = function(or,acctNameAction,config){
	try{
		for(i in or){
			var tmpi=i.replace(/s_/,"");
			tmpi=(tmpi=="account")? "name" : tmpi;
			config.setting[tmpi]=or[i];
			
			if(tmpi=="name"){
				if(acctNameAction){
					if(acctNameAction=="append"){
						var pattern = new RegExp("^"+ro[tmpi]+"$|^"+ro[tmpi]+",|,"+ro[tmpi]+"$|,"+ro[tmpi]+",");
						if(!pattern.test(KIDS.reporting.config.getName()))config.setName(KIDS.reporting.config.getName()+","+config.getName());
					}
				}
			}
		}
	}catch(e){}
}
KIDS.reporting.omnifunctions.sendLinkCall = function(linkName, ro){
	try{
		var lnkname = unescape(linkName);
		if(ro){
			if(ro.setOverrides.name)KIDS.reporting.omnifunctions.sendLinkEvent(ro.setOverrides.name,lnkname);
			else if(ro.setOverrides.s_account)KIDS.reporting.omnifunctions.sendLinkEvent(ro.setOverrides.s_account,lnkname);
		}else KIDS.reporting.omnifunctions.sendLinkEvent(null,lnkname);	
	}catch(e){}
}
KIDS.reporting.omnifunctions.sendReportingCallTN2 = function(ro){
	try{
		var conf =  new Configuration(KIDS.reporting.config);
		conf.init();
		var or = ro.setOverrides;
		or.name = "vianickvision";
		KIDS.reporting.omnifunctions.omniSetOverrides(or,"overwrite",conf);
		KIDS.reporting.omnifunctions.sendReportingCall(conf);
	}catch(e){}
}
KIDS.reporting.omnifunctions.reloadEvent = function(event){
	try{
		KIDS.reporting.omnifunctions.pageNameAppend(event);
		KIDS.ads.refresh.reloadAds("ad-728x90Div;ad-300x250Div");
	}catch(e){KIDS.utils.doLog("KIDS.reporting.omnifunctions.reloadEvent failed:"+e);}
}
/* temporarily expose functions outside of namespace */
_nrtrackingcode 		= KIDS.reporting.omnifunctions.nrtrackingcode;
NRcall 					= KIDS.reporting.omnifunctions.NRcall;
sendAnalyticsEvent  	= KIDS.reporting.omnifunctions.sendAnalyticsEvent;
sendLinkEvent 			= KIDS.reporting.omnifunctions.sendLinkEvent;
pageNameAppend 			= KIDS.reporting.omnifunctions.pageNameAppend;
pageNameReset 			= KIDS.reporting.omnifunctions.pageNameReset;
sendInitCall 			= KIDS.reporting.omnifunctions.sendInitCall;
reportPlayer 			= KIDS.reporting.omnifunctions.reportPlayer;
sendKaraoke				= KIDS.reporting.omnifunctions.sendKaraoke;
trackEvent				= KIDS.reporting.omnifunctions.trackEvent;
trackKCA				= KIDS.reporting.omnifunctions.trackKCA;
trackGamePlay			= KIDS.reporting.omnifunctions.trackGamePlay;
bghReport				= KIDS.reporting.omnifunctions.bghReport;
fetchGamePlaySite 		= KIDS.reporting.omnifunctions.fetchGamePlaySite;
trackKidsGamePlay 		= KIDS.reporting.omnifunctions.trackKidsGamePlay;
trackKCACamera 			= KIDS.reporting.omnifunctions.trackKCACamera;
doShowTemplateAction	= KIDS.reporting.omnifunctions.doShowTemplateAction;
sendMyNickItem 			= KIDS.reporting.omnifunctions.sendMyNickItem;
BGHPledgeReporting 		= KIDS.reporting.omnifunctions.BGHPledgeReporting;
pageNameAppendNicktoons = KIDS.reporting.omnifunctions.pageNameAppendNicktoons;
reportKCA 				= KIDS.reporting.omnifunctions.reportKCA;
mashupReporting 		= KIDS.reporting.omnifunctions.mashupReporting;
printTracker 			= KIDS.reporting.omnifunctions.printTracker;
sendReportingCall 		= KIDS.reporting.omnifunctions.oldReportingCall;
sendLinkCall 			= KIDS.reporting.omnifunctions.sendLinkCall;
sendReportingCallTN2 	= KIDS.reporting.omnifunctions.sendReportingCallTN2;
reportCoverFlowImpression = KIDS.reporting.omnifunctions.reportCoverFlowImpression;
reportCoverFlowClickThru = KIDS.reporting.omnifunctions.reportCoverFlowClickThru;

if(typeof NICK != "undefined" || NICK){ 
	NICK.namespace("reporting.omnifunctions");

	NICK.reporting.omnifunctions._nrtrackingcode 			= KIDS.reporting.omnifunctions.nrtrackingcode;
	NICK.reporting.omnifunctions.NRcall 					= KIDS.reporting.omnifunctions.NRcall;
	NICK.reporting.omnifunctions.sendAnalyticsEvent  		= KIDS.reporting.omnifunctions.sendAnalyticsEvent;
	NICK.reporting.omnifunctions.sendLinkEvent 				= KIDS.reporting.omnifunctions.sendLinkEvent;
	NICK.reporting.omnifunctions.pageNameAppend 			= KIDS.reporting.omnifunctions.pageNameAppend;
	NICK.reporting.omnifunctions.pageNameReset 				= KIDS.reporting.omnifunctions.pageNameReset;
	NICK.reporting.omnifunctions.sendInitCall 				= KIDS.reporting.omnifunctions.sendInitCall;
	NICK.reporting.omnifunctions.reportPlayer 				= KIDS.reporting.omnifunctions.reportPlayer;
	NICK.reporting.omnifunctions.sendKaraoke				= KIDS.reporting.omnifunctions.sendKaraoke;
	NICK.reporting.omnifunctions.trackEvent					= KIDS.reporting.omnifunctions.trackEvent;
	NICK.reporting.omnifunctions.trackKCA					= KIDS.reporting.omnifunctions.trackKCA;
	NICK.reporting.omnifunctions.trackGamePlay				= KIDS.reporting.omnifunctions.trackGamePlay;
	NICK.reporting.omnifunctions.bghReport					= KIDS.reporting.omnifunctions.bghReport;
	NICK.reporting.omnifunctions.fetchGamePlaySite 			= KIDS.reporting.omnifunctions.fetchGamePlaySite;
	NICK.reporting.omnifunctions.trackKidsGamePlay 			= KIDS.reporting.omnifunctions.trackKidsGamePlay;
	NICK.reporting.omnifunctions.trackKCACamera 			= KIDS.reporting.omnifunctions.trackKCACamera;
	NICK.reporting.omnifunctions.doShowTemplateAction		= KIDS.reporting.omnifunctions.doShowTemplateAction;
	NICK.reporting.omnifunctions.sendMyNickItem 			= KIDS.reporting.omnifunctions.sendMyNickItem;
	NICK.reporting.omnifunctions.BGHPledgeReporting 		= KIDS.reporting.omnifunctions.BGHPledgeReporting;
	NICK.reporting.omnifunctions.pageNameAppendNicktoons 	= KIDS.reporting.omnifunctions.pageNameAppendNicktoons;
	NICK.reporting.omnifunctions.reportKCA 					= KIDS.reporting.omnifunctions.reportKCA;
	NICK.reporting.omnifunctions.mashupReporting 			= KIDS.reporting.omnifunctions.mashupReporting;
	NICK.reporting.omnifunctions.printTracker 				= KIDS.reporting.omnifunctions.printTracker;
	NICK.reporting.omnifunctions.sendReportingCall 			= KIDS.reporting.omnifunctions.oldReportingCall;
	NICK.reporting.omnifunctions.sendLinkCall 				= KIDS.reporting.omnifunctions.sendLinkCall;
	NICK.reporting.omnifunctions.sendReportingCallTN2 		= KIDS.reporting.omnifunctions.sendReportingCallTN2;
	NICK.reporting.omnifunctions.reportCoverFlowImpression 	= KIDS.reporting.omnifunctions.reportCoverFlowImpression;
	NICK.reporting.omnifunctions.reportCoverFlowClickThru 	= KIDS.reporting.omnifunctions.reportCoverFlowClickThru;
}


