	
	// call with 
	//   fieldName : name of field to be validated
	//   validate : type of validation number, text
	//   extras : an object with extra items e.g. max, min
	function doAjax(loginRequired, fieldName, validate, extras)	{

		// I need to trap select boxes here so I can get the proper selected index value

		if (validate == 'option')		{
			workingValue = $(fieldName)[$(fieldName).selectedIndex].value 
		}	else	{
			workingValue = escape(String($(fieldName).getValue()))
		}

		new Ajax('ajaxValidate.asp', 
		{	
			method: 'post',	
			data: 
			{
				value : workingValue,
				val : validate,
				errorID : extras.errorID,
				required : extras.required,
				maxlength : extras.maxLength,
				minlength : extras.minLength,
				fieldName : extras.fieldName,
				loginRequired : loginRequired
			},
			
			evalScripts: true,	


			onComplete: function(result)
			{
				// Turn our Json string back to Javascript
				resultSet = Json.evaluate(result);

				if (resultSet.valid == '1') 	{	valid = true }	else	{ valid = false	};
				message = resultSet.mes;

				if (valid)		{
					$(fieldName).setStyle('border-color', '#09FF3D');
					//$('label_' + fieldName).setStyle('color', '#09FF3D');			// Changes the label colour - overkill
					$('mes_' + fieldName).setStyle('color', '#09FF3D');
					$(fieldName).setStyle('border-width', '2px;');
					icon = "<img src='img/good.gif' alt='OK'/>";
				}	else	{

					if (loginRequired)		{
						if (message == "Session Timeout")	{
							alert('Your session has expired due to inactivity. Please login again');
							document.location.href = 'login.asp';
						}
					}

					$(fieldName).setStyle('border-color', 'red');
					//$('label_' + fieldName).setStyle('color', 'red');				// Changes the label colour - overkill
					$('mes_' + fieldName).setStyle('color', 'red');
					$(fieldName).setStyle('border-width', '2px;');
					icon = "<img src='img/bad.gif' alt='Error'/>";
				}

				$('mes_' + fieldName).setHTML(icon + " " + message) ;
				
			}
		}).request();

	}


	// Switch off the ajax styles
	function resetStyle(fieldName)	{
		$('mes_' + fieldName).setHTML("");
		$(fieldName).setStyle('border-color', 'black;');
		$(fieldName).setStyle('border-width', '1px;');
		//$('label_' + fieldName).setStyle('color', 'black');
	}


	// need to check if one box is ticked to see if others need validated
	function isThisFieldRequired(fieldToCheck, valueToLookFor)	{
		if ($(fieldToCheck).checked == valueToLookFor)	{
			return '1';
		}	else	{
			return '0';
		}
	}


	// like above but with option box
	function isThisFieldRequiredOpt(fieldToCheck, valueToLookFor)	{
		if ($(fieldToCheck).value == valueToLookFor)	{
			return '1';
		}	else	{
			return '0';
		}
	}
