﻿try {
    if(!CorrectReturnOnEntrypage())
        InitializePage();
}
catch (e) {
}

//tbv callback voor browsers die geen window.postMessage kennen: klantPagUrl in Hash stoppen, zodat IFRAME zodadelijk weet wat url van calling doc is
var m_klantPagUrl = encodeURIComponent(document.location.href);
var m_newRequestId = -1;
var m_lastTriggerValue = -1; //tbv DispatchEventToWebservice



//#region function InitializePage.
function InitializePage() {
    var sessionScope = new Date();
    var continuePageLoad = true;

    //Embed scripts en handle URL-fowarding tbv interceptionpage
   
    //Deze functie is alleen van toepassing indien er een exit-survey is

    if (IsEntrypage()) {
        //SiteVisitStart setten
        
        var pageVisitTime = GetTimeInSecs();
        cdSetCookie('SiteVisitStart', pageVisitTime, sessionScope);
    }

    if (UseSurveyFramework && TRIGGERS.indexOf('1') != -1) {

        if (IsOnInterceptionPage()) {
            //Hij is nu dus op "interception page" (ingevoegde pagina tussen externe referrer en oorspronkelijk gewenste page)
            if (cdGetCookie('InterceptionStage') == "IntercPageCreated"){
                //hij is hier dus doordat user op Back klikte om terug te gaan naar externe referrer).
                
                //Stage upgraden naar Displayed:
                cdSetCookie('InterceptionStage', 'IntercPageDisplayed', sessionScope);

                //Nu weer checken of exit survey wel getoond moet worden. 
                //Indien ie nl wel een interception page gemaakt is, terwijl er in deze sessie bijv. een 30sec-vragenlijst is getoond: dan willen we deze interceptionpage overslaan
                if (IsSurveyformEnabled()) {
                    //backbuttondisabler bouwen
                    if (typeof USEBACKBUTTONDISABLER != 'undefined' && USEBACKBUTTONDISABLER == true) {
                        WriteBackButtonDisabler();
                    }
                    //evt bestaand surveyframe verwijderen.
                    RemoveSurveyFrame();
                }
                else
                    history.go(-1);
            }
            else //browser is voor het eerst hier op de interception page in deze sessie (dus niet doordat user op Back klikte, maar doordat common.js 'm daar heen leidde vanaf de entry page).
            {
                //cookie setten, zodat we, als user weer op interception page komt, geconcludeerd kan worden dat ie dan op Back klikte.
                cdSetCookie('InterceptionStage', 'IntercPageCreated', sessionScope);

                //ok, nu naar het url dat de user oorspronkelijk wilde bekijken
                GoToUrl(unescape(GetQstringVars(document.location)["ForeignRequestUrl"]), true);

                continuePageLoad = false; //dus geen verder cookiedropframe-creatie, want hij gaat toch redirecten
            } 
            
        } //if (IsOnInterceptionPage()) 
        else if (IsEntrypage()) {
            //de page heeft een referer van een ander domain: invoegen van extra entry (nl: de Interceptionpage) in de history keten,
            //zodat user bij backbutton-kliks niet het domain kan verlaten zonder de vragenlijst gezien te hebben

            var doInsertInterceptionPage = IsSurveyformEnabled();

            if (doInsertInterceptionPage) {
                //indien er een EXITSURVEYREFERREREXCLUDES lijst is, dan kijken of de externe referrer in deze lijst voorkomt
                if (typeof EXITSURVEYREFERREREXCLUDES != 'undefined' && EXITSURVEYREFERREREXCLUDES != null) {
                    for (var iRefDomain = 0; iRefDomain < EXITSURVEYREFERREREXCLUDES.length; iRefDomain++) {
                        if (ReferrerIsOfDomain(EXITSURVEYREFERREREXCLUDES[iRefDomain]))
                            doInsertInterceptionPage = false; //alsnog niet doen
                    }
                }
            }

            if (doInsertInterceptionPage) {

                //redirect doen naar wat de interceptionpage zal worden
                var interceptionPageUrl = '';

                if (typeof INTERCEPTIONPAGEURL != 'undefined' && INTERCEPTIONPAGEURL != null)
                    interceptionPageUrl = INTERCEPTIONPAGEURL;
                else
                    interceptionPageUrl = GetPageLocation();

                GoToUrl(interceptionPageUrl + '?ForeignRequestUrl=' + escape(document.location), true);

                continuePageLoad = false;  //dus geen verder cookiedropframe-creatie, want hij gaat toch redirecten
            } //if (doInsertInterceptionPage) 

        } //else if IsEntrypage
        else {
            //noch entry, nog interceptionpage
        } //  if (IsOnInterceptionPage()) {
    } // if (TRIGGERS.indexOf('1') != -1 && IsSurveyformEnabled() == true) {

    //Firefox rerunt bij een back-button geen script op de heropende page. Om dat toch te forceren is deze workaround geschikt:
    if (typeof document.addEventListener != 'undefined')
        window.addEventListener("unload", FFforceScriptLoad, false);

    if (continuePageLoad) {

        if (UseSurveyFramework()) {
            IncludeJavaScript(document.location.protocol + '//www.ergo-webreporting.com/shared/jquery-1.3.2.min.js');
            IncludeJavaScript(document.location.protocol + '//www.ergo-webreporting.com/shared/jquery.ba-postmessage.js');
        }

        if (typeof document.addEventListener != 'undefined')
            window.addEventListener("load", window_onload, false);
        else
            window.attachEvent('onload', window_onload);
    }

} //end function
//#endregion



