var vihtori_conversion_test=false;
VihtoriDataCollector = function() 
{
    var referrer_url = '';
	var referrer_hostname = '';
	var referrer_params = '';
	var advertisement_id = '';

    try
    {
      	if(top && top.document && top.location)
      	{
      		treferrer=top.document.referrer;
      		thostnane=top.location.hostname;
      		tpathname=top.location.pathname;
      		tsearch=top.location.search;
      	}
      	else if(parent && parent.document && parent.location)
      	{
      		treferrer=parent.document.referrer;
          	thostnane=parent.location.hostname;
          	tpathname=parent.location.pathname;
          	tsearch=parent.location.search;
      	}
      	else
      	{
      		treferrer=document.referrer;
      		thostnane=location.hostname;
      		tpathname=location.pathname;
      		tsearch=location.search;
      	}
    }
    catch(err)
    {
        treferrer=document.referrer;
        thostnane=location.hostname;
        tpathname=location.pathname;
        tsearch=location.search; 
    }
    
	if (treferrer)
	{
		var referrerMatchArray = treferrer.toLowerCase().match( "^[^:]+[:/]+([^@]+@)?([^:/?]+)[:/]?" );
		referrer_hostname = referrerMatchArray[2];
		var refsplit = treferrer.split('?');
		referrer_params = refsplit[1] ? refsplit[1] : '';
		referrer_url = refsplit[0];
	}

	var first_track=false;
	var first_session=false;
	var track_id = getValue(document.cookie,"v_tid","; ");
	var session_cookie = getValue(document.cookie, "v_sid", "; ");
    var session_id="";
	var lastsessiontime=0;

	if(session_cookie != null && session_cookie != '')
	{
		session_id = session_cookie.split(':')[0];
		lastsessiontime = session_cookie.split(':')[1];
	}

	var date = new Date();
	if (track_id == null || track_id == '')
	{
		track_id = '4e4713181eda4b0bb501a76a3edd5061';
		date.setTime(date.getTime()+(360*24*60*60*1000));
		document.cookie = 'v_tid='+track_id+'; expires='+ date.toGMTString() + '; path=/';
		first_track=true;
	}
	if (session_id == null || session_id == '' || (date.getTime()-lastsessiontime) > (30*60*1000))
	{
	   	session_id = '12ee558434934d079286db6faa03f433';
		first_session=true;
	}
	document.cookie = 'v_sid='+session_id+':'+date.getTime()+'; path=/';

	if(document.cookie == null || document.cookie == '')
	{
		return;
	}

	if(tsearch && tsearch.length > 1)
	{
		var qStr = location.search.substring(1, tsearch.length);
		advertisement_id = getValue(qStr,"bannerid","&");
		if(advertisement_id==null || advertisement_id == "")
		{ 
		  advertisement_id = getValue(qStr,"adwordid","&");
		}
		
		if(!advertisement_id)
		  advertisement_id='';
	}
	
	var bver="";
	if(navigator.userAgent)
	{
	   bver=navigator.userAgent;
	}
	else if(navigator.vendor)
	{
	   bver=navigator.vendor;
	}
	else if(window.opera)
	{
	   bver="Opera";
	}
	else if(navigator.appVersion)
	{
	   bver=navigator.appVersion;
	}
	
	v_shownc = window.v_shownc ? window.v_shownc : "";
	v_conc = window.v_conc ? window.v_conc : "";
	
	data = new Array();
	data[data.length] = ['tracking_code' , "152bd425bd8a2d46987fb7cd69d64ca3"];
	data[data.length] = ['page_id', ""];
	data[data.length] = ['track_id' , track_id];
	data[data.length] = ['session_id' , session_id];
	data[data.length] = ['first_track' , first_track];
	data[data.length] = ['first_session' , first_session];
	data[data.length] = ['advertisement_id' , advertisement_id];
	data[data.length] = ['url' , (document.URL ? document.URL.split('?')[0] : "")];
	data[data.length] = ['browser' , (navigator.appName ? navigator.appName : "")];
	data[data.length] = ['browser_version' , bver];
	data[data.length] = ['browser_lang' , (navigator.language ? navigator.language : "")];
	data[data.length] = ['platform' , (navigator.platform ? navigator.platform : "")];
	data[data.length] = ['system_lang' , (navigator.systemLanguage ? navigator.systemLanguage : "")];
	data[data.length] = ['referrer_url' , referrer_url];
	data[data.length] = ['referrer_params' , referrer_params];     
	data[data.length] = ['referrer_hostname' , referrer_hostname];
	data[data.length] = ['doc_title' , (document.title ? document.title :  "")];
	data[data.length] = ['hostname' , (location.hostname ? location.hostname : "")];
	data[data.length] = ['search' , (location.search ? location.search : "")];
	data[data.length] = ['history_length' , (history.length ? history.length : "")];
	data[data.length] = ['screen_res_x' , (screen ? (screen.width ? screen.width : "") : "")];
	data[data.length] = ['screen_res_y' , (screen ? (screen.height ? screen.height : "") : "")];
	data[data.length] = ['color_depth' , (screen.colorDepth ? screen.colorDepth : "")];
	data[data.length] = ['java_enabled' , (navigator.javaEnabled() ? 1 : 0)];
	data[data.length] = ['shown_conv' , v_shownc];
	data[data.length] = ['conv_conv' , v_conc];

	var qstr = "";
	if (data.length > 0) 
	{
		for (i = 0; i < data.length-1; i++)
		{
			qstr += data[i][0]+'='+escape(data[i][1]) + "&amp;";
		}
		qstr += data[i][0]+'='+escape(data[data.length-1][1]);
	}
	
	var trackUrl = "http://www.kavijaseuranta.fi/analysingtool/trackinfo.php?" + qstr;

	var tag1 = "<sc";
	var tag2 = "ript type=\"text/";
	var tag3 = "javascript\" src=\""+trackUrl+"\"></scri";
	var tag4 = "pt>";
	document.write(tag1 + tag2 + tag3 + tag4);
}

function getValue(str,key,dvd)
{
	keyValuePairs = str.split(dvd);
	for (var i=0; i < keyValuePairs.length; i++)
	{
		if(keyValuePairs[i].split("=")[0] == key)
		{
			return keyValuePairs[i].split("=")[1];
		}
	}
}

function vihtoriConversion(cid)
{
    if(document.cookie == null || document.cookie == '')
    {
        return true;
    }
    var track_id = getValue(document.cookie,"v_tid","; ");
    var session_cookie = getValue(document.cookie, "v_sid", "; ");
    var session_id;
    if(session_cookie != null && session_cookie != '')
    {
        session_id = session_cookie.split(':')[0];
    }
    if((!track_id) || (!session_id))
    {
        return true;
    }

    request_script = document.createElement("script");
    request_script.src = "http://www.kavijaseuranta.fi/analysingtool/conversion.php?cid="+cid+"&track_id="+track_id+"&session_id="+session_id;
    document.getElementsByTagName("head")
        [0].appendChild(request_script);
    
    var now = new Date();
    var start = now.getTime();
    var belt = 500;
    var belt_run = true;
    
    while( (!vihtori_conversion_test) && (belt_run) )
    {
        now = new Date();
        end = now.getTime();
        if(end - start > belt)
        { 
            belt_run = false;
        }
    } 
       
    return true;
}

VihtoriDataCollector();