// Final Omniture Code File
// Used to convert MI variable to Omniture variables and
// also makes the final img call.
///////////////////////////////////////////////////////////////

// Set Doubletag flag if page already counted - Added 12/31/2007 - JJ
var mitagsent; if(mitagsent){mistats.taxonomy = "DOUBLETAG-Not-Reported||||";}

// Server and URL variables
mistats.server        = document.domain.toString().replace (/\/.*/, '').replace (/^www\./, '');
mistats.url           = document.location.protocol + "//" + document.location.hostname + document.location.pathname;
mistats.querystring   = document.location.search + " " + document.location.hash;

// New Insite Tracking
// Added 8/19/09 - JJ
function getMIcookie( cookie_name, type ) {

	// Get contents of cookie
	var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );

	// Type of cookie to parse
	switch(type) {
		case 'user': {
			// Make sure we have an Insite cookie and it contains data
			if(typeof(results) != 'undefined') {
				if(results != null) {
					insiteData = unescape(results[2]);
					insiteData = insiteData.split('|');
					return insiteData[0];
				}
				else
					return 'Unknown';
			}
			else
				return 'Unknown';
		}
		case 'segment': {
			// Make sure we have a Segments cookie and it contains data
			if(typeof(results) != 'undefined') {
				if(results != null) {
					segmentData = unescape(results[2]);
					segmentData = segmentData.replace(/%20/g,'|');
					return segmentData;
				}
				else
					return 'Unknown';
			}
			else
				return 'Unknown';
		}
	}
}

// Get Insite Data If Available
mistats.insiteid = getMIcookie(mistats.regcookie,'user');
mistats.segments = getMIcookie(mistats.segcookie,'segment');

// Error Checking and Code Enhancements
///////////////////////////////////////////////////////////////

// MSR Fix - Added 11/26/2007/
mistats.bizunit = mistats.bizunit.toUpperCase();

