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 val_button(btn) {
    var cnt = -1;
    for (var i=btn.length-1; i > -1; i--) {
        if (btn[i].checked) {cnt = i; i = -1;}
    }
    if (cnt > -1) return btn[cnt].value;
    else return null;
}

function questions_1_show(){
	$('#questions_1').show('slow');
	$('#questions_2').hide();
}
function questions_2_show(){
	$('#questions_1').hide();
	$('#questions_2').show('slow');	
}

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_quick_contact(message){
	document.getElementById("quick_contact_error").innerHTML = message;
	document.getElementById("quick_contact_error").style.display = "block";
}
function error_business(message){
	document.getElementById("business_error").innerHTML = message;
	document.getElementById("business_error").style.display = "block";
}

function validate_register(form){
	with(form){
		if (!validate_string(firstname)){
			error_register("Please enter your first name");
			firstname.focus();
			return false;
		}
		if (!validate_string(lastname)){
			error_register("Please enter your last name");
			lastname.focus();
			return false;
		}
		if (!validate_email(email)){
			error_register("Please enter a valid email");
			email.focus();
			return false;
		}
		if (!validate_string(company)){
			error_register("Please enter your company");
			company.focus();
			return false;
		}
		if (!validate_string(job)){
			error_register("Please enter your job title");
			job.focus();
			return false;
		}
		if (!validate_string(telephone)){
			error_register("Please enter your telephone number");
			telephone.focus();
			return false;
		}
	}
	return true;
}

function validate_callback(form){
	with(form){
		if(!validate_string(firstname2)){
			error_callback("Please enter your first name");
			firstname2.focus();
			return false;
		}
		if (!validate_string(lastname2)){
			error_callback("Please enter your last name");
			lastname2.focus();
			return false;
		}
		if (!validate_string(telephone2)){
			error_callback("Please enter your telephone number");
			telephone2.focus();
			return false;
		}
	}
	return true;
}

function validate_contact(form){
	with(form){
		if(!validate_string(firstname)){
			error_contact("Please enter your first name");
			firstname.focus();
			return false;
		}
		if(!validate_string(lastname)){
			error_contact("Please enter your last name");
			lastname.focus();
			return false;
		}
		if(!validate_email(emailaddress)){
			error_contact("Please enter a valid email address");
			emailaddress.focus();
			return false;
		}
		if(!validate_string(address1)){
			error_contact("Please enter the first line of your address");
			address1.focus();
			return false;
		}
		if(!validate_string(city)){
			error_contact("Please enter your town/city");
			city.focus();
			return false;
		}
		if(!validate_string(postcode)){
			error_contact("Please enter your postcode");
			postcode.focus();
			return false;
		}
		if(!validate_string(telephone)){
			error_contact("Please enter your telephone number");
			telephone.focus();
			return false;
		}
		if(!validate_string(enquiry2)){
			error_contact("Please enter your enquiry");
			enquiry2.focus();
			return false;
		}
	}
	return true;
}

function validate_quick_contact(form){
	with(form){
		if(!validate_string(title)){
			error_quick_contact("Please enter your title");
			title.focus();
			return false;
		}
		if (!validate_string(name)){
			error_quick_contact("Please enter your name");
			name.focus();
			return false;
		}
		if (!validate_string(email)){
			error_quick_contact("Please enter your email");
			email.focus();
			return false;
		}
		if (!validate_string(telephone)){
			error_quick_contact("Please enter your telephone number");
			telephone.focus();
			return false;
		}
	}
	return true;
}

function validate_business(form){
	with(form){
		if(!validate_string(turnover)){
			error_business("Please enter your turnover");
			turnover.focus();
			questions_1_show();
			return false;
		}
		if(!validate_string(customers_owing)){
			error_business("Please enter the number of customers owing you money");
			customers_owing.focus();
			questions_1_show();
			return false;
		}
		if(!validate_string(vat)){
			error_business("Please enter the level of VAT/PAYE Arrears that you currently owe");
			no_invoices.focus();
			questions_1_show();
			return false;
		}
		if(!validate_string(industry)){
			error_business("Please the industry you operate in");
			industry.focus();
			questions_1_show();
			return false;
		}
		if(!validate_string(name)){
			error_business("Please enter your name");
			name.focus();
			questions_2_show();
			return false;
		}
		if(!validate_string(business_company)){
			error_business("Please enter your company");
			business_company.focus();
			questions_2_show();
			return false;
		}
		if(!validate_email(business_email)){
			error_business("Please enter your email address");
			business_email.focus();
			questions_2_show();
			return false;
		}
		if(!validate_string(business_address1)){
			error_business("Please enter your address");
			business_address1.focus();
			questions_2_show();
			return false;
		}
		if(!validate_string(business_towncity)){
			error_business("Please enter town or city");
			business_towncity.focus();
			questions_2_show();
			return false;
		}
		if(!validate_string(business_postcode)){
			error_business("Please enter your postcode");
			business_postcode.focus();
			questions_2_show();
			return false;
		}
		if(!validate_string(business_telephone)){
			error_business("Please enter your telephone number");
			business_telephone.focus();
			questions_2_show();
			return false;
		}
	}
	return true;
}

