//window.name = 'erc-portal';

faOn = new Image();
faOff = new Image();
faOn.src = '/global/images/search-functions/further-analyze-data-hover.jpg';
faOff.src = '/global/images/search-functions/further-analyze-data.jpg';

function openHelp(page, isBig) {
	var args = (isBig) ? 'width=650,height=450,scrollbars,location' : 'width=500,height=350,scrollbars,location';
	var w = window.open(page, page.substr(0, page.indexOf('.')).replace(/-/g, '_'), args);
	if (w && !w.closed) return false;
	return true;
}

function swapImage(imageObj, newImage) {
	if (document.images) {
		imageObj.src = newImage.src;
	}
}

var waitWin;
function launchPleaseWait() {
	waitWin = window.open('please-wait.html', 'wait', 'width=300,height=130');
	if (waitWin && !waitWin.closed) window.onunload = closePleaseWait;
}

function closePleaseWait() {
	waitWin.close();
}

function printSec(sec) { // prints a section of a report instead of the intro
	if (document.getElementById) {
		document.getElementById('reportIntro').className = 'screen-only';
		document.getElementById('reportSec' + sec).className = '';
		window.print();
		return false;
	}
	return true;
}

function launchQuery(oldSearch, co, ind, nbes) {
//	url = 'adv-query.asp?os=' + oldSearch + '&ca=' + co + '&ia=' + ind + '&na=' + nbes;
//	win = window.open(url, 'adv-tool', 'height=500,width=464,scrollbars');
//	if (win && !win.closed) return false;
	return true;
}

function checkSimpleData(f) {
	var i;
	var founf = false;
	for (i = 0; i < f.elements.length; ++i) {
		if (f.elements[i].name.substring(0,6) == 'q-init' && f.elements[i].checked) {
			found = true;
			break;
		}
	}
	if (found) return true;
	return false;
}

function changeClass(isActive) {
	var ua = navigator.userAgent.toLowerCase();
	if (ua.indexOf('msie') > -1 && ua.indexOf('opera') == -1) {
		thisEl = window.event.srcElement;
		while (thisEl != document.documentElement) {
			if (isActive) {
				if (thisEl.nodeName == 'LI' && thisEl.className.indexOf('mouseOver') == -1) {
					thisEl.className = 'mouseOver ' + thisEl.className;
				}
				thisEl = thisEl.parentNode;
			} else {
				if (thisEl.nodeName == 'LI' && thisEl.className.indexOf('mouseOver') > -1) {
					setTimeout('thisEl.className = thisEl.className.substring(10, thisEl.className.length);', 5);
					//thisEl = document.documentElement;
				} else {
				}
					thisEl = thisEl.parentNode;
			}
		}
	}
}

function openChart(chartInfo) {
	if (chartInfo.indexOf('.') > -1) {
		allVars = chartInfo.split('.');
		coAvg = allVars[0];
		indAvg = allVars[1];
		nbesAvg = allVars[2];
		qID = allVars[3];
		demo = allVars[4];
		inits = '&i' + allVars[5].replace(/,/g, '=1&i') + '=1';
	}
	var url = '/global/chart-display.asp?q=' + qID + '&d=' + demo + inits;
	if (window.open(url, 'chartWin', 'width=750,height=500,scrollbars,resizable')) return false;
	return true;
}

var firstFindClick = false;
function regClick(tField) {
	if (!firstFindClick) {
		firstFindClick = true;
		tField.value = '';
		tField.style.color = 'black';
	}
}

function typeAheadFind(typed, selectBox) {
	for (i = 0; i < selectBox.length; ++i) {
		if (selectBox[i].text.substring(0, typed.length).toLowerCase() == typed.toLowerCase()) {
			selectBox[i].selected = true;
			break;
		}
	}
}

function deleteQuery(query) {
	f = document.forms['hiddenform'];
	os = f.elements['q-oldsearch'];
	os.value = os.value.replace(query, '').replace('__', '_').replace(/^_/, '');
	f.submit();
	return false;
}

function printTable(showCo, showInd, showNbes, question, demos) {
	var url = 'print-table.asp?myco=' + showCo + '&ind=' + showInd + '&natl=' + showNbes + '&q=' + question + '&demo=' + demos;
	var w = window.open(url, 'printtable', 'width=750,height=500,scrollbars,resizable');
	return false;
}

function printChart(showCo, showInd, showNbes, question, demos) {
	var url = 'print-chart.asp?myco=' + showCo + '&ind=' + showInd + '&natl=' + showNbes + '&q=' + question + '&demo=' + demos;
	var w = window.open(url, 'printchart', 'width=750,height=500,scrollbars,resizable');
	return false;
}

function saveQuery(query) {
	var xml = getXmlHttp();
	xml.onreadystatechange = function() {
		if (xml.readyState == 4) {
			var rsp = xml.responseText;
			if (rsp == '0') {
				// error
				alert('There was an error saving your query. Please try again.');
			} else {
				alert('Results saved.');
			}
		}
	}
	if (qname = prompt('Enter a name for your table.', '')) {
		xml.open('GET', '/global/generated/save-query.asp?qu=' + query + '&name=' + qname);
		xml.send(null);
	}
	return false;
}

function saveChart(query) {
	var xml = getXmlHttp();
	xml.onreadystatechange = function() {
		if (xml.readyState == 4) {
			var rsp = xml.responseText;
			if (rsp == '0') {
				// error
				alert('There was an error saving your query. Please try again.');
			} else {
				alert('Query saved.');
			}
		}
	}
	if (qname = prompt('Enter a name for your chart.', '')) {
		xml.open('GET', '/global/generated/save-chart.asp?qu=' + query + '&name=' + qname);
		xml.send(null);
	}
	return false;
}

function getXmlHttp() {
	var xmlHttp = false;
	if (typeof(window.ActiveXObject) != 'undefined') {
		try {
			xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
		} catch (e) {
			try {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				xmlHttp = false;
			}
		}
	} else if (typeof(window.XMLHttpRequest) != 'undefined') {
		xmlHttp = new XMLHttpRequest();
	}
	return xmlHttp;
}

function submitNow() {
	if (document.forms['adv-tool']) {
		document.forms['adv-tool'].auto.value = '1';
	}
}

/****** "SIMPLE" QUERY TOOL ******/

