// JavaScript Document

/*
parseUri 1.2.1
(c) 2007 Steven Levithan<stevenlevithan.com>
MIT License
*/
function parseURI(str) {
    var o = parseURI.options,
    m = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
    uri = {},
    i = 14;
    while (i--) uri[o.key[i]] = m[i] || "";
    uri[o.q.name] = {};
    uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
        if ($1) uri[o.q.name][$1] = $2;
    });
    return uri;
};
parseURI.options = {
strictMode: false,
key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
q: {
name: "queryKey",
parser: /(?:^|&)([^&=]*)=?([^&]*)/g
    },
parser: {
strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
    }
};
function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i< ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}
function eraseCookie(name) {
    createCookie(name,"",-1);
}
function getQuery(str) {
    var vars = str.split("&");
    var out ='';
    for (var i=0;i<vars.length;i++) {
        var pair = vars[i].split("=");
        if (pair[0]=='q' || pair[0]=='p') out += pair[1] + ' ';
    }
    return out;
}
if (document.referrer) {
    ref = parseURI(document.referrer);
    if (ref.host!=document.location.host) {
        var search_src = ref.host;
        var search_terms = getQuery(ref.query);
        createCookie('search_src',ref.host,1);
        createCookie('search_terms',search_terms,1);
    }
}
if (readCookie('search_src') || search_src) { //update links
    search_src = search_src?search_src:readCookie('search_src');
    search_terms = search_terms?search_terms:readCookie('search_terms');
    $a = document.getElementsByTagName('A');
    for (i=0;i<$a.length;i++) {
        if ($a[i].href.indexOf('gl/')>0) {
			$a[i].href += '?creferer=source:' + search_src.replace(/\./g,'-') + ' ' + search_terms.replace(/\./g,'-');
        }
    }
}
