<?php

class PixelFileHandlerTheme extends Themelet {
	public function display_image(Page $page, Image $image) {
		global $config;

		$ilink = $image->get_image_link();
		$html = "<img id='main_image' src='$ilink'>";
		if($config->get_bool("image_show_meta")) {
			# FIXME: only read from jpegs?
			$exif = @exif_read_data($image->get_image_filename(), 0, true);
			if($exif) {
				$head = "";
				foreach ($exif as $key => $section) {
					foreach ($section as $name => $val) {
						if($key == "IFD0") {
							$head .= html_escape("$name: $val")."<br>\n";
						}
					}
				}
				if($head) {
					$page->add_block(new Block("EXIF Info", $head, "left"));
				}
			}
		}

		$zoom_default = $config->get_bool("image_zoom", false) ? "scale(img);" : "";
		$zoom = "<script type=\"text/javascript\">
					img = document.getElementById(\"main_image\");
					
					if(img) {
						img.onclick = function() {scale(img);};
					
						msg_div = document.createElement(\"div\");
						msg_div.id = \"msg_div\";
						msg_div.appendChild(document.createTextNode(\"Note: Image has been scaled to fit the screen; click to enlarge\"));
						msg_div.style.display=\"none\";
						img.parentNode.insertBefore(msg_div, img);
					
						orig_width = $image->width;
					
						$zoom_default
					}
					
					function scale(img) {
						if(orig_width >= img.parentNode.clientWidth * 0.9) {
							if(img.style.width != \"90%\") {
								img.style.width = \"90%\";
								msg_div.style.display = \"block\";
							}
							else {
								img.style.width = orig_width + 'px';
								msg_div.style.display = \"none\";
							}
						}
					}
				</script>";
		
		$page->add_block(new Block("Image", $html.$zoom, "main", 0));
	}
}
?>