$("select.chooseFeature").live("change", function(){
    updateAttrOrFeats(this.name,$(this).val(), '.chooseFeature', "f_by_f");
    updateAttrOrFeats(this.name,$(this).val(), '.chooseAttr', "a_by_f");
    updateColorsBy(this.name,$(this).val(),"c_by_f");
});

$("select.chooseAttr").live("change", function(){
    updateAttrOrFeats(this.name,$(this).val(), '.chooseFeature', "f_by_a");
    updateAttrOrFeats(this.name,$(this).val(), '.chooseAttr', "a_by_a");
    updateColorsBy(this.name,$(this).val(),"c_by_a");
});

$(".color_pick").live("click", function(){
   var colorName = $(this).attr('title');
   var select = $('#colorSelect');
   $(this).fadeOut('slow');
   select.val(colorName);
   $(this).fadeIn('slow');
   updateAttrOrFeats('attr['+id_color_attr+']', colorName, '.chooseFeature', "f_by_a");
   updateAttrOrFeats('attr['+id_color_attr+']', colorName, '.chooseAttr', "a_by_a");
});

function updateColorsBy(name, val, mode)
{
    $.ajax({
        type: "POST",
        url: base_url +"/modules/advancedsearch/ajax.php",
        data: {mode: mode, cat_id : current_cat, name: name, val : val, name2 : 'attr['+id_color_attr+']', id_lang : id_lang},
        dataType: "html",
        success: function(data) {
            $('#searcherColors').fadeOut(300);
            $('#color_picker').html(data);
            if (data != '') $('#searcherColors').fadeIn(300);
        }
    });
}

function updateColors(cat_id)
{
    $.ajax({
        type: "POST",
        url: base_url +"/modules/advancedsearch/ajax.php",
        data: {mode: "colors_by_cats", id: cat_id, id_group : id_color_attr, id_lang : id_lang},
        success: function(data) {
            $('#searcherColors').hide(0);
            $('#color_picker').html(data);
            if (data != '') $('#searcherColors').slideDown(100);
        }
    });
}

function updateAttrOrFeats(name, val, classs, mode)
{
    $(classs).each(function(){
        if ($(this).val() == 0)
        {
            var elem = $(this);
            $.ajax({
                type: "POST",
                url: base_url +"/modules/advancedsearch/ajax.php",
                data: {mode: mode, cat_id : current_cat, name: name, val : val, name2 : elem.attr('name'), id_lang : id_lang},
                dataType: "html",
                success: function(data) {
                    elem.html(data);
                }
            });
        }
    });
}

function updateRanges( cat_id ) {
    $.ajax({
        url: base_url +"/modules/advancedsearch/ajax.php",
        data: {mode: "ranges_form_cat", id: cat_id},
        type: "POST",
        success: function(data) {
            data = data.split(",");
            data[0] = parseInt(data[0]);
            data[1] = parseInt(data[1]);
            data[2] = parseInt(data[2]);
            data[3] = parseInt(data[3]);

            $("#slider-weight").slider({
                min: data[2],
                max: data[3],
                values : [data[2],data[3]]
            });
            $( "#amount-weight" ).val( $( "#slider-weight" ).slider( "values", 0 ) +
                " - " + $( "#slider-weight" ).slider( "values", 1 ) );


            $( "#slider-price" ).slider( "option", "min", data[0] );
            $( "#slider-price" ).slider( "option", "max", data[1] );
            $( "#slider-price" ).slider( "option", "values", [data[0],data[1]] );
            $( "#amount-price" ).val( $( "#slider-price" ).slider( "values", 0 ) +
                " zł - " + $( "#slider-price" ).slider( "values", 1 ) + ' zł');          
        }
    });
}
                
function updateFeatures ( cat_id ) {
    var featsTable = $('#searchFeatures');
    if (featsTable.length) {
        $.ajax({
            type: "POST",
            url: base_url +"/modules/advancedsearch/ajax.php",
            data: {mode: "features", id: cat_id},
            dataType: "html",
            success: function(data) {
                $('#searcherFeatsDIV').hide(0);
                $('#searcherFeatsDIV').hide(0);
                featsTable.html(data);
                if (data != '') $('#searcherFeatsDIV').slideDown(100);
            }
        });
    }
}