//#region function FFforceScriptLoad
function FFforceScriptLoad() {
    try {
        //doe refresh van de page
        var headElement = document.getElementsByTagName("head")[0];
        if (headElement && headElement.innerHTML)
            headElement.innerHTML += "<meta http-equiv=\"refresh\" content=\"15\">";
    }
    catch (e) { }
}
//#endregion


//#region function WriteBackButtonDisabler
function WriteBackButtonDisabler() {
    if (typeof document.addEventListener != 'undefined')
        return; //de disabler maakt gebruik van elem.click().call, is niet beschikbaar in ff

    //we trachten het script zo snel mogelijk te runnen, dus mogelijk voordat de body bestaat in de DOMtree
    if (document.body == null)
        setTimeout(WriteBackButtonDisabler, 100);
    else {

        if (document.getElementById('bbDisablerDiv') != null)
            return; //bestaat al (door setTimeout kunnen meerdere calls ontstaan)

        var src = document.location.protocol + COOKIEDROPURL + "BbDisablerPageA.htm";

        var bbDisablerDiv = document.createElement("div")
        bbDisablerDiv.id = 'bbDisablerDiv';
        bbDisablerDiv.style.visibility = "hidden";

        bbDisablerDiv.innerHTML = "<IFRAME style='width: 1px; height: 1px' id='bbDisablerFrame' name='bbDisablerFrame' src='" + src + "'  frameborder='0'></iframe>";

        document.body.appendChild(bbDisablerDiv);
    }
}
//#endregion

//#region function RemoveBackButtonDisabler
function RemoveBackButtonDisabler() {
    var bbDisablerDiv = document.getElementById('bbDisablerDiv');

    if (bbDisablerDiv != null)
        document.body.removeChild(bbDisablerDiv);
}
//#endregion


//#region function GetPageLocation
function GetPageLocation() {
    //indien het request zonder paginanaam is, geeft dit problemen bij invoegen van de interceptionpage,
    //daarom defaultpage invoegen.
    if (document.location.href.length == document.location.href.lastIndexOf('/') + 1)
        return document.location + DEFAULTPAGE;
    else {
        if (document.location.search.toString() == "")
            return document.location;
        else
            return document.location.toString().substring(0, document.location.toString().indexOf('?'));

    }
}


//#endregion

//#region function IncludeJavaScript
function IncludeJavaScript(jsFile) {
    document.write('<script type="text/javascript" src="' + jsFile + '"></script>');
}
//#endregion

//#region function window_onload
function window_onload(event) {
    //register crossbrowser listener voor messages van SurveyForm-Iframe en Cookiedrop-Iframe
    if (IsSurveyformEnabled())
        $.receiveMessage(window_messageReceived);

    //write cookiedrop iframe, wordt altijd gedaan
    WriteCDFrame();
}
//#endregion



//ONLINESURVEY


