<!--
function displayErrMsg(errMsg)
{
	alert(errMsg);
	return false;
}
function hasValue(obj, objType)
{
	switch (objType)
	{
		case 'TEXT':
			if (obj.value.length == 0) return false;
			break;
		case 'SELECT':
			if (obj[obj.selectedIndex].value == '') return false;
			break;
		case 'CHECK':
			if (!obj.checked) return false;
			break;
		case 'RADIO':
			for (var i = 0; i < obj.length; i++)
			{
				if (obj[i].checked) return true;
			}
			//if we made it here, no item selected
			return false;
			break;
	}
	
	return true;
}
function validNumeric(number)
{
	var GoodChars = "0123456789";
	for (i = 0; i <= number.value.length - 1 ; i++)
	{
		if (GoodChars.indexOf(number.value.charAt(i)) == -1)
			return false;
	}

	return true;
}

function validatePhone(phoneType, phone1, phone2, phone3, phoneRequired)
{
	//if phone is required, make sure it's valued
	if (phoneRequired)
	{
		if (!hasValue(phone1, 'TEXT') && !hasValue(phone2, 'TEXT') && !hasValue(phone3, 'TEXT'))
		{
			if (!displayErrMsg(phoneType + ' Phone Number is required.\r\nPlease re-enter.'))
			{
				phone1.focus();
				return false;
			}
		}
	}
	
	//if part is populated, all must be populated
	if (hasValue(phone1, 'TEXT') || hasValue(phone2, 'TEXT') || hasValue(phone3, 'TEXT'))
	{
		if (!hasValue(phone1, 'TEXT') || !hasValue(phone2, 'TEXT') || !hasValue(phone3, 'TEXT'))
		{
			if (!displayErrMsg(phoneType + ' Phone Number is incomplete.\r\nPlease re-enter.'))
			{
				phone1.focus();
				return false;
			}
		}
		else
		{
			if (phone1.value.length != 3 || phone2.value.length != 3 || phone3.value.length != 4)
			{
				if (!displayErrMsg(phoneType + ' Phone Number is invalid.\r\nPlease re-enter.'))
				{
					phone1.focus();
					return false;
				}
			}
			else
			{
				if (!validNumeric(phone1) || !validNumeric(phone2) || !validNumeric(phone3))
				{
					if (!displayErrMsg(phoneType + 'Phone Number is invalid.\r\nPlease re-enter.'))
					{
						phone1.focus();
						return false;
					}
				}
			}
		}
	}
	
	return true;
}

function validateAddress(addrType, addrStreet, addrCity, addrState, addrZip, addrRequired)
{
	var stateValue;
	var countryCode = '';
	
	if (addrRequired)
	{
		if (!hasValue(addrStreet, 'TEXT'))
		{
			if (!displayErrMsg(addrType + ' Address is required.\r\nPlease re-enter.'))
			{
				addrStreet.focus();
				return false;
			}
		}
		if (!hasValue(addrCity, 'TEXT'))
		{
			if (!displayErrMsg(addrType + ' City is required.\r\nPlease re-enter.'))
			{
				addrCity.focus();
				return false;
			}
		}
		if (!hasValue(addrState, 'SELECT'))
		{
			if (!displayErrMsg(addrType + ' State/Province is required.\r\nPlease re-enter.'))
			{
				addrState.focus();
				return false;
			}
		}
		else
		{
			stateValue = addrState[addrState.selectedIndex].value;
			countryCode = stateValue.substring(3,5);
		}
		if (!hasValue(addrZip, 'TEXT'))
		{
			if (!displayErrMsg(addrType + ' Zip/Postal Code is required.\r\nPlease re-enter.'))
			{
				addrZip.focus();
				return false;
			}
		}
	}
	else
	{
		//if any part of address is valued, all must be valued
		if (hasValue(addrStreet, 'TEXT') || hasValue(addrCity, 'TEXT') || hasValue(addrState, 'SELECT') || hasValue(addrZip, 'TEXT'))
		{
			if (!hasValue(addrStreet, 'TEXT'))
			{
				if (!displayErrMsg(addrType + ' Address is incomplete.\r\nStreet is required.\r\nPlease re-enter.'))
				{
					addrStreet.focus();
					return false;
				}
			}
			if (!hasValue(addrCity, 'TEXT'))
			{
				if (!displayErrMsg(addrType + ' Address is incomplete.\r\nCity is required.\r\nPlease re-enter.'))
				{
					addrCity.focus();
					return false;
				}
			}
			if (!hasValue(addrState, 'SELECT'))
			{
				if (!displayErrMsg(addrType + ' Address is incomplete.\r\nState/Province is required.\r\nPlease re-enter.'))
				{
					addrState.focus();
					return false;
				}
			}
			else
			{
				stateValue = addrState[addrState.selectedIndex].value;
				countryCode = stateValue.substring(3,5);
			}
			if (!hasValue(addrZip, 'TEXT'))
			{
				if (!displayErrMsg(addrType + ' Address is incomplete.\r\nZip/Postal Code is required.\r\nPlease re-enter.'))
				{
					addrZip.focus();
					return false;
				}
			}
		}
	}
	
	//if country and zip are valued, validate zip based on country
	if (hasValue(addrZip, 'TEXT') && countryCode > '')
	{
		switch (countryCode)
		{
			case 'US':
				//zip must be 5 numeric digits
				if (!validNumeric(addrZip) || addrZip.value.length != 5)
				{
					if (!displayErrMsg(addrType + ' Zip/Postal Code is invalid for selected country.\r\nPlease re-enter.'))
					{
						addrZip.focus();
						return false;
					}
				}
				break;
			case 'CA':
				//postal code must contain at least 6 characters
				if (addrZip.value.length < 6)
				{
					if (!displayErrMsg(addrType + ' Zip/Postal Code is invalid for selected country.\r\nPlease re-enter.'))
					{
						addrZip.focus();
						return false;
					}
				}
				break;
		}
	}
	
	return true;
}

function validateEmail(emailAddr, emailRequired)
{
	if (!hasValue(emailAddr, 'TEXT'))
	{
		if (emailRequired)
		{
			if (!displayErrMsg('Email Address is required.\r\nPlease re-enter.'))
			{
				emailAddr.focus();
				return false;
			}
		}
		else
		{
			return true;
		}
	}
	
	var bValid = true;
	var emailLen = emailAddr.value.length;
	var atPos = emailAddr.value.indexOf('@');
	var dotPos = emailAddr.value.indexOf('.', atPos);
	
	if (emailLen < 5) bValid = false;
	if (atPos < 1) bValid = false;
	if (dotPos < atPos + 2 || dotPos == emailLen - 1) bValid = false;
	
	if (!bValid)
	{
		if (!displayErrMsg('Email Address is invalid.\r\nPlease re-enter.'))
		{
			emailAddr.focus();
			return false;
		}
	}
	
	return true;
}
//-->
