//--- Sygnatura pliku ---------------------------------------------------------------
// $Id: cookies.js,v 1.5 2002/08/01 08:44:05 fwo Exp $
// Copyright  : Internet Designers SA
// Projekt    : Content Management
// Autor      : fwo
// Utworzenie : 2001.03.19
// Opis		  :	Biblioteka funkcji do obsługi COOKIE z poziomu JavaScriptu
//
// Dziennik Zmian '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
//
//-----------------------------------------------------------------------------------

//-----------------------------------------------------------------------------------
// Stale
//-----------------------------------------------------------------------------------

DEFAULT_MULTI_COOKIE_SEPARATOR = "#";


//-----------------------------------------------------------------------------------
// Funkcja		: getCookie(name)
// Autor		  : fwo
// Opis			  : Funkcja zwraca warto¶ć cookie o zadanej nazwie.
// Parametry	: name - nazwa cookie, którego warto¶ć ma być zwrócona
// Wyjście		: warto¶ć cookie lub null, kiedy cookie o podanej nazwie 
//							nie zostało znalezione.
//-----------------------------------------------------------------------------------
function getCookie(name) {
	var arg		= name + '=';
	var alen	= arg.length;
	var	clen	=	document.cookie.length;
	var i = 0;
	while (i<clen) {
		var j = i + alen;
		if (document.cookie.substring(i,j)==arg) return getCookieVal(j);
		i = document.cookie.indexOf(" ",i) + 1;
		if (i==0) break;
		};
	return null;
};

//-----------------------------------------------------------------------------------
// Funkcja		: setCookie(name,value)
// Autor		  : fwo
// Opis			  : Funkcja ustawiająca wartość w cookie.
// Parametry	: name  - nazwa cookie, którego warto¶ć ma być zwrócona
//						: value - ustawiana wartosc
// Wyjście		: warto¶ć cookie lub null, kiedy cookie o podanej nazwie 
//							nie zostało znalezione.
//-----------------------------------------------------------------------------------
function setCookie(name,value) 
{
	document.cookie = name + "=" + value;
};

//-----------------------------------------------------------------------------------
// Funkcja		: setCookieParam(cookieName, paramName, value)
// Autor		  : fwo
// Opis			  : Funkcja ustawiająca wartość w cookie.
// Parametry	: name  - nazwa cookie, którego warto¶ć ma być zwrócona
//						: value - ustawiana wartosc
// Wyjście		: warto¶ć cookie lub null, kiedy cookie o podanej nazwie 
//							nie zostało znalezione.
//-----------------------------------------------------------------------------------
function setCookieParam(cookieName, paramName, value)
{
	var s = getCookie(cookieName);
	if (s!=null)
	{
		var i = s.indexOf(DEFAULT_MULTI_COOKIE_SEPARATOR + paramName + DEFAULT_MULTI_COOKIE_SEPARATOR);
		if (i!=-1)
		{
			var j = s.indexOf(DEFAULT_MULTI_COOKIE_SEPARATOR,i + paramName.length+2);
			if (j==-1) j=s.length;
			//if (i>0) i--;
			s = s.substr(0,i) + s.substr(j,s.length);
		}
	}
	else
	{
		s = "";
	}
	if (value!=null)
	{
		s += DEFAULT_MULTI_COOKIE_SEPARATOR + paramName + DEFAULT_MULTI_COOKIE_SEPARATOR + value;
	}

	setCookie(cookieName,s);
}

//-----------------------------------------------------------------------------------
// Funkcja		: getCookieParam(cookieName, paramName, defaultValue)
// Autor		  : fwo
// Opis			  : Funkcja ustawiająca wartość w cookie.
//-----------------------------------------------------------------------------------
function getCookieParam(cookieName, paramName, defaultValue)
{
	var s = getCookie(cookieName);
	if (s!=null)
	{
		var i = s.indexOf(DEFAULT_MULTI_COOKIE_SEPARATOR + paramName + DEFAULT_MULTI_COOKIE_SEPARATOR);
		if (i!=-1)
		{
			var j = s.indexOf(DEFAULT_MULTI_COOKIE_SEPARATOR,i + paramName.length+2);
			if (j==-1) j=s.length;
			i += paramName.length+2
			return s.substr(i, j-i);
		}
		return defaultValue;
	}
	else
	{
		return defaultValue;
	}
}

//-----------------------------------------------------------------------------------
// Funkcja		: getCookieVal(offset)
// Autor		  : fwo
// Opis			  : Funkcja pomocnicza. Wywoływana z poziomu funkcji getCookie.
//-----------------------------------------------------------------------------------
function getCookieVal(offset) {
	var endstr = document.cookie.indexOf(";", offset);
	if (endstr==-1) endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset,endstr));
};

