(function() {
    function estateInquiry(options) {
        var getEstateIds = options['getEstateIds'] || {};
        var url = options['url'];

        function openInquiry() {
            var ids = getEstateIds();
            if (Object.isArray(ids) && ids.length == 0) {
                alert('投資物件がチェックされていません');
                return;
            }
            var queryString = [ids].flatten().map(function(id) {
                return "estate_ids[]=" + id;
            }).join('&');
            windowOpen(url + '?' + queryString, 'estate_inquiry', 'width=850,height=900,scrollbars=yes');
        }

        return {
            openInquiry: openInquiry
        };
    }

    window.multiEstateInquiry = function(url, container, buttons) {
        function checkedEstateIds() {
            return container.select('input[type="checkbox"]:checked').map(function(check) {
                return check.id.match(/estate_(\d+)/)[1];
            });
        }
        var a = estateInquiry({
            url: url,
            getEstateIds: checkedEstateIds
        });
        [buttons].flatten().each(function(button) {
            $(button).observe('click', a.openInquiry);
        });
    }

    window.singleEstateInquiry = function(url, container) {
        container.select('a').each(function(link) {
            var match = link.id.match(/inquiry.?_(\d+)/);
            if (!match) {
                return;
            }
            var a = estateInquiry({
                url: url,
                getEstateIds: function() {
                    return match[1];
                }
            });
            link.observe('click', a.openInquiry);
        });
    }
})();
