﻿onload = trackPageView;
onunload = trackPageExit;
onerror = handleError;
var request;
var iPageTrackerID;
function createRequest() {
    try {
        request = new XMLHttpRequest();
    } catch (trymicrosoft) {
        try {
            request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (othermicrosoft) {
            try {
                request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (failed) {
                request = false;
            }
        }
    }
}
function trackPageView() {
    createRequest();
    if (request) {
        var oProto = ("https:" == document.location.protocol ? "https://" : "http://");
        var oUrl = oProto + document.location.hostname + "/tracker.aspx?url=" + escape(document.location.href) + "&guid=" + escape(guidGenerator());
        request.open("GET", oUrl, true);
        request.onreadystatechange = pageTracked;
        request.send(null);
    }
}
function pageTracked() {
    if (request.readyState === 4) {
        if (request.status === 200) {
            var response = request.responseText.split("|");
            iPageTrackerID = response[0];
        }
    }
}
function trackPageExit() {
    if (request) {
        if (iPageTrackerID) {
            var oProto = ("https:" == document.location.protocol ? "https://" : "http://");
            var oUrl = oProto + document.location.hostname + "/tracker.aspx?exit=1&pagetrackerid=" + iPageTrackerID + "&guid=" + escape(guidGenerator());
            request.open("GET", oUrl, true);
            request.send(null);
        }
    }
}
function guidGenerator() {
    var S4 = function () {
        return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
    };
    return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
}
function handleError(msg, url, l) { txt = "Tracking Error.\n\n Error: " + msg + "\nURL: " + url + "\nLine: " + l + "\n\nClick OK to continue.\n\n"; return true; }

