window.onunload = setSpy;

var timerID = null;
var timerRunning = false;

function stopclock() 
{
	if (timerRunning) clearTimeout (timerID);
	timerRunning = false;
}

function startclock() 
{
	stopclock();
	changespyid();
}

function changespyid() 
{
	timerID = setTimeout ("startclock()", 30000);
	timerRunning = true;
	setSpy();
}

startclock();

function getURLparts(sURL)
{
	if (sURL.indexOf('?') > 0)
	{
		sURL = sURL.substr(0, sURL.indexOf('?'))
	}
	var re = /(^\w*:\/\/)?([\w.\-]+)?(:\d+)?([\w\-\/]*\/)?([\w.\-]+)?/
	am = sURL.match(re)
	if (am == null)
		am = new Array(5)
	return am
}

function getSpyFName(sURL)
{
	var am = new Array(5);
	var sFName;
	
	if (sURL == null)
		sURL = document.URL.toString();
		
	am = getURLparts(sURL);



	sFName = am[5];
	
	if ( sFName == null || sFName == "")
		sFName = "index.htm";
	if (am[4] == "/") am[4] = "";
	sFName = am[4] + sFName;
	return sFName;
}

function setSpy () {

	var nocache = new Date().toString();
	spath = getSpyFName();
	var ref = "";
	var refTemp = GetParamByName("referrer");
    
	if (refTemp) {
		ref = refTemp;
	} else {
		ref = document.referrer.toString();
	}	

	if ((ref == "") || (ref == null) || (ref == "undefined")) {
		if (document.opener) {
			ref = window.opener.document.URL.toString () ;
		}
		else {
			ref = "unknown" ;
		}
	}

	if (ref.length < 7) ref = "unknown" ;
	var sScreen = screen.width.toString () + "x" + screen.height.toString() ;
	ref = escape(ref);

	if (document.images ["spy"]) {		
		document.images ["spy"].src = "http://stats.epam.com/spy.aspx?screen=" + sScreen + "&sref=" + ref + "&spath=" + spath + "&date=" + nocache  + "&sCode=" + top.stats;
	}
}

function GetParamByName(name) {
    var tmp = new Array();     
    var tmp2 = new Array();
       
    var get = location.search;
   
    if(get != '') {   
       tmp = (get.substr(1)).split('&');
       
       for(var i=0; i < tmp.length; i++) {   
           tmp2 = tmp[i].split('=');
            
           if (name == tmp2[0]) 
               return tmp2[1]; 
       }
    }      
}
