	function ValidRequired(formField,fieldLabel) {
		var result = true;
		if (formField.value == "" || formField.value.match(/^\-+$/))
		{
			alert('Please enter a value for the "' + fieldLabel +'" field.');
			formField.focus();
			result = false;
		}
		return result;
	}
	
	function ValidRequiredMessage(formField,fieldLabel,addlMessage) {
		var result = true;
		if (formField.value == "" || formField.value.match(/^\-+$/))
		{
			alert('Please enter a value for the "' + fieldLabel +'" field.\n' + addlMessage);
			formField.focus();
			result = false;
		}
		return result;
	}
	
	function ValidRequiredCheck(formField,fieldLabel) {
		if (formField.length > 1)
		{
			for(var i=0;i<formField.length;i++) {
				if (formField[i].checked)
					return true;
			}
		}
		else if (formField.checked)
			return true;
		
		alert('Please select a value for the "' + fieldLabel +'" field.');
		return false;
	}

	function ValidRequiredCheckDependant(formField,depFormField,value,fieldLabel) {
		var result = true;
		if (depFormField[value].checked) {
			result = ValidRequired(formField,fieldLabel);
		}
		return result;
	}
	
	function ValidRequiredCheckCheckDependant(formField,depFormField,value,fieldLabel) {
		var result = true;
		if (depFormField[value].checked) {
			result = ValidRequiredCheck(formField,fieldLabel);
		}
		return result;
	}

	function ValidEmail(formField,fieldLabel)
	{
		var result = true;
		if (!ValidRequired(formField,fieldLabel))
			result = false;
		if (result && (!formField.value.match(/\w\w+\@\w{2}\w+\.\w\w+/)) )
		{
			alert("Please enter a complete email address in the form: yourname@yourdomain.com");
			formField.focus();
			result = false;
		}
	  return result;
	}

	function ValidPhone(field1, field2, field3, fieldLabel)
	{
		var result = true;
	
		var RE3 = /^\d\d\d$/;
		var RE4 = /^\d\d\d\d$/;
		if ( (! RE3.test(field1.value)) || (! RE3.test(field2.value)) || (! RE4.test(field3.value)) )
		{
			alert('Please enter a 10 digit number for the "' + fieldLabel +'" field.');
			field1.focus();
			result = false;
		}
		
		return result;
	}
	
	function ValidPhone1(field1, fieldLabel)
	{
		var result = true;
	
		var RE = /^\d.*\d$/;
		if (! RE.test(field1.value))
		{
			alert('Please enter a number for the "' + fieldLabel +'" field.');
			field1.focus();
			result = false;
		}
		
		return result;
	}
	
	function ValidPhoneLengthByCountryCode(phone, countryCode, fieldLabel)
	{
		var result = true;
		if (countryCode.match(/US|CA/i))
			re = /^\d{10}$/;
		else if (countryCode.match(/AU/i))
			re = /^\d{9}$/;
		else if (countryCode.match(/MX|NZ/i))
			re = /^\d{8}$/;
		else
			re = /^\d{7}\d*$/;
		
		if (! re.test(phone.value))
		{
			alert('Please enter a valid number for the "' + fieldLabel +'" field.');
			phone.focus();
			result = false;
		}
		return result;
	}	

	function ValidPostalCodeLengthByCountryCode(zip, countryCode, fieldLabel)
	{
		var result = true;
		if (countryCode.match(/US/i))
			re = /^\d{5}$/;
		else if (countryCode.match(/CA/i))
			re = /^\w\d\w\s?\d\w\d$/;
/*		else if (countryCode.match(/AU/i))
			length = 5;
		else if (countryCode.match(/MX|NZ/i))
			length = 5;
*/
		else
			re = /^[\w\d]{4}[\w\d]*$/;

		if (! re.test(zip.value))
		{
			alert('Please enter a valid value for the "' + fieldLabel +'" field.');
			zip.focus();
			result = false;
		}
		return result;
	}	

	function NumbersOnly(e)
	{
		var key;
		if(window.event) key = e.keyCode; 
		else if(e.which) key = e.which; 
		else return true;
		var reg = /\d/;
		return reg.test(String.fromCharCode(key));
	}
	
	function ValidCCExpDate(month, year, fieldLabel, focusField)
	{
		var result = true;
		var time=new Date();
		var currentMonth=time.getMonth() + 1;
		var currentYear=time.getYear();
		if (year == currentYear && month < currentMonth)
		{
			alert("Please enter a current date for the '" + fieldLabel + "' field.");
			focusField.focus();
			result = false;
		}
		return result;
	}

	function ShiftFieldFocus(e, thisField, nextField, number) {
		var key;
		if(window.event) key = e.keyCode; 
		else if(e.which) key = e.which; 
		if (thisField.value.length >= number && key != 9)
			nextField.focus()
	}