var smetrics = '';
var ssubmetrics = '';
var ssub2metrics = '';
var sdemos = '';
var soldMqs = new Array();
var soldPqs = new Array();
var soldSqs = new Array();
var sneedsPq = false;
var sneedsMq = false;
var sneedsSq = false;

function clearSimpleQuery(f) {
	var sel;
	smetrics = '';
	ssubmetrics = '';
	ssub2metrics = '';
	for (i = 0; i < f.elements['q-sections'].length; ++i) {
		f.elements['q-sections'][i].selected = false;
	}
	sel = document.getElementById('q-groups');
	while (sel.childNodes.length) sel.removeChild(sel.childNodes[0]);
	sel = document.getElementById('q-l3-mets');
	while (sel.childNodes.length) sel.removeChild(sel.childNodes[0]);
	sel = document.getElementById('q-l4-mets');
	while (sel.childNodes.length) sel.removeChild(sel.childNodes[0]);
	sneedsPq = false;
	sneedsMq = false;
	sneedsSq = false;
	soldPqs = new Array();
	soldMqs = new Array();
	soldSqs = new Array();
	//checkForSimpleQuestions(f);
	document.getElementById('p-groups').style.display = 'none';
	document.getElementById('p-l3-mets').style.display = 'none';
	document.getElementById('p-l4-mets').style.display = 'none';
	document.getElementById('q-submit').style.visibility = 'hidden';
	document.getElementById('q-clear').style.visibility = 'hidden';
	return false;
}

function checkForSimpleQuestions(f) {
	var i;
	if (f.auto.value == '1') {
		for (i = 0; i < f.elements['q-l4-mets'].length; ++i) {
			if (f.elements['q-l4-mets'][i].selected) f.elements['q-question'].value += f.elements['q-l4-mets'][i].value + ',';
		}
		if (!f.elements['q-question'].value) {
			for (i = 0; i < f.elements['q-l3-mets'].length; ++i) {
				if (f.elements['q-l3-mets'][i].selected) f.elements['q-question'].value += escape(f.elements['q-l3-mets'][i].value) + ',';
			}
		}
		if (!f.elements['q-question'].value) {
			for (i = 0; i < f.elements['q-groups'].length; ++i) {
				if (f.elements['q-groups'][i].selected) f.elements['q-question'].value += f.elements['q-groups'][i].value + ',';
			}
		}
		if (!f.elements['q-question'].value) {
			for (i = 0; i < f.elements['q-sections'].length; ++i) {
				if (f.elements['q-sections'][i].selected) f.elements['q-question'].value += f.elements['q-sections'][i].value + ',';
			}
		}
		if (f.elements['q-question'].value) return checkData(f);
	}
	smetrics = '';
	ssubmetrics = '';
	ssub2metrics = '';
	if (sneedsPq) {
		for (i = 0; i < f.elements['q-groups'].length; ++i) {
			if (f.elements['q-groups'][i].selected) {
				smetrics += f.elements['q-groups'][i].value + ',';
				soldPqs[soldPqs.length] = f.elements['q-groups'][i].value;
			}
		}
	}
	if (sneedsMq) {
		for (i = 0; i < f.elements['q-l3-mets'].length; ++i) {
			if (f.elements['q-l3-mets'][i].selected) {
				ssubmetrics += f.elements['q-l3-mets'][i].value + ',';
				soldMqs[soldMqs.length] = f.elements['q-l3-mets'][i].value;
			}
		}
	}
	if (sneedsSq) {
		for (i = 0; i < f.elements['q-l4-mets'].length; ++i) {
			if (f.elements['q-l4-mets'][i].selected) {
				ssub2metrics += f.elements['q-l4-mets'][i].value + ',';
				soldSqs[soldSqs.length] = f.elements['q-l4-mets'][i].value;
			}
		}
	}
	try {
		demos = f.elements['q-demo'][f.elements['q-demo'].selectedIndex].value;
	} catch (err) {
	}
	if (ssub2metrics) {
		f.elements['q-question'].value = ssub2metrics;
		return checkData(f);
	}

	document.getElementById('q-submit').style.visibility = 'hidden';
	p = document.getElementById('p-groups');
	p.style.display = 'none';
	sel = document.getElementById('q-groups');
	opgps = sel.childNodes;
	for (i = opgps.length - 1; i >= 0; --i) {
		sel.removeChild(opgps[i]);
	}
	p = document.getElementById('p-l3-mets');
	p.style.display = 'none';
	sel = document.getElementById('q-l3-mets');
	opgps = sel.childNodes;
	for (i = opgps.length - 1; i >= 0; --i) {
		sel.removeChild(opgps[i]);
	}
	p = document.getElementById('p-l4-mets');
	p.style.display = 'none';
	sel = document.getElementById('q-l4-mets');
	opgps = sel.childNodes;
	for (i = opgps.length - 1; i >= 0; --i) {
		sel.removeChild(opgps[i]);
	}

	for (i = 0; i < f.elements['q-sections'].length; ++i) {
		if (f.elements['q-sections'][i].selected) {
			getQuestions(f.elements['q-sections'][i].value);
			sneedsPq = true;
		}
	}
	if (sneedsPq) {
		document.getElementById('q-submit').style.visibility = 'visible';
		document.getElementById('q-clear').style.visibility = 'visible';
	} else {
		document.getElementById('q-submit').style.visibility = 'hidden';
		document.getElementById('q-clear').style.visibility = 'hidden';
	}
	if (sneedsPq && smetrics) {
		for (i = 0; i < soldPqs.length; ++i) {
			if (getSubQuestions(soldPqs[i])) sneedsMq = true;
		}
		if (!sneedsMq) {
			f.elements['q-question'].value = smetrics;
			return checkData(f);
		}
	}
	if (sneedsMq && ssubmetrics) {
		for (i = 0; i < soldMqs.length; ++i) {
			if (getSub2Questions(soldMqs[i])) sneedsSq = true;
		}
		if (!sneedsSq) {
			f.elements['q-question'].value = ssubmetrics;
			return checkData(f);
		}
	}
	//getDemographics();
	return false;
}

