ctk_video_gallery = function(gallery_element_id) {

    var self = this;

    var privacy_level_ids = new Array();
    var make_friends_only_ids = new Array();
    var make_public_ids = new Array();
    var make_private_ids = new Array();
    var privacy_level_cache = new Array();

    function show(video_id, id_list, b) {
        var id;
        if (id = id_list[video_id]) {
            get_object(id).style.display = b ? 'block' : 'none';
        }
    }

    this.init = function() {}

    this.add_make_friends_only_action_link =
        function (video_id, make_friends_only_id) {
            make_friends_only_ids[video_id] = make_friends_only_id;
        };

    this.add_make_public_action_link =
        function (video_id, make_public_id) {
            make_public_ids[video_id] = make_public_id;
        };

    this.add_make_private_action_link =
        function (video_id, id) {
            make_private_ids[video_id] = id;
        };

    this.set_privacy_level = function (video_id, privacy_level) {
        if (privacy_level == 'friends_only') {
            remove_css_class(video_id, 'public');
            remove_css_class(video_id, 'private');
            show(video_id, make_friends_only_ids, false);
            show(video_id, make_public_ids, true);
            show(video_id, make_private_ids, true);
        }
        else if (privacy_level == 'public') {
            remove_css_class(video_id, 'friends_only');
            remove_css_class(video_id, 'private');
            show(video_id, make_friends_only_ids, true);
            show(video_id, make_public_ids, false);
            show(video_id, make_private_ids, true);
        }
        else if (privacy_level == 'private') {
            remove_css_class(video_id, 'friends_only');
            remove_css_class(video_id, 'public');
            show(video_id, make_friends_only_ids, true);
            show(video_id, make_public_ids, true);
            show(video_id, make_private_ids, false);
        }
        add_css_class(video_id, privacy_level);
        privacy_level_cache[video_id] = privacy_level;
    };
}