function ajax_register(form){
	ao = ajax_object();
	if (validate_register(form)){
		ao.onreadystatechange = function(){
			if(ao.readyState == 4){
				document.getElementById("register_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", "ajax/process_register.php?firstname="+firstname.value+"&lastname="+lastname.value+
				"&company="+company.value+"&job="+job.value+"&email="+email.value+
				"&telephone="+telephone.value, true);
			ao.send(null);
		}
	}
}

function ajax_callback(form){
	ao = ajax_object();
	if (validate_callback(form)){
		ao.onreadystatechange = function(){
			if(ao.readyState == 4){
				document.getElementById("callback_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);
				var iframe = document.createElement('iframe');
				iframe.style.width = '0px';
				iframe.style.height = '0px';
				document.body.appendChild(iframe);
				iframe.src = '/ppc/conversion.php';
			}
		}
		with (form){
			ao.open("GET", "ajax/process_callback.php?firstname="+firstname2.value+"&lastname="+lastname2.value+
				"&telephone="+telephone2.value+"&email="+email.value+"&enquiry="+enquiry.value, true);
			ao.send(null);
		}
	}
}

function ajax_quick_contact(form){
	ao = ajax_object();
	if (validate_quick_contact(form)){		
		ao.onreadystatechange = function(){
			if(ao.readyState == 4){
				document.getElementById("quick_contact_form").innerHTML = ao.responseText;
				// track page on normal account
				var pageTracker = _gat._getTracker("UA-7576616-1");
				pageTracker._trackPageview("/callback");
				// track page on PPC account
				var pageTracker = _gat._getTracker("UA-7787422-1");
				pageTracker._trackPageview("/callback");
				ifrm = document.createElement("IFRAME");
				var aurl= "/ajax/track_callback.html";
				ifrm.setAttribute("src", aurl);
				ifrm.style.width = 0+"px";
				ifrm.style.height = 0+"px";
				document.body.appendChild(ifrm);
			}
		}
		with (form){
			ao.open("GET", "/ajax/process_quick_contact.php?title="+title.value+"&name="+name.value+"&email="+email.value+
					"&telephone="+telephone.value, true);
			ao.send(null);
		}
	}
}

function ajax_business(form){
	ao = ajax_object();
	if (validate_business(form)){		
		ao.onreadystatechange = function(){
			if(ao.readyState == 4){
				document.getElementById("business_form").innerHTML = ao.responseText;
				// track page on normal account
				var pageTracker = _gat._getTracker("UA-7576616-1");
				pageTracker._trackPageview("/callback");
				// track page on PPC account
				var pageTracker = _gat._getTracker("UA-7787422-1");
				pageTracker._trackPageview("/callback");
				ifrm = document.createElement("IFRAME");
				var aurl= "/ajax/track_callback.html";
				ifrm.setAttribute("src", aurl);
				ifrm.style.width = 0+"px";
				ifrm.style.height = 0+"px";
				document.body.appendChild(ifrm);
			}
		}
		with (form){
			ao.open("GET", "/ajax/process_business.php?turnover="+turnover.value+
					"&customers_owing="+customers_owing.value+
					"&vat="+vat.value+
					"&industry="+industry.value+
					"&business_company="+business_company.value+
					"&business_email="+business_email.value+
					"&business_address1="+business_address1.value+
					"&business_address2="+business_address2.value+
					"&business_towncity="+business_towncity.value+
					"&business_postcode="+business_postcode.value+
					"&business_telephone="+business_telephone.value, true);
			ao.send(null);
		}
	}
}

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", "ajax/process_contact.php?firstname="+firstname.value+"&lastname="+lastname.value+
				"&email="+emailaddress.value+"&address1="+address1.value+"&address2="+address2.value+"&address3="+address3.value+
				"&city="+city.value+"&postcode="+postcode.value+"&country="+country.value+
				"&telephone="+telephone.value+"&enquiry="+enquiry.value+"&enquiry2="+enquiry2.value+
				"&hearabout="+hearabout.value+"&company="+company.value, true);
			ao.send(null);
		}
	}
}
