function ajax_object(){
	try{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
		return ajaxRequest;
	} 
	catch (e){
		// Internet Explorer Browsers
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
			return ajaxRequest;
		} 
		catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
				return ajaxRequest;
			} 
			catch (e){
				// Something went wrong
				alert("Your browser broke!");
				return false;
			}
		}
	}
}
function validate_email(field){
	with (field){
		apos=value.indexOf("@");
		dotpos=value.lastIndexOf(".");
		illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
		if (value.match(illegalChars)){
			return false;
		}
		else if (apos<1||dotpos-apos<2){
			return false;
		}
		else {
			return true;
		}
	}
}

function validate_string(field){
	with (field){
		if (value == "" || value==null) {
			return false;
		}
		else {
			return true;
		}
	}
}

function error_register(message){
	document.getElementById("register_error").innerHTML = message;
	document.getElementById("register_error").style.display = "block";
}

function error_callback(message){
	document.getElementById("callback_error").innerHTML = message;
	document.getElementById("callback_error").style.display = "block";
}

function error_contact(message){
	document.getElementById("contact_error").innerHTML = message;
	document.getElementById("contact_error").style.display = "block";
}
function error_apply(message){
	document.getElementById("apply_error").innerHTML = message;
	document.getElementById("apply_error").style.display = "block";
}
function error_callback(message){
	document.getElementById("callback_error").innerHTML = message;
	document.getElementById("callback_error").style.display = "block";
}
function error_quick_contact(message){
	document.getElementById("quick_contact_error").innerHTML = message;
	document.getElementById("quick_contact_error").style.display = "block";
}
function error_welcome_pack(message){
	document.getElementById("welcome_pack_error").innerHTML = message;
	document.getElementById("welcome_pack_error").style.display = "block";
}
function error_submit_case(message){
	document.getElementById("submit_case_error").innerHTML = message;
	document.getElementById("submit_case_error").style.display = "block";
}


function validate_callback(form){
	with(form){
		if(!validate_string(first_name)){
			error_callback("Please enter your first name");
			first_name.focus();
			return false;
		}
		if(!validate_string(last_name)){
			error_callback("Please enter your last name");
			last_name.focus();
			return false;
		}
		if(!validate_email(email)){
			error_callback("Please enter a valid email address");
			email.focus();
			return false;
		}
		if(!validate_string(address1)){
			error_callback("Please enter the first line of your address");
			address1.focus();
			return false;
		}
		if(!validate_string(city)){
			error_callback("Please enter your town/city");
			city.focus();
			return false;
		}
		if(!validate_string(postcode)){
			error_callback("Please enter your postcode");
			postcode.focus();
			return false;
		}
		if(!validate_string(telephone)){
			error_callback("Please enter your telephone number");
			telephone.focus();
			return false;
		}
		if(!validate_string(enquiry2)){
			error_callback("Please enter your enquiry");
			enquiry2.focus();
			return false;
		}
		if(!validate_string(contact_title)){
			error_callback("Please enter your title");
			contact_title.focus();
			return false;
		}	
		if(!validate_string(full_name)){
			error_callback("Please enter your full name");
			full_name.focus();
			return false;
		}
		if(!validate_string(time_to_call)){
			error_callback("Please enter your prefered contact time");
			time_to_call.focus();
			return false;
		}	
		if(!validate_string(total_tax_debt)){
			error_callback("Please enter your total tax debt");
			total_tax_debt.focus();
			return false;
		}	
		if(!validate_string(employment_status)){
			error_callback("Please enter your employment status");
			employment_status.focus();
			return false;
		}	
		if(!validate_string(comments)){
			error_callback("Please enter details of your circumstances");
			comments.focus();
			return false;
		}												
	}
	return true;
}
function validate_quick_contact_old(form){
	with(form){
		if(!validate_string(company_name)){
			error_quick_contact("Please enter your company name");
			company_name.focus();
			return false;
		}
		if(!validate_string(contact_name)){
			error_quick_contact("Please enter your contact name");
			contact_name.focus();
			return false;
		}
		if(!validate_string(contact_tel)){
			error_quick_contact("Please enter your telephone number");
			contact_tel.focus();
			return false;
		}
		if(!validate_email(contact_email)){
			error_quick_contact("Please enter a valid email address");
			contact_email.focus();
			return false;
		}	
		if(!validate_string(query)){
			error_quick_contact("Please enter details of your query");
			query.focus();
			return false;
		}												
	}
	return true;
}
function validate_quick_contact(form){
	with(form){

		if(!validate_string(first_name)){
			error_quick_contact("Please enter your First Name");
			first_name.focus();
			return false;
		}
		if(!validate_string(last_name)){
			error_quick_contact("Please enter your Last Name");
			last_name.focus();
			return false;
		}		
		if(!validate_string(telephone)){
			error_quick_contact("Please enter your telephone number");
			telephone.focus();
			return false;
		}
		if(!validate_email(email)){
			error_quick_contact("Please enter a valid email address");
			email.focus();
			return false;
		}	
		if(!validate_string(enquiry)){
			error_quick_contact("Please enter details of your query");
			enquiry.focus();
			return false;
		}												
	}
	return true;
}
function validate_apply(form){
	with(form){

		if(!validate_string(first_name)){
			error_apply("Please enter your first name");
			first_name.focus();
			return false;
		}
		if(!validate_string(last_name)){
			error_apply("Please enter your last name");
			last_name.focus();
			return false;
		}
		if(!validate_email(email)){
			error_apply("Please enter a valid email address");
			email.focus();
			return false;
		}
		if(!validate_string(telephone)){
			error_apply("Please enter your telephone number");
			telephone.focus();
			return false;
		}		
		if(!validate_string(total_tax_debt)){
			error_apply("Please enter your total tax debt");
			total_tax_debt.focus();
			return false;
		}	
			
			if(!validate_string(comments)){
			error_apply("Please enter your comments");
			comments.focus();
			return false;
		}											
	}
	return true;

}
function validate_welcome_pack(form){
	with(form){

		if(!validate_string(first_name)){
			error_welcome_pack("Please enter your first name");
			first_name.focus();
			return false;
		}
		if(!validate_string(last_name)){
			error_welcome_pack("Please enter your last name");
			last_name.focus();
			return false;
		}
		if(!validate_email(email)){
			error_welcome_pack("Please enter a valid email address");
			email.focus();
			return false;
		}
		if(!validate_string(telephone)){
			error_welcome_pack("Please enter your telephone number");
			telephone.focus();
			return false;
		}		
											
	}
	return true;

}