function getQuestions(sectionID) {
	var xml = getXmlHttp();
	xml.open('GET', '/global/generated/get-adv-questions.asp?sec=' + sectionID, false);
	xml.send(null);
	var i, j;
	var rsp = xml.responseText;
	if (rsp == '0') {
		// error
		alert('There was an error saving your query. Please try again.');
	} else {
		p = document.getElementById('p-groups');
		p.style.display = 'block';
		sel = document.getElementById('q-groups');
		nvPairs = rsp.split('\n');
		isStupid = (navigator.appName == 'Microsoft Internet Explorer');
		if (isStupid) {
		//	op = document.createElement('option');
		//	op.setAttribute('value', '');
		//	op.setAttribute('style', 'font-weight: bold; font-style: italic;');
		//	op.appendChild(document.createTextNode(nvPairs[0].replace(/\s*$/, '')));
		//	sel.appendChild(op);
		} else {
			optgroup = document.createElement('optgroup')
			sel.appendChild(optgroup);
			optgroup.setAttribute('label', nvPairs[0].replace(/\s*$/, ''));
		}
		for (i = 1; i < nvPairs.length; ++i) {
			if (nvPairs[i]) {
				op = document.createElement('option');
				val = nvPairs[i].substring(0, nvPairs[i].indexOf('|'))
				op.setAttribute('value', val);
				for (j = 0; j < soldPqs.length; ++j) {
					if (soldPqs[j] == val) {
						op.setAttribute('selected', 'selected');
						break;
					}
				}
				op.appendChild(document.createTextNode(nvPairs[i].substring(nvPairs[i].indexOf('|') + 1).replace(/\s*$/, '')));
				if (isStupid) {
					sel.appendChild(op);
				} else {
					optgroup.appendChild(op);
				}
			}
		}
		return checkData(document.forms['query']);
	}
	return false;
}

function getSubQuestions(sectionID) {
	var xml = getXmlHttp();
	xml.open('GET', '/global/generated/get-adv-subquestions.asp?sec=' + sectionID, false);
	xml.send(null);
	var rsp = xml.responseText;
	var i, j;
	if (rsp == '0') {
		// error
		alert('There was an error saving your query. Please try again.');
	} else {
		p = document.getElementById('p-l3-mets');
		p.style.display = 'block';
		sel = document.getElementById('q-l3-mets');
		nvPairs = rsp.split('\n');
		isStupid = (navigator.appName == 'Microsoft Internet Explorer');
		if (isStupid) {
		//	op = document.createElement('option');
		//	op.setAttribute('value', '');
		//	op.setAttribute('style', 'font-weight: bold; font-style: italic;');
		//	op.appendChild(document.createTextNode(nvPairs[0].replace(/\s*$/, '')));
		//	sel.appendChild(op);
		} else {
			optgroup = document.createElement('optgroup')
			sel.appendChild(optgroup);
			optgroup.setAttribute('label', nvPairs[0].replace(/\s*$/, ''));
		}
		arrLen = nvPairs.length;
		prevVal = '';
		for (i = 1; i < arrLen; ++i) {
			if (nvPairs[i]) {
				val = nvPairs[i].substring(0, nvPairs[i].indexOf('|'));
				disp = nvPairs[i].substring(nvPairs[i].indexOf('|') + 1).replace(/\s*$/, '');
				if (false && disp.indexOf(':') > -1) {
					disp = disp.substring(0, disp.indexOf(':'));
					if (prevVal != disp) {
						op = document.createElement('option');
						op.setAttribute('value', disp);
						op.appendChild(document.createTextNode(disp));
					}
					prevVal = disp;
				} else {
					op = document.createElement('option');
					op.setAttribute('value', val);
					op.appendChild(document.createTextNode(disp));
					prevVal = val;
				}
				for (j = 0; j < soldMqs.length; ++j) {
					if (soldMqs[j] == val) {
						op.setAttribute('selected', 'selected');
						break;
					}
				}
				if (isStupid) {
					sel.appendChild(op);
				} else {
					optgroup.appendChild(op);
				}
			}
		}
		if (!isStupid && !optgroup.childNodes.length) {
			op = document.createElement('option');
			op.setAttribute('value', sectionID);
			op.appendChild(document.createTextNode('This metric'));
			op.setAttribute('selected', 'selected');
			optgroup.appendChild(op);
			return false;
		}
		if (isStupid && !sel.childNodes.length) {
			return false;
		}
		return checkData(document.forms['query']);
	}
	return false;
}

function getSub2Questions(subID) {
	var xml = getXmlHttp();
	xml.open('GET', '/global/generated/get-adv-sub2questions.asp?sec=' + subID, false);
	xml.send(null);
	var rsp = xml.responseText;
	if (rsp == '') {
		// error
	} else {
		p = document.getElementById('p-l4-mets');
		p.style.display = 'block';
		sel = document.getElementById('q-l4-mets');
		nvPairs = rsp.split('\n');
		isStupid = (navigator.appName == 'Microsoft Internet Explorer');
		if (isStupid) {
		//	op = document.createElement('option');
		//	op.setAttribute('value', '');
		//	op.setAttribute('style', 'font-weight: bold; font-style: italic;');
		//	op.appendChild(document.createTextNode(nvPairs[0].replace(/\s*$/, '')));
		//	sel.appendChild(op);
		} else {
			optgroup = document.createElement('optgroup')
			sel.appendChild(optgroup);
			optgroup.setAttribute('label', nvPairs[0].replace(/\s*$/, ''));
		}
		arrLen = nvPairs.length;
		for (i = 1; i < arrLen; ++i) {
			if (nvPairs[i]) {
				val = nvPairs[i].substring(0, nvPairs[i].indexOf('|'));
				disp = nvPairs[i].substring(nvPairs[i].indexOf('|') + 1).replace(/\s*$/, '');
				op = document.createElement('option');
				op.setAttribute('value', val);
				op.appendChild(document.createTextNode(disp));
				prevVal = val;
				for (j = 0; j < soldSqs.length; ++j) {
					if (soldSqs[j] == val) {
						op.setAttribute('selected', 'selected');
						break;
					}
				}
				if (isStupid) {
					sel.appendChild(op);
				} else {
					optgroup.appendChild(op);
				}
			}
		}
		if (!isStupid && !optgroup.childNodes.length) {
			op = document.createElement('option');
			op.setAttribute('value', subID);
			op.appendChild(document.createTextNode('This metric'));
			op.setAttribute('selected', 'selected');
			if (isStupid) {
				sel.appendChild(op);
			} else {
				optgroup.appendChild(op);
			}
			return false;
		}
		if (isStupid && !sel.childNodes.length) {
			return false;
		}
	}
	return true;
}

