//Copyright 2009 ADAM,Inc. All rights reserved.
	
	//"Steps" are defined out of order, must refer to documentation on the assessment

	//initialize variables
	var ffcqn = 1; //dynamic question numbers for images
	var ffcqns = new Array(16); //stored step numbers to question numbers map
	for (var i = 0; i < 16; i++) ffcqns[i] = 1;
	var ffcqnss = ''; //step question map store for reload postbacks
	var ffsb = ''; //results location
	var fftype = 'full'; //question mode
	var ffcq = 1; //current step number
	var ffqh = '1'; //step history for single and reload mode
	var ffanswers = new Array(); //answer array
	for (var i = 0; i < 16; i++) ffanswers[i] = '';
	var ffas = ''; //answer storage for reload postbacks
	var ffpostback = false; //is postback
	var ffwarningshown = false; //is warning shown
	var FFDEBUG = false;
	
	//ffdebug
	function ffdebug(msg) {
		if (FFDEBUG) {
			var str = msg + '\r\n' + 'type: ' + fftype + '\r\n' + 'current step: ' + ffcq + '\r\n' +
			'current img num: ' + ffcqn + '\r\n' + 'history: ' + ffqh + '\r\n' + 'step/qnum map: ' + ffcqnss + '\r\n' +
			'answers: ' + ffas;
			alert(str);
		}
	}
	
	//body onload function
	function ffloader() {
		if (fftype == 'reload' && ffpostback) {
			ffanswers = ffas.split(':'); //reload the answer array
			ffcqns = ffcqnss.split(':'); //reload step/question num map array
			ffrefreshForm();
		}
		if (fftype == 'full') ffhideBacks(); //full mode doesnt have back buttons
		ffshow(ffcq); //show the current step, for full and single mode is always the first question
		ffdebug("load");
	}
	
	//from step, to step
	function ffchangeStep(from, to) {
		ffdebug("before changestep");
		
		//update variables
		ffcq = to; //current question is now the to question
		GE('ffcq').value = ffcq;

		ffcqn++; //increment question number image number
		GE('ffcqn').value = ffcqn;
		
		ffcqns[MapOrds(to)] = ffcqn; //update step/question map
		ffcqnss = ffbuildMapString();
		GE('ffcqnss').value = ffcqnss;
		
		ffqh += ':' + to; //add step to question history
		GE('ffqh').value = ffqh;
		
		ffas = ffbuildAnswerString();
		GE('ffas').value = ffas; //store answer string for reload
		
		//hide the from step
		ffhide(from);
		
		//show the next step now if not a reload
		if (fftype != 'reload') ffshow(to);
		
		if (from != 16 && !ffwarningshown) {
			if (fftype == 'full') scrollDown(); //scroll down
			if (fftype == 'reload') document.mainFFForm.submit(); //cause reload
		}
		
		ffdebug("after changestep");
	}
	
	//build step/question num map string
	function ffbuildMapString() {
		var str = "";
		for (i = 0; i < 16; i++) str += ffcqns[i] + ":";
		str = str.substring(0, str.length - 1);
		return str;
	}
	
	//build answer string from answer array
	function ffbuildAnswerString() {
		var str = "";
		for (i = 0; i < 15; i++) str += ffanswers[i] + ":";
		str += GE('q16text').value + ":";
		str += '*';
		return str;
	}
	
	//show step
	function ffshow(step) {
		GE('n' + step).src = '/img/nums/' + ffcqn + '.jpg'; //next steps img number
		SD('q' + step);
		SD('q' + step + 'submit');
		SD('q' + step + 'q');
		if (step == 16) GE('q16text').focus();
	}
	
	//hide step
	function ffhide(step) {
		if (fftype == 'single') HD('q' + step);
		HD('q' + step + 'submit'); 
		HD('q' + step + 'q');
	}
		
	//back button
	function ffbackStep(from) {
		//reset, previous step is the second to last value in the history array
		var hist = ffqh.split(':');
		var to = hist[hist.length - 2];
		if (fftype == 'single')	ffhide(from);
		ffreset(parseInt(to));
		if (fftype == 'reload') document.mainFFForm.submit();
	}
	
	//next button
	function ffprocessStep(step) {
		ffdebug("before process step");
		eval('ffstep' + step + '()');
		ffwarningshown = false; //reset
		ffdebug("after process step");
	}
	
	//reset to step number
	function ffreset(to) {
		ffdebug("before ffreset");
		ffhideWarnings(); //hide warnings
		GE('loading').style.visibility = 'hidden'; //hide loading label
		
		//hide all the following questions and reset their states
		if (to == 3 || to == 1) {
			HD('q4');
			UE('q4chk1'); UE('q4chk2'); UE('q4chk3'); UE('q4chk4'); UE('q4chk5'); UE('q4chk6'); UE('q4chk7');
			EE('q4chk1'); EE('q4chk2'); EE('q4chk3'); EE('q4chk4'); EE('q4chk5'); EE('q4chk6'); EE('q4chk7');
			ffanswers[MapOrds(4)] = '';
		}
		if (to == 4 || to == 1) {
			HD('q3');
			UE('q3chk1'); UE('q3chk2'); UE('q3chk3'); UE('q3chk4'); UE('q3chk5'); UE('q3chk6'); UE('q3chk7'); UE('q3chk8'); UE('q3chk9');
			EE('q3chk1'); EE('q3chk2'); EE('q3chk3'); EE('q3chk4'); EE('q3chk5'); EE('q3chk6'); EE('q3chk7'); EE('q3chk8'); EE('q3chk9');
			ffanswers[MapOrds(3)] = '';
		}
		if (to == 2 || to == 6) {
			UE('q7rad1'); UE('q7rad2');
			HD('q7');
			ffanswers[MapOrds(7)] = '';
		}
		switch(to) {
			case 1:
				SD('q1submit'); SD('q1q');
			case 3:
			case 4:
				HD('q2'); SD('q3submit'); SD('q4submit'); SD('q3q'); SD('q4q');
				UE('q2rad1'); UE('q2rad2');
				ffanswers[MapOrds(2)] = '';
			case 2:
				SD('q2submit'); SD('q2q'); HD('q5'); HD('q7'); SD('q5submit'); SD('q7submit'); SD('q5q'); SD('q7q');
				UE('q5rad1'); UE('q5rad2');
				ffanswers[MapOrds(5)] = '';
			case 5:
				SD('q5submit'); SD('q5q'); HD('q6'); UE('q6rad1'); UE('q6rad2'); UE('q7rad1'); UE('q7rad2'); HD('q7'); SD('q7submit'); SD('q7q');
				ffanswers[MapOrds(6)] = '';
			case 6:
				SD('q6submit'); SD('q6q');
			case 7:
				SD('q7submit'); SD('q7q'); HD('q9'); UE('q9rad1'); UE('q9rad2');
				ffanswers[MapOrds(9)] = '';
			case 9:
				SD('q9submit'); SD('q9q'); HD('q95'); UE('q95rad1'); UE('q95rad2');
				ffanswers[MapOrds(95)] = '';
			case 95:
				SD('q95submit'); SD('q95q'); HD('q10');
				UE('q10chk1'); UE('q10chk2'); UE('q10chk3'); UE('q10chk4'); UE('q10chk5'); UE('q10chk6'); UE('q10chk7'); UE('q10chk8');
				EE('q10chk1'); EE('q10chk2'); EE('q10chk3'); EE('q10chk4'); EE('q10chk5'); EE('q10chk6'); EE('q10chk7'); EE('q10chk8');
				ffanswers[MapOrds(10)] = '';
			case 10:
				SD('q10submit'); SD('q10q'); HD('q11'); UE('q11rad1'); UE('q11rad2');
				ffanswers[MapOrds(11)] = '';
			case 11:
				SD('q11submit'); SD('q11q'); HD('q12');
				UE('q12chk1'); UE('q12chk2'); UE('q12chk3'); UE('q12chk4'); UE('q12chk5'); UE('q12chk6'); UE('q12chk7'); UE('q12chk8'); UE('q12chk9'); UE('q12chk10');
				EE('q12chk1'); EE('q12chk2'); EE('q12chk3'); EE('q12chk4'); EE('q12chk5'); EE('q12chk6'); EE('q12chk7'); EE('q12chk8'); EE('q12chk9'); EE('q12chk10');
				ffanswers[MapOrds(12)] = '';
			case 12:
				SD('q12submit'); SD('q12q'); HD('q125');
				UE('q125chk1'); UE('q125chk2'); UE('q125chk3'); UE('q125chk4'); UE('q125chk5'); UE('q125chk6'); UE('q125chk7'); UE('q125chk8'); UE('q125chk9'); UE('q125chk10'); UE('q125chk11');
				EE('q125chk1'); EE('q125chk2'); EE('q125chk3'); EE('q125chk4'); EE('q125chk5'); EE('q125chk6'); EE('q125chk7'); EE('q125chk8'); EE('q125chk9'); EE('q125chk10'); EE('q125chk11');
				ffanswers[MapOrds(125)] = '';
			case 125:
				SD('q125submit'); SD('q125q'); HD('q14'); UE('q14rad1'); UE('q14rad2');
				ffanswers[MapOrds(14)] = '';
			case 14:
				SD('q14submit'); SD('q14q'); HD('q115'); UE('q115rad1'); UE('q115rad2');
				ffanswers[MapOrds(115)] = '';
			case 115:
				SD('q115submit'); SD('q115q'); HD('q16');
				ffanswers[MapOrds(16)] = '';
			default:
				break;		
		}
		
		//REBUILD HIStoRY
		//get history array
		var hist = ffqh.split(':'); 
		var nffqh = '';
		//find index of 'to' step
		var toIndex;
		for (i = 0; i < 16; i++) if (hist[i] == to) toIndex = i;
		//rebuild array
		for (i = 0; i < toIndex + 1; i++) nffqh += hist[i] + ':';
		//remove last :
		nffqh = nffqh.substring(0, nffqh.length - 1);
		//reset variables
		ffqh = nffqh;
		//END REBUILD HIStoRY

		ffcqn = ffcqns[MapOrds(to)]; //reset current number image to the one for this step
		ffcq = to; //reset current step number
		
		if (fftype == 'reload') {
			GE('ffas').value = ffbuildAnswerString();
			GE('ffqh').value = ffqh;
			GE('ffcq').value = to;
			GE('ffcqn').value = ffcqn;
			ffcqnss = ffbuildMapString();
			GE('ffcqnss').value = ffcqnss;
		}
		if (fftype == 'single')	ffshow(to);
		ffdebug("after ffreset");
	}

	//hide warning statements
	function ffhideWarnings() {
		HD('w1'); HD('w2'); HD('w3'); HD('w4'); HD('w5'); HD('w6'); HD('w7'); HD('w9'); 
		HD('w95'); HD('w10'); HD('w11'); HD('w115'); HD('w12'); HD('w125'); HD('w14'); HD('w16');
	}
	
	//hide back buttons - for full mode
	function ffhideBacks() {
		HD('q2back'); HD('q3back'); HD('q4back'); HD('q5back'); HD('q6back'); HD('q7back'); HD('q9back'); 
		HD('q95back'); HD('q10back'); HD('q11back'); HD('q115back'); HD('q12back'); HD('q125back'); HD('q14back'); HD('q16back');
	}

	//show warning for step number
	function ffshowWarning(step) {
		GE('w' + step).style.display = 'inline';
		ffwarningshown = true;
	}

	function ffstep1() {
		if (GE('q1select').selectedIndex == 1) ffanswers[MapOrds(1)] = 'a';
		if (GE('q1select').selectedIndex == 2) ffanswers[MapOrds(1)] = 'b';
		if (GE('q1select').selectedIndex == 3) ffanswers[MapOrds(1)] = 'c';
		if (GE('q1select').selectedIndex == 4) ffanswers[MapOrds(1)] = 'd';
		if (GE('q1select').selectedIndex == 5) ffanswers[MapOrds(1)] = 'e';
		if (GE('q1select').selectedIndex == 6) ffanswers[MapOrds(1)] = 'f';
		if (ffIsA(1,'a')) //0-5 months
			ffprocessResults();
		else if (ffIsA(1,'b') || ffIsA(1,'c')) //6 months - 18 years
			ffchangeStep(1,3);
		else if (ffIsA(1,'d') || ffIsA(1,'e') || ffIsA(1,'f')) //18 years +
			ffchangeStep(1,4);
		else
			ffshowWarning(1);
	}

	function ffstep3() {
		ffanswers[MapOrds(3)] = '';
		if (IsC('q3chk1')) ffanswers[MapOrds(3)] += 'a';
		if (IsC('q3chk2')) ffanswers[MapOrds(3)] += 'b';
		if (IsC('q3chk3')) ffanswers[MapOrds(3)] += 'c';
		if (IsC('q3chk4')) ffanswers[MapOrds(3)] += 'd';
		if (IsC('q3chk5')) ffanswers[MapOrds(3)] += 'e';
		if (IsC('q3chk6')) ffanswers[MapOrds(3)] += 'f';
		if (IsC('q3chk7')) ffanswers[MapOrds(3)] += 'g';
		if (IsC('q3chk8')) ffanswers[MapOrds(3)] += 'h';
		if (IsC('q3chk9')) ffanswers[MapOrds(3)] += 'i';
		if (ffIsA(3,'a') || ffIsA(3,'b') || ffIsA(3,'c') || ffIsA(3,'d') || ffIsA(3,'e') || ffIsA(3,'f') || ffIsA(3,'g') || ffIsA(3,'h'))
			ffprocessResults();
		else if (ffIsA(3,'i'))
			ffchangeStep(3,2);
		else
			ffshowWarning(3);
	}

	function ffstep4() {
		ffanswers[MapOrds(4)] = '';
		if (IsC('q4chk1')) ffanswers[MapOrds(4)] += 'a';
		if (IsC('q4chk2')) ffanswers[MapOrds(4)] += 'b';
		if (IsC('q4chk3')) ffanswers[MapOrds(4)] += 'c';
		if (IsC('q4chk4')) ffanswers[MapOrds(4)] += 'd';
		if (IsC('q4chk5')) ffanswers[MapOrds(4)] += 'e';
		if (IsC('q4chk6')) ffanswers[MapOrds(4)] += 'f';
		if (IsC('q4chk7')) ffanswers[MapOrds(4)] += 'g';
		ffca = "adult";
		if (ffIsA(4,'a') || ffIsA(4,'b') || ffIsA(4,'c') || ffIsA(4,'d') || ffIsA(4,'e') || ffIsA(4,'f')) 
			ffprocessResults();
		else if (ffIsA(4,'g')) 
			ffchangeStep(4,2);
		else 
			ffshowWarning(4);
	}

	function ffstep2() {
		if (IsC('q2rad1')) ffanswers[MapOrds(2)] = 'a';
		if (IsC('q2rad2')) ffanswers[MapOrds(2)] = 'b';
		if (ffIsA(2,'a') || ffIsA(2,'b'))
			ffchangeStep(2,5);
		else
			ffshowWarning(2);
	}

	function ffstep5() {
		if (IsC('q5rad1')) ffanswers[MapOrds(5)] = 'a';
		if (IsC('q5rad2')) ffanswers[MapOrds(5)] = 'b';
		if (ffIsA(5,'a') || ffIsA(5,'b')) {
			if (ffIsA(5,'b') && (ffIsA(1,'c') || ffIsA(1,'d') || ffIsA(1,'e')))
				ffchangeStep(5,6);
			else
				ffchangeStep(5,7);
		} else
			ffshowWarning(5);
	}

	function ffstep6() {
		if (IsC('q6rad1')) ffanswers[MapOrds(6)] = 'a';
		if (IsC('q6rad2')) ffanswers[MapOrds(6)] = 'b';
		if (ffIsA(6,'a') || ffIsA(6,'b'))
			ffchangeStep(6,7);
		else
			ffshowWarning(6);
	}

	function ffstep7() {
		if (IsC('q7rad1')) ffanswers[MapOrds(7)] = 'a';
		if (IsC('q7rad2')) ffanswers[MapOrds(7)] = 'b';
		if (ffIsA(7,'a') || ffIsA(7,'b'))
			ffchangeStep(7,9);
		else
			ffshowWarning(7);
	}

	function ffstep9() {
		if (IsC('q9rad1')) ffanswers[MapOrds(9)] = 'a';
		if (IsC('q9rad2')) ffanswers[MapOrds(9)] = 'b';
		if (ffIsA(9,'a') || ffIsA(9,'b'))
			ffchangeStep(9,95);
		else
			ffshowWarning(9);
	}

	function ffstep95() {
		if (IsC('q95rad1')) ffanswers[MapOrds(95)] = 'a';
		if (IsC('q95rad2')) ffanswers[MapOrds(95)] = 'b';
		if (ffIsA(95,'a') || ffIsA(95,'b')) {
			if (ffIsA(1,'b') || ffIsA(1,'c')) //child
				ffchangeStep(95,12);
			else //adult
				ffchangeStep(95,10);
		} else
			ffshowWarning(95);
	}
	
	function ffstep10() {
		ffanswers[MapOrds(10)] = '';
		if (IsC('q10chk1')) ffanswers[MapOrds(10)] += 'a';
		if (IsC('q10chk2')) ffanswers[MapOrds(10)] += 'b';
		if (IsC('q10chk3')) ffanswers[MapOrds(10)] += 'c';
		if (IsC('q10chk4')) ffanswers[MapOrds(10)] += 'd';
		if (IsC('q10chk5')) ffanswers[MapOrds(10)] += 'e';
		if (IsC('q10chk6')) ffanswers[MapOrds(10)] += 'f';
		if (IsC('q10chk7')) ffanswers[MapOrds(10)] += 'g';
		if (IsC('q10chk8')) ffanswers[MapOrds(10)] += 'h';
		if (ffIsA(10,'a') || ffIsA(10,'b') || ffIsA(10,'c') || ffIsA(10,'d') || ffIsA(10,'e') || ffIsA(10,'f') || ffIsA(10,'g'))
			ffchangeStep(10,11);
		else if (ffIsA(10,'h'))
			ffchangeStep(10,12);
		else
			ffshowWarning(10);
	}

	function ffstep11() {
		if (IsC('q11rad1')) ffanswers[MapOrds(11)] = 'a';
		if (IsC('q11rad2')) ffanswers[MapOrds(11)] = 'b';
		if (ffIsA(11,'a') || ffIsA(11,'b'))
			ffchangeStep(11,12);
		else
			ffshowWarning(11);
	}

	function ffstep12() {
		ffanswers[MapOrds(12)] = '';
		if (IsC('q12chk1')) ffanswers[MapOrds(12)] += 'a';
		if (IsC('q12chk2')) ffanswers[MapOrds(12)] += 'b';
		if (IsC('q12chk3')) ffanswers[MapOrds(12)] += 'c';
		if (IsC('q12chk4')) ffanswers[MapOrds(12)] += 'd';
		if (IsC('q12chk5')) ffanswers[MapOrds(12)] += 'e';
		if (IsC('q12chk6')) ffanswers[MapOrds(12)] += 'f';
		if (IsC('q12chk7')) ffanswers[MapOrds(12)] += 'g';
		if (IsC('q12chk8')) ffanswers[MapOrds(12)] += 'h';
		if (IsC('q12chk9')) ffanswers[MapOrds(12)] += 'i';
		if (IsC('q12chk10')) ffanswers[MapOrds(12)] += 'j';
		if (ffIsA(12,'a') || ffIsA(12,'b') || ffIsA(12,'c') || ffIsA(12,'d') || ffIsA(12,'e') || ffIsA(12,'f') || ffIsA(12,'g') || ffIsA(12,'h') || ffIsA(12,'i') || ffIsA(12,'j')) {
			if (ffIsA(1,'b') || ffIsA(1,'c')) { //child
				if (ffIsA(2,'b') && (ffIsA(11,'a') || ffIsA(6,'a') || ffIsA(9,'b')))
					ffchangeStep(12,115);
				else
					ffchangeStep(12,16);
			} else //adult
				ffchangeStep(12,125);
		} else
			ffshowWarning(12);
	}

	function ffstep125() {
		ffanswers[MapOrds(125)] = '';
		if (IsC('q125chk1')) ffanswers[MapOrds(125)] += 'a';
		if (IsC('q125chk2')) ffanswers[MapOrds(125)] += 'b';
		if (IsC('q125chk3')) ffanswers[MapOrds(125)] += 'c';
		if (IsC('q125chk4')) ffanswers[MapOrds(125)] += 'd';
		if (IsC('q125chk5')) ffanswers[MapOrds(125)] += 'e';
		if (IsC('q125chk6')) ffanswers[MapOrds(125)] += 'f';
		if (IsC('q125chk7')) ffanswers[MapOrds(125)] += 'g';
		if (IsC('q125chk8')) ffanswers[MapOrds(125)] += 'h';
		if (IsC('q125chk9')) ffanswers[MapOrds(125)] += 'i';
		if (IsC('q125chk10')) ffanswers[MapOrds(125)] += 'j';
		if (IsC('q125chk11')) ffanswers[MapOrds(125)] += 'k';
		if (ffIsA(125,'a') || ffIsA(125,'b') || ffIsA(125,'c') || ffIsA(125,'d') || ffIsA(125,'e') || ffIsA(125,'f') || ffIsA(125,'g')
				 || ffIsA(125,'h') || ffIsA(125,'i') || ffIsA(125,'j')) {
			ffchangeStep(125,14);
		} else if (ffIsA(125,'k')) {
			if (ffIsA(2,'b') && (ffIsA(11,'a') || ffIsA(6,'a') || ffIsA(9,'b') ||
					ffIsA(12,'a') || ffIsA(12,'b') || ffIsA(12,'c') || ffIsA(12,'d') || ffIsA(12,'e') || ffIsA(12,'f') || ffIsA(12,'g') || ffIsA(12,'h') || ffIsA(12,'i')))
				ffchangeStep(125,115);
			else
				ffchangeStep(125,16);
		} else
			ffshowWarning(125);
	}

	function ffstep14() {
		if (IsC('q14rad1')) ffanswers[MapOrds(14)] = 'a';
		if (IsC('q14rad2')) ffanswers[MapOrds(14)] = 'b';
		if (ffIsA(14,'a') || ffIsA(14,'b'))
			ffchangeStep(14,115);
		else
			ffshowWarning(14);
	}

	function ffstep115() {
		if (IsC('q115rad1')) ffanswers[MapOrds(115)] = 'a';
		if (IsC('q115rad2')) ffanswers[MapOrds(115)] = 'b';
		if (ffIsA(115,'a') || ffIsA(115,'b'))
			ffchangeStep(115,16);
		else
			ffshowWarning(115);
	}
	
	function ffstep16() {
		ffanswers[MapOrds(16)] = GE('q16text').value;
		if (GE('q16text').value != '') 
			ffprocessResults();
		else 
			ffshowWarning(16);
	}
	
	function ffclearStep3() {
		if (IsC('q3chk9')) {
			UE('q3chk1'); UE('q3chk2'); UE('q3chk3'); UE('q3chk4'); UE('q3chk5'); UE('q3chk6'); UE('q3chk7'); UE('q3chk8');
			DE('q3chk1'); DE('q3chk2'); DE('q3chk3'); DE('q3chk4'); DE('q3chk5'); DE('q3chk6'); DE('q3chk7'); DE('q3chk8');
		} else {
			EE('q3chk1'); EE('q3chk2'); EE('q3chk3'); EE('q3chk4'); EE('q3chk5'); EE('q3chk6'); EE('q3chk7'); EE('q3chk8');
		}
	}

	function ffclearStep4() {
		if (IsC('q4chk7')) {
			UE('q4chk1'); UE('q4chk2'); UE('q4chk3'); UE('q4chk4'); UE('q4chk5'); UE('q4chk6');
			DE('q4chk1'); DE('q4chk2'); DE('q4chk3'); DE('q4chk4'); DE('q4chk5'); DE('q4chk6');
		} else {
			EE('q4chk1'); EE('q4chk2'); EE('q4chk3'); EE('q4chk4'); EE('q4chk5'); EE('q4chk6');
		}
	}

	function ffclearStep10() {
		if (IsC('q10chk8')) {
			UE('q10chk1'); UE('q10chk2'); UE('q10chk3'); UE('q10chk4'); UE('q10chk5'); UE('q10chk6'); UE('q10chk7');
			DE('q10chk1'); DE('q10chk2'); DE('q10chk3'); DE('q10chk4'); DE('q10chk5'); DE('q10chk6'); DE('q10chk7');
		} else {
			EE('q10chk1'); EE('q10chk2'); EE('q10chk3'); EE('q10chk4'); EE('q10chk5'); EE('q10chk6'); EE('q10chk7');
		}
	}

	function ffclearStep12() {
		if (IsC('q12chk10')) {
			UE('q12chk1'); UE('q12chk2'); UE('q12chk3'); UE('q12chk4'); UE('q12chk5'); UE('q12chk6'); UE('q12chk7'); UE('q12chk8'); UE('q12chk9');
			DE('q12chk1'); DE('q12chk2'); DE('q12chk3'); DE('q12chk4'); DE('q12chk5'); DE('q12chk6'); DE('q12chk7'); DE('q12chk8'); DE('q12chk9');
		} else {
			EE('q12chk1'); EE('q12chk2'); EE('q12chk3'); EE('q12chk4'); EE('q12chk5'); EE('q12chk6'); EE('q12chk7'); EE('q12chk8'); EE('q12chk9');
		}
	}

	function ffclearStep125() {
		if (IsC('q125chk11')) {
			UE('q125chk1'); UE('q125chk2'); UE('q125chk3'); UE('q125chk4'); UE('q125chk5'); UE('q125chk6'); UE('q125chk7'); UE('q125chk8'); UE('q125chk9'); UE('q125chk10');
			DE('q125chk1'); DE('q125chk2'); DE('q125chk3'); DE('q125chk4'); DE('q125chk5'); DE('q125chk6'); DE('q125chk7'); DE('q125chk8'); DE('q125chk9'); DE('q125chk10');
		} else {
			EE('q125chk1'); EE('q125chk2'); EE('q125chk3'); EE('q125chk4'); EE('q125chk5'); EE('q125chk6'); EE('q125chk7'); EE('q125chk8'); EE('q125chk9'); EE('q125chk10');
		}
	}

	//decide which scenario to pass to based on answers
	function ffprocessResults() {
		GE('loading').style.visibility = 'visible';
		var scenario = ffscenarioCheck();
		var answerString = ffbuildAnswerString().replace('*',scenario);
		GE('ffa').value = answerString;
		GE('ffguid').value = ffreadCookie('ffcookie');
		if (scenario == '1') GE('resultsFFForm').action = ffsb + '/scenarioI.jsp';
		if (scenario == '2a') GE('resultsFFForm').action = ffsb + '/scenarioIIa.jsp';
		if (scenario == '2b') GE('resultsFFForm').action = ffsb + '/scenarioIIb.jsp';
		if (scenario == '2c') GE('resultsFFForm').action = ffsb + '/scenarioIIc.jsp';
		if (scenario == '2d') GE('resultsFFForm').action = ffsb + '/scenarioIId.jsp';
		if (scenario == '2e') GE('resultsFFForm').action = ffsb + '/scenarioIIe.jsp';
		if (scenario == '2f') GE('resultsFFForm').action = ffsb + '/scenarioIIf.jsp';
		if (scenario == '3a') GE('resultsFFForm').action = ffsb + '/scenarioIIIa.jsp';
		if (scenario == '3b') GE('resultsFFForm').action = ffsb + '/scenarioIIIb.jsp';
		if (scenario == '3c') GE('resultsFFForm').action = ffsb + '/scenarioIIIc.jsp';
		if (scenario == '3d') GE('resultsFFForm').action = ffsb + '/scenarioIIId.jsp';
		if (scenario == '3e') GE('resultsFFForm').action = ffsb + '/scenarioIIIe.jsp';
		if (scenario == '3f') GE('resultsFFForm').action = ffsb + '/scenarioIIIf.jsp';
		if (scenario == '4') GE('resultsFFForm').action = ffsb + '/scenarioIV.jsp';
		if (scenario == '5') GE('resultsFFForm').action = ffsb + '/scenarioV.jsp';
		document.resultsFFForm.submit();
	}
	
	//is value selected for question number?
	function ffIsA(qnum, val) {
		qnum = MapOrds(qnum);
		if (ffanswers[qnum].indexOf(val) != -1) return true;
		else return false;
	}

	function ffscenarioCheck() {
		//scenario IV
		if (ffIsA(1,'a')) { return '4'; }
		//scenario I
		else if (ffIsA(3,'a') || ffIsA(3,'b') || ffIsA(3,'c') || ffIsA(3,'d') || ffIsA(3,'e') || ffIsA(3,'f') || ffIsA(3,'g') || ffIsA(3,'h') ||
				ffIsA(4,'a') || ffIsA(4,'b') || ffIsA(4,'c') || ffIsA(4,'d') || ffIsA(4,'e') || ffIsA(4,'f')) {
			return '1';
		}
		//scenario IIa
		else if (
				(ffIsA(2,'a')) &&
				(ffIsA(7,'b')) &&
				(
						ffIsA(1,'b') ||
						ffIsA(6,'a') ||
						ffIsA(9,'a') ||
						ffIsA(11,'a') ||
						(
								(ffIsA(12,'a') || ffIsA(12,'b') || ffIsA(12,'c') || ffIsA(12,'d') || ffIsA(12,'e') || ffIsA(12,'f') || ffIsA(12,'g') || ffIsA(12,'h')) &&
								(ffIsA(1,'b') || ffIsA(1,'c') || ffIsA(1,'d') || ffIsA(1,'e'))
						) ||
						(
								(ffIsA(125,'a') || ffIsA(125,'b') || ffIsA(125,'c') || ffIsA(125,'d') || ffIsA(125,'e') || ffIsA(125,'f') || ffIsA(125,'g') || ffIsA(125,'h') || ffIsA(125,'i') || ffIsA(125,'j')) &&	
								ffIsA(14,'b')
						) ||
						(
								ffIsA(12,'i') && 
								(ffIsA(1,'b') || ffIsA(1,'c'))
						)
				)
				) {	return '2a'; }
		//scenario IIb
		else if (
				(ffIsA(2,'a')) &&
				(ffIsA(7,'b')) &&
				(ffIsA(95,'a') || ffIsA(1,'f'))
				) { return '2b'; }
		//scenario IIc
		else if (
				(ffIsA(2,'a')) &&
				(ffIsA(7,'a')) &&
				(
						ffIsA(1,'b') ||
						ffIsA(6,'a') ||
						ffIsA(9,'a') ||
						ffIsA(11,'a') ||
						(
								(ffIsA(12,'a') || ffIsA(12,'b') || ffIsA(12,'c') || ffIsA(12,'d') || ffIsA(12,'e') || ffIsA(12,'f') || ffIsA(12,'g') || ffIsA(12,'h')) &&
								(ffIsA(1,'b') || ffIsA(1,'c') || ffIsA(1,'d') || ffIsA(1,'e'))
						) ||
						(
								(ffIsA(125,'a') || ffIsA(125,'b') || ffIsA(125,'c') || ffIsA(125,'d') || ffIsA(125,'e') || ffIsA(125,'f') || ffIsA(125,'g') || ffIsA(125,'h') || ffIsA(125,'i') || ffIsA(125,'j')) &&	
								ffIsA(14,'b')
						) ||
						(
								ffIsA(12,'i') && 
								(ffIsA(1,'b') || ffIsA(1,'c'))
						)
				)
				) {	return '2c'; }
		//scenario IId
		else if (
				(ffIsA(2,'a')) &&
				(ffIsA(7,'b')) &&
				(ffIsA(1,'c') || ffIsA(1,'d'))
				) { return '2d'; }
		//scenario IIe
		else if (
				(ffIsA(2,'a')) &&
				(ffIsA(7,'b')) &&
				(
						ffIsA(1,'e') &&
						(ffIsA(12,'j') || ffIsA(10,'h') || ffIsA(95,'b') || ffIsA(6,'b') || ffIsA(9,'b') || ffIsA(125,'k') 
						)
				)
				) { return '2e'; }
		//scenario IIf
		else if (
				(ffIsA(2,'a')) &&
				(ffIsA(7,'a')) &&
				(
						(ffIsA(1,'c') || ffIsA(1,'d') || ffIsA(1,'e')) &&
						(ffIsA(12,'j') || ffIsA(10,'h') || ffIsA(95,'b') || ffIsA(6,'b') || ffIsA(9,'b') || ffIsA(125,'k')
						)
				)
				) { return '2f'; }
		//scenario IIIa
		else if (
				ffIsA(2,'b') &&
				ffIsA(7,'b') &&
				ffIsA(115,'a') &&
				(
						(
								(ffIsA(12,'a') || ffIsA(12,'b') || ffIsA(12,'c') || ffIsA(12,'d') || ffIsA(12,'e') || ffIsA(12,'f') || ffIsA(12,'g') || ffIsA(12,'h')) &&
								(ffIsA(1,'b') || ffIsA(1,'c') || ffIsA(1,'d') || ffIsA(1,'e') || ffIsA(1,'f'))
						) ||
						ffIsA(6,'a') ||
						ffIsA(11,'a') ||
						(
								ffIsA(12,'i') &&
								(ffIsA(1,'a') || ffIsA(1,'b') || ffIsA(1,'c'))
						) ||
						ffIsA(1,'b') ||
						ffIsA(9,'a') ||
						(
								(ffIsA(125,'a') || ffIsA(125,'b') || ffIsA(125,'c') || ffIsA(125,'d') || ffIsA(125,'e') || ffIsA(125,'f') || ffIsA(125,'g') || ffIsA(125,'h') || ffIsA(125,'i') || ffIsA(125,'j')) &&	
								ffIsA(14,'b')
						)
				)
				) { return '3a'; }
		//scenario IIIb
		else if (
				ffIsA(2,'b') &&
				ffIsA(7,'b') &&
				ffIsA(115,'a') &&
				(ffIsA(95,'a') || ffIsA(1,'f'))
				)  { return '3b'; }
		//scenario IIIc
		else if (
				ffIsA(2,'b') &&
				ffIsA(7,'a') &&
				ffIsA(115,'a') &&
				(
						(
								(ffIsA(12,'a') || ffIsA(12,'b') || ffIsA(12,'c') || ffIsA(12,'d') || ffIsA(12,'e') || ffIsA(12,'f') || ffIsA(12,'g') || ffIsA(12,'h')) &&
								(ffIsA(1,'b') || ffIsA(1,'c') || ffIsA(1,'d') || ffIsA(1,'e') || ffIsA(1,'f'))
						) ||
						ffIsA(6,'a') ||
						ffIsA(11,'a') ||
						(
								ffIsA(12,'i') &&
								(ffIsA(1,'a') || ffIsA(1,'b') || ffIsA(1,'c'))
						) ||
						ffIsA(1,'b') ||
						ffIsA(9,'a') ||
						(
								(ffIsA(125,'a') || ffIsA(125,'b') || ffIsA(125,'c') || ffIsA(125,'d') || ffIsA(125,'e') || ffIsA(125,'f') || ffIsA(125,'g') || ffIsA(125,'h') || ffIsA(125,'i') || ffIsA(125,'j')) &&	
								ffIsA(14,'b')
						)
				)
				) { return '3c'; }
		//scenario IIId
		else if (
				ffIsA(2,'b') &&
				ffIsA(7,'b') &&
				(
						(
								(ffIsA(12,'a') || ffIsA(12,'b') || ffIsA(12,'c') || ffIsA(12,'d') || ffIsA(12,'e') || ffIsA(12,'f') || ffIsA(12,'g') || ffIsA(12,'h')) &&
								(ffIsA(1,'b') || ffIsA(1,'c') || ffIsA(1,'d') || ffIsA(1,'e') || ffIsA(1,'f'))
						) ||
						ffIsA(6,'a') ||
						ffIsA(11,'a') ||
						(
								ffIsA(12,'i') &&
								(ffIsA(1,'a') || ffIsA(1,'b') || ffIsA(1,'c'))
						) ||
						ffIsA(1,'b') ||
						ffIsA(1,'c') ||
						ffIsA(1,'d') ||
						ffIsA(9,'a') ||
						(
								(ffIsA(125,'a') || ffIsA(125,'b') || ffIsA(125,'c') || ffIsA(125,'d') || ffIsA(125,'e') || ffIsA(125,'f') || ffIsA(125,'g') || ffIsA(125,'h') || ffIsA(125,'i') || ffIsA(125,'j')) &&	
								ffIsA(14,'b')
						)
				)
				) { return '3d'; }
		//scenario IIIe
		else if (
				ffIsA(2,'b') &&
				ffIsA(7,'b') &&
				(
						ffIsA(1,'f') ||
						ffIsA(95,'a') ||
						(
								ffIsA(1,'e') &&
								(
										ffIsA(12,'j') || ffIsA(10,'h') || ffIsA(95,'b') || ffIsA(6,'b') || ffIsA(9,'b') || ffIsA(125,'k')
								)
						)
				)
				) { return '3e'; }
		//scenario IIIf
		else if (
				ffIsA(2,'b') &&
				ffIsA(7,'a') &&
				(
						ffIsA(12,'j') || ffIsA(10,'h') || ffIsA(95,'b') || ffIsA(6,'b') || ffIsA(9,'b') || ffIsA(125,'k')
				)
				) { return '3f'; }
		else { return '5'; }
	}
	
	//reset form check boxes on load
	function ffrefreshForm() {
		if (ffIsA(1,'a')) GE('q1select').selectedIndex = 1;
		if (ffIsA(1,'b')) GE('q1select').selectedIndex = 2;
		if (ffIsA(1,'c')) GE('q1select').selectedIndex = 3;
		if (ffIsA(1,'d')) GE('q1select').selectedIndex = 4;
		if (ffIsA(1,'e')) GE('q1select').selectedIndex = 5;
		if (ffIsA(1,'f')) GE('q1select').selectedIndex = 6;
		if (ffIsA(3,'a')) CE('q3chk1');
		if (ffIsA(3,'b')) CE('q3chk2');
		if (ffIsA(3,'c')) CE('q3chk3');
		if (ffIsA(3,'d')) CE('q3chk4');
		if (ffIsA(3,'e')) CE('q3chk5');
		if (ffIsA(3,'f')) CE('q3chk6');
		if (ffIsA(3,'g')) CE('q3chk7');
		if (ffIsA(3,'h')) CE('q3chk8');
		if (ffIsA(3,'i')) CE('q3chk9');
		if (ffIsA(4,'a')) CE('q4chk1');
		if (ffIsA(4,'b')) CE('q4chk2');
		if (ffIsA(4,'c')) CE('q4chk3');
		if (ffIsA(4,'d')) CE('q4chk4');
		if (ffIsA(4,'e')) CE('q4chk5');
		if (ffIsA(4,'f')) CE('q4chk6');
		if (ffIsA(4,'g')) CE('q4chk7');
		if (ffIsA(2,'a')) CE('q2rad1');
		if (ffIsA(2,'b')) CE('q2rad2');
		if (ffIsA(5,'a')) CE('q5rad1');
		if (ffIsA(5,'b')) CE('q5rad2');
		if (ffIsA(6,'a')) CE('q6rad1');
		if (ffIsA(6,'b')) CE('q6rad2');
		if (ffIsA(7,'a')) CE('q7rad1');
		if (ffIsA(7,'b')) CE('q7rad2');
		if (ffIsA(9,'a')) CE('q9rad1');
		if (ffIsA(9,'b')) CE('q9rad2');
		if (ffIsA(95,'a')) CE('q95rad1');
		if (ffIsA(95,'b')) CE('q95rad2');
		if (ffIsA(10,'a')) CE('q10chk1');
		if (ffIsA(10,'b')) CE('q10chk2');
		if (ffIsA(10,'c')) CE('q10chk3');
		if (ffIsA(10,'d')) CE('q10chk4');
		if (ffIsA(10,'e')) CE('q10chk5');
		if (ffIsA(10,'f')) CE('q10chk6');
		if (ffIsA(10,'g')) CE('q10chk7');
		if (ffIsA(10,'h')) CE('q10chk8');
		if (ffIsA(11,'a')) CE('q11rad1');
		if (ffIsA(11,'b')) CE('q11rad2');
		if (ffIsA(12,'a')) CE('q12chk1');
		if (ffIsA(12,'b')) CE('q12chk2');
		if (ffIsA(12,'c')) CE('q12chk3');
		if (ffIsA(12,'d')) CE('q12chk4');
		if (ffIsA(12,'e')) CE('q12chk5');
		if (ffIsA(12,'f')) CE('q12chk6');
		if (ffIsA(12,'g')) CE('q12chk7');
		if (ffIsA(12,'h')) CE('q12chk8');
		if (ffIsA(12,'i')) CE('q12chk9');
		if (ffIsA(12,'j')) CE('q12chk10');
		if (ffIsA(125,'a')) CE('q125chk1');
		if (ffIsA(125,'b')) CE('q125chk2');
		if (ffIsA(125,'c')) CE('q125chk3');
		if (ffIsA(125,'d')) CE('q125chk4');
		if (ffIsA(125,'e')) CE('q125chk5');
		if (ffIsA(125,'f')) CE('q125chk6');
		if (ffIsA(125,'g')) CE('q125chk7');
		if (ffIsA(125,'h')) CE('q125chk8');
		if (ffIsA(125,'i')) CE('q125chk9');
		if (ffIsA(125,'j')) CE('q125chk10');
		if (ffIsA(125,'k')) CE('q125chk11');
		if (ffIsA(14,'a')) CE('q14rad1');
		if (ffIsA(14,'b')) CE('q14rad2');
		if (ffIsA(115,'a')) CE('q115rad1');
		if (ffIsA(115,'b')) CE('q115rad2');
	}
	