/*
* Tru.tv TVE Omniture Implementation
* Populates data for page view tracking
*/
//prepares the URL to be parsed
var pathName = window.location.pathname.substring(1);
//if (pathname.charAt(pathname.length - 1) == "/") pathName += "index.html";
var pathArray = pathName.split('/');
var host = window.location.host;
//var authInfoArray = new Array();
function gTVEglobalNetworkName(){
var r = "tbs";
var p = {
"adultswim":/adultswim/,
"trutv":/trutv/,
"tnt":/tnt/,
"tbs":/tbs/,
"cartoonnetwork":/cartoonnetwork/
};
for(var pr in p){
var reg = p[pr];
if (reg.test(host)){return pr;}
}
return r;
}
var networkName = gTVEglobalNetworkName();
var cvdistrib = "unspecified mvpd";
var userId = "Unspecified UserId";
/* RSID (report suite id) variables */
var rsidEnvName = "dev"; // change to "" on production
switch(networkName){
case "adultswim":
if(host==="www.adultswim.com"){rsidEnvName = "";}
break;
case "trutv":
if(host==="www.trutv.com"){rsidEnvName = "";}
break;
case "tnt":
if(host==="www.tnt.tv"){rsidEnvName = "";}
break;
case "tbs":
if(host==="www.tbs.com"){rsidEnvName = "";}
break;
case "cartoonnetwork":
if(host==="www.cartoonnetwork.com"){rsidEnvName = "";}
break;
}
// change to "" on production or when we are ready to launch
var rsidNetworkName = networkName.toLowerCase(); // just the lowercase of "networkName" variable
var rsid = new Array();
rsid['Unauthorized'] = "tvenotauth" + rsidNetworkName + rsidEnvName;
rsid['verizon'] = {
global:	"tveverizonglobal" + rsidEnvName,
network:	"tveverizon" + rsidNetworkName + rsidEnvName
}
rsid['comcast'] = {
global:	"tvecomcastglobal" + rsidEnvName,
network:	"tvecomcast" + rsidNetworkName + rsidEnvName
}
rsid['adobe'] = {
//global:	"tveadobeglobal" + rsidEnvName,
//network:	"tveadobe" + rsidNetworkName + rsidEnvName
global:	"tveadobeglobaldev",
network:	"tveadobebranddev"
}
rsid['dish'] = {
global:	"tvedishglobal" + rsidEnvName,
network:	"tvedish" + rsidNetworkName + rsidEnvName
}
rsid['twc'] = {
global:	"tvetwcglobal" + rsidEnvName,
network:	"tvetwc" + rsidNetworkName + rsidEnvName
}
rsid['at&t'] = {
global:	"tveattglobal" + rsidEnvName,
network:	"tveatt" + rsidNetworkName + rsidEnvName
}
rsid['charter'] = {
global:	"tvecharterglobal" + rsidEnvName,
network:	"tvecharter" + rsidNetworkName + rsidEnvName
}
rsid['wow'] = {
global:	"tvewowglobal" + rsidEnvName,
network:	"tvewow" + rsidNetworkName + rsidEnvName
}
rsid['bend'] = {
global:	"tvebendglobal" + rsidEnvName,
network:	"tvebend" + rsidNetworkName + rsidEnvName
} 
rsid['cox'] = {
global:	"tvecoxglobal" + rsidEnvName,
network:	"tvecox" + rsidNetworkName + rsidEnvName
}
rsid['directtv'] = {
global:	"tvedirecttvglobal" + rsidEnvName,
network:	"tvedirecttv" + rsidNetworkName + rsidEnvName
}
if (networkName === "cartoonnetwork"){
rsid['google'] = "carnetnmgoogletv" + rsidEnvName;
} else if(networkName === "cnn"){
rsid['google'] = "cnngoogletvcnnlive" + rsidEnvName;
} else { rsid['google'] = rsidNetworkName + "googletv" + rsidEnvName; }
rsid['suddenlink'] = {
global:	"tvesuddenlinkglobal" + rsidEnvName,
network:	"tvesuddenlink" + rsidNetworkName + rsidEnvName
}
/* template for adding more RSID values
var rsid['X'] = {
global:	"tveXglobal" + rsidEnvName,
network:	"tveX" + rsidNetworkName + rsidEnvName
}
*/
/* /RSID (report suite id) variables */
/* Flags for determining which metrics have already been set in a
particular session so multiple calls to the tracking
callback in the AccessEnabler.js do not trigger extra metrics.
*/
var hasSetFirstMetric = false; // deprecated
var hasSetMetric = {
prelogin: false,
authenticationStart:	false,
postAuthorization:	false,
previouslyAuthorized:	false
}
// alert ("pathname: " + pathName + "; host: " + host + "; path[0]: " + pathArray[0] + "; path[1]: " + pathArray[1] )
//Initializing the JSON that holds the necessary data to be sent to Omniture
var metrics = {
pageName:	"TVE:" + networkName + ":Not Authenticated",
server: '',
channel:	'',
prop1:	'',
prop2:	"Unspecified MVPD:" + networkName,
prop3:	'',
prop4:	'',
prop5:	'',
prop6:	'',
prop7:	'',
prop8:	'',
prop9:	'',
prop10:	'',
prop11:	'',
prop12:	'',
prop13:	'',
prop14:	'',
prop15:	'',
prop16:	'',
prop17:	'',
prop18:	'',
prop19:	'',
prop20:	'',
prop21:	'',
prop22:	'',
account: ""+rsid['Unauthorized']+""
}
var jsmdData = [];
var s_account= rsid['Unauthorized'];
/* this is tracking as pageview */
function trackNotLoggedInPage() {
s_account = rsid['Unauthorized'];
if (!hasSetMetric.prelogin) {
jsmdData['rsid'] = rsid['Unauthorized'];
trackMetrics("tve-not-logged",jsmdData); //cals the function from the jsmd file.
_jsmd.plugin.cookie.set("01tve2aCk","auth_No");
hasSetMetric.prelogin = true;
}
}
/* This is tracking page */
function trackAuthenticationStart(trackingData) {
jsmdData['rsid'] = rsid;
jsmdData['trackingdata'] = trackingData;
try{
cvdistrib = trackingData[0];
cvdistrib = cvdistrib.toLowerCase();
s_account = (cvdistrib == "google")?(rsid['google']):(rsid[cvdistrib].global + "," + rsid[cvdistrib].network);
}catch(e){}
if (!hasSetMetric.authenticationStart) {
hasSetMetric.authenticationStart = true;
//hasSetMetric.postAuthentication = true;
//hasSetMetric.previouslyAuthorized = true;
trackMetrics("tve-authentication-start",jsmdData); //cals the function from the jsmd file.
}
}
/* this is tracking as pageview*/
/* [0] Whether the token request was successful [true/false]
* and if true:
* [1] MVPD ID [string]
* [2] User ID (md5 hashed) [string]
* [3] Whether it was cached or not [true/false]
*/
function trackAuthenticationComplete(trackingData) {
jsmdData['rsid'] = rsid;
jsmdData['trackingdata'] = trackingData;
try{
cvdistrib = trackingData[1];
cvdistrib = cvdistrib.toLowerCase();
s_account = (cvdistrib == "google")?(rsid['google']):(rsid[cvdistrib].global + "," + rsid[cvdistrib].network);
userId = trackingData[2];
}catch(e){}
if (!hasSetMetric.postAuthentication) {
//hasSetMetric.authenticationStart = true;
//hasSetMetric.postAuthentication = true;
//hasSetMetric.previouslyAuthorized = true;
trackMetrics("tve-authentication-complete",jsmdData); //cals the function from the jsmd file.
_jsmd.plugin.cookie.set("01tve2aCk","auth_Complt");
}
hasSetMetric.postAuthentication = true;
}
/* this is tracking as pageview */
/* [0] Whether the token request was successful [true/false]
* and if true:
* [1] MVPD ID [string]
* [2] User ID (md5 hashed) [string]
* [3] Whether it was cached or not [true/false]
*/
function trackAlreadyLoggedInPage(trackingData) {
jsmdData['rsid'] = rsid;
jsmdData['trackingdata'] = trackingData;
cvdistrib = trackingData[1];
cvdistrib = cvdistrib.toLowerCase();
s_account = (cvdistrib == "google")?(rsid['google']):(rsid[cvdistrib].global + "," + rsid[cvdistrib].network);
userId = trackingData[2];
var cck = _jsmd.plugin.cookie.get("01tve2aCk");
if (!hasSetMetric.previouslyAuthorized) {
if (cck == "auth_Complt" || cck.indexOf("auth") == -1) {
//hasSetMetric.authenticationStart = true;
trackMetrics("tve-already-logged-page",jsmdData); //cals the function from the jsmd file.
} else {
trackMetrics("tve-authentication-complete",jsmdData); //cals the function from the jsmd file.
_jsmd.plugin.cookie.set("01tve2aCk","auth_Complt");
}
hasSetMetric.postAuthentication = true;
hasSetMetric.previouslyAuthorized = true;
}
}