/******************************
 * DEMO QUERY TOOL            *
 ******************************/

function checkForSimpleQuestionsDemo(f) {
	var i;
	if (f.auto.value == '1') {
		for (i = 0; i < f.elements['q-l4-mets'].length; ++i) {
			if (f.elements['q-l4-mets'][i].selected) f.elements['q-question'].value += f.elements['q-l4-mets'][i].value + ',';
		}
		if (!f.elements['q-question'].value) {
			for (i = 0; i < f.elements['q-l3-mets'].length; ++i) {
				if (f.elements['q-l3-mets'][i].selected) f.elements['q-question'].value += escape(f.elements['q-l3-mets'][i].value) + ',';
			}
		}
		if (!f.elements['q-question'].value) {
			for (i = 0; i < f.elements['q-l3-mets'].length; ++i) {
				if (f.elements['q-l3-mets'][i].selected) f.elements['q-question'].value += escape(f.elements['q-l3-mets'][i].value) + ',';
			}
		}
		if (!f.elements['q-question'].value) {
			for (i = 0; i < f.elements['q-groups'].length; ++i) {
				if (f.elements['q-groups'][i].selected) {
					switch (f.elements['q-groups'][i].value) {
					case 'c6':
						f.elements['q-question'].value += '1,2,'
						break;
					case 'c8':
						f.elements['q-question'].value += '18,29,'
						break;
					case 'c15':
						f.elements['q-question'].value += '63,'
						break;
					case 'c19':
						f.elements['q-question'].value += '67,68,69,70,'
						break;
					}
				}
			}
		}
		if (!f.elements['q-question'].value) {
			for (i = 0; i < f.elements['q-sections'].length; ++i) {
				if (f.elements['q-sections'][i].selected) {
					switch (f.elements['q-sections'][i].value) {
					case 'c1':
						f.elements['q-question'].value += '1,2,18,29,'
						break;
					case 'c2':
						f.elements['q-question'].value += '63,'
						break;
					case 'c3':
						f.elements['q-question'].value += '67,68,69,70,'
						break;
					}
				}
			}
		}
		if (f.elements['q-question'].value) return checkData(f);
	}
	if (sneedsPq) {
		for (i = 0; i < f.elements['q-groups'].length; ++i) {
			if (f.elements['q-groups'][i].selected) {
				smetrics += f.elements['q-groups'][i].value + ',';
				soldPqs[soldPqs.length] = f.elements['q-groups'][i].value;
			}
		}
	}
	if (sneedsMq) {
		for (i = 0; i < f.elements['q-l3-mets'].length; ++i) {
			if (f.elements['q-l3-mets'][i].selected) {
				ssubmetrics += f.elements['q-l3-mets'][i].value + ',';
				soldMqs[soldMqs.length] = f.elements['q-l3-mets'][i].value;
			}
		}
	}
	if (sneedsSq) {
		for (i = 0; i < f.elements['q-l4-mets'].length; ++i) {
			if (f.elements['q-l4-mets'][i].selected) {
				ssub2metrics += f.elements['q-l4-mets'][i].value + ',';
				soldSqs[soldSqs.length] = f.elements['q-l4-mets'][i].value;
			}
		}
	}
	try {
		demos = f.elements['q-demo'][f.elements['q-demo'].selectedIndex].value;
	} catch (err) {
	}
	if (ssub2metrics) {
		f.elements['q-question'].value = ssub2metrics;
		return checkData(f);
	}

	document.getElementById('q-submit').style.visibility = 'hidden';
	p = document.getElementById('p-groups');
	p.style.display = 'none';
	sel = document.getElementById('q-groups');
	opgps = sel.childNodes;
	for (i = opgps.length - 1; i >= 0; --i) {
		sel.removeChild(opgps[i]);
	}
	p = document.getElementById('p-l3-mets');
	p.style.display = 'none';
	sel = document.getElementById('q-l3-mets');
	opgps = sel.childNodes;
	for (i = opgps.length - 1; i >= 0; --i) {
		sel.removeChild(opgps[i]);
	}
	p = document.getElementById('p-l4-mets');
	p.style.display = 'none';
	sel = document.getElementById('q-l4-mets');
	opgps = sel.childNodes;
	for (i = opgps.length - 1; i >= 0; --i) {
		sel.removeChild(opgps[i]);
	}

	for (i = 0; i < f.elements['q-sections'].length; ++i) {
		if (f.elements['q-sections'][i].selected) {
			getQuestionsDemo(f.elements['q-sections'][i].value);
			sneedsPq = true;
		}
	}
	if (sneedsPq) {
		document.getElementById('q-submit').style.visibility = 'visible';
		document.getElementById('q-clear').style.visibility = 'visible';
	} else {
		document.getElementById('q-submit').style.visibility = 'hidden';
		document.getElementById('q-clear').style.visibility = 'hidden';
	}
	if (sneedsPq && smetrics) {
		for (i = 0; i < soldPqs.length; ++i) {
			if (getSubQuestionsDemo(soldPqs[i])) sneedsMq = true;
		}
		if (!sneedsMq) {
			f.elements['q-question'].value = smetrics;
			return checkData(f);
		}
	}
	if (sneedsMq && ssubmetrics) {
		for (i = 0; i < soldMqs.length; ++i) {
			if (getSub2QuestionsDemo(soldMqs[i])) sneedsSq = true;
		}
		if (!sneedsSq) {
			f.elements['q-question'].value = ssubmetrics;
			return checkData(f);
		}
	}
	//getDemographics();
	return false;
}

