//********************
// Stats Constructor *
//********************
function Stats(key)
{
	// get some vars
	this.doc		= document;
	this.statUrl	= 'stats.php';
	this.statKey	= key;
	
	// save in database
	this.save();
}

//***************************
// Function save statistics *
//***************************
Stats.prototype.save = function()
{
	// get values for parameters
	var ref					= this.returnReferer();
	var loc					= this.returnLocation();
	var screen				= this.returnScreenProperties();
	var colorDepth			= this.returnScreenColorDepth();
	var language			= this.returnLanguage();
	var browserAppName		= this.returnBrowserAppName();
	var browserUserAgent	= this.returnUserAgent();
	var operatingSystem		= this.returnOperatingSystem();
	
	var params = 'k=' + this.statKey + '&ref=' + escape(ref) + '&colorDepth=' + escape(colorDepth) + '&jsupdate=1&language=' + escape(language) + '&operatingSystem=' + escape(operatingSystem) + '&browserUserAgent=' + escape(browserUserAgent) + '&screen=' + escape(screen);
	
	var myConn = new XHConn();
	
	if (!myConn) alert("XMLHTTP not available. Please try a newer/better browser.");
	
	// return result when done
	var fnWhenDone = function (oXML)
	{
		//alert(oXML.responseText);
	}
	
	// make the connection
	myConn.connect(this.statUrl, 'POST', params, fnWhenDone);
}

//**************************
// Function return referer *
//**************************
Stats.prototype.returnReferer = function()
{
	if (this.doc.referrer) output = this.doc.referrer;
	else output = null;
	return output;
}

//***************************
// Function return location *
//***************************
Stats.prototype.returnLocation = function()
{
	if (this.doc.location) output = this.doc.location;
	else output = null;
	return output;
}

//************************************
// Function return screen properties *
//************************************
Stats.prototype.returnScreenProperties = function()
{
	if (window.screen){
		output = window.screen.width + ',' + window.screen.height;
	}
	else {
		output = null;
	}
	return output;
}

//*************************************
// Function return screen color depth *
//*************************************
Stats.prototype.returnScreenColorDepth = function()
{
	if (window.screen){
		output = window.screen.colorDepth;
	}
	else {
		output = null;
	}
	return output;
}

//************************************
// Function return browser app. name *
//************************************
Stats.prototype.returnBrowserAppName = function()
{
	output = null;
	if (navigator){
		if (navigator.appName) output = navigator.appName;
	}
	return output;
}

//*****************************************
// Function return browser app. code name *
//*****************************************
Stats.prototype.returnBrowserAppCodeName = function()
{
	output = null;
	if (navigator){
		if (navigator.appCodeName) output = navigator.appCodeName;
	}
	return output;
}

//*****************************
// Function return user agent *
//*****************************
Stats.prototype.returnUserAgent = function()
{
	output = null;
	if (navigator){
		if (navigator.userAgent) output = navigator.userAgent;
	}
	return output;
}

//***********************************
// Function return operating system *
//***********************************
Stats.prototype.returnOperatingSystem = function()
{
	output = null;
	if (navigator){
		if (navigator.platform) output = navigator.platform;
	}
	return output;
}

//***************************
// Function return language *
//***************************
Stats.prototype.returnLanguage = function()
{
	output = null;
	if (navigator.language) output = navigator.language;
	if (navigator.browserLanguage) output = navigator.browserLanguage;
	if (navigator.userLanguage) output = navigator.userLanguage;
	return output;
}