//#region function window_messageReceived
function window_messageReceived(e) {

    var msg = e.data.split('|')[0];

    switch (msg) {
        case 'newRequestInserted':
            //het in iframe-gevatte FramedPage geeft info terug aan de klantpagina

            //processing onderbreken indien surveyform niet getoond hoeft te worden
            if (!IsSurveyformEnabled())
                return;

            m_newRequestId = parseInt(e.data.split('|')[1]);

            //check op trigger 'na xxx seconden'
            if (TRIGGERS.indexOf('0') != -1)//na de timeout nogmaals checken of IsSurveyformEnabled nog aan de orde is, er kan al een exit-survey staan.
            {
                var pageVisitTime = GetTimeInSecs();

                //stel sitevisit-start in indien dit een nieuwe visit is.
                if (cdGetCookie('SiteVisitStart') == "") {
                    var sessionScope = new Date();
                    cdSetCookie('SiteVisitStart', pageVisitTime, sessionScope);
                }

                //bepaal hoeveel sec de user op deze site is
                var siteVisitLength = pageVisitTime - parseInt(cdGetCookie('SiteVisitStart'));

                if (siteVisitLength > POPUP_DELAYTIME)
                    WriteSurveyFrame(0);
                else
                    setTimeout("if (IsSurveyformEnabled()){  WriteSurveyFrame(0);    }", (POPUP_DELAYTIME - siteVisitLength) * 1000);

            }

            //check op trigger 'backbutton'
            if (TRIGGERS.indexOf('1') != -1) {
                if (HasDisplayedIntercPage())//de user is dus aan het back-klikken om de site te verlaten
                    WriteSurveyFrame(1);
            }

            //check op trigger 'close-rechtsboven'
            if (TRIGGERS.indexOf('2') != -1)
                WriteDetectClosebrowserDiv();

            break;

        case 'surveyLoaded':
            //het in iframe-gevatte SurveyForm.aspx geeft info terug aan de klantpagina
            document.getElementById('surveyFrameDiv').style.visibility = 'visible';

            DispatchEventToWebservice(m_lastTriggerValue);

            setTimeout('RemoveBackButtonDisabler();', 5000); //na enige delay de surveyloading disabling opheffen (alleen voor interc page)
            break;

        case 'surveyCompleted':
            //het in iframe-gevatte SurveyForm.aspx geeft info terug aan de klantpagina dat de slot-pagina getoond wordt.
            //Indien user niet op closekruis klikt, dan zal een klik op Backbutton leiden tot een navigatie in het iframe,
            //daarom het surveyframe na delay sowieso weghalen
            setTimeout("RemoveSurveyFrame(); if(IsOnInterceptionPage()){ window.history.go(-2);} document.body.focus();", 1500);
            break;

        case 'surveyClosed':
            //het in iframe-gevatte SurveyForm.aspx geeft info terug aan de klantpagina dat sluitkruis is ingedrukt
            RemoveSurveyFrame();

            if (IsOnInterceptionPage())
                window.history.go(-2);
            document.body.focus();

            break;
    }
}
//#endregion

//#region function WriteEvent
function DispatchEventToWebservice(info1) {
    //deze functie logt nu alleen nog maar surveyloads, maar kan worden uitgebreid om ook andere client-events te loggen op de server

    //call doen naar FramedPage4 om de webservice die daar draait een record naar tabel Event te laten wesgschrijven
    try {
        var targetPagUrl = document.location.protocol + COOKIEDROPURL + 'FramedPage4.htm';
        var eventData = 'newEventRaised|' + m_newRequestId.toString() + '|' + info1 + '|' + GetTimeInMSecs();
        $.postMessage(eventData, targetPagUrl, window.cdFrame);
    }
    catch (e) {

    }
}
//#endregion




//#region function IsOnInterceptionPage
function IsOnInterceptionPage() {
    //de interceptionpage herkennen we aan of ForeignRequestUrl in de querystring staat
    //De interceptionpage staat in de history-array tussen het externe url en het oorspronkelijke entry-url.
    return (document.location.toString().indexOf('ForeignRequestUrl') != -1);
}

//#endregion

//#region function IsLeavingSiteByInterceptionPage
//function IsLeavingSiteByInterceptionPage() {
//   
//    return (IsOnInterceptionPage() && (cdGetCookie('InterceptionStage') == "IntercPageCreated"));
//}

