// form validation

	var ssf_loaded=0;
	
	function ssf_signalLoad()
	{
		ssf_loaded = 1;
	}
	
	
	function ssf_onError(form_object, input_object, object_value, error_message)
	{
		alert(error_message);
		return false;	
	}
	
// field values

	function ssf_hasValue(obj, obj_type)
	{
		if (obj_type == "TEXT" || obj_type == "PASSWORD")
		{
			if (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;	
		}
	}
	
// email value check

	function testemail(form) 
	{
	   Ctrl = form.email;
	   if (Ctrl.value == "" || Ctrl.value.indexOf ('@', 0) == -1) 
		{
	    return (false);
	    } else
	return (true);
	} 
	
// messages

	function  ssf_check_ssf_form(ssf_this)
	{
		if  (!ssf_hasValue(ssf_this.title, "TEXT" ))
		{
			if  (!ssf_onError(ssf_this, ssf_this.title, ssf_this.title.value, "Please enter a subject/title"))
			{
				return false;
			}
		}
	
		if  (!ssf_hasValue(ssf_this.name, "TEXT" ))
		{
			if  (!ssf_onError(ssf_this, ssf_this.name, ssf_this.name.value, "Please enter your Full Name"))
			{
				return false;
			}
		}
	
		if  (!testemail(ssf_this, ssf_this.email, ssf_this.email.value))
		{
			if  (!ssf_onError(ssf_this, ssf_this.email, ssf_this.email.value, "Please use your full email address - user@domain.name"))
			{
				return false;
			}
		}

		if  (!ssf_hasValue(ssf_this.given_name, "TEXT" ))
		{
			if  (!ssf_onError(ssf_this, ssf_this.given_name, ssf_this.given_name.value, "Please enter your Personal name"))
			{
				return false;
			}
		}
	
		return true;
	}

