add_block(new Block("Upload", $this->build_upload_block(), "left", 20));
	}
	public function display_full(Page $page) {
		$page->add_block(new Block("Upload", "Disk nearly full, uploads disabled", "left", 20));
	}
	public function display_page(Page $page) {
		global $config, $page;
		
		$tl_enabled = ($config->get_string("transload_engine", "none") != "none");
		// Uploader 2.0!
		$upload_list = "";
		$upload_count = $config->get_int('upload_count');
		
		
		for($i=0; $i<$upload_count; $i++) {
			$a=$i+1;
			$s=$i-1;
			
			if(!$i==0){
				$upload_list .="
";
			}else{
				$upload_list .= " ";
			}
			
			$upload_list .= "";
					
			if($i==0){
				$js = 'javascript:$(function() {
					$("#row'.$a.'").show();
					$("#hide'.$i.'").hide();
					$("#hide'.$a.'").show();});';
				
				$upload_list .= " ";
			} else {
				$js = 'javascript:$(function() {
				$("#row'.$i.'").hide();
				$("#hide'.$i.'").hide();
				$("#hide'.$s.'").show();
				$("#data'.$i.'").val("");
				$("#url'.$i.'").val("");
				});';
				
				$upload_list .="
				".
				" ";
				
				if($a == $upload_count){
					$upload_list .="
";
				}else{
					$js1 = 'javascript:$(function() {
						$("#row'.$a.'").show();
						$("#hide'.$i.'").hide();
						$("#hide'.$a.'").show(); });';
						
					$upload_list .=
					"
".
					" ";
				}
				$upload_list .= "
 ";
			}
					
			$js2 = 'javascript:$(function() {
						$("#url'.$i.'").hide();
						$("#url'.$i.'").val("");
						$("#data'.$i.'").show(); });';
			$upload_list .=
			"
				
					 ";
			} else {
				$upload_list .= "
				 
			";
		}
		
		$max_size = $config->get_int('upload_size');
		$max_kb = to_shorthand_int($max_size);
		$html = "
			".make_form(make_link("upload"), "POST", $multipart=True, 'file_upload')."
				
			
			(Max file size is $max_kb) 
		";
		
		if($tl_enabled) {
			$html .= $this->h_bookmarklets();
		}
		$page->set_title("Upload");
		$page->set_heading("Upload");
		$page->add_block(new NavBlock());
		$page->add_block(new Block("Upload", $html, "main", 20));
	}
	protected function h_bookmarklets() {
		global $config;
		$link = make_http(make_link("upload"));
		$main_page = make_http(make_link());
		$title = $config->get_string('title');
		$max_size = $config->get_int('upload_size');
		$max_kb = to_shorthand_int($max_size);
		$delimiter = $config->get_bool('nice_urls') ? '?' : '&';
		$html = '';
		$js='javascript:(
			function() {
				if(typeof window=="undefined" || !window.location || window.location.href=="about:blank") {
					window.location = "'. $main_page .'";
				}
				else if(typeof document=="undefined" || !document.body) {
					window.location = "'. $main_page .'?url="+encodeURIComponent(window.location.href);
				}
				else if(window.location.href.match("\/\/'. $_SERVER["HTTP_HOST"] .'.*")) {
					alert("You are already at '. $title .'!");
				}
				else {
					var tags = prompt("Please enter tags", "tagme");
					if(tags != "" && tags != null) {
						var link = "'. $link . $delimiter .'url="+location.href+"&tags="+tags;
						var w = window.open(link, "_blank");
					}
				}
			}
		)();';
		$html .= 'Upload to '.$title.' ';
		$html .= ' (Drag & drop onto your bookmarks toolbar, then click when looking at an image)';
		// Bookmarklet checks if shimmie supports ext. If not, won't upload to site/shows alert saying not supported.
		$supported_ext = "jpg jpeg gif png";
		if(file_exists("ext/handle_flash")){$supported_ext .= " swf";}
		if(file_exists("ext/handle_ico")){$supported_ext .= " ico ani cur";}
		if(file_exists("ext/handle_mp3")){$supported_ext .= " mp3";}
		if(file_exists("ext/handle_svg")){$supported_ext .= " svg";}
		$title = "Booru to " . $config->get_string('title');
		// CA=0: Ask to use current or new tags | CA=1: Always use current tags | CA=2: Always use new tags
		$html .= '
'. $title . '  (Click when looking at an image page. Works on sites running Shimmie/Danbooru/Gelbooru. (This also grabs the tags/rating/source!))';
		return $html;
	}
	/* only allows 1 file to be uploaded - for replacing another image file */
	public function display_replace_page(Page $page, /*int*/ $image_id) {
		global $config, $page;
		$tl_enabled = ($config->get_string("transload_engine", "none") != "none");
		$js2 = 'javascript:$(function() {
			$("#data").hide();
			$("#data").val("");
			$("#url").show(); });';
		$js1 = 'javascript:$(function() {
			$("#url").hide();
			$("#url").val("");
			$("#data").show(); });';
		$upload_list = '';
		$upload_list .= "
				
					
				Replacing Image ID ".$image_id."
"
				.$thumbnail."(Max file size is $max_kb) 
		";
		$page->set_title("Replace Image");
		$page->set_heading("Replace Image");
		$page->add_block(new NavBlock());
		$page->add_block(new Block("Upload Replacement Image", $html, "main", 20));
	}
	
	public function display_upload_status(Page $page, /*bool*/ $ok) {
		if($ok) {
			$page->set_mode("redirect");
			$page->set_redirect(make_link());
		}
		else {
			$page->set_title("Upload Status");
			$page->set_heading("Upload Status");
			$page->add_block(new NavBlock());
		}
	}
	public function display_upload_error(Page $page, /*string*/ $title, /*string*/ $message) {
		$page->add_block(new Block($title, $message));
	}
	protected function build_upload_block() {
		global $config;
		$upload_list = "";
		$upload_count = $config->get_int('upload_count');
		
		for($i=0; $i<$upload_count; $i++) {
			if($i == 0) $style = ""; // "style='display:visible'";
			else $style = "style='display:none'";
			$upload_list .= "