
if (typeof document.attachEvent!='undefined') {
	window.attachEvent('onload',LoadSession);
	window.attachEvent('onunload',SaveSession);
}
else if(typeof window.addEventListener != 'undefined') {
	window.addEventListener('load',LoadSession,false);
	window.addEventListener('unload',SaveSession,false);
}
else {
	window.onload=LoadSession;
	window.onunload=SaveSession;
}

var useSession = true;
var changedSession = false;
var sessionName = 'msess';
var sessionData = new Array;

function SaveSession (e) {
	if (changedSession) {
		// zapisanie danych w ciasteczku
		if (useSession) {
			_expires = new Date(dcookielib_tomorrow);
			// alert('zapis: ' + sessionData.join('|'));
			setCookie(sessionName, sessionData.join('|'), _expires, '/');
		}
	}
	// alert('Zapisana sesja: ' + sessionData.join('|'));
}

function LoadSession (){
	// odczyt danych z ciasteczka
	retVal = getCookie(sessionName);
	// alert('odczyt: ' + retVal);
	if (retVal && retVal != '' && retVal.indexOf('|') > -1) {
		sessionData = retVal.split('|');
	}
	// alert('Odczytana sesja: ' + sessionData);
}

function PutSession(key, value){
	// nadpisanie wartości
	if ((pos = isDefinedSession(key)) > -1) {
		sessionData[pos+1] = value;
	}
	else {
		sessionData.push(key, value);
	}
	// alert('PUT sessionData:' + sessionData);
	changedSession = true;
}

function GetSession(key){
	if ((pos = isDefinedSession(key)) > -1) {
		return sessionData[pos+1];
	}
	return null;
}

function isDefinedSession(key, debug){
	// if (debug) alert ('szukam klucza: ' + key);
	// if (debug) alert ('elmentów: ' + sessionData.length);
	for (var i = 0; i < sessionData.length; i = i+2) {
		// if (debug) alert('i: ' + i);
		if (key == sessionData[i] || (debug && confirm ('dalej'))) {
			// if (debug) alert('znalezione po numerem ' + i + ', klucz: ' + sessionData[i]);
			return i;
		}
	}
	return -1;
}

