// set some vars
window.defaultStatus = "";

function tryRadioDeselect(button) {
	for (i = 0; i < button.form[button.name].length; i++) {
		if (button.form[button.name + "_last"].value == i && button.form[button.name][i].checked) {
			button.form[button.name][i].checked = false;
			button.form[button.name + "_last"].value = -1;
		} else if (button.form[button.name][i].checked)
			button.form[button.name + "_last"].value = i;
	}
}

// form handling functions
function clearMissing(fm) {
	fm.missing.value = "";
}
function trimFormField(fm, fieldname) {
	formfield = eval("fm." + fieldname);
	formfield.value = formfield.value.replace(/^ */g, '').replace(/ *$/g, '');
}
function requiredFormField(fm, fieldname, fielddesc) {
	formfield = eval("fm." + fieldname);
	if (formfield.value == "")
		addMissing(fm, fielddesc + " is a required field");
}
function requiredRadioField(fm, fieldname, fielddesc) {
	formfield = eval("fm." + fieldname);
	chk = false;
	for (i = 0; i < formfield.length; i++) {
		if (formfield[i].checked)
			chk = true;
	}
	if (! chk)
		addMissing(fm, fielddesc + " is a required field");
}
function regexpField(fm, regexp, fieldname, fielddesc, msg, reqd) {
	formfield = eval("fm." + fieldname);
	if (formfield.value != "") {
		temp = formfield.value + " ";
		found = temp.search(regexp);
		if (found != 0)
			addMissing(fm, fielddesc + msg);
	} else if (reqd) {
		addMissing(fm, fielddesc + " is a required field");
	}
}
function addMissing(fm, errmsg) {
	fm.missing.value += "," + errmsg;
}
function submitForm(fm) {
	if (fm.missing.value != "") {
		fm.missing.value = fm.missing.value.substring(1);
	}
	fm.submit();
}
function basicCheck(fm, calc) {
	clearMissing(fm);
	if (calc)
		fm.calculate.value = "1";
	if (fm.priority.value != "0") {
		found = false;
		for (i = 0; i < fm.elements.length; i++) {
			if (fm.elements[i].type == "select-one" && fm.elements[i].name.substring(0, 2) == "i_")
				found = found || (fm.elements[i].value > 0);
		}
		if (! found) {
			document.getElementById("errordiv").innerHTML = "All attributes cannot be rated 'Not Important'.";
			return false;
		}
	}
	submitForm(fm);
}
function reviewCheck(fm) {
	clearMissing(fm);
	document.getElementById("errordiv").innerHTML = "";
	if (fm.oldpri_2.value > 0 && fm.q_10_a.value == "[null]")
		document.getElementById("errordiv").innerHTML = "Choose your market segment from the menu above.";
	else {
		if (fm.totalpriority.value == 100)
			submitForm(fm);
		else document.getElementById("errordiv").innerHTML = "Allocated weights must total 100% before continuing.";
	}
}
function percentCheck(fld, maxpct) {
	trimFormField(fld.form, fld.name);
	val = parseInt(fld.value);
	if (isNaN(val) || val < 0)
		fld.value = 0;
	else if (val > maxpct)
		fld.value = maxpct;
	else fld.value = val;
}
function checkImportance(id, val) {
	var tds = getElementsByClassName(id);
	for (var j = 0; j < tds.length; j++) {
		var td = tds[j];
		td.style.color = (val == 0 ? "#99cccc" : "#000099");
		for (var i = 0; i < td.children.length; i++) {
			if (td.children[i].className == "bullet")
				td.children[i].src = document.getElementById("imgpath").value + (val == 0 ? "bulletgray.gif" : "bullet.gif");
		}
	}
}
function getElementsByClassName(cl) {
	var retnode = [];
	var myclass = new RegExp('\\b'+cl+'\\b');
	var elem = document.getElementsByTagName('*');
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
		if (myclass.test(classes)) retnode.push(elem[i]);
	}
	return retnode;
}
function updatePriorities(fm, pg, val) {
	oldval = parseInt(eval('fm.oldpri_' + pg).value);
	oldtotpri = parseInt(fm.totalpriority.value);
	totpri = oldtotpri + val - oldval;
	var remaining = 100 - totpri;
	fm.totalpriority.value = totpri;
	eval('fm.oldpri_' + pg).value = val;
	document.getElementById("total_priority").innerHTML = totpri + "%";
	document.getElementById("total_priority_2").innerHTML = totpri + "%";
	document.getElementById("total_priority_3").innerHTML = totpri + "%";
	if (remaining == 0)
		document.getElementById("remaining").style.display = "none";
	else {
		document.getElementById("remaining").style.display = "block";
		document.getElementById("perc_remaining").innerHTML = remaining;
	}
	document.getElementById("errordiv").innerHTML = "";
}
function compareCheck(fm) {
	clearMissing(fm);
	document.getElementById("errordiv").innerHTML = "";
	if (fm.totalcompare.value > 3) {
		document.getElementById("errordiv").innerHTML = "No more than 3 products may be compared at once.";
		document.getElementById("errordiv2").innerHTML = "No more than 3 products may be compared at once.";
	}
	else if (fm.totalcompare.value < 1) {
		document.getElementById("errordiv").innerHTML = "Please select at least 1 product to view.";
		document.getElementById("errordiv2").innerHTML = "Please select at least 1 product to view.";
	}
	else submitForm(fm);
}
function updateCompare(fm, fld) {
	if (fld.checked)
		fm.totalcompare.value++;
	else fm.totalcompare.value--;
	document.getElementById("total_compare").innerHTML = fm.totalcompare.value;
	document.getElementById("total_compare2").innerHTML = fm.totalcompare.value;
	document.getElementById("total_plural").innerHTML = (fm.totalcompare.value == 1 ? "" : "s");
	document.getElementById("total_plural2").innerHTML = (fm.totalcompare.value == 1 ? "" : "s");
}
function openDiv(prefix, page) {
	if (document.getElementById(prefix + opendiv))
		document.getElementById(prefix + opendiv).style.display = "none";
	opendiv = page;
	document.getElementById(prefix + page).style.display = "block";
}
function closeDiv(prefix, page) {
	document.getElementById(prefix + page).style.display = "none";
	opendiv = "";
}
function newVendor(fm, value, i) {
	parray = fm.products.value.split(",");
	parray[i] = value;
	fm.products.value = parray.join(",");
	fm.submit();
}
function showAnswers(sp, i) {
	sp.innerHTML = (sp.innerHTML == "SHOW" ? "HIDE" : "SHOW");
	document.getElementById("answers_" + i).style.display = (document.getElementById("answers_" + i).style.display == "none" ? "block" : "none");
}
function showHelp() {
	document.getElementById("help-box").style.display = (document.getElementById("help-box").style.display == "none" ? "block" : "none");
}