﻿
// Roller

function Roller(data, controlname, objectname)
{
    this.ObjectName = objectname;
    this.ControlName = controlname;
    this.Data = data;
    this.Start = Start;
    this.Roll = Roll;
    this.RandomIndex = RandomIndex;
    //alert('constructed');
}

function Roll(index)
{
    //alert('start roll');
    var nextindex;
    if (index >= this.Data.length - 1)
        nextindex = 0;
    else
        nextindex = index + 1;
        
    //alert(index + ", " + this.Data.length);
    try
    {
        var timeout = this.Data[index].timeout * 1000;
        var content = this.Data[index].content;
        var bgColor = this.Data[index].bgColor;
    }
    catch(err)
    {
        //alert(err);
        this.Roll(nextindex);
    }
    
    //alert('looking for:' + this.ControlName);
    var s = document.getElementById(this.ControlName);
    if (s)
    {
       // alert('found');
        s.style.backgroundColor = bgColor;
        s.innerHTML = content;
       // alert('change');
        window.setTimeout(this.ObjectName + '.Roll(' + nextindex + ')', timeout); 
    }    
}   

function Start()
{
    //alert('starting');
    this.Roll(this.RandomIndex());   
}

function RandomIndex()
{
    //alert('randomizing');
    var rand = Math.random();
    var div = this.Data.length;
    while (div > 1)
    {
        rand = rand * 10;
        div = div/10.0
    }
    
    rand = rand % this.Data.length;
    
    //alert(rand);
    return Math.round(rand)
}  
