

//<![CDATA[

<!--


function Client(){
//if not a DOM browser, hopeless
	this.min = false; if (document.getElementById){this.min = true;};

	this.ua = navigator.userAgent;
	this.name = navigator.appName;
	this.ver = navigator.appVersion;  

//Get data about the browser
	this.mac = (this.ver.indexOf('Mac') != -1);
	this.win = (this.ver.indexOf('Windows') != -1);

//Look for Gecko
	this.gecko = (this.ua.indexOf('Gecko') > 1);
	if (this.gecko){
		this.geckoVer = parseInt(this.ua.substring(this.ua.indexOf('Gecko')+6, this.ua.length));
		if (this.geckoVer < 20020000){this.min = false;}
	}
	
//Look for Firebird
	this.firebird = (this.ua.indexOf('Firebird') > 1);
	
//Look for Safari
	this.safari = (this.ua.indexOf('Safari') > 1);
	if (this.safari){
		this.gecko = false;
	}
	
//Look for IE
	this.ie = (this.ua.indexOf('MSIE') > 0);
	if (this.ie){
		this.ieVer = parseFloat(this.ua.substring(this.ua.indexOf('MSIE')+5, this.ua.length));
		if (this.ieVer < 5.5){this.min = false;}
	}
	
//Look for Opera
	this.opera = (this.ua.indexOf('Opera') > 0);
	if (this.opera){
		this.operaVer = parseFloat(this.ua.substring(this.ua.indexOf('Opera')+6, this.ua.length));
		if (this.operaVer < 7.04){this.min = false;}
	}
	if (this.min == false){
		alert('Your browser may not be able to handle this page.');
	}
	
//Special case for the horrible ie5mac
	this.ie5mac = (this.ie&&this.mac&&(this.ieVer<6));
}

var C = new Client();

//for (prop in C){
//	alert(prop + ': ' + C[prop]);
//}



//CODE FOR HANDLING NAV BUTTONS AND FUNCTION BUTTONS

//[strNavBarJS]
function NavBtnOver(Btn){
	if (Btn.className != 'NavButtonDown'){Btn.className = 'NavButtonUp';}
}

function NavBtnOut(Btn){
	Btn.className = 'NavButton';
}

function NavBtnDown(Btn){
	Btn.className = 'NavButtonDown';
}
//[/strNavBarJS]

function FuncBtnOver(Btn){
	if (Btn.className != 'FuncButtonDown'){Btn.className = 'FuncButtonUp';}
}

function FuncBtnOut(Btn){
	Btn.className = 'FuncButton';
}

function FuncBtnDown(Btn){
	Btn.className = 'FuncButtonDown';
}

function FocusAButton(){
	if (document.getElementById('CheckButton1') != null){
		document.getElementById('CheckButton1').focus();
	}
	else{
		if (document.getElementById('CheckButton2') != null){
			document.getElementById('CheckButton2').focus();
		}
		else{
			document.getElementsByTagName('button')[0].focus();
		}
	}
}




//CODE FOR HANDLING DISPLAY OF POPUP FEEDBACK BOX

var topZ = 1000;

function ShowMessage(Feedback){
	var Output = Feedback + '<br /><br />';
	document.getElementById('FeedbackContent').innerHTML = Output;
	var FDiv = document.getElementById('FeedbackDiv');
	topZ++;
	FDiv.style.zIndex = topZ;
	FDiv.style.top = TopSettingWithScrollOffset(30) + 'px';

	FDiv.style.display = 'block';

	ShowElements(false, 'input');
	ShowElements(false, 'select');
	ShowElements(false, 'object');

//Focus the OK button
	setTimeout("document.getElementById('FeedbackOKButton').focus()", 50);
	
//
}

function ShowElements(Show, TagName){
//Special for IE bug -- hide all the form elements that will show through the popup
	if (C.ie){
		var Els = document.getElementsByTagName(TagName);
		for (var i=0; i<Els.length; i++){
			if (Show == true){
				Els[i].style.display = 'inline';
			}
			else{
				Els[i].style.display = 'none';
			}
		}
	} 
}

function HideFeedback(){
	document.getElementById('FeedbackDiv').style.display = 'none';
	ShowElements(true, 'input');
	ShowElements(true, 'select');
	ShowElements(true, 'object');
	if (Finished == true){
		Finish();
	}
}


//GENERAL UTILITY FUNCTIONS AND VARIABLES

//PAGE DIMENSION FUNCTIONS
function PageDim(){
//Get the page width and height
	this.W = 600;
	this.H = 400;
	this.W = document.getElementsByTagName('body')[0].clientWidth;
	this.H = document.getElementsByTagName('body')[0].clientHeight;
}

var pg = null;

function GetPageXY(El) {
	var XY = {x: 0, y: 0};
	while(El){
		XY.x += El.offsetLeft;
		XY.y += El.offsetTop;
		El = El.offsetParent;
	}
	return XY;
}

function GetScrollTop(){
	if (document.documentElement && document.documentElement.scrollTop){
		return document.documentElement.scrollTop;
	}
	else{
		if (document.body){
 			return document.body.scrollTop;
		}
		else{
			return window.pageYOffset;
		}
	}
}

function GetViewportHeight(){
	if (window.innerHeight){
		return window.innerHeight;
	}
	else{
		return document.getElementsByTagName('body')[0].clientHeight;
	}
}

function TopSettingWithScrollOffset(TopPercent){
	var T = Math.floor(GetViewportHeight() * (TopPercent/100));
	return GetScrollTop() + T; 
}

//CODE FOR AVOIDING LOSS OF DATA WHEN BACKSPACE KEY INVOKES history.back()
var InTextBox = false;

function SuppressBackspace(e){ 
	if (InTextBox == true){return;}
	if (C.ie) {
		thisKey = window.event.keyCode;
	}
	else {
		thisKey = e.keyCode;
	}

	var Suppress = false;

	if (thisKey == 8) {
		Suppress = true;
	}

	if (Suppress == true){
		if (C.ie){
			window.event.returnValue = false;	
			window.event.cancelBubble = true;
		}
		else{
			e.preventDefault();
		}
	}
}

if (C.ie){
	document.attachEvent('onkeydown',SuppressBackspace);
	window.attachEvent('onkeydown',SuppressBackspace);
}
else{
	if (window.addEventListener){
		window.addEventListener('keypress',SuppressBackspace,false);
	}
}

function ReduceItems(InArray, ReduceToSize){
	var ItemToDump=0;
	var j=0;
	while (InArray.length > ReduceToSize){
		ItemToDump = Math.floor(InArray.length*Math.random());
		InArray.splice(ItemToDump, 1);
	}
}

function Shuffle(InArray){
	var Num;
	var Temp = new Array();
	var Len = InArray.length;

	var j = Len;

	for (var i=0; i<Len; i++){
		Temp[i] = InArray[i];
	}

	for (i=0; i<Len; i++){
		Num = Math.floor(j  *  Math.random());
		InArray[i] = Temp[Num];

		for (var k=Num; k < (j-1); k++) {
			Temp[k] = Temp[k+1];
		}
		j--;
	}
	return InArray;
}

function WriteToInstructions(Feedback) {
	document.getElementById('InstructionsDiv').innerHTML = Feedback;

}




