var addressInfoRequired = false;

document.observe('dom:loaded', function () {
	showRequire($('contactForm'));
	g_ServerErrors.pageErrors.each(function (err) {
		var label = err.KEY;
		filter = /_REQUIRED/g;
		label = label.replace(filter,"");
		label = 'req_' + label;
		$(label).className = "error";
		});
	});

function updateOrderBullet(oFormObj) {
	if (oFormObj.ORDER_NUMBER.value != "") {
		oFormObj.QUESTION[0].checked = true;
		showRequire(oFormObj);
		}
	}

function updateIngredientBullet(oFormObj) {
	if ( oFormObj.INGREDIENTS_OF_INTEREST.value != "" ||
	     oFormObj.INGREDIENTS_PRODUCT.value != "" ||
	     oFormObj.INGREDIENTS_BATCH.value != "" ) {
		oFormObj.QUESTION[6].checked = true;
		showRequire(oFormObj);
		}
	}

function showRequire(oFormObj) {
	for (var i=0; i<oFormObj.QUESTION.length; i++) {
		if (oFormObj.QUESTION[i].checked) {
			var bval = oFormObj.QUESTION[i].value;
			if ((bval == 3) || (bval == 4) || (bval == 6) || (bval == 7)) {addressInfoRequired = true;}
			else{addressInfoRequired = false;}
			(bval == 4) ? $('gbnfDiv').show() : $('gbnfDiv').hide();
			(bval == 11) ? $('ingredient-info').show() : $('ingredient-info').hide();
			//(bval == 4) ? radioDivToggle("gbnfDiv","show") : radioDivToggle("gbnfDiv","hide");
			setAddressInfoRequirement();
			break;
			}
		}
	setAddressInfoRequirementExceptions(oFormObj);
	}

function setAddressInfoRequirement() {
	if (addressInfoRequired) {
		$('req_ADDRESS').style.visibility = "visible";
		$('req_CITY').style.visibility = "visible";
		$('req_ZIP').style.visibility = "visible";
		$('req_STATE').style.visibility = "visible";
		}
	else {
		$('req_ADDRESS').style.visibility = "hidden";
		$('req_CITY').style.visibility = "hidden";
		$('req_ZIP').style.visibility = "hidden";
		$('req_STATE').style.visibility = "hidden";
		}
	}

function setAddressInfoRequirementExceptions(oFormObj) {
	var isUSAorCanada = (isCountry(oFormObj, 1) || isCountry(oFormObj, 3));
	if (!isUSAorCanada) {
		$('req_STATE').style.visibility = "hidden";
		}
	}

function isCountry(oFormObj, iCountryCode) {
	return (getCountryValue(oFormObj) == iCountryCode);
	}
		
function getCountryValue(oFormObj) {
	var countryFormElem = oFormObj.COUNTRY_ID;
	var countrySelIndx = countryFormElem.selectedIndex;
	return countryFormElem[countrySelIndx].value;
	}
	
function radioDivToggle(elemId, action) {
	if (action == "show") {$('gbnfDiv').style.display = 'block';}
	else if (action == "hide") {$('gbnfDiv').style.display = 'none';}
	}

function setStateProvince(oFormObj) {
	var countryIsUSA = isCountry(oFormObj, 1);
	var countryIsCanada = isCountry(oFormObj, 3);
	if (countryIsUSA) {
		setStateValue(oFormObj);
		setProvinceValue(oFormObj, "NA");
	} else if (countryIsCanada) {
		setStateValue(oFormObj, "NA");
		setProvinceValue(oFormObj);
	} else {
		setStateValue(oFormObj, "NA");
		setProvinceValue(oFormObj, "NA");
	}
	showRequire(oFormObj);
	}

function getStateValue(oFormObj) {
	var stateFormElem = oFormObj.STATE;
	return getStateProvinceValue(stateFormElem);
	}

function getProvinceValue(oFormObj) {
	var provinceFormElem = oFormObj.STATE_CA;
	return getStateProvinceValue(provinceFormElem);
	}

function getStateProvinceValue(oFormElemObj) {
	var stateProvinceSelIndx = oFormElemObj.selectedIndex;
	return oFormElemObj[stateProvinceSelIndx].value;
	}

function isState(oFormObj, iStateCode) {
	return (getStateValue(oFormObj) == iStateCode);
	}

function isProvince(oFormObj, iProvinceCode) {
	return (getProvinceValue(oFormObj) == iProvinceCode);
	}

function setStateValue(oFormObj, sTargetVal) {
	var stateFormElem = oFormObj.STATE;
	if (sTargetVal) {
		setStateProvinceValue(stateFormElem, sTargetVal);
	} else {
		if (isState(oFormObj, "NA")) {
			stateFormElem.selectedIndex = 0;
			}
		}
	}

function setProvinceValue(oFormObj, sTargetVal) {
	var provinceFormElem = oFormObj.STATE_CA;
	if (sTargetVal) {
		setStateProvinceValue(provinceFormElem, sTargetVal);
	} else {
		if (isProvince(oFormObj, "NA")) {
			provinceFormElem.selectedIndex = 0;
			}
		}
	}

function setStateProvinceValue(oFormElemObj, sTargetVal) {
	var stateProvinceFormElemOpts = oFormElemObj.options;
	for (var i=0; i<stateProvinceFormElemOpts.length; i++) {
		if (oFormElemObj.options[i].value == sTargetVal) {
			oFormElemObj.selectedIndex = i;
			break;
			}
		}
	}