
/* AAN TE PASSEN */

var ST_startDatum = new Date(2008,11,01); // jaar,maand,dag; maanden 1=januari, 2=februari etc.
var ST_eindDatum = new Date(2008,12,15);
var ST_steekProef = 20; // 1 per hoeveel bezoekers wordt onderzocht?
var ST_paginaTekst = 'Wij zijn op dit moment bezig met een onderzoek naar het gebruik van deze site. Hiertoe zal er binnenkort een <strong>popup</strong> geopend worden.'

/* SVP NIET VERANDEREN */

/* Controleer cookie support */

var ST_cookiesSupported = false;
createCookie('ST_test','supported',1);

if (readCookie('ST_test'))
{
	ST_cookiesSupported = true;
	eraseCookie('ST_test');
}

/* Vind uit of het onderzoek begonnen is en de looptijd */

ST_startDatum.setMonth(ST_startDatum.getMonth() - 1);
ST_eindDatum.setMonth(ST_eindDatum.getMonth() - 1);
var ST_aankomstTijd = new Date();
var ST_loopTijdOnderzoek = parseInt((ST_eindDatum.getTime() - ST_aankomstTijd.getTime())/86400000); // in dagen
var ST_onderzoekBegonnen = (ST_startDatum.getTime() < ST_aankomstTijd.getTime());

/* Sla allereerste bezoek van gebruiker op, of hij nou geselecteerd is of niet */

if (!readCookie('ST_firstVisit') && ST_onderzoekBegonnen)
	createCookie('ST_firstVisit',createReadableDate(ST_aankomstTijd),ST_loopTijdOnderzoek);

/* Aantal bezoeken aan site. Een bezoek wordt gedefinieerd als een nieuw bezoek als er
	minstens 1 uur verstreken is sinds de laatste pagina is bezocht */

if (ST_onderzoekBegonnen)
{
	var ST_aantalBezoeken = readCookie('ST_numberOfVisits') || 0;
	ST_aantalBezoeken++;
	if (!readCookie('ST_lastVisitTime'))
		createCookie('ST_numberOfVisits',ST_aantalBezoeken,ST_loopTijdOnderzoek);
	createCookie('ST_lastVisitTime','true',(1/24));
}
/* Initialisatie hoofdscript */

addEvent(window,"load",ST_init);
var ST_newWindow;
var ST_loaded = false;


function ST_init() 
{ 
      
        // geen cookies of onderzoek nog niet begonnen of beeindigd: doe niets 

        if (!ST_cookiesSupported) return; 
        if (!ST_onderzoekBegonnen) return; 
        if (ST_loopTijdOnderzoek < 0 ) return; // WAT GEBEURT ER MET TEKST OP PAGINA? 
        
        // vind status gebruiker 
        
        var currentStatus = readCookie('ST_status'); 
        var tekst = document.getElementById('sitetrekTekst'); 
        if (tekst) tekst.style.display = 'none'; 
        
        // als gebruiker niet geselecteerd is, doe niets 
        
        if (currentStatus == 'nee') return; 
        
        // als gebruiker wel geselecteerd is, of de selectie is nog niet gemaakt, 
        // maak tekst onzichtbaar en zet de functie die data naar popup stuurt 
        
        ST_loaded = true; 
        addEvent(window,"unload",ST_exit); 
        eraseCookie('ST_temp_store'); 
        
        // als gebruiker al geselecteerd is, eindig hier 
        
        if (currentStatus == 'ja') return; // gebruiker al eerder geselecteerd; we hebben nu alles voor hem gedaan 
        
        // Nieuwe gebruiker; bepaal selectie & zo ja zet popupopener en tekst 
        
        var ST_geselecteerd = (Math.random()*ST_steekProef < 1) 
        if (!ST_geselecteerd) 
        { 
                createCookie('ST_status','nee',1); 
                return; 
        } 
        if (tekst) 
        { 
                tekst.innerHTML = ST_paginaTekst; 
                tekst.style.display = 'block'; 
        } 
        createCookie('ST_status','ja',ST_loopTijdOnderzoek); 
        addEvent(document,"click",ST_openPopup); 
        createCookie('ST_referrer',top.document.referrer,1); 
        setExtern();
} 

// start onderzoek voor external links
function setExtern() {
  if (!document.getElementsByTagName) return;
  var anchors = document.getElementsByTagName("a");
  for (var i=0; i<anchors.length; i++) {
    var anchor = anchors[i];
    if(anchor.target == "_blank" || anchor.getAttribute("rel") == "external"){
      addEvent(anchor, "click", checkExternal)
    }
  }
}

function checkExternal(){
	ST_openPopup();

	if (!ST_newWindow) 
		setTimeout('checkExternal()', 250); 
  else
    setTimeout('ST_newWindow.startOnderzoek()', 2000); 

}

function ST_openPopup()
{
	if (readCookie('ST_popup')) return;
	ST_newWindow = window.open('/nrc.nl/sitetrek/popup.html','ST_window','width=300,height=300,resizable=yes,scrollbars=yes');
	ST_newWindow.blur();
	removeEvent(document,"click",ST_openPopup);
}

function ST_exit()
{
	ST_loaded = false;
	var tijd = ST_timeOnPage();
	if (readCookie('ST_popup') == 'opened' && ST_newWindow)
		ST_newWindow.trackMain(location.href,tijd);
	else
		createCookie('ST_temp_store',location.href+',,'+tijd,1);
}


/* Extended tracking */

function ST_timeOnPage() // in seconden
{
	var eindTijd = new Date().getTime();
	var beginTijd = ST_aankomstTijd.getTime();
	var tijdOpPagina = parseInt((eindTijd - beginTijd)/1000);
	return tijdOpPagina;
}


/********************

      UTILITIES
      
********************/

/* By John Resig */

function addEvent( obj, type, fn ) 
{
	if (obj.addEventListener)
		obj.addEventListener( type, fn, false );
	else if ( obj.attachEvent ) 
	{
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	} 
}

function removeEvent( obj, type, fn ) 
{
	if ( obj.detachEvent ) 
	{
		obj.detachEvent( "on"+type, obj[type+fn] );
		obj[type+fn] = null;
	} 
	else if (obj.removeEventListener)
		obj.removeEventListener( type, fn, false );
}

/* PPK */

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 null;
}

function eraseCookie(name)
{
	createCookie(name,"",-1);
}

function createReadableDate(dateObj)
{
	var dag = dateObj.getDate();
	var maand = dateObj.getMonth() + 1;
	var jaar = dateObj.getFullYear();
	return dag + '-' + maand + '-' + jaar;
}