function EscapeDoubleQuotes(InString){
	return InString.replace(/"/g, '&quot;')
}

function TrimString(InString){
        var x = 0;

        if (InString.length != 0) {
                while ((InString.charAt(InString.length - 1) == '\u0020') || (InString.charAt(InString.length - 1) == '\u000A') || (InString.charAt(InString.length - 1) == '\u000D')){
                        InString = InString.substring(0, InString.length - 1)
                }

                while ((InString.charAt(0) == '\u0020') || (InString.charAt(0) == '\u000A') || (InString.charAt(0) == '\u000D')){
                        InString = InString.substring(1, InString.length)
                }

                while (InString.indexOf('  ') != -1) {
                        x = InString.indexOf('  ')
                        InString = InString.substring(0, x) + InString.substring(x+1, InString.length)
                 }

                return InString;
        }

        else {
                return '';
        }
}

function FindLongest(InArray){
	if (InArray.length < 1){return -1;}

	var Longest = 0;
	for (var i=1; i<InArray.length; i++){
		if (InArray[i].length > InArray[Longest].length){
			Longest = i;
		}
	}
	return Longest;
}

//UNICODE CHARACTER FUNCTIONS
function IsCombiningDiacritic(CharNum){
	var Result = (((CharNum >= 0x0300)&&(CharNum <= 0x370))||((CharNum >= 0x20d0)&&(CharNum <= 0x20ff)));
	Result = Result || (((CharNum >= 0x3099)&&(CharNum <= 0x309a))||((CharNum >= 0xfe20)&&(CharNum <= 0xfe23)));
	return Result;
}

function IsCJK(CharNum){
	return ((CharNum >= 0x3000)&&(CharNum < 0xd800));
}

//SETUP FUNCTIONS
//BROWSER WILL REFILL TEXT BOXES FROM CACHE IF NOT PREVENTED
function ClearTextBoxes(){
	var NList = document.getElementsByTagName('input');
	for (var i=0; i<NList.length; i++){
		if ((NList[i].id.indexOf('Guess') > -1)||(NList[i].id.indexOf('Gap') > -1)){
			NList[i].value = '';
		}
		if (NList[i].id.indexOf('Chk') > -1){
			NList[i].checked = '';
		}
	}
}

//EXTENSION TO ARRAY OBJECT
function Array_IndexOf(Input){
	var Result = -1;
	for (var i=0; i<this.length; i++){
		if (this[i] == Input){
			Result = i;
		}
	}
	return Result;
}
Array.prototype.indexOf = Array_IndexOf;

//IE HAS RENDERING BUG WITH BOTTOM NAVBAR
function RemoveBottomNavBarForIE(){
	if ((C.ie)&&(document.getElementById('Reading') != null)){
		if (document.getElementById('BottomNavBar') != null){
			document.getElementById('TheBody').removeChild(document.getElementById('BottomNavBar'));
		}
	}
}




//HOTPOTNET-RELATED CODE

var HPNStartTime = (new Date()).getTime();
var SubmissionTimeout = 30000;
var Detail = ''; //Global that is used to submit tracking data

function Finish(){
//If there's a form, fill it out and submit it
	if (document.store != null){
		Frm = document.store;
		Frm.starttime.value = HPNStartTime;
		Frm.endtime.value = (new Date()).getTime();
		Frm.mark.value = Score;
		Frm.detail.value = Detail;
		Frm.submit();
	}
}



//JQUIZ CORE JAVASCRIPT CODE

var CurrQNum = 0;
var CorrectIndicator = ':-)';
var IncorrectIndicator = 'X';
var YourScoreIs = 'Your score is ';
var ContinuousScoring = true;
var CorrectFirstTime = 'Questions answered correctly first time: ';
var ShowCorrectFirstTime = false;
var ShuffleQs = true;
var ShuffleAs = true;
var DefaultRight = 'Correct!';
var DefaultWrong = 'Sorry! Try again.';
var QsToShow = 10;
var Score = 0;
var Finished = false;
var Qs = null;
var QArray = new Array();
var ShowingAllQuestions = false;
var ShowAllQuestionsCaption = 'Show all questions';
var ShowOneByOneCaption = 'Show questions one by one';
var State = new Array();
var Feedback = '';
var TimeOver = false;
var strInstructions = '';

//The following variable can be used to add a message explaining that
//the question is finished, so no further marking will take place.
var strQuestionFinished = '';

function CompleteEmptyFeedback(){
	var QNum, ANum;
	for (QNum=0; QNum<I.length; QNum++){
//Only do this if not multi-select
		if (I[QNum][2] != '3'){
  		for (ANum = 0; ANum<I[QNum][3].length; ANum++){
  			if (I[QNum][3][ANum][1].length < 1){
  				if (I[QNum][3][ANum][2] > 0){
  					I[QNum][3][ANum][1] = DefaultRight;
  				}
  				else{
  					I[QNum][3][ANum][1] = DefaultWrong;
  				}
  			}
  		}
		}
	}
}

function SetUpQuestions(){
	var AList = new Array(); 
	var QList = new Array();
	var i, j;
	Qs = document.getElementById('Questions');
	while (Qs.getElementsByTagName('li').length > 0){
		QList.push(Qs.removeChild(Qs.getElementsByTagName('li')[0]));
	}
	var DumpItem = 0;
	if (QsToShow > QList.length){
		QsToShow = QList.length;
	}
	while (QsToShow < QList.length){
		DumpItem = Math.floor(QList.length*Math.random());
		for (j=DumpItem; j<(QList.length-1); j++){
			QList[j] = QList[j+1];
		}
		QList.length = QList.length-1;
	}
	if (ShuffleQs == true){
		QList = Shuffle(QList);
	}
	if (ShuffleAs == true){
		var As;
		for (var i=0; i<QList.length; i++){
			As = QList[i].getElementsByTagName('ol')[0];
			if (As != null){
  			AList.length = 0;
				while (As.getElementsByTagName('li').length > 0){
					AList.push(As.removeChild(As.getElementsByTagName('li')[0]));
				}
				AList = Shuffle(AList);
				for (j=0; j<AList.length; j++){
					As.appendChild(AList[j]);
				}
			}
		}
	}
	
	for (i=0; i<QList.length; i++){
		Qs.appendChild(QList[i]);
		QArray[QArray.length] = QList[i];
	}

//Show the first item
	QArray[0].style.display = '';
	
//Now hide all except the first item
	for (i=1; i<QArray.length; i++){
		QArray[i].style.display = 'none';
	}		
	SetQNumReadout();
}

function ChangeQ(ChangeBy){
//The following line prevents moving to another question until the current
//question is answered correctly. Uncomment it to enable this behaviour. 
//	if (State[CurrQNum][0] == -1){return;}
	if (((CurrQNum + ChangeBy) < 0)||((CurrQNum + ChangeBy) >= QArray.length)){return;}
	QArray[CurrQNum].style.display = 'none';
	CurrQNum += ChangeBy;
	QArray[CurrQNum].style.display = '';
	SetQNumReadout();
//if there's a textbox, set the focus in it
	if (QArray[CurrQNum].getElementsByTagName('input')[0] != null){
		QArray[CurrQNum].getElementsByTagName('input')[0].focus();
	}
}

function SetQNumReadout(){
	document.getElementById('QNumReadout').innerHTML = (CurrQNum+1) + ' / ' + QArray.length;
}

I=new Array();
I[0]=new Array();I[0][0]=100;
I[0][1]='';
I[0][2]='0';
I[0][3]=new Array();
I[0][3][0]=new Array('The Articles of Confederation were replaced by the U.S. Constitution.','Right!  The Constitution authorized Congress "to provide and maintain a navy" .',1,100,1);
I[0][3][1]=new Array('The seizure of three U.S. ships by the Barbary pirates.','Sorry.  Three ships were seized earlier, but this wasn\'t what enabled Congress to build up our Navy.',0,0,1);
I[0][3][2]=new Array('The relative wealth of the United States after the Revolution.','Nope.  Actually, the U.S. was in deep debt after the Revolution.',0,0,1);
I[0][3][3]=new Array('The Treaty of Paris authorized the construction of an American Navy.','Nope.  This treaty ended the Revolutionary War and did not discuss the U.S. Navy.',0,0,1);
I[0][3][4]=new Array('President Washington gave his OK for Congress to pass this law.','Sorry.  This never occurred.',0,0,1);
I[1]=new Array();I[1][0]=100;
I[1][1]='';
I[1][2]='0';
I[1][3]=new Array();
I[1][3][0]=new Array('The United States, Constitution and the Constellation.','Correct!  These three ships were launched in 1797.',1,100,1);
I[1][3][1]=new Array('The Constitution, Constellation and Enterprise.','Sorry.  The Enterprise would not be commissioned until later.',0,0,1);
I[1][3][2]=new Array('The Constellation, Enterprise and United States.','Sorry.  The Enterprise would not be commissioned until later.',0,0,1);
I[1][3][3]=new Array('The Enterprise, Constitution and United States.','Nope.  The Enterprise would not be commissioned until later.',0,0,1);
I[1][3][4]=new Array('The Constitution, United States and Intrepid.','Nope.  The Intrepid would not be commissioned until much later.',0,0,1);
I[2]=new Array();I[2][0]=100;
I[2][1]='';
I[2][2]='0';
I[2][3]=new Array();
I[2][3][0]=new Array('1798','Correct!  30 April 1798 to be exact.',1,100,1);
I[2][3][1]=new Array('1797','Nope.  This was the year our first three frigates were built.',0,0,1);
I[2][3][2]=new Array('1794','Sorry.  This was the year the Navy Act was passed by Congress.',0,0,1);
I[2][3][3]=new Array('1801','Sorry.  This was the year the war with Tripoli and the Barbary Pirates began.',0,0,1);
I[2][3][4]=new Array('1800','Nope.  This was the year the Quasi-War with France ended.',0,0,1);
I[3]=new Array();I[3][0]=100;
I[3][1]='';
I[3][2]='0';
I[3][3]=new Array();
I[3][3][0]=new Array('Thomas Truxtun ','Correct!  Both of these battles were fought by Truxtun onboard the USS Constellation.',1,100,1);
I[3][3][1]=new Array('John Paul Jones','Sorry!  Captain Jones was the U.S. hero from the Revolutionary War, not the Quasi-War with France.',0,0,1);
I[3][3][2]=new Array('Thomas Jefferson','Nope.  Thomas Jefferson was the President of the United States later on.',0,0,1);
I[3][3][3]=new Array('Benjamin Stoddert','Nope.  Benjamin Stoddert was the Secretary of the Navy at this time (the 1st Secretary of the Navy.)',0,0,1);
I[3][3][4]=new Array('William Bainbridge ','Sorry.  Lt. Bainbridge fought the other of the three engagements.',0,0,1);
I[4]=new Array();I[4][0]=100;
I[4][1]='';
I[4][2]='0';
I[4][3]=new Array();
I[4][3][0]=new Array('Neither side won a decisive victory.  A peace treaty concluded the war.',' Excellent!  An unpopular provision in the treaty canceled U.S. claims against the French for attacking U.S. merchant ships.  This issue helped to defeat President Adams in the presidential election of 1800.',1,100,1);
I[4][3][1]=new Array('France defeated the United States.','Nope.  The Quasi-War did not end with a French victory.',0,0,1);
I[4][3][2]=new Array('The United States defeated France.','Sorry.  The Quasi-War did not end with a U.S. victory.',0,0,1);
I[4][3][3]=new Array('The U.S. won a Quasi-Victory.','Nope.  There is no such thing as a "Quasi-Victory".',0,0,1);
I[4][3][4]=new Array('The U.S. gained control of French territories in the West Indies.','Sorry.  The French West Indies were not in dispute during this war.',0,0,1);
I[5]=new Array();I[5][0]=100;
I[5][1]='';
I[5][2]='0';
I[5][3]=new Array();
I[5][3][0]=new Array('John Adams','Correct.  The terms of the peace which ended the war contributed to his defeat during the following election.',1,100,1);
I[5][3][1]=new Array('Thomas Jefferson','Nope.  Thomas Jefferson was elected following this war.',0,0,1);
I[5][3][2]=new Array('George Washington','Sorry.  George Washington was not President at this time.',0,0,1);
I[5][3][3]=new Array('Benjamin Franklin','Nope.  He was never elected President.',0,0,1);
I[5][3][4]=new Array('Samuel Adams','Nope.  He was never elected President.',0,0,1);
I[6]=new Array();I[6][0]=100;
I[6][1]='';
I[6][2]='0';
I[6][3]=new Array();
I[6][3][0]=new Array('Preble\'s Boys','Excellent.  Preble reportedly said when he first saw his junior officers "They have given me nothing but a pack of boys!"',1,100,1);
I[6][3][1]=new Array('Preble\'s Warriors','Nope.  Warriors they were, but that wasn\'t their name.',0,0,1);
I[6][3][2]=new Array('Preble\'s Best','Sorry.  Although many of the officers would prove themselves the finest in the Navy later on, this wasn\'t what they were called.',0,0,1);
I[6][3][3]=new Array('The Commodore\'s Men','Sorry.  Although he was a Commodore, this wasn\'t what his junior officers were called.',0,0,1);
I[6][3][4]=new Array('Preble\'s Officers','Nope.  That wasn\'t it.',0,0,1);
I[7]=new Array();I[7][0]=100;
I[7][1]='';
I[7][2]='0';
I[7][3]=new Array();
I[7][3][0]=new Array('Tripoli','Correct.  The "Philadelphia" in question was the USS Philadelphia, which had been captured by Tripoli.',1,100,1);
I[7][3][1]=new Array('Philadelphia ','Sorry.  That would be too easy.',0,0,1);
I[7][3][2]=new Array('Gibraltar ','Nope.  But it did occur fairly close to there.',0,0,1);
I[7][3][3]=new Array('Tangier','Sorry.  While the U.S. did have confrontations with Tangier during this time, the Philadelphia incident did not take place there.',0,0,1);
I[7][3][4]=new Array('Off the southern coast of France.','Nope.  That was the area that saw action during the Revolutionary War and the War of 1812.',0,0,1);
I[8]=new Array();I[8][0]=100;
I[8][1]='';
I[8][2]='0';
I[8][3]=new Array();
I[8][3][0]=new Array('Stephen Decatur Jr','Correct.  He and a small band of men recaptured the Philadelphia and burned her.',1,100,1);
I[8][3][1]=new Array('Edward Preble','Nope.  Commodore Preble commanded the group sent to deal with the Philadelphia Incident.',0,0,1);
I[8][3][2]=new Array('Richard Morris','Nope.  Commodore Morris had been relieved of command by Commodore Preble before this event.',0,0,1);
I[8][3][3]=new Array('William Bainbridge ','Sorry.  Lt Bainbridge did not participate in this action.',0,0,1);
I[8][3][4]=new Array('Thomas Truxtun ','Nope.  Commodore Truxtun heroic actions came during the Quasi-War with France.',0,0,1);
I[9]=new Array();I[9][0]=100;
I[9][1]='';
I[9][2]='0';
I[9][3]=new Array();
I[9][3][0]=new Array('William Eaton','Excellent.  Eaton devised a scheme to attack Tripoli and place the pasha\'s brother Hamet on the throne.',1,100,1);
I[9][3][1]=new Array('Edward Preble','Sorry.  Commodore Preble was the naval officer in charge of the squadron blockading the port of Tripoli.',0,0,1);
I[9][3][2]=new Array('Stephen Decatur Jr.','Nope.  Lt. Decatur was the young officer who led the assault to recapture and burn the USS Philadelphia so that Tripoli could not use her against the U.S. Navy.',0,0,1);
I[9][3][3]=new Array('William Bainbridge','Nope.  Capt. Bainbridge was the Commanding Officer of the USS Philadelphia when she ran aground and was captured by the Tripoli.',0,0,1);
I[9][3][4]=new Array('Reuben James ','Sorry.  Reuben James was one of the U.S. sailors who participated in the assault to burn the USS Philadelphia after she was captured by Tripoli.  He gave his live saving the life of Lt. Stephen Decatur Jr. during this battle.',0,0,1);
I[10]=new Array();I[10][0]=100;
I[10][1]='';
I[10][2]='0';
I[10][3]=new Array();
I[10][3][0]=new Array('The Marine Corps','Correct!  "...the shores of Tripoli."',1,100,1);
I[10][3][1]=new Array('The Navy','Nope.  The Navy was there but it is not in the Navy Hymn.',0,0,1);
I[10][3][2]=new Array('The Air Force','Nope.  The Air Force wasn\'t created for about another 150 years. ',0,0,1);
I[10][3][3]=new Array('The Army','Nope.  The Army didn\'t take part in this War.',0,0,1);
I[10][3][4]=new Array('The Coast Guard','Sorry.  There wasn\'t a Coast Guard at this point in our history.',0,0,1);
I[11]=new Array();I[11][0]=100;
I[11][1]='';
I[11][2]='0';
I[11][3]=new Array();
I[11][3][0]=new Array('They thought the complete defeat of Tripoli and the Barbary States would have resulted in better terms.','Excellent!  They felt making an example of Tripoli would discourage others from trying the same tricks.',1,100,1);
I[11][3][1]=new Array('Because it meant that the navy would be completely disbanded.','Sorry.  There was no such cry to disband the Navy after the end of the fight against the Barbary Pirates.',0,0,1);
I[11][3][2]=new Array('Because the U.S. made a lot of money in it\'s fight against the Pirates.','Sorry.  The exact opposite is true.  The pirates and the fight to defeat them cost the U.S. money.',0,0,1);
I[11][3][3]=new Array('They disliked it because it meant that the  Navy would become the strongest service.','Nope.  There were no such inter-service competition at this point in our history.',0,0,1);
I[11][3][4]=new Array('Everyone in the U.S. favored this treaty and there was no serious opposition.','Nope.  There was deep debate within the U.S. on the terms of this treaty.',0,0,1);
I[12]=new Array();I[12][0]=100;
I[12][1]='';
I[12][2]='0';
I[12][3]=new Array();
I[12][3][0]=new Array('Other nations saw it as a weakness and began actions against U.S. ships and sailors.','Correct.  The Dey of Algiers and the British in particular took advantage of the lack of a forward-based U.S. Naval presence.',1,100,1);
I[12][3][1]=new Array('It strengthened American diplomacy around the world.','Nope.  It actually did the opposite.',0,0,1);
I[12][3][2]=new Array('It really had no effect on U.S. national interests.','Nope.  It certainly did have an immediate effect.',0,0,1);
I[12][3][3]=new Array('It made the U.S. look like a new world power.','Sorry.  It weakened our power in the eyes of many of the world\'s nations.',0,0,1);
I[12][3][4]=new Array('It made the U.S. more dependant on the Navy than ever before.','Nope.  We actually reduced the number of ships and kept them along our own coasts.',0,0,1);
I[13]=new Array();I[13][0]=100;
I[13][1]='';
I[13][2]='0';
I[13][3]=new Array();
I[13][3][0]=new Array('Giving in to tribute only brings on more demands.','Excellent.  Giving in to the tribute demands only gave the impression that we were weak and brought about more demands.',1,100,1);
I[13][3][1]=new Array('That giving tribute early can end a conflict before it begins.','Sorry.  This was practiced by many nations, including the U.S., during this period, but this caused more problems than it solved.',0,0,1);
I[13][3][2]=new Array('That through the art of skilled negotiation you can settle disputes easier with tribute.','Nope.  Although many in the Old World believed this at this particular time.',0,0,1);
I[13][3][3]=new Array('That tribute goes down the longer a conflict goes on.','Sorry.  While this may or may not happen, this is not the lesson we learned from this conflict.',0,0,1);
I[13][3][4]=new Array('That pirates will always demand tribute so be prepared to pay it.','Nope.  While it may be true that pirates will always demand tribute, the lesson was not that you should pay it.',0,0,1);
I[14]=new Array();I[14][0]=100;
I[14][1]='';
I[14][2]='0';
I[14][3]=new Array();
I[14][3][0]=new Array('Increasing incidents of impressments of U.S. sailors by British warships.','Correct.  This practice continued to occur and the U.S. didn\'t have a strong enough Navy to stop it.',1,100,1);
I[14][3][1]=new Array('The U.S. purchase of the Louisiana Territory made the U.S. less dependant on England.','Nope.  This wasn\'t a factor.',0,0,1);
I[14][3][2]=new Array('The British encouragement of Canada to invade the U.S.','Nope.  This didn\'t occur.',0,0,1);
I[14][3][3]=new Array('The British control of the seas made trading hard.','Sorry.  It did make trading with some countries harder, but this wasn\'t the main issue.',0,0,1);
I[14][3][4]=new Array('Critical remarks made about the U.S. in the English press.','Nope.  This wasn\'t a factor.',0,0,1);
I[15]=new Array();I[15][0]=100;
I[15][1]='';
I[15][2]='0';
I[15][3]=new Array();
I[15][3][0]=new Array('When a British warship stopped and boarded the USS Chesapeake, impressing several of her sailors.','Correct.  The nation was outraged and there were demands for going to war with England.',1,100,1);
I[15][3][1]=new Array('When British agents in the area of Chesapeake Bay tried to incite Indian tribes against U.S. cities.','Nope.  The British did try to agitate the Indian tribes against the U.S., but it had no relation to the  Chesapeake affair.',0,0,1);
I[15][3][2]=new Array('When the USS Chesapeake was sunk by a British warship.','Nope.  There was an encounter, but the Chesapeake was not sunk.',0,0,1);
I[15][3][3]=new Array('When the British ship HMS Chesapeake fired on U.S. lighthouses in Virginia.','Nope.  This never happened.',0,0,1);
I[15][3][4]=new Array('When the British ship HMS Chesapeake raided a number of New England towns for supplies.','Nope.  This never happened.',0,0,1);
I[16]=new Array();I[16][0]=100;
I[16][1]='';
I[16][2]='0';
I[16][3]=new Array();
I[16][3][0]=new Array('To try to protect the nation\'s sea trade while harassing the British Navy and sea commerce.','Right!  With 16 warships to England\'s 600, this was the best the U.S. Navy could hope for.',1,100,1);
I[16][3][1]=new Array('To avoid direct contact with the British Fleet.','Nope.  The U.S. Navy had to fight, but had to be careful when and where.',0,0,1);
I[16][3][2]=new Array('To protect the Army men and supplies as they crossed the Atlantic to invade England.','Nope.  There were no invasion plans.',0,0,1);
I[16][3][3]=new Array('To remain in port under the cover of U.S. forts.','Sorry.  This would have cost us our trade and not hurt the British at all.',0,0,1);
I[16][3][4]=new Array('To join forces with the French navy for joint operations against the British.','Sorry.  There were no joint Naval plans with France.',0,0,1);
I[17]=new Array();I[17][0]=100;
I[17][1]='';
I[17][2]='0';
I[17][3]=new Array();
I[17][3][0]=new Array('The battle between the USS Constitution and HMS Guerri\u00E8re. ','Excellent!  This is the battle where "Old Ironsides" got her nickname.',1,100,1);
I[17][3][1]=new Array('The Battle of Trafalgar.','Nope.  This was a famous naval battle between the English and the French.',0,0,1);
I[17][3][2]=new Array('The Battle of Hampton Roads.','Nope.  This famous naval battle happened during the Civil War.',0,0,1);
I[17][3][3]=new Array('The battle between the USS Enterprise and HMS Intrepid.','Sorry.  There was no such naval battle during the War of 1812.',0,0,1);
I[17][3][4]=new Array('The battle between the USS Constellation and the HMS Courage.','Sorry.  While the USS Constellation had several victories during the War of 1812, this was not one of them.',0,0,1);
I[18]=new Array();I[18][0]=100;
I[18][1]='';
I[18][2]='0';
I[18][3]=new Array();
I[18][3][0]=new Array('Captain Isaac Hull','Right!  Captain Hull was one of "Preble\'s Boys".',1,100,1);
I[18][3][1]=new Array('Captain Stephen Decatur','Nope.  Commodore Decatur never took part in this action.',0,0,1);
I[18][3][2]=new Array('Commodore Edward Preble','Nope.  This occurred after commodore Preble\'s contributions to the Navy.',0,0,1);
I[18][3][3]=new Array('Captain William Bainbridge','Nope.  Captain Bainbridge did not take part in this action.',0,0,1);
I[18][3][4]=new Array('Captain Dacres ','Sorry.  Captain Dacres commanded the HMS Guerri\u00E8re.',0,0,1);
I[19]=new Array();I[19][0]=100;
I[19][1]='';
I[19][2]='0';
I[19][3]=new Array();
I[19][3][0]=new Array('"Old Ironsides"','Excellent.  The British ship\'s shot on her first volleys bounced harmlessly off the sides of the ship, earning her this nickname.',1,100,1);
I[19][3][1]=new Array('"Ageless Warrior"','Sorry.  While a U.S. Aircraft Carrier would later earn this nickname, it isn\'t the nickname of the USS Constitutioin.',0,0,1);
I[19][3][2]=new Array('"Rough and Ready"','Sorry.  Don\'t know how you got this one wrong!',0,0,1);
I[19][3][3]=new Array('"Hull\'s Iron Hull"','Nope.  While her Captain was Issac Hull and her oak sides were very strong, this wasn\'t the name she earned in this battle.',0,0,1);
I[19][3][4]=new Array('"Terror of the Atlantic"','Nope.  While the USS Constitution earned an impressive reputation during the War of 1812, this isn\'t her nickname.',0,0,1);
I[20]=new Array();I[20][0]=100;
I[20][1]='';
I[20][2]='0';
I[20][3]=new Array();
I[20][3][0]=new Array('"Don\'t give up the ship!"','Right.  Captain Oliver Hazard Perry would later use this as a motto in his victory in the Great Lakes Campaigns.',1,100,1);
I[20][3][1]=new Array('"You may fire when ready, Gridley!"','Sorry.  These famous words came from Commodore Dewey at the Battle of Manila Bay.',0,0,1);
I[20][3][2]=new Array('"Don\'t fire until you see the whites of their eyes!"','Sorry.  These words came during the same war, but they came from General Andrew Jackson at the Battle of New Orleans.',0,0,1);
I[20][3][3]=new Array('"I\'ve not yet begun to fight!"','Nope.  These famous words came from Captain John Paul Jones during the Revolutionary War.',0,0,1);
I[20][3][4]=new Array('"We have met the enemy and they are ours." ','Nope.  This famous quotation would come later, at the second battle of Lake Champlain.',0,0,1);
I[21]=new Array();I[21][0]=100;
I[21][1]='';
I[21][2]='0';
I[21][3]=new Array();
I[21][3][0]=new Array('Privateers','Correct!  More than 500 privateers had been commissioned during this time, mostly from Massachusetts.',1,100,1);
I[21][3][1]=new Array('The USS Constitution','Sorry.  The USS Constitution was blockaded in port by this point of the war.',0,0,1);
I[21][3][2]=new Array('The French Navy','Sorry.  While naval engagements did take place between England and France during this time, France was not on the side of the U.S.',0,0,1);
I[21][3][3]=new Array('The Coast Guard','Nope.  There was no such thing as the U.S. Coast Guard at this point in our history.',0,0,1);
I[21][3][4]=new Array('Pirates','Nope.  The British Navy did not have to worry about pirates during this timeframe.',0,0,1);
I[22]=new Array();I[22][0]=100;
I[22][1]='';
I[22][2]='0';
I[22][3]=new Array();
I[22][3][0]=new Array('The British ships were defeated, Detroit was recaptured and the Northwest Territory was secured for the U.S.','Excellent!  The loss of this battle proved to be a major blow to England.',1,100,1);
I[22][3][1]=new Array('The British victory resulted in the loss of the Northwest territories for the U.S. for the rest of the war.','Nope.  We secured the Northwest territories with this victory.',0,0,1);
I[22][3][2]=new Array('The battle was inconclusive, with neither side having a distinct advantage.','Sorry.  It was a decisive U.S. victory.',0,0,1);
I[22][3][3]=new Array('Neither side had the naval power to fight on the lake for the remainder of the war.','Nope.  Many ships were built by both sides on the Great Lakes, and one of the navies defeated the other.',0,0,1);
I[22][3][4]=new Array('The French retook most of their former possessions in the Northwest territories.','Sorry.  The French were not involved in the Battle of Lake Erie.',0,0,1);
I[23]=new Array();I[23][0]=100;
I[23][1]='';
I[23][2]='0';
I[23][3]=new Array();
I[23][3][0]=new Array('The Star Spangled Banner','Correct!  By Francis Scott Key, while he was being held on a British prison ship.',1,100,1);
I[23][3][1]=new Array('America, The Beautiful','Sorry.  This famous song was written much later.',0,0,1);
I[23][3][2]=new Array('The Navy Hymn','Sorry.  The Navy Hymn came along later.',0,0,1);
I[23][3][3]=new Array('The Marine Corps Hymn','Nope.  "The Halls of Montezuma..." hadn\'t happened yet!',0,0,1);
I[23][3][4]=new Array('Old Glory','Nope.  While this is a name for our nation\'s flag, it isn\'t a song.',0,0,1);
I[24]=new Array();I[24][0]=100;
I[24][1]='';
I[24][2]='0';
I[24][3]=new Array();
I[24][3][0]=new Array('It reduced the territorial demands of the British, thereby quickly bringing an end to the war.','Excellent.  The British became more anxious to end the war after this defeat.',1,100,1);
I[24][3][1]=new Array('It allowed the British to sue for peace on their own terms.','Sorry.  Quite the opposite, the U.S. victory made the U.S. position stronger.',0,0,1);
I[24][3][2]=new Array('It lengthened the war by about 8 months.','Sorry.  It had the exact opposite effect:  It shortened the war.',0,0,1);
I[24][3][3]=new Array('The battle came after the peace treaty was signed, so it had little significance.','Nope.  You might be thinking about the Battle of New Orleans, which did take place after the formal peace treaty was signed.',0,0,1);
I[24][3][4]=new Array('It was only the third time in history that a British Fleet had been defeated.','Nope.  Actually, it was only the second time in history that a British Fleet had been defeated, and both came about during this war.',0,0,1);
I[25]=new Array();I[25][0]=100;
I[25][1]='';
I[25][2]='0';
I[25][3]=new Array();
I[25][3][0]=new Array('The Treaty of Ghent','Right!  This treaty was signed on Christmas Eve, 1814.',1,100,1);
I[25][3][1]=new Array('The Treaty of Baltimore','Nope.  It wasn\'t negotiated nor signed in the city of Baltimore.',0,0,1);
I[25][3][2]=new Array('The Duke of Wellington\'s Peace','Sorry.  While the Duke of Wellington\'s opinion as to the war did help bring it to a close, it wasn\'t named after him.',0,0,1);
I[25][3][3]=new Array('The Treaty of Paris','Sorry.  This was the name of the treaty that ended the Revolutionary War, not the War of 1812.',0,0,1);
I[25][3][4]=new Array('The Treaty of London','Nope.  It wasn\'t negotiated nor signed in the city of London.',0,0,1);
I[26]=new Array();I[26][0]=100;
I[26][1]='';
I[26][2]='0';
I[26][3]=new Array();
I[26][3][0]=new Array('Because news of the treaty traveled slowly and hadn\'t reach New Orleans.','Exactly.  Unlike today, news traveled slowly around the world in the early 1800\'s.',1,100,1);
I[26][3][1]=new Array('Because the British saw it as an opportunity to gain former French holdings.','Nope.  this wasn\'t the reason.',0,0,1);
I[26][3][2]=new Array('Because the British troops didn\'t leave U.S. territory fast enough.','Nope.  The British weren\'t leaving, they were attacking.',0,0,1);
I[26][3][3]=new Array('Because the French didn\'t get the word that the war was over.','Nope.  The French weren\'t involved in this battle.',0,0,1);
I[26][3][4]=new Array('Because the peace treaty only dealt with warfare on the East Coast of the U.S.','Nope.  The treaty covered all of the fighting.',0,0,1);
I[27]=new Array();I[27][0]=100;
I[27][1]='';
I[27][2]='0';
I[27][3]=new Array();
I[27][3][0]=new Array('Andrew Jackson','Correct!  General Jackson earned the nickname "Old Hickory" during this war.',1,100,1);
I[27][3][1]=new Array('Jean Lafitte','Nope.  Lafitte, a former pirate, and his men did help the U.S. forces in the battle.',0,0,1);
I[27][3][2]=new Array('Edward Pakenham ','Nope.  General Parkenham commanded the British forces.',0,0,1);
I[27][3][3]=new Array('Thomas Macdonough','Nope.  Macdonough was the U.S. naval hero in the Battle of Lake Champlain.',0,0,1);
I[27][3][4]=new Array('Henry Harrison','Nope.  General Harrison was one of the U.S. Generals in the western campaigns.',0,0,1);
I[28]=new Array();I[28][0]=100;
I[28][1]='';
I[28][2]='0';
I[28][3]=new Array();
I[28][3][0]=new Array('The U.S. gained respect for being able to stand up and fight at sea.','Excellent!  The victories of the navy at sea on the Great Lakes started a great naval tradition.',1,100,1);
I[28][3][1]=new Array('The U.S. was given "Most Favored Nation" trade status.','Nope.  There was no such thing at this period of history.',0,0,1);
I[28][3][2]=new Array('U.S. Ambassadors were finally allowed in all European capitals.','Nope.  Our Ambassadors were already in the European capitals before this war.',0,0,1);
I[28][3][3]=new Array('U.S. currency began to be traded world-wide.','Sorry.  Currency trading was not wide-spread at this time in history, and this war had no affect on it.',0,0,1);
I[28][3][4]=new Array('The return of all of the U.S. sailors that had been imprisoned around the world.','Sorry.  While some taken by the British were released, the war did not affect those held by other nations of the world.',0,0,1);
I[29]=new Array();I[29][0]=100;
I[29][1]='';
I[29][2]='0';
I[29][3]=new Array();
I[29][3][0]=new Array('Promoting and protecting U.S. overseas commerce. ','Excellent.  This protection had been the priority before the war as well.',1,100,1);
I[29][3][1]=new Array('Defeating the Russian Pirates.','Nope.  There had never been a problem with Russian pirates.  Barbary pirates yes, Russian no.',0,0,1);
I[29][3][2]=new Array('Fighting the British Navy.','Sorry.  Fighting the British Navy ended with the peace treaty.',0,0,1);
I[29][3][3]=new Array('Discovering new lands in the Pacific.','Sorry.  While there were still discoveries to be made in the Pacific at this time, the U.S. did not take the lead in this area.',0,0,1);
I[29][3][4]=new Array('Preventing an invasion attempt by Canada.','Nope.  There was never an attempt by Canada to invade the U.S.',0,0,1);
I[30]=new Array();I[30][0]=100;
I[30][1]='';
I[30][2]='0';
I[30][3]=new Array();
I[30][3][0]=new Array('The growing use of oil and natural gas.','Right.  These alternatives to Whale oil cost less to produce.',1,100,1);
I[30][3][1]=new Array('The overfishing of the whale species led to fewer whales.','Nope.  Overfishing had depleted stocks, but this wasn\'t the main cause for the decline.',0,0,1);
I[30][3][2]=new Array('The growing expense of building whaling ships.','Nope.  It was still very cost-effective.',0,0,1);
I[30][3][3]=new Array('The decline in the demands for whale products.','Nope.  There still was (and still is) a high demand for these products.',0,0,1);
I[30][3][4]=new Array('Migration patterns of the remaining whales changed and made it more difficult to find them.','Nope.  No major change in migration patterns occurred.',0,0,1);
I[31]=new Array();I[31][0]=100;
I[31][1]='';
I[31][2]='0';
I[31][3]=new Array();
I[31][3][0]=new Array('Slave trading','Right!  Rum was traded for slaves and slaves for the sugar and molasses to make rum.',1,100,1);
I[31][3][1]=new Array('Drug Smuggling','Sorry.  While drug smuggling is currently a major world problem, it wasn\'t at this point in history.',0,0,1);
I[31][3][2]=new Array('Arms trading','Sorry.  While arms trading is currently a major world problem, it wasn\'t at this point in history.',0,0,1);
I[31][3][3]=new Array('Gun-running','Nope.  Gun-running was and is a pretty small affair and was not the focus across the Atlantic Ocean during this point in history.',0,0,1);
I[31][3][4]=new Array('Gold smuggling','Nope.  There was no appreciable amount of gold smuggling at this time.',0,0,1);
I[32]=new Array();I[32][0]=100;
I[32][1]='';
I[32][2]='0';
I[32][3]=new Array();
I[32][3][0]=new Array('A Mexican Army incursion across the Rio Grande in April 1846 which resulted in a dozen American casualties.','Excellent!  This attack on U.S. forces inside of the U.S. was the event that caused Congress to declare war.',1,100,1);
I[32][3][1]=new Array('The battle of the Alamo.','Sorry.  While this battle was a key moment in the War for Texas Independence, it wasn\'t the even that started the Mexican-American War.',0,0,1);
I[32][3][2]=new Array('The recognition of Texas as an American State.','Nope.  While Texas\' entry into the Union did hurts U.S. - Mexican relations, it wasn\'t the event that started the war.',0,0,1);
I[32][3][3]=new Array('Mexico\'s breaking of the Treaty of Cahuenga.','Nope.  The Treaty of Cahuenga ended the war.  It didn\'t start it.',0,0,1);
I[32][3][4]=new Array('The Battle of Veracruz.','Sorry.  The Battle of Veracruz happened well after the war had already begun.',0,0,1);
I[33]=new Array();I[33][0]=100;
I[33][1]='';
I[33][2]='0';
I[33][3]=new Array();
I[33][3][0]=new Array('The desire to have the U.S. stretch from the East Coast to the West Coast of North America.','Correct.  This had been a goal of U.S. governments for quite some time by this point.',1,100,1);
I[33][3][1]=new Array('The desire to build a railroad which connected the East and West Coasts.','Sorry.  While this engineering feat would come about through the feelings of Manifest Destiny, this particular event does not explain the term\'s meaning.',0,0,1);
I[33][3][2]=new Array('That the U.S. would become the primary military power in North America.','Nope.  This was to be a by-product of the Manifest Destiny movement, but it didn\'t have to do with the term\'s meaning.',0,0,1);
I[33][3][3]=new Array('That the U.S. Navy would become the largest navy in the world.','Nope.  Manifest Destiny had nothing to do with the size of the U.S. Navy.',0,0,1);
I[33][3][4]=new Array('That the U.S. was destined to rule the entire North American continent.','Sorry.  The incorporation of the entire continent was not the plan.  Think smaller.',0,0,1);
I[34]=new Array();I[34][0]=100;
I[34][1]='';
I[34][2]='0';
I[34][3]=new Array();
I[34][3][0]=new Array('Completion of a railroad across the Isthmus of Panama in 1855 made the long, dangerous trip around South America unnecessary.','Right.  With goods being able to be transported faster across Panama, there was no need for the expensive Clipper Ships.',1,100,1);
I[34][3][1]=new Array('A dramatic series of at-sea disasters sank a large number of clipper ships.','Nope.  This never occurred.',0,0,1);
I[34][3][2]=new Array('The economic loss from the Mexican-American War meant that fewer clipper ships could be built.','Nope.  Clipper ships grew to fame after this conflict.',0,0,1);
I[34][3][3]=new Array('They were surpassed by Pocket Ships.','Nope.  Clipper ships surpassed the slower, older pocket ships.',0,0,1);
I[34][3][4]=new Array('Gas engine propulsion methods made sail ships obsolete.','Nope.  Steam propulsion did contribute to the decline of clipper ships, but not gas engine ships.  That came much later.',0,0,1);
I[35]=new Array();I[35][0]=100;
I[35][1]='';
I[35][2]='0';
I[35][3]=new Array();
I[35][3][0]=new Array('Commodore Matthew Perry ','Excellent.  He was the younger brother of Oliver Hazard Perry, the hero of Lake Erie.',1,100,1);
I[35][3][1]=new Array('Commodore Oliver Hazard Perry ','Sorry.  He had already completed his service to the nation by this point.',0,0,1);
I[35][3][2]=new Array('Commodore Millard Fillmore ','Nope.  Millard Fillmore was the President of the United States at this point in history.',0,0,1);
I[35][3][3]=new Array('Commander James Glynn ','Sorry.  Commander Glynn was the naval officer who won the release of American whalers who had been imprisoned at Nagasaki.',0,0,1);
I[35][3][4]=new Array('Commodore James Biddle ','Nope.  Commodore Briddle had made the first, unsuccessful attempt to negotiate with the Japanese in 1846.',0,0,1);


function StartUp(){
	RemoveBottomNavBarForIE();

//If there's only one question, no need for question navigation controls
	if (QsToShow < 2){
		document.getElementById('QNav').style.display = 'none';
	}
	
//Stash the instructions so they can be redisplayed
	strInstructions = document.getElementById('InstructionsDiv').innerHTML;
	

	

	
	CompleteEmptyFeedback();

	SetUpQuestions();
	ClearTextBoxes();
	CreateStatusArray();
	

	
//Check search string for q parameter
	if (document.location.search.length > 0){
		if (ShuffleQs == false){
			var JumpTo = parseInt(document.location.search.substring(1,document.location.search.length))-1;
			if (JumpTo <= QsToShow){
				ChangeQ(JumpTo);
			}
		}
	}
}

function ShowHideQuestions(){
	FuncBtnOut(document.getElementById('ShowMethodButton'));
	document.getElementById('ShowMethodButton').style.display = 'none';
	if (ShowingAllQuestions == false){
		for (var i=0; i<QArray.length; i++){
				QArray[i].style.display = '';
			}
		document.getElementById('Questions').style.listStyleType = 'decimal';
		document.getElementById('OneByOneReadout').style.display = 'none';
		document.getElementById('ShowMethodButton').innerHTML = ShowOneByOneCaption;
		ShowingAllQuestions = true;
	}
	else{
		for (var i=0; i<QArray.length; i++){
				if (i != CurrQNum){
					QArray[i].style.display = 'none';
				}
			}
		document.getElementById('Questions').style.listStyleType = 'none';
		document.getElementById('OneByOneReadout').style.display = '';
		document.getElementById('ShowMethodButton').innerHTML = ShowAllQuestionsCaption;
		ShowingAllQuestions = false;	
	}
	document.getElementById('ShowMethodButton').style.display = 'inline';
}

function CreateStatusArray(){
	var QNum, ANum;
//For each item in the item array
	for (QNum=0; QNum<I.length; QNum++){
//Check if the question still exists (hasn't been nuked by showing a random selection)
		if (document.getElementById('Q_' + QNum) != null){
			State[QNum] = new Array();
			State[QNum][0] = -1; //Score for this q; -1 shows question not done yet
			State[QNum][1] = new Array(); //answers
			for (ANum = 0; ANum<I[QNum][3].length; ANum++){
				State[QNum][1][ANum] = 0; //answer not chosen yet; when chosen, will store its position in the series of choices
			}
			State[QNum][2] = 0; //tries at this q so far
			State[QNum][3] = 0; //incrementing percent-correct values of selected answers
			State[QNum][4] = 0; //penalties incurred for hints
			State[QNum][5] = ''; //Sequence of answers chosen by number
		}
		else{
			State[QNum] = null;
		}
	}
}



function CheckMCAnswer(QNum, ANum, Btn){
//if question doesn't exist, bail
	if (State[QNum].length < 1){return;}
	
//Get the feedback
	Feedback = I[QNum][3][ANum][1];
	
//Now show feedback and bail if question already complete
	if (State[QNum][0] > -1){
//Add an extra message explaining that the question
// is finished if defined by the user
		if (strQuestionFinished.length > 0){Feedback += '<br />' + strQuestionFinished;}
//Show the feedback
		ShowMessage(Feedback);
		return;
	}
	
//Hide the button while processing
	Btn.style.display = 'none';

//Increment the number of tries
	State[QNum][2]++;
	
//Add the percent-correct value of this answer
	State[QNum][3] += I[QNum][3][ANum][3];
	
//Store the try number in the answer part of the State array, for tracking purposes
	State[QNum][1][ANum] = State[QNum][2];
	State[QNum][5] += String.fromCharCode(65+ANum) + ',';
	
//Should this answer be accepted as correct?
	if (I[QNum][3][ANum][2] < 1){
//It's wrong

//Mark the answer
		Btn.innerHTML = IncorrectIndicator;
		
//Remove any previous score unless exercise is finished (6.0.3.8+)
		if (Finished == false){
			WriteToInstructions(strInstructions);
		}	
		
//Check whether this leaves just one MC answer unselected, in which case the Q is terminated
		var RemainingAnswer = FinalAnswer(QNum);
		if (RemainingAnswer > -1){
//Behave as if the last answer had been selected, but give no credit for it
//Increment the number of tries
			State[QNum][2]++;		
		
//Calculate the score for this question
			CalculateMCQuestionScore(QNum);

//Get the overall score and add it to the feedback
			CalculateOverallScore();
			if ((ContinuousScoring == true)||(Finished == true)){
				Feedback += '<br />' + YourScoreIs + ' ' + Score + '%.';
				WriteToInstructions(YourScoreIs + ' ' + Score + '%.');
			}
		}
	}
	else{
//It's right
//Mark the answer
		Btn.innerHTML = CorrectIndicator;
				
//Calculate the score for this question
		CalculateMCQuestionScore(QNum);

//Get the overall score and add it to the feedback
		if (ContinuousScoring == true){
			CalculateOverallScore();
			if ((ContinuousScoring == true)||(Finished == true)){
				Feedback += '<br />' + YourScoreIs + ' ' + Score + '%.';
				WriteToInstructions(YourScoreIs + ' ' + Score + '%.');
			}
		}
	}
	
//Show the button again
	Btn.style.display = 'inline';
	
//Finally, show the feedback	
	ShowMessage(Feedback);
	
//Check whether all questions are now done
	CheckFinished();
}

function CalculateMCQuestionScore(QNum){
	var Tries = State[QNum][2] + State[QNum][4]; //include tries and hint penalties
	var PercentCorrect = State[QNum][3];
	var TotAns = GetTotalMCAnswers(QNum);
	var HintPenalties = State[QNum][4];
	
//Make sure it's not already complete

	if (State[QNum][0] < 0){
//Allow for Hybrids
		if (HintPenalties >= 1){
			State[QNum][0] = 0;
		}
		else{
//This line calculates the score for this question
			if (TotAns == 1){
				State[QNum][0] = 1;
			}
			else{
				State[QNum][0] = ((TotAns-((Tries*100)/State[QNum][3]))/(TotAns-1));
			}
		}
		if (State[QNum][0] < 0){
			State[QNum][0] = 0;
		}
	}
}

function GetTotalMCAnswers(QNum){
	var Result = 0;
	for (var ANum=0; ANum<I[QNum][3].length; ANum++){
		if (I[QNum][3][ANum][4] == 1){ //This is an MC answer
			Result++;
		}
	}
	return Result;
}

function FinalAnswer(QNum){
	var UnchosenAnswers = 0;
	var FinalAnswer = -1;
	for (var ANum=0; ANum<I[QNum][3].length; ANum++){
		if (I[QNum][3][ANum][4] == 1){ //This is an MC answer
			if (State[QNum][1][ANum] < 1){ //This answer hasn't been chosen yet
				UnchosenAnswers++;
				FinalAnswer = ANum;
			}
		}
	}
	if (UnchosenAnswers == 1){
		return FinalAnswer;
	}
	else{
		return -1;
	}
}





function CalculateOverallScore(){
	var TotalWeighting = 0;
	var TotalScore = 0;
	
	for (var QNum=0; QNum<State.length; QNum++){
		if (State[QNum] != null){
			if (State[QNum][0] > -1){
				TotalWeighting += I[QNum][0];
				TotalScore += (I[QNum][0] * State[QNum][0]);
			}
		}
	}
	if (TotalWeighting > 0){
		Score = Math.floor((TotalScore/TotalWeighting)*100);
	}
	else{
//if TotalWeighting is 0, no questions so far have any value, so 
//no penalty should be shown.
		Score = 100; 
	}
}

function CheckFinished(){
	var FB = '';
	var AllDone = true;
	for (var QNum=0; QNum<State.length; QNum++){
		if (State[QNum] != null){
			if (State[QNum][0] < 0){
				AllDone = false;
			}
		}
	}
	if (AllDone == true){
	
//Report final score and submit if necessary
		CalculateOverallScore();
		FB = YourScoreIs + ' ' + Score + '%.';
		if (ShowCorrectFirstTime == true){
			var CFT = 0;
			for (QNum=0; QNum<State.length; QNum++){
				if (State[QNum] != null){
					if (State[QNum][0] >= 1){
						CFT++;
					}
				}
			}
			FB += '<br />' + CorrectFirstTime + ' ' + CFT + '/' + QsToShow;
		}
		WriteToInstructions(FB);
		
		Finished == true;

		TimeOver = true;
		Locked = true;
		


		Finished = true;
		Detail = '<?xml version="1.0"?><hpnetresult><fields>';
		for (QNum=0; QNum<State.length; QNum++){
			if (State[QNum] != null){
				if (State[QNum][5].length > 0){
					Detail += '<field><fieldname>Question #' + (QNum+1) + '</fieldname><fieldtype>question-tracking</fieldtype><fieldlabel>Q ' + (QNum+1) + '</fieldlabel><fieldlabelid>QuestionTrackingField</fieldlabelid><fielddata>' + State[QNum][5] + '</fielddata></field>';
				}
			}
		}
		Detail += '</fields></hpnetresult>';
		setTimeout('Finish()', SubmissionTimeout);
	}
}










//-->

//]]>


