//
// Javascript for affiliate links
//

// Strange that javascript doesn't have builtin functions to parse URLs.  
function parseHost(url)
{
    var start = url.indexOf("//") + 2;
    var end = url.indexOf("/", start);
    return url.substr(start, end-start);
}

function endsWith(str, end)
{
    if (str.length >= end.length)
    {
        var i = str.length - end.length;
        return end == str.substr(i);
    }
    else 
        return false;
}

function cameFromOtherSite(referrer)
{
    var here = window.location.host;
    if (endsWith(referrer, here) || endsWith(here, referrer))
        return false;
    else
        return true;        
}

function createCookie(name, value, days) 
{
    var expires = "";
    if (days) 
    {
        var date = new Date();
        date.setTime(date.getTime() + days*24*60*60*1000);
        expires = "; expires=" + date.toGMTString();
    }

    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) 
{
    var ca = document.cookie.split(';');
    var re = new RegExp(name + "=\\s*(.*)$");
    for(var i=0; i < ca.length; i++) 
    {
        var c = ca[i];
        var m = c.match(re);
        if (m)
            return m[1];
    }
    return null;
}

function rememberReferrer()
{
    var r = document.referrer;
    if (!r)
        return;

    r = parseHost(r);
    if (!cameFromOtherSite(r))
        return;

    createCookie("referrer", r, 1);
}

function writePayPalFields()
{
    var r = readCookie("referrer");
    if (!r)
        r = "none";
    document.write("<input type='hidden' name='on0' value='affiliate'>");
    document.write("<input type='hidden' name='os0' value='" + r + "'>");
}

