function populateCategoryFilterSelects(r){
    for (var i=0; i<r.selects.length; i++) {
        populateCfSelect( $("#"+ r.selects[i].id), r.selects[i].options);
    }
}

function populateCfSelect(obj, options)
{
    var selectedIdx = 0;
    var selectedValue = obj.find("option:selected")[0].value;
    var label = obj.find("option")[0].text;
    var allLabel = 'All ';
    if (label.indexOf(allLabel) == 0) {
        label = label.substring(allLabel.length);
    }

    obj.children().remove();

    if (options.length == 1 && selectedValue.length > 0) {
        obj.append('<option value="">' + allLabel + label + '</option>');
    } else {
       obj.append('<option value="">' + label + '</option>');
    }
    for (var i = 0; i<options.length; i++)
    {
        if (selectedIdx==0 && selectedValue.length > 0 && selectedValue == options[i]) {
            selectedIdx = obj.find("option").length;  // getting the count *before* adding the new option
        }
        obj.append('<option value="' + options[i] + '">' + options[i] + '</option>');
    }
    obj[0].selectedIndex=selectedIdx;
}

function categoryFilterUpdate(formData)
{
   $.getJSON("/common/ajax/products/getFilteredCategoryFilters.cn?h=1" + formData, function(r) {
        populateCategoryFilterSelects(r);
    });
}

function showMoreCategoryFilterOptions(show) {
    if (show) {
        $("#categoryFilterForm").find("select").show();
    } else {
        $("#categoryFilterForm").find("select").each(function(idx) {
            if (idx > 2) {
                $(this).hide();
                $(this)[0].selectedIndex=0;
            }
        });
        return  categoryFilterUpdate($("#categoryFilterForm").fastSerializeUrlString());
    }
}

function categoryFilterSubmit(formData)
{
    window.location = "landing.cn?formSubmission=Y&pageNumber=1" + formData;
	return false;
}

$(function() {
    $("select.categoryFilterSelect").change(function() {
        return  categoryFilterUpdate($("#categoryFilterForm").fastSerializeUrlString());    
    });
    $("#categoryFormSubmit").click(function() {
        return  categoryFilterSubmit($("#categoryFilterForm").fastSerializeUrlString()); 
    });
    if ($("#moreCategoryFilterOptions")) {
        $("#moreCategoryFilterOptions").toggle(
            function() { showMoreCategoryFilterOptions(true); },
            function() { showMoreCategoryFilterOptions(false);});
    }
});