// Modified to be URL-safe; based on phpOpenTracker (which is based on http://www.jan-winkler.de/hw/artikel/art_j02.htm)
function urlsafe_b64encode(decStr) {
    var base64s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
    var bits;
    var dual;
    var i = 0;
    var encOut = '';

    while(decStr.length >= i + 3) {
        bits = (decStr.charCodeAt(i++) & 0xff) <<16 |
               (decStr.charCodeAt(i++) & 0xff) <<8 |
               decStr.charCodeAt(i++) & 0xff;

        encOut += base64s.charAt((bits & 0x00fc0000) >>18) +
                  base64s.charAt((bits & 0x0003f000) >>12) +
                  base64s.charAt((bits & 0x00000fc0) >> 6) +
                  base64s.charAt((bits & 0x0000003f));
    }

    if(decStr.length -i > 0 && decStr.length -i < 3) {
        dual = Boolean(decStr.length -i -1);

        bits = ((decStr.charCodeAt(i++) & 0xff) <<16) |
               (dual ? (decStr.charCodeAt(i) & 0xff) <<8 : 0);

    encOut += base64s.charAt((bits & 0x00fc0000) >>18) +
              base64s.charAt((bits & 0x0003f000) >>12) +
              (dual ? base64s.charAt((bits & 0x00000fc0) >>6) : '=') +
              '=';
    }

    return(encOut);
}

var MDS={};

MDS.log = function(client_id) {
    document.write(
        '<img src="http://automaticallyyours.com/img/'
        + client_id
        + '/smiley.gif'
        + '?document=' + urlsafe_b64encode(document.URL)
        + '&referer='  + urlsafe_b64encode(document.referrer)
        + '&resolution=' + window.screen.width + 'x' + window.screen.height + 'x' + window.screen.colorDepth
        + '&browser_X=' + window.innerWidth
        + '&browser_Y=' + window.innerHeight
        + '" alt="" width="1" height="1" />'
    );
}
