var _mfdoc = window.document, _mfloc = window.location; 
var _mfdom = _mfDomain();
var _mfgifurl = "";

function trackPage(pana)
{
	// no local tracking
	if (_mfloc.protocol == "file:") return;
	
	// tracking parameters
	var _trpa = "";
	var _pana, _coac, _fipa, _seid, _ref;
	
	// pagename (from page name or automatic form URL)
	_pana =  _mfloc.pathname + _mfloc.search;
	if (pana && pana != "") {
		if (pana.substr(0,1) != '/') { _pana = '/' + pana; }
		else { _pana = pana; }
	}
	_trpa += 'pana=' + _mfEnc(_pana);
	
	// time now and last page visit 
	var _daob = new Date(); 
	var _tino = parseInt(_daob.getTime());
	var _lapavi = parseInt(_mfGetCookie("_mf_lapavi"));
	_mfSetCookie("_mf_lapavi",_tino,0,'/',_mfdom[1]);
	_trpa += '&acs=' + _tino;
	
	// cookies accepted? first page of visit? session id ...
	if (_mfGetCookie("_mf_lapavi")) {
		if ( _lapavi > 0 && _tino - _lapavi < 1800000 ) {
			_fipa = 0;
		} else {
			_fipa = 1;
			_mfSetCookie("_mf_seid",_mfMakeSeid(_tino),0,'/',_mfdom[1]);
		}
		_coac = 1;
		_seid = _mfGetCookie("_mf_seid");
	} else {
		_coac = 0;
	}
	_trpa += '&coac=' + _coac + '&fipa=' + _fipa + '&seid=' + _seid;
	
	// referrer and own domain
	_ref = _mfdoc.referrer;
	_trpa += '&ref=' + _mfEnc(_ref) + '&dom=' + _mfEnc(_mfdom[0]);

	// call tracking gif
	var i = new Image(1,1);
	i.src = _mfgifurl + '?' + _trpa; //document.write(i.src);
	i.onload = function() { _mfVoid(); }

}



/*** FUNCTIONS *******/

function _mfDomain() {
	var thost = _mfloc.host;
	if (thost.match(/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/g)) {
		var result = new Array(thost,thost);
	} else {
		var parts = thost.split(".");
		var domain = parts[parts.length-2] + "." + parts[parts.length-1];
		var result = new Array(domain,"." + domain);
	}
	return result;
}

function _mfEnc(s)
{
	if (typeof(encodeURIComponent) == 'function') {
		return encodeURIComponent(s);
	} else {
		return escape(s);
	}
}

function _mfMakeSeid(ts)
{
	var symbols = '0123456789abcdefgihjklmnopqrstuvwxyz';
	var base = 36;
	ts = 1000 * ts + Math.round(Math.random() * 999);
	for ( var n = parseInt(ts) || 0, result = ""; n; result = symbols.charAt( n % base ) + result, n = Math.floor( n / base ) );
	return 'c_' + result;
}

function _mfVoid() { return; }



/*** COOKIE FUNCTIONS *******/

function _mfGetCookie(name)
{
	var start = document.cookie.indexOf(name+"=");
	var len = start+name.length+1;
	if ((!start) && (name != document.cookie.substring(0,name.length))) return "";
	if (start == -1) return "";
	var end = document.cookie.indexOf(";",len);
	if (end == -1) end = document.cookie.length;
	return unescape(document.cookie.substring(len,end));
}

function _mfSetCookie(name,value,expires,path,domain,secure)
{
	var cookieString = name + "=" +escape(value) +
		( (expires) ? ";expires=" + expires.toGMTString() : "") +
		( (path) ? ";path=" + path : "") +
		( (domain) ? ";domain=" + domain : "") +
		( (secure) ? ";secure" : "");
	document.cookie = cookieString;
}
