function adfxPayment(fobj,fid,reqfields) {
	if(vForm(fobj,fid,reqfields)) {
		if(fobj.amount_1.value < 1.01) {
			alert("Amount must be greater than or equal to $1.01");
			return false;
		} else {
			fobj.submit();
		}		
	}
}

function vForm(fobj,fid,reqfields) {
	
	//alert(fid);
	if(reqfields == "") {
		return true;
	}
	
	var err_read = "";
	var error_fields = new Array();
	var reqarray = reqfields.split(";");
	var thisform = $(fid);
	var felements = thisform.getElements();

	for(var i=0; i < reqarray.length; i++) {
	
		var thisele;
		for(var x=0; x < felements.length; x++) {
			if(reqarray[i] == felements[x].name){
				thisele = felements[x];
				break;
			}
		}
		
		if(thisele.type == "text") {
			if(thisele.value == "") {
				var elem = reqarray[i].replace(/_/g," ");
				err_read += "You must provide a value for "+changeCase(elem)+".\n";
				error_fields[error_fields.length] = thisele;
			}
			
			// test for verifications
			var elename = thisele.name;
			if(elename.toLowerCase().match("verify_")) {
				var sreplace = elename.substr(0,7);
				var pelename = elename.replace(sreplace,"");
				
				var checkele;
				for(var z=0; z < felements.length; z++) {
					if(pelename == felements[z].name){
						checkele = felements[z];
						break;
					}
				}
				
				if(thisele.value != checkele.value) {
					var elem = reqarray[i].replace(/_/g," ");
					err_read += changeCase(pelename.replace(/_/g," "))+" does not match "+changeCase(elem)+".\n";
					error_fields[error_fields.length] = thisele;
				}
				
			}
			//alert(thisele.name);
		}
		if(thisele.type == "password") {
			if(thisele.value == "") {
				var elem = reqarray[i].replace(/_/g," ");
				err_read += "You must provide a value for "+changeCase(elem)+".\n";
				error_fields[error_fields.length] = thisele;
			}
			
			// test for verifications
			var elename = thisele.name;
			if(elename.toLowerCase().match("verify_")) {
				var sreplace = elename.substr(0,7);
				var pelename = elename.replace(sreplace,"");
				
				var checkele;
				for(var z=0; z < felements.length; z++) {
					if(pelename == felements[z].name){
						checkele = felements[z];
						break;
					}
				}
				
				if(thisele.value != checkele.value) {
					var elem = reqarray[i].replace(/_/g," ");
					err_read += changeCase(pelename.replace(/_/g," "))+" does not match "+changeCase(elem)+".\n";
					error_fields[error_fields.length] = thisele;
				}
				
			}
			
		}
		if(thisele.type == "textarea") {
			if(thisele.value == "") {
				var elem = reqarray[i].replace(/_/g," ");
				err_read += "You must provide a value for "+changeCase(elem)+".\n";
				error_fields[error_fields.length] = thisele;
			}
		}
		if(thisele.type == "select-one") {
			if(thisele.options.selectedIndex <= 0) {
				var elem = reqarray[i].replace(/_/g," ");
				err_read += "You must provide a value for "+changeCase(elem)+".\n";
				error_fields[error_fields.length] = thisele;
			}
		}
		if(thisele.type == "select-multi") {
			if(thisele.options.selectedIndex <= 0) {
				var elem = reqarray[i].replace(/_/g," ");
				err_read += "You must provide a value for "+changeCase(elem)+".\n";
				error_fields[error_fields.length] = thisele;
			}
		}
		if(thisele.type == "checkbox") {
			var elements = fobj.getInputs('checkbox', thisele.name);
			var checked = new Array();
			for(var x=0; x < elements.length; x++) {
				if(elements[x].checked == true) {
					checked[x] = elements.value;
				}
			}
			if(checked.length < 1) {
				var elem = reqarray[i].replace(/_/g," ");
				elem = elem.replace(/\[\]/g,"");
				err_read += "You must provide a value for "+changeCase(elem)+".\n";
				error_fields[error_fields.length] = thisele;
			}
		}
		if(thisele.type == "radio") {
			var elements = fobj.getInputs('radio', thisele.name);
			var checked = new Array();
			for(var x=0; x < elements.length; x++) {
				if(elements[x].checked == true) {
					checked[x] = elements.value;
				}
			}
			if(checked.length < 1) {
				var elem = reqarray[i].replace(/_/g," ");
				elem = elem.replace(/\[\]/g,"");
				err_read += "You must provide a value for "+changeCase(elem)+".\n";
				error_fields[error_fields.length] = thisele;
			}
		}
		
	} // end for each required field
	
	if (err_read == "") {	
		//fobj.submit();
		return true;							
	} else {									
		err_read = "We found the following omissions in your form: \n" + err_read;						
		var thefield = error_fields[0];								
		alert(err_read);
		//var fname = thefield.name;
		//alert(fname);
		//var input = thisform[fname];							
		thefield.focus();	
		//Form.Element.focus(input);				
	}
} // end function

function changeCase(str) {
var index;
var tmpStr;
var tmpChar;
var preString;
var postString;
var strlen;
tmpStr = str.toLowerCase();
strLen = tmpStr.length;
if (strLen > 0)  {
for (index = 0; index < strLen; index++)  {
if (index == 0)  {
tmpChar = tmpStr.substring(0,1).toUpperCase();
postString = tmpStr.substring(1,strLen);
tmpStr = tmpChar + postString;
}
else {
tmpChar = tmpStr.substring(index, index+1);
if (tmpChar == " " && index < (strLen-1))  {
tmpChar = tmpStr.substring(index+1, index+2).toUpperCase();
preString = tmpStr.substring(0, index+1);
postString = tmpStr.substring(index+2,strLen);
tmpStr = preString + tmpChar + postString;
         }
      }
   }
}
return tmpStr;
}// end function
