	
	function fCheckTextboxEmpty(sInputName, sNameInAlert)
	{
		var oTextbox = targetForm.elements[sInputName];
		var sValue = String(oTextbox.value);
		if(sValue.length==0){
			alert("Please select "+sNameInAlert+".");
			return false;
		}
		return true;
	}
	
	function fCheckTextboxString(sInputName, sNameInAlert, iMinLength, iMaxLength)
	{
		var oTextbox = targetForm.elements[sInputName];
		var sValue = String(oTextbox.value)
		var sAlert = "";
		if(iMinLength==0)
			sAlert = "The " + sNameInAlert + " field is invalid.\nIt cannot exceed " + iMaxLength + " characters in length.\nPlease correct this field before continuing.";
		else
			sAlert = "The " + sNameInAlert + " field is invalid.\nIt must be at least " + iMinLength + " characters in length, and cannot exceed " + iMaxLength + " characters in length.\nPlease correct this field before continuing.";
		var re = /\s/g;
		if(sValue.replace(re, "")==""&&iMinLength>0)
			{alert(sAlert);oTextbox.focus();return false;}
		if(sValue.length<iMinLength||sValue.length>iMaxLength)
			{alert(sAlert);oTextbox.focus();return false;}
		return true;
	}

	function fCheckPassword(sInputName)
	{
		var oTextbox1 = targetForm.elements[sInputName][0];
		var oTextbox2 = targetForm.elements[sInputName][1];
		var sValue1 = String(oTextbox1.value)
		var sValue2 = String(oTextbox2.value)

		sAlert = "The passwords are invalid.\nThey must be at least 6 characters in length,\nno more than 50 characters in length,\nand the passwords in both fields must match.\nPlease correct the password fields before continuing.";

		var re = /\s/g;
		if(sValue1.length<6||sValue1.length>50||sValue1!=sValue2)
			{alert(sAlert);oTextbox1.value="";oTextbox2.value="";oTextbox1.focus();return false;}
		return true;
	}

	function fCheckTextboxEmail(sInputName, sNameInAlert)
	{
		var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
		var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");

		var oTextbox = targetForm.elements[sInputName];
		var sValue = String(oTextbox.value)
		var	sAlert = "The " + sNameInAlert + " field is invalid.\nIt must contain a valid email address.\nPlease correct this field before continuing.";

		if(!(!r1.test(sValue) && r2.test(sValue)))
			{alert(sAlert);oTextbox.focus();return false;}
		return true;
	}

	function fTextboxContainsPositiveInteger(sInputName)
	{
		var oTextbox = targetForm.elements[sInputName];
		var nValue = Number(oTextbox.value)
		if(nValue.NaN)
			{return false;}
		else if(Math.floor(nValue)!=nValue)
			{return false;}
		else if(nValue<1)
			{return false;}
		return true;
	}

	function fCheckTextboxNumber(sInputName, sNameInAlert)
	{
		var oTextbox = targetForm.elements[sInputName];
		var nValue = Number(oTextbox.value)
		var sAlert = "The " + sNameInAlert + " field is invalid.\nYou must enter a number.\nPlease correct this field before continuing.";
		if(isNaN(nValue))
			{alert(sAlert);oTextbox.focus();return false;}
		return true;
	}

	function fCheckTextboxPositiveNumber(sInputName, sNameInAlert)
	{
		var oTextbox = targetForm.elements[sInputName];
		var nValue = Number(oTextbox.value)
		var sAlert = "The " + sNameInAlert + " field is invalid.\nYou must enter a number greater than 0.\nPlease correct this field before continuing.";
		if(nValue.NaN)
			{alert(sAlert);oTextbox.focus();return false;}
		else if(!(nValue>0))
			{alert(sAlert);oTextbox.focus();return false;}
		return true;
	}

	function fCheckTextboxInteger(sInputName, sNameInAlert)
	{
		var oTextbox = targetForm.elements[sInputName];
		var nValue = Number(oTextbox.value)
		var sAlert = "The " + sNameInAlert + " field is invalid.\nYou must enter an integer.\nPlease correct this field before continuing.";
		if(nValue.NaN)
			{alert(sAlert);oTextbox.focus();return false;}
		else if(Math.floor(nValue)!=nValue)
			{alert(sAlert);oTextbox.focus();return false;}
		return true;
	}

	function fCheckTextboxPositiveInteger(sInputName, sNameInAlert)
	{
		var oTextbox = targetForm.elements[sInputName];
		var nValue = Number(oTextbox.value)
		var sAlert = "The " + sNameInAlert + " field is invalid.\nYou must enter an integer greater than 0.\nPlease correct this field before continuing.";
		if(nValue.NaN)
			{alert(sAlert);oTextbox.focus();return false;}
		else if(Math.floor(nValue)!=nValue)
			{alert(sAlert);oTextbox.focus();return false;}
		else if(!(nValue>0))
			{alert(sAlert);oTextbox.focus();return false;}
		return true;
	}
 
	function fCheckTextboxPositivePercent(sInputName, sNameInAlert)
	{
		var oTextbox = targetForm.elements[sInputName];
		var sValue = oTextbox.value
		var re = /%/g
		sValue = String(sValue).replace(re, "")
		re = /\s/g
		sValue = String(sValue).replace(re, "")
		var nValue = Number(sValue)
		var sAlert = "The " + sNameInAlert + " field is invalid.\nYou must enter a percentage.\nPlease correct this field before continuing.";
		if(isNaN(nValue))
			{alert(sAlert);oTextbox.value="0.0";oTextbox.focus();return false;}
		else if(nValue<=0||nValue>100)
			{alert(sAlert);oTextbox.value="0.0";oTextbox.focus();return false;}
		nValue=nValue<1?nValue*100:nValue;
		oTextbox.value = fFormatPercent(nValue);
		return true;
	}
 
	function fCheckSelectOptionSelected(sSelectName, sNameInAlert, lessThan)
	{
		!lessThan?0:lessThan;
		var oSelect = targetForm.elements[sSelectName];
		var sAlert = "You must select an option from the " + sNameInAlert + " select box.\nPlease choose an option before continuing.";
		if(oSelect.selectedIndex<lessThan)
			{alert(sAlert);return false;}
		return true;
	}
	
	function fCheckValidImagePdf(sInputName)
	{
		var oFile = targetForm.elements[sInputName];
		var sValue = String(oFile.value).toLowerCase();
		if(sValue.indexOf(".pdf")==-1)
			{alert("Please choose a pdf file to upload.");return false;}
		return true;
	}	
	
	function fCheckValidImageFile(sInputName, sNameInAlert)
	{
		var oFile = targetForm.elements[sInputName];
		var sValue = String(oFile.value).toLowerCase();
		var re = /.+\.(jff|jif|jfif|jpg|jpeg|jpe|jtf)$/
		if(sValue.search(re)==-1)
			{alert("Please choose a jpeg image to upload.");return false;}
		return true;
	}	
	
	function fCheckValidDate(sSelectDay, sSelectMonth, sSelectYear, sNameInAlert)
	{
		// var iDay = targetForm.elements[sSelectDay].value;
		// var iMonth = targetForm.elements[sSelectMonth].value;
		// var iYear = targetForm.elements[sSelectYear].value;
		var iDay = sSelectDay;
		var iMonth = sSelectMonth;
		var iYear = sSelectYear;
		var oDate = new Date(iYear, iMonth-1, iDay)
		if(oDate.getDate()==iDay&&(oDate.getMonth()+1)==iMonth&&oDate.getFullYear()==iYear)
			return true
		else
			// {alert(iDay + "|" + oDate.getDate() + " " + iMonth + "|" + (oDate.getMonth()+1) + " " + iYear + "|" + oDate.getFullYear() + "You have entered an invalid date in the " + sNameInAlert + " fields.\nPlease correct before continuing.");return false;}
			{alert("You have entered an invalid date in the " + sNameInAlert + " field.\nPlease correct before continuing.");return false;}
	}
	
	function fIsEmpty(sInputName)
	{
		var re = /\s/g;
		var sValue = String(document.surveyForm.elements[sInputName].value).replace(re, "");
//		var sValue = String(document.getElementsByName(sInputName)[0].value).replace(re, "");
		return (sValue=="");
	}
 
	function fIsChecked(sInputName)
	{
		var i
		var oInput = document.surveyForm.elements[sInputName];
//		var oInput = document.getElementsByName(sInputName);
		var bIsChecked = false;
		if(oInput.length==null)
		{
			if(oInput.checked)
				bIsChecked = true
		}
		else
		{
			for(i=0;i<oInput.length;i++)
			{
				if(oInput[i].checked)
					bIsChecked = true
			}
		}
		return bIsChecked
	}
	
	function fCheckedDecisionFactorBox(sRadioName, sRadioValue)
	{
		var i, j;
		var oInput
		for(i=1;i<6;i++)
		{
			oInput = document.surveyForm.elements["q17" + i];
//			oInput = document.getElementsByName("q17" + i);
			for(j=0;j<oInput.length;j++)
			{
				if(oInput[j].name!=sRadioName&&oInput[j].value==sRadioValue)
					oInput[j].checked = false;
			}
		}
	}
	
	function fUncheckRadio(sInputName)
	{
		var i;
		var oInput
		oInput = document.surveyForm.elements[sInputName];
		if(oInput.length==null)
		{
			oInput.checked = false;
		}
		else
		{
			for(i=0;i<oInput.length;i++)
			{
				oInput[i].checked = false;
			}
		}
	}
	
	function fRoleChecked()
	{
		var i
		var oInput
		oInput = document.surveyForm.elements["role"];
//		oInput = document.getElementsByName("role");
		for(i=0;i<oInput.length;i++)
		{
			if(oInput[i].value=="None")
				oInput[i].checked = false;
		}
		
	}

	function fNoRoleChecked()
	{
		var i
		var oInput
		oInput = document.surveyForm.elements["role"]
//		oInput = document.getElementsByName("role")
		for(i=0;i<oInput.length;i++)
		{
			if(oInput[i].value!="None")
				oInput[i].checked = false;
		}
		
	}
	
	function checkEmail(value)
	{
		var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
		var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
		return (!r1.test(value) && r2.test(value));
	}

	function fFormatPercent(n)
	{
		if(String(n)=="null")
		{
			return "";
		}
		var r = Math.floor(n*10);
		if (r>=10)
		{
			r = String(r).substr(0, String(r).length - 1) + "." + String(r).substr(String(r).length - 1);
		}
		else if (r >= 10) 
		{
			r = "0."+r;
		}
		else if (r <10)
		{
			r = "0.0"+r;
		}
		return r
	}
