function MultipleCheck(control) {
    var $control = $(control);

    control.refreshValue = function() {
        var input = $control.find('.mainInput');
        var value = input.val();

        var checks = new Array();
        var i = 0;
        $control.find('.mainInput').find('input:checkbox').each(function(){
            if(this.checked){
                checks[i] = this.value;
                i++;
            }
        })
        control.setValue(checks);
    };

    $control.find('.mainInput').change(function() {
        control.refreshValue();
    });

    $control.find('.mainInput').find('input:checkbox').keypress(function(e) {
        if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) {
            return;
        } else if (e.keyCode == 13) {
            control.userAcceptKey();
            return;
        } else if (e.keyCode == 27) {
            control.userCancelKey();
            return;
        }
    });
}

$(document).ready(function() {
    $('.FieldControl.MultipleCheck').each(function(){
        MultipleCheck(this);
    });
});
