// JavaScript Document

// host and directory where is logging script
var log_host = 'www.ataxo.cz/statlog';
get_stat('www.ataxo.pl');

// add 0 if num has just one digit
function format_num(num)
{
	if (num<10)
	{
		num_str = '0'+num.toString();
	}
	else num_str = num.toString();
	
	return num_str;
}

// generate id in format YYYY/MM/DD-HH:MM:SS-<32 chars>
function generate_id(date, num)
{
	var allowed_chars = "23456789zxcvbnmkjhgfdsaqwertyup";
	var id = "";
	var datestr	= date.getFullYear()+'/'+format_num(date.getMonth()+1)+'/'+format_num(date.getDate())+'-'+format_num(date.getHours())+':'+format_num(date.getMinutes())+':'+format_num(date.getSeconds());

	for (i=0; i<=num; i++)
	{
		id += allowed_chars.charAt(parseInt(Math.random()*allowed_chars.length));
	}
	return datestr+'-'+id;
}

// generate and insert log image in page HTML by accaunt_id
function get_stat(accaunt_id)
{
	var param	= 'js'; // is JS

	var md		= document;
	var mrn		= Math.random();
	var s		   = screen;
	var sinfo	= '&hash='+encodeURIComponent(md.location.hash)+'&res_x='+s.width+'&res_y='+s.height+'&view_x='+(top.innerWidth ? top.innerWidth : top.document.body.clientWidth)+'&view_y='+(top.innerHeight ? top.innerHeight : top.document.body.clientHeight);
	
	var date	= new Date ( );
	var host	= md.location.hostname;
    var domain2ndRowArray = host.split('.');
    var domain2ndRow = domain2ndRowArray[domain2ndRowArray.length-2]+'.'+domain2ndRowArray[domain2ndRowArray.length-1];
	var request	= encodeURIComponent(md.location.pathname+md.location.search);
	var referrer = encodeURIComponent(md.referrer);
	var https = md.location.protocol=='https' ? 1 : 0;
	
	var cookie_content = md.cookie;

	// cookies
	var log_uniq_id_cookie = 0;
	var log_uniq_id_session = 0;
        
	md.cookie = "c=c; expires=0; path=/";
	if ( md.cookie ) // can set cookie
	{
		// read cookies	
		cookies = cookie_content.split('; '); //document.cookie.split('; ');
		
		for (var i = 0; i < cookies.length; i++)
		{
			// LOG_UNIQ_ID_COOKIE
			if (cookies[i].substr(0,18) == 'LOG_UNIQ_ID_COOKIE')
			{
				cookie_info = cookies[i].split('=');
				log_uniq_id_cookie = cookie_info[1];
			}
			// LOG_UNIQ_ID_SESSION
			if (cookies[i].substr(0,19) == 'LOG_UNIQ_ID_SESSION')
			{
				cookie_info = cookies[i].split('=');
				log_uniq_id_session = cookie_info[1];
			}
		}
	
		
		
		// set LOG_UNIQ_ID_SESSION cookie
		if (log_uniq_id_session == 0)
		{
			log_uniq_id_session = generate_id(date, 32);
			md.cookie = "LOG_UNIQ_ID_SESSION="+log_uniq_id_session+"; expires=0; path=/";
		}
		
		// set LOG_UNIQ_ID_COOKIE cookie
        if (log_uniq_id_cookie == 0)
        {
          var expDate = new Date();
          expDate.setDate(expDate.getDate()+3650);
          log_uniq_id_cookie = generate_id(date, 32);
          md.cookie = "LOG_UNIQ_ID_COOKIE="+log_uniq_id_cookie+"; expires="+ expDate.toGMTString() +"; path=/; domain="+domain2ndRow;
        }		
	}
	else
	{
		// can't set cookie	
		log_uniq_id_cookie = '';
		log_uniq_id_session = '';
	}


	var js_vars	= '&host='+host+'&request='+request+'&referrer='+referrer+'&https='+https+'&accaunt_id='+accaunt_id+'&log_uniq_id_cookie='+log_uniq_id_cookie+'&log_uniq_id_session='+log_uniq_id_session;
	var src     = 'http://'+log_host+'/stat.php?p='+ param + sinfo + js_vars + '&time=' + mrn;

	try
	{     
		var I = new Image(1,1);
		I.src = src;
	}
	catch (er)
	{  
		var Img = document.createElement('img');	
		Img.src = src;
		Img.width = '0';
		Img.height = '0';
	
		var els = document.getElementsByTagName('*');
		var lastEl = els[els.length-1];
		lastEl.parentNode.insertBefore(Img, lastEl);
	};
}