//#endregion


//#region function HasDisplayedIntercPage
function HasDisplayedIntercPage() {

    return (cdGetCookie('InterceptionStage') == "IntercPageDisplayed");
}

//#endregion


//#region function GoToUrl
function GoToUrl(newUrl, ensureHistoryCapture) {
    if (ensureHistoryCapture) {
        //je kan in firefox niet een document-relocate doen die in de history-array terecht komt, tenzij
        //je het doet in reactie op een door de user (oftewel console: keyboard of mouse) veroorzaakt event:
        if (typeof document.addEventListener != 'undefined') {
            ////TIJDELIJKE BLOCK URL REDIRECTION FIREFOX


            //            document.addEventListener('mousemove', function() { document.location = newUrl; }, false);
            //            document.addEventListener('mousedown', function() { document.location = newUrl; }, false);
            //            document.addEventListener('keydown', function() { document.location = newUrl; }, false);
        }
        else
            document.location = newUrl;
    }
    else
        document.location.replace(newUrl);
}
//#endregion

//#region verlaten domein dmv closebutton en toetsenbord

var m_y0 = -1000; //var m_x0 = -1000;

function WriteDetectClosebrowserDiv() {

    if (IsOnInterceptionPage())//op interceptionpage (indien van toepassing) nooit doen
        return;

    var dCbDiv = document.createElement("div")
    dCbDiv.id = 'detectClosebrowserDiv';
    dCbDiv.style.position = "absolute";
    dCbDiv.style.top = "3px";
    dCbDiv.style.left = "0px";
    dCbDiv.style.width = "100%";
    dCbDiv.style.height = "10px";
    dCbDiv.style.zIndex = "999";
    //dCbDiv.style.backgroundColor = "green";
    //dCbDiv.setAttribute("newRequestId", newRequestId);

    document.body.appendChild(dCbDiv)

    if (typeof document.addEventListener != 'undefined') {
        document.addEventListener('keydown', Document_onkeydown, false);
        dCbDiv.addEventListener('mousemove', DetectClosebrowserDiv_mouseMove, false);
        dCbDiv.addEventListener('mouseout', DetectClosebrowserDiv_mouseOut, false);
    }
    else {
        document.attachEvent('onkeydown', Document_onkeydown);
        dCbDiv.attachEvent('onmousemove', DetectClosebrowserDiv_mouseMove);
        dCbDiv.attachEvent('onmouseout', DetectClosebrowserDiv_mouseOut);
    }
}

function Document_onkeydown(e) {
    e = e ? e : window.event;

    if (e.target)
        targ = e.target;
    else
        targ = e.srcElement;

    if (targ.nodeName == "INPUT")
        return;

    var k = e.keyCode ? e.keyCode : e.which ? e.which : null;

    if (k == 115) /*F4=115 (ctrl of alt)*/{
        //var newRequestId = parseInt(targ.attributes["newRequestId"]);
        WriteSurveyFrame(2);


        if (e.preventDefault)
            e.preventDefault();
        return false;
    };
}

function DetectClosebrowserDiv_mouseMove(e) {
    e = e ? e : window.event;

    if (m_y0 == -1000) {
        m_y0 = e.clientY;
    }
    else
        ProcessTriggerEvent(e);
}


function DetectClosebrowserDiv_mouseOut(e) {
    e = e ? e : window.event;

    ProcessTriggerEvent(e);

    m_y0 = -1000;
}

function ProcessTriggerEvent(e) {
    var y1 = e.clientY;
    var x1 = e.clientX;

    if (y1 < m_y0)//dus moving up
    {

        //kijken of user over de meest rechtse 200px is gegaan
        if (x1 > document.body.offsetWidth - 200) {

            var targ;

            if (e.target)
                targ = e.target;
            else
                targ = e.srcElement;

            //verplatsen van scherm om user 'mis' te laten klikken op close-cross.
            /* DISABLED
            var verplaatsing = 100;
            if (window.screenTop > 200)
            verplaatsing = -verplaatsing;

            window.moveBy(0, verplaatsing);
            //window.resizeTo(window.screen.availWidth, window.screen.availHeight - window.screenTop);
            */

            WriteSurveyFrame(2);


            //surveyframe dicht bij de mouseposition plaatsen
            var surveyFrameDiv = document.getElementById('surveyFrameDiv');
            surveyFrameDiv.style.top = "1px";
            if (surveyFrameDiv.offsetWidth + x1 > document.body.offsetWidth)
                surveyFrameDiv.style.left = document.body.offsetWidth - surveyFrameDiv.offsetWidth - 30 + "px";
            else
                surveyFrameDiv.style.left = x1 + "px";


        }
    }
}

