page_matches("bulk_remove") && $user->can(Permissions::BULK_ADD) && $user->check_auth_token()) {
            if ($event->get_arg(0) == "confirm") {
                $this->do_bulk_remove();
            } else {
                $this->show_confirm();
            }
        }
    }
    public function onAdminBuilding(AdminBuildingEvent $event)
    {
        global $page;
        $html = "Be extremely careful when using this!
                    Once an image is removed there is no way to recover it so it is recommended that
                    you first take when removing a large amount of images.
                    Note: Entering both an ID range and tags will only remove images between the given ID's that have the given tags.
			
".make_form(make_link("bulk_remove"))."
                            
			
		";
        $page->add_block(new Block("Bulk Remove", $html));
    }
    // returns a list of images to be removed
    private function determine_images()
    {
        // set vars
        $images_for_removal = [];
        $error = "";
        $min_id = $_POST['remove_id_min'];
        $max_id = $_POST['remove_id_max'];
        $tags = $_POST['remove_tags'];
        // if using id range to remove (comined removal with tags)
        if ($min_id != "" && $max_id != "") {
            // error if values are not correctly entered
            if (!is_numeric($min_id) || !is_numeric($max_id) ||
                intval($max_id) < intval($min_id)) {
                $error = "Values not correctly entered for removal between id.";
            } else { // if min & max id are valid
                // Grab the list of images & place it in the removing array
                foreach (Image::find_images(intval($min_id), intval($max_id)) as $image) {
                    array_push($images_for_removal, $image);
                }
            }
        }
        // refine previous results or create results from tags
        if ($tags != "") {
            $tags_arr = explode(" ", $_POST['remove_tags']);
            // Search all images with the specified tags & add to list
            foreach (Image::find_images(1, 2147483647, $tags_arr) as $image) {
                array_push($images_for_removal, $image);
            }
        }
        // if no images were found with the given info
        if (count($images_for_removal) == 0) {
            $error = "No images selected for removal";
        }
        //var_dump($tags_arr);
        return [
                "error" => $error,
                "images_for_removal" => $images_for_removal];
    }
    // displays confirmation to admin before removal
    private function show_confirm()
    {
        global $page;
        // set vars
        $determined_imgs = $this->determine_images();
        $error = $determined_imgs["error"];
        $images_for_removal = $determined_imgs["images_for_removal"];
        // if there was an error in determine_images()
        if ($error != "") {
            $page->add_block(new Block("Cannot remove images", $error));
            return;
        }
        // generates the image array & places it in $_POST["bulk_remove_images"]
        $_POST["bulk_remove_images"] = $images_for_removal;
        // Display confirmation message
        $html = make_form(make_link("bulk_remove")).
                    "Are you sure you want to PERMANENTLY remove ".
                    count($images_for_removal) ." images?
";
        $page->add_block(new Block("Confirm Removal", $html));
    }
    private function do_bulk_remove()
    {
        global $page;
        // display error if user didn't go through admin board
        if (!isset($_POST["bulk_remove_images"])) {
            $page->add_block(new Block(
                "Bulk Remove Error",
                "Please use Board Admin to use bulk remove."
                ));
        }
        //
        $image_arr = $_POST["bulk_remove_images"];
    }
}