/*  trackLink("2154:341564:1", "http://www.tbs.com/shows/houseofpayne","flash")
                                ^^^^^^^^^^^ url
                           ^ -- arbirtrary sequence: 0-4
                     ^^^^^ --- franchiseId
               ^^^^ ---- positionId
*/
function trackLink(position,linkUrl,referralApp) {

    var s=s_gi(s_account);
    s.usePlugins=false; // must use this or prop12 and eVar13 will get over-ridden by the plugins code.

    /* determine if this is an offsite link */
    var isOffsiteLink = false;
    //linkUrl = linkUrl.trim();
    // if starts with http then check to see if external link
    if (linkUrl.indexOf('http://') == 0) {
        // parse the linkUrl to get domain
        var pathArray = linkUrl.split('/');
        var domain = pathArray[2];
        domain = domain.replace("www","");

        // compare domain with s.linkInternalFilters
        // if domain does not exist in s.linkInternalFilters then we assume it's offsite link
        var internalFilters = s.linkInternalFilters;
        if (internalFilters.indexOf(domain) == -1) {
            isOffsiteLink = true;
        }
    } else {
        // otherwise assume internal link
        isOffsiteLink = false;
    }

    /* add the position to the URL as IREF */
    var hasQpArray = linkUrl.split('?');
    var linkUrlWithIref = linkUrl;
    if (hasQpArray[1] != '' && hasQpArray[1] != null) {
        linkUrlWithIref += "&iref=" + position;
    } else {
        linkUrlWithIref += "?iref=" + position;
    }

    /* Omniture tracking code */
    if (isOffsiteLink == true) {
        /* if offsite link */
        // alert ('is OFFSITE LINK' );
        s.linkTrackVars='None';
        s.linkTrackEvents='None';
        s.trackExternalLinks=false; /* suppresses auto-exitLink-tracking */

        s.tl(linkUrlWithIref,'e',position + ":" + linkUrl);

        if (referralApp == "flash") {
            document.location.href = linkUrlWithIref;
        } else {
            return true;
        }
    } else {
        /* if onsite link */
        // alert ('NOT offsiteLink' );
        /* redirect to linkUrl */
        document.location.href = linkUrlWithIref;
        return false;
    }
}


/**
 * this is to track a generic metric. Modeled it after the CVP video configs, so that it's re-usable.
 * Usage:	trackGeneric(metrics={pageName:'/2010/FilmFestival/Events',
                                     channel:'/2010/FilmFestival/',

   Track MircoAction Usage:
               trackGeneric(metrics={prop16:'FamilyGuyness:<socialnetworkName>'},'FamilyGuyness:<socialnetworkName>')})
 */
