// Gate image overlays

scp00000 = new Image(550, 200);	scp00000.src = "images/scp00000.gif"
scp00001 = new Image(550, 200);	scp00001.src = "images/scp00001.gif"
scp00010 = new Image(550, 200);	scp00010.src = "images/scp00010.gif"
scp00011 = new Image(550, 200);	scp00011.src = "images/scp00011.gif"
scp00100 = new Image(550, 200);	scp00100.src = "images/scp00100.gif"
scp00101 = new Image(550, 200);	scp00101.src = "images/scp00101.gif"
scp00110 = new Image(550, 200);	scp00110.src = "images/scp00110.gif"
scp00111 = new Image(550, 200);	scp00111.src = "images/scp00111.gif"
scp01000 = new Image(550, 200);	scp01000.src = "images/scp01000.gif"
scp01001 = new Image(550, 200);	scp01001.src = "images/scp01001.gif"
scp01010 = new Image(550, 200);	scp01010.src = "images/scp01010.gif"
scp01011 = new Image(550, 200);	scp01011.src = "images/scp01011.gif"
scp01100 = new Image(550, 200);	scp01100.src = "images/scp01100.gif"
scp01101 = new Image(550, 200);	scp01101.src = "images/scp01101.gif"
scp01110 = new Image(550, 200);	scp01110.src = "images/scp01110.gif"
scp01111 = new Image(550, 200);	scp01111.src = "images/scp01111.gif"
scp10000 = new Image(550, 200);	scp10000.src = "images/scp10000.gif"
scp10001 = new Image(550, 200);	scp10001.src = "images/scp10001.gif"
scp10010 = new Image(550, 200);	scp10010.src = "images/scp10010.gif"
scp10011 = new Image(550, 200);	scp10011.src = "images/scp10011.gif"
scp10100 = new Image(550, 200);	scp10100.src = "images/scp10100.gif"
scp10101 = new Image(550, 200);	scp10101.src = "images/scp10101.gif"
scp10110 = new Image(550, 200);	scp10110.src = "images/scp10110.gif"
scp10111 = new Image(550, 200);	scp10111.src = "images/scp10111.gif"
scp11000 = new Image(550, 200);	scp11000.src = "images/scp11000.gif"
scp11001 = new Image(550, 200);	scp11001.src = "images/scp11001.gif"
scp11010 = new Image(550, 200);	scp11010.src = "images/scp11010.gif"
scp11011 = new Image(550, 200);	scp11011.src = "images/scp11011.gif"
scp11100 = new Image(550, 200);	scp11100.src = "images/scp11100.gif"
scp11101 = new Image(550, 200);	scp11101.src = "images/scp11101.gif"
scp11110 = new Image(550, 200);	scp11110.src = "images/scp11110.gif"
scp11111 = new Image(550, 200);	scp11111.src = "images/scp11111.gif"

// gate input and output values

var gatesIn = new Array(0);
gatesIn[0] = new Array(0);	// 4-bit synchronous counter
gatesIn[0][0] = "0";

var gatesOut = new Array(0);
gatesOut[0] = new Array(3);	// 4-bit synchronous counter
gatesOut[0][0] = "0";
gatesOut[0][1] = "0";
gatesOut[0][2] = "0";
gatesOut[0][3] = "0";


// gate names

var gateNames = new Array(0);
gateNames[0] = "scp";


// Input and output counts

var gateInputs = new Array(0);
gateInputs[0] = 1;

var gateOutputs = new Array(0);
gateOutputs[0] = 4;


// Pulse state information -- initialize

var pulseRestingState = new Array(0);
pulseRestingState[0] = 0;
  
var pulseState = new Array(0);
pulseState[0] = pulseRestingState[0];


function findOutput(gateID, inputID) {
        myGate = gateID;
        myInput = inputID;
	// Determine output state for current inputs
	if (gatesIn[myGate][myInput] == "0") {
		myOutput = "0";
		i = 0;
		while (myOutput == "0" && i < 4) {
			myOutput = (gatesOut[myGate][i] == "0") ? "1" : "0";
			gatesOut[myGate][i] = myOutput;
			i++;
		}
	}
}

