// JavaScript Document
// functions for Sustainability 2900-0520.htm
// to enable visibility of each of 4 divs
// see also dhtml.css for style for these divs
function showHide(n, r, oVis)   {
	// this function can be used inside Flash also
	// n is no of divs
	// r is main name of div e.g. "div" for div0, div1, etc
	// oVis is the div to be made visible
   for (i=0; i<n; i++) {	   
		var oHid = r+i;
		//show(oVis,0)
		document.getElementById(oHid).style.display='none';
		document.getElementById(oHid).style.visibility='hidden';
	}
	//show(oVis);
	document.getElementById(oVis).style.display='block';
	document.getElementById(oVis).style.visibility='visible';
} 

// function to clear all radiobuttons in a page used with DHTML quiz
function clearallradio(n)  {
	// n is the total number of divs on the page
	// hide divs by 'showing' the empty div 'div222'
	showHide(n,'div','div222');
	// there may be more than one form on the document esp when inside default.asp
	// so search in all of them		
	for (j=0; j<document.forms.length; j++) {
		for (i=0; i<document.forms[j].elements.length; i++) {
			// find the radiobuttons
			if (document.forms[j].elements[i].type == 'radio') {
				document.forms[j].elements[i].checked = false;
			}
			// find textfield and clear (not just named 'feedback')
			if ((document.forms[j].elements[i].type == 'text'))  {  
					document.forms[j].elements[i].value = ' ';
			}
		}
	}
}

// to score the DHTML quiz - currently for max 10 questions but can be extended
// Text needs translating
function doscore()  {
	var scor = 0;
	var fb = "";	
	// find location of textfield called 'feedback' and assign info
	for (j=0; j<document.forms.length; j++) {
		for (i=0; i<document.forms[j].elements.length; i++) {
			var elem = document.forms[j].elements[i];
			if (elem.type == 'radio') {
				// assumes radiobutton sets named r1, r2, etc 
				// find where value == 1 radiobutton not checked - gets both wrong and unanswered
				if (elem.checked == false && elem.value == 1) {
					var n = elem.name;
					var nn = n.substring(1,2);		
					fb = fb + ' ' + nn; 
				}
			}		
				
			// find textfield called 'feedback'
			if ((document.forms[j].elements[i].type == 'text')) {			
				if ((document.forms[j].elements[i].name == 'feedback')) { 
					if (fb != "") {
					   document.forms[j].elements[i].value = strCheck+" "+fb;
					} else {
					   document.forms[j].elements[i].value = strWellDone;
					}
				}
			}
		}
	} // for j
}

// for 1330-0110.htm
getRadiobuttonValueTotal = function() {
	// cycle through all forms and all radiobuttons ang get 'total' of rb 'value'
	var totValue = 0;
	for (j=0; j<document.forms.length; j++) {
		for (i=0; i<document.forms[j].elements.length; i++) {
		var elem = document.forms[j].elements[i];
			// find the radiobuttons
			if (elem.type == 'radio' && elem.checked) {
				totValue = totValue + Number(elem.value);
			}
			// find textfield called 'feedback'
			if ((document.forms[j].elements[i].type == 'text')) {			
				if ((document.forms[j].elements[i].name == 'feedback')) { 
					document.forms[j].elements[i].value = strScore+" "+totValue+" / 18";
				}
			}
		}
	}
		if (totValue > 14 && totValue <= 18) {
			showHide(16,'div','div13');
		} else if (totValue >= 12 && totValue < 15) {
			showHide(16,'div','div14');
		}  else  if ( totValue < 12) {
			showHide(16,'div','div15');
		}
}
// another scoring method for DHTML quiz as in 1310-0160.htm
function ca(ndiv,tf,lo, hi, n, m) {
	// ndiv = no of divs (for showHide)
	// tf is name of input textfield , e.g. 'a1'
	// lo is minimum value for answer
	// hi is maximum value for answer
	// n is div for correct feedback, e.g. n=1 becomes div1
	// m is div for incorrect feedback, e.g. m=0 becomes div0
	var dc = 'div'+n;
	var di = 'div'+m;
	for (j=0; j<document.forms.length; j++) {
		for (i=0; i<document.forms[j].elements.length; i++) {
			var elem = document.forms[j].elements[i];
			if ((elem.type == 'text') && (elem.name == tf)) {
				var n = elem.name;
				var v = elem.value;  // e.g. a3.value
			}
		}
	}	
	
	if (v >= lo && v <= hi) {
		showHide(ndiv,'div',dc); // feedback for correct answer
	} else {
		showHide(ndiv,'div',di); // feedback for wrong answer
	} 
}
// variation of ca() above where 2 answers needed,  one being the unit
function caUnit(ndiv,tf, lo, hi, n, m, u) {
	// ndiv = no of divs (for showHide)
	// tf is name of input textfield , e.g. 'a1'
	// lo is minimum value for answer
	// hi is maximum value for answer
	// n is div for correct feedback, e.g. n=1 becomes div1
	// m is div for incorrect feedback, e.g. m=0 becomes div0
	// u is unit, e.g. 'MPa'
	var dc = 'div'+n;
	var di = 'div'+m;
	for (j=0; j<document.forms.length; j++) {
		for (i=0; i<document.forms[j].elements.length; i++) {
			var elem = document.forms[j].elements[i];
			if ((elem.type == 'text') && (elem.name == tf)) {
				var n = elem.name;
				var v = elem.value;  // e.g. a3.value
			}
			if ((elem.type == 'text') && (elem.name == tf+"1")) {
				var n1 = elem.name;
				var v2 = elem.value;  // e.g. a31.value
				var v1 = v2.substring(1,v2.length);  // shortens by one
			}
		}
	}
	if (v >= lo && v <= hi) {
		if (v1 == u) {
			showHide(ndiv,'div',dc);
		} else {
			showHide(ndiv,'div','div3');  // div3 contains 'Check your units'
		}
	} else {
		showHide(ndiv,'div',di);
	} 
}