function remove_next_block(element_id) {
    var element = $('#' + element_id);
    if (!element.size() || !element.children().size()) {
        return;
    }
    //element.replaceWith(get_empty_placeholder(element_id));
    var next_element_id = get_next_element_id(element_id);
    remove_next_block(next_element_id);
    element.fadeOut(function() { $(this).html('')});
}

function create_next_block(root_id, element_id, selected_id) {
    $.log.debug('category selector id: ' + element_id);
    $.get('/xhr/block_selector/' + root_id + '/', { selected_id: selected_id || '' }, function(data) { 
        remove_next_block(element_id);
        var element = $('#' + element_id);
        $.log.debug('data: ' + data);
        if (!$.trim(data)) {
            return;
        }
        if (element.html()) {
            element.replaceWith(data);
        } else {
            element.replaceWith(data);
            var element = $('#' + element_id);
            element.hide().fadeIn();
        }
        update_sys_path_display();
        var next_element_id = get_next_element_id(element_id);
    })
}

function get_next_element_id(element_id) {
    // it is made for quick presentation for client
    // TODO: make it proper
    var start_part = element_id.replace(/\d+/g, '');
    var elements = element_id.split('_');
    var tail = elements[elements.length - 1];
    tail = (parseInt(tail) + 1).toString();
    var next_element_id = start_part + tail;
    return next_element_id;
}

function get_empty_placeholder(element_id) {
    return $('<select style="width: 200px" size="10" id="' + element_id + '"></select>');
}

function update_sys_path_display() {
    var path = '';
    $('.selector_block > option:selected').each(function() {
        path += $(this).text();
    });
    $('#category_selector_sys_path').text(path);
}

function update_hidden_value(element_id, value) {
    var element = $('#' + element_id);
    if (element.size()) {
        $('#' + element_id).val(value);
    }
}

