var req;

var got_fresh_stuff = false;
var request_in_progress = false;

var latest_data;
var data_array;
var e1 = null;

var tl = 30;
var t1 = "Ticker waiting for data from server\n";
t1 = t1 + "+++" + repeat(" ", tl) + "+++ ";

function repeat(s,n) {
    var ans="";
    var i;
    for (i = 0; i < n; ++i) {
        ans = ans + s;
    };
    return ans;
};

function make_request(url) {
    if (request_in_progress) {
        alert("Request already in progress!");
        return false;
    };
    request_in_progress = true;
    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        req = new XMLHttpRequest();
    }
    else {
    	if (window.ActiveXObject) {
    		try {
    			req = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    		catch (e) {
    		}
    	}
    }
    if (req) {
    	req.onreadystatechange = function() { state_change(req); };
    	req.open('GET', url, true);
    	req.send(null);
    }
    else {
		latest_data = "Sorry, your browser does not support the 'fresh leads' ticker";
		got_fresh_stuff = true;
    }
};

function state_change(req) {
    var rs = req.readyState;
    var a,i,n;
    if (rs >= 4) {
        latest_data = req.responseText;
        a = latest_data.split(/\n/);
        latest_data = "";
        for (i = 0; i < a.length; ++i) {
            if (a[i]) {
                latest_data += "+++" + repeat(" ", tl) + "+++ " + a[i] ;
                if (i >= a.length - 2) {
                    latest_data += "\n";
                }
                else {
                    latest_data += " ";
                };
            };
        };
        got_fresh_stuff = true;
        request_in_progress = false;
    };
};

function start_fun() {
    if (e1) {
        alert("Scrolling off");
        clearInterval(e1);
        e1 = null;
    }
    else {
        alert("Scrolling on");
        e1 = setInterval("scroll_ticker()",150);
    };
};


function scroll_ticker() {
    var t2 = t1.substr(0, tl);      //  20 chars for ticker
    var t3 = t2.substr(0, 1);       //  first char
    t1 = t1.substr(1) + t3;         //  scroll it around
    t2 = t2.replace(/\s/g,"&nbsp;");
    document.getElementById("ticker").innerHTML = t2;
    if (!got_fresh_stuff && !request_in_progress) {
        make_request("/cgi-bin/ticker_backend.pl");
    };
    if ((t3 == "\n") && got_fresh_stuff){
        t1 = latest_data;
        got_fresh_stuff = false;
    };
};


