// Jacek Wiślicki 2006-07-21 (wersja 2006-08-01)

var cookieName = 'nb_stat_session_id';

/** Wysyła na podany URL dane statystyczne. Zostawia cookie z ID sesji, zeby nie wysyłał danych 
tej samej sesji wielokrotnie. */
function sendStatData(url, sessionId, page)
{
	var cookieValue = readCookie(cookieName);

	//czas jest dadawany, zeby za kazdym razem URL byl inny (zeby przeglądarka nie cache'owała)	
	url += 
		'?' + 
		'time=' + new Date().getTime() + '&' +
		'page=' + page + '&';
	
	if(!cookieValue)
	{
		//zgłaszanie danych przeglądarki
		url += 
			'action=register&' +
			'userAgent=' + navigator.userAgent + '&' +
			'appCodeName=' + navigator.appCodeName + '&' +
			'appName=' + navigator.appName + '&' +
			'appVersion=' + navigator.appVersion + '&' +
			'appMinorVersion=' + navigator.appMinorVersion + '&' +
			'appVersion=' + navigator.appVersion + '&' +
			'platform=' + navigator.platform + '&' +
			'width=' + screen.width + '&' +
			'height=' + screen.height + '&' +
			'availWidth=' + screen.availWidth + '&' +
			'availHeight=' + screen.availHeight + '&' +
			'colorDepth=' + screen.colorDepth + '&' +
			'innerWidth=' + window.innerWidth + '&' +
			'innerHeight=' + window.innerHeight + '&' +
			'referrer=' + document.referrer;

		makeRequest(url, true, sessionId);
	}
	else
	{
		//nastąpiło odświeżenie - sygnał sprawdzenia, czy nie jest zalogowany uzytkownik
		url += 
			'action=update';
		makeRequest(url, false, sessionId);
	}
}

/** Wysyła request HTTP */
function makeRequest(url, checkResponse, sessionId)
{
    var httpRequest = false;
    
    if(window.XMLHttpRequest) // Mozilla, Safari,...
    {
    	httpRequest = new XMLHttpRequest();
        if(httpRequest.overrideMimeType)
        {
        	httpRequest.overrideMimeType('text/plain');
        }
    }
    else if(window.ActiveXObject) // IE
    {
		try
		{
			httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e) {}
        }
    }

    if(!httpRequest)
        return false;

	if(checkResponse)
	    httpRequest.onreadystatechange = function() { verifyResponse(httpRequest, sessionId); };
	    
    httpRequest.open('GET', url, true);
    httpRequest.send(null);
}

/** sprawdza odpowiedź i ustawia cookie, że sesja jest zarejestrowana*/
function verifyResponse(httpRequest, sessionId)
{
	try
	{
	    if(httpRequest.readyState == 4)
	    {
	        if(httpRequest.status == 200)
	        {
	        	if(httpRequest.responseText == "OK")
					setCookie(cookieName, sessionId, null);
			}
	    }
	}
	catch(e)
	{
		//alert(e);
	}
}