function getQuestionsDemo(sectionID) {
	var i, j;
	var nvPairs = new Array();
	p = document.getElementById('p-groups');
	p.style.display = 'block';
	sel = document.getElementById('q-groups');
	isStupid = (navigator.appName == 'Microsoft Internet Explorer');
	switch (sectionID) {
	case 'c1':
		nvPairs[0] = 'Outcomes';
		nvPairs[1] = 'c6|Observed Misconduct (General)';
		nvPairs[2] = 'c8|Reporting Misconduct';
		break;
	case 'c2':
		nvPairs[0] = 'Formal Programs';
		nvPairs[1] = 'c15|Reporting Mechanism';
		break;
	case 'c3':
		nvPairs[0] = 'Culture';
		nvPairs[1] = 'c19|Top Management';
		break;
	}
	if (isStupid) {
	} else {
		optgroup = document.createElement('optgroup')
		sel.appendChild(optgroup);
		optgroup.setAttribute('label', nvPairs[0].replace(/\s*$/, ''));
	}
	for (i = 1; i < nvPairs.length; ++i) {
		if (nvPairs[i]) {
			op = document.createElement('option');
			val = nvPairs[i].substring(0, nvPairs[i].indexOf('|'))
			op.setAttribute('value', val);
			for (j = 0; j < soldPqs.length; ++j) {
				if (soldPqs[j] == val) {
					op.setAttribute('selected', 'selected');
					break;
				}
			}
			op.appendChild(document.createTextNode(nvPairs[i].substring(nvPairs[i].indexOf('|') + 1).replace(/\s*$/, '')));
			if (isStupid) {
				sel.appendChild(op);
			} else {
				optgroup.appendChild(op);
			}
		}
	}
	return checkData(document.forms['query']);
}

function getSubQuestionsDemo(sectionID) {
	var i, j;
	var nvPairs = new Array();
	p = document.getElementById('p-l3-mets');
	p.style.display = 'block';
	sel = document.getElementById('q-l3-mets');
	switch (sectionID) {
	case 'c6':
		nvPairs[0] = 'Observed Misconduct (General)';
		nvPairs[1] = '1|Observed Misconduct (General)';
		nvPairs[2] = '2|Frequency';
		//nvPairs[3] = '118|Violated Law';
		break;
	case 'c8':
		nvPairs[0] = 'Reporting Misconduct';
		nvPairs[1] = '18|Reporting misconduct';
		nvPairs[2] = '29|Hypothetical report';
		break;
	case 'c15':
		nvPairs[0] = 'Reporting Mechanism';
		nvPairs[1] = '63|Awareness of mechanism';
		break;
	case 'c19':
		nvPairs[0] = 'Top Management';
		nvPairs[1] = '67|Communicates ethics';
		nvPairs[2] = '68|Example of behavior';
		nvPairs[3] = '69|Keeps commitments';
		nvPairs[4] = '70|Satisfied with info'
		break;
	}
	isStupid = (navigator.appName == 'Microsoft Internet Explorer');
	if (!isStupid) {
		optgroup = document.createElement('optgroup')
		sel.appendChild(optgroup);
		optgroup.setAttribute('label', nvPairs[0].replace(/\s*$/, ''));
	}
	arrLen = nvPairs.length;
	prevVal = '';
	for (i = 1; i < arrLen; ++i) {
		if (nvPairs[i]) {
			val = nvPairs[i].substring(0, nvPairs[i].indexOf('|'));
			disp = nvPairs[i].substring(nvPairs[i].indexOf('|') + 1).replace(/\s*$/, '');
			if (false && disp.indexOf(':') > -1) {
				disp = disp.substring(0, disp.indexOf(':'));
				if (prevVal != disp) {
					op = document.createElement('option');
					op.setAttribute('value', disp);
					op.appendChild(document.createTextNode(disp));
				}
				prevVal = disp;
			} else {
				op = document.createElement('option');
				op.setAttribute('value', val);
				op.appendChild(document.createTextNode(disp));
				prevVal = val;
			}
			for (j = 0; j < oldMqs.length; ++j) {
				if (soldMqs[j] == val) {
					op.setAttribute('selected', 'selected');
					break;
				}
			}
			if (isStupid) {
				sel.appendChild(op);
			} else {
				optgroup.appendChild(op);
			}
		}
	}
	if (!isStupid && !optgroup.childNodes.length) {
		op = document.createElement('option');
		op.setAttribute('value', sectionID);
		op.appendChild(document.createTextNode('This metric'));
		op.setAttribute('selected', 'selected');
		optgroup.appendChild(op);
		return false;
	}
	if (isStupid && !sel.childNodes.length) {
		return false;
	}
	return checkData(document.forms['query']);
}

function getSub2QuestionsDemo(subID) {
	var nvPairs = new Array();
	p = document.getElementById('p-l4-mets');
	p.style.display = 'block';
	sel = document.getElementById('q-l4-mets');
	isStupid = (navigator.appName == 'Microsoft Internet Explorer');
	if (!isStupid) {
		optgroup = document.createElement('optgroup')
		sel.appendChild(optgroup);
		optgroup.setAttribute('label', nvPairs[0].replace(/\s*$/, ''));
	}
	arrLen = nvPairs.length;
	for (i = 1; i < arrLen; ++i) {
		if (nvPairs[i]) {
			val = nvPairs[i].substring(0, nvPairs[i].indexOf('|'));
			disp = nvPairs[i].substring(nvPairs[i].indexOf('|') + 1).replace(/\s*$/, '');
			op = document.createElement('option');
			op.setAttribute('value', val);
			op.appendChild(document.createTextNode(disp));
			prevVal = val;
			for (j = 0; j < soldSqs.length; ++j) {
				if (soldSqs[j] == val) {
					op.setAttribute('selected', 'selected');
					break;
				}
			}
			if (isStupid) {
				sel.appendChild(op);
			} else {
				optgroup.appendChild(op);
			}
		}
	}
	if (!isStupid && !optgroup.childNodes.length) {
		op = document.createElement('option');
		op.setAttribute('value', subID);
		op.appendChild(document.createTextNode('This metric'));
		op.setAttribute('selected', 'selected');
		if (isStupid) {
			sel.appendChild(op);
		} else {
			optgroup.appendChild(op);
		}
		return false;
	}
	if (isStupid && !sel.childNodes.length) {
		return false;
	}
	return true;
}

/****************************************
 * CHECK TO SEE IF A DATASET IS CHECKED *
 ****************************************/

