function ScrollSync(scrollerElmtId){
	this.scroller = new Scroller(scrollerElmtId);
	this.syncArray = new Array();
}

ScrollSync.prototype.add = function(startTime, endTime, text, wordsArray){
	for (var i=0; i<wordsArray.length; i=i+1){
		
		var start = parseFloat(wordsArray[i][1]);
		
		var j = i;
		var end = start;
		var prev = start;
		
        while(end-start < 0.7 /*&& end-prev < 0.4*/ && j<wordsArray.length-1){
			prev = end;
			j=j+1;
            end = parseFloat(wordsArray[j][1]);
        }
		
		var snip = "";
		for (var k=i; k<=j; k=k+1){
			snip += wordsArray[k][0] + " ";
		}
		
        var obj = new Object();
        obj.startTime = start;
        obj.endTime = end;
	    obj.text = snip;
	    this.syncArray.push(obj);
        
		var args = new Object();
	    args.ScrollSync = "ScrollSync";
	    CuePointsList.setCuePoint(this.syncArray.length, start + 1.2, args);
		
		i = j;
	}
	
	/*
    // maintain the sync array
    var obj = new Object();
    obj.startTime = startTime;
    obj.endTime = endTime;
    obj.text = text;
    this.syncArray.push(obj);
	
	// insert the content cue
	var syncIndex = this.syncArray.length;
	var args = new Object();
	args.ScrollSync = "ScrollSync";
	CuePointsList.setCuePoint(syncIndex, startTime - 1.5, args);
	*/
}

ScrollSync.prototype.update = function(index){
	var obj = this.syncArray[index];
	//console.log("Scroll: " + index + " time: " + obj.startTime + " - " + obj.endTime + " :: " + obj.text);
	this.scroller.update(obj.text, obj.startTime, obj.startTime, 0);
}