function trackGeneric(metrics, linkName) {

    var s=s_gi(s_account);

    s.events = '' ;
    s.linkTrackVars = '';
    s.linkTrackEvents = '';


    if (metrics.pageName) {
        s.pageName = metrics.pageName;
        s.linkTrackVars += 'pageName';
    }
    if (metrics.channel) {
        s.channel = metrics.channel;
        s.linkTrackVars += 'channel';
    }
    if (metrics.server) {
        s.server = metrics.server;
        s.linkTrackVars += 'server';
    }
    if (metrics.prop1) {
        s.prop1 = metrics.prop1 ;
        s.linkTrackVars += 'prop1';
    }
    if (metrics.prop2) {
        s.prop2 = metrics.prop2 ;
        s.linkTrackVars += 'prop2';
    }
    if (metrics.prop3) {
        s.prop3 = metrics.prop3 ;
        s.linkTrackVars += 'prop3';
    }
    if (metrics.prop4) {
        s.prop4 = metrics.prop4 ;
        s.linkTrackVars += 'prop4';
    }
    if (metrics.prop5) {
        s.prop5 = metrics.prop5 ;
        s.linkTrackVars += 'prop5';
    }
    if (metrics.prop6) {
        s.prop6 = metrics.prop6 ;
        s.linkTrackVars += 'prop6';
    }
    if (metrics.prop7) {
        s.prop7 = metrics.prop7 ;
        s.linkTrackVars += 'prop7';
    }
    if (metrics.prop8) {
        s.prop8 = metrics.prop8 ;
        s.linkTrackVars += 'prop8';
    }
    if (metrics.prop9) {
        s.prop9 = metrics.prop9 ;
        s.linkTrackVars += 'prop9';
    }
    if (metrics.prop10) {
        s.prop10 = metrics.prop10 ;
        s.linkTrackVars += 'prop10';
    }
    if (metrics.prop11) {
        s.prop11 = metrics.prop11 ;
        s.linkTrackVars += 'prop11';
    }
    if (metrics.prop12) {
        s.prop12 = metrics.prop12 ;
        s.linkTrackVars += 'prop12';
    }
    if (metrics.prop13) {
        s.prop13 = metrics.prop13 ;
        s.linkTrackVars += 'prop13';
    }
    if (metrics.prop14) {
        s.prop14 = metrics.prop14 ;
        s.linkTrackVars += 'prop14';
    }
    if (metrics.prop15) {
        s.prop15 = metrics.prop15 ;
        s.linkTrackVars += 'prop15';
    }
    if (metrics.prop16) {
        s.prop16 = metrics.prop16 ;
        s.linkTrackVars += 'prop16';
    }
    if (metrics.prop17) {
        s.prop17 = metrics.prop17 ;
        s.linkTrackVars += 'prop17';
    }
    if (metrics.prop18) {
        s.prop18 = metrics.prop18 ;
        s.linkTrackVars += 'prop18';
    }
    if (metrics.prop19) {
        s.prop19 = metrics.prop19 ;
        s.linkTrackVars += 'prop19';
    }
    if (metrics.prop20) {
        s.prop20 = metrics.prop20 ;
        s.linkTrackVars += 'prop20';
    }


    if (metrics.eVar1) {
        s.eVar1 = metrics.eVar1 ;
        s.linkTrackVars += 'eVar1';
    }
    if (metrics.eVar2) {
        s.eVar2 = metrics.eVar2 ;
        s.linkTrackVars += 'eVar2';
    }
    if (metrics.eVar3) {
        s.eVar3 = metrics.eVar3;
        s.linkTrackVars += 'eVar3';
    }
    if (metrics.eVar4) {
        s.eVar4 = metrics.eVar4;
        s.linkTrackVars += 'eVar4';
    }
    if (metrics.eVar5) {
        s.eVar5 = metrics.eVar5 ;
        s.linkTrackVars += 'eVar5';
    }
    if (metrics.eVar6) {
        s.eVar6 = metrics.eVar6 ;
        s.linkTrackVars += 'eVar6';
    }
    if (metrics.eVar7) {
        s.eVar7 = metrics.eVar7 ;
        s.linkTrackVars += 'eVar7';
    }
    if (metrics.eVar8) {
        s.eVar8 = metrics.eVar8 ;
        s.linkTrackVars += 'eVar8';
    }
    if (metrics.eVar9) {
        s.eVar9 = metrics.eVar9 ;
        s.linkTrackVars += 'eVar9';
    }
    if (metrics.eVar10) {
        s.eVar10 = metrics.eVar10 ;
        s.linkTrackVars += 'eVar10';
    }
    if (metrics.eVar11) {
        s.eVar11 = metrics.eVar11 ;
        s.linkTrackVars += 'eVar11';
    }
    if (metrics.eVar12) {
        s.eVar12 = metrics.eVar12 ;
        s.linkTrackVars += 'eVar12';
    }
    if (metrics.eVar13) {
        s.eVar13 = metrics.eVar13 ;
        s.linkTrackVars += 'eVar13';
    }
    if (metrics.eVar14) {
        s.eVar14 = metrics.eVar14 ;
        s.linkTrackVars += 'eVar14';
    }
    if (metrics.eVar15) {
        s.eVar15 = metrics.eVar15 ;
        s.linkTrackVars += 'eVar15';
    }
    if (metrics.eVar16) {
        s.eVar16 = metrics.eVar16 ;
        s.linkTrackVars += 'eVar16';
    }
    if (metrics.eVar17) {
        s.eVar17 = metrics.eVar17 ;
        s.linkTrackVars += 'eVar17';
    }
    if (metrics.eVar18) {
        s.eVar18 = metrics.eVar18 ;
        s.linkTrackVars += 'eVar18';
    }
    if (metrics.eVar19) {
        s.eVar19 = metrics.eVar19 ;
        s.linkTrackVars += 'eVar19';
    }
    if (metrics.eVar20) {
        s.eVar20 = metrics.eVar20 ;
        s.linkTrackVars += 'eVar20';
    }


    if (metrics.events) {
        s.events = metrics.events ;
        s.linkTrackVars += 'events';
        s.linkTrackEvents = metrics.events;
    }

    if (linkName) {
        s.tl(linkName,'o',linkName);
    } else {
        //track
        s.t();
    }
}



/* this is tracking as pageview
 * Best used when DHTML is used to change main content of page.
 * Example: http://www.tcm.com/festival/
 * Usage:	trackBasicPage(metrics = {pageName:'/2010/FilmFestival/Events', channel:'/2010/FilmFestival/'})
 * Alt Usage: if the page level tracking already sets "channel", and you want to keep it the same with this metrics, then you can leave it off like this:
 *					trackBasicPage(metrics = {pageName:'/2010/FilmFestival/Events'})
 *
 */
function trackBasicPage(metrics) {

    var s=s_gi(s_account);
    s.pageName=metrics.pageName;
    s.eVar3=s.pageName;

    if (null != metrics.channel && "" != metrics.channel) {
        s.channel=metrics.channel;

        if (null != metrics.server && "" != metrics.server) {
            s.server=metrics.channel + ":" + metrics.server;
            s.eVar2=s.server;
        }
    }
    s.prop1=window.location.href;

    s.linkTrackVars='pageName,channel,prop1,eVar2,eVar3,events';
    //    s.linkTrackEvents='event1';
    //    s.events='event1'; // pageView

    //track
    s.t();

}

