// ContentGator File: scripts/utility/cookies.js
function cookies() {
}

cookies.prototype.set = function(name, value, expires, path, domain, secure) {
    // set time, it's in milliseconds
    var today = new Date();
    today.setTime(today.getTime());

    /*
    if the expires variable is set, make the correct
    expires time, the current script below will set
    it for x number of days, to make it for hours,
    delete * 24, for minutes, delete * 60 * 24
    */
    if (expires) {
        expires = expires * 1000 * 60 * 60 * 24;
    }
    var expires_date = new Date(today.getTime() + (expires));

    document.cookie = name + "=" + escape(value) +
        ((expires) ? ";expires=" + expires_date.toGMTString() : "") +
        ((path) ? ";path=" + path : "") +
        ((domain) ? ";domain=" + domain : "") +
        ((secure) ? ";secure" : "");
}

cookies.prototype.get = function(check_name) {
    // first we'll split this cookie up into name/value pairs
    // note: document.cookie only returns name=value, not the other components
    var a_all_cookies = document.cookie.split(';');
    var a_temp_cookie = '';
    var cookie_name = '';
    var cookie_value = '';
    var b_cookie_found = false; // set boolean t/f default f

    for (i = 0; i < a_all_cookies.length; i++) {
        // now we'll split apart each name=value pair
        a_temp_cookie = a_all_cookies[i].split('=');

        // and trim left/right whitespace while we're at it
        cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

        // if the extracted name matches passed check_name
        if (cookie_name == check_name) {
            b_cookie_found = true;
            // we need to handle case where cookie has no value but exists (no = sign, that is):
            if (a_temp_cookie.length > 1) {
                cookie_value = unescape(a_temp_cookie[1].replace(/^\s+|\s+$/g, ''));
            }
            // note that in cases where cookie is initialized but no value, null is returned
            return cookie_value;
            break;
        }
        a_temp_cookie = null;
        cookie_name = '';
    }
    if (!b_cookie_found) {
        return null;
    }
}

function $c(name, value, expires, path, domain, secure) {
    if (name && value) return new cookies().set(name, value, expires, path, domain, secure);
    else if (name) return new cookies().get(name);
    else return null;    
}
// ContentGator File: scripts/utility/utcoffset.js
/* Requires Cookies.js */
jQuery(document).ready(function() {
    if (!$c('UtcOffset')) {
        var d = new Date();
        var expires = new Date();
        expires.setFullYear(expires.getFullYear() + 10);
        $c('UtcOffset', d.getTimezoneOffset(), expires.toDateString(), '/', '.dandoes.net');
    }
});
// ContentGator File: scripts/menu.js
$(function() {
    // submenus
    $('ul#menu li')
        .mouseover(menuMouseover)
        .mouseout(menuMouseout);

    $('ul.submenu')
        .mouseover(menuMouseover)
        .mousemove(menuMousemove)
        .mouseout(menuMouseout);
});

var openMenu = null;
var submenuTimeout = null;

function menuMouseover(e) {
    var target = $(e.target).parents('li:first');
    var parent = target.parents('ul:first');
    var menu = null;
    var submenu = null;

    if (parent.hasClass('submenu')) {
        menu = parent.parent('li');
        submenu = parent;
    }
    else {
        menu = target;
        submenu = target.children('ul#' + target.attr('id') + '-submenu');
    }

    if (openMenu && openMenu.parent('li').attr('id') != menu.attr('id')) {
        closeOpenMenu(false);
    }

    if (submenuTimeout) {
        window.clearTimeout(submenuTimeout);
        submenuTimeout = null;
    }

    if (!parent.hasClass('submenu') && submenu) {
        openMenu = submenu;
        submenu.slideDown('fast');
    }
    return false;
}

function menuMouseout(e) {
    if (submenuTimeout) {
        window.clearTimeout(submenuTimeout);
        submenuTimeout = null;
    }
    submenuTimeout = window.setTimeout('closeOpenMenu()', 250);
}

function menuMousemove(e) {
    if (submenuTimeout) {
        window.clearTimeout(submenuTimeout);
        submenuTimeout = null;
    }
}

function closeOpenMenu(fromTimeout) {
    if (openMenu) {
        openMenu.slideUp('fast');
        openMenu = null;
    }
}

