function encode(value) {    
    return value.replace(/[\s\/+@$=&,;:?#%<>"'{}\\\~^\[\]]/g, '_');
}

function logLoadingTimeEnd() {
    timeTracker._recordEndTime(); 
    timeTracker._setHistogramBuckets([2000,4000,6000,8000,10000,12000,14000,16000,18000,20000,40000,60000]);
    timeTracker._track(pageTracker);
}

function logLogin(vanaf, leeftijd, huishouden, inschrijfduur, urgentie) {    
	_gaq.push(['_trackEvent', 'Login', 'Inloggen', vanaf]);
        
    _gaq.push(
        ['_setCustomVar', 1, 'Leeftijd', leeftijd, 1],
        ['_setCustomVar', 2, 'Huishouden', huishouden, 1],
        ['_setCustomVar', 3, 'Inschrijfduur', inschrijfduur, 1],
        ['_setCustomVar', 4, 'Urgentie', encode(urgentie), 1],
        ['_trackPageview']);
}

function logLogout() {
}

function logAanbod(soort, aantal) {
    _gaq.push(['_trackEvent', 'Aanbod', soort, 'Woningen', aantal]);   
}

function logZoekfilters(aanbodSoort, text, waarde) {
    _gaq.push(['_trackEvent', 'Aanbod', aanbodSoort, text, waarde]);	    
}

function logSortering(soort, order) {
   _gaq.push(['_trackEvent', 'Sortering', soort, order]);
}

function logWeergave(weergave) {
	_gaq.push(['_trackEvent', 'Weergave', weergave]);
}

function logLegenda(legenda) {
	_gaq.push(['_trackEvent', 'Legenda', legenda]);
}

function logInschrijven(stap) {
	_gaq.push(['_trackPageview', stap]);
}

function logPersoonlijkGegevens(stap) {
	_gaq.push(['_trackEvent', 'Persoonlijke gegevens', stap]);
}

function logInstellingen(type, waarde) {
	_gaq.push(['_trackEvent', 'Instellingen', type, waarde]);
}

function logReactiesEvent(type, advertentienummer, slaagkans, rang) {
    // De slaagkansen worden bij elkaar opgeteld door Google Analytics.
    // Om de juiste waarde te krijgen moeten we onze logica veranderen.
    // In ons systeem is slaagkans 1 GOED en 3 is SLECHT.
    // Dus veranderen we 1 in 3 en 3 in 1.
    // De waarde -1 wordt 0, wat betekent dat er geen slaagkans is.
    switch(slaagkans) {
        case -1:
            slaagkans = 0;
            break;
        case 1:
            slaagkans = 3;
            break;
        case 3:
            slaagkans = 1;
            break;
    }
    
    if (rang > 0) {
		_gaq.push(['_trackEvent', 'Reageren', type, advertentienummer, rang]);
	} else { 
		_gaq.push(['_trackEvent', 'Reageren', type, advertentienummer, slaagkans]);
	}
}

function logReactiesPage(type) {
    _gaq.push(['_trackPageview', '/MijnWoonnet/tab=' + type]);
}

function logZoekopdracht(type, waarde) {
    _gaq.push(['_trackEvent', 'Zoekopdracht instellingen', type, waarde]);
}

function logCampaign(source, medium, campName) {
    _gaq.push(['_setCampSourceKey', source]);
    _gaq.push(['_setCampMediumKey', medium]);
    _gaq.push(['_setCampNameKey', campName]);
}