function updateAtts(cat_id)
{
    var featsTable = $('#searchAttrs');
    if (featsTable.length) {
        $.ajax({
            type: "POST",
            url: base_url +"/modules/advancedsearch/ajax.php",
            data: {mode: "attrs", id: cat_id},
            dataType: "html",
            success: function(data) {
                $('#searcherAttrsDIV').hide(0);
                featsTable.html("").append(data);
                if (data != '') $('#searcherAttrsDIV').slideDown(100);
            }
        });
    }
}

function updateProducers(cat_id)
{
    $.ajax({
        type: "POST",
        url: base_url +"/modules/advancedsearch/ajax.php",
        data: {mode: "manus", id: cat_id},
        success: function(data) {
            $('#searchFormManusDiv').hide(0);
            $('#searchFormManusDiv').html(data);
            if (data != '') $('#searchFormManusDiv').slideDown(100);
        }
    });
}

function get_sub_categories(sender, level) {
    if (sender.value < 1)
    {
        return;
    }

    if ($("#searcherCategoryDiv_"+(level+1)).length) {
        $("#searcherCategoryDiv_"+(level+1)).html("");
        $.ajax({
            type: "POST",
            url: base_url +"/modules/advancedsearch/ajax.php",
            data: {mode: "sub_cats_change", id: sender.value, lvl : level},
            beforeSend: function( xhr ) {
                $("#searcherCategoryDiv_"+(level+1)).append('<div id="loader" style="text-align:center;"><img src="modules/advancedsearch/ajax-loader.gif" /></div>');
            },
            success: function(data) {
                $('#loader').remove();
                $("#searcherCategoryDiv_"+(level+1)).append( data );
                var elements = $('#searcherSubCatsContainer').children().get();
                for (var i=level+2; i<=elements.length; i++) {
                    $("#searcherCategoryDiv_"+i).remove();
                }
            }
        });
    } else {
        $.ajax({
            url: base_url +"/modules/advancedsearch/ajax.php",
            data: {mode: "sub_cats", id: sender.value, lvl : level},
            type: "POST",
            beforeSend: function( xhr ) {
                $("#searcherCategoryDiv_"+(level+1)).append('<div id="loader" style="text-align:center;"><img src="modules/advancedsearch/ajax-loader.gif" /></div>');
            },
            success: function(data) {
                $('#loader').remove();
                $('#searcherSubCatsContainer').append( data );
                
            }
        });
    }
    if (sender.value > 0) {
        current_cat = sender.value;
        updateRanges(sender.value);
        updateFeatures(sender.value);
        updateAtts(sender.value);
        updateProducers(sender.value);
        updateColors(sender.value);
    }
}

$(function()
{
    var catSelect = $("#searcherCategorySelect");
    var subCatsContainer = $('#searcherSubCatsContainer');

    /* Ajax categories
     * searcherCategorySelect - id selector category
     * searcherCategorySelect_[1,2,..] - id selector subcategory
     * searcherCategoryDiv_1 - id subcategory container
     * searcherSubCatsContainer - id subcategories container
     */
    catSelect.change(function()
    {
        var id_load_subcat = catSelect.val();
        subCatsContainer.slideUp(200).html('');
        if (id_load_subcat==0) return;
        $.ajax({
            type: "POST",
            url: base_url +"/modules/advancedsearch/ajax.php",
            data: {mode: "sub_cats", id: id_load_subcat, lvl : 0},
            beforeSend: function( xhr ) {
                subCatsContainer.append('<div id="loader" style="text-align:center;"><img src="modules/advancedsearch/ajax-loader.gif" /></div>');
            },
            success: function(data) {
                $('#loader').remove();
                subCatsContainer.append(data).slideDown(200);
            }
        });
        if (id_load_subcat > 0) {
            current_cat = id_load_subcat;
            updateRanges(id_load_subcat);
            updateFeatures(id_load_subcat);
            updateAtts(id_load_subcat);
            updateProducers(id_load_subcat);
            updateColors(id_load_subcat);
        }
    });


    // open, close form
    var formVisible = true;
    //$("#advancedSearchForm").slideUp(1);
    $('#openAdvancedSearchForm').click(function (){
        if (formVisible) {
            $("#advancedSearchForm").slideUp(300);
            formVisible = false;
        } else {
            $("#advancedSearchForm").slideDown(300);
            formVisible = true;
        }
    });

     $('a#resetImages').click(function() {
        updateColorSelect(0);
    });
});