function RemoveClosebrowserDivEventhandlers() {

    var dCbDiv = document.getElementById('detectClosebrowserDiv');

    if (typeof document.addEventListener != 'undefined') {
        document.removeEventListener('keydown', Document_onkeydown, true); //backbutton-interceptie

        if (dCbDiv != null) {
            dCbDiv.removeEventListener('mousemove', DetectClosebrowserDiv_mouseMove, true);
            dCbDiv.removeEventListener('mouseout', DetectClosebrowserDiv_mouseOut, true);
            dCbDiv.parentNode.removeChild(dCbDiv);
        }
    }
    else {
        document.detachEvent('onkeydown', Document_onkeydown); //backbutton-interceptie

        if (dCbDiv != null) {
            dCbDiv.detachEvent('onmousemove', DetectClosebrowserDiv_mouseMove);
            dCbDiv.detachEvent('onmouseout', DetectClosebrowserDiv_mouseOut);
            dCbDiv.removeNode(true);
        }
    }
}




//#endregion


//#region function CorrectReturnOnEntrypage
function CorrectReturnOnEntrypage() {
    //Kijk of de user op de entrypage is terwijl hij aan het exiten is. Dat is een occurence die we niet willen,
    //want de user wil dan dus de site uit. Door een history.go(-1) te geven corrigeren we deze return

    if (IsOnInterceptionPage())//interceptionpage is per definitie niet de entrypage
        return false;

    if (HasDisplayedIntercPage()) {
        if (document.referrer == "")//fresh geopend of via document.location redirect 
        {
            cdSetCookie('InterceptionStage', 'gewist', new Date()); //'wissen' cookie, anders komt user de site niet meer op in deze browserinstance
            history.go(-1); //terug naar 'browserhome'
            return true;
        }
        else {
            var referrerIsIntern = ReferrerIsOfDomain(document.domain);

            if (!referrerIsIntern) {
                cdSetCookie('InterceptionStage', 'gewist', new Date()); //'wissen'  cookie, anders komt user de site niet meer op in deze browserinstance
                history.go(-1); //terug naar 'google'
                return true;
            }
        }
    }
    
    return false;
}
//#endregion

//#region function IsEntrypage
function IsEntrypage() {
    //entry page is eerste page van deze sessie (dus net vóór de interception page)
    //return (document.referrer != "" && document.referrer.indexOf(document.domain + '/') == -1);

    //document.location commando veroorzaakt empty document.referrer bij target pagina. Deze method zou
    //dan ten onrechte denken dat het een entry page is.
    if (cdGetCookie('InterceptionStage') == 'IntercPageCreated')
        return false;

    if (document.referrer == "")//fresh geopend of via document.location redirect
        return true;

    var referrerIsIntern = ReferrerIsOfDomain(document.domain);
    return !referrerIsIntern;
}
//#endregion

//#region function ReferrerIsOfDomain
function ReferrerIsOfDomain(domainToCheck) {
    var posDomain = document.referrer.indexOf(domainToCheck);

    //referer moet domain in eerste tekens hebben (http of https als protocol)
    if ((posDomain >= 0) && (posDomain <= 15))
        return true;
    else
        return false;
}
//#endregion


//#region function UseSurveyFramework

function UseSurveyFramework() {
    if (typeof document.addEventListener != 'undefined')
        return false;//in deze versie: allen IE ondersteunen, geen safari firefox etc

    if (AcceptsCookies() == 0)
        return false; //we kunnen niet vastleggen of user al survey heeft ingevuld

    if (typeof TRIGGERS == 'undefined' || (TRIGGERS == ''))
        return false; //geen triggers gedefinieerd        

    if (typeof SURVEYCODES == 'undefined' || (SURVEYCODES == null))
        return false; //geen survey gerelateerd

    if (typeof DISPLAYSURVEYFORM != 'undefined') {
        if (!DISPLAYSURVEYFORM(document.location))
            return false;
    }

    return true;
}
//#endregion

