/* --------------------------------------- function ResetVariables() -----------------------------------*/
function ResetVariables() {
	particularFirst = 0;
	numPrem = 0;
	Premise1[0] = ""; //holds the letter of the mood for this premise.
	Premise1[1] = ""; //holds the position of the middle term, 0 for first, 1 for second.
	Premise2[0] = "";
	Premise2[1] = "";
	document.VennDiag.src = 'images/base.gif'; //sets the blank Venn image.
	document.VennD.correctIncorrect.src = isCorrect[0].src; //sets the blank image for Correct/Valid
	conclusionSet = 0;
	moodFig = "";
	validitySet = 0;
	valid = 0;
	document.VennD.selectC1.selectedIndex = 0;
	document.VennD.selectP1.selectedIndex = 0;
	document.VennD.selectP2.selectedIndex = 0;
	document.VennD.selectValidity.selectedIndex = 0;
	document.VennD.rule1.checked = 0;
	document.VennD.rule2.checked = 0;
	document.VennD.rule3.checked = 0;
	document.VennD.rule4.checked = 0;
	document.VennD.rule5.checked = 0;
	document.VennD.startOver.src = startOverButton[0].src
	return 1;
//	document.VennD.reset();  //cannot use this as reseting the form calls resetVariables.
}
/* --------------------------------------- function Set2Prem()-----------------------------------*/
//if one premise has been set, Set2Prem is called to set the second premise and draw the diagram.
function Set2Prem() {
	var Num;
	var temp;
	if(Premise1[1] == 1 && Premise2[1] == 1){
		Num = 3;
	} else 	if(Premise1[1] == 1 && Premise2[1] == 2){
		Num = 1;
	} else 	if(Premise1[1] == 2 && Premise2[1] == 1){
		Num = 4;
	} else 	if(Premise1[1] == 2 && Premise2[1] == 2){
		Num = 2;
	}
	temp = Premise1[0] + Premise2[0] + Num;
	for(i=0; i<64; i++) {
		if(VennNo[i] == temp) {		
			document.VennDiag.src = VennImage[i].src;
			break;
		}
	}
	return 1;
}

/* --------------------------------------- function CheckRules() -----------------------------------*/
// function to check the rules selected and compare with the rules violated
function CheckRules() {
	if (valid == 1) {
		alert("Selecting Rules Violated is only applicable for invalid syllogisms.");
		ResetVariables();
		document.VennD.reset();		
		return 1;
	}
	if(!moodFig || (validitySet == 0)) {
		alert("You must first set Premise 1, Premise 2, Conclusion, and then \njudge Validity before selecting \"Check Rules Violated.\"");
		ResetVariables();
		document.VennD.reset();
		return 1;
	}
	var rule1 = document.VennD.rule1.checked;
	if (rule1) {rule1 = "1"} else {rule1 = ""};
	var rule2 = document.VennD.rule2.checked;
	if (rule2) {rule2 = "2"} else {rule2 = ""};
	var rule3 = document.VennD.rule3.checked;
	if (rule3) {rule3 = "3"} else {rule3 = ""};
	var rule4 = document.VennD.rule4.checked;
	if (rule4) {rule4 = "4"} else {rule4 = ""};
	var rule5 = document.VennD.rule5.checked;
	if (rule5) {rule5 = "5"} else {rule5 = ""};
	var selectedRules = rule1 + rule2 + rule3 + rule4 + rule5;
//-----------------
	var ruleStatement = "This syllogism breakes the following Rule(s): ";
	var rulesLength;
	var rulesBroken = new Array(5);
	for(i=1; i<243; i++) {
		if (ruleNo[i] == moodFig) {			
			thisRule = RuleBroken[i];
		}
	}
	rulesLength = thisRule.length;
	for(i = 0; i<rulesLength; i++) {
		rulesBroken[i] = thisRule.substring(i+1,i);
	}
	ruleStatement += rulesBroken[0];
	n=1;
	while(rulesBroken[n]) {
		ruleStatement += ", " + rulesBroken[n];
		n++;
	}
	if((thisRule == selectedRules) && (thisRule == 5)) {
		document.VennD.rules.value = rule5Right;
	} else if(thisRule == selectedRules) {
		document.VennD.rules.value = allRight;
	} else {
		document.VennD.rules.value = "Incorrect.  " + ruleStatement +"\n" + notRight;
	}
	document.VennD.startOver.src = startOverButton[1].src;
	return 1;
}	

/* --------------------------------------- function setC1()-----------------------------------*/
// sets the mood of the conclusion
function setC1() {
	var temp = document.VennD.selectC1.selectedIndex;
	if (document.VennD.selectC1.selectedIndex == 0) { 
		return 1;
	} else if (document.VennD.selectC1.selectedIndex == 1) {
		Conclusion = "A";
	} else if (document.VennD.selectC1.selectedIndex == 2) {
		Conclusion = "E";
	} else if (document.VennD.selectC1.selectedIndex == 3) {
		Conclusion = "I";
	} else if (document.VennD.selectC1.selectedIndex == 4) {
		Conclusion = "O";
	}
	if (numPrem == 2) {
		getSyllogism();
		conclusionSet = 1;
	} else {
		alert("Please select the premises first.");
		ResetVariables();
		document.VennD.reset();		
	}	
	return 1;
}

/* --------------------------------------- function getSyllogism() -----------------------------------*/
//sets the mood and figure of the syllogism.
function getSyllogism() {
	if (Premise1[1] == 1 && Premise2[1] == 1) {
		figure = 3;
	} else if (Premise1[1] == 1 && Premise2[1] == 2) {
		figure = 1;
	} else if (Premise1[1] == 2 && Premise2[1] == 1) {
		figure = 4;
	} else if (Premise1[1] == 2 && Premise2[1] == 2) {
		figure = 2;
	}
//	alert (figure);
	moodFig = Premise1[0] + Premise2[0] + Conclusion + "-" + figure;
	return 1;
}

