﻿var lastQuery;

$(document).ready(function () {

    $('.lookupAddress').blur(function () {

        var resultBox = null;
        var housenumberExt = null;
        var zipcode = null;
        var housenumber = null;
        var thisNode = $(this)[0];
        var classNamesParts = thisNode.className.split(' ');

        for (var i = 0; i < classNamesParts.length; i++) {
            if (classNamesParts[i].indexOf('result_') >= 0)
                resultBox = classNamesParts[i].replace('result_', '');
        }
        
        $('.lookupAddress').each(function () {

            if ($(this).hasClass('result_' + resultBox) == true) {
                if ($(this).hasClass('func_zipcode') == true) {
                    if (zipcode != null)
                        zipcode += $(this)[0].value;
                    else
                        zipcode = $(this)[0].value;
                }
                if ($(this).hasClass('func_housenumber') == true && $(this).hasClass('func_housenumberExt') == false)
                    housenumber = $(this)[0].value;
                if ($(this).hasClass('func_housenumberExt') == true)
                    housenumberExt = $(this)[0].value;
            }
        });


        if (housenumber != null && housenumber != "" && zipcode != null && zipcode != "") {
            var theData = "zipcode=" + zipcode + "&housenumber=" + housenumber + "";
            if (housenumberExt != null && housenumberExt != "")
                theData += "&housenumberext=" + housenumberExt;

            if (lastQuery != theData) {
                lastQuery = theData;

                $.ajax({
                    type: "POST",
                    url: $('#serviceRoot')[0].value + "service/eancodes.ashx",
                    data: theData,
                    success: function (returnObj) {
                        if (returnObj != null && returnObj.Street != null) {
                            $("#" + resultBox).css('display', 'block');
                            if (returnObj != null) {
                                if ($('#isSmart').val() == 'true') {

                                    $('#' + resultBox + ' .adres').text(returnObj.Street);
                                    $('#' + resultBox + ' .stad').text(returnObj.City);
                                }
                                else {
                                    $('#' + resultBox + ' .adres').text(returnObj.Street + " " + housenumber + " " + housenumberExt);
                                    $('#' + resultBox + ' .stad').text(zipcode + " " + returnObj.City);
                                }
                                if ($('.connections') != null && $('.connections')[0] != null) {
                                    var ddConnections = $('.connections')[0];
                                    if (returnObj.HasGas == true && returnObj.HasElectricity == true) {
                                        $('.connections')[0].style.display = 'none';
                                        $('#onlyBothConnections')[0].style.display = 'block';
                                        $('.id_connections').css('display', 'none');
                                    }
                                    else {
                                        $('.connections')[0].style.display = 'inline';
                                        $('#onlyBothConnections')[0].style.display = 'none';
                                        if (returnObj.HasGas) {
                                            $('.connections')[0].options[2].selected = true;
                                            $('.value_gas').css('display', 'block');
                                        }
                                        if (returnObj.HasElectricity) {
                                            $('.connections')[0].options[1].selected = true;
                                            $('.value_electricity').css('display', 'block');
                                        }
                                    }
                                }
                            }
                            else {
                                $('#' + resultBox + ' .adres').text("Geen adres gevonden");
                                $('#' + resultBox + ' .stad').text('controleer postcode en huissnummer');
                                if ($('.connections') != null && $('.connections')[0] != null) {
                                    $('.connections')[0].style.display = 'inline';
                                    $('#onlyBothConnections')[0].style.display = 'none';

                                }
                            }
                        }
                        else {
                            $("#" + resultBox).css('display', 'block');
                            $('#' + resultBox + ' .adres').text("Geen adres gevonden");
                            $('#' + resultBox + ' .stad').text('controleer postcode en huissnummer');
                            if ($('.connections') != null && $('.connections')[0] != null) {
                                $('.connections')[0].style.display = 'inline';
                                $('#onlyBothConnections')[0].style.display = 'none';
                            }
                        }

                    }

                });
            }
        }
    });
    $('.lookupAddress').blur();
});

