﻿//****************** 7 Segment Counter **********************************//
//** This class create a seven segment counter *******************************//
//** Params: sDiv -> DIV id to place counter in 	&	sCount-> Number that countdown is starting at 
function digiCounter(sDiv, sCount){
	this.sNumber = sCount;
	createTable(sDiv);
}


function createTable(sDiv, sStyle){
	var oDiv = document.createElement("div");
	oDiv.setAttribute("style", sStyle);
	oDiv.setAttribute("align", "center");
	document.getElementById(sDiv).appendChild(oDiv);
	var oTable = document.createElement("table");
	oTable.setAttribute("id", "test");
	oTable.setAttribute("width", "100");
	oTable.setAttribute("height", "130");

	var oTbody = document.createElement("tbody");
	oTable.appendChild(oTbody);

	for(i=0; i<=4; i++ ){
		oTbody.insertRow(i);	
	}

	for (i=0; i <= 4 ; i++ ){
		for ( var j=0; j <= 2 ; j++ ){
			oTbody.rows[i].insertCell(j);
			oTbody.rows[i].cells[j].setAttribute("id" , i+j.toString());
		}		
	}
	
	oDiv.appendChild(oTable);
}

digiCounter.prototype.getArray = function(sNum){
	var zero = [ "00", "01", "02", "10", "12", "20", "22", "30", "32", "40", "41", "42" ];
	var one = [ "01", "11", "21", "31", "41" ];
	var two = [ "00", "01", "02", "12", "20" ,"21", "22", "30", "40", "41", "42" ];
	var three = [ "00", "01", "02", "12", "20" ,"21", "22", "32", "40", "41", "42" ];
	var four = [ "00", "02", "10", "12", "20" ,"21", "22", "32", "42" ];
	var five = [ "00", "01", "02", "10", "20" ,"21", "22", "32","40", "41", "42" ];
	var six = [ "00", "01", "02", "10", "20" ,"21", "22","30", "32","40", "41", "42" ];
	var seven = [ "00", "01", "02", "12", "22", "32", "42" ];
	var eight = [ "00", "01", "02", "10", "12", "20" ,"21", "22","30", "32","40", "41", "42" ];
	var nine = [ "00", "01", "02", "10", "12", "20" ,"21", "22", "32","40", "41", "42" ];
	
	switch(sNum){
		case("0"):
		return zero;
		break;
		
		case("1"):
		return one;
		break;
		
		case("2"):
		return two;
		break;
		
		case("3"):
		return three;
		break;
		
		case("4"):
		return four;
		break;
		
		case("5"):
		return five;
		break;
		
		case("6"):
		return six;
		break;
		
		case("7"):
		return seven;
		break;
		
		case("8"):
		return eight;
		break;
		
		case("9"):
		return nine;
		break;
	}
}

digiCounter.prototype.showNum = function(){
	--this.sNumber;
	var arr = this.getArray(this.sNumber.toString());
	var color = "#666";
	
	for(num in arr){
		document.getElementById(arr[num]).style.backgroundColor = color;		
	}
	setTimeout(this.clear,1000);
}

digiCounter.prototype.clear = function(){
	var cells = [ "00", "01", "02", "10", "11" ,"12", "20", "21", "22", "30", "31", "32", "40", "41", "42" ];	
	
	for(cell in cells){
		document.getElementById(cells[cell]).style.backgroundColor = "";		
	}
}
