
var ENABLED_COOKIE = true;
var COOKIE_EXPIRE_DATE = null;

function SetCookieExpireDate(dt) {
    /*
    IE 5 mac not supported
    if (!(dt instanceof Date)) {
        dt = null;
    }
    */
    /*
    if (!dt.getFullYear) {
        return false;
    }
    */
    COOKIE_EXPIRE_DATE = dt;
    return true;
}

function getCookieVal(offset){
    if (ENABLED_COOKIE != true) {
        return null;
    }
	var end = document.cookie.indexOf (';', offset);
	if (end == -1){end = document.cookie.length;}
	return unescape(document.cookie.substring(offset, end));
}

function GetCookie(name) {
    if (ENABLED_COOKIE != true) {
        return null;
    }
	var arg = name + '=';
	var argSize = arg.length;
	var cookieSize = document.cookie.length;
	var i = 0;
	while (i < cookieSize) {
		var j = i + argSize;
		if (document.cookie.substring(i, j) == arg){return getCookieVal (j);}
		i = document.cookie.indexOf(' ', i) +1;
		if (i == 0){break;}
	}
	return null;
}

function SetCookie(name, value){
    if (ENABLED_COOKIE != true) {
        return null;
    }
	var argv = null;
	var argc = null;
	if (arguments) {
		argv = arguments;
		argc = arguments.length;
	} else {
		argv = SetCookie.arguments;
		argc = SetCookie.arguments.length;
	}
    
	var expires	= (argc > 2)? argv[2]: null;
	var path	= (argc > 3)? argv[3]: null;
	var domain	= (argc > 4)? argv[4]: null;
	var secure	= (argc > 5)? argv[5]: false;
	
    if ( (expires == null)
            && (COOKIE_EXPIRE_DATE != null)) {
        expires = COOKIE_EXPIRE_DATE;
    }
    
	document.cookie =
		name + '=' + escape (value) +
		((expires == null)? 	'': ('; expires=' + expires.toGMTString())) +
		((path == null)? 	'': ('; path=' + path)) +
		((domain == null)? 	'': ('; domain=' + domain)) +
		((secure == false)? 	'': '; secure');
}

function RemoveCookie(name){
    if (ENABLED_COOKIE != true) {
        return null;
    }
	var exp = new Date();
	exp.setTime (exp.getTime() - 1);
	var cval = GetCookie(name);
	document.cookie = name+'='+cval+'; expires='+exp.toGMTString();
}

