function Cookies()
{
	var arrCookies = new Array();

	this.parseCookies = parse_cookies;
	this.getCookie    = get_cookie;
	this.setCookie    = set_cookie;
	this.deleteCookie = delete_cookie;
	this.getAll       = get_all;

	/* Constructor */
	this.parseCookies();

	function parse_cookies()
	{
		try
		{
			if(document.cookie)
			{
				var arrStrCookies = document.cookie.split(';');
				var arrParamCookie;
				for(var i=0; i<arrStrCookies.length; i++)
				{
					arrParamCookie = arrStrCookies[i].trim().split('=');
					arrCookies[arrParamCookie[0]] = arrParamCookie[1];
				}
			}
		}
		catch(e)
		{
			errorHandler(e, 'Cookies.parse_cookies');
		}
	}

	function get_all()
	{
		return arrCookies;
	}

	function get_cookie(nombre)
	{
		try
		{
			var retorno = false;
			if(arrCookies[nombre]) retorno = arrCookies[nombre];
			return retorno;
		}
		catch(e)
		{
			errorHandler(e, 'Cookies.get_cookie');
		}
	}

	function set_cookie(nombre, valor, expira, dir, dominio, segura)
	{
		try
		{
			var strCookie = nombre + "=" + valor;
			if(expira && expira.toGMTString)  strCookie += ";expire=" + expira.toGMTString();
			if(dir)     strCookie += ";path="   + dir;
			if(dominio) strCookie += ";domain=" + dominio;
			if(segura)  strCookie += ";secure";

			document.cookie = strCookie;
			this.parseCookies();
		}
		catch(e)
		{
			errorHandler(e, 'Cookies.set_cookie');
		}
	}

	function delete_cookie(nombre)
	{
		this.setCookie(nombre ,'', new Date(1970,1,1));
	}
}
function errorHandler(error, funcion)
{
	//alert("ERROR \r\n"  + error + ' - ' + funcion);
	alert("ERROR \r\nNo se pudo procesar las cookies.\r\nAsegurese de tener habilitadas cookies en su navegador.");
}