function checkData(f) {
	var i;
	var surveyID = '';
	var err = '';
	var found = false;
	for (i = 0; i < f.elements.length; ++i) {
		if (f.elements[i].name.substring(0,6) == 'q-init' && f.elements[i].checked) {
			if (f.elements[i].name.substring(0,10) == 'q-init0r0s') {
				surveyID = f.elements[i].name.substring(10);
				if (!f.elements['q-region' + surveyID].value && !f.elements['q-region' + surveyID].selectedIndex) err += '\nPlease choose the region data you wish to benchmark.';
			}
			if (f.elements[i].name.substring(0,10) == 'q-init0z0s') {
				surveyID = f.elements[i].name.substring(10);
				if (!f.elements['q-zone' + surveyID].value && !f.elements['q-zone' + surveyID].selectedIndex) err += '\nPlease choose the zone data you wish to benchmark.';
			}
			if (f.elements[i].name.substring(0,10) == 'q-init0d0s') {
				surveyID = f.elements[i].name.substring(10);
				if (!f.elements['q-division' + surveyID].value && !f.elements['q-division' + surveyID].selectedIndex) err += '\nPlease choose the division data you wish to benchmark.';
			}
			found = true;
		}
	}
	checkedSubCats = 0;
	for (i = 0; i < f.elements['atq-groups'].length; ++i) {
		if (f.elements['q-groups'][i].selected) ++checkedSubCats;
	}
	if (f.elements['q-demo'].selectedIndex && (checkedSubCats > 2 || !checkedSubCats)) err += '\nYou may only select two sub-categories when using the optional demographic cut.';
	if (!found) err = '\nPlease select a dataset to benchmark.';
	if (err) {
		alert(err.substring(1));
		return false;
	}
	return true;
}

function checkAdvData(f) {
	var i;
	var surveyID = '';
	var err = '';
	var found = false;
	for (i = 0; i < f.elements.length; ++i) {
		if (f.elements[i].name.substring(0,6) == 'q-init' && f.elements[i].checked) {
			if (f.elements[i].name.substring(0,10) == 'q-init0r0s') {
				surveyID = f.elements[i].name.substring(10);
				if (!f.elements['q-region' + surveyID].value && !f.elements['q-region' + surveyID].selectedIndex) err += '\nPlease choose the region data you wish to benchmark.';
			}
			if (f.elements[i].name.substring(0,10) == 'q-init0z0s') {
				surveyID = f.elements[i].name.substring(10);
				if (!f.elements['q-zone' + surveyID].value && !f.elements['q-zone' + surveyID].selectedIndex) err += '\nPlease choose the zone data you wish to benchmark.';
			}
			if (f.elements[i].name.substring(0,10) == 'q-init0d0s') {
				surveyID = f.elements[i].name.substring(10);
				if (!f.elements['q-division' + surveyID].value && !f.elements['q-division' + surveyID].selectedIndex) err += '\nPlease choose the division data you wish to benchmark.';
			}
			found = true;
		}
	}
	checkedSubCats = 0;
	for (i = 0; i < f.elements['atq-groups'].length; ++i) {
		if (f.elements['q-groups'][i].selected) ++checkedSubCats;
	}
	if (f.elements['q-demo'].selectedIndex && (checkedSubCats > 2 || !checkedSubCats)) err += '\nYou may only select two sub-categories when using the optional demographic cut.';
	if (!found) err = '\nPlease select a dataset to benchmark.';
	if (err) {
		alert(err.substring(1));
		return false;
	}
	return true;
}

/****************************
 "ADVANCED" QUERY TOOL
 ****************************/

var atsmetrics = '';
var atssubmetrics = '';
var atssub2metrics = '';
var atsdemos = '';
var atsoldMqs = new Array();
var atsoldPqs = new Array();
var atsoldSqs = new Array();
var atsneedsPq = false;
var atsneedsMq = false;
var atsneedsSq = false;

function clearAdvQuery(f, clearLevel) {
	var sel;
	switch (clearLevel) {
	case 4:
		atssub2metrics = '';
		atssubmetrics = '';
		sel = document.getElementById('atq-l4-mets');
		while (sel.childNodes.length) sel.removeChild(sel.childNodes[0]);
		for (i = 0; i < f.elements['q-l3-mets'].length; ++i) {
			f.elements['q-l3-mets'][i].selected = false;
		}
		atsneedsSq = false;
		atsoldSqs = new Array();
		atsoldMqs = new Array();
		document.getElementById('atp-sections-ex').style.display = 'none';
		document.getElementById('atp-groups-ex').style.display = 'none';
		document.getElementById('atp-l3-mets-ex').style.display = 'block';
		document.getElementById('atp-l4-mets-ex').style.display = 'none';
		break;
	case 3:
		atssubmetrics = '';
		atsmetrics = '';
		sel = document.getElementById('atq-l3-mets');
		while (sel.childNodes.length) sel.removeChild(sel.childNodes[0]);
		for (i = 0; i < f.elements['q-groups'].length; ++i) {
			f.elements['q-groups'][i].selected = false;
		}
		atsneedsMq = false;
		atsoldMqs = new Array();
		atsoldPqs = new Array();
		document.getElementById('atp-sections-ex').style.display = 'none';
		document.getElementById('atp-groups-ex').style.display = 'block';
		document.getElementById('atp-l3-mets-ex').style.display = 'none';
		document.getElementById('atp-l4-mets-ex').style.display = 'none';
		break;
	case 2:
		atsmetrics = '';
		sel = document.getElementById('atq-groups');
		while (sel.childNodes.length) sel.removeChild(sel.childNodes[0]);
		for (i = 0; i < f.elements['q-sections'].length; ++i) {
			f.elements['q-sections'][i].selected = false;
		}
		atsneedsPq = false;
		atsoldPqs = new Array();
		document.getElementById('atp-sections-ex').style.display = 'block';
		document.getElementById('atp-groups-ex').style.display = 'none';
		document.getElementById('atp-l3-mets-ex').style.display = 'none';
		document.getElementById('atp-l4-mets-ex').style.display = 'none';
		break;
	case 1:
	default:
	}
	/*
	atsmetrics = '';
	atssubmetrics = '';
	atssub2metrics = '';
	for (i = 0; i < f.elements.length; ++i) {
		if (f.elements[i].checked) f.elements[i].checked = false;
	}
	for (i = 0; i < f.elements['q-sections'].length; ++i) {
		f.elements['q-sections'][i].selected = false;
	}
	sel = document.getElementById('atq-groups');
	while (sel.childNodes.length) sel.removeChild(sel.childNodes[0]);
	sel = document.getElementById('atq-l3-mets');
	while (sel.childNodes.length) sel.removeChild(sel.childNodes[0]);
	sel = document.getElementById('atq-l4-mets');
	while (sel.childNodes.length) sel.removeChild(sel.childNodes[0]);
	atsneedsPq = false;
	atsneedsMq = false;
	atsneedsSq = false;
	atsoldPqs = new Array();
	atsoldMqs = new Array();
	atsoldSqs = new Array();
	//checkForSimpleQuestions(f);
	document.getElementById('atp-sections-ex').style.display = 'block';
	document.getElementById('atp-groups-ex').style.display = 'none';
	document.getElementById('atp-l3-mets-ex').style.display = 'none';
	document.getElementById('atp-l4-mets-ex').style.display = 'none';
	*/
	return false;
}

