		function getObject(sFieldName, dDocument)
		{
			var nPos,nIndex,sObject;
			if (!dDocument)
			{
				dDocument = document;
			}
			if ((nPos = sFieldName.indexOf("?")) > 0 && parent.frames.length)
			{
				dDocument = parent.frames[sFieldName.substring(nPos+1)].document;
				sFieldName = sFieldName.substring(0,nPos);
			}
			if (!(sObject = dDocument[sFieldName]) && dDocument.all)
			{
				sObject = dDocument.all[sFieldName];
			}
			for (nIndex = 0; !sObject && nIndex < dDocument.forms.length; nIndex++)
			{
				sObject = dDocument.forms[nIndex][sFieldName];
			}
			for (nIndex = 0; !sObject && dDocument.layers && nIndex < dDocument.layers.length; nIndex++)
			{
				sObject = getObject(sFieldName, dDocument.layers[nIndex].document);
			}
			return sObject;
		}
		
		function stringReplace(sString, sReplaceWhat, sWithWhat)
		{
			var nPos = 0;
			var nLen = sReplaceWhat.length;
			nPos = sString.indexOf(sReplaceWhat);
			while (nPos != -1)
			{
				preString = sString.substring(0, nPos);
				postString = sString.substring(nPos+nLen, sString.length);
				sString = preString + sWithWhat + postString;
				nPos = sString.indexOf(sReplaceWhat);
			}
			return sString;
		}
		
		errors='';
		
		function validateField()
		{
			var nIndex,nPos,fieldName,validationRule,nNumber,nMinimum,nMaximum,args, nAux, bError, sFieldObj;
			args = validateField.arguments;
			for (nIndex = 0; nIndex < (args.length-2); nIndex += 3)
			{
				validationRule = args[nIndex+2]; fieldName = args[nIndex+1]; sFieldObj = getObject(args[nIndex]);
				validationRule = validationRule.toUpperCase();
				if (sFieldObj)
				{
					if (fieldName=='')
					{
						fieldName = sFieldObj.name;
					}
					sField = "";
					 //check the field if the it isn't null
					if ((sField = sFieldObj.value) != "")
					{	
						// check to see if it is a valid e-mail address
						if (validationRule.indexOf('ISEMAIL') != -1)
						{
							bError = false;
							sField = stringReplace(sField, ' ', '');
							//contains @
							nPos = sField.indexOf('@');
							if (nPos < 1 || nPos == (sField.length-1))
							{
								bError = true;
							}
							//contains at least one dot after the @
							nAux = nPos;
							nPos = sField.indexOf('.', nAux);
							if (nPos == -1)
							{
								bError = true;
							}
							if (bError)
							{
								errors += '- '+ fieldName +' must contain a valid e-mail address.\n';
							}
						}
						// check to see if it is a valid positive number
						if (validationRule.indexOf('ISPOSITIVENUMBER') != -1)
						{
							bError = false;
							sField = stringReplace(sField, ' ', '');
							nNumber = parseFloat(sField);
							if (isNaN(nNumber))
							{
								bError = true;
							}
							else
							{
								if (nNumber < 0)
								{
									bError = true;
								}
							}
							if (bError)
							{
								errors += '- '+ fieldName +' must contain a positive number'+extra+'.\n';
							}
						}
						// check to see if it is a valid number
						if (validationRule.indexOf('ISNUMBER') != -1)
						{
							bError = false;
							sField = stringReplace(sField, ' ', '');
							nNumber = parseFloat(sField);
							if (sField != ''+nNumber)
							{
								bError = true;
							}
							if (bError)
							{
								errors += '- '+ fieldName +' must contain a valid number.\n';
							}
						}
						// check to see if it is a valid number not equal to 0
						if (validationRule.indexOf('ISNOTNULLNUMBER') != -1)
						{
							bError = false;
							sField = stringReplace(sField, ' ', '');
							nNumber = parseFloat(sField);
							if (sField != ''+nNumber)
							{
								bError = true;
							}
							else
							{
								if (nNumber == 0)
								{
									bError = true;
								}
							}
							if (bError)
							{
								errors += '- '+ fieldName +' - Please select one...\n';
							}
						}
					}
					else
					{
						if (validationRule.charAt(0) == 'R')
						{
							errors += '- '+ fieldName  + '\n';
						}
					}
				}
			}
		}
		    
		function displayErrors()
		{
			if (errors)
			{
				alert('The following fields are required or contain errors:\n\n' + errors);
				errors='';
				return false;
			}
			else
			{
				return true;
			}
		}
