
    //  Newsfeed Ajax and DOM controls
    //  March 2006 Mark Bold
    //  Please feel free to cut and paste
    
    function getEl (id) {
        var nf = '';
        if( document.getElementById ) {
            nf=document.getElementById(id); }
        if( document.all ) {
            nf=document.all[id]; }
        if( document[id] ) {
            nf=document[id]; }
        return nf;
    }


    function fetch_stats (id) {

        var stat_out = getEl ('stat_body_' + id);
        if (stat_out.style.display == 'none') {
                var req = false;
                req = createLink();
        
                stat_out.style.display = 'block';
                stat_out.innerHTML = 'Loading...';

                if (!req) {
                        stat_out.innerHTML = '<strong>Unavailable...</strong>';
                        return false;
                }
                // offer close button
                var stat_close = getEl ('stat_vite-' + id);
                stat_close.innerHTML = '-';
                
                req.open ('GET', '/stats/stats.php?id=' + id, true);
                req.onreadystatechange = function () { show_stats (req, stat_out); };
                req.send (null);
        }
        else {
                stat_out.style.display = 'none';
                var stat_open = getEl ('stat_vite-' + id);
                stat_open.innerHTML = '+';
        }
    }
    
    function show_stats (http_request, stat_out) {
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
                    stat_out.innerHTML =  http_request.responseText;
            } else {
                    stat_out.innerHTML = 'No stats available.';
            }
        }

    }

    function createLink () {
    
            var http_request = false;
            
            if (window.XMLHttpRequest) { // Mozilla, Safari,...
                http_request = new XMLHttpRequest();
                if (http_request.overrideMimeType) {
                    http_request.overrideMimeType('text/xml');
                }
            } else if (window.ActiveXObject) { // IE
                try {
                    http_request = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                    try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }
                    
     return http_request;
    }