/* --------------------------------------- function setP1() -----------------------------------*/
// sets the mood and position of M for the first premise.
function setP1() {
//alert(numPrem);
	var temp = document.VennD.selectP1.selectedIndex;
	if (temp == 0) {
	return 1;
	} else 	if (temp == 1) {
		Premise1[0] = "A";
		Premise1[1] = 1;
	} else if (temp == 2) {
		Premise1[0] = "E";
		Premise1[1] = 1;
	} else if (temp == 3) {
		Premise1[0] = "I";
		Premise1[1] = 1;
	} else if (temp == 4) {
		Premise1[0] = "O";
		Premise1[1] = 1;
	} else if (temp == 6) {
		Premise1[0] = "A";
		Premise1[1] = 2;
	} else if (temp == 7) {
		Premise1[0] = "E";
		Premise1[1] = 2;
	} else if (temp == 8) {
		Premise1[0] = "I";
		Premise1[1] = 2;
	} else if (temp == 9) {
		Premise1[0] = "O";
		Premise1[1] = 2;
	}
	if (numPrem == 0) {
		var singleP = "";
		if (Premise1[0] == "I" || Premise1[0] == "O") {
			particularFirst = 1;
		}
		numPrem ++;
		singleP = "1" + Premise1[0] + Premise1[1];
		for (i = 0; i < 8; i++) {
			if (singleP == P1No[i]){
				document.VennDiag.src = P1image[i].src;
				break;
			}
		}
	}	else if(numPrem == 1) {
		if (particularFirst == 1 && (Premise1[0] == "A" || Premise1[0] == "E")){
			alert("You must enter the universal premise first.  Press Reset and start over.");
			numPrem = 0;
			ResetVariables();
			return 1;
		}
		numPrem++;
		Set2Prem();
	} else {
		alert("You have changed your Venn Diagram.  Press Reset and start over.");	
		numPrem = 0;
		ResetVariables();
		return 1;		
	}
	return 1;
}

/* --------------------------------------- function setP2() -----------------------------------*/
// sets the mood and position of M for the second premise.
function setP2() {
	var temp = document.VennD.selectP2.selectedIndex;
	if (temp == 0) { 
		return 1;
	} else if (temp == 1) {
		Premise2[0] = "A";
		Premise2[1] = 2;
	} else if (temp == 2) {
		Premise2[0] = "E";
		Premise2[1] = 2;
	} else if (temp == 3) {
		Premise2[0] = "I";
		Premise2[1] = 2;
	} else if (temp == 4) {
		Premise2[0] = "O";
		Premise2[1] = 2;
	} else if (temp == 6) {
		Premise2[0] = "A";
		Premise2[1] = 1;
	} else if (temp == 7) {
		Premise2[0] = "E";
		Premise2[1] = 1;
	} else if (temp == 8) {
		Premise2[0] = "I";
		Premise2[1] = 1;
	} else if (temp == 9) {
		Premise2[0] = "O";
		Premise2[1] = 1;
	}
	if (numPrem == 0) {
		if (Premise2[0] == "I" || Premise2[0] == "O") {
			particularFirst = 1;
		}
		var singleP = "";
		numPrem ++;
		singleP = "2" + Premise2[0] + Premise2[1];
		for (i = 0; i < 8; i++) {
			if (singleP == P2No[i]){
				document.VennDiag.src = P2image[i].src;
				break;
			}
		}
	}	else if(numPrem == 1) {
		if (particularFirst == 1 && (Premise2[0] == "A" || Premise2[0] == "E")){
		alert("You must enter the universal premise first.  Press Reset and start over.");	
			ResetVariables();
//			document.VennD.reset();
			return 1;
		}	
		numPrem++;
		Set2Prem();
	} else {
		alert("You have changed your Venn Diagram.  Press Reset and start over.");	
		numPrem = 0;
//		document.VennD.reset();
		ResetVariables();
		return 1;
	}
	return 1;
}

/* --------------------------------------- function checkValidity() -----------------------------------*/
// Checks the current syllogism against the 15 valid syllogisms that are listed in ValidSyllogisms array.
function checkValidity() {
	var temp;
	validitySet = 1;
	if (moodFig == "") {
		alert("You must first select the two premises and conclusion");
		ResetVariables();
		document.VennD.reset();		
		return 1;
	}
	for (i=0; i<16; i++) {
		if(moodFig == ValidSyllogisms[i]) {
			valid = 1;
			break;
		} else {
			valid = 0;
		}
	}
	if (valid == 1) {
		document.VennD.reasons.value = moodFig + validStatement;
		if (document.VennD.selectValidity.selectedIndex == 1) {
			document.VennD.correctIncorrect.src = isCorrect[1].src;
		} else {
			document.VennD.correctIncorrect.src = isCorrect[3].src;
		}
	} else {
		document.VennD.reasons.value = moodFig + invalidStatement;
		if(document.VennD.selectValidity.selectedIndex == 1) {
			document.VennD.correctIncorrect.src = isCorrect[4].src;
		} else{
			document.VennD.correctIncorrect.src = isCorrect[2].src;
		} 
	} 
	if (valid == 1) {document.VennD.startOver.src = startOverButton[1].src}
	return 1;
}

/* --------------------------------------- function MM_openBrWindow -----------------------------------*/
//pops open a window.
function MM_openBrWindow(theURL,winName,features) { // v1.2
  window.open(theURL,winName,features);
}
