function textValidator(fieldname,required,minValue,maxValue,chars,spaceAllow)
{
	var input = document.getElementById(fieldname).value;
	var input2 = input.replace(/ /gi, '');
	if (required === true && (input == '' || !input))
		document.getElementById('error_'+fieldname).innerHTML = 'Required field';
	else if (spaceAllow === true && input2.match(chars) != null)
		document.getElementById('error_'+fieldname).innerHTML = 'Invalid characters: '+input2.match(chars);
	else if (spaceAllow === false && input.match(chars) != null)
		document.getElementById('error_'+fieldname).innerHTML = 'Invalid characters: '+input.match(chars);
	else if (input.length < minValue)
		document.getElementById('error_'+fieldname).innerHTML = 'Minimum '+minValue+' characters';
	else if (input.length > maxValue)
		document.getElementById('error_'+fieldname).innerHTML = 'Maximum '+maxValue+' characters';
	else
		document.getElementById('error_'+fieldname).innerHTML = "<br/>";
}

function selectValidator(fieldname)
{
	var input = document.getElementById(fieldname).value;
	if (input == 'none')
		document.getElementById('error_'+fieldname).innerHTML = 'Please select an option';
	else
		document.getElementById('error_'+fieldname).innerHTML = "";
}

function emailValidator(fieldname)
{
	var input = document.getElementById(fieldname).value;
	var regexp1 = /^[a-zA-Z0-9!#$%&\'*+\/=?\^_`{|}~\-]+(?:\.[a-zA-Z0-9!#$%&\'*+\/=?\^_`{|}~\-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])\.)+(?:[a-z]{2}|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum|edu)$/;
	if (input == '' || !input)
		document.getElementById('error_'+fieldname).innerHTML = 'Required field';
	else if (!input.match(regexp1))
		document.getElementById('error_'+fieldname).innerHTML = 'Invalid email address';
	else if (input.length > 319)
		document.getElementById('error_'+fieldname).innerHTML = 'Maximum 319 characters';
	else
		document.getElementById('error_'+fieldname).innerHTML = "";
}

function dobValidator(fieldname)
{
	var input = document.getElementById(fieldname).value;
	var regexp1 = /^[0-3][0-9]\/[01][0-9]\/[0-9][0-9]$/;
	if (input == '' || !input)
		document.getElementById('error_'+fieldname).innerHTML = 'Required field';
	else if (!input.match(regexp1))
		document.getElementById('error_'+fieldname).innerHTML = 'Use format DD/MM/YY';
	else
		document.getElementById('error_'+fieldname).innerHTML = "";
}

function radioValidator(fieldname)
{
	var input = document.getElementById(fieldname).checked;
	if (input === true)
		document.getElementById('error_'+fieldname).style.display = 'block';
	else
	{
		document.getElementById('error_'+fieldname).style.display = 'none';
		document.getElementById('error_'+fieldname+'Details').innerHTML = "<br/>";
	}
}

function NINOValidator(fieldname)
{
	var input = document.getElementById(fieldname).value;
	var regexp1 = /^[A-CEGHJ-PR-TW-Z][A-CEGHJ-NPR-TW-Z] ?\d{2} ?\d{2} ?\d{2} ?[ABCDFM]/;
	if (input == '' || !input)
		document.getElementById('error_'+fieldname).innerHTML = 'Required field';
	else if (!input.match(regexp1))
		document.getElementById('error_'+fieldname).innerHTML = 'Invalid number';
	else
		document.getElementById('error_'+fieldname).innerHTML = "<br/>";
}