	function trim(str)
	{
		return str.replace(/^\s*(.*?)[\s\n]*$/g,"$1");
	}
	/****************************************************************************************/	
	function validateEmail(obj)
	{
		var email = obj.value;
/*		
		var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
		var regex = new RegExp(emailReg);
		return regex.test(email);	*/

		var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/

		if (! email.match(re) && email.length != 0)
		{
			obj.style.background = "#fd4b01";
			return false;
		}
		obj.style.background = "#FFFFFF";

		return true;
	}
	/****************************************************************************************/	
//	return the value of the radio button that is checked
//	return an empty string if none are checked, or there are no radio buttons
	function getCheckedValue(radioObj)
	{
		if(!radioObj)
			return "";
		var radioLength = radioObj.length;
		if(radioLength == undefined)
			if(radioObj.checked)
				return radioObj.value;
			else
				return "";
		for(var i = 0; i < radioLength; i++)
		{
			if(radioObj[i].checked)
			{
				return radioObj[i].value;
			}
		}
		return "";
	}
	/****************************************************************************************/
	// set the radio button with the given value as being checked
	// do nothing if there are no radio buttons
	// if the given value does not exist, all the radio buttons
	// are reset to unchecked
	function setCheckedValue(radioObj, newValue)
	{
		if(!radioObj)
			return;
		var radioLength = radioObj.length;
		if(radioLength == undefined)
		{
			radioObj.checked = (radioObj.value == newValue.toString());
			return;
		}
		for(var i = 0; i < radioLength; i++)
		{
			radioObj[i].checked = false;
			if(radioObj[i].value == newValue.toString())
			{
				radioObj[i].checked = true;
			}
		}
	}


	/**--------------------------
	//* Validate Date Field script- By JavaScriptKit.com
	//* For this script and 100s more, visit http://www.javascriptkit.com
	//* This notice must stay intact for usage
	---------------------------**/

	function checkdate(input)
	{
//		var validformat=/^\d{4}\/\d{2}\/\d{2}$/ //Basic check for format validity
		var validformat=/^\d{2}\-\d{2}\-\d{4}$/ //Basic check for format validity

		var returnval = false

		if (!validformat.test(input.value))
		{
//			alert("1. Invalid Date Format. Please correct and submit again.")
			input.style.background = "#fd4b01";
			return false;
		}
		else	//Detailed check for valid date ranges
		{
			var dayfield	= input.value.split("-")[0]
			var monthfield	= input.value.split("-")[1]
			var yearfield	= input.value.split("-")[2]

			var dayobj		= new Date(yearfield, monthfield-1, dayfield)

			if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield))
			{
		//		alert("Invalid Day, Month, or Year range detected. Please correct and submit again.")
				input.style.background = "#fd4b01";
				return false;
			}
			else
			{
				returnval=true
				input.style.background = "url(../images/textbox.gif) no-repeat top left";
			}
		}
		if (returnval==false) input.select()
		return returnval
	}

	function str_checkdate(s)
	{
//		var validformat=/^\d{4}\/\d{2}\/\d{2}$/ //Basic check for format validity
		var validformat=/^\d{2}\-\d{2}\-\d{4}$/ //Basic check for format validity

		var returnval = false

		if (!validformat.test(s))
		{
			return false;
		}
		else	//Detailed check for valid date ranges
		{
			var dayfield	= s.split("-")[0]
			var monthfield	= s.split("-")[1]
			var yearfield	= s.split("-")[2]

			var dayobj		= new Date(yearfield, monthfield-1, dayfield)

			if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield))
			{
				return false;
			}
			else
			{
				returnval=true
			}
		}
		return returnval
	}
	/****************************************************************************************/
	function data_change(field)
	{
		var check	= true;
		var str		= field.value; //get characters
		var len		= field.str.length;
		var newStr	= "";
		//check that all characters are digits, ., -, or ""
		for(var i = 0;i < field.str.length; ++i)
		{
			var new_key = str.charAt(i); //cycle through characters
			if(((new_key < "0") || (new_key > "9")) && !(new_key == ""))
			{
				check	= false;
				break;
			}
		}
		//apply appropriate colour based on value
		if(!check)
		{
			field.style.backgroundColor = "red";
		}
		else
		{
			field.style.backgroundColor = "white";
		}
	}
	/****************************************************************************************/
	var titleOpts	= new Array();
	titleOpts["M"]	= new Array("MR", "MASTER", "DR", "SIR");
	titleOpts["F"]	= new Array("MISS", "MRS", "MS", "DR");
	function fnLoadTitleOpt(gender, box)
	{
		box.options.length = 0;
		var numShown = 0;

		box.options[numShown] = new Option('PLEASE SELECT', '');
		numShown++;

		var opts = titleOpts[gender];
		var len	= opts.length;
		for (i = 0; i < len; i++)
		{
			box.options[numShown] = new Option(opts[i], opts[i]);
			numShown++;
		}
	}
	/****************************************************************************************/	
	
