function validateLocationForm(form)
{
    var MSG_ALL_EMPTY = "I'm sorry, you cannot complete this form unless all the mandatory information is complete. Please try again."
	var MSG_INVALID_SUBURB = "I'm sorry, that suburb/town can not be found. Please check the spelling or try another suburb/town close to your area."
	var MSG_REQUIRE_SUBURB = "I'm sorry, please enter your suburb/town and try again."
	var MSG_REQUIRE_STATE = "I'm sorry, please select your state and try again."
	var MSG_INVALID_POSTCODE = "I'm sorry, that postcode has not been recognised. Please check the spelling or try another postcode close to your area.  If you only have a three digit postcode, please place a 0 at the start."
	var suburb = form.LOCSUBURB;
	var state = form.LOCSTATE;
	var postcode = form.LOCPC;
	var bReturn = true;
	var bAllEmpty = false;
	var bIsNav = true;
	bIsNav = isNav4();
	if (bIsNav) {
 		return true;
	}	
	bAllEmpty = isEmpty(suburb) && isEmpty(postcode) && state.selectedIndex == 0 ;
	if(bAllEmpty)
	{
		bReturn = false;
		alert(MSG_ALL_EMPTY);
		chgFocus(suburb);
	}
	if(bReturn && isEmpty(postcode))
	{
	    if(isEmpty(suburb))
		{
			bReturn = false;		
			alert(MSG_REQUIRE_SUBURB);
            chgFocus(suburb);			
		} 
		else if(validateSearchFreeText(suburb)!="")
		{
			bReturn = false;		
			alert(validateSearchFreeText(suburb));
            chgFocus(suburb);
		}
	    else if(state.selectedIndex == 0)
		{
			bReturn = false;		
			alert(MSG_REQUIRE_STATE);
            chgFocus(state);			
		} 		
	}
	else if(bReturn)
	{
	    trim(postcode)
	    if(postcode.value.length != 4)
	    {
	        bReturn = false;
	        alert(MSG_INVALID_POSTCODE);
		    chgFocus(postcode);
	    }
	    else if(isNaN(postcode.value))
	    {
	        bReturn = false;
	        alert(MSG_INVALID_POSTCODE);
		    chgFocus(postcode);
	    }		
	}	
	return bReturn;
}

