/*
 * 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 = "adultswim";
	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['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) {
		hasSetMetric.prelogin = true;
		jsmdData['rsid'] = rsid['Unauthorized'];
		trackMetrics("tve-not-logged",jsmdData);  //cals the function from the jsmd file.
	
		_jsmd.plugin.cookie.set("01tve2aCk","auth_No");
	//}
}

/* 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 (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;
}