//#region function IsSurveyformEnabled
function IsSurveyformEnabled() {
    if (!UseSurveyFramework())
        return false;

    if (typeof SHOWALLWAYS != 'undefined' && (SHOWALLWAYS == true))
        return true; //handig voor debuggen, geen check of user als surveyform op scherm heeft gehad
    else if (cdGetCookie('Shown' + CUSTOMERID) == '1')
        return false; //user heeft formulier al gezien

    return true;
}
//#endregion

//#region function WriteSurveyFrame
function WriteSurveyFrame(triggerValue) {
    m_lastTriggerValue = triggerValue;
    SetSurveyShown();
    RemoveClosebrowserDivEventhandlers();

    if (triggerValue == '0')//na xxx sec
        cdSetCookie('SiteVisitStart', '', new Date()); //weghalen sitevisitcookie

    var surveyCode = SURVEYCODES[triggerValue];

    //klantpagUrl (in hash) is nodig voor communicatie terug naar client voor browsers die geen postmessage ondersteunen
    var src = SURVEYURL + 'SurveyForm.aspx?SurveyCode=' + surveyCode
        + '&Request_ID=' + m_newRequestId
        + '&trigger=' + triggerValue
        + '#' + m_klantPagUrl;

    var surveyFrameDiv = document.createElement("div")
    surveyFrameDiv.id = 'surveyFrameDiv';
    surveyFrameDiv.style.position = "absolute";
    surveyFrameDiv.style.zIndex = "999";
    surveyFrameDiv.style.visibility = "hidden";

    //set position and size
    if (typeof SURVEYFRAMEDIMENSIONS != 'undefined') {
        surveyFrameDiv.style.left = SURVEYFRAMEDIMENSIONS[triggerValue][0] + "px";
        surveyFrameDiv.style.top = SURVEYFRAMEDIMENSIONS[triggerValue][1] + "px";
        surveyFrameDiv.style.width = SURVEYFRAMEDIMENSIONS[triggerValue][2] + "px";
        surveyFrameDiv.style.height = SURVEYFRAMEDIMENSIONS[triggerValue][3] + "px";
    }

    surveyFrameDiv.innerHTML = "<IFRAME style='width: " + surveyFrameDiv.style.width + "; height: " + surveyFrameDiv.style.height + "' id='surveyFrame' name='surveyFrame' src='" + src + "' allowTransparency = 'true' frameborder='0'></iframe>";
    document.body.appendChild(surveyFrameDiv);
    //survey form load is nu in gang gezet. Maar nog niet zichtbaar. Dat gebeurt pas bij surveyLoaded -event.
}
//#endregion

//#region function RemoveSurveyFrame
function RemoveSurveyFrame() {
    var surveyFrameDiv = document.getElementById('surveyFrameDiv');

    if (surveyFrameDiv != null)//null indien browser-refresh after close
        document.body.removeChild(surveyFrameDiv);
}
//#endregion

//#region function SetSurveyShown
function SetSurveyShown() {
    var eternal = 'expires=Sat, 18 Aug 2035 00:00:00 GMT;';
    cdSetCookie('Shown' + CUSTOMERID, '1', eternal);
}
//#endregion



//COOKIEDROPPING

//#region function WriteCDFrame
function WriteCDFrame() {
    //IE issues1: document.createElement werkt niet goed bij iframes in IE. Known issue. Daarom maar dmv innerHTML. http://msdn.microsoft.com/en-us/library/ms536389(VS.85).aspx
    //IE issues2: setAttribute werkt niet in IE6

    var src = document.location.protocol + COOKIEDROPURL + 'FramedPage4.htm?' + GetQstring();

    if (IsSurveyformEnabled())
        src += '#' + m_klantPagUrl; //in hash stoppen, zodat onderscheid met de inhoudelijke qstring eenvoudig is. Deze hash heeft geen relatie met de $.postmessage scripts

    var cdFrameDiv = document.createElement("div")
    cdFrameDiv.id = 'cdFrameDiv';
    cdFrameDiv.style.display = "none";
    cdFrameDiv.style.top = "1px";
    cdFrameDiv.style.left = "1px";
    cdFrameDiv.style.width = "1px";
    cdFrameDiv.style.height = "1px";
    cdFrameDiv.style.zIndex = "0";

    cdFrameDiv.innerHTML = "<IFRAME  src='" + src + "' style='width: 1px; height: 1px' id='cdFrame' name='cdFrame' frameborder='0'></iframe>";

    document.body.appendChild(cdFrameDiv)
}
//#endregion

