function submitPMIReferer()
{
    if (!(document.PMIReferer.CoverMeOnly[0].checked) && !(document.PMIReferer.CoverMeOnly[1].checked))
	{
		alert("You must indicate if the cover is for yourself only.");
		return false;
	}
    if (document.PMIReferer.CoverMeOnly[1].checked)
    {
        if (document.PMIReferer.SpouseAge.value == '' && document.PMIReferer.Child1Age.value == '')
	    {
	        alert("Please enter either Age of partner or Age of first child")
		    return false;
	    }
        
	    if (!isFieldValidAndFocus(document.PMIReferer.SpouseAge, 'Integer', true, 'Age of partner'))
	    {
		    return false;
	    }
	    if (!isFieldValidAndFocus(document.PMIReferer.Child1Age, 'Integer', true, 'Age of first child'))
	    {
		    return false;
	    }
	    if (!isFieldValidAndFocus(document.PMIReferer.Child2Age, 'Integer', true, 'Age of second child'))
	    {
		    return false;
	    }
	    if (!isFieldValidAndFocus(document.PMIReferer.Child3Age, 'Integer', true, 'Age of third child'))
	    {
		    return false;
	    }
	    if (!isFieldValidAndFocus(document.PMIReferer.Child4Age, 'Integer', true, 'Age of fourth child'))
	    {
	        return false;
	    }
	}

	if(document.PMIReferer.ExistingPMI[0] && document.PMIReferer.ExistingPMI[1]){
	    if (!(document.PMIReferer.ExistingPMI[0].checked) && !(document.PMIReferer.ExistingPMI[1].checked))
		{
			alert("You must indicate if you already have a private medical insurance policy.");
			return false;
		}
		if (document.PMIReferer.ExistingPMI[0].checked)
		{
			if (!isFieldValidAndFocus(document.PMIReferer.MonthExpire, 'Month', false, 'Month of expiry'))
			{
				return false;
			}
			if (!isFieldValidAndFocus(document.PMIReferer.YearExpire, 'Year', false, 'Year of expiry'))
			{
				return false;
			}
			if (!isFieldValidAndFocus(document.PMIReferer.CurrentInsurer, 'Alphanumeric', false, 'Current insurer'))
			{
				return false;
			}
		}
	}

    if (document.PMIReferer.Title.value == '')
    {
        alert("Please select your title");
		return false;
	}
	if (!isFieldValidAndFocus(document.PMIReferer.Forename, 'Alphabetic', false, 'Forename'))
	{
		return false;
	}
	if (!isFieldValidAndFocus(document.PMIReferer.Surname, 'Alphabetic', false, 'Surname'))
	{
		return false;
	}
	if (!isFieldValidAndFocus(document.PMIReferer.DOBDay, 'Day', false, 'Date of birth'))
	{
		return false;
	}
	if (!isFieldValidAndFocus(document.PMIReferer.DOBMonth, 'Month', false, 'Date of birth'))
	{
		return false;
	}
	if (!isFieldValidAndFocus(document.PMIReferer.DOBYear, 'Year', false, 'Date of birth'))
	{
		return false;
	}
	
	if(document.PMIReferer.Smoker[0] && document.PMIReferer.Smoker[1]){
		if (!(document.PMIReferer.Smoker[0].checked) && !(document.PMIReferer.Smoker[1].checked))
		{
			alert("You must indicate if you have smoked within the lsat 12 months or not.");
			document.PMIReferer.Smoker[0].focus;
			return false;
		}
	}
	
	//check the quick address stuff
	if (document.PMIReferer.foundAddress.value == -1)
	{
		alert("Please enter you postcode, click \"Find Address\" and follow the instructions.");
		return false;
	}
	else if (document.PMIReferer.foundAddress.value == 0)
	{
		if (!isFieldValidAndFocus(window.addressFrame.document.frmAddress.manAddress, 'Alphanumeric', false, 'Address'))
		{
			return false;
		}
		if (!isFieldValidAndFocus(window.addressFrame.document.frmAddress.manTown, 'Alphabetic', false, 'Town'))
		{
			return false;
		}
		if (!isFieldValidAndFocus(window.addressFrame.document.frmAddress.manCounty, 'Alphabetic', false, 'County'))
		{
			return false;
		} 
		if (!isFieldValidAndFocus(window.addressFrame.document.frmAddress.manPostCode, 'Alphanumeric', false, 'Postcode'))
		{
			return false;
		}
		//if code reaches here everything must be tickerty boo
		//set the hidden fields on the page
		document.PMIReferer.Address.value = window.addressFrame.document.frmAddress.manAddress.value
		document.PMIReferer.Area.value = window.addressFrame.document.frmAddress.manTown.value
		document.PMIReferer.TownCity.value = window.addressFrame.document.frmAddress.manDistrict.value
		document.PMIReferer.County.value = window.addressFrame.document.frmAddress.manCounty.value
		document.PMIReferer.Postcode.value = window.addressFrame.document.frmAddress.manPostCode.value
	}
	
	if (!isFieldValidAndFocus(document.PMIReferer.EmailAddress, 'Email', false, 'Email'))
	{
		return false;
	}
	if (!isFieldValidAndFocus(document.PMIReferer.HomeTelephoneNo, 'Numeric', false, 'Daytime telephone number'))
	{
		return false;
	}
	if (!isFieldValidAndFocus(document.PMIReferer.DaytimeTelephoneNo, 'Numeric', true, 'Evening telephone number'))
	{
		return false;
	}

	return true;
}

function searchAddress(){
	PostCodeURL = '../inLinePostCode.asp?searchPostcode=' + document.getElementsByName("SearchPostcodeArea")[0].value + ' ' + document.getElementsByName("SearchPostcodeStreet")[0].value + "&add1text=Address&add2text=Area&add3text=TownCity&add4text=County&add5text=Postcode&tdstyle=VerdanaTDStyle&bgcolor=eeeef4&questionwidth=196";
	document.getElementsByName("addressFrame")[0].src = PostCodeURL;
	document.getElementById("addressDiv").style.display='block';
	document.getElementById("maincontentnoads").style.height='auto';
}
