$(document).ready(function(){
    // ставит флаг Все и флаги в группах, 
    // в которых нет ни одного выделенного флага
    // ставит флаг Все в группе, где выбраны все флаги
    var groups = ["gr", "pr", "st"];
    jQuery.each(groups, function() {
        var ch_all = true; // выделены все
        var ch_none = true; // не выделено ни одной
        $("."+this).each(function(i) {
            ch = $(this).is(':checked');
            if (!ch) { ch_all = false; }
            if (ch) { ch_none = false; }
        });
        if (ch_all) {
            $("#all_"+this).attr('checked', true);
        }
        if (ch_none) {
            $("#all_"+this).attr('checked', true);
            $("."+this).attr('checked', true);
        }
    });
    // распростаняет выделение флага Все на флаги группы
    $(".all").click(function(e) {
        var id = $(this).attr("id");
        var ch = $(this).is(':checked');
        var cl = id.split("_")[1];
        $("."+cl).attr('checked', ch);
    });
    // снимает флак Все при клике на флаги группы
    $(".gr").click(function(e) {
        $("#all_gr").attr('checked', false);
    });
    $(".pr").click(function(e) {
        $("#all_pr").attr('checked', false);
    });
    $(".st").click(function(e) {
        $("#all_st").attr('checked', false);
    });
    // распростаняет выделение родительского флага на дочерние
    $(".parent").click(function(e) {
        var id = $(this).attr("id");
        var ch = $(this).is(':checked');
        $(".parent_"+id).attr('checked', ch);
    });
    // убирает выделение с родителя при клике по дочернему флагу
    $(".child").click(function(e) {
        var cl = $(this).attr("class").split(" ");
        var startswith = "parent_";
        var parent_id = "";
        jQuery.each(cl, function() {
            if (this.substr(0, startswith.length) === startswith) {
                parent_id = this.substr(startswith.length, this.length);
            }
        });
        $("#"+parent_id).attr('checked', false);
    });
    
    /* переписать на основе popup 
    $(".dialog").corner("15px");
    $(".close_dialog").click(function(){
        $(".dialog").hide();
    });
    */
    
    $("a.toggle_auth_dialog").click(function(){
        $("#auth_dialog").toggle();
        return false;
    });
    $(".toggle_cart_print").click(function(){
        $("#cart_print").toggle();
    });
    
    $(".close_popup").click(function(){
        $(".popup").hide();
    });

    $("#paramform select").change(function(){
        $("#paramform").submit();
    });

});