function checkForAdvQuestions(f) {
	var i;
	if (f.auto.value == '1') {
		for (i = 0; i < f.elements['q-l4-mets'].length; ++i) {
			if (f.elements['q-l4-mets'][i].selected) f.elements['q-question'].value += f.elements['q-l4-mets'][i].value + ',';
		}
		if (!f.elements['q-question'].value) {
			for (i = 0; i < f.elements['q-l3-mets'].length; ++i) {
				if (f.elements['q-l3-mets'][i].selected) f.elements['q-question'].value += escape(f.elements['q-l3-mets'][i].value) + ',';
			}
		}
		if (!f.elements['q-question'].value) {
			for (i = 0; i < f.elements['q-groups'].length; ++i) {
				if (f.elements['q-groups'][i].selected) f.elements['q-question'].value += f.elements['q-groups'][i].value + ',';
			}
		}
		if (!f.elements['q-question'].value) {
			for (i = 0; i < f.elements['q-sections'].length; ++i) {
				if (f.elements['q-sections'][i].selected) f.elements['q-question'].value += f.elements['q-sections'][i].value + ',';
			}
		}
		if (f.elements['q-question'].value) return checkAdvData(f);
		return false;
	}
	atsmetrics = '';
	atssubmetrics = '';
	atssub2metrics = '';
	if (atsneedsPq) {
		for (i = 0; i < f.elements['q-groups'].length; ++i) {
			if (f.elements['q-groups'][i].selected) {
				atsmetrics += f.elements['q-groups'][i].value + ',';
				atsoldPqs[atsoldPqs.length] = f.elements['q-groups'][i].value;
			}
		}
	}
	if (atsneedsMq) {
		for (i = 0; i < f.elements['q-l3-mets'].length; ++i) {
			if (f.elements['q-l3-mets'][i].selected) {
				atssubmetrics += f.elements['q-l3-mets'][i].value + ',';
				atsoldMqs[atsoldMqs.length] = f.elements['q-l3-mets'][i].value;
			}
		}
	}
	if (atsneedsSq) {
		for (i = 0; i < f.elements['q-l4-mets'].length; ++i) {
			if (f.elements['q-l4-mets'][i].selected) {
				atssub2metrics += f.elements['q-l4-mets'][i].value + ',';
				atsoldSqs[atsoldSqs.length] = f.elements['q-l4-mets'][i].value;
			}
		}
	}
	try {
		atdemos = f.elements['q-demo'][f.elements['q-demo'].selectedIndex].value;
	} catch (err) {
	}
	if (atssub2metrics) {
		f.elements['q-question'].value = atssub2metrics;
		return checkAdvData(f);
	}
	//document.getElementById('atq-submit').style.visibility = 'hidden';
	//p = document.getElementById('atp-groups');
	//p.style.display = 'none';
	sel = document.getElementById('atq-groups');
	opgps = sel.childNodes;
	for (i = opgps.length - 1; i >= 0; --i) {
		sel.removeChild(opgps[i]);
	}
	//p = document.getElementById('atp-l3-mets');
	//p.style.display = 'none';
	sel = document.getElementById('atq-l3-mets');
	opgps = sel.childNodes;
	for (i = opgps.length - 1; i >= 0; --i) {
		sel.removeChild(opgps[i]);
	}
	//p = document.getElementById('atp-l4-mets');
	//p.style.display = 'none';
	sel = document.getElementById('atq-l4-mets');
	opgps = sel.childNodes;
	for (i = opgps.length - 1; i >= 0; --i) {
		sel.removeChild(opgps[i]);
	}

	for (i = 0; i < f.elements['q-sections'].length; ++i) {
		if (f.elements['q-sections'][i].selected) {
			getAdvQuestions(f.elements['q-sections'][i].value);
			atsneedsPq = true;
		}
	}
	if (atsneedsPq && atsmetrics) {
		for (i = 0; i < atsoldPqs.length; ++i) {
			if (getAdvSubQuestions(atsoldPqs[i])) atsneedsMq = true;
		}
		if (!atsneedsMq) {
			f.elements['q-question'].value = atsmetrics;
			return checkAdvData(f);
		}
	}
	if (atsneedsMq && atssubmetrics) {
		for (i = 0; i < atsoldMqs.length; ++i) {
			if (getAdvSub2Questions(atsoldMqs[i])) atsneedsSq = true;
		}
		if (!atsneedsSq) {
			f.elements['q-question'].value = atssubmetrics;
			return checkAdvData(f);
		}
	}
	//getDemographics();
	return false;
}

