
var _tsa_myvid;
var _tsa_mysid;


function tsavisitor(aVisitorID)
{
    _tsa_myvid = aVisitorID;
}


function tsasession(aSessionID)
{
    _tsa_mysid = aSessionID;
}


// legacy
function tsaimage(aSiteID, aWaypointID, aValue, aUnitCount, aProductID, aRefCode, aReferrer, aUnitValueList, anAltTagName, doPixelTest)
{
    var params = "";
    
    if (aUnitCount) params += ("&units=" + escape(aUnitCount));
    if (aValue) params += ("&value=" + escape(aValue)); 	 
    if (aUnitValueList) params += ("&unitValues=" + escape(aUnitValueList)); 	 
    if (aProductID) params += ("&prodid=" + escape(aProductID)); 	 
    if (doPixelTest) params += ("&tsatest=1");

    tsawaypoint(aSiteID, aWaypointID, aRefCode, aReferrer, anAltTagName, params);
}


function tsawaypoint(aSiteID, aWaypointID, aRefCode, aReferrer, anAltTagName, aParams)
{
    var params = new Array();
    var queryStr = document.location.search.substring(1);
    var qs = queryStr.split("&");

    for (var i=0; i<qs.length; i++) {
        var str = qs[i].toLowerCase();
        var idx = str.indexOf("=");

        if (idx > 0) {
            params[str.substr(0,idx)] = str.substr(idx+1);
        }
    }
    var siteid = tsaCleanInt(aSiteID);
    var wayid = tsaCleanInt(aWaypointID);

    var base_url = tsaBaseURL(siteid, "pixspike.php");

    base_url += ("?tsatime=" + new Date().getTime());

    var ref = aReferrer ? aReferrer : document.referrer;
    base_url += ((!ref || (ref == "")) ? "&nouref=1" : ("&uref=" + escape(ref)));

    var tagname = anAltTagName ? anAltTagName : "refcd";

    var refcd = aRefCode ? escape(aRefCode) : params[tagname];
    
    if (!refcd && (siteid==85)) refcd = params["bnr"];
    if (refcd == "null") refcd = null;

    if (refcd) base_url += ("&ckwid=" + refcd);

    if (params["ovkey"]) base_url += ("&ovkey=" + params["ovkey"]);
    if (params["ovraw"]) base_url += ("&ovraw=" + params["ovraw"]);
    if (params["ovmtc"]) base_url += ("&ovmtc=" + params["ovmtc"]);

    if (params["ysmkey"]) base_url += ("&ovkey=" + params["ysmkey"]);
    if (params["ysmraw"]) base_url += ("&ovraw=" + params["ysmraw"]);
    if (params["ysmmtc"]) base_url += ("&ovmtc=" + params["ysmmtc"]);

    if (queryStr) base_url += ("&pageQs=" + escape(queryStr));
    
    var exit_wayid=params["wayid"];

    if (exit_wayid) {
        var exit_siteid = siteid;
        var exit_myvid = _tsa_myvid;
        var exit_mysid = _tsa_mysid;

        if (exit_wayid.indexOf("-") > 0) {
            var pieces = exit_wayid.split("-");

            exit_siteid = tsaCleanInt(pieces[0]);
            exit_wayid = tsaCleanInt(pieces[1]);
            exit_mysid = tsaCleanInt(pieces[2]); // optional, but wipe out old
            exit_myvid = tsaCleanInt(pieces[3]); // ditto
        }

        if (exit_siteid && exit_wayid && (exit_wayid != wayid)) {
            var exit_base_url = base_url;

            if (exit_siteid != siteid) {
                exit_base_url = tsaBaseURL(exit_siteid, "pixspike.php");
            }
            var exit_img_url = exit_base_url+"&siteid="+exit_siteid+"&wayid="+exit_wayid;

            if (exit_myvid) exit_img_url += ("&myvid=" + exit_myvid);
            if (exit_mysid) exit_img_url += ("&mysid=" + exit_mysid);

            tsaGetImage(exit_img_url);
        }
    }

    if (siteid && wayid) {
        var img_url = base_url+"&siteid="+siteid+"&wayid="+wayid;

        if (_tsa_myvid) img_url += ("&myvid=" + _tsa_myvid);
        if (_tsa_mysid) img_url += ("&mysid=" + _tsa_mysid);

        if (aParams) img_url += aParams;
    
        tsaGetImage(img_url);
    }
}


