
function Ticker(elementName, initialValue, projectedValue) {

    if (!document.all && !document.getElementById)

        return;

    thelement = document.getElementById(elementName);



    var Digital = new Date();

    var date1 = new Date();

    var date2 = new Date();

    var date1temp = tickerStartDate;

    var date2temp = tickerEndDate;

    date1.setTime(date1temp.getTime());

    date2.setTime(date2temp.getTime());

    Digital.setTime(Math.abs(date2.getTime() - date1.getTime()));

    timediff = Digital.getTime();

    secs = timediff / 1000;

    Rate = (projectedValue - initialValue) / secs;

    var curr_date = new Date();



    //adjustments for timezone.  Server is GMT 8

    var timezone = curr_date.getTimezoneOffset() / 60.;

    hours = curr_date.getTimezoneOffset() / 60;

    minutes = curr_date.getTimezoneOffset() % 60;



    if (timezone > 8)

        curr_date.setHours(curr_date.getHours() + (hours - 8), curr_date.getMinutes() + minutes);



    if (timezone < 8)

        curr_date.setHours(curr_date.getHours() - (8 - hours), curr_date.getMinutes() - minutes);



    // if current date > ticker end date, ticker stops ticking

    // otherwise use difference of current date and ticker start date

    if (date2.getTime() >= curr_date.getTime())

        curr_sec = Math.abs(curr_date.getTime() - date1.getTime()) / 1000;

    else

        curr_sec = secs; //Math.abs(curr_date.getTime() - date2.getTime())/1000;



    RN_secs = new Array(5); RN_secs[1] = 5000; RN_secs[2] = 1000; RN_secs[3] = 2000; RN_secs[4] = 3000; RN_secs[5] = 4000;

    RN_Books = new Array(5); RN_Books[1] = Rate + 1; RN_Books[2] = Rate + 2; RN_Books[3] = Rate; RN_Books[4] = Rate - 1; RN_Books[5] = Rate - 2;

    num = Math.floor(5 * Math.random() + 1);

    new_value = initialValue + (Rate * curr_sec);

    if (elementName == 'Donations') {

        thelement.innerHTML = formatNumber(new_value, 2, ',', '.', '', '', '', '');

    } else {

        thelement.innerHTML = formatNumber(new_value, 0, ',', '', '', '', '', '');

    }

    setTimeout("Ticker('" + elementName + "'," + initialValue + "," + projectedValue + ")", RN_secs[num]);

};

function formatNumber(num, dec, thou, pnt, curr1, curr2, n1, n2) { var x = Math.round(num * Math.pow(10, dec)); if (x >= 0) n1 = n2 = ''; var y = ('' + Math.abs(x)).split(''); var z = y.length - dec; if (z < 0) z--; for (var i = z; i < 0; i++) y.unshift('0'); y.splice(z, 0, pnt); if (y[0] == pnt) y.unshift('0'); while (z > 3) { z -= 3; y.splice(z, 0, thou); } var r = curr1 + n1 + y.join('') + n2 + curr2; return r; };

function RunTicker() { Ticker('Donations', tickerDonations, tickerProjectDonations); Ticker('WasteSaved', tickerWasteSaved, tickerProjectedWasteSaved); };


