var SCOREBOARD_PIXEL_WIDTH = 640;
var SCOREBOARD_PIXEL_HEIGHT = 16;
var CHAR_SIZE = 16;
var PIXEL_SIZE = 1;
var LETTERS_ASCII_OFFSET = 32;
var PIXEL_SPACING = 2;
var SPEED = 1;
var frameId = 0;
var frameRateMS = 250;  //  125 == 8 fps
var scoreboard;
var three60 = Math.PI*2;

var input = "";

function initScoreboard( msg ) {
	
	// Set up the scoreboard, first...
	scoreboard = document.getElementById( "scoreboard" );
	scoreboard.setAttribute( "width", SCOREBOARD_PIXEL_WIDTH );
	scoreboard.setAttribute( "height", SCOREBOARD_PIXEL_HEIGHT );
	sbContext = scoreboard.getContext( "2d" );
	
	input = msg;
	
	//  Now, draw the letters...
	//renderScoreboard();
	
}

function startScoreboardRender() {
	
	frameId = setInterval( renderScoreboard, frameRateMS );
	scoreboard.onclick = function() {
		
		clearInterval( frameId );
		
	}

}

function staticRenderScoreboard() {
	
	sbContext.fillStyle = "#000000";
	clearScoreboard();
	
	sbContext.beginPath();
	sbContext.fillStyle = "#771111";
	
	if( input.length <= SCOREBOARD_PIXEL_WIDTH ) {
	
		for( var k = 0; k < input.length; k++ ) {
		
			var position = k * CHAR_SIZE;
			var charCode = input.charCodeAt( k );
			//$( "#console" ).append( charCode + " :: " + input.charAt( k ) + " -- " + ( position + CHAR_SIZE ) + " || " );
			
			for( var i = position; i < position + CHAR_SIZE; i++ ) {
				
				for( var j = 0; j < SCOREBOARD_PIXEL_HEIGHT; j++ ) {
					
					//if( j % PIXEL_SPACING == 0 ) {
						
						if( ASCII_PIXEL_DEFINITIONS[ TRANSLATOR( charCode ) ][ j ][ (i % CHAR_SIZE) ] == 1 ) { setPixel( i, j ); }
						
					//}
				}
			}
		}
	}
	
	sbContext.stroke();
	
}

function stepRenderScoreboard() {
	
	var firstChar = input[ 0 ];
	input = input.substr( 1, input.length - 1 );
	input += firstChar;
	
	sbContext.fillStyle = "#000000";
	clearScoreboard();
	
	sbContext.beginPath();
	sbContext.fillStyle = "#771111";
	
	if( input.length <= SCOREBOARD_PIXEL_WIDTH ) {
	
		for( var k = 0; k < input.length; k++ ) {
		
			var position = k * CHAR_SIZE;
			var charCode = input.charCodeAt( k );
			//$( "#console" ).append( charCode + " :: " + input.charAt( k ) + " -- " + ( position + CHAR_SIZE ) + " || " );
			
			for( var i = position; i < position + CHAR_SIZE; i++ ) {
				
				for( var j = 0; j < SCOREBOARD_PIXEL_HEIGHT; j++ ) {
					
					//if( j % PIXEL_SPACING == 0 ) {
						
						if( ASCII_PIXEL_DEFINITIONS[ TRANSLATOR( charCode ) ][ j ][ (i % CHAR_SIZE) ] == 1 ) { setPixel( i, j ); }
						
					//}
				}
			}
		}
	}
	
	sbContext.stroke();
	
}

function setPixel( x, y ) {
	
	sbContext.fillRect( x, y, 1, 1 );
	
}

function clearScoreboard() {
	
	sbContext.fillRect( 0, 0, SCOREBOARD_PIXEL_WIDTH, SCOREBOARD_PIXEL_HEIGHT );
	
}