function tsaGetImageTag(aURL)
{
    document.write('<im'+'g="'+aURL+'" height="1" width="1" id="tsapixel" style="visibility:hidden;position:absolute;" />');

}


function tsaGetImageJS(aURL)
{
    new Image().src = aURL;
}



function tsaCleanInt(anInt)
{
    var ret = parseInt(anInt);

    if (isNaN(ret)) {
        ret = null;
    }
    return ret;
}

function tsaBaseURL(aSiteID, aPath)
{
    var ret = ((document.location.protocol == "https:") ? "https" : "http") + "://thesearchagency.net/";

    if (aPath) {
        ret += aPath;
    }
    return ret;
}

function tsaGetCookieDomain()
{
    var ret = '';

    var parts = document.domain.replace(/\s+/g, '').split('.');

    var len = parts.length;

    while ((len > 0) && (parts[len-1].length == 0)) len--;

    if (len > 1) {
        var need = 2;

        if (parts[len-1].length == 2) {
            need = 3;
        }

        if (len >= need) {
            var idx = len-1;
            var have = 0;

            while ((have < need) && (idx >= 0)) {
                var part = parts[idx--];

                if (part.length > 0) {
                    ret = ('.' + part + ret);
                    have++;
                }
            }
            if (have < need) ret = '';
        }
    }
    return ret;
}


function tsaSetCookie(aName, aValue, anExpiryDate, aDomain, aPath, isSecure)
{
    var cookie = aName + "=" + escape(aValue) +
                 ((anExpiryDate) ? "; expires=" + anExpiryDate.toGMTString() : "") +
                 ((aDomain) ? "; domain=" + aDomain : "") +
                 ("; path=" + ((aPath) ? aPath : "/")) +
                 ((isSecure) ? "; secure" : "");

    document.cookie = cookie;
}


function tsaGetCookie(aName)
{
    var ret = null;
    
    var dc = document.cookie;
    var prefix = aName + "=";
    var begin = dc.indexOf("; " + prefix);

    if (begin == -1) {
        begin = dc.indexOf(prefix);
    }
    else {
        begin += 2;
    }

    if (begin >= 0) {
        var end = document.cookie.indexOf(";", begin);

        if (end == -1) {
            end = dc.length;
        }
        var str = dc.substring(begin + prefix.length, end);

        if (str && (str.length > 0)) {
            ret = unescape(str);
        }
    }
    return ret;
}


function tsaGetImage(aURL)
{
    var url = aURL;

    tsaSetCookies();

    var c = tsaGetCookie("tsa1v");

    if (c) {
        url += ("&tsa1v=" + c);
    }
    c = tsaGetCookie("tsa1s");

    if (c) {
        url += ("&tsa1s=" + c);
    }
    tsaGetImageJS(url);
}


function tsaSetCookies()
{
    var today = new Date();
    today.setTime( today.getTime() );

    var unique = today.getTime() % 100000;

    var cdomain = tsaGetCookieDomain();

    var c = _tsa_myvid;

    if (!c) {
        c = tsaGetCookie("tsa1v");

        if(!c) {
            c = "uvid6a7faadc5c627faaf291a699f98f5593" + unique;
        }
    }
    expires = new Date( today.getTime() + (86400000 * 1000) );
    tsaSetCookie("tsa1v", c, expires, cdomain, null, false);

    c = _tsa_mysid;

    if (!c) {
        c = tsaGetCookie("tsa1s");

        if(!c) {
            c = "usid6a7faadc5c627faaf291a699f98f5593" + unique;
        }
    }
    tsaSetCookie("tsa1s", c, null, cdomain, null, false);
}


