var listLoadingContent = '<option>Cargando...</option>';

var blockSearch = 0;

function runSearch() {
    if(blockSearch <= 0)
        $('#search-form').submit();
    else
        alert('Por favor espere un momento.');
    
}

function operationsChange() {
    data = $('#search-form').serialize();
    loadPropertyTypes(data);
    loadAllLocations(data);
}

function propertyTypesChange() {
    data = $('#search-form').serialize();
    loadAllLocations(data);
}

function locationChange(level) {
    // remove all selects over the currently selected is zeroed
    if($('location' + level).val() == 0) {
        l = 1;
        $('.location-select').each(function(element){
            if(l > level)
                $('#location-row-' + l).remove();
            l++
        });
    } else {
        data = $('#search-form').serialize();
        loadAllLocations(data);
        loadPropertyTypes(data);
    }
}

function loadPropertyTypes(data) {
    $('#property-type').html(listLoadingContent);
    blockSearch++;
    $.ajax({
        url: '/ajax/search.php?op=getPropertyTypes',
        dataType: 'html',
        data: data,
        type: 'POST',
        success: function(data) {
            $('#property-type').html(data);
            blockSearch--;
        },
    });    
}

function loadAllLocations(data) {
    $('.location-select').html(listLoadingContent);
    blockSearch++;
    $.ajax({
        url: '/ajax/search.php?op=getAllLocations',
        dataType: 'json',
        data: data,
        type: 'POST',
        success: function(data) {
            var maxLevel = 0;
            $.each(data, function(level, value){
                if($('#location' + level).html() != null)
                    $('#location' + level).parent().html(value);
                else
                    if($('#location-row-' + (level - 1)).html() != null)
                        $('<tr id="location-row-' + level + '"><td>&nbsp;</td><td><div class="form_field">' +
                            value + '</div></td></tr>').insertAfter($('#location-row-' + (level - 1)));
                    else
                        $('<tr id="location-row-' + level + '"><td>En:</td><td><div class="form_field">' +
                            value + '</div></td></tr>').insertAfter($('#property-type-row'));
                        
                maxLevel++;
            });
                                     
            if(maxLevel < $('.location-select').length) {
                var level = 1;
                $('.location-select').each(function(element){
                    if(level > maxLevel)
                        $('#location-row-' + level).remove();
                    level++
                });
            }
            blockSearch--;
        },
    });
}

