
function _CF_onError(form_object, input_object, object_value, error_message)
    {
	alert(error_message);
       	return false;	
    }

function _CF_hasMinValue(obj, obj_type)
    {
    if (obj_type == "TEXT" || obj_type == "PASSWORD")
	{
    	if (obj.value.length < 4) 
      		return false;
    	else 
      		return true;
  
	}
	}
function _CF_hasValue(obj, obj_type)
{
    if (obj_type == "TEXT" || obj_type == "PASSWORD")
    {
    	if (eval(obj.value.length) == 0)
	{
      		return false;
	}
    	else  {
      		return true;
	}
    }
    else if (obj_type == "SELECT")
	{
        for (i=0; i < obj.length; i++)
	    	{
		if (obj.options[i].selected)
			return true;
		}
       	return false;	
	}
    else if (obj_type == "SINGLE_VALUE_RADIO" || obj_type == "SINGLE_VALUE_CHECKBOX")
	{
		if (obj.checked)
			return true;
		else
       		return false;	
	}
    else if (obj_type == "RADIO" || obj_type == "CHECKBOX")
	{
        for (i=0; i < obj.length; i++)
	    	{
		if (obj[i].checked)
			return true;
		}
       	return false;	
	}
}

/*
// -- with thanks to Chirp --- (here is his original validation code)
// http://www.the-art-of-web.com/javascript/validate/
// Original JavaScript code by Chirp Internet: www.chirp.com.au
// Please acknowledge use of this code by including this header.
// function checkArray(form, arrayName) { var retval = new Array(); for(var i=0; i < form.elements.length; i++) { var el = form.elements[i]; if(el.type == "checkbox" && el.name == arrayName && el.checked) { retval.push(el.value); } } return retval; }
*/

function checkArray(form, arrayName)
{
	 for(var i=0; i < form.elements.length; i++) {
		var e = form.elements[i];
		if(e.type == "checkbox" && e.name == arrayName && e.checked)
		{
			return true;
		}
	 }
	 return false;
}
	
function validEmail(str) {
	var emailReg = new RegExp('^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$');
	var ret = (emailReg.test(str)) ? true : false;
	return ret;
}

function CF_ValidateForm(_CF_this){
	if  (!_CF_hasValue(_CF_this.surname, "TEXT" )) {
		alert("Please enter your surname.");
		return false; 
	}
	if  (!_CF_hasValue(_CF_this.givennames, "TEXT" )) {
		alert("Please enter your given name.");
		return false; 
	}
	if (!validEmail(_CF_this.emailaddress.value)) {
		alert("Your email address looks wrong.\nPlease check it.");
		return false; 
	}

	if  (!_CF_hasValue(_CF_this.homenumber, "TEXT" ) && (!_CF_hasValue(_CF_this.worknumber, "TEXT" )) && (!_CF_hasValue(_CF_this.mobilenumber, "TEXT" ))) {

		alert("Please enter at least one contact phone number.");
		return false; 
	}
	if (!checkArray(_CF_this, "reasonforcontact[]")) {
		alert("Please select at least one contact reason.");
		return false; 
	}
	return true;
}

function guru_validation(mythis) {
	if (!_CF_hasValue(mythis.name, "TEXT" )) {
		alert("Please enter your name");
		return false;
	}
	if (!validEmail(mythis.emailaddress.value)) {
		alert("Your email address looks wrong.\nPlease check it.");
		return false; 
	}
	if (!_CF_hasValue(mythis.question, "TEXT" )) {
		alert("Please enter your query/comments");
		return false;
	}
	return true;
}

function aplan_validation(mythis) {
	if (!validEmail(mythis.emailaddress.value)) {
		alert("Your email address looks wrong.\nPlease check it.");
		return false; 
	}
	if (!_CF_hasValue(mythis.firstname, "TEXT" )) {
		alert("Please enter your first name");
		return false;
	}
	if (!_CF_hasValue(mythis.lastname, "TEXT" )) {
		alert("Please enter your last name");
		return false;
	}
	return true;
}

// routine to Validate AND Submit
function fears_validation(myform) {
	if (!_CF_hasValue(myform.thingsyoufear1, "TEXT" )
			|| !_CF_hasValue(myform.thingsyoufear2, "TEXT" )
			|| !_CF_hasValue(myform.thingsyoufear3, "TEXT" ))
	{
		alert("Please enter your top three fears");
		return false;
	}
	// else
	myform.submit();
}