function getAdvQuestions(sectionID) {
	var xml = getXmlHttp();
	xml.open('GET', '/global/generated/get-adv-tool-questions.asp?sec=' + sectionID, false);
	xml.send(null);
	var i, j;
	var rsp = xml.responseText;
	if (rsp == '0') {
		// error
		alert('There was an error saving your query. Please try again.');
		return false;
	}
	p = document.getElementById('atp-sections-ex');
	p.style.display = 'none';
	p = document.getElementById('atp-groups-ex');
	p.style.display = 'block';
	sel = document.getElementById('atq-groups');
	nvPairs = rsp.split('\n');
	isStupid = (navigator.appName == 'Microsoft Internet Explorer');
	if (isStupid) {
	//	op = document.createElement('option');
	//	op.setAttribute('value', '');
	//	op.setAttribute('style', 'font-weight: bold; font-style: italic;');
	//	op.appendChild(document.createTextNode(nvPairs[0].replace(/\s*$/, '')));
	//	sel.appendChild(op);
	} else {
		optgroup = document.createElement('optgroup')
		sel.appendChild(optgroup);
		optgroup.setAttribute('label', nvPairs[0].replace(/\s*$/, ''));
	}
	for (i = 1; i < nvPairs.length; ++i) {
		if (nvPairs[i]) {
			op = document.createElement('option');
			val = nvPairs[i].substring(0, nvPairs[i].indexOf('|'))
			op.setAttribute('value', val);
			for (j = 0; j < atsoldPqs.length; ++j) {
				if (atsoldPqs[j] == val) {
					op.setAttribute('selected', 'selected');
					break;
				}
			}
			op.appendChild(document.createTextNode(nvPairs[i].substring(nvPairs[i].indexOf('|') + 1).replace(/\s*$/, '')));
			if (isStupid) {
				sel.appendChild(op);
			} else {
				optgroup.appendChild(op);
			}
		}
	}
	//return checkAdvData(document.forms['atquery']);
	//return false;
	return (nvPairs.length > 1);
}

function getAdvSubQuestions(sectionID) {
	var xml = getXmlHttp();
	xml.open('GET', '/global/generated/get-adv-tool-subquestions.asp?sec=' + sectionID, false);
	xml.send(null);
	var rsp = xml.responseText;
	var i, j;
	if (rsp == '0') {
		// error
		alert('There was an error saving your query. Please try again.');
		return false;
	}
	p = document.getElementById('atp-groups-ex');
	p.style.display = 'none';
	p = document.getElementById('atp-l3-mets-ex');
	p.style.display = 'block';
	sel = document.getElementById('atq-l3-mets');
	nvPairs = rsp.split('\n');
	isStupid = (navigator.appName == 'Microsoft Internet Explorer');
	if (isStupid) {
	//	op = document.createElement('option');
	//	op.setAttribute('value', '');
	//	op.setAttribute('style', 'font-weight: bold; font-style: italic;');
	//	op.appendChild(document.createTextNode(nvPairs[0].replace(/\s*$/, '')));
	//	sel.appendChild(op);
	} else {
		optgroup = document.createElement('optgroup')
		sel.appendChild(optgroup);
		optgroup.setAttribute('label', nvPairs[0].replace(/\s*$/, ''));
	}
	arrLen = nvPairs.length;
	prevVal = '';
	for (i = 1; i < arrLen; ++i) {
		if (nvPairs[i]) {
			val = nvPairs[i].substring(0, nvPairs[i].indexOf('|'));
			disp = nvPairs[i].substring(nvPairs[i].indexOf('|') + 1).replace(/\s*$/, '');
			if (false && disp.indexOf(':') > -1) {
				disp = disp.substring(0, disp.indexOf(':'));
				if (prevVal != disp) {
					op = document.createElement('option');
					op.setAttribute('value', disp);
					op.appendChild(document.createTextNode(disp));
				}
				prevVal = disp;
			} else {
				op = document.createElement('option');
				op.setAttribute('value', val);
				op.appendChild(document.createTextNode(disp));
				prevVal = val;
			}
			for (j = 0; j < atsoldMqs.length; ++j) {
				if (atsoldMqs[j] == val) {
					op.setAttribute('selected', 'selected');
					break;
				}
			}
			if (isStupid) {
				sel.appendChild(op);
			} else {
				optgroup.appendChild(op);
			}
		}
	}
	if (!isStupid && !optgroup.childNodes.length) {
		op = document.createElement('option');
		op.setAttribute('value', sectionID);
		op.appendChild(document.createTextNode('This metric'));
		op.setAttribute('selected', 'selected');
		optgroup.appendChild(op);
		return false;
	}
	if (isStupid && !sel.childNodes.length) {
		return false;
	}
	//return checkAdvData(document.forms['atquery']);
	//return false;
	return (arrLen > 1);
}

function getAdvSub2Questions(subID) {
	var xml = getXmlHttp();
	xml.open('GET', '/global/generated/get-adv-tool-sub2questions.asp?sec=' + subID, false);
	xml.send(null);
	var rsp = xml.responseText;
	if (rsp == '') {
		// error
		return false;
	}
	p = document.getElementById('atp-l3-mets-ex');
	p.style.display = 'none';
	p = document.getElementById('atp-l4-mets-ex');
	p.style.display = 'block';
	sel = document.getElementById('atq-l4-mets');
	nvPairs = rsp.split('\n');
	isStupid = (navigator.appName == 'Microsoft Internet Explorer');
	if (isStupid) {
	//	op = document.createElement('option');
	//	op.setAttribute('value', '');
	//	op.setAttribute('style', 'font-weight: bold; font-style: italic;');
	//	op.appendChild(document.createTextNode(nvPairs[0].replace(/\s*$/, '')));
	//	sel.appendChild(op);
	} else {
		optgroup = document.createElement('optgroup')
		sel.appendChild(optgroup);
		optgroup.setAttribute('label', nvPairs[0].replace(/\s*$/, ''));
	}
	arrLen = nvPairs.length;
	for (i = 1; i < arrLen; ++i) {
		if (nvPairs[i]) {
			val = nvPairs[i].substring(0, nvPairs[i].indexOf('|'));
			disp = nvPairs[i].substring(nvPairs[i].indexOf('|') + 1).replace(/\s*$/, '');
			op = document.createElement('option');
			op.setAttribute('value', val);
			op.appendChild(document.createTextNode(disp));
			prevVal = val;
			for (j = 0; j < atsoldSqs.length; ++j) {
				if (atsoldSqs[j] == val) {
					op.setAttribute('selected', 'selected');
					break;
				}
			}
			if (isStupid) {
				sel.appendChild(op);
			} else {
				optgroup.appendChild(op);
			}
		}
	}
	if (!isStupid && !optgroup.childNodes.length) {
		op = document.createElement('option');
		op.setAttribute('value', subID);
		op.appendChild(document.createTextNode('This metric'));
		op.setAttribute('selected', 'selected');
		if (isStupid) {
			sel.appendChild(op);
		} else {
			optgroup.appendChild(op);
		}
		return false;
	}
	if (isStupid && !sel.childNodes.length) {
		return false;
	}
	return true;
}