﻿/*Store referrer and search terms in cookie - for use in loan pages*/

function storeReferrerInCookie() {
    if (document.referrer != '') {
        // do nothing if browsing around in own site
        var refURL = parseURL(document.referrer);
        var curURL = parseURL(document.URL);
        if (refURL.host == curURL.host) return;

        var isYahoo = checkForYahoo(refURL);
        var key = (isYahoo) ? 'p' : 'q';

        if (refURL.params[key] != undefined) {
            $.cookie("gl-tracking", refURL.host + '/' + refURL.params[key]);
        } else {
            allLinks[j].href += '&refhead=' + refURL.host;
            $.cookie("gl-tracking", refURL.host);
        }

    } else {
        $.cookie("gl-tracking", null);
    }
}

function checkForYahoo(url) {
    var words = url.host.split('.');

    for (var i = 0; i < words.length; i++) {
        if (words[i] == 'yahoo')
            return true;
    }

    return false;
}

function parseURL(url) {
    var a = document.createElement('a');
    a.href = url;
    return {
        source: url,
        protocol: a.protocol.replace(':', ''),
        host: a.hostname,
        port: a.port,
        query: a.search,
        params: (function () {
            var ret = {},
        seg = a.search.replace(/^\?/, '').split('&'),
        len = seg.length, i = 0, s;
            for (; i < len; i++) {
                if (!seg[i]) { continue; }
                s = seg[i].split('=');
                ret[s[0]] = s[1];
            }
            return ret;
        })(),
        file: (a.pathname.match(/\/([^\/?#]+)$/i) || [, ''])[1],
        hash: a.hash.replace('#', ''),
        path: a.pathname.replace(/^([^\/])/, '/$1'),
        relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [, ''])[1],
        segments: a.pathname.replace(/^\//, '').split('/')
    };
}

storeReferrerInCookie();