function validate_submit_case(form){
	with(form){
		if(!validate_string(introducer_first_name)){
			error_submit_case("Please enter your first name");
			introducer_first_name.focus();
			return false;
		}
		if(!validate_string(introducer_last_name)){
			error_submit_case("Please enter your last name");
			introducer_last_name.focus();
			return false;
		}
		if(!validate_email(introducer_email)){
			error_submit_case("Please enter a valid email address");
			introducer_email.focus();
			return false;
		}
		if(!validate_string(introducer_telephone)){
			error_submit_case("Please enter your telephone number");
			introducer_telephone.focus();
			return false;
		}
		if(!validate_string(first_name)){
			error_submit_case("Please enter your first name");
			first_name.focus();
			return false;
		}
		if(!validate_string(last_name)){
			error_submit_case("Please enter your last name");
			last_name.focus();
			return false;
		}
		if(!validate_email(email)){
			error_submit_case("Please enter a valid email address");
			email.focus();
			return false;
		}
		if(!validate_string(telephone)){
			error_submit_case("Please enter your telephone number");
			telephone.focus();
			return false;
		}		
		if(!validate_string(total_tax_debt)){
			error_submit_case("Please enter your total tax debt");
			total_tax_debt.focus();
			return false;
		}	
			
			if(!validate_string(comments)){
			error_submit_case("Please enter your comments");
			comments.focus();
			return false;
		}												
	}
	return true;

}

function ajax_contact(form){
	ao = ajax_object();
	if (validate_contact(form)){
		ao.onreadystatechange = function(){
			if(ao.readyState == 4){
				//document.getElementById("contact_form").innerHTML = ao.responseText;
				//ifrm = document.createElement("IFRAME");
				//var aurl= "/ajax/track_contact.html";
				//ifrm.setAttribute("src", aurl);
				//ifrm.style.width = 0+"px";
				//ifrm.style.height = 0+"px";
				//document.body.appendChild(ifrm);
			}
		}
		with (form){
			ao.open("GET", "process_contact.php?first_name="+first_name.value+"&last_name="+last_name.value+
				"&email="+email.value+"&telephone="+telephone.value+"&form_action="+form_action.value, true);
			ao.send(null);
		}
	}
}