﻿function trackLink()
{
    if (arguments.length < 3)
    {
        alert("Error: Not enough arguments to TrackLink()");
        return;
    }

    var linkTest = arguments[0];

    var link;

    if (linkTest.href == undefined)
    {
        link = document.createElement('a');
        link.href = linkTest;
    }

    else
    {
        link = linkTest;
    }

    var name = arguments[1];

    var linkType = arguments[2];

    var options;

    if (arguments.length > 3)
    {
        options = arguments[3];
    }

    var linkTrackVars = 'channel'; //override to always track the channel
    var linkTrackEvents = '';

    var suppressTracking = false;

    if (options != undefined)
    {
        if (options.prop != undefined)
        {
            if (linkTrackVars.length > 0)
            {
                linkTrackVars += ",";
            }

            linkTrackVars += options.prop;

            s[options.prop] = options.prop;
        }

        if (options.event != undefined)
        {
            if (linkTrackVars.length > 0)
            {
                linkTrackVars += ",";
            }

            linkTrackVars += "events";

            linkTrackEvents += options.event;

            s.events = options.event;
        }

        if (options.supress != undefined)
        {
            suppressTracking = options.supress;
        }
    }

    s.linkTrackVars = linkTrackVars;
    s.linkTrackEvents = linkTrackEvents;

    if (!suppressTracking)
    {
        s.tl(link, linkType, name);
    }
}
