// University Housing - University of Illinois at Urbana-Champaign
// Remember Me feature Javascript library

// Configuration Variables:
// cookie name
var housing_remember_me_cookie_name = 'housing_remember_me_location';
// days -- the number of days we will keep 'remembering'
var housing_remember_me_days = 180;

// run_remember_me():
// redirect if user has a cookie set AND not local site referrer
function run_remember_me() {
    cookie = get_remember_me_cookie();
    if (cookie != '') {
        if (test_followed_internal_link()) {
            // do nothing since user clicked 'Home' from internal link
        } else {
            window.location.href = cookie;
        }
    }
}

// test_followed_internal_link():
// return true if we arrived at this page from a link within the site
function test_followed_internal_link() {
    current_domain = window.location.hostname;
    referrer = get_referrer();
    if (referrer != '') {
        if (referrer.indexOf(current_domain) != -1) {
            return true;
        }
    } 
    return false;
}

// get_referrer():
// return the current referrer URL, if any
function get_referrer() {
    if (document.referrer != '') {
        return document.referrer;
    }
    return '';
}

// get_remember_me_cookie():
// return the cookie, if any
function get_remember_me_cookie() {
    if (document.cookie.length > 0) {
        start = document.cookie.indexOf(housing_remember_me_cookie_name + '=');
        if (start != -1) { 
            start = start + housing_remember_me_cookie_name.length + 1; 
            end = document.cookie.indexOf(';', start);
            if (end == -1) end = document.cookie.length;
            return unescape(document.cookie.substring(start, end));
        }
      }
    return '';
}

// set_remember_me_cookie():
// given a string argument, set a cookie to remember the location
function set_remember_me_cookie(path) {
    var expiration = new Date();
    expiration.setDate(expiration.getDate() + housing_remember_me_days);
    document.cookie = housing_remember_me_cookie_name + '=' + escape(path) 
      + ';expires=' + expiration.toGMTString() + '; path=/';
}

// unset_remember_me_cookie():
// erase the cookie
function unset_remember_me_cookie() {
    document.cookie = housing_remember_me_cookie_name + '=/'
      + ';expires=Sat, 01-Jan-2000 01:23:45 UTC' + '; path=/';
}

// show_remember_me_checkbox():
// given the id of a checkbox field, set it checked if a cookie is already set
function show_remember_me_checkbox(id) {
    cookie = get_remember_me_cookie();
    if (cookie != '') {
        if (escape(cookie) == window.location.pathname) {
            document.getElementById(id).checked = true;
        }
    }
}

