* Link: http://seemslegit.com
* License: GPLv2
* Description: A mashup of Default, Danbooru, the interface on qwebirc, and
* 	       some other sites, packaged in a light blue color.
*/
class Layout {
	/**
	 * turns the Page into HTML.
	 *
	 * @param Page $page
	 */
	public function display_page(Page $page) {
		global $config, $user;
		$theme_name = $config->get_string('theme', 'lite');
		$site_name = $config->get_string('title');
		$data_href = get_base_href();
		$contact_link = contact_link();
		$header_html = "";
		ksort($page->html_headers);
		foreach($page->html_headers as $line) {
			$header_html .= "\t\t{$line}\n";
		}
		$menu = "
";
		
		$left_block_html = "";
		$main_block_html = "";
		$sub_block_html  = "";
		$user_block_html = "";
		foreach($page->blocks as $block) {
			switch($block->section) {
				case "left":
					$left_block_html .= $this->block_to_html($block, true, "left");
					break;
				case "main":
					$main_block_html .= $this->block_to_html($block, false, "main");
					break;
				case "user":
					$user_block_html .= $block->body;
					break;
				case "subheading":
					$sub_block_html .= $this->block_to_html($block, false, "main");
					break;
				default:
					print "error: {$block->header} using an unknown section ({$block->section})";
					break;
			}
		}
		$custom_sublinks = "
";
		// hack
		$username = url_escape($user->name);
		// hack
		$qp = explode("/", ltrim(_get_query(), "/"));
		$cs = "";
		// php sucks
		switch($qp[0]) {
			default:
				$cs = $user_block_html;
				break;
			case "":
				# FIXME: this assumes that the front page is
				# post/list; in 99% of case it will either be
				# post/list or home, and in the latter case
				# the subnav links aren't shown, but it would
				# be nice to be correct
			case "post":
				if(class_exists("NumericScore")){
					$cs .= "
Popular by Day/Month/Year ";
				}
				$cs .= "
All";
				if(class_exists("Favorites")){ $cs .= "
My Favorites";}
				if(class_exists("RSS_Images")){ $cs .= "
Feed";}
				if(class_exists("Random_Image")){ $cs .= "
Random Image";}
				if(class_exists("Wiki")){ $cs .= "
Help";
				}else{ $cs .= "
Help";}
				break;
			case "comment":
				$cs .= "
All";
				$cs .= "
Feed";
				$cs .= "
Help";
				break;
			case "pool":
				$cs .= "
List";
				$cs .= "
Create";
				$cs .= "
Changes";
				$cs .= "
Help";
				break;
			case "wiki":
				$cs .= "
Index";
				$cs .= "
Rules";
				$cs .= "
Help";
				break;
			case "tags":
			case "alias":
				$cs .= "
Map";
				$cs .= "
Alphabetic";
				$cs .= "
Popularity";
				$cs .= "
Categories";
				$cs .= "
Aliases";
				$cs .= "
Help";
				break;
			case "upload":
				if(class_exists("Wiki")) { $cs .= "
Guidelines"; }
				break;
			case "random":
				$cs .= "
Shuffle";
				$cs .= "
Download";
				break;
			case "featured":
				$cs .= "
Download";
				break;
		}
		if($cs == "") {
			$custom_sublinks = "";
		} else {
			$custom_sublinks .= "$cs