/**
 * Obiekt do zarządzania ciasteczkami.
 * 
 * Przmek Szalko (c) 2008
 */
var Cookie = new Object();

/**
 * Tworzy nowe ciasteczko.
 * 
 * @param string name - Nazwa ciasteczka.
 * @param string value - Wartość ciasteczka.
 * @param int days - Liczba dni przez jakie będzie utrzymywane ciasteczko. 
 */
Cookie.create = function(name,value,days) {
	var expires = '';
	if (days) {
		var date = new Date();
		date.setTime(date.getTime() + days*24*60*60*1000);
		var expires = '; expires=' + date.toGMTString();
	}
	document.cookie = name + '=' + value + expires + '; path=/';
}

/**
 * Pobiera wartość ciasteczka o podanej nazwie.
 * 
 * @param string name - Nazwa ciasteczka.
 */
Cookie.get = function(name) {
	var nameEQ = name + '=';
	var cookies = document.cookie.split(';');
	for(var i=0;i < cookies.length;i++) {
		var c = cookies[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;
}

/**
 * Pobiera nazwy wszystkich ustawionych ciasteczek. 
 * Opcjonalnie można pobrać jedynie ciasteczka o podanym prefiksie.
 * 
 * @param string prefix
 */
Cookie.getAll = function(prefix) {
	var cookies = document.cookie.split(';');
	var allCookieNames = new Array();
	
	for(var i=0;i < cookies.length;i++) {
		var c = cookies[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		
		var cName = c.substring(0, c.indexOf('='));
		if((prefix == undefined) || ((prefix.length > 0) && (cName.indexOf(prefix) == 0))) {
			// alert('push = ' + cName);
			allCookieNames.push(cName);	
		}
	}
	
	return allCookieNames;
}

/**
 * Usuwa podane ciasteczko.
 * @param string name - Nazwa ciasteczka do usunięcia.
 *
 */
Cookie.unset = function(name) {
	createCookie(name,"",-1);
}


