﻿// WebTree tracking library.

function doTracking(handlerUrl, siteId, pageId, pageTitle)
{
    var url = handlerUrl + "?siteId=" + siteId + "&pageId=" + pageId + "&pageTitle=" + _uriEncode(pageTitle) + "&url=" + _uriEncode(document.location) + "&referrer=" + _uriEncode(document.referrer) + "&track=" + new Date().getTime();
    
    var trackingPixel = new Image();    
    trackingPixel.src = url;
    
    // Add a stop-time to make sure that the tracking pixel is loaded.
    var now = new Date();
    var stopTime = now.getTime() + 500; 
    while(now.getTime() < stopTime) now = new Date();
}

function doClick(handlerUrl, siteId, pageId, pageTitle, clickTitle, clickText, clickUrl, clickTarget)
{
    var url = handlerUrl + "?siteId=" + siteId + "&pageId=" + pageId + "&pageTitle=" + _uriEncode(pageTitle) + "&clickTitle=" + _uriEncode(clickTitle) + "&clickText=" + _uriEncode(clickText) + "&clickUrl=" + _uriEncode(clickUrl) + "&track=" + new Date().getTime();

    var trackingPixel = new Image();    
    
    if (navigator.userAgent.toLowerCase().indexOf('safari') >= 0 && clickTarget.toLowerCase() != '_blank') 
    {
        // Using Safari, clicks that are loaded into the same window require this special treatment:
        trackingPixel.onload = function() { window.location.href = clickUrl; }; 
        trackingPixel.src = url;    
        
        return false;
    }
    else
    {    
        trackingPixel.src = url;    
    
        //if (navigator.userAgent.toLowerCase().indexOf('msie') == -1)
        //{
            var now = new Date();
            var stopTime = now.getTime() + 500; 
            while(now.getTime() < stopTime) now = new Date();
        //}    
        
        return true;
    }
}

function _uriEncode(s, u) 
{
    if (typeof(encodeURIComponent) == 'function') 
    {
        if (u) 
            return encodeURI(s);
        else 
            return encodeURIComponent(s);
    } 
    else 
    {
        return escape(s);
    }
}

function _uriDecode(s) 
{
    if (typeof(decodeURIComponent) == 'function') 
        return decodeURIComponent(s);
    else 
        return unescape(s);
}
