﻿function trackLink() {
    if (arguments.length < 3) {
        alert("Error: Not enough arguments to TrackLink()");
        return false;
    }

    var linkTest = arguments[0];

    var link;

    if (linkTest.href == undefined) {
        link = document.createElement('a');
        link.href = linkTest;
        document.body.appendChild(link);
    }

    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.props != undefined) {
            for (var i in options.props) {
                var prop = options.props[i];

                if (linkTrackVars.length > 0) {
                    linkTrackVars += ",";
                }

                linkTrackVars += prop.name;

                s[prop.name] = prop.value;
            }
        }

        if (options.event != undefined) {
            if (linkTrackVars.length > 0) {
                linkTrackVars += ",";
            }

            linkTrackVars += "events";

            linkTrackEvents += options.event;

            s.events = options.event;
        }

        if (options.evars != undefined) {
            for (var i in options.evars) {
                var evar = options.evars[i];

                if (linkTrackVars.length > 0) {
                    linkTrackVars += ",";
                }

                linkTrackVars += evar.name;

                s[evar.name] = evar.value;
            }
        }

        if (options.supress != undefined) {
            suppressTracking = options.supress;
        }
    }

    s.linkTrackVars = linkTrackVars;
    s.linkTrackEvents = linkTrackEvents;

    if (!suppressTracking) {
        s.tl(link, linkType, name);
    }

    return false;
}

function trackPage() {
    if (arguments.length < 1) {
        alert("Error: Not enough arguments to trackPage()");
        return false;
    }

    var name = arguments[0];

    var options;

    if (arguments.length > 1) {
        options = arguments[1];
    }

    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.evars != undefined) {
            for (var i in options.evars) {
                var evar = options.evars[i];

                if (linkTrackVars.length > 0) {
                    linkTrackVars += ",";
                }

                linkTrackVars += evar.name;

                s[evar.name] = evar.value;
            }
        }

        if (options.supress != undefined) {
            suppressTracking = options.supress;
        }
    }

    s.linkTrackVars = linkTrackVars;
    s.linkTrackEvents = linkTrackEvents;

    s.pageName = name;

    if (!suppressTracking) {
        s.t();
    }

    return false;
}
