//Версия js 1.0 от 2.12.2005

var MAX_VISIT = 100 * 500; //считаем мощность 10 000 в сутки и вероятность в 1%

//Глобальные переменные
var d=document;
var l=window.self.location;
var date = new Date();
var i=new Image(1,1);

//Константы - параметры js скрипта

//запрашиваемый скрипт на сервере
//var image_path="http://localhost/js_tracking/image.php";
var image_path="http://www.fgroupsoft.com/shareware/tracking/image.php";

//Переменные, которые мы можем получить с клиентской машины:
var
	refer, //рефер, доступный из брайзера
	url_path, //запрашиваемый документ
	protocol, //протокол - что это такое?
	port, //Порт запроса
	host, //хост 
	sr, //разрешение экрана
	sc, //глубина цвета
	wi, //WebID пользователя
	new_wi; //новый ли WebID пользователя

// --- Работа скрипта --- 
//Инициализация всех данных
InitParams();

//Создание запроса
//Отсылка запроса на сервер
SendAllDataToServer();
// --- Конец работы скрипта - служебные функции ---

//Генерации нового WebID	
function GenerateNewWebID()
{
	vr=new Date(); 
	year = vr.getYear();
	if (year >= 2000) year -= 2000;
	ID_str = year * 12 * 31 * 24 + vr.getMonth() * 31 * 24 + vr.getDate() * 24 + vr.getHours(); 

	ID = ID_str * MAX_VISIT + Math.round(Math.random() * MAX_VISIT);

	return ID;
};

//инициализация всех параметров
function InitParams() {

	refer=d.referrer;
	url_path=d.URL;
	protocol=l.protocol;
	port=document.links.port;
	host=l.host; 
	if (host.indexOf('www.') == 0)
		host = host.substring(4);

	if (self.screen) {
		sr=screen.width+"x"+screen.height;
		sc=screen.colorDepth+"-bit";
	}
	else
		if (self.java) {
			var j=java.awt.Toolkit.getDefaultToolkit();
			var s=j.getScreenSize();
			sr=s.width+"x"+s.height;
	//!!!А что тут делать с sc - он ничего не будет равен?
		}
	wi=get_cookie('WebID');

	if(!wi) {
		wi = GenerateNewWebID();
		new_wi = 1;//Значит сгенерирован новый WebID

		//пытаемся установить эту куку
		pathname = location.pathname;
		myDomain = pathname.substring(0,pathname.lastIndexOf('/')) +'/';
		var largeExpDate = new Date ();
		largeExpDate.setTime(largeExpDate.getTime() + ((5*365) * 24 * 3600 * 1000));

		set_cookie('WebID', wi, largeExpDate, '/', host);
	}
	else
		new_wi= 0;//значит что WebID был извелчен из куки.	
}

//Отсылка всех данных на сервер
function SendAllDataToServer()
{
	i.src=image_path+"?"
		+"resolution="+sr
		+"|||color_depth="+sc
		+"|||refer="+refer
		+"|||url_path="+url_path
		+"|||wi="+wi
		+"|||new_wi="+new_wi
		+"|||protocol="+protocol
		+"|||port="+port
		+"|||host="+host;
//alert(i.src);
}

//Установка cookie
// name - name of the cookie
// [path] - path of the cookie (must be same as path used to create cookie)
// [domain] - domain of the cookie (must be same as domain used to create cookie)
// * path and domain default if assigned null or omitted if no explicit argument proceeds

function set_cookie (name, value) {
		var argv = set_cookie.arguments;
		var argc = set_cookie.arguments.length;
		var expires = (argc > 2) ? argv[2] : null;
		var path = (argc > 3) ? argv[3] : null;
		var domain = (argc > 4) ? argv[4] : null;
		var secure = (argc > 5) ? argv[5] : false;
		document.cookie = name + "=" + escape (value) +
				((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
				((path == null) ? "" : ("; path=" + path)) +
				((domain == null) ? "" : ("; domain=" + domain)) +
				((secure == true) ? "; secure" : "");
}

//получение информации из Куки.
function get_cookie(name) {
		var prefix = name + "="
		var cookieStartIndex = document.cookie.indexOf(prefix)
		if (cookieStartIndex == -1)
				return null
		var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length)
		if (cookieEndIndex == -1)
				cookieEndIndex = document.cookie.length
		return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex))
}
