

//<![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';
//IE can't focus a hidden div; Moz needs to focus before display to avoid jumping
	if (C.gecko){
		document.getElementById('FeedbackOKButton').focus();
	}
	FDiv.style.display = 'block';

	ShowElements(false, 'input');
	ShowElements(false, 'select');
	ShowElements(false, 'object');
	if (C.ie){
		document.getElementById('FeedbackOKButton').focus();
	}
	
//
}

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.innerWidth){
		return window.innerWidth;
	}
	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{
	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){
	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; k++) {
			Temp[k] = Temp[k+1];
		}
		j--;
	}
	return InArray;
}

function WriteToInstructions(Feedback) {
//	Feedback = '<span class="FeedbackText">' + Feedback + '</span>';
	document.getElementById('InstructionsDiv').innerHTML = Feedback;

}




function EscapeDoubleQuotes(InString){
	return InString.replace(/"/g, '&quot;')
}

function FocusAButton(){
	if (document.getElementById('CheckButton1') != null){
		document.getElementById('CheckButton1').focus();
	}
	else{
		document.getElementsByTagName('button')[0].focus();
	}
}

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].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 = '';

//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;
	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){
	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('Logistics','Correct!  These resources include both material and human resources.',1,100,1);
I[0][3][1]=new Array('Strategy','Sorry.  Strategy is concerned with the general plan for the employment of fighting forces.',0,0,1);
I[0][3][2]=new Array('Tactics','Sorry.  Tactics involves the specific maneuvers and techniques of fighting.',0,0,1);
I[0][3][3]=new Array('Maneuver','Nope.  Maneuver is the principal of war that advises you to place an enemy in a position of disadvantage through the use of speed and agility to gain an advantage in time and space relative to the enemy\'s vulnerabilities.',0,0,1);
I[0][3][4]=new Array('Resourcefulness','Nope.  You indeed have to be resourceful in your methods of mobilizing a nation\'s economy into a wartime footing, but this is not the term that describes this process.',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('Destroyers','Right.  ServRons were made up of support ships, not active war-fighting ships.',1,100,1);
I[1][3][1]=new Array('Floating Dry-docks','Sorry.  These were the work-horses of the ServRons.  They provided a means of rapidly fixing battle-damaged ships and returning them to combat.',0,0,1);
I[1][3][2]=new Array('Floating Post Offices','Nope.  The mail has got to be delivered, even during war and half the world away.  This was a vital morale-boosting service of the ServRons.',0,0,1);
I[1][3][3]=new Array('Refrigerator Ships','Sorry.  Many goods had to be refrigerated and this is where these ships fit in.',0,0,1);
I[1][3][4]=new Array('Oilers','Nope.  Oilers were a vital part of these squadrons and brought the fuel necessary to both repair ships and to keep these mobile repair yards going.',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('Flexibility','Correct.  Warfare, and the conditions leading up to armed conflict, are often unpredictable and logistics plans in support of such operations need to be flexible in order to effectively respond to the changing conditions.',1,100,1);
I[2][3][1]=new Array('Economy','Nope.  This Principal of Logistics deals with employing logistic support assets effectively.',0,0,1);
I[2][3][2]=new Array('Sustainability','Nope.  This Principal of Logistics has to do with providing logistics support for the duration of the operation.',0,0,1);
I[2][3][3]=new Array('Responsiveness','Sorry.  This Principal of Logistics has to do with providing the right support at the right time, at the right place.',0,0,1);
I[2][3][4]=new Array('Attainability','Sorry.  This Principal of Logistics deals with acquiring the minimum essential logistics support to begin combat operations.',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('The Secretary of Defense','Right!  The areas he or she would advice the President on would include manpower, the effective use of natural and industrial resources for military needs and the organization of the national economy for war.',1,100,1);
I[3][3][1]=new Array('The Secretary of State','Sorry.  The Secretary of State is our top diplomat and directly advises the President on matters of foreign affairs.',0,0,1);
I[3][3][2]=new Array('The Secretary of the Interior','Sorry.  This individual\'s areas of responsibility deal with the preservation of the natural and cultural heritage of the United States.',0,0,1);
I[3][3][3]=new Array('The Director of Homeland Security.','Nope.  The Director of Homeland Security is principally concerned with the protection of the U.S. and its citizens against terrorist actions.',0,0,1);
I[3][3][4]=new Array('The Director of Central Intelligence.','Nope.  The Director of Central Intelligence is the direct advisor to the National Security Council on intelligence matters, but not logistics matters.',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('World War I','Right!  The first war in the modern era fought on a global scale and requiring a global concept of logistics.',1,100,1);
I[4][3][1]=new Array('The Spanish-American War','Sorry.  Overall the Spanish-American War was a small-scale affair and did not reflect the lessons of modern logistics.',0,0,1);
I[4][3][2]=new Array('World War II','Sorry.  While World War II is a classic study in the importance and scale of logistics in modern warfare, it wasn\'t the introduction to the concepts of modern logistics.',0,0,1);
I[4][3][3]=new Array('The Vietnam War','Nope.  Modern logistical concepts and practices were well in place by the time of the Vietnam War.',0,0,1);
I[4][3][4]=new Array('The Civil War','Nope.  Although logistical problems were faced by both sides during the Civil War, it was not a logistics effort in the modern sense.  This would come later.',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('To provide a coaling base for the ships blockading the Spanish Fleet in Cuba.','Correct!  By seizing and holding this bay, the U.S. could turn it into a coaling base to support the U.S. Navy ships blockading the Spanish Navy.',1,100,1);
I[5][3][1]=new Array('As a part of an amphibious landing against the Spanish forces in Cuba.','Sorry.  The amphibious landings that did occur were on the northern coast of Cuba, not the southern coast.',0,0,1);
I[5][3][2]=new Array('To prevent the Spanish naval forces from using it as a deep water port.','Sorry.  The Spanish were not planning on using this as a deep water port.',0,0,1);
I[5][3][3]=new Array('To capture the flagship of the Spanish Fleet.','Nope.  The flagship of the Spanish Fleet was not located here.',0,0,1);
I[5][3][4]=new Array('To attempt to convince the Spanish Government that they couldn\'t hold Cuba and should surrender to the U.S.','Nope.  There was a specific purpose that Guantanamo Bay was the target.',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('Flexibility','Right.  Flexibility is one of the principles of logistics and pertains to adapting logistic support to changing conditions.',1,100,1);
I[6][3][1]=new Array('Acquisition','Sorry.  This is an element of logistics that pertains to the procurement of commodities, such as food, petroleum, oils, and lubricants, as well as repair parts and various other items.',0,0,1);
I[6][3][2]=new Array('Distribution','Sorry.  This is the element of logistics that is concerned with the methods used to get logistics support to the operating forces.',0,0,1);
I[6][3][3]=new Array('Sustainment','Nope.  This is the element of logistics that pertains to the provision of adequate logistic support to permit continuous operations without interruption, as long as required.',0,0,1);
I[6][3][4]=new Array('Disposition','Nope.  This is the element of logistics that is concerned with the handling, storage, and disposal of materials and resources.',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('Alfred Thayer Mahan','Correct.  Mahan wisely saw that without such bases the U.S. Navy would be powerless to use its fleet of steam-powered warships.',1,100,1);
I[7][3][1]=new Array('President Teddy Roosevelt','Sorry.  While Roosevelt was not the first to call for such overseas bases, he did much to ensure that the U.S. acquired such bases during his time as Secretary of the Navy and, later, President.',0,0,1);
I[7][3][2]=new Array('James Forrestal','Nope.  By the time Forrestal was the Secretary of the Navy and the Secretary of Defense, overseas coaling bases were no longer required.',0,0,1);
I[7][3][3]=new Array('President Wilson','Sorry.  President Wilson oversaw the first great modern logistics effort--support for U.S. forces deployed to Europe during World War I.  He was not the first to call for such overseas bases though.',0,0,1);
I[7][3][4]=new Array('James Madison','Nope.  At the time of Madison\'s presidency, steam propulsion for ships had not been invented.',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('By air drops','Right.  The only way to bring in the supplies they needed was "over the top" of the Chinese.',1,100,1);
I[8][3][1]=new Array('By naval sealift','Sorry.  Naval sealift does a lot of things, but it wasn\'t the method used to resupply the Marines.  The Marines were surrounded and well inland where naval sealift couldn\'t be of any use.',0,0,1);
I[8][3][2]=new Array('By helicopter transport','Sorry.  Helicopter transport was too new a concept to be put to any real use in Korea.',0,0,1);
I[8][3][3]=new Array('By pack mule','Nope.  Pack mules may have been used by the Marines to carry some equipment, but this was not the way that the Marines were kept resupplied.',0,0,1);
I[8][3][4]=new Array('By convoys of trucks','Nope.  The Chinese forces had the Marines surrounded, so there was no way such a convoy could get through.',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('Because ships had switched to steam propulsion and they needed such stations to refuel.','Right!  Without coaling stations around the world, the ships of the fleets couldn\'t stay or fight for very long before their fuel supply ran out.',1,100,1);
I[9][3][1]=new Array('Because of the need for coal-fired furnaces for ship-building.','Sorry.  This wasn\'t the reason for the bases, although many furnaces were shifting to using coal as a fuel during this period.',0,0,1);
I[9][3][2]=new Array('Because their economies had shifted to coal-burning energy plants and required the import of vast amounts of coal.','Sorry.  While the economies of the leading nations of the world were shifting to coal as a primary fuel, this wasn\'t the reason they wanted these bases.',0,0,1);
I[9][3][3]=new Array('To gain access to the diamond mines found in these area throughout the world.','Nope.  Diamond mines were not the reason and are not generally found near the locations of these coaling stations.',0,0,1);
I[9][3][4]=new Array('Coaling bases were not sought after by the world powers in the late 19th century.','Nope.  All of the major world powers attempted to gain such bases at this time.',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('Coaling Bags','Right!  This dates back to the days when the Navy first experimented with underway replenishment, by passing coal in small bags from one ship to another.',1,100,1);
I[10][3][1]=new Array('Ditty Bags','Sorry.  This is a term for a bag which holds the personal possessions of a sailor or marine.',0,0,1);
I[10][3][2]=new Array('Lucky Bags','Sorry.  This is the nautical equivalent of a "Lost and Found".',0,0,1);
I[10][3][3]=new Array('Diplomatic Pouches','Nope.  These are small containers or pouches which are used to bring items into and out of embassies and are exempt from inspection by the host country.',0,0,1);
I[10][3][4]=new Array('Replenishment parcels','Nope.  They carry parcels during underway replenishment, but they aren\'t called replenishment parcels.',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('Convoying troops and cargo to the army in Europe.','Correct.  The logistics effort of moving our troops overseas and bringing the supplies to sustain them there was the number one priority for the Navy in this war.',1,100,1);
I[11][3][1]=new Array('Anti-submarine Warfare.','Sorry.  While this was an important mission, it was not the primary mission.  It did, however, directly support the primary mission.',0,0,1);
I[11][3][2]=new Array('Helping to blockade the German Fleet.','Sorry.  The only major U.S. Naval forces forward-deployed to help out the British in this regard was one Battleship division.  There just wasn\'t enough coal available to support a larger force.',0,0,1);
I[11][3][3]=new Array('Support for amphibious landings.','Nope.  The U.S. did not participate in opposed amphibious operations in World War I.',0,0,1);
I[11][3][4]=new Array('Mine clearing operations.','Nope.  Although U.S. Navy ships did participate in mine laying and mine clearing operations, this wasn\'t the Navy primary role in World War I.',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('The Spanish-American War','Right.  The passing of coal from one ship to another using coaling bags was first attempted in 1899, during the Spanish-American War.',1,100,1);
I[12][3][1]=new Array('The First World War','Sorry.  While the procedure was new and evolved greatly during World War I, this wasn\'t the first time they had been tried.',0,0,1);
I[12][3][2]=new Array('The Second World War','Sorry.  Underway replenishment techniques were advanced to a fine science during this war, but it wasn\'t the first time they had been used.',0,0,1);
I[12][3][3]=new Array('The Civil War','Nope.  There wasn\'t a need or a requirement for underway replenishment at this time.',0,0,1);
I[12][3][4]=new Array('The Vietnam War','Nope.  Underway replenishment procedures were well-established by this time.',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('These are all the sites of major port facility construction by U.S. forces.','Right!  The amount of goods and logistical support required to maintain U.S. forces in Vietnam was extensive, and required the building of several ports and airfields.',1,100,1);
I[13][3][1]=new Array('None of these was the site of major port construction in Vietnam.','Nope.  These names should be familiar to you from the reading as sites of major naval ports built by U.S. forces during the Vietnam War.',0,0,1);
I[13][3][2]=new Array('DaNang','Sorry.  This was an important port built to support the U.S. forces in the northern part of South Vietnam.',0,0,1);
I[13][3][3]=new Array('Cam Ranh Bay','Nope.  Cam Ranh Bay was the site of a major U.S.-built port during this war.  It still remains an excellent deep-water port today.',0,0,1);
I[13][3][4]=new Array('Near Saigon','Sorry.  An excellent port facility was constructed near Saigon to help resupply U.S. forces in this area.',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('95','Correct.  The vast majority of this was carried by the Military Sealift Command.',1,100,1);
I[14][3][1]=new Array('85','Sorry.  You are close though!',0,0,1);
I[14][3][2]=new Array('50','Nope.  It was an even greater percentage than this.',0,0,1);
I[14][3][3]=new Array('25','Nope.  It was a much higher percentage than this.',0,0,1);
I[14][3][4]=new Array('75','Sorry.  It was even more than three-quarters.',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('Responsiveness','Correct.  If a logistics plan is to support combat operations successfully, this is essential.',1,100,1);
I[15][3][1]=new Array('Flexibility','Sorry.  This Principal of Logistics deals with adapting logistic support to changing conditions.',0,0,1);
I[15][3][2]=new Array('Economy','Nope.  This Principal of Logistics deals with employing logistic support assets effectively.',0,0,1);
I[15][3][3]=new Array('Sustainability','Nope.  This Principal of Logistics has to do with providing logistics support for the duration of the operation.',0,0,1);
I[15][3][4]=new Array('Attainability','Sorry.  This Principal of Logistics deals with acquiring the minimum essential logistics support to begin combat operations.',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('The U.S. Transportation Command','Right.  This is a unified command, having strategic transportation planners and assets from each branch of the Armed Forces.',1,100,1);
I[16][3][1]=new Array('The Transportation Department','Sorry.  The Transportation Department is a civilian Cabinet-level Department and does not directly deal with the strategic transportation of supplies for the U.S. Armed Forces.',0,0,1);
I[16][3][2]=new Array('The Military Sealift Command','Sorry.  While the MSC is one of the primary carriers of goods and material for the U.S. Armed Forces, it is not responsible for coordinating all of the strategic transportation for the U.S. Armed Forces.',0,0,1);
I[16][3][3]=new Array('The Air Mobility Command','Nope.  This U.S. Air Force agency primarily deals with the transportation of high-priority cargo, mail, and passengers.',0,0,1);
I[16][3][4]=new Array('The Naval Supply System Command','Nope.  This agency has the primary responsibility for sustainment of Naval Forces worldwide, but doesn&#x2019;t have responsibility for all U.S. Armed Forces.',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('Operation Desert Sortie','Right!  This huge redeployment of personnel and equipment following the ousting of Iraqi forces from Kuwait was completed within 6 months!',1,100,1);
I[17][3][1]=new Array('Operation Desert Storm','Sorry.  This was the name of the operation to oust Iraqi forces from Kuwait in 1991.',0,0,1);
I[17][3][2]=new Array('Operation Desert Shield','Sorry.  This was the name of the deployment of U.S. forces to protect Saudi Arabia following the invasion of Kuwait by Iraq in 1990.',0,0,1);
I[17][3][3]=new Array('Operation Vigilant Warrior','Nope.  This was the name of a deployment of the U.S. Central Command to Saudi Arabia in the mid 1990\'s.',0,0,1);
I[17][3][4]=new Array('Operation Iraqi Freedom','Nope.  This was the name of the Operation to oust Saddam Hussein from power in 2003.',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('Supply','Correct.  It also is concerned with spare parts and consumables.',1,100,1);
I[18][3][1]=new Array('Maintenance','Nope.  Maintenance refers to actions necessary to preserve, repair, and ensure continued operation and effectiveness of equipment, both afloat and ashore.',0,0,1);
I[18][3][2]=new Array('Transportation','Sorry.  Transportation involves the movement of units, personnel, equipment, and supplies from the point of origin to the final destination.',0,0,1);
I[18][3][3]=new Array('Engineering','Nope.  Engineering deals with the movement of units, personnel, equipment, and supplies from the point of origin to the final destination.',0,0,1);
I[18][3][4]=new Array('Other services','Nope.  The area of other services deals with the provision of administrative and personnel support to operation forces.  This includes record keeping, disbursing, food services and legal services.',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('Sustainment','Right.  This is the element of logistics that pertains to the provision of adequate logistic support to permit continuous operations without interruption, as long as required.  The Marine Corps uses the Marine Corps Logistic Bases Command to support the same functions.',1,100,1);
I[19][3][1]=new Array('Disposition','Nope.  This is the element of logistics that is concerned with the methods used to get logistics support to the operating forces.  The Naval Supply Systems Command works in this area, but it is not it\'s area pf primary responsibility.',0,0,1);
I[19][3][2]=new Array('Acquisition','Sorry.  For the Navy, the Defense Logistics Agency, the General Services Administration, and the Naval Facilities Engineering Command are the principal acquisition organizations.',0,0,1);
I[19][3][3]=new Array('Distribution','Sorry.  For the Navy, the Military Sealift Command has this element of logistics as it\'s primary responsibility.',0,0,1);
I[19][3][4]=new Array('Flexibility','Nope.  This is not one of the elements of logistics, but instead is one of the principles of logistics.  It deals with adapting logistic support to changing conditions.',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('Other Services','Right.  This includes record keeping, disbursing, food services and legal services.',1,100,1);
I[20][3][1]=new Array('Health Services','Sorry.  Health Services deals with the provision of medical and dental supplies, blood and blood products, and facilities and services in both combat and noncombat environments.',0,0,1);
I[20][3][2]=new Array('Engineering','Nope.  Engineering deals with the movement of units, personnel, equipment, and supplies from the point of origin to the final destination.',0,0,1);
I[20][3][3]=new Array('Maintenance','Nope.  Maintenance refers to actions necessary to preserve, repair, and ensure continued operation and effectiveness of equipment, both afloat and ashore.',0,0,1);
I[20][3][4]=new Array('Supply','Sorry.  Supply includes the design, procurement, contracting, receipt, storage, inventory control, and issuance of end items, spare parts, and consumables.',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('Diego Garcia','This is an island which is jointly owned by France and Great Britain.  The U.S. leases land on the Great Britain side of the island.',1,100,1);
I[21][3][1]=new Array('Manama','Sorry.  This is the capital city of Bahrain, and the location of the headquarters of the U.S. Fifth Fleet.',0,0,1);
I[21][3][2]=new Array('Bandar Abbas','Sorry.  This is an Iranian naval base within the Persian Gulf.',0,0,1);
I[21][3][3]=new Array('Wake Island','Nope.  Wake Island is located in the central Pacific Ocean, not in the Indian Ocean.',0,0,1);
I[21][3][4]=new Array('Qatar','Nope.  This is a country within the Persian Gulf.  It served as the forward headquarters for the U.S. Central Command during Operation Iraqi Freedom.',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';
	}
	

	

	
	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;
		
//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{
			State[QNum][0] = ((TotAns-(Tries-1))/TotAns)*(PercentCorrect/(100*Tries));
		}
		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]);
			}
		}
	}
	Score = Math.floor((TotalScore/TotalWeighting)*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);
	}
}










//-->

//]]>



