﻿function AddressLookup(lookupId, countryEditId, postalEditId, houseNumberEditId, streetEditId, cityEditId, errorMessageId) {

    // Get items
    var countryValue = document.getElementById(countryEditId).value;
    var postcodeValue = document.getElementById(postalEditId).value;
    var houseNumberValue = document.getElementById(houseNumberEditId).value;

    var street = document.getElementById(streetEditId);
    var city = document.getElementById(cityEditId);

    // Check if Netherlands
    if (countryValue == "nl" || countryValue == "NL") {
        // Netherlands

        // Disable street/city
        jQuery('#' + streetEditId).addClass('disabled');
        jQuery('#' + cityEditId).addClass('disabled');
        jQuery('#' + streetEditId).attr('readonly', true);
        jQuery('#' + cityEditId).attr('readonly', true);

        if (postcodeValue != '' && houseNumberValue != '') {
            // display message
            jQuery('#addressInfoMessage').removeClass('hidden');
            jQuery('#addressInfoMessage').addClass('visible');

            street.value = '';
            city.value = '';

            // Perform webservice street request
            var url = '/UI/Shared/AddressLookupService.aspx?pc=' + postcodeValue + '&hn=' + houseNumberValue;
                jQuery.get(
                url,
                function(result) {
                    // Process return and get results
                    jQuery('#' + lookupId).html(result);
                    var resultEl = document.getElementById(lookupId);
                    var streetResult = resultEl.childNodes[0].innerHTML;
                    var cityResult = resultEl.childNodes[1].innerHTML;

                    // Update the city/street values with return result.
                    street.value = streetResult;
                    city.value = cityResult;

                    if (streetResult.length == 0 || cityResult.length == 0) {
                        // display error message
                        jQuery('#' + errorMessageId).removeClass('hidden');
                        jQuery('#' + errorMessageId).addClass('visible');
                    }
                    else {
                        // hide error message
                        jQuery('#' + errorMessageId).removeClass('visible');
                        jQuery('#' + errorMessageId).addClass('hidden');
                    }
                }
            );
        }
    } else {
        // Not Netherlands

        // Enable street/city textboxes
        // do not clear values
        jQuery('#' + streetEditId).removeClass('disabled');
        jQuery('#' + cityEditId).removeClass('disabled');
        jQuery('#' + streetEditId).removeAttr('readonly');
        jQuery('#' + cityEditId).removeAttr('readonly');

        // hide message
        jQuery('#addressInfoMessage').removeClass('visible');
        jQuery('#addressInfoMessage').addClass('hidden');
    }
}

