function setFormAddress( sJSONText, sRoadFieldName, sTownFieldName, sCountyFieldName, sPostCodeFieldName  )
{
    // alert( 'JSON: ' + oLJAX.responseText ) ;
    var myObject = JSON.parse(oLJAX.responseText) ;

    setFormFieldValue( sRoadFieldName, '' ) ;
    setFormFieldValue( sTownFieldName, '' ) ;
    setFormFieldValue( sCountyFieldName, '' ) ;

    if( oLJAX.responseText.length < 1 || myObject.length < 1 ) {
        // alert( 'Nothing Returned ') ;
        return false ;
    }

    if( 'ERROR' in myObject[0] ) {
        if( myObject[0].ERROR.length > 1 ) {
            alert( 'ALERT: ' + myObject[0].ERROR ) ;
            return false ;
        }
    }

    setFormFieldValue( sPostCodeFieldName, '' ) ;

    myObject[0].Street.trim ;
    myObject[0].Locality.trim ;
    myObject[0].Town.trim ;
    myObject[0].County.trim ;
    myObject[0].PostCode.trim ;

    setFormFieldValue( sRoadFieldName, myObject[0].Street  ) ;

    if( myObject[0].Locality.length > 1 && myObject[0].Town.length > 1 ) {
        setFormFieldValue( sTownFieldName, myObject[0].Locality + ', ' + myObject[0].Town  ) ;
    }
    if( myObject[0].Locality.length > 1 && myObject[0].Town.length < 2 ) {
        setFormFieldValue( sTownFieldName, myObject[0].Locality ) ;
    }
    if( myObject[0].Locality.length < 2 && myObject[0].Town.length > 1 ) {
        setFormFieldValue( sTownFieldName, myObject[0].Town ) ;
    }

    setFormFieldValue( sCountyFieldName, myObject[0].County  ) ;
    setFormFieldValue( sPostCodeFieldName, myObject[0].PostCode  ) ;

    return true ;
}

function getApplicatFormAddress()
{
    oLJAX = initLJAX() ;

    var sEncoded = '' ;
    var sUnencoded = '' ;
    var sPostCode = '' ;

    // get postcode
    sPostCode = getFormFieldValue( 'postcode' ) ;
    // alert( 'get PostCode ' + sPostCode ) ;

    if( sPostCode.length > 0  ) {
        oLJAX.onreadystatechange = cbSetAppFormAddress ;
        // alert( 'get PostCode ' + sPostCode ) ;
        return sendGetRequest( '/getAddress.php', 'pc=' + sPostCode ) ;
    } else {
        alert('Please enter your postcode') ;
        return false ;
    }
} // end function getApplicatFormAddress


function cbSetAppFormAddress( )
{
    var sAddress = '' ;

    if( oLJAX.readyState == 4 ) {
        if( oLJAX.status == 200 ) {
            if( setFormAddress( oLJAX.responseText, 'road', 'town', 'county', 'postcode'  ) ) {
                alert( 'Don\'t forget to enter your house number' ) ;
            }
        }
        if( oLJAX.status == 404 ) {
            alert( 'LJAX Error Fetching Applicant Address: ' + oLJAX.status + ' :: ' + oLJAX.statusText + '\n\nLJAX Servlet missing on the web server')    ;
        }
    }
}

function getApplicatFormLGAddress()
{
    oLJAX = initLJAX() ;

    var sEncoded = '' ;
    var sUnencoded = '' ;
    var sPostCode = '' ;

    // get postcode
    sPostCode = getFormFieldValue( 'lgpostcode' ) ;
    //alert( 'get PostCode ' + sPostCode ) ;

    if( sPostCode.length > 0  ) {
        oLJAX.onreadystatechange = cbSetAppFormLGAddress ;
        return sendGetRequest( '/getAddress.php', 'pc=' + sPostCode ) ;
    } else {
        alert('Please enter your postcode') ;
        return false ;
    }
} // end function getApplicatFormAddress


function cbSetAppFormLGAddress( )
{
    var sAddress = '' ;

    if( oLJAX.readyState == 4 ) {
        if( oLJAX.status == 200 ) {
            if( setFormAddress( oLJAX.responseText, 'lgroad', 'lgtown', 'lgcounty', 'lgpostcode'  ) ) {
                alert( 'Don\'t forget to enter your house number' ) ;
            }
        }
        if( oLJAX.status == 404 ) {
            alert( 'LJAX Error Fetching LG Address: ' + oLJAX.status + ' :: ' + oLJAX.statusText + '\n\nLJAX Servlet missing on the web server')    ;
        }
    }
}



function getFeedbackFormAddress()
{
    oLJAX = initLJAX() ;

    var sEncoded = '' ;
    var sUnencoded = '' ;
    var sPostCode = '' ;

    // get postcode
    sPostCode = getFormFieldValue( 'postcode' ) ;
    //alert( 'get PostCode ' + sPostCode ) ;

    if( sPostCode.length > 0  ) {
        oLJAX.onreadystatechange = cbSetFeedbackFormAddress ;
        return sendGetRequest( '/getAddress.php', 'pc=' + sPostCode ) ;
    } else {
        alert('Please enter your postcode') ;
        return false ;
    }
} // end function getApplicatFormAddress


function cbSetFeedbackFormAddress( )
{
    var sAddress = '' ;

    if( oLJAX.readyState == 4 ) {
        if( oLJAX.status == 200 ) {
            if( setFormAddress( oLJAX.responseText, 'road', 'town', 'county', 'postcode'  ) ) {
                alert( 'Don\'t forget to enter your house number' ) ;
            }
        }
        if( oLJAX.status == 404 ) {
            alert( 'LJAX Error Fetching Feedback Address: ' + oLJAX.status + ' :: ' + oLJAX.statusText + '\n\nLJAX Servlet missing on the web server')    ;
        }
    }
}
