// Gate image overlays

cdff0000 = new Image(400, 300); cdff0000.src = "images/cmos_dff0000.gif";
cdff0011 = new Image(400, 300); cdff0011.src = "images/cmos_dff0011.gif";
cdff0100 = new Image(400, 300); cdff0100.src = "images/cmos_dff0100.gif";
cdff0101 = new Image(400, 300); cdff0101.src = "images/cmos_dff0101.gif";
cdff1000 = new Image(400, 300); cdff1000.src = "images/cmos_dff1000.gif";
cdff1011 = new Image(400, 300); cdff1011.src = "images/cmos_dff1011.gif";
cdff1110 = new Image(400, 300); cdff1110.src = "images/cmos_dff1110.gif";
cdff1111 = new Image(400, 300); cdff1111.src = "images/cmos_dff1111.gif";


// gate input values

var gatesIn = new Array(0);
gatesIn[0] = new Array(1);	// CMOS D Edge-triggered flip-flop
gatesIn[0][0] = "0";
gatesIn[0][1] = "0";

var gatesOut = new Array(0);	// CMOS D Edge-triggered flip-flop
gatesOut[0] = new Array(1);
gatesOut[0][0] = "0";
gatesOut[0][1] = "0";

// gate names

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


// Input and output counts

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

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


function findOutput(gateID, inputID) {
        myGate = gateID;
        myInput = inputID;
        // Determine output state for current inputs
	if (gatesIn[myGate][1] == "1") {
		gatesOut[myGate][0] = gatesIn[myGate][0];
	} else {
                gatesOut[myGate][1] = gatesOut[myGate][0]
        }
}