//#region function AcceptsCookies
function AcceptsCookies() {
    var ok = 0;

    try {
        if (document.cookie != null && document.cookie.length > 0)
            ok = 1;
        else {
            document.cookie = "testCookieKeep;expires=Sat, 18 Aug 2035 00:00:00 GMT;";

            if (document.cookie != null && document.cookie.length > 0)
                ok = 1;
            else
                ok = 0;
        }
    }
    catch (e) {
        ok = 0;
    }

    return ok;
}

//----------------------------------

//#endregion

//#region function GetQstring
function GetQstring() {
    var browser, colrDepth, r, res, returnString;
    var d = document;


    browser = navigator.appName;

    if (browser != 'Netscape')
        colrDepth = screen.colorDepth;
    else
        colrDepth = screen.pixelDepth;

    try { r = (parent == self) ? window.document.referrer : top.document.referrer; }
    catch (e) { r = window.document.referrer; }

    if (!r || r == "")
        r = "-";
    else {
        dm = d.domain;
        p = r.indexOf(dm); //bepalen of huidig domain voorkomt in referer

        if ((p >= 0) && (p <= 8))// https:// = 8
            r = "intern"; //voorheen "0"

        if (r.indexOf("[") == 0 && r.lastIndexOf("]") == (r.length - 1))
            r = "-";
    }

    res = screen.width + 'x' + screen.height;

    var cdSsId = document.getElementById('cdSsId');

    if (cdSsId != null)
        cdSsId = cdSsId["value"];
    else
        cdSsId = '-';

    var acceptsCookies = AcceptsCookies();

    var ilsbip = HasDisplayedIntercPage();

    //bouwen string
    returnString = 'cusId=' + CUSTOMERID
    + '&prot=' + d.location.protocol
    + '&domain=' + d.domain
    + '&path=' + escape(d.location.pathname)
    + '&srch=' + escape(d.location.search)
    + '&title=' + d.title
    + '&doc=' + escape(d.location) + '&SsId=' + cdSsId + '&r=' + escape(r) + '&c='
    + colrDepth + '&res=' + res + '&time=' + GetTimeInMSecs() + '&ac=' + acceptsCookies + '&ilsbip=' + ilsbip;

    return returnString;
}
//#endregion

//#region function GetTimeInMSecs
function GetTimeInMSecs() {
    var now = new Date();
    var nowMsec = 1000 * (now.getHours() * 3600 + now.getMinutes() * 60 + now.getSeconds())
                    + now.getMilliseconds();
    return nowMsec;
}
//#endregion

//#region function GetTimeInSecs
function GetTimeInSecs() {
    var now = new Date();
    var nowSecs = now.getHours() * 3600 + now.getMinutes() * 60 + now.getSeconds();
    return nowSecs;
}
//#endregion





//#region function cdGetCookie
function cdGetCookie(name) {
    var start = document.cookie.indexOf(name + "=");
    var len = start + name.length + 1;

    if ((!start) && (name != document.cookie.substring(0, name.length)))
        return '';

    if (start == -1)
        return '';

    var end = document.cookie.indexOf(";", len);

    if (end == -1)
        end = document.cookie.length;

    return unescape(document.cookie.substring(len, end));
}
//#endregion

//#region function cdSetCookie
function cdSetCookie(name, value, expire) {
    document.cookie = name + "=" + escape(value) + ';' + expire;
}

//#endregion

//#region function GetQstringVars
function GetQstringVars(docLocation) {
    var getVars = docLocation.search.substring(1).split("&");
    var returnVars = new Array();

    for (i = 0; i < getVars.length; i++) {
        var newVar = getVars[i].split("=");
        returnVars[unescape(newVar[0])] = unescape(newVar[1]);
    }

    return returnVars;
}
//#endregion









