//	Dit script wordt door alle te monitoren pagina's gebruikt
//
//	Onderdeel van het R&M sitetrek systeem
//  v2 SiteTrek the Next Generation
//
//  doel: openen popup window waarin pagina's geregistreerd worden
//
//	copyright 2002-2005, AdWare Media Solutions
//
//  locatie: /stng
//           /stng/popup.html
//
//  versie:
//      27/02/2003 - aangepaste functienamen (prefix ST)
//      14/04/2003 - andere image methode
// 		  25/04/2003 - bughunting F1directory
//      20/01/2005 - nofTimes variabele werd behandeld als tekst ipv getal

// globale variabelen
var myPage = '';
var windowHandle = '';
var wantForInterview = 0;

//
// Openen van de popup window
// Als deze nog niet bestaat wordt een nieuw popup window geopend
//
function STopenWindow(windowName) {

	windowHandle = window.open('',windowName,'resizable=no,width=100,height=100,screenX=0,screenY=0,top=3500,left=3500');

	if (!windowHandle.isOpen)	{
		windowHandle = window.open('http://robein.acc.hebbizz.nl/stng/popup.html',windowName,'resizable=no,width=100,height=100,screenX=0,screenY=0,top=3500,left=3500');
	}
	self.focus();
	return true;
}

//
// Wordt aangeroepen in the onLoad van pagina
//
function register(pageID) {
	return true;
}

function register1(pageID) {
	myPage = pageID;

	// eerst bepalen of we de gebruiker gaan uitnodigen
	STcheckStatus();

	if (wantForInterview == 1) {
		STopenWindow(trackName);
		setTimeout(STcheckPopup, 100);
	}
	return true;
}

function STcheckPopup() {
	var result = 0;
	var myStr = '';

	if (windowHandle.isOpen) {
		windowHandle.nofWindows+=1;

		myStr=windowHandle.pageRoute;
		result=myStr.length;
		if (result==0) {
			myStr='p'+myPage+'=1'
		} else {
			myStr+= '+p'+myPage+'=1';
		}
		windowHandle.pageRoute = myStr;

		myStr = windowHandle.pagesVisited;
		if (!myStr.match('p'+myPage+'=1')) {
			result = myStr.length;
			if (result == 0) {
				myStr='p'+myPage+'=1'
			} else {
				myStr+='&p'+myPage+'=1';
			}
			windowHandle.pagesVisited = myStr;
		}

		// globale variabele uit stngg.js
		myStr = allPages;
		if (!myStr.match('p'+myPage+'=1')) {
			result = myStr.length;
			if (result == 0) {
				myStr='p'+myPage+'=1'
			} else {
				myStr+='+p'+myPage+'=1';
			}
			allPages = myStr;
		}
	}
	else {
		setTimeout(STcheckPopup, 100);
	}
}

//
// Wordt aangeroepen in de onUnload van de pagina
//
function unregister()
{
	return true;
}

function unregister1()
{
  STWriteDuration(); // functie in stngg.js

	if (wantForInterview == 1)
	{
		// we willen deze gebruiker uitnodigen
		//   we hebben al een handle
		//   aantal windows met 1 verlagen
		//   en melden dat we zijn afgesloten
		if (!windowHandle.closed)
		{
			windowHandle.nofWindows -= 1;
			windowHandle.STwindowClosed();
		}
	}
	return true;
}

//
// Willen we deze gebruiker interviewen
//
function STcheckStatus()
{
	var firstDate;
	var today = new Date();
	var lastDate;
	var nofTimesVisited = 0;
	var isInterviewed = 0;
	var bCheck = 1;
	var cookieData = STGet_Cookie(trackName);

	if (!cookieData) {
		firstDate = today;
		nofTimesVisited = 1;
		isInterviewed = 0;
		wantForInterview = 0;
		// variabelen uit stngg.js
		prevVersion = 0;
		allPages = '';

	}	else {

		// cookie data lezen
		firstDate=STgetValue(cookieData,"firstdate");
		lastDate = STgetValue(cookieData,"lastdate");
		isInterviewed = 1 * STgetValue(cookieData,"interview");
		wantForInterview = 1 * STgetValue(cookieData,"wanted");
		prevVersion = 1 * STgetValue(cookieData,"version");
		allPages = STgetValue(cookieData,"pages");

		// gebruiker al geinterviewd voor deze versie van het onderzoek?
		if (prjVersion==prevVersion) {
			if (isInterviewed==1)	{
				wantForInterview = 0;
				return true;
			}

			// flag om te gaan interviewen is al gezet
			if (wantForInterview == 1) { return true; }

		} else {
			// nieuwe versie onderzoek, alles resetten
			isInterviewed = 0;
			wantForInterview = 0;
		}

		// controle op meest recente bezoek:
		// afgelopen periode nog op de website geweest?
		var temp = new Date(Date.parse(lastDate));
		if ((today.getTime() - temp.getTime()) / (1000 * 60) > minTime) {
			// AdV, 20/1/2005 -> Door te vermenigvuldigen met 1 wordt het een getal
			nofTimesVisited = 1 * STgetValue(cookieData,"noftimes");
			// AdV, 20/1/2005 -> Daarna 1 bij optellen
			nofTimesVisited += 1;
		} else {
			bCheck = 0; // hoort bij "dit" bezoek, dus niet opnieuw bekijken
		}
	}

	// kijken of we deze gebruiker willen interviewen
	if (inSample==1 && bCheck==1) {
		// gebruiker valt in de steekproef
		if (today >= startDate && today < endDate) {
			// en ook nog netjes binnen de gewenste periode.
			// uitnodigen!
			wantForInterview = 1;
		}
	}

	// opbouwen cookie data
	cookieData = 'firstdate=' + firstDate + '&lastdate=' + today + '&noftimes=' + nofTimesVisited;
	cookieData += '&interview=' + isInterviewed + '&wanted=' + wantForInterview + '&version=' + prjVersion;
	cookieData += '&pages=' + allPages;

	// cookie schrijven
	STSet_Cookie(trackName,cookieData,expiresDate,'/','','');
}
