function validate_required(field,alerttxt)
{
with (field)
  {
  if (value==""||value==""||value==""||value==""||value==""||value=="")
    {
    alert(alerttxt);return false;
    }
  else
    {
    return true;
    }
  }
}

function validate_form(thisform)
{
with (thisform)
  {
  if (validate_required(email,"Email must be filled out!")==false)
  {email.focus();return false;}
  }
}

function ctype_alpha(text){
	return /^[A-Za-z]+$/.test(text);
}

function ctype_digit(text){
	return /^[0-9]+$/.test(text);
}

function is_word(text){
	return /^[\w\d ]+$/.test(text);
}

function is_house_number(text){
	return /^[0-9]+[a-z]?$/.test(text);
}

function isName(formElement){
	return /^[a-z][a-z\- ]*[a-z]$/i.test($F(formElement));
}

function isNumeric(formElement){
	//console.debug($F(formElement));
	return /^[0-9]*$/.test($F(formElement));
}

function is_postcode(text){
	return /^[a-zA-Z]{1,2}[0-9]{1,2}[a-zA-Z]?\s[0-9]{1,2}[a-zA-Z]{1,2}$/.test(text);
}

function isPostCode(formElement){
	return is_postcode($F(formElement));
}

function validate_details(){
	var failed = true;
	if(!is_word($F('surname'))){
		$('surname').addClassName('incomplete');
		failed = false;
	}
	else{
		$('surname').removeClassName('incomplete');
	}
	
	if(!is_word($F('firstname'))){
		$('firstname').addClassName('incomplete');
		failed = false;
	}
	else{
		$('firstname').removeClassName('incomplete');
	}
	
	if(!is_word($F('company_name')) && $F('company_name') != ''){
		$('company_name').addClassName('incomplete');
		failed = false;
	}
	else{
		$('company_name').removeClassName('incomplete');
	}
	
	if((
			(
				$F('company_type') == 'PLC' ||
				$F('company_type') == 'LTD'
			) &&
			!ctype_digit($F('company_no'))
		) ||
		(
			(
				$F('company_type') == 'PLC' ||
				$F('company_type') == 'LTD'
			) &&
			$F('company_no') == ''
		)
	){
		$('company_no').addClassName('incomplete');
		failed = false;
	}
	else{
		$('company_no').removeClassName('incomplete');
	}
	
	if(!is_house_number($F('house_number')) && !is_word($F('house_number'))){
		$('house_number').addClassName('incomplete');
		failed = false;
	}
	else{
		$('house_number').removeClassName('incomplete');
	}
	
	if(!is_word($F('addressline1')) && $F('addressline1') != ''){
		$('addressline1').addClassName('incomplete');
		failed = false;
	}
	else{
		$('addressline1').removeClassName('incomplete');
	}
	
	if(!is_word($F('addressline2')) && $F('addressline2') != ''){
		$('addressline2').addClassName('incomplete');
		failed = false;
	}
	else{
		$('addressline2').removeClassName('incomplete');
	}
	
	if(!is_postcode($F('postcode'))){
		$('postcode').addClassName('incomplete');
		failed = false;
	}
	else{
		$('postcode').removeClassName('incomplete');
	}
	
	if(!ctype_alpha($F('country'))){
		$('country').addClassName('incomplete');
		failed = false;
	}
	else{
		$('country').removeClassName('incomplete');
	}
	
	if(!is_word($F('county'))){
		$('county').addClassName('incomplete');
		failed = false;
	}
	else{
		$('county').removeClassName('incomplete');
	}
	
	$('phone').value = $('phone').value.replace(/[+.\- ]+/g, '');
	if(!ctype_digit($F('phone'))){
		$('phone').addClassName('incomplete');
		failed = false;
	}
	else{
		$('phone').removeClassName('incomplete');
	}
	
	$('mobile').value = $('mobile').value.replace(/[+.\- ]+/g, '');
	if(!ctype_digit($F('mobile')) && $F('mobile') != ''){
		$('mobile').addClassName('incomplete');
		failed = false;
	}
	else{
		$('mobile').removeClassName('incomplete');
	}
	
	$('fax').value = $('fax').value.replace(/[+.\- ]+/g, '');
	if(!ctype_digit($F('fax')) && $F('fax') != ''){
		$('fax').addClassName('incomplete');
		failed = false;
	}
	else{
		$('fax').removeClassName('incomplete');
	}
	
	
	return failed;
}
