
function CookieManager() {}

CookieManager.setCookie = function (name, value, days, domain, path) {
    var expires;
    var cDomain;
    var cPath;

    if (days) {
        var date = new Date ();
        date.setTime (date.getTime () + (days * 24 * 60 * 60 * 1000));
        expires = '; expires=' + date.toGMTString ();
    }
    else {
        expires = '';
    }

    if (domain) {
        cDomain = '; domain=' + domain;
    } else {
        cDomain = '';
    }

    if (path) {
        cPath = '; path=' + (path.search(/\//) == 0 ? path : '/' + path);
    } else {
        cPath = '; path=/';
    }

    document.cookie = name + '=' + value + expires + cDomain + cPath;
}

CookieManager.getCookie = function (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;
}

CookieManager.getCookies = function () {
	var result = [];

	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);
        }

		var name = c.substring(0, c.indexOf('='));
		var value = c.substring(c.indexOf('='), c.length);

		result.push({name:name, value:value});
    }

    return result;
}

CookieManager.clearCookie = function (name) {
    CookieManager.setCookie (name, '', -1);
}

CookieManager.clearCookies = function () {
	var cookies = CookieManager.getCookies();

	for ( var i = 0 ; i < cookies.length ; i++ ) {
		CookieManager.setCookie (cookies[i].name, '', -1);
	}
}