// Link Tagging Function
mistats.graffiti = function(a,b) {
    var c = a.length, cc, cn, cl, d = document, e, f;

    while(c--) {  
        if(c !== 0 && d.getElementById( a[c].id)) {
            cn = d.getElementById( a[c].id ).getElementsByTagName('*');
            cl = cn.length;
            while(cl--) {
                cc = cn[cl];
                if(cc.href && !cc.href.match(/\@|\#|mailto:/) ) {
                        e = (a[0].label === '') ? mistats.pagelevel : a[0].label;
                        f = (a[c].label === '') ? a[c].id : a[c].label;                        
                        cc.href += '#' + b + '=' + e + ':' + f;
                }
            }
        }
    }
};


// Taxonomy Error Checking /
if(mistats.taxonomy.split("|").length != 5) { mistats.taxonomy = "BadTaxonomy||||";}

// Temporary New Tag Flags /
mistats.msr       = "*" + mistats.msr;
mistats.pagelevel = "*" + mistats.pagelevel;

// Catch pages improperly labeled as homepage
if(window.location.pathname.length > 1 && mistats.taxonomy === '_Homepage||||') {
    mistats.taxonomy = 'BadTaxonomy||||';
}

if(window.location.pathname.length > 1 && mistats.pagelevel === '*Home') {
    mistats.pagelevel = 'Bad Page Level';
}

// Convert MI variables to Omniture variables
s_account	 = mistats.account;
s.pageName       = mistats.pagename;
s.channel        = mistats.sitename + ": " + mistats.channel;
s.server         = mistats.server;
s.prop1          = mistats.url;
s.prop2          = mistats.version;
s.prop3	         = mistats.pagelevel;
s.prop4 	 = mistats.contentsource;
s.prop5	 	 = mistats.insiteid;
s.prop6		 = mistats.bizunit + "|" + mistats.sitename + "|" + mistats.taxonomy + "|" + mistats.channel;
s.prop7	 	 = mistats.custom1
s.prop8	 	 = mistats.custom2;
s.prop9	 	 = mistats.custom3;

// Repurposing prop10 and prop11 for percentPageViewed
//s.prop10  	 = mistats.popstoryurl;
//s.prop11	 = mistats.popstoryheadline;

s.prop12	 = mistats.custom4;
s.prop13	 = mistats.segments;
s.prop20	 = mistats.cmsid;
s.prop18  	 = mistats.altcategories;
s.prop29	 = mistats.keywords;
s.prop30	 = mistats.geography;
s.prop31	 = mistats.pubdate;
s.prop32	 = mistats.moddate;
s.prop37	 = mistats.popular;
s.prop38	 = mistats.adposition;
s.prop39	 = mistats.querystring;
s.hier1	 	 = mistats.bizunit + "|" + mistats.sitename + "|" + mistats.taxonomy + "|" + mistats.channel;

// Pagename as a conversion variable - Added 3/31/10 - JJ - Ticket# 727-8314208  
s.events = "event7";
s.eVar4 = s.pageName;

// Improper Vendor Tracking Code
// Added 09/06/09
if(typeof(pubsys) != 'undefined') {
	if(pubsys == true) {
                s.prop20 += '|P: ' + s.channel + ' : ' + mistats.server;
	}
}
else {
	s.prop20 = '|U: ' + s.channel + ' : ' + mistats.server;
}

// Omniture AJAX Tracking Flag
mistats.scriptLoaded = "false";

// Script Loader
function scriptLoader() {}

// Script Loader Prototype
scriptLoader.prototype = {

        "injectScript" : function( url, callback ) {

		var script = document.createElement( "script" );
                script.type = "text/javascript";

                // IE
                if (script.readyState){
                        script.onreadystatechange = function(){
                                if (script.readyState == "loaded" || script.readyState == "complete") {
                                        script.onreadystatechange = null;
                                        callback();
                                }
                        };
                }
                // Everyone else
                else {
                        script.onload = function(){
                                callback();
                        };
                }

                // Inject script into html head
                script.src = url;
                document.getElementsByTagName("head")[0].appendChild(script);

		// Update Tracking Flag
		mistats.scriptLoaded = "true";
	}
}

// Post Load Omniture Tracking
mistats.updateTracking = function() {
	mistats.postLoadArgs = arguments;
	if(mistats.scriptLoaded == "false") {
		mistats.postLoad = new scriptLoader();
		mistats.postLoad.injectScript('http://www.mcclatchyinteractive.com/mistats/refinalizestats.js',
		function(){
			mistats.postLoadTracking.omniture(mistats.postLoadArgs);
		});
	}
	else
		mistats.postLoadTracking.omniture(mistats.postLoadArgs);
}

// IMG tag call
// Double Tag Check - Added 11/31/2007 - JJ
<!-- ** DO NOT ALTER ANYTHING BELOW THIS LINE ** -->
if(!mitagsent)
{	
	var s_code=s.t();if(s_code)document.write(s_code)
	var mitagsent = true;
}


// Temporary Kentucky Link Tracking
if(mistats.bizunit === 'KEN') { 
	mistats.graffiti(tag.site, tag.name); 
}

// Call quantserve .js file - Added 7/22/2008 - JJ Ticket # 727-5945439
var _qoptions = { qacct:"p-50B2Fi6bBqYto", labels: mistats.bizunit };
document.write("\n<" + "script type='text/javascript' src='http://edge.quantserve.com/quant.js'>" + "</" + "script>");

if (mistats.tacoda) 
{
     var tcdacmd="dt";
     document.write("<S"+"CRIPT SRC='http://an.tacoda.net/an/"+mistats.tacoda+"/slf.js' LANGUAGE='JavaScript'></S"+"CRIPT>");
}

// Tynt Tracer - Added 3/3/2010
if( typeof mistats.tyntid != 'undefined') {        
	if( window.location.pathname.length > 1 ) {
                document.write("\n<" + "script type='text/javascript' src='http://tcr.tynt.com/javascripts/Tracer.js?" + mistats.tyntid + "'>" + "</" + "script>");
                document.write("\n<" + "script type='text/javascript'>" +  "tynt={'ap': 'Read more: '};" + "</" + "script>");
        }
}


// Make sure YWA is set
if(typeof(mistats.yanalytics) != 'undefined') {

        // Global YWA
        var YWATracker = YWA.getTracker(mistats.yanalytics);

        // Map mistats data to yahoo
        YWATracker.setDocumentName(mistats.pagename);
        YWATracker.setDocumentGroup(mistats.sitename + ": " + mistats.channel);

        // Custom Yahoo Variables
        YWATracker.setCF('1', mistats.url);
        YWATracker.setCF('2', mistats.version);
        YWATracker.setCF('3', mistats.pagelevel);
        YWATracker.setCF('4', mistats.contentsource);
        YWATracker.setCF('5', mistats.insiteid);
        YWATracker.setCF('6', mistats.segments);
        YWATracker.setCF('7', mistats.altcategories);
        YWATracker.setCF('8', mistats.keywords);
        YWATracker.setCF('9', mistats.geography);
        YWATracker.setCF('10', mistats.pubdate);
        YWATracker.setCF('11', mistats.moddate);
        YWATracker.setCF('12', mistats.popular);
        YWATracker.setCF('13', mistats.querystring);
        YWATracker.setCF('14', mistats.bizunit + "|" + mistats.sitename + "|" + mistats.taxonomy + "|" + mistats.channel);

        // Send data to YWA
        YWATracker.submit();
}

