//--- Sygnatura pliku ---------------------------------------------------------------
// $Id: cookies.js,v 1.2 2006-09-14 09:07:39 pch 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));
};


//-----------------------------------------------------------------------------------
// Funkcja		: ileDni(data_do)
// Autor		: pch
// Opis			: Funkcja pomocnicza. Zwraca GMTString dla daty podanej w parametrze.
//-----------------------------------------------------------------------------------

function ileDni(data_do)
{
	date_to = new Date(data_do.substring(0,4), Number(data_do.substring(5,7))-1, data_do.substring(8,10));

	Teraz=new Date(); 
	
	Teraz.setTime(Termin = date_to.getTime()); 
	Termin= (Teraz.toGMTString()); 

	return Termin;
}

//-----------------------------------------------------------------------------------
// Funkcja		: ileDniJawnie(ile)
// Autor		: pch
// Opis			: Funkcja pomocnicza. Zwraca GMTString dla podanej ilosci dni.
//-----------------------------------------------------------------------------------
function ileDniJawnie(ile)
{
	Teraz=new Date(); 
	Teraz.setTime(Termin = (ile*24*60*60*1000) + Teraz.getTime()); 
	Termin= (Teraz.toGMTString()); 

	return Termin;
}

//-----------------------------------------------------------------------------------
// Funkcja		: setCookieTime(name, value, expiryTime) 
// Autor		: pch
// Opis			: Funkcja ustawia cookie z podana wartoscia wazne do okreslonej daty.
//              : Data musi byc podana w formacie GMTString
//-----------------------------------------------------------------------------------
function setCookieTime(name, value, expiryTime) 
{
	document.cookie = name + "=" + value + "; expires=" + expiryTime;
};

//-----------------------------------------------------------------------------------
// Alternatywne funkcje do obslugi cookies.
//-----------------------------------------------------------------------------------

function createCookie(name,value,days,cpath)
{
	if (days>0)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";

	document.cookie = name+"="+value+expires+"; path=/";
	if (cpath != '')
		document.cookie = name+"="+value+expires+"; path=" + cpath;
}

function readCookie(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;
}

function eraseCookie(name,cpath)
{
	createCookie(name,"",-1,cpath);
}

function setLang(langName,href, cpath)
{
	eraseCookie('LANG',cpath);
	createCookie('LANG',langName,0, cpath);
	if (href!='')
		window.location.href=href;
	else
		window.location.reload(1);	
}

function toggleLangFrom(langName,href,cpath)
{
	eraseCookie('LANG',cpath);
	if (langName=='pl') 
		langName='en' 
	else 
		langName='pl'; 
	createCookie('LANG',langName,0,cpath);
	if (href!='')
		window.location.href=href;
	else
		window.location.reload(1);	
}
