
function browserDetect() {
// browsers data array
dataBrowser = new Array;
dataBrowser[0] = new Object;
dataBrowser[0].string=navigator.userAgent;
dataBrowser[0].subString="OmniWeb";
dataBrowser[0].versionSearch="OmniWeb/";
dataBrowser[0].identity="OmniWeb";
dataBrowser[1] = new Object;
dataBrowser[1].string=navigator.vendor;
dataBrowser[1].subString="Apple";
dataBrowser[1].identity="Safari";
dataBrowser[2] = new Object;
dataBrowser[2].prop=window.opera
dataBrowser[2].identity="Opera";
dataBrowser[3] = new Object;
dataBrowser[3].string=navigator.vendor;
dataBrowser[3].subString="iCab";
dataBrowser[3].identity="iCab";
dataBrowser[4] = new Object;
dataBrowser[4].string=navigator.vendor;
dataBrowser[4].subString="KDE";
dataBrowser[4].identity="Konqueror";
dataBrowser[5] = new Object;
dataBrowser[5].string=navigator.userAgent;
dataBrowser[5].subString="Firefox";
dataBrowser[5].identity="Firefox";
dataBrowser[6] = new Object;
dataBrowser[6].string=navigator.vendor;
dataBrowser[6].subString= "Camino";
dataBrowser[6].identity="Camino";
dataBrowser[7] = new Object;
dataBrowser[7].string=navigator.userAgent;
dataBrowser[7].subString="Netscape";
dataBrowser[7].identity="Netscape";
dataBrowser[8] = new Object;
dataBrowser[8].string=navigator.userAgent;
dataBrowser[8].subString="MSIE";
dataBrowser[8].identity= "Explorer";
dataBrowser[8].versionSearch="MSIE";
dataBrowser[9] = new Object;
dataBrowser[9].string=navigator.userAgent;
dataBrowser[9].subString="Gecko";
dataBrowser[9].identity="Mozilla";
dataBrowser[9].versionSearch="rv";
dataBrowser[10] = new Object;
dataBrowser[10].string=navigator.userAgent;
dataBrowser[10].subString="Mozilla";
dataBrowser[10].identity="Netscape";
dataBrowser[10].versionSearch="Mozilla";

dataOS = new Array;
dataOS[0] = new Object;
dataOS[0].string=navigator.platform;
dataOS[0].subString="Win";
dataOS[0].identity="Windows";
dataOS[1] = new Object;
dataOS[1].string=navigator.platform;
dataOS[1].subString="Mac";
dataOS[1].identity="Mac";
dataOS[2] = new Object;
dataOS[2].string=navigator.platform;
dataOS[2].subString="Linux";
dataOS[2].identity="Linux";

var client = Object();
var data = searchString(dataBrowser) || "unknown";
client.browser = data.identity

client.version = searchVersion(navigator.userAgent, data.versionSearchString) || searchVersion(navigator.appVersion, data.versionSearchString)	|| "unknown";

var moreData = searchString(dataOS) || "unknown";
client.OS = moreData.identity;

return client;
}

function searchString(data) {
for (var i=0;i<data.length;i++)
 {  
   var dataString = data[i].string;
   var dataProp = data[i].prop;
   data[i].versionSearchString = data[i].versionSearch || data[i].identity;

   if (dataString)
    {
     if(dataString.indexOf(data[i].subString) != -1) return data[i];
	}
   else if(dataProp) return data[i];
 }
}

function searchVersion(dataString, versionSearchString) {
var index = dataString.indexOf(versionSearchString);
if (index == -1) return;
return parseFloat(dataString.substring(index+versionSearchString.length+1));
}
function clientTime() {
var t = new Object;	
// find client unix time
var thisdate = new Date();
t.time = (Math.round(parseInt(thisdate.getTime())/1000)); // mS to seconds

// find gmt offset
var newDate = new Date();
t.gmt = parseInt(newDate.getTimezoneOffset())/60; // mins to hours

return t;
}
function createCookie(name,value,days) {
	if (days) {
		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=/";
}

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 false;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function logVisitor() {
// check if already created cookie
if(readCookie('js')!=false) { return false; }

// find screen size
var Screen = 'unknown';
if(screen)
 {    
   if(screen.width && screen.height)
	{			
	  Screen = screen.width+'x'+screen.height;
    }
 }

// find browser info
var c = browserDetect();

// find times
var t = clientTime();

// set session cookie
var value = t.time+'&'+t.gmt+'&'+Screen+'&'+c.OS+'&'+c.browser+'&'+c.version;
createCookie('js',value,0); // in cookies.js
}

if (window.addEventListener) { window.addEventListener('load', logVisitor, false); } // moz
else if (window.attachEvent) { window.attachEvent('onload', logVisitor); } // ie
