[gtk-web/gtk-3.0-design: 3/3] Add new PHP website content



commit ba290a7c2e91b2ddf19229fb2a052b641953f09c
Author: Martyn Russell <martyn lanedo com>
Date:   Thu Jun 2 08:49:25 2011 +0100

    Add new PHP website content

 commerce.php                                       |   87 +
 css/browser.css                                    |  179 ++
 css/global.css                                     |  567 +++++++
 development.php                                    |   76 +
 documentation-old.php                              |   42 +
 documentation.php                                  |  165 ++
 download/index.php                                 |   43 +
 download/linux.php                                 |   50 +
 download/macos.php                                 |   11 +
 download/win32.php                                 |  220 +++
 download/win64.php                                 |  212 +++
 features.php                                       |  283 ++++
 gtk-doc/devhelp2.xsd.html                          | 1786 ++++++++++++++++++++
 gtk-doc/download.php                               |   21 +
 gtk-doc/gtkdoc.config.php                          |    9 +
 gtk-doc/index.php                                  |   31 +
 gtk-doc/news.php                                   |  382 +++++
 gtk-doc/requirements.php                           |   30 +
 images/architecture.png                            |  Bin 0 -> 25186 bytes
 images/architecture.svg                            |   69 +
 images/archives.gif                                |  Bin 0 -> 756 bytes
 images/arrows.png                                  |  Bin 0 -> 1951 bytes
 images/atk.png                                     |  Bin 0 -> 1842 bytes
 images/bullet.gif                                  |  Bin 0 -> 145 bytes
 images/cairo.png                                   |  Bin 0 -> 2433 bytes
 images/commerce/platforms/gnome.png                |  Bin 0 -> 4982 bytes
 images/commerce/platforms/maemo.png                |  Bin 0 -> 4468 bytes
 images/download.png                                |  Bin 0 -> 548 bytes
 images/external.png                                |  Bin 0 -> 279 bytes
 images/features/thumbnail-twf.png                  |  Bin 0 -> 42170 bytes
 images/features/twf.png                            |  Bin 0 -> 66137 bytes
 images/glib.png                                    |  Bin 0 -> 644 bytes
 images/gnome-binding.png                           |  Bin 0 -> 650 bytes
 images/gtk-logo.ico                                |  Bin 0 -> 1150 bytes
 images/gtkbg.png                                   |  Bin 0 -> 17378 bytes
 images/gtkbg.svg                                   |  262 +++
 images/header-logo-gtk-doc.png                     |  Bin 0 -> 25194 bytes
 images/header-logo-gtk-doc.svg                     |  394 +++++
 images/header-logo-inset.png                       |  Bin 0 -> 20115 bytes
 images/header-logo-inset.svg                       |  241 +++
 images/header-logo.png                             |  Bin 0 -> 21556 bytes
 images/header-logo.svg                             |  394 +++++
 images/info.png                                    |  Bin 0 -> 827 bytes
 images/link.png                                    |  Bin 0 -> 959 bytes
 images/logo-icon.png                               |  Bin 0 -> 627 bytes
 images/logo-small.png                              |  Bin 0 -> 4258 bytes
 images/logo.png                                    |  Bin 0 -> 8521 bytes
 images/mail.png                                    |  Bin 0 -> 592 bytes
 images/os-linux.png                                |  Bin 0 -> 2527 bytes
 images/os-macos.png                                |  Bin 0 -> 2029 bytes
 images/os-windows.png                              |  Bin 0 -> 2971 bytes
 images/pango.png                                   |  Bin 0 -> 1363 bytes
 images/pdf.png                                     |  Bin 0 -> 525 bytes
 images/progress-complete.png                       |  Bin 0 -> 366 bytes
 images/progress-incomplete.png                     |  Bin 0 -> 242 bytes
 images/progress-pending.png                        |  Bin 0 -> 239 bytes
 images/question.png                                |  Bin 0 -> 706 bytes
 images/screenshots/screenshot-beos.png             |  Bin 0 -> 200940 bytes
 images/screenshots/screenshot-dfb-alpha.png        |  Bin 0 -> 913984 bytes
 images/screenshots/screenshot-gedit-osx.png        |  Bin 0 -> 161410 bytes
 images/screenshots/screenshot-gedit-vista.png      |  Bin 0 -> 311049 bytes
 images/screenshots/screenshot-gimp-linux.jpg       |  Bin 0 -> 725594 bytes
 images/screenshots/screenshot-gimp-mac.jpg         |  Bin 0 -> 173890 bytes
 images/screenshots/screenshot-gimp-windows.jpg     |  Bin 0 -> 279752 bytes
 .../screenshots/screenshot-gimp-windowsvista.png   |  Bin 0 -> 973122 bytes
 images/screenshots/screenshot-gnome-desktop.png    |  Bin 0 -> 791544 bytes
 images/screenshots/screenshot-gnumeric-windows.png |  Bin 0 -> 157304 bytes
 images/screenshots/screenshot-inkscape.png         |  Bin 0 -> 543113 bytes
 images/screenshots/screenshot-maemo.png            |  Bin 0 -> 234502 bytes
 images/screenshots/screenshot-openmoko.png         |  Bin 0 -> 42563 bytes
 images/screenshots/screenshot-vwworkstation.png    |  Bin 0 -> 217835 bytes
 images/screenshots/thumbnail-beos.png              |  Bin 0 -> 34812 bytes
 images/screenshots/thumbnail-dfb-alpha.png         |  Bin 0 -> 45903 bytes
 images/screenshots/thumbnail-gedit-osx.png         |  Bin 0 -> 21494 bytes
 images/screenshots/thumbnail-gedit-vista.png       |  Bin 0 -> 28031 bytes
 images/screenshots/thumbnail-gimp-linux.jpg        |  Bin 0 -> 8511 bytes
 images/screenshots/thumbnail-gimp-mac.jpg          |  Bin 0 -> 6408 bytes
 images/screenshots/thumbnail-gimp-windows.jpg      |  Bin 0 -> 15983 bytes
 images/screenshots/thumbnail-gimp-windowsvista.png |  Bin 0 -> 31937 bytes
 images/screenshots/thumbnail-gnome-desktop.png     |  Bin 0 -> 33657 bytes
 images/screenshots/thumbnail-gnumeric-windows.png  |  Bin 0 -> 21220 bytes
 images/screenshots/thumbnail-inkscape.png          |  Bin 0 -> 29015 bytes
 images/screenshots/thumbnail-maemo.png             |  Bin 0 -> 23908 bytes
 images/screenshots/thumbnail-openmoko.png          |  Bin 0 -> 10116 bytes
 images/screenshots/thumbnail-vwworkstation.png     |  Bin 0 -> 26489 bytes
 images/screenshots/thumbnail-win32-gnumeric.png    |  Bin 0 -> 24964 bytes
 images/x.gif                                       |  Bin 0 -> 49 bytes
 index.php                                          |   65 +
 language-bindings.php                              |  406 +++++
 libs/gtknewsfeedloader.class.php                   |  147 ++
 libs/newsfeed.cache.txt                            |    1 +
 mailing-lists.php                                  |   43 +
 overview.php                                       |   46 +
 screenshots/index.php                              |   89 +
 screenshots/museum.php                             |   26 +
 scripts/easyslider.js                              |  175 ++
 scripts/features_slider.js                         |   57 +
 scripts/jquery-1.4.4.min.js                        |  167 ++
 template.php                                       |  306 ++++
 99 files changed, 7082 insertions(+), 0 deletions(-)
---
diff --git a/commerce.php b/commerce.php
new file mode 100755
index 0000000..7a68be2
--- /dev/null
+++ b/commerce.php
@@ -0,0 +1,87 @@
+<?php
+$nav = "about";
+$title = "GTK+ Success Stories";
+ob_start();
+?>
+<h2>Developers</h2>
+<p>GTK+, the development toolkit for the GNOME desktop and the GIMP image editor, is the choice of thousands of developers worldwide. Developers choose GTK+ for a variety of reasons, from the community that surrounds it to the free-of-charge LGPL licensing it offers. For many, the internationalization support is essential; for others, performance is the most important factor. Some prefer it because they program in C, and others because they program in C++, or Python, or C#. Regardless of the reasons, GTK+ is the finest development toolkit worldwide. This page presents some of the developers who use GTK+ and the reasons they like it.</p>
+
+<h2>Platforms</h2>
+
+<div class="columns">
+	<div class="left">
+		<h3><a href="http://www.maemo.org"; class="external"><img src="images/commerce/platforms/maemo.png" alt="Maemo" /></a></h3>
+		<p>The Maemo platform has been developed for over 2 years now and is the basis for Nokia's N770, N800, and N900 products which have been highly successful.</p>
+	</div>
+	<div class="right">
+		<h3><a href="http://www.gnome.org"; class="external"><img src="images/commerce/platforms/gnome.png" alt="GNOME" /></a></h3>
+		<p>The GNOME platform has been developed for over 10 years now and is used by many people expecting the high grade, clean look and feel for their every day desktop. GNOME delivers that with the power of GTK+ sitting underneath the software stack written on top of it.</p>
+</div>
+</div>
+
+<h2>Applications</h2>
+
+<div class="columns bubbles">
+
+	<div class="left">
+
+		<div class="bubble"><!-- div -->
+			<h3>TouchTunes Music</h3>
+			<p><a href="http://touchtunes.com/"; class="external">TouchTunes Music</a> Corporation sells over a thousand digital jukeboxes a year, each with a GTK+ interface and glib-driven internals. Developer Tristan Van Berkom writes that he prefers GTK+ because <q>I consider myself a perfectionist</q> and that, examining the source, he often says <q>I couldn't have done it better myself</q>.</p>
+		</div>
+
+		<div class="bubble"><!-- div -->
+			<h3>Solvo Ltd</h3>
+			<p>Andrew Makeev, from Solvo, Ltd. of St. Petersburg, Russia, develops warehouse management systems using C++ and gtkmm. He cites several factors in his company's choice of GTK+ as a development toolkit, especially performance and internationalization. He appreciates the extensive documentation, direct access to the development community, and the straightforward object model.</p>
+		</div>
+
+		<div class="bubble"><!-- div -->
+			<h3>Primagraphics</h3>
+			<p>Richard Warren, a senior software engineer for <a href="http://www.primagraphics.com/"; class="external">Primagraphics</a>, says GTK+ has let him ship products <q>on the customer's choice of platform, be it Linux, Solaris or even Windows, with a virtually identical application in each case and very little additional engineering effort on our part</q>. He also has kind words for the GTK+ community: <q>The quality of the libraries and the advice, responsiveness and direct access to the developers available through the mailing lists meant that we have never once regretted</q> choosing GTK+ as a development platform.</p>
+		</div>
+
+		<div class="bubble"><!-- div -->
+			<h3>NorayBio</h3>
+			<p>Miguel Pignatelli, a senior scientist at the Bilbao, Spain bioinformatics company <a href="http://www.noraybio.com/"; class="external">NorayBio</a>, uses GTK+ in the development of software that predicts protein folding patterns. Although they initially selected GTK+ because they were writing in C, the NorayBio developers have grown to appreciate the way that provides access to both high and low levels of graphical programming and inter-process communications.</p>
+		</div>
+
+		<div class="bubble"><!-- div -->
+			<h3>London National Gallery</h3>
+			<p>The <a href="http://www.nationalgallery.org.uk/"; class="external">London National Gallery</a> uses GTK+ for its image-processing system, <a href="http://www.vips.ecs.soton.ac.uk/"; class="external">VIPS</a>. VIPS is in use on Windows and Linux systems as part of the <a href="http://www.ecs.soton.ac.uk/~km/projs/vasari/"; class="external">Vasari</a> image archiving project, cataloging and storing extremely high resolution digital images of art work for museums worldwide. Developer John Cupitt says that the Gallery's reasons for choosing GTK+ were portability, support, and appearance.</p>
+		</div>
+
+		<div class="bubble"><!-- div -->
+			<h3>University of Ljubljana</h3>
+			<p>Andrej Prsa, research scientist in the Physics department at the University of Ljubljana, is using GTK+ in his work on <a href="http://www.fiz.uni-lj.si/phoebe"; class="external">eclipse patterns in binary star systems</a>. He chose GTK+ for its licensing and because of the ubiquity of Linux software in astrophysics.</p>
+		</div>
+
+	</div>
+	<div class="right">
+
+		<div class="bubble"><!-- div -->
+			<h3>SendOutCards</h3>
+			<p>Developers at <a href="http://sendoutcards.com/"; class="external">sendoutcards.com</a> use GTK+ and gtkmm to develop internal applications that allow end users to perform specialized technical tasks easily. Developer Adam Olsen says he selected GTK+ for its licensing and its cross-platform portability. Additional features he appreciates are the ease of development: with libglade, he says, <q>I really like that I can tweak the interface without having to recompile</q>.</p>
+		</div>
+
+		<div class="bubble"><!-- div -->
+			<h3>Linux Audio Systems</h3>
+			<p><a href="http://linuxaudiosystems.com/"; class="external">Linux Audio Systems</a>, a small music and pro-audio software company, uses GTK+ for all of its GUI-based software. Linux Audio Systems programs in C++, and was attracted by the way that the gtkmm wrappers use standard C++ and the Standard Template Library. They also appreciate the availability of a model/view/controller structure in GTK+. The canvas, in particular, has been crucial in their work, and has been extended for the main GUI object in the Ardour digital audio workstation. Developer Paul Davis says <q>the ease of new widget creation with gtkmm and the simplicity of creating new Canvas items have been highlights for us</q>. In addition, <q>the presence of a very helpful and knowledgeable user community on the GTK+ mailing lists has been another very useful feature of the toolkit for us</q>. Finally, GTK+ offered a better cost structure: the choice of the LGPL means that Linux Audio Systems has no licensi
 ng fees to pay for the toolkit.</p>
+		</div>
+
+		<div class="bubble"><!-- div -->
+			<h3>EPIC Technology</h3>
+			<p>Roger Leigh, a developer at the UK company EPIC Technology, uses GTK+ and gtkmm to develop point of sale systems. He says <q>I had no problem persuading my boss to use it, since so many high quality applications have been written with it</q>. Leigh particularly appreciates the GObject object system, the separation of functionality into distinct libraries, the emphasis on standards, and the integration with the C++ Standard Library. GUI design in GTK+ is excellent, he says: <q>I tried out Java/Swing a while back, and it didn't even come close to GTK+ in terms of ease of interface design using Glade</q>.</p>
+		</div>
+
+		<div class="bubble"><!-- div -->
+			<h3>BMA Coal, Australia</h3>
+			<p>Kim Adil, at BMA Coal in Australia, used GTK+ to build a cross-platform mining process visualization tool for the mine control room. Developed on Linux and deployed on Windows 2000, the application displays near-real-time equipment location and status for the mine's heavy equipment. It has been so successful that it runs not only in the control room, but on a plasma display at the entrance to the BMA office. BMA Coal selected GTK+ for its licensing, cross-platform ability, and range of features. Adil, a mechanical engineer by with little previous software development experience, says <q>cross platform stability has been quite astounding,</q> and that the GTK+ community and mailing lists were significant factors in the project's success.</p>
+		</div>
+
+	</div>
+</div>
+
+<h2>Community Applications</h2>
+<p>For some time now, free applications which use GTK+ have been listed on the <a href="http://www.gtkfiles.org/"; class="external">gtkfiles.org</a> website. This is great for finding out about new releases and searching for applications by category which use the same desktop environment (i.e. GTK+ and GNOME).</p>
+
+<?php require 'template.php';
diff --git a/css/browser.css b/css/browser.css
new file mode 100644
index 0000000..23c4d1d
--- /dev/null
+++ b/css/browser.css
@@ -0,0 +1,179 @@
+ charset "utf-8";
+
+pre::selection {
+	background: #FFF;
+	color: #000;
+}
+
+pre::-moz-selection {
+	background: #FFF;
+	color: #000;
+}
+
+#container {
+	-moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
+	-webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
+	box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
+	-moz-border-radius: 25px 25px 16px 16px;
+	-webkit-border-radius: 25px 25px 16px 16px;
+	border-radius: 25px 25px 16px 16px;
+}
+
+.sidebar {
+	-moz-border-radius: 1em;
+	-webkit-border-radius: 1em;
+	border-radius: 1em;
+}
+
+#footer {
+	-moz-border-radius: 0 0 16px 16px;
+	-webkit-border-bottom-left-radius: 16px;
+	-webkit-border-bottom-right-radius: 16px;
+	border-radius: 0 0 16px 16px;
+}
+
+.bubble {
+	-moz-border-radius: 1em;
+	-webkit-border-radius: 1em;
+	border-radius: 1em;
+}
+
+.gallery li {
+	display: -moz-inline-stack;
+}
+
+/*.gallery img {
+	-moz-box-shadow: 2px 2px 8px #000;
+	-webkit-box-shadow: 2px 2px 8px #000;
+	box-shadow: 2px 2px 8px #000;
+}*/
+
+.newsfeed li {
+	background-color: #EEE;
+	-webkit-transition: background-color 100ms linear;
+	-moz-transition: background-color 100ms linear;
+	-o-transition: background-color 100ms linear;
+	-moz-border-radius: 6px;
+	-webkit-border-radius: 6px;
+	border-radius: 6px;
+	word-wrap: break-word;
+}
+.newsfeed .date {
+	-webkit-transition: color 100ms linear;
+}
+.newsfeed .time, .newsfeed_buttons {
+	text-shadow: #FFF 1px 1px 0;
+}
+
+
+/* When theres not enough space to show all the content with the regular layout */
+ media handheld, screen and (max-width: 900px), screen and (max-device-width: 900px) {
+
+	html {
+		background-image: none;
+	}
+
+	#container {
+		width: auto;
+		-moz-box-shadow: none;
+		-webkit-box-shadow: none;
+		box-shadow: none;
+		-moz-border-radius: 0;
+		-webkit-border-radius: 0;
+		border-radius: 0;
+	}
+	#header {
+		margin: 0;
+	}
+	#footer {
+		margin: 0;
+		-moz-border-radius: 0;
+		-webkit-border-radius: 0;
+		border-radius: 0;
+	}
+
+	.left {
+		width: auto;
+		float: none;
+	}
+
+	.right {
+		margin-left: 0;
+		padding-left: 0;
+	}
+
+	.gallery ul {
+		width: auto;
+	}
+
+	.bubble {
+		background-color: transparent;
+		padding: 0;
+		margin: 0;
+	}
+
+}
+
+/* When theres not enough space to use a columed/sidebar layout */
+ media handheld, screen and (max-width: 650px), screen and (max-device-width: 650px) {
+
+	#globalnav {
+		display: none;
+	}
+
+	#header {
+		background-image: url(../images/logo-small.png) !important;
+		background-repeat: no-repeat;
+		background-position: 8px center;
+		background-color: #598DC5;
+		height: auto;
+		min-height: 83px;
+		text-align: left;
+	}
+
+	#header h1 {
+		position: static;
+		color: #FFF;
+		font-size: 59px;
+		padding: 19px 0;
+		margin: 0;
+		margin-left: 78px;
+		font-weight: normal !important;
+		line-height: 1em;
+		width: auto;
+		text-shadow: #555 -1px -1px 2px;
+	}
+
+	.sidebar {
+		float: none;
+		width: auto;
+		margin-left: 0;
+		background-color: transparent;
+		padding: 0;
+	}
+
+	.sidebar h2 {
+		font-size: 1.5em;
+		margin-bottom: .75em;
+	}
+	.sidebar h3 {
+		font-size: 1.17em;
+		margin-bottom: .83em;
+	}
+
+	pre {
+		white-space: -pre-wrap;
+		white-space: pre-wrap;
+	}
+
+	img {
+		max-width: 100%;
+	}
+
+	.newsfeed li {
+		background-color: #FFF;
+		padding: 0;
+		margin-bottom: 16px !important;
+	}
+
+}
diff --git a/css/global.css b/css/global.css
new file mode 100644
index 0000000..3012081
--- /dev/null
+++ b/css/global.css
@@ -0,0 +1,567 @@
+ charset "utf-8";
+
+* {
+	margin: 0;
+	padding: 0;
+	outline: 0;
+	font-size: 100%;
+	font-style: inherit;
+	font-family: inherit;
+	font-weight: inherit;
+	vertical-align: baseline;
+}
+
+article,aside,canvas,details,figcaption,figure,
+footer,header,hgroup,menu,nav,section,summary { 
+	display: block;
+}
+
+strong, th, h1, h2, h3, h4, h5, h6, dt { font-weight: bold !important; }
+
+pre {
+	font-family: "Bistream Vera Sans Mono", "DejaVu Sans Mono", monospace;
+	margin-bottom: 16px;
+	padding: 0 8px;
+	font-size: 14px;
+	background-color: #797B76;
+	color: #FFF;
+}
+
+code {
+	font-family: monospace;
+	background-color: #EEE;
+	border: 1px solid #CCC;
+}
+
+a {
+	background-repeat: no-repeat;
+	background-position: center left;
+}
+/*a[href^="http://"],*/ a.external {
+	/* background-image: url("../images/link.png"); This is too heavy design-wise */
+	background-image: url("../images/external.png"); /* Taken from mediawiki */
+	background-position: center right;
+	padding-right: 14px; /* See the part for IE6 to change this */
+}
+/*a[href^="mailto://"],*/ a.email {
+	background-image: url("../images/mail.png");
+	padding-left: 20px; /* See the part for IE6 to change this */
+}
+/*a[href^="mailto://"],*/ a.info {
+	background-image: url("../images/info.png");
+	padding-left: 20px; /* See the part for IE6 to change this */
+}
+/*a[href^="irc://"],*/ a.irc {
+	background-image: url("../images/archives.gif");
+	padding-left: 20px; /* See the part for IE6 to change this */
+}
+/*a[href^="irc://"],*/ a.archives {
+	background-image: url("../images/archives.gif");
+	padding-left: 20px; /* See the part for IE6 to change this */
+}
+/*a[href$=".pdf"]*/ a.pdf {
+	background-image: url("../images/pdf.png");
+	background-position: center left;
+	padding: 0 0 0 20px; /* See the part for IE6 to change this */
+}
+a.download/*, a[href$=".tar.gz"], a[href$=".tar.bz2"], a[href$=".zip"]*/ {
+	background-position: center left;
+	background-image: url("../images/download.png");
+	padding: 0 0 0 20px; /* See the part for IE6 to change this */
+}
+
+a img {
+	border: none;
+}
+
+q {
+	font-style: italic;
+	color: gray;
+}
+
+p { margin-bottom: 1em; }
+h1 {
+	font-size: 2em;
+	margin-bottom: .67em;
+}
+h2 {
+	font-size: 1.5em;
+	margin-bottom: .75em;
+}
+h3 {
+	font-size: 1.17em;
+	margin-bottom: .83em;
+}
+
+a:link, a:visited, h2 {
+	color: #3F79BA /*#3465A4*/;
+	text-decoration: none;
+}
+
+a:link:hover, a:visited:hover {
+	border-bottom: 1px dotted;
+}
+
+a:focus {
+	outline-style: dotted;
+	outline-width: 1px;
+	border-bottom: none !important;
+}
+
+ul {
+	list-style-type: circle;
+}
+
+table {
+	margin-bottom: 32px;
+	border-collapse: collapse;
+	border: 0;
+	margin-top: 8px;
+}
+
+table th {
+	background-color: #FFF;
+	border-bottom: 1px solid #999;
+	text-align: left;
+}
+
+table td, table th {
+	padding-right: 16px;
+	text-align: left;
+	height: auto;
+}
+
+table tr.odd {
+	background: #e4e4e1;
+}
+
+dt {
+	display: inline;
+}
+
+dd {
+	margin-bottom: 16px;
+}
+
+html, body {
+	text-align: center;
+	font-family: "Bitstream Vera Sans", "DejaVu Sans", Charcoal, "Lucida Sans Unicode", "Lucida Sans", "Lucida Grande", Calibri, Helvetica, Arial, sans-serif;
+	font-size: 100%;
+}
+
+html {
+	background-color: #EEE/*#D0D0CB*/;
+	background-image: url("../images/gtkbg.png");
+	background-repeat: no-repeat;
+	background-position: 2% -15px;
+}
+
+#container {
+	width: 900px;
+	margin: 0 auto;
+	font-size: 16px;
+}
+
+#globalnav_wrap {
+	display: block;
+	font-size: 12px;
+	font-weight: bold;
+	text-align: right;
+	background-color: #EEE;
+	border-top: 1px solid #CCC;
+	border-bottom: 1px solid #CCC;
+}
+#globalnav {
+	border: 1px solid #FFF;
+}
+#globalnav span {
+	display: block;
+	float: left;
+	background-image: url(../images/logo-icon.png);
+	background-repeat: no-repeat;
+	background-position: 8px center;
+	padding-left: 32px !important;
+}
+#globalnav span, #globalnav li a {
+	padding: 8px;
+}
+#globalnav li {
+	display: inline-block;
+}
+#globalnav li:hover {
+	background-color: #FFF;
+}
+#globalnav li a {
+	display: block;
+}
+#globalnav li a:hover {
+	border-bottom: none;
+}
+
+#header {
+	background: url("../images/header-logo.png") no-repeat center top;
+	margin-top: 8px;
+	height: 100px;
+}
+
+body.gtkdoc #header {
+	background-image: url("../images/header-logo-gtk-doc.png");
+}
+
+#header h1 {
+	position: absolute;
+	left: -999px;
+	width: 990px;
+}
+
+#navigation {
+	background-color: #000;
+	padding: 8px 0;	/* line-height */
+}
+
+#navigation ul {
+	list-style: none;
+}
+
+#navigation li {
+	display: inline;
+	margin: 0 8px;
+}
+
+#navigation a, #footer a {
+	color: #FFF;
+	text-decoration: none;
+	font-weight: normal;
+}
+
+#navigation li.current a {
+	font-weight: bold;
+	border-bottom: 1px dotted;
+}
+
+#content {
+	background-color: #FFF;
+	text-align: left;
+	line-height: 1.5em;
+	padding: 20px;
+	position: relative;
+}
+
+#content ul {
+	margin-bottom: 16px;
+}
+
+#content li {
+	margin-left: 24px;
+}
+
+/* Columns */
+.columns {
+	overflow: auto;
+	margin-bottom: 16px;
+}
+
+.left {
+	float: left;
+	width: 420px;
+}
+
+.right {
+	margin-left: 440px;
+}
+
+/* End columns */
+
+.news-item {
+	border-left: 2px solid #CCC;
+	padding-left: 16px;
+	margin-bottom: 32px;
+}
+
+.news-item .header {
+	margin-left: -18px;
+	background-color: #FFF;
+	padding-bottom: 8px;
+	margin-bottom: 0;
+}
+
+.news-title {
+	margin-bottom: 0;
+}
+.news-date {
+	color: #666;
+	font-style: italic;
+}
+
+.sidebar {
+	background-color: #EEE;
+	float: right;
+	width: 300px;
+	padding: 16px;
+	margin: 0 0 16px 16px;
+}
+
+.sidebar h2, .sidebar h3 {
+	font-size: 1.25em;
+	margin-bottom: 0.25em;
+}
+
+.notasidebar {
+	width: 490px; /* try 490 later */
+}
+
+#footer {
+	background-color: #000;
+	clear: both;
+	color: #FFF;
+	margin-bottom: 8px;
+	padding: 12px;
+	font-size: 12px;
+}
+
+/** Features page (it's nice to only have a single css file, since it cuts down on HTTP requests **/
+
+.bubble {
+	background-color: #EEE;
+	padding: 16px;
+	padding-bottom: 1px; /* WOW I FOUND A BUG IN WEBKIT in CHROME! EDIT: oh wait, it's also a bug in gecko. wow grandma what weird css spec you have */
+	margin-bottom: 20px;
+}
+
+/** Download page **/
+.platform_list {
+	line-height: 1em;
+}
+.platform_list li {
+	margin-left: 16px !important;
+	margin-bottom: 8px;
+	padding: 10px 0 0 42px;
+	height: 26px;
+	list-style: none;
+	background-repeat: no-repeat;
+}
+.platform_list .linux { background-image: url(../images/os-linux.png); }
+.platform_list .windows { background-image: url(../images/os-windows.png); }
+.platform_list .macos { background-image: url(../images/os-macos.png); }
+
+/** Screenshot pages **/
+.caption {
+	font-weight: bold;
+	text-align: center;
+}
+.gallery {
+	text-align: center;
+}
+.gallery ul {
+	margin: 0 auto !important;
+	width: 658px;
+}
+.gallery li {
+	width: 200px;
+	min-height: 175px;
+	display: inline-block;
+	vertical-align: top;
+	margin-left: 0 !important;
+	margin-right: 16px;
+	margin-bottom: 16px;
+}
+a.image {
+	display: block;
+}
+a.image:hover {
+	border-bottom: none;
+}
+.gallery a img {
+	border: 2px solid #DDD;
+}
+.gallery a:hover img {
+	border-color: #3465A4;
+}
+.gallery a:hover { border-bottom: none; }
+.gallery figcaption a:hover { border-bottom: 1px dotted; }
+
+.gallery .caption {
+	font-weight: normal;
+}
+
+/** Overview page **/
+.diagram {
+	margin-bottom: 1em;
+}
+.librarieslist li {
+	list-style: none;
+	padding-left: 72px;
+	margin-left: 16px !important;
+	background-repeat: no-repeat;
+	background-position: 0 8px;
+	margin-bottom: 16px;
+	padding-right: 32px;
+}
+.librarieslist .glib { background-image: url(../images/glib.png); }
+.librarieslist .pango { background-image: url(../images/pango.png); }
+.librarieslist .cairo { background-image: url(../images/cairo.png); }
+.librarieslist .atk { background-image: url(../images/atk.png); }
+
+/** Language bindings **/
+.bindingtable {
+	margin-left: 24px;
+}
+.bindingtable, .legend {
+	float: left;
+}
+.legend { margin-left: 32px; margin-bottom: 32px; }
+.legend li { list-style: none; margin: 0 !important; }
+.legend ul { margin: 0 !important; }
+.footnote {
+	clear: both;
+}
+
+.newsfeed {
+	font-size: 0.875em;
+	list-style: none;
+}
+.newsfeed li {
+	margin: 0 !important;
+	padding: 8px 4px;
+}
+.newsfeed .time {
+	font-size: 0.857em;
+	color: #AAA;
+	overflow: hidden;
+}
+.newsfeed .date {
+	float: left;
+}
+.newsfeed .relt {
+	float: right;
+}
+.newsfeed li:hover, .newsfeed li.hover {
+	background-color: #FAFAFA;
+}
+.newsfeed li:hover .date, .newsfeed li.hover .date {
+	color: #000;
+	text-decoration: underline;
+}
+.newsfeed_buttons {
+	text-align: right;
+	font-size: 0.75em;
+	color: #AAA;
+	line-height: 1.25em;
+}
+
+.success, .failure, .warning, div.info {
+	margin: 16px 0;
+	padding: 8px;
+}
+.success {
+	border: 1px solid #3465A4;
+	background-color: #7C9FCC;
+}
+.failure, .warning {
+	border: 1px solid #AA0000;
+	background-color: #FFAAAA;
+}
+div.info {
+	border: 1px solid #CCC;
+	background-color: #EEE;
+}
+
+.subnavigation {
+	background-color: #EEE;
+	margin-bottom: 16px;
+	border-top: 1px solid #CCC;
+	border-bottom: 1px solid #CCC;
+	width: 100%;
+	overflow: hidden;
+}
+.subnavigation .title {
+	border-right: 1px solid #CCC;
+	float: left;
+}
+.subnavigation .title span {
+	display: block;
+	border-right: 1px solid #FFF;
+	border-bottom: 1px solid #FFF;
+	padding: 8px;
+}
+.subnavigation ul {
+	margin-bottom: 0 !important;
+	list-style: none;
+	border-top: 1px solid #FFF;
+}
+.subnavigation li {
+	float: left;
+	margin: 0 !important;
+}
+.subnavigation li.current {
+	background-color: #FFF;
+}
+.subnavigation li a {
+	display: block;
+	padding: 8px;
+}
+.subnavigation li a:hover {
+	border-bottom: none;
+}
+.subnavigation li a:active {
+	position: relative;
+	top: 2px;
+	outline: none;
+}
+
+ media print {
+
+	html, body {
+		background-color: #FFF;
+	}
+
+	#header {
+		background-image: none;
+		height: auto;
+	}
+
+	#header h1 {
+		position: static;
+	}
+
+	#navigation {
+		display: none;
+	}
+
+	#container {
+		width: 100%;
+		text-align: left;
+	}
+	#content {
+		background-color: transparent;
+		padding: 0;
+		width: 100%;
+	}
+
+	.sidebar, .bubble {
+		background-color: transparent;
+		padding: 0;
+	}
+
+	.left {
+		width: 50%;
+	}
+	.right {
+		margin-left: 50%;
+		padding-left: 1em;
+	}
+
+	#footer {
+		background-color: transparent;
+		color: inherit;
+		padding: 0;
+		text-align: center;
+	}
+
+	:link, :visited {
+		background-image: none !important;
+		padding: 0 !important;
+		color: inherit !important;
+		text-decoration: underline !important;
+	}
+}
diff --git a/development.php b/development.php
new file mode 100755
index 0000000..bef1dee
--- /dev/null
+++ b/development.php
@@ -0,0 +1,76 @@
+<?php
+$nav = "development";
+$title = "GTK+ Development";
+ob_start();
+?>
+<div class="sidebar">
+	<h2><a name="BugReporting">Bug Reporting</a></h2>
+	<p>Bugs should be reported to the <a href="http://bugzilla.gnome.org/"; class="external">GNOME bug tracking system</a>.</p>
+	<p>You will need an email address to register (if you haven't already) before you can use the system to file a new bug report.</p>
+	<p>There are <a href="http://bugzilla.gnome.org/page.cgi?id=bug-writing.html"; class="external">guidelines</a> for reporting new bugs. Try to make sure you follow them, so we can help you much more effectively. The use of <a href="http://bugzilla.gnome.org/describekeywords.cgi"; class="external">keywords</a> also helps us prioritize bugs.</p>
+
+	<h2><a name="MailingLists">Mailing Lists</a></h2>
+	<p>For archives and information on how to subscribe, see the list of <a href="mailing-lists.php">mailing lists</a> available.</p>
+
+	<h2><a name="Wiki">Wiki</a></h2>
+	<p>We have a Wiki for drafting, designing and proposing GTK+ development available at <a href="http://live.gnome.org/GTK+"; class="external">http://live.gnome.org/GTK+</a>.</p>
+
+	<h2><a name="Meetings">Meetings</a></h2>
+	<p>As regularly as possible, GTK+ team meetings take place in the <a href="irc://irc.gnome.org/%23gtk-devel" class="irc">#gtk-devel</a> IRC channel on irc.gnome.org. Anyone is welcome to join the meeting to listen in and follow the progress of the GTK+ project. <a href="http://live.gnome.org/GTK+/Meetings"; class="external">All meetings</a> are recorded and available dating back to early 2004.</p>
+	<p>#gtk-devel is only used for GTK+ team meetings, and should not be used to ask general questions about GTK+. For all other IRC communication, <a href="irc://irc.gnome.org/%23gtk%2B" class="irc">#gtk+</a> is used.</p>
+</div>
+
+<h2><a name="Contributing">Contributing</a></h2>
+<p>GTK+ is a large project and relies on voluntary contributions. Everyone is invited to help project development. Starting points for contributors are:</p>
+
+<ul class="tasks">
+	<li>Sign up for one of the <a href="http://live.gnome.org/GtkTasks"; class="external">project assistance tasks</a>.</li>
+	<li>Hack away on existing <a href="http://live.gnome.org/GtkLove"; class="external">bug reports and feature requests</a>.</li>
+	<li>Write to the GTK+ <a href="mailing-lists.php">mailing lists</a> and offer your help.</li>
+</ul>
+
+<h2><a name="BestPractices">Best Practices</a></h2>
+<p>When working on GTK+/GLib, there are several points once should consider, to keep the code in shape. See the <a href="http://live.gnome.org/GTK+/BestPractices"; class="external">GTK+ Best Practices</a>.</p>
+
+<h2><a name="LanguageBindings">Language Bindings</a></h2>
+<p>For information about programming languages other than C which support GTK+, see the <a href="language-bindings.php">language bindings</a> available.</p>
+
+<h2><a name="Team">Team</a></h2>
+<p>Current core maintainers of GTK+ are:</p>
+
+<?php
+// How about we have PHP automatically generate odd rows for us?
+$maintainers = array(
+	  /* ("Name",                    "Affiliation"), */
+	array("Tim Janik",               "Lanedo GmbH"),
+	array("Matthias Clasen",         "Red Hat"),
+	array("Behdad Esfahbod",         "Red Hat"),
+	array("Federico Mena Quintero",  "Novell"),
+	array("Alexander Larsson",       "Red Hat"),
+	array("Tor Lillqvist",           "Novell"),
+	array("Kristian Rietveld",       "Lanedo GmbH"),
+	array("Michael Natterer",        "Lanedo GmbH"),
+	array("Emmanuele Bassi",         "Intel Open Source Technology Center")
+);
+?>
+
+<pre style="display: none;"><!-- For Lynx --></pre>
+
+<table>
+	<tr>
+		<th>Name</th>
+		<th>Affiliation</th>
+	</tr><?php foreach($maintainers as $index => $person) { ?> 
+	<tr<?php echo $index % 2 != 0 ? ' class="odd"': ' class="even"'; ?>>
+		<td><?php echo $person[0]; ?></td>
+		<td><?php echo $person[1]; ?></td>
+	</tr><?php } ?> 
+</table>
+
+<h2><a name="Support">Donations</a></h2>
+<p>If you want to help the GTK+ project by donating money OR perhaps your company wants to pay someone to develop GTK+, you can email the GNOME foundation. Any donations to GNOME for GTK+ will ONLY be spent on GTK+.</p>
+<ul class="tasks">
+	<li>Contact the <a href="mailto:foundation-list gnome org?subject=Supporting%20GTK+" class="email">GNOME Foundation</a>.</li>
+</ul>
+
+<?php require 'template.php';
diff --git a/documentation-old.php b/documentation-old.php
new file mode 100755
index 0000000..1889de9
--- /dev/null
+++ b/documentation-old.php
@@ -0,0 +1,42 @@
+<?php
+$nav = "documentation";
+$title = "GTK+ Documentation (Old)";
+ob_start();
+?>
+
+<h2><a name="OlderDocumentation">Older Documentation</a></h2>
+<p>We recommend the GTK+ 2.x libraries and documentation instead because GTK+ 1.2 is no longer supported, this documentation is available for those that need it.</p> 
+
+<h2><a name="Books">Books</a></h2>
+<ul>
+	<li>
+		<a href="http://www.amazon.com/Gnome-Application-Development-Havoc-Pennington/dp/0735700788/"; class="external">GTK+/Gnome Application Development</a>
+		<br />This book was written by Havoc Pennington
+	</li>
+	<li>
+		<a href="http://www.amazon.com/Gtk%2B-Programming-C-Syd-Logan/dp/0130142646/"; class="external">GTK+ Programming in C</a>
+		<br />This book was written by Syd Logan
+	</li>
+	<li>
+		<a href="http://www.amazon.com/Developing-Linux-Applications-GTK%2B-GDK/dp/0735700214/"; class="external">Developing Linux Applications with GTK+ and GDK</a>
+		<br />This book was written by Eric Harlow
+	</li>
+	<li>
+		<a href="http://www.amazon.com/Sams-Teach-Yourself-GTK%2B-Programming/dp/0672318296/"; class="external">Sams Teach Yourself GTK+ Programming in 21 Days</a>
+		<br />This book was written by Donna Martin
+	</li>
+	<li>
+		<a href="http://www.amazon.com/Gnome-Gtk%2B-Programming-Bible-Wiley/dp/0764546406/"; class="external">GNOME/GTK+ Programming Bible</a>
+		<br />This book was written by Arthur Griffith
+	</li>
+</ul>
+
+<h2><a name="Tutorials">Tutorials</a></h2>
+<ul>
+	<li>
+		<a href="/tutorial1.2/">GTK+ 1.2</a>
+		<br />Official Tutorial
+	</li>
+</ul>
+
+<?php require 'template.php';
diff --git a/documentation.php b/documentation.php
new file mode 100755
index 0000000..8f3e48f
--- /dev/null
+++ b/documentation.php
@@ -0,0 +1,165 @@
+<?php
+$nav = "documentation";
+$title = "GTK+ Documentation";
+ob_start();
+?>
+<div class="sidebar">
+	<h2><a name="FAQ">FAQ</a></h2>
+	<p>For information about to frequently asked questions, please <a href="http://library.gnome.org/devel/gtk-faq/stable/"; class="external">visit the FAQ</a>.</p>
+
+	<h2><a name="GTK-Doc">GTK-Doc</a></h2>
+	<p>All documentation for the GTK+ project uses GTK-Doc to generate the HTML pages from comments in the C code. To find out more about GTK-Doc <a href="gtk-doc/" class="external">visit the project page</a>.</p>
+
+	<h2><a name="OlderDocumentation">Older Documentation</a></h2>
+	<p>Although we recommend the GTK2 platform, we keep the <a href="documentation-old.php">GTK 1.2 Documentation</a> around for those who need it.</p>
+</div>
+
+
+<h2><a name="API">API Documentation</a></h2>
+<p>If the library you are interested in isn't listed here, try the <a href="http://library.gnome.org/devel/references"; class="external">documentation references</a> page on library.gnome.org where you will find many other APIs documented which are used throughout the GNOME platform. For documentation of the <a href="language-bindings.php">language bindings</a>, you might be able to find it on the project's page, although the following documentation can still be of use.</p>
+
+<pre style="display: none;"><!-- For Lynx --></pre>
+
+<table class="documentation">
+	<tr>
+		<th>Library</th>
+		<th colspan="3">Versions</th>
+	</tr>
+	<tr class="even">
+		<td>GLib</td> 
+		<td><a href="http://library.gnome.org/devel/glib/stable/"; class="external">Stable</a></td>
+		<td><a href="http://library.gnome.org/devel/glib/unstable/"; class="external">Unstable</a></td>
+		<td><a href="http://library.gnome.org/devel/glib/"; class="external">All</a></td>
+	</tr>
+	<tr class="odd">
+		<td>GObject</td>
+		<td><a href="http://library.gnome.org/devel/gobject/stable/"; class="external">Stable</a></td>
+		<td><a href="http://library.gnome.org/devel/gobject/unstable/"; class="external">Unstable</a></td>
+		<td><a href="http://library.gnome.org/devel/gobject/"; class="external">All</a></td>
+	</tr>
+	<tr class="even">
+		<td>GIO</td>
+		<td><a href="http://library.gnome.org/devel/gio/stable/"; class="external">Stable</a></td>
+		<td><a href="http://library.gnome.org/devel/gio/unstable/"; class="external">Unstable</a></td>
+		<td><a href="http://library.gnome.org/devel/gio/"; class="external">All</a></td>
+	</tr>
+	<tr class="odd">
+		<td>Pango</td>
+		<td><a href="http://library.gnome.org/devel/pango/stable/"; class="external">Stable</a></td>
+		<td><a href="http://library.gnome.org/devel/pango/unstable/"; class="external">Unstable</a></td>
+		<td><a href="http://library.gnome.org/devel/pango/"; class="external">All</a></td>
+	</tr>
+	<tr class="even">
+		<td>ATK</td>
+		<td><a href="http://library.gnome.org/devel/atk/stable/"; class="external">Stable</a></td>
+		<td><a href="http://library.gnome.org/devel/atk/unstable/"; class="external">Unstable</a></td>
+		<td><a href="http://library.gnome.org/devel/atk/"; class="external">All</a></td>
+	</tr>
+	<tr class="odd">
+		<td>GdkPixbuf</td>
+		<td><a href="http://library.gnome.org/devel/gdk-pixbuf/stable/"; class="external">Stable</a></td>
+		<td><a href="http://library.gnome.org/devel/gdk-pixbuf/unstable/"; class="external">Unstable</a></td>
+		<td><a href="http://library.gnome.org/devel/gdk-pixbuf/"; class="external">All</a></td>
+	</tr>
+	<tr class="even">
+		<td>GDK</td>
+		<td><a href="http://library.gnome.org/devel/gdk/stable/"; class="external">Stable</a></td>
+		<td><a href="http://library.gnome.org/devel/gdk/unstable/"; class="external">Unstable</a></td>
+		<td><a href="http://library.gnome.org/devel/gdk/"; class="external">All</a></td>
+	</tr>
+	<tr class="odd">
+		<td>GTK</td>
+		<td><a href="http://library.gnome.org/devel/gtk/stable/"; class="external">Stable</a></td>
+		<td><a href="http://library.gnome.org/devel/gtk/unstable/"; class="external">Unstable</a></td>
+		<td><a href="http://library.gnome.org/devel/gtk/"; class="external">All</a></td>
+	</tr>
+</table>
+
+
+<h2><a name="Books">Books</a></h2>
+<ul>
+	<li>
+		<a href="http://www.amazon.com/Foundations-Development-Experts-Voice-Source/dp/1590597931/"; class="external">Foundations of GTK+ Development</a>
+		<br />This book was written by Andrew Krause.
+	</li>
+	<li>
+		<a href="http://www.amazon.com/Official-GNOME-Developers-Guide/dp/1593270305/"; class="external">The Official GNOME 2 Developer's Guide</a>
+		<br />This book was written by Matthias Warkus.
+	</li>
+</ul>
+
+<h2><a name="Tutorials">Tutorials</a></h2>
+<ul>
+	<li>
+		<a href="http://library.gnome.org/devel/gtk-tutorial/stable/"; class="external">GTK+ 2.x</a>
+		<br />The Official Tutorial.
+	</li>
+	<li>
+		<a href="http://scentric.net/tutorial/treeview-tutorial.html"; class="external">GTK+ 2.x Tree View</a> (<a href="http://scentric.net/tutorial/treeview-tutorial.pdf"; class="pdf">pdf</a>)
+		<br />This tutorial covers the GtkTreeView and was written by Tim-Philipp Müller.
+	</li>
+	<li>
+		<a href="http://www.bravegnu.org/gtktext/"; class="external">GTK+ 2.x Text View</a>
+		<br />This tutorial covers the GtkTextView and was written by Vijay Kumar B.
+	</li>
+	<li>
+		<a href="http://zetcode.com/tutorials/gtktutorial/"; class="external">GTK+ 2.x Tutorial for Beginners</a>
+		<br />This tutorial is for beginners describing some of the most common widgets written by Jan Bodnar.
+	</li>
+	<li>
+		<a href="http://ricardo.ecn.wfu.edu/~cottrell/cross-gtk/"; class="external">Building GTK apps for MS Windows on Linux</a>
+		<br />This tutorial details information about cross-compilation and was written by Allin Cottrell.
+	</li>
+</ul>
+
+<h2><a name="Articles">Articles</a></h2>
+<ul>
+	<li>
+		<a href="http://www.ibm.com/developerworks/linux/tutorials/l-glib/"; class="external">Manage C data using the GLib collections</a>
+		<br />A look at using GLib to effectively manage data within C programs by Tom Copeland.
+	</li>
+	<li>
+		<a href="http://www.ibm.com/developerworks/library/l-u-pango1/"; class="external">The Pango connection: Part 1</a>, <a href="http://www.ibm.com/developerworks/library/l-u-pango2/"; class="external">Part 2</a>
+		<br />An introduction to Pango by Tony Graham.
+	</li>
+	<li>
+		<a href="http://gnomejournal.org/article/34/writing-a-widget-using-cairo-and-gtk28"; class="external">Writing a Widget Using Cairo and GTK+2.8, Part 1</a>, <a href="http://gnomejournal.org/article/36/writing-a-widget-using-cairo-and-gtk28-part-2"; class="external">Part 2</a>
+		<br />Article about creating widgets with Cario, the highly capable 2D drawing library.
+	</li>
+	<li>
+		<a href="http://linux.thai.net/~thep/presents/PAN/theppitak-gtk-l10n-paper.pdf"; class="pdf">Localizing GTK+</a>
+		<br />An article about input method modules and Pango engines by Theppitak Karoonboonyanan.
+	</li>
+</ul>
+
+<h2><a name="Presentations">Presentations</a></h2>
+<ul>
+	<li>
+		<a href="http://www.lanedo.com/~kris/highlights-of-gtk210-2006.pdf"; class="pdf">Highlights of GTK+ 2.10</a>
+		<br />Presentation by Kristian Rietveld and Tim Janik at GUADEC 2006.
+	</li>
+	<li>
+		<a href="http://www.gnome.org/~alexl/presentations/guadec2006-printing.pdf"; class="pdf">The new GTK+ printing API</a>
+		<br />Presentation by Alexander Larsson and John Palmieri at GUADEC 2006.
+	</li>
+	<li>
+		<a href="http://o-hand.com/~ebassi/2006-guadec-recent-files/recent-files.pdf"; class="pdf">Recent Files and Bookmarks</a>
+		<br />Presentation by Emmanuele Bassi at GUADEC 2006.
+	</li>
+	<li><a href="http://developer.imendio.com/sites/developer.imendio.com/files/Mitch-GModule.pdf"; class="pdf">Creating a plug-in system using GTypeModule</a><br />
+Presentation by Michael Natterer at GUADEC 2006.</li>
+</ul>
+
+<h2><a name="UsefulLinks">Useful Links</a></h2>
+<ul>
+	<li>
+		<a href="http://ometer.com/gtk-colors.html"; class="external">How to set the color of a widget</a>
+		<br />A small article by Havoc Pennington.
+	</li>
+	<li>
+		<a href="http://www.iki.fi/tml/fosdem-2006.pdf"; class="pdf">Windows portability for GNOME software.</a>
+		<br />A PDF document written by Tor Lillqvist.
+	</li>
+</ul>
+
+<?php require 'template.php';
diff --git a/download/index.php b/download/index.php
new file mode 100755
index 0000000..b01b015
--- /dev/null
+++ b/download/index.php
@@ -0,0 +1,43 @@
+<?php
+$nav = "download";
+$title = "Download GTK+";
+ob_start();
+?>
+
+<div class="columns">
+
+	<div class="left">
+		<h2 id="StableRelease">Stable release</h2>
+		<p>GTK+ is available on:</p>
+		<ul class="platform_list">
+			<li class="linux"><a href="linux.php">GNU/Linux and Unix</a></li>
+			<li class="windows"><a href="win32.php">Windows (32-bit)</a> and <a href="win64.php">64-bit</a></li>
+			<li class="macos"><a href="macos.php">Mac OS X</a></li>
+		</ul>
+	</div>
+
+	<div class="right">
+		<h2 id="UnstableRelease">Unstable release</h2>
+		<p>The latest unstable tarballs can be downloaded with <a href="http://ftp.gnome.org/pub/gnome/sources/gtk+/"; class="external">HTTP</a> or <a href="ftp://ftp.gtk.org/pub/gtk/"; class="external">FTP</a>.</p>
+	</div>
+
+</div>
+
+<h2 id="BleedingEdge">Bleeding edge</h2>
+<p>Alternatively, you can check out the latest unstable release of GTK+ and GLib using <a href="http://git-scm.com/"; class="external">git</a>.</p>
+<pre>git clone git://git.gnome.org/gtk+</pre>
+<pre>git clone git://git.gnome.org/glib</pre>
+<p>If you plan on pushing changes back upstream and have a GNOME account, use the following instead:</p>
+<pre>git clone ssh://&lt;username&gt;@git.gnome.org/git/gtk+</pre>
+<pre>git clone ssh://&lt;username&gt;@git.gnome.org/git/glib</pre>
+
+<p>For more information on this, see the <a href="http://live.gnome.org/Git"; class="external">instructions on how to use the repository</a>.</p>
+
+<!--
+<h2>Applications</h2>
+<p>If you're looking for applications built <em>with</em>
+GTK+, you can find many projects available for download at
+<a href="http://www.gtkfiles.org"; class="external" class="external">gtkfiles.org</a>.</p>
+-->
+
+<?php require '../template.php';
diff --git a/download/linux.php b/download/linux.php
new file mode 100755
index 0000000..3916240
--- /dev/null
+++ b/download/linux.php
@@ -0,0 +1,50 @@
+<?php
+$nav = "download";
+$title = "GTK+ Download: GNU/Linux";
+ob_start();
+
+// Set the current stable version numbers of GTK+, GLib, and Pango to automatically include it in the page.
+$versions = array(
+	'gtk' => '2.22',
+	'glib' => '2.26',
+	'pango' => '1.28'
+);
+
+// Versions of GTK+ that are older, but still included on the page in the "Older Versions" section
+$oldgtk = array( '2.20', '2.18', '2.16', '2.14', '2.12', '2.10', '2.8', '2.6', '2.4', '1.2' );
+
+?>
+<h2><a name="Download">Download GTK+ for Linux/Unix</a></h2>
+<h3><a name="Requirements">Requirements</a></h3>
+<p>You will need to get the GLib, Pango and GTK+ packages to build GTK+.<br/>You may also need some of the external dependencies that are also linked for each version listed
+below.</p>
+
+<h3><a name="StableRelease">Stable Release</a></h3>
+<p>To build GTK+ <?php echo $versions['gtk']; ?> you may find the installation guide helpful. For additional help, the <a href="http://library.gnome.org/devel/gtk-faq/stable/"; class="external">FAQ</a> is a good starting point.</p>
+
+<ul>
+	<li><a href="http://ftp.gnome.org/pub/gnome/sources/gtk+/<?php echo $versions['gtk']; ?>/" class="download">GTK+ <?php echo $versions['gtk']; ?></a></li>
+	<li><a href="http://ftp.gnome.org/pub/gnome/sources/glib/<?php echo $versions['glib']; ?>/" class="download">GLib <?php echo $versions['glib']; ?></a></li>
+	<li><a href="http://ftp.gnome.org/pub/gnome/sources/pango/<?php echo $versions['pango']; ?>/" class="download">Pango <?php echo $versions['pango']; ?></a></li>
+</ul>
+<!--
+<ul>
+<li><a href="ftp://ftp.gtk.org/pub/gtk/v<?php echo $versions['gtk']; ?>/dependencies"><img src="images/download.png" alt=""/> Dependencies</a></li>
+</ul>
+-->
+<p>For details on installing GTK+, see the <a href="http://library.gnome.org/devel/gtk/stable/gtk-building.html"; class="external">installation guide</a>.</p>
+
+<h3><a name="OlderVersions">Older Versions</a></h3>
+<p>Some applications still require GTK+ 1.2, an older stable version of GTK+. You can have the run-time and development environments for both GTK+ 2.x and GTK+ 1.2 installed simultaneously on your computer.</p>
+<table>
+	<tr>
+		<th>Version</th>
+		<th>Packages</th>
+	</tr><?php foreach( $oldgtk as $index => $version ) { ?> 
+	<tr<?php echo $index % 2 != 0 ? ' class="odd"': ' class="even"'; ?>>
+		<td>GTK+ <?php echo $version; ?></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/sources/gtk+/<?php echo $version; ?>/" class="download">Sources</a></td>
+	</tr><?php } ?> 
+</table>
+
+<?php require '../template.php';
diff --git a/download/macos.php b/download/macos.php
new file mode 100755
index 0000000..78ff944
--- /dev/null
+++ b/download/macos.php
@@ -0,0 +1,11 @@
+<?php
+$nav = "download";
+$title = "GTK+ Download: Mac OS X";
+ob_start();
+?>
+
+<h2><a name="Download">Download GTK+ for Mac OS X</a></h2>
+<p>Building, bundling &amp; integrating GTK+ on MacOSX is now consolidated at <a href="http://gtk-osx.sourceforge.net"; class="external">http://gtk-osx.sourceforge.net</a>.</p>
+<p>The development of the quartz backend to GTK+ remains in the GTK+ project. You can track the development on the <a href="http://live.gnome.org/GTK%2B/OSX"; class="external">OSX Development page</a>.</p>
+
+<?php require '../template.php';
diff --git a/download/win32.php b/download/win32.php
new file mode 100755
index 0000000..baa87c9
--- /dev/null
+++ b/download/win32.php
@@ -0,0 +1,220 @@
+<?php
+$nav = "download";
+$title = "GTK+ Download: Windows (32-bit)";
+ob_start();
+?>
+<h2><a name="Download">Download GTK+ for Windows (32-bit)</a></h2>
+
+<h3><a name="Requirements">Requirements</a></h3>
+ 
+<h4>Packages</h4>
+ 
+<p>You will need the GLib, cairo, Pango, ATK, gdk-pixbuf and GTK+ developer packages to build software against GTK+. To run GTK+ programs you will also need the gettext-runtime, fontconfig, freetype, expat, libpng and zlib packagages.</p>
+
+<p>The packages here are for people who develop software that uses GTK+. This page is not intended directly for end-users. It is expected that people who build installers for GTK+ applications for Windows bundle GTK+ with them.</p>
+ 
+<p>These packages are not for developing or running programs that use the <a href="http://www.cygwin.com/";>Cygwin</a> Unix emulation environment. Cygwin has GTK+ packages available directly in its installer which you should use. Note that the Cygwin GTK+ uses the X11 backend, so you will need to also run an X11 server then when you run GTK+ programs on Cygwin, but presumably that is what Cygwin users want.</p>
+
+<p>You are welcome to redistribute GTK+ binaries, including applications that bundle them, on other web sites, CD-ROM, and other media. You don't have to ask for permission. That's one of the points of Free Software. One important thing that the <a href="http://www.fsf.org/licenses/licenses.html";>GNU licenses</a> require is that <strong>you must also redistribute the source</strong> code. This usually means at least the gettext, GLib, GTK+, Pango and Atk sources.</p>
+ 
+<h4>What toolchain to use?</h4>
+ 
+<p>The most natural toolchain to use together with these packages would probably be the GNU compiler and other utilities. When targeting Windows, that combination is known as <a href="http://www.mingw.org";>MinGW</a>. Using Cygwin tools to build non-Cygwin Windows binaries is not recommended unless you are very careful and look out for mixups.</p>
+ 
+<p>It is possible to use these packages also with Microsoft's compiler. However, the DLLs here use the <code>msvcrt.dll</code> run-time library. This means that also applications that use the DLLs should preferrably use the <code>msvcrt.dll</code>  run-time. Specifically, this means that you should not use newer versions of the Microsoft compiler than Visual C++ 6 without knowing exactly what you are doing.</p>
+
+<h4>Which Windows versions?</h4>
+<p>The current GTK+ stack uses APIs that are available only on Windows 2000 or later. Long obsolete versions of GTK+ did run on Win9x and NT 4, too.</p>
+
+<h3><a name="StableRelease">Downloads</a></h3>
+
+<p>There are three types of downloads below. <strong>Run-time</strong> provide only the DLLs and other files used you will need to run a GTK+-using application. <strong>Dev</strong> packages provide include files, import libraries, documentation and additional tools, and also for reference the script used to build the component in question. In case patches have been applied to the upstream sources before building, these are inline in the build script. <strong>Source</strong> packages provide the source code for the component in question. In most cases, this is simply the pristine upstream source release tarball, possibly copied to the same server as the binaries to satisfy the license.</p>
+
+<p>GTK+ 2.16 is an old but in some sense more reliable branch. 2.22 is the current maintained version. Choose the one which works better for you.</p> <p>If you want to repackage the necessary run-time files together with your application into an installer, you can choose to leave out for instance message catalogs for languages that your application isn't localised to anyway.</p>
+
+<h3>All-in-one bundles</h3>
+<p>If you find choosing, downloading and unpacking the individual zip archives below a chore, there are all-in-one bundles of the GTK+ stack including 3rd-party dependencies, both of GTK+ <a href="http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.16/gtk+-bundle_2.16.6-20100912_win32.zip"; class="download">2.16</a> and <a href="http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.22/gtk+-bundle_2.22.0-20101016_win32.zip"; class="download">2.22</a>. The bundles contain both run-time and developer files. Many of the developer files are relatively irrelevant. If you intend to redistribute the GTK+ run-time, you need to figure out which files you can leave out yourself. A new bundle will ideally be provided here whenever one of the member packages has been updated.</p>
+
+<h4>GTK+ individual packages</h4>
+
+<table>
+	<tr>
+		<th>Package</th>
+		<th>Version</th>
+		<th colspan="3">Downloads</th>
+	</tr>
+	<tr class="even">
+		<td>GLib</td>
+		<td>2.26.0</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.26/glib_2.26.0-2_win32.zip"; class="download">Run-time</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.26/glib-dev_2.26.0-2_win32.zip"; class="download">Dev</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/sources/glib/2.26/glib-2.26.0.tar.bz2"; class="download">Sources</a></td>
+	</tr>
+
+	<tr class="odd">
+		<td>ATK</td>
+		<td>1.32.0</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/atk/1.32/atk_1.32.0-1_win32.zip"; class="download">Run-time</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/atk/1.32/atk-dev_1.32.0-1_win32.zip"; class="download">Dev</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/sources/atk/1.32/atk-1.32.0.tar.bz2"; class="download">Sources</a></td>
+	</tr>
+
+	<tr class="even">
+		<td>Pango</td>
+		<td>1.28.3</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.28/pango_1.28.3-1_win32.zip"; class="download">Run-time</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.28/pango-dev_1.28.3-1_win32.zip"; class="download">Dev</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/sources/pango/1.28/pango-1.28.3.tar.bz2"; class="download">Sources</a></td>
+	</tr>
+
+	<tr class="odd">
+		<td>gdk-pixbuf</td>
+		<td>2.22.0</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/gdk-pixbuf/2.22/gdk-pixbuf_2.22.0-1_win32.zip"; class="download">Run-time</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/gdk-pixbuf/2.22/gdk-pixbuf-dev_2.22.0-1_win32.zip"; class="download">Dev</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.22/gdk-pixbuf-2.22.0.tar.bz2"; class="download">Sources</a></td>
+	</tr>
+
+	<tr class="even">
+		<td rowspan="2">GTK+</td>
+		<td>2.16.6</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.16/gtk+_2.16.6-3_win32.zip"; class="download">Run-time</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.16/gtk+-dev_2.16.6-3_win32.zip"; class="download">Dev</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/sources/gtk+/2.16/gtk+-2.16.6.tar.bz2"; class="download">Sources</a></td>
+	</tr>
+
+	<tr class="odd">
+		<td>2.22.0</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.22/gtk+_2.22.0-2_win32.zip"; class="download">Run-time</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.22/gtk+-dev_2.22.0-2_win32.zip"; class="download">Dev</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/sources/gtk+/2.22/gtk+-2.22.0.tar.bz2"; class="download">Sources</a></td>
+	</tr>
+	
+</table>
+
+<h4>Required third party dependencies</h4>
+<p>The run-time packages here are required by the GTK+ stack.</p>
+
+<table>
+	<tr>
+		<th>Package</th>
+		<th>Version</th>
+		<th colspan="3">Downloads</th>
+	</tr>
+
+	<tr class="even">
+		<td>zlib</td>
+		<td>1.2.5</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/zlib_1.2.5-2_win32.zip"; class="download">Run-time </a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/zlib-dev_1.2.5-2_win32.zip"; class="download">Dev </a></td>
+		<td><a href="http://www.zlib.net/zlib125.zip"; class="download">Sources</a></td>
+	</tr>
+
+	<tr class="odd">
+		<td>cairo</td>
+		<td>1.10.0</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/cairo_1.10.0-1_win32.zip"; class="download">Run-time</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/cairo-dev_1.10.0-1_win32.zip"; class="download">Dev</a></td>
+		<td><a href="http://cairographics.org/releases/cairo-1.10.0.tar.gz"; class="download">Sources</a></td>
+	</tr>
+
+	<tr class="even">
+		<td>libpng</td>
+		<td>1.4.3</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libpng_1.4.3-1_win32.zip"; class="download">Run-time</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libpng-dev_1.4.3-1_win32.zip"; class="download">Dev</a></td>
+		<td></td>
+	</tr>
+
+	<tr class="odd">
+		<td>Freetype</td>
+		<td>2.4.2</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/freetype_2.4.2-1_win32.zip"; class="download">Run-time</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/freetype-dev_2.4.2-1_win32.zip"; class="download">Dev</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/freetype-2.4.2.tar.bz2"; class="download">Sources</a></td>
+	</tr>
+
+	<tr class="even">
+		<td>Fontconfig</td>
+		<td>2.8.0</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/fontconfig_2.8.0-2_win32.zip"; class="download">Run-time</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/fontconfig-dev_2.8.0-2_win32.zip"; class="download">Dev</a></td>
+		<td><a href="http://www.fontconfig.org/release/fontconfig-2.8.0.tar.gz"; class="download">Sources</a></td>
+	</tr>
+
+	<tr class="odd">
+		<td>expat</td>
+		<td>2.0.1</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/expat_2.0.1-1_win32.zip"; class="download">Run-time</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/expat-dev_2.0.1-1_win32.zip"; class="download">Dev</a></td>
+		<td></td>
+	</tr>
+
+	<tr class="even">
+		<td>gettext-runtime</td>
+		<td>0.18.1.1</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip"; class="download">Run-time</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime-dev_0.18.1.1-2_win32.zip"; class="download">Dev</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-0.18.1.1.tar.gz"; class="download">Sources</a></td>
+	</tr>
+
+</table>
+
+<h4>Other third party software</h4>
+<p>These packages are not needed to run software that uses just GTK+, or to develop such software. These packages are used when building and running more complex applications.</p>
+
+<table>
+
+	<tr>
+		<th>Package</th>
+		<th>Version</th>
+		<th colspan="3">Downloads</th>
+	</tr>
+
+	<tr class="even">
+		<td>pixman</td>
+		<td>0.18.4</td>
+		<td></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pixman-dev_0.18.4-2_win32.zip"; class="download">Dev</a></td>
+		<td><a href="http://cairographics.org/releases/pixman-0.18.4.tar.gz"; class="download">Sources</a></td>
+	</tr>
+
+	<tr class="odd">
+		<td>pkg-config</td>
+		<td>0.23-3</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip"; class="download">Tool</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-dev_0.23-3_win32.zip"; class="download">Dev</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-0.23.tar.gz"; class="download">Sources</a></td>
+	</tr>
+
+	<tr class="even">
+		<td>gettext-tools</td>
+		<td>0.18.1.1</td>
+		<td></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-tools-dev_0.18.1.1-2_win32.zip"; class="download">Dev</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-0.18.1.1.tar.gz"; class="download">Sources</a></td>
+	</tr>
+
+</table>
+
+<h4>About pixman</h4>
+<p>This is a static build of pixman library. It is linked into the cairo DLL and there is no separate pixman run-time package.</p>
+
+<h4>About libpng</h4>
+<p>This libpng build package provides <code>libpng14-14.dll</code>. This package is built by me (Tor Lillqvist). Back in history the GTK+ stack was built against the gnuwin32 build of libpng. Confusingly, gnuwin32's older builds of libpng provided <code>libpng13.dll</code>, and their newer builds provided <code>libpng12.dll</code>. I don't know whether these builds actually are binary compatible even if the DLL name was different. To be safe, never rename DLLs.</p>
+
+<h4>About zlib</h4>
+<p>This is the compression library used by glib and libpng. The above is just repackaged upstream DLL, slightly fixed headers, and import libraries. It provides <code>zlib1.dll</code>.</p>
+
+<h4>About pkg-config</h4>
+<p>This program is useful for Makefiles and configure scripts and extensively used in building software according to the GTK+ and GNOME conventions using autotools. It uses a <q>database</q> specifying inter-dependencies among software packages. It is used to get the compile and link flags needed when building software using libraries that provide pkg-config data. It requires GLib.</p>
+
+<h4>About freetype and fontconfig</h4>
+<p>These libraries are used by cairo and by Pango. They provide an alternative font backend. In a normal GTK+ application on Windows their functionality won't actually be used, though. GIMP is an exception, GIMP's text tool uses freetype and fontconfig APIs.</p>
+
+<h4>About gettext-runtime</h4>
+<p>The GNU internationalization library. All of the GTK+ stack uses it. The DLL uses the traditional name intl.dll as it is ABI compatible with older builds of GNU libintl that used that DLL name.</p>
+ 
+<p>Previously the "proxy-libintl" library that loads the gettext-runtime DLL dynamically was used, but now the GTK+ stack is just linked normally to intl.dll.</p>
+
+<?php require '../template.php';
diff --git a/download/win64.php b/download/win64.php
new file mode 100755
index 0000000..0666a0e
--- /dev/null
+++ b/download/win64.php
@@ -0,0 +1,212 @@
+<?php
+$nav = "download";
+$title = "GTK+ Download: Windows (64-bit)";
+ob_start();
+?>
+
+<h2><a name="Download">Download GTK+ for Windows (64-bit)</a></h2>
+
+<div class="warning"><span>Note that these 64-bit packages are experimental. Binary compatibility between versions is not guaranteed.</span></div>
+
+<h3><a name="Requirements">Requirements</a></h3>
+<h4>Packages</h4>
+<p>You will need to get the GLib, Cairo, Pango, ATK, and GTK+ developer packages to build against GTK+. To run GTK+ programs you will also need the libpng and zlib packagages, and if your code uses gettext for internationalisation and/or you want GTK+ internalisation, the gettext package.</p>
+
+<p>The packages here are for people who develop software that uses GTK+. This page is not intended directly for end-users. It is expected that people who build installers for GTK+ applications for Windows bundle GTK+ with them.</p>
+
+<p>You are welcome to redistribute GTK+ binaries, including applications that bundle them, on other web sites, CD-ROM, and other media. You don't have to ask for permission. That's one of the points of Free Software. One important thing that the <a href="http://www.fsf.org/licenses/licenses.html"; class="external">GNU licenses</a> require is that <strong>you must also redistribute the source</strong> code. This usually means at least the gettext, GLib, GTK+, Pango and ATK sources.</p>
+
+<h4>What toolchain to use?</h4>
+<p>The most natural toolchain to use together with these packages is the GNU compiler and other utilities. When targeting Windows, that combination is known as <a href="http://www.mingw.org"; class="external">MinGW</a>. Support for 64-bit Windows is not yet available from the official MinGW project. There is a separate porting effort for 64-bit Windows called <a href="http://mingw-w64.sourceforge.net"; class="external">mingw-w64</a>. These packages have been built using that compiler, cross-compiling from 32-bit Windows.</p>
+
+<p>It might be possible to use these packages also with Microsoft's compiler. Unlike the 32-bit versions, that has not been actually tested, though. The DLLs here use the <tt>msvcrt.dll</tt> runtime library.</p>
+
+<h3><a name="StableRelease">Stable Release</a></h3>
+<p>There are 3 types of download options below. <strong>Binaries</strong> provide only the DLLs and other files used you will need to run your GTK+-using application. <strong>Dev</strong> packages provide include files, import libraries, documentation and additional tools, and also for reference the script used to build the component in question. In case patches have been applied to the upstream sources before building, these are inline in the build script. <strong>Source</strong> packages provide the source code for the component in question. In most cases, this is simply the pristine upstream source release tarball, possibly copied to the same server as the binaries to satisfy the license.</p>
+
+<p>If you want to repackage the necessary runtime files together with your application into an installer, you can choose to leave out for instance message catalogs for languages that your application isn't localised to anyway.</p>
+
+<h4>All-in-one bundle</h4>
+
+<p>If you find choosing, downloading and unpacking the individual zip archives below a chore, there are all-in-one bundles of the GTK+ stack including 3rd-party dependencies, both of GTK+ <a href="http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.16/gtk+-bundle_2.16.6-20100208_win64.zip"; class="download">2.16</a> and <a href="http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.20/gtk+-bundle_2.20.0-20100402_win64.zip"; class="download">2.20</a>. The bundles contain both binaries and a lot of developer files, many of which are relatively irrelevant. If you intend to redistribute the GTK+ run-time, you need to figure out which files you can leave out yourself. A new bundle will ideally be provided here whenever one of the member packages has been updated.</p>
+
+<h3>GTK+ individual packages</h3>
+
+<table>
+	<tr>
+		<th>Package</th>
+		<th>Version</th>
+		<th colspan="3">Downloads</th>
+	</tr>
+	<tr class="even">
+		<td>GLib</td>
+		<td>2.24.0</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/glib/2.24/glib_2.24.0-2_win64.zip"; class="download">Binaries</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/glib/2.24/glib-dev_2.24.0-2_win64.zip"; class="download">Dev</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/sources/glib/2.24/glib-2.24.0.tar.bz2"; class="download">Sources</a></td>
+	</tr>
+	<tr class="odd">
+		<td>GTK+</td>
+		<td>2.16.6 (old, but in many respects more stable)</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.16/gtk+_2.16.6-2_win64.zip"; class="download">Binaries</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.16/gtk+-dev_2.16.6-2_win64.zip"; class="download">Dev</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/sources/gtk+/2.16/gtk+-2.16.6.tar.bz2"; class="download">Sources</a></td>
+	</tr>
+	<tr class="even">
+		<td>GTK+</td>
+		<td>2.20.0 (current maintained branch)</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.20/gtk+_2.20.0-1_win64.zip"; class="download">Binaries</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.20/gtk+-dev_2.20.0-1_win64.zip"; class="download">Dev</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/sources/gtk+/2.20/gtk+-2.20.0.tar.bz2"; class="download">Sources</a></td>
+	</tr>
+	<tr class="odd">
+		<td>Pango</td>
+		<td>1.28.0</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/pango/1.28/pango_1.28.0-1_win64.zip"; class="download">Binaries</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/pango/1.28/pango-dev_1.28.0-1_win64.zip"; class="download">Dev</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/sources/pango/1.28/pango-1.28.0.tar.bz2"; class="download">Sources</a></td>
+	</tr>
+	<tr class="even">
+		<td>ATK</td>
+		<td>1.30.0</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/atk/1.30/atk_1.30.0-1_win64.zip"; class="download">Binaries</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/atk/1.30/atk-dev_1.30.0-1_win64.zip"; class="download">Dev</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/sources/atk/1.30/atk-1.30.0.tar.bz2"; class="download">Sources</a></td>
+	</tr>
+	<tr class="odd">
+		<td>cairo</td>
+		<td>1.8.10</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/cairo_1.8.10-2_win64.zip"; class="download">Binaries</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/cairo-dev_1.8.10-2_win64.zip"; class="download">Dev</a></td>
+		<td><a href="http://cairographics.org/releases/cairo-1.8.10.tar.gz"; class="download">Sources</a></td>
+	</tr>
+</table>
+
+<h4>Third Party Dependencies</h4>
+<p>You won't need all of these packages to just use GTK+ Some of the optional packages are needed for building applications like GIMP on Windows. Required packages are illustrated with <img src="../images/progress-complete.png" alt=""/>.</p>
+
+<table>
+	<tr>
+		<th>Package</th>
+		<th>Version</th>
+		<th colspan="4">Downloads</th>
+	</tr>
+	<tr>
+		<td>zlib</td>
+		<td>1.2.3</td>
+		<td><a href="http://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/zlib_1.2.3-2_win64.zip"; class="download">Binaries</a></td>
+		<td colspan="2"><a href="http://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/zlib_1.2.3-2_win64.zip"; class="download">Dev</a></td>
+		<td class="required"><img src="../images/progress-complete.png" alt=""/></td>
+	</tr>
+	<tr class="odd">
+		<td>win_iconv</td>
+		<td>20090213</td>
+		<td colspan="3"><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/win-iconv-dev_tml-20090213_win64.zip"; class="download">Dev &amp; Sources</a></td>
+		<td class="required"><img src="../images/progress-incomplete.png" alt=""/></td>
+	</tr>
+	<tr>
+		<td>gettext-runtime</td>
+		<td>0.17</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/gettext-runtime_0.17-3_win64.zip"; class="download">Binaries</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/gettext-runtime-dev_0.17-3_win64.zip"; class="download">Dev</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-0.17.tar.gz"; class="download">Sources</a></td>
+		<td class="required"><img src="../images/progress-incomplete.png" alt=""/></td>
+	</tr>
+	<tr class="odd">
+		<td>pkg-config</td>
+		<td>0.23-2</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/pkg-config_0.23-2_win64.zip"; class="download">Binaries</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/pkg-config-dev_0.23-2_win64.zip"; class="download">Dev</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-0.23.tar.gz"; class="download">Sources</a></td>
+		<td class="required"><img src="../images/progress-incomplete.png" alt=""/></td>
+	</tr>
+	<tr>
+		<td>libpng</td>
+		<td>1.4.0</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/libpng_1.4.0-1_win64.zip"; class="download">Binaries</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/libpng-dev_1.4.0-1_win64.zip"; class="download">Dev</a></td>
+		<td>-</td>
+		<td class="required"><img src="../images/progress-complete.png" alt=""/></td>
+	</tr>
+	<!-- libjpeg and libtiff not needed now with GDI+ gdk-pixbuf loaders built in
+	<tr class="odd">
+		<td>libjpeg</td>
+		<td>7</td>
+		<td><a href="http://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/jpeg_7-1_win64.zip"; class="download">Binaries</a></td>
+		<td><a href="http://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/jpeg-dev_7-1_win64.zip"; class="download">Dev</a></td>
+		<td>-</td>
+		<td class="required"><img src="../images/progress-complete.png" alt=""/></td>
+	</tr>
+	<tr>
+		<td>libtiff</td>
+		<td>3.9.1</td>
+		<td><a href="http://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/libtiff_3.9.1-1_win64.zip"; class="download">Binaries</a></td>
+		<td><a href="http://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/libtiff-dev_3.9.1-1_win64.zip"; class="download">Dev</a></td>
+		<td>-</td>
+		<td class="required"><img src="../images/progress-complete.png" alt=""/></td>
+	</tr>
+	-->
+	<tr class="odd">
+		<td>Freetype</td>
+		<td>2.3.12</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/freetype_2.3.12-1_win64.zip"; class="download">Binaries</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/freetype-dev_2.3.12-1_win64.zip"; class="download">Dev</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/freetype-2.3.12.tar.bz2"; class="download">Sources</a></td>
+		<td class="required"><img src="../images/progress-complete.png" alt=""/></td>
+	</tr>
+	<tr>
+		<td>Fontconfig</td>
+		<td>2.8.0</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/fontconfig_2.8.0-1_win64.zip"; class="download">Binaries</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/fontconfig-dev_2.8.0-1_win64.zip"; class="download">Dev</a></td>
+		<td><a href="http://www.fontconfig.org/release/fontconfig-2.8.0.tar.gz"; class="download">Source</a></td>
+		<td class="required"><img src="../images/progress-complete.png" alt=""/></td>
+	</tr>
+	<tr class="odd">
+		<td>libexpat</td>
+		<td>2.0.1</td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/expat_2.0.1-2_win64.zip"; class="download">Binaries</a></td>
+		<td><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/expat-dev_2.0.1-2_win64.zip"; class="download">Dev</a></td>
+		<td>-</td>
+		<td class="required"><img src="../images/progress-complete.png" alt=""/></td>
+	</tr>
+	<tr>
+		<td>proxy-libintl</td>
+		<td>20090911</td>
+		<td colspan="3"><a href="http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/proxy-libintl-dev_20090911_win64.zip"; class="download">Binaries &amp; sources</a></td>
+		<td class="required"><img src="../images/progress-incomplete.png" alt=""/></td>
+	</tr>
+</table>
+
+<h4>About libpng</h4>
+<p>This is an image file format library used by GTK+, and required.</p>
+
+<h4>About zlib</h4>
+<p>This is the compression library used by libpng and libtiff, and thus also required.</p>
+
+<h4>About win_iconv</h4>
+<p>win_iconv is an implementation of <a href="http://www.opennc.org/onlinepubs/7908799/xsh/iconv.html"; class="external">iconv</a> for Windows by Yukihiro Nakadaira that has a much smaller footprint than GNU libiconv. The win_iconv package above includes the header file, static archive library and the source file. This library is linked statically into GLib and thus not needed separately at run-time.</p>
+
+<h4>About gettext</h4>
+<p>The GNU internationalization library. All of the GTK+ stack uses it, but through proxy-libintl (see below) so it is actually optional at run-time.</p>
+
+<!--
+<h4>About libjpeg and libtiff</h4>
+<p>These libraries are used by the gdk-pixbuf library in GTK+, and for instance by GIMP.</p>
+-->
+
+<h4>About pkg-config</h4>
+<p>This program is useful for Makefiles and configure scripts and extensively used in building software according to the GTK+ and GNOME conventions using autotools. It uses a <q>database</q> specifying inter-dependencies among software packages. It is used to get the compile and link flags needed when building software using libraries that provide pkg-config data. It requires GLib.</p>
+
+<h4>About freetype and fontconfig</h4>
+<p>These libraries are used by cairo and by Pango, so they are required. They provide an alternative font backend. In a normal GTK+ application on Windows their functionality won't actually be used, though. GIMP is an exception, GIMP's text tool uses freetype and fontconfig APIs.</p>
+
+<h4>About libexpat</h4>
+<p>This is a library required by fontconfig.</p>
+
+<h4>About proxy-libintl</h4> 
+<p>proxy-libintl is a very small static library. It acts as a proxy for the the DLL from gettext, loading it dynamically, and failing gracefully. Fallback dummy functions are used if the DLL isn't found. It is a static archive and is linked into the binaries in the GTK+ stack instead of referring directly the gettext DLL. This enables application packagers to leave out the gettext binaries if they don't need or want to support internationalization.</p>
+
+<p>When building DLLs against the proxy-libintl static library and using the GNU linker's auto-export feature (i.e. not using a .def file, and not using <tt>__declspec(dllexport)</tt>), it is a good idea to pass <tt>-Wl,--exclude-libs=libintl.a</tt> so that the libintl functions don't get exported from your DLL.</p>
+
+<?php require '../template.php';
diff --git a/features.php b/features.php
new file mode 100755
index 0000000..7f7b42c
--- /dev/null
+++ b/features.php
@@ -0,0 +1,283 @@
+<?php
+$nav = "features";
+$title = "GTK+ Features";
+
+ob_start();
+
+if (isset($_GET['new'])) {
+
+$scripts = array(
+	"/scripts/jquery-1.4.4.min.js",
+	"/scripts/features_slider.js"
+);
+?>
+
+<style type="text/css">
+#features_box {
+	position: relative;
+	overflow: hidden;
+	margin-top: 2em;
+	width: 860px;
+}
+.prev, .next {
+	background-image: url(/images/arrows.png);
+	background-repeat: no-repeat;
+	position: absolute;
+	width: 22px;
+	height: 22px;
+	top: 75px;
+	cursor: default;
+}
+.prev:active, .next:active { top: 77px; }
+.prev:active { left: -6px; }
+.next:active { right: -10px; }
+.prev {
+	background-position: top left;
+	left: -8px;
+}
+.next {
+	background-position: top right;
+	right: -8px;
+}
+.list {
+	overflow: hidden;
+	width: 9999px;
+}
+.item {
+	width: 860px;
+	float: left;
+}
+.slider_info, .slider_head {
+	padding: 0 1em;
+}
+</style>
+
+<h2>Features</h2>
+
+<span class="prev"></span>
+<span class="next"></span>
+	
+<div id="features_box">
+	<div class="list">
+		<div class="item">
+			<div class="slider_head"><h3><a name="Stability">Stability</a></h3></div>
+			<div class="slider_info">
+				<p>GTK+ has been developed for over a decade to be able to deliver the enticing features and superb performance that it brings to your application development. GTK+ is supported by a large community of developers and has core maintainers from companies such as <a href="http://www.redhat.com/"; class="external">Red Hat</a>, <a href="http://www.novell.com/"; class="external">Novell</a>, <a href="http://www.lanedo.com/"; class="external">Lanedo</a> and <a href="http://o-hand.com/"; class="external">Opened Hand</a>.</p>
+			</div>
+		</div>
+		<div class="item">
+			<div class="slider_head"><h3><a name="CrossPlatform">Cross Platform</a></h3></div>
+			<div class="slider_info">
+				<p>Originally GTK+ was developed for the X Window System but it has grown over the years to include backend support for other well known windowing systems. Today you can use GTK+ on:</p>
+				<ul class="platform_list">
+					<li class="linux"><a href="download/linux.php">GNU/Linux and Unix</a></li>
+					<li class="windows"><a href="download/win32.php">Windows (32-bit)</a> and <a href="download/win64.php">64-bit</a></li>
+					<li class="macos"><a href="download/macos.php">Mac OS X</a></li>
+				</ul>
+			</div>
+		</div>
+		<div class="item">
+			<div class="slider_head"><h3><a name="LanguageBindings">Language Bindings</a></h3></div>
+			<div class="slider_info">
+				<p>GTK+ is available in many other programming languages thanks to the <a href="language-bindings.php">language bindings</a> available. This makes GTK+ quite an attractive toolkit for application development.</p>
+			</div>
+		</div>
+		<div class="item">
+			<div class="slider_head"><h3><a name="Accommodating">Accommodating</a></h3></div>
+			<div class="slider_info">
+				<p>GTK+ caters for a number features that today's developers are looking for in a toolkit including:</p>
+				<ul>
+					<li>Native look and feel</li>
+					<li>Theme support</li>
+					<li>Thread safety</li>
+					<li>Object orientated approach</li>
+					<li>Internationalization</li>
+					<li>Localization</li>
+					<li>Accessibility</li>
+					<li>Bidirectional text support (LTR/RTL, Left To Right/Right To Left)</li>
+					<li>UTF8 support</li>
+					<li>Documentation</li>
+				</ul>
+			</div>
+		</div>
+		<div class="item">
+			<div class="slider_head"><h3><a name="Interfaces">Interfaces</a></h3></div>
+			<div class="slider_info">
+				<p>GTK+ has a comprehensive collection of core widgets and interfaces for use in your application.</p>
+				<div class="figure">
+					<a href="images/features/twf.png" class="image"><img src="images/features/thumbnail-twf.png" alt="The Widget Factory" /></a>
+				</div>
+				<ul>
+					<li>Windows (normal window or dialog, about and assistant dialogs)</li> 
+					<li>Displays (label, image, progress bar, status bar)</li> 
+					<li>Buttons and toggles (check buttons, radio buttons, toggle buttons and link buttons)</li> 
+					<li>Numerical (horizontal or vertical scales and spin buttons) and text data entry (with or without completion)</li> 
+					<li>Multi-line text editor</li> 
+					<li>Tree, list and icon grid viewer (with customizable renderers and model/view separation)</li> 
+					<li>Combo box (with or without an entry)</li> 
+					<li>Menus (with images, radio buttons and check items)</li> 
+					<li>Toolbars (with radio buttons, toggle buttons and menu buttons)</li> 
+					<li>GtkBuilder (creates your user interface from XML)</li> 
+					<li>Selectors (color selection, file chooser, font selection)</li> 
+					<li>Layouts (tabulated widget, table widget, expander widget, frames, separators and more)</li> 
+					<li>Status icon (notification area on Linux, tray icon on Windows)</li> 
+					<li>Printing widgets</li> 
+					<li>Recently used documents (menu, dialog and manager)</li> 
+				</ul>
+			</div>
+		</div>
+		<div class="item">
+			<div class="slider_head"><h3><a name="Foundations">Foundations</a></h3></div>
+			<div class="slider_info">
+				<p>GTK+ is built on top of GLib. GLib provides the fundamental algorithmic language constructs commonly duplicated in applications. This library has features such as: (this list is not a comprehensive list)</p>
+				<ul>
+					<li>Object and type system</li>
+					<li>Main loop</li>
+					<li>Dynamic loading of modules (i.e. plug-ins)</li>
+					<li>Thread support</li>
+					<li>Timer support</li>
+					<li>Memory allocator</li>
+					<li>Threaded Queues (synchronous and asynchronous)</li>
+					<li>Lists (singly linked, doubly linked, double ended)</li>
+					<li>Hash tables</li>
+					<li>Arrays</li>
+					<li>Trees (N-ary and binary balanced)</li>
+					<li>String utilities and charset handling</li>
+					<li>Lexical scanner and XML parser</li>
+					<li>Base64 (encoding &amp; decoding)</li>
+				</ul>
+			</div>
+		</div>
+
+		<div class="item">
+			<div class="slider_head"><h3><a name="Mobile">Mobile</a></h3></div>
+			<div class="slider_info">
+				<p>The GMAE (<a href="http://www.gnome.org/mobile/"; class="external">GNOME Mobile &amp; Embedded</a>) initiative has advanced the use, development and commercialization of GNOME components as a mobile and embedded user experience platform. It has brought together industry leaders, expert consultants, key developers and the community and industry organizations they represent. As a direct result of this, GTK+ has features pertaining to mobile and embedded platform requirements.</p>
+				<p>GTK+ has been involved in a number of embedded initiatives over the past few years including the development of:</p>
+				<ul>
+					<li>Nokia <a href="http://europe.nokia.com/A4145104"; class="external">770</a> / <a href="http://web.nseries.com/products/#l=products,n800"; class="external">N800</a> / <a href="http://web.nseries.com/products/#l=products,n810"; class="external">N810</a> / <a href="http://maemo.nokia.com/n900/"; class="external">N900</a></li>
+					<li><a href="http://www.laptop.org/"; class="external">One Laptop Per Child Project</a></li>
+					<li><a href="http://www.openmoko.com/"; class="external">OpenMoko</a></li>
+				</ul>
+			</div>
+		</div>
+	</div>
+</div>
+
+<div class="warning">This page is a draft. Append <a href="?new">?new</a> to the URL to see the previous version. Todo:
+<ul>
+	<li>Introduce eye-catchy screenshots and other design elements</li>
+	<li>Include slider 'tabs' along with arrows for better usability</li>
+</ul></div>
+
+<?php } else { ?> 
+<div class="bubbles left">
+
+	<div class="bubble" id="Stability">
+		<h2><a name="Stability">Stability</a></h2>
+		<p>GTK+ has been developed for over a decade to be able to deliver the enticing features and superb performance that it brings to your application development. GTK+ is supported by a large community of developers and has core maintainers from companies such as <a href="http://www.redhat.com/"; class="external">Red Hat</a>, <a href="http://www.novell.com/"; class="external">Novell</a>, <a href="http://www.lanedo.com/"; class="external">Lanedo</a> and <a href="http://o-hand.com/"; class="external">Opened Hand</a>.</p>
+	</div>
+
+	<div class="bubble" id="LanguageBindings">
+		<h2><a name="LanguageBindings">Language Bindings</a></h2>
+		<p>GTK+ is available in many other programming languages thanks to the <a href="language-bindings.php">language bindings</a> available. This makes GTK+ quite an attractive toolkit for application development.</p>
+	</div>
+
+	<div class="bubble" id="Interfaces">
+		<h2><a name="Interfaces">Interfaces</a></h2>
+		<p>GTK+ has a comprehensive collection of core widgets and interfaces for use in your application.</p>
+		<div class="figure">
+			<a href="images/features/twf.png" class="image"><img src="images/features/thumbnail-twf.png" alt="The Widget Factory" /></a>
+		</div>
+		<ul>
+			<li>Windows (normal window or dialog, about and assistant dialogs)</li> 
+			<li>Displays (label, image, progress bar, status bar)</li> 
+			<li>Buttons and toggles (check buttons, radio buttons, toggle buttons and link buttons)</li> 
+			<li>Numerical (horizontal or vertical scales and spin buttons) and text data entry (with or without completion)</li> 
+			<li>Multi-line text editor</li> 
+			<li>Tree, list and icon grid viewer (with customizable renderers and model/view separation)</li> 
+			<li>Combo box (with or without an entry)</li> 
+			<li>Menus (with images, radio buttons and check items)</li> 
+			<li>Toolbars (with radio buttons, toggle buttons and menu buttons)</li> 
+			<li>GtkBuilder (creates your user interface from XML)</li> 
+			<li>Selectors (color selection, file chooser, font selection)</li> 
+			<li>Layouts (tabulated widget, table widget, expander widget, frames, separators and more)</li> 
+			<li>Status icon (notification area on Linux, tray icon on Windows)</li> 
+			<li>Printing widgets</li> 
+			<li>Recently used documents (menu, dialog and manager)</li> 
+		</ul>
+		<!--<img src="http://doc.trolltech.com/4.5/images/plastique-tabwidget.png"; />
+		<img src="http://doc.trolltech.com/4.5/images/plastique-toolbox.png"; />
+		<img src="http://doc.trolltech.com/4.5/images/plastique-treeview.png"; />
+		<img src="http://doc.trolltech.com/4.5/images/plastique-tableview.png"; />
+		<img src="http://doc.trolltech.com/4.5/images/plastique-lcdnumber.png"; />
+		<img src="http://doc.trolltech.com/4.5/images/plastique-dial.png"; />-->
+	</div>
+
+</div>
+<div class="bubbles right">
+
+	<div class="bubble" id="CrossPlatform">
+		<h2><a name="CrossPlatform">Cross Platform</a></h2>
+		<p>Originally GTK+ was developed for the X Window System but it has grown over the years to include backend support for other well known windowing systems. Today you can use GTK+ on:</p>
+		<ul class="platform_list">
+			<li class="linux"><a href="download/linux.php">GNU/Linux and Unix</a></li>
+			<li class="windows"><a href="download/win32.php">Windows (32-bit)</a> and <a href="download/win64.php">64-bit</a></li>
+			<li class="macos"><a href="download/macos.php">Mac OS X</a></li>
+		</ul>
+	</div>
+
+	<div class="bubble" id="Accommodating">
+		<h2><a name="Accommodating">Accommodating</a></h2>
+		<p>GTK+ caters for a number features that today's developers are looking for in a toolkit including:</p>
+		<ul>
+			<li>Native look and feel</li>
+			<li>Theme support</li>
+			<li>Thread safety</li>
+			<li>Object orientated approach</li>
+			<li>Internationalization</li>
+			<li>Localization</li>
+			<li>Accessibility</li>
+			<li>Bidirectional text support (LTR/RTL, Left To Right/Right To Left)</li>
+			<li>UTF8 support</li>
+			<li>Documentation</li>
+		</ul>
+	</div>
+
+	<div class="bubble" id="Foundations">
+		<h2><a name="Foundations">Foundations</a></h2>
+		<p>GTK+ is built on top of GLib. GLib provides the fundamental algorithmic language constructs commonly duplicated in applications. This library has features such as: (this list is not a comprehensive list)</p>
+		<ul>
+			<li>Object and type system</li>
+			<li>Main loop</li>
+			<li>Dynamic loading of modules (i.e. plug-ins)</li>
+			<li>Thread support</li>
+			<li>Timer support</li>
+			<li>Memory allocator</li>
+			<li>Threaded Queues (synchronous and asynchronous)</li>
+			<li>Lists (singly linked, doubly linked, double ended)</li>
+			<li>Hash tables</li>
+			<li>Arrays</li>
+			<li>Trees (N-ary and binary balanced)</li>
+			<li>String utilities and charset handling</li>
+			<li>Lexical scanner and XML parser</li>
+			<li>Base64 (encoding &amp; decoding)</li>
+		</ul>
+	</div>
+
+	<div class="bubble" id="Mobile">
+		<h2><a name="Mobile">Mobile</a></h2>
+		<p>The GMAE (<a href="http://www.gnome.org/mobile/"; class="external">GNOME Mobile &amp; Embedded</a>) initiative has advanced the use, development and commercialization of GNOME components as a mobile and embedded user experience platform. It has brought together industry leaders, expert consultants, key developers and the community and industry organizations they represent. As a direct result of this, GTK+ has features pertaining to mobile and embedded platform requirements.</p>
+		<p>GTK+ has been involved in a number of embedded initiatives over the past few years including the development of:</p>
+		<ul>
+			<li>Nokia <a href="http://europe.nokia.com/A4145104"; class="external">770</a> / <a href="http://web.nseries.com/products/#l=products,n800"; class="external">N800</a> / <a href="http://web.nseries.com/products/#l=products,n810"; class="external">N810</a> / <a href="http://maemo.nokia.com/n900/"; class="external">N900</a></li>
+			<li><a href="http://www.laptop.org/"; class="external">One Laptop Per Child Project</a></li>
+			<li><a href="http://www.openmoko.com/"; class="external">OpenMoko</a></li>
+		</ul>
+	</div>
+
+</div>
+
+<?php
+}
+require "template.php";
diff --git a/gtk-doc/devhelp2.xsd.html b/gtk-doc/devhelp2.xsd.html
new file mode 100755
index 0000000..baa710a
--- /dev/null
+++ b/gtk-doc/devhelp2.xsd.html
@@ -0,0 +1,1786 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
+<html xmlns="http://www.w3.org/1999/xhtml";>
+  <head>
+    <title>XML Schema Documentation</title>
+    <meta http-equiv="Content-Type" content="text/xml; charset=iso-8859-1" />
+    <style type="text/css">
+/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+/* More-configurable styles */
+
+/******** General ********/
+
+/* Document body */
+body {
+   color: Black;
+   background-color: White;
+   font-family: Arial, sans-serif;
+   font-size: 10pt;
+}
+/* Horizontal rules */
+hr {
+   color: black;
+}
+/* Document title */
+h1 {
+   font-size: 18pt;
+   letter-spacing: 2px;
+   border-bottom: 1px #ccc solid;
+   padding-top: 5px;
+   padding-bottom: 5px;
+}
+/* Main section headers */
+h2 {
+   font-size: 14pt;
+   letter-spacing: 1px;
+}
+/* Sub-section headers */
+h3, h3 a, h3 span {
+   font-size: 12pt;
+   font-weight: bold;
+   color: black;
+}
+/* Table displaying the properties of the schema components or the
+   schema document itself */
+table.properties th, table.properties th a {
+   color: black;
+   background-color: #F99; /* Pink */
+}
+table.properties td {
+   background-color: #eee; /* Gray */
+}
+
+
+/******** Table of Contents Section ********/
+
+/* Controls for switching between printing and viewing modes */
+div#printerControls {
+   color: #963; /* Orange-brown */
+}
+/* Controls that can collapse or expand all XML Instance
+   Representation and Schema Component Representation boxes */
+div#globalControls {
+   border: 2px solid #999;
+}
+
+
+/******** Schema Document Properties Section ********/
+
+/* Table displaying the namespaces declared in the schema */
+table.namespaces th {
+   background-color: #ccc;
+}
+table.namespaces td {
+   background-color: #eee;
+}
+/* Target namespace of the schema */
+span.targetNS {
+   color: #06C;
+   font-weight: bold;
+}
+
+
+/******** Schema Components' Sections ********/
+
+/* Name of schema component */
+.name {
+   color: #F93; /* Orange */
+}
+
+/* Hierarchy table */
+table.hierarchy {
+   border: 2px solid #999; /* Gray */
+}
+
+/* XML Instance Representation table */
+div.sample div.contents {
+   border: 2px dashed black;
+}
+
+/* Schema Component Representation table */
+div.schemaComponent div.contents {
+   border: 2px black solid;
+}
+
+
+/******** Glossary Section ********/
+
+/* Glossary Terms */
+.glossaryTerm {
+   color: #036; /* Blue */
+}
+
+
+/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+/* Printer-version styles */
+
+ media print {
+
+/* Ensures that controls are hidden when printing */
+div#printerControls {
+   visibility: hidden;
+}
+div#globalControls {
+   visibility: hidden;
+}
+#legend {
+   display: none;
+}
+#legendTOC {
+   display: none;
+}
+#glossary {
+   display: none;
+}
+#glossaryTOC {
+   display: none;
+}
+
+}
+
+/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+/* Base styles */
+
+/******** General ********/
+
+/* Unordered lists */
+ul {
+   margin-left: 1.5em;
+   margin-bottom: 0em;
+}
+/* Tables */
+table {
+   margin-top: 10px;
+   margin-bottom: 10px;
+   margin-left: 2px;
+   margin-right: 2px;
+}
+table th, table td {
+   font-size: 10pt;
+   vertical-align: top;
+   padding-top: 3px;
+   padding-bottom: 3px;
+   padding-left: 10px;
+   padding-right: 10px;
+}
+table th {
+   font-weight: bold;
+   text-align: left;
+}
+/* Table displaying the properties of the schema components or the
+   schema document itself */
+table.properties {
+   width: 90%;
+}
+table.properties th {
+   width: 30%;
+}
+/* Boxes that can make its content appear and disappear*/
+div.box {
+   margin: 1em;
+}
+   /* Box caption */
+div.box span.caption {
+   font-weight: bold;
+}
+   /* Button to open and close the box */
+div.box input.control {
+   width: 1.4em;
+   height: 1.4em;
+   text-align: center;
+   vertical-align: middle;
+   font-size: 11pt;
+}
+   /* Box contents */
+div.box div.contents {
+   margin-top: 3px;
+}
+
+
+/******** Table of Contents Section ********/
+
+/* Controls for switching between printing and viewing modes */
+div#printerControls {
+   white-space: nowrap;
+   font-weight: bold;
+   padding: 5px;
+   margin: 5px;
+}
+/* Controls that can collapse or expand all XML Instance
+   Representation and Schema Component Representation boxes */
+div#globalControls {
+   padding: 10px;
+   margin: 5px;
+}
+
+
+/******** Schema Document Properties Section ********/
+
+/* Table displaying the namespaces declared in the schema */
+table.namespaces th {
+}
+table.namespaces td {
+}
+/* Target namespace of the schema */
+span.targetNS {
+}
+
+
+/******** Schema Components' Sections ********/
+
+/* Name of schema component */
+.name {
+}
+
+/* Hierarchy table */
+table.hierarchy {
+   width: 90%;
+}
+table.hierarchy th {
+   font-weight: normal;
+   font-style: italic;
+   width: 20%;
+}
+table.hierarchy th, table.hierarchy td {
+   padding: 5px;
+}
+
+/* XML Instance Representation table */
+div.sample {
+   width: 90%;
+}
+div.sample div.contents {
+   padding: 5px;
+   font-family: Courier New, sans-serif;
+   font-size: 10pt;
+}
+   /* Normal elements and attributes */
+div.sample div.contents, div.sample div.contents a {
+   color: black;
+}
+   /* Group Headers */
+div.sample div.contents .group, div.sample div.contents .group a {
+   color: #999; /* Light gray */
+}
+   /* Type Information */
+div.sample div.contents .type, div.sample div.contents .type a {
+   color: #999; /* Light gray */
+}
+   /* Occurrence Information */
+div.sample div.contents .occurs, div.sample div.contents .occurs a {
+   color: #999; /* Light gray */
+}
+   /* Fixed values */
+div.sample div.contents .fixed {
+   color: #063; /* Green */
+   font-weight: bold;
+}
+   /* Simple type constraints */
+div.sample div.contents .constraint, div.sample div.contents .constraint a {
+   color: #999; /* Light gray */
+}
+   /* Elements and attributes inherited from base type */
+div.sample div.contents .inherited, div.sample div.contents .inherited a {
+   color: #666; /* Dark gray */
+}
+   /* Elements and attributes added to or changed from base type */
+div.sample div.contents .newFields {
+   font-weight: bold;
+}
+   /* Other type of information */
+div.sample div.contents .other, div.sample div.contents .other a {
+   color: #369; /* Blue */
+   font-style: italic;
+}
+   /* Link to open up window displaying documentation */
+div.sample div.contents a.documentation {
+   text-decoration: none;
+   padding-left: 3px;
+   padding-right: 3px;
+   padding-top: 0px;
+   padding-bottom: 0px;
+   font-weight: bold;
+   font-size: 11pt;
+   background-color: #FFD;
+   color: #069;
+}
+   /* Invert colors when hovering over link to open up window 
+      displaying documentation */
+div.sample div.contents a.documentation:hover {
+   color: #FFD;
+   background-color: #069;
+}
+
+/* Schema Component Representation table */
+div.schemaComponent {
+   width: 90%;
+}
+div.schemaComponent div.contents {
+   font-family: Courier New, sans-serif;
+   font-size: 10pt;
+   padding: 5px;
+}
+   /* Syntax characters */
+div.schemaComponent div.contents {
+   color: #00f; /* blue */
+}
+   /* Element and attribute tags */
+div.schemaComponent div.contents .scTag {
+   color: #933; /* maroon */
+}
+   /* Element and attribute content */
+div.schemaComponent div.contents .scContent, div.schemaComponent div.contents .scContent a {
+   color: black;
+   font-weight: bold;
+}
+   /* Comments */
+div.schemaComponent div.contents .comment {
+   color: #999; /* Light gray */
+}
+
+/******** Legend Section ********/
+
+div#legend table, div#legend div {
+   margin-bottom: 3px;
+}
+div#legend div.hint {
+   color: #999; /* Light gray */
+   width: 90%;
+   margin-left: 1em;
+   margin-bottom: 2em;
+}
+
+
+/******** Glossary Section ********/
+
+/* Glossary Terms */
+.glossaryTerm {
+   font-weight: bold;
+}
+
+
+/******** Footer ********/
+
+.footer {
+   font-size: 8pt;
+}
+</style>
+    <script type="text/javascript">
+<!--
+/* IDs of XML Instance Representation boxes */
+var xiBoxes = new Array('type_keyword-type_xibox', 'type_language-type_xibox', 'attribute_title_xibox', 'attribute_link_xibox', 'attribute_author_xibox', 'attribute_name_xibox', 'attribute_version_xibox', 'attribute_language_xibox', 'attribute_type_xibox', 'attribute_since_xibox', 'attribute_deprecated_xibox', 'element_sub_xibox', 'element_chapters_xibox', 'element_keyword_xibox', 'element_functions_xibox', 'element_book_xibox');
+/* IDs of Schema Component Representation boxes */
+var scBoxes = new Array('schema_scbox', 'type_keyword-type_scbox', 'type_language-type_scbox', 'attribute_title_scbox', 'attribute_link_scbox', 'attribute_author_scbox', 'attribute_name_scbox', 'attribute_version_scbox', 'attribute_language_scbox', 'attribute_type_scbox', 'attribute_since_scbox', 'attribute_deprecated_scbox', 'element_sub_scbox', 'element_chapters_scbox', 'element_keyword_scbox', 'element_functions_scbox', 'element_book_scbox');
+
+/**
+ * Can get the ID of the button controlling
+ * a collapseable box by concatenating
+ * this string onto the ID of the box itself.
+ */
+var B_SFIX = "_button";
+
+/**
+ * Counter of documentation windows
+ * Used to give each window a unique name
+ */
+var windowCount = 0;
+
+/**
+ * Returns an element in the current HTML document.
+ * 
+ * @param elementID Identifier of HTML element
+ * @return               HTML element object
+ */
+function getElementObject(elementID) {
+    var elemObj = null;
+    if (document.getElementById) {
+        elemObj = document.getElementById(elementID);
+    }
+    return elemObj;
+}             
+
+/**
+ * Closes a collapseable box.
+ * 
+ * @param boxObj       Collapseable box
+ * @param buttonObj Button controlling box
+ */
+function closeBox(boxObj, buttonObj) {
+  if (boxObj == null || buttonObj == null) {
+     // Box or button not found
+  } else {
+     // Change 'display' CSS property of box
+     boxObj.style.display="none";
+
+     // Change text of button 
+     if (boxObj.style.display=="none") {
+        buttonObj.value=" + ";
+     }
+  }
+}
+
+/**
+ * Opens a collapseable box.
+ * 
+ * @param boxObj       Collapseable box
+ * @param buttonObj Button controlling box
+ */
+function openBox(boxObj, buttonObj) {
+  if (boxObj == null || buttonObj == null) {
+     // Box or button not found
+  } else {
+     // Change 'display' CSS property of box
+     boxObj.style.display="block";
+
+     // Change text of button
+     if (boxObj.style.display=="block") {
+        buttonObj.value=" - ";
+     }
+  }
+}
+
+/**
+ * Sets the state of a collapseable box.
+ * 
+ * @param boxID Identifier of box
+ * @param open If true, box is "opened",
+ *             Otherwise, box is "closed".
+ */
+function setState(boxID, open) {
+  var boxObj = getElementObject(boxID);
+  var buttonObj = getElementObject(boxID+B_SFIX);
+  if (boxObj == null || buttonObj == null) {
+     // Box or button not found
+  } else if (open) {
+     openBox(boxObj, buttonObj);
+     // Make button visible
+     buttonObj.style.display="inline";
+  } else {
+     closeBox(boxObj, buttonObj);
+     // Make button visible
+     buttonObj.style.display="inline";
+  }
+}
+
+/**
+ * Switches the state of a collapseable box, e.g.
+ * if it's opened, it'll be closed, and vice versa.
+ * 
+ * @param boxID Identifier of box
+ */
+function switchState(boxID) {
+  var boxObj = getElementObject(boxID);
+  var buttonObj = getElementObject(boxID+B_SFIX);
+  if (boxObj == null || buttonObj == null) {
+     // Box or button not found
+  } else if (boxObj.style.display=="none") {
+     // Box is closed, so open it
+     openBox(boxObj, buttonObj);
+  } else if (boxObj.style.display=="block") {
+     // Box is opened, so close it
+     closeBox(boxObj, buttonObj);
+  }
+}
+
+/**
+ * Closes all boxes in a given list.
+ * 
+ * @param boxList Array of box IDs
+ */
+function collapseAll(boxList) {
+  var idx;
+  for (idx = 0; idx < boxList.length; idx++) {
+     var boxObj = getElementObject(boxList[idx]);
+     var buttonObj = getElementObject(boxList[idx]+B_SFIX);
+     closeBox(boxObj, buttonObj);
+  }
+}
+
+/**
+ * Open all boxes in a given list.
+ * 
+ * @param boxList Array of box IDs
+ */
+function expandAll(boxList) {
+  var idx;
+  for (idx = 0; idx < boxList.length; idx++) {
+     var boxObj = getElementObject(boxList[idx]);
+     var buttonObj = getElementObject(boxList[idx]+B_SFIX);
+     openBox(boxObj, buttonObj);
+  }
+}
+
+/**
+ * Makes all the control buttons of boxes appear.
+ * 
+ * @param boxList Array of box IDs
+ */
+function viewControlButtons(boxList) {
+    var idx;
+    for (idx = 0; idx < boxList.length; idx++) {
+        buttonObj = getElementObject(boxList[idx]+B_SFIX);
+        if (buttonObj != null) {
+            buttonObj.style.display = "inline";
+        }
+    }
+}
+
+/**
+ * Makes all the control buttons of boxes disappear.
+ * 
+ * @param boxList Array of box IDs
+ */
+function hideControlButtons(boxList) {
+    var idx;
+    for (idx = 0; idx < boxList.length; idx++) {
+        buttonObj = getElementObject(boxList[idx]+B_SFIX);
+        if (buttonObj != null) {
+            buttonObj.style.display = "none";
+        }
+    }
+}
+
+/**
+ * Sets the page for either printing mode
+ * or viewing mode. In printing mode, the page
+ * is made to be more readable when printing it out.
+ * In viewing mode, the page is more browsable.
+ *
+ * @param isPrinterVersion If true, display in
+ *                                 printing mode; otherwise, 
+ *                                 in viewing mode
+ */
+function displayMode(isPrinterVersion) {
+    var obj;
+    if (isPrinterVersion) {
+        // Hide global control buttons
+        obj = getElementObject("globalControls");
+        if (obj != null) {
+            obj.style.visibility = "hidden";
+        }
+        // Hide Legend
+        obj = getElementObject("legend");
+        if (obj != null) {
+            obj.style.display = "none";
+        }
+        obj = getElementObject("legendTOC");
+        if (obj != null) {
+            obj.style.display = "none";
+        }
+        // Hide Glossary
+        obj = getElementObject("glossary");
+        if (obj != null) {
+            obj.style.display = "none";
+        }
+        obj = getElementObject("glossaryTOC");
+        if (obj != null) {
+            obj.style.display = "none";
+        }
+
+        // Expand all XML Instance Representation tables
+        expandAll(xiBoxes);
+        // Expand all Schema Component Representation tables
+        expandAll(scBoxes);
+
+        // Hide Control buttons
+        hideControlButtons(xiBoxes);
+        hideControlButtons(scBoxes);
+    } else {
+        // View global control buttons
+        obj = getElementObject("globalControls");
+        if (obj != null) {
+            obj.style.visibility = "visible";
+        }
+        // View Legend
+        obj = getElementObject("legend");
+        if (obj != null) {
+            obj.style.display = "block";
+        }
+        obj = getElementObject("legendTOC");
+        if (obj != null) {
+            obj.style.display = "block";
+        }
+        // View Glossary
+        obj = getElementObject("glossary");
+        if (obj != null) {
+            obj.style.display = "block";
+        }
+        obj = getElementObject("glossaryTOC");
+        if (obj != null) {
+            obj.style.display = "block";
+        }
+
+        // Expand all XML Instance Representation tables
+        expandAll(xiBoxes);
+        // Collapse all Schema Component Representation tables
+        collapseAll(scBoxes);
+
+        // View Control buttons
+        viewControlButtons(xiBoxes);
+        viewControlButtons(scBoxes);
+    }
+}
+
+/**
+ * Opens up a window displaying the documentation
+ * of a schema component in the XML Instance
+ * Representation table.
+ * 
+ * @param compDesc      Description of schema component 
+ * @param compName      Name of schema component 
+ * @param docTextArray Array containing the paragraphs 
+ *                           of the new document
+ */
+function viewDocumentation(compDesc, compName, docTextArray) {
+  var width = 400;
+  var height = 200;
+  var locX = 100;
+  var locY = 200;
+
+  /* Generate content */
+  var actualText = "<html>";
+  actualText += "<head><title>";
+  actualText += compDesc;
+  if (compName != '') {
+     actualText += ": " + compName;
+  }
+  actualText += "</title></head>";
+  actualText += "<body bgcolor=\"#FFFFEE\">";
+  // Title
+  actualText += "<p style=\"font-family: Arial, sans-serif; font-size: 12pt; font-weight: bold; letter-spacing:1px;\">";
+  actualText += compDesc;
+  if (compName != '') {
+     actualText += ": <span style=\"color:#006699\">" + compName + "</span>";
+  }
+  actualText += "</p>";
+  // Documentation
+  var idx;
+  for (idx = 0; idx < docTextArray.length; idx++) {
+     actualText += "<p style=\"font-family: Arial, sans-serif; font-size: 10pt;\">" + docTextArray[idx] + "</p>";
+  }
+  // Link to close window
+  actualText += "<a href=\"javascript:void(0)\" onclick=\"window.close();\" style=\"font-family: Arial, sans-serif; font-size: 8pt;\">Close</a>";
+  actualText += "</body></html>";
+
+  /* Display window */
+  windowCount++;
+  var docWindow = window.open("", "documentation"+windowCount, "toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable,alwaysRaised,dependent,titlebar=no,width="+width+",height="+height+",screenX="+locX+",left="+locX+",screenY="+locY+",top="+locY);
+  docWindow.document.write(actualText);
+}
+
+// -->
+</script>
+  </head>
+  <body>
+    <h1>
+      <a name="top" id="top">XML Schema Documentation</a>
+    </h1>
+    <div style="float: right;">
+      <div id="printerControls" style="display:none;"><input type="checkbox" onclick="displayMode(this.checked)" />Printer-friendly Version</div>
+      <script type="text/javascript">
+<!--
+
+var pc = getElementObject("printerControls");
+if (pc != null) {
+   pc.style.display="block";
+}
+               
+// -->
+</script>
+      <div id="globalControls" style="display:none">
+        <strong>XML Instance Representation:</strong>
+        <br />
+        <span style="margin-left: 1em; white-space: nowrap">[ <a href="javascript:void(0)" onclick="expandAll(xiBoxes)">Expand All</a> | <a href="javascript:void(0)" onclick="collapseAll(xiBoxes)">Collapse All</a> ]</span>
+        <br />
+        <br />
+        <strong>Schema Component Representation:</strong>
+        <br />
+        <span style="margin-left: 1em; white-space: nowrap">[ <a href="javascript:void(0)" onclick="expandAll(scBoxes)">Expand All</a> | <a href="javascript:void(0)" onclick="collapseAll(scBoxes)">Collapse All</a> ]</span>
+      </div>
+      <script type="text/javascript">
+<!--
+
+var gc = getElementObject("globalControls");
+if (gc != null) {
+   gc.style.display="block";
+}
+               
+// -->
+</script>
+    </div>
+    <h2>Table of Contents</h2>
+    <ul>
+      <li>
+        <a href="#SchemaProperties">Schema Document Properties</a>
+      </li>
+      <li>
+        <a href="#SchemaDeclarations">Global Declarations</a>
+        <ul>
+          <li>
+            <a href="#attribute_author">Attribute: <strong>author</strong></a>
+          </li>
+          <li>
+            <a href="#attribute_deprecated">Attribute: <strong>deprecated</strong></a>
+          </li>
+          <li>
+            <a href="#attribute_language">Attribute: <strong>language</strong></a>
+          </li>
+          <li>
+            <a href="#attribute_link">Attribute: <strong>link</strong></a>
+          </li>
+          <li>
+            <a href="#attribute_name">Attribute: <strong>name</strong></a>
+          </li>
+          <li>
+            <a href="#attribute_since">Attribute: <strong>since</strong></a>
+          </li>
+          <li>
+            <a href="#attribute_title">Attribute: <strong>title</strong></a>
+          </li>
+          <li>
+            <a href="#attribute_type">Attribute: <strong>type</strong></a>
+          </li>
+          <li>
+            <a href="#attribute_version">Attribute: <strong>version</strong></a>
+          </li>
+          <li>
+            <a href="#element_book">Element: <strong>book</strong></a>
+          </li>
+          <li>
+            <a href="#element_chapters">Element: <strong>chapters</strong></a>
+          </li>
+          <li>
+            <a href="#element_functions">Element: <strong>functions</strong></a>
+          </li>
+          <li>
+            <a href="#element_keyword">Element: <strong>keyword</strong></a>
+          </li>
+          <li>
+            <a href="#element_sub">Element: <strong>sub</strong></a>
+          </li>
+        </ul>
+      </li>
+      <li>
+        <a href="#SchemaDefinitions">Global Definitions</a>
+        <ul>
+          <li>
+            <a href="#type_keyword-type">Simple Type: <strong>keyword-type</strong></a>
+          </li>
+          <li>
+            <a href="#type_language-type">Simple Type: <strong>language-type</strong></a>
+          </li>
+        </ul>
+      </li>
+    </ul>
+    <ul id="legendTOC" style="margin-top: 0em">
+      <li>
+        <a href="#Legend">Legend</a>
+      </li>
+    </ul>
+    <ul id="glossaryTOC" style="margin-top: 0em">
+      <li>
+        <a href="#Glossary">Glossary</a>
+      </li>
+    </ul>
+    <div style="text-align: right; clear: both;">
+      <a href="#top">top</a>
+    </div>
+    <hr />
+    <h2>
+      <a name="SchemaProperties" id="SchemaProperties">Schema Document Properties</a>
+    </h2>
+    <table class="properties">
+      <tr>
+        <th>
+          <a title="Look up 'Target Namespace' in glossary" href="#term_TargetNS">Target Namespace</a>
+        </th>
+        <td>
+          <span class="targetNS">urn:devhelp</span>
+        </td>
+      </tr>
+      <tr>
+        <th>Element and Attribute Namespaces</th>
+        <td>
+          <ul>
+            <li>Global element and attribute declarations belong to this schema's target namespace.</li>
+            <li>By default, local element declarations belong to this schema's target namespace.</li>
+            <li>By default, local attribute declarations have no namespace.</li>
+          </ul>
+        </td>
+      </tr>
+      <tr>
+        <th>Documentation</th>
+        <td>
+      Devhelp2 files are use in the 'devhelp' documentation browser.
+    </td>
+      </tr>
+    </table>
+    <h3>Declared Namespaces</h3>
+    <table class="namespaces">
+      <tr>
+        <th>Prefix</th>
+        <th>Namespace</th>
+      </tr>
+      <tr>
+        <td>
+          <a name="ns_" id="ns_">Default namespace</a>
+        </td>
+        <td>
+          <span class="targetNS">urn:devhelp</span>
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <a name="ns_xml" id="ns_xml">xml</a>
+        </td>
+        <td>http://www.w3.org/XML/1998/namespace</td>
+      </tr>
+      <tr>
+        <td>
+          <a name="ns_xsd" id="ns_xsd">xsd</a>
+        </td>
+        <td>http://www.w3.org/2001/XMLSchema</td>
+      </tr>
+    </table>
+    <div class="schemaComponent box">
+      <div><input type="button" id="schema_scbox_button" class="control" onclick="switchState('schema_scbox'); return false;" style="display: none" /> <span class="caption">Schema Component Representation</span></div>
+      <div id="schema_scbox" class="contents">
+        <div style="margin-left: 0em">&lt;<span class="scTag">xsd:schema</span> <span class="scTag">targetNamespace</span>="<span class="scContent">urn:devhelp</span>" <span class="scTag">elementFormDefault</span>="<span class="scContent">qualified</span>"&gt;<div class="scContent" style="margin-left: 1.5em">...</div>&lt;/<span class="scTag">xsd:schema</span>&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('schema_scbox', false);
+// -->
+</script>
+    </div>
+    <div style="text-align: right; clear: both;">
+      <a href="#top">top</a>
+    </div>
+    <hr />
+    <h2>
+      <a name="SchemaDeclarations" id="SchemaDeclarations">Global Declarations</a>
+    </h2>
+    <h3>Attribute: <a name="attribute_author" class="name" id="attribute_author">author</a></h3>
+    <table class="properties">
+      <tr>
+        <th>Name</th>
+        <td>author</td>
+      </tr>
+      <tr>
+        <th>Type</th>
+        <td>
+          <span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:string</span>
+        </td>
+      </tr>
+      <tr>
+        <th>Documentation</th>
+        <td>
+        Author of the document. Multiple authors are separated by ','.
+      </td>
+      </tr>
+    </table>
+    <div class="sample box">
+      <div><input type="button" id="attribute_author_xibox_button" class="control" onclick="switchState('attribute_author_xibox'); return false;" style="display: none" /> <span class="caption">XML Instance Representation</span></div>
+      <div id="attribute_author_xibox" class="contents">
+        <span style="margin-left: 0em"> author="<span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:string</span>"</span>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('attribute_author_xibox', true);
+// -->
+</script>
+    </div>
+    <div class="schemaComponent box">
+      <div><input type="button" id="attribute_author_scbox_button" class="control" onclick="switchState('attribute_author_scbox'); return false;" style="display: none" /> <span class="caption">Schema Component Representation</span></div>
+      <div id="attribute_author_scbox" class="contents">
+        <div style="margin-left: 0em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">name</span>="<span class="scContent">author</span>" <span class="scTag">type</span>="<span class="scContent"><span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:string</span></span>"/&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('attribute_author_scbox', false);
+// -->
+</script>
+    </div>
+    <div style="text-align: right; clear: both;">
+      <a href="#top">top</a>
+    </div>
+    <hr />
+    <h3>Attribute: <a name="attribute_deprecated" class="name" id="attribute_deprecated">deprecated</a></h3>
+    <table class="properties">
+      <tr>
+        <th>Name</th>
+        <td>deprecated</td>
+      </tr>
+      <tr>
+        <th>Type</th>
+        <td>
+          <span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:boolean</span>
+        </td>
+      </tr>
+      <tr>
+        <th>Documentation</th>
+        <td>
+        Marks the keyword as deprecated.
+      </td>
+      </tr>
+    </table>
+    <div class="sample box">
+      <div><input type="button" id="attribute_deprecated_xibox_button" class="control" onclick="switchState('attribute_deprecated_xibox'); return false;" style="display: none" /> <span class="caption">XML Instance Representation</span></div>
+      <div id="attribute_deprecated_xibox" class="contents">
+        <span style="margin-left: 0em"> deprecated="<span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:boolean</span>"</span>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('attribute_deprecated_xibox', true);
+// -->
+</script>
+    </div>
+    <div class="schemaComponent box">
+      <div><input type="button" id="attribute_deprecated_scbox_button" class="control" onclick="switchState('attribute_deprecated_scbox'); return false;" style="display: none" /> <span class="caption">Schema Component Representation</span></div>
+      <div id="attribute_deprecated_scbox" class="contents">
+        <div style="margin-left: 0em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">name</span>="<span class="scContent">deprecated</span>" <span class="scTag">type</span>="<span class="scContent"><span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:boolean</span></span>"/&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('attribute_deprecated_scbox', false);
+// -->
+</script>
+    </div>
+    <div style="text-align: right; clear: both;">
+      <a href="#top">top</a>
+    </div>
+    <hr />
+    <h3>Attribute: <a name="attribute_language" class="name" id="attribute_language">language</a></h3>
+    <table class="properties">
+      <tr>
+        <th>Name</th>
+        <td>language</td>
+      </tr>
+      <tr>
+        <th>Type</th>
+        <td>
+          <span class="type">
+            <a title="Jump to &quot;language-type&quot; type definition." href="#type_language-type">language-type</a>
+          </span>
+        </td>
+      </tr>
+      <tr>
+        <th>Documentation</th>
+        <td>
+        Programing language this manual refers to.
+      </td>
+      </tr>
+    </table>
+    <div class="sample box">
+      <div><input type="button" id="attribute_language_xibox_button" class="control" onclick="switchState('attribute_language_xibox'); return false;" style="display: none" /> <span class="caption">XML Instance Representation</span></div>
+      <div id="attribute_language_xibox" class="contents">
+        <span style="margin-left: 0em"> language="<span class="type"><a title="Jump to &quot;language-type&quot; type definition." href="#type_language-type">language-type</a></span>"</span>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('attribute_language_xibox', true);
+// -->
+</script>
+    </div>
+    <div class="schemaComponent box">
+      <div><input type="button" id="attribute_language_scbox_button" class="control" onclick="switchState('attribute_language_scbox'); return false;" style="display: none" /> <span class="caption">Schema Component Representation</span></div>
+      <div id="attribute_language_scbox" class="contents">
+        <div style="margin-left: 0em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">name</span>="<span class="scContent">language</span>" <span class="scTag">type</span>="<span class="scContent"><span class="type"><a title="Jump to &quot;language-type&quot; type definition." href="#type_language-type">language-type</a></span></span>"/&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('attribute_language_scbox', false);
+// -->
+</script>
+    </div>
+    <div style="text-align: right; clear: both;">
+      <a href="#top">top</a>
+    </div>
+    <hr />
+    <h3>Attribute: <a name="attribute_link" class="name" id="attribute_link">link</a></h3>
+    <table class="properties">
+      <tr>
+        <th>Name</th>
+        <td>link</td>
+      </tr>
+      <tr>
+        <th>Type</th>
+        <td>
+          <span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:string</span>
+        </td>
+      </tr>
+      <tr>
+        <th>Documentation</th>
+        <td>
+        Entry point to the manual. Can be given as a relative path to the
+        location of the devhelp2 file..
+      </td>
+      </tr>
+    </table>
+    <div class="sample box">
+      <div><input type="button" id="attribute_link_xibox_button" class="control" onclick="switchState('attribute_link_xibox'); return false;" style="display: none" /> <span class="caption">XML Instance Representation</span></div>
+      <div id="attribute_link_xibox" class="contents">
+        <span style="margin-left: 0em"> link="<span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:string</span>"</span>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('attribute_link_xibox', true);
+// -->
+</script>
+    </div>
+    <div class="schemaComponent box">
+      <div><input type="button" id="attribute_link_scbox_button" class="control" onclick="switchState('attribute_link_scbox'); return false;" style="display: none" /> <span class="caption">Schema Component Representation</span></div>
+      <div id="attribute_link_scbox" class="contents">
+        <div style="margin-left: 0em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">name</span>="<span class="scContent">link</span>" <span class="scTag">type</span>="<span class="scContent"><span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:string</span></span>"/&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('attribute_link_scbox', false);
+// -->
+</script>
+    </div>
+    <div style="text-align: right; clear: both;">
+      <a href="#top">top</a>
+    </div>
+    <hr />
+    <h3>Attribute: <a name="attribute_name" class="name" id="attribute_name">name</a></h3>
+    <table class="properties">
+      <tr>
+        <th>Name</th>
+        <td>name</td>
+      </tr>
+      <tr>
+        <th>Type</th>
+        <td>
+          <span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:string</span>
+        </td>
+      </tr>
+      <tr>
+        <th>Documentation</th>
+        <td>
+        Short name of the manual.
+      </td>
+      </tr>
+    </table>
+    <div class="sample box">
+      <div><input type="button" id="attribute_name_xibox_button" class="control" onclick="switchState('attribute_name_xibox'); return false;" style="display: none" /> <span class="caption">XML Instance Representation</span></div>
+      <div id="attribute_name_xibox" class="contents">
+        <span style="margin-left: 0em"> name="<span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:string</span>"</span>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('attribute_name_xibox', true);
+// -->
+</script>
+    </div>
+    <div class="schemaComponent box">
+      <div><input type="button" id="attribute_name_scbox_button" class="control" onclick="switchState('attribute_name_scbox'); return false;" style="display: none" /> <span class="caption">Schema Component Representation</span></div>
+      <div id="attribute_name_scbox" class="contents">
+        <div style="margin-left: 0em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">name</span>="<span class="scContent">name</span>" <span class="scTag">type</span>="<span class="scContent"><span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:string</span></span>"/&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('attribute_name_scbox', false);
+// -->
+</script>
+    </div>
+    <div style="text-align: right; clear: both;">
+      <a href="#top">top</a>
+    </div>
+    <hr />
+    <h3>Attribute: <a name="attribute_since" class="name" id="attribute_since">since</a></h3>
+    <table class="properties">
+      <tr>
+        <th>Name</th>
+        <td>since</td>
+      </tr>
+      <tr>
+        <th>Type</th>
+        <td>
+          <span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:string</span>
+        </td>
+      </tr>
+      <tr>
+        <th>Documentation</th>
+        <td>
+        Version since that the keyword is part of the API.
+      </td>
+      </tr>
+    </table>
+    <div class="sample box">
+      <div><input type="button" id="attribute_since_xibox_button" class="control" onclick="switchState('attribute_since_xibox'); return false;" style="display: none" /> <span class="caption">XML Instance Representation</span></div>
+      <div id="attribute_since_xibox" class="contents">
+        <span style="margin-left: 0em"> since="<span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:string</span>"</span>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('attribute_since_xibox', true);
+// -->
+</script>
+    </div>
+    <div class="schemaComponent box">
+      <div><input type="button" id="attribute_since_scbox_button" class="control" onclick="switchState('attribute_since_scbox'); return false;" style="display: none" /> <span class="caption">Schema Component Representation</span></div>
+      <div id="attribute_since_scbox" class="contents">
+        <div style="margin-left: 0em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">name</span>="<span class="scContent">since</span>" <span class="scTag">type</span>="<span class="scContent"><span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:string</span></span>"/&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('attribute_since_scbox', false);
+// -->
+</script>
+    </div>
+    <div style="text-align: right; clear: both;">
+      <a href="#top">top</a>
+    </div>
+    <hr />
+    <h3>Attribute: <a name="attribute_title" class="name" id="attribute_title">title</a></h3>
+    <table class="properties">
+      <tr>
+        <th>Name</th>
+        <td>title</td>
+      </tr>
+      <tr>
+        <th>Type</th>
+        <td>
+          <span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:string</span>
+        </td>
+      </tr>
+      <tr>
+        <th>Documentation</th>
+        <td>
+        Title of the reference manual.
+      </td>
+      </tr>
+    </table>
+    <div class="sample box">
+      <div><input type="button" id="attribute_title_xibox_button" class="control" onclick="switchState('attribute_title_xibox'); return false;" style="display: none" /> <span class="caption">XML Instance Representation</span></div>
+      <div id="attribute_title_xibox" class="contents">
+        <span style="margin-left: 0em"> title="<span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:string</span>"</span>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('attribute_title_xibox', true);
+// -->
+</script>
+    </div>
+    <div class="schemaComponent box">
+      <div><input type="button" id="attribute_title_scbox_button" class="control" onclick="switchState('attribute_title_scbox'); return false;" style="display: none" /> <span class="caption">Schema Component Representation</span></div>
+      <div id="attribute_title_scbox" class="contents">
+        <div style="margin-left: 0em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">name</span>="<span class="scContent">title</span>" <span class="scTag">type</span>="<span class="scContent"><span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:string</span></span>"/&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('attribute_title_scbox', false);
+// -->
+</script>
+    </div>
+    <div style="text-align: right; clear: both;">
+      <a href="#top">top</a>
+    </div>
+    <hr />
+    <h3>Attribute: <a name="attribute_type" class="name" id="attribute_type">type</a></h3>
+    <table class="properties">
+      <tr>
+        <th>Name</th>
+        <td>type</td>
+      </tr>
+      <tr>
+        <th>Type</th>
+        <td>
+          <span class="type">
+            <a title="Jump to &quot;keyword-type&quot; type definition." href="#type_keyword-type">keyword-type</a>
+          </span>
+        </td>
+      </tr>
+      <tr>
+        <th>Documentation</th>
+        <td>
+        Type of the keyword.
+      </td>
+      </tr>
+    </table>
+    <div class="sample box">
+      <div><input type="button" id="attribute_type_xibox_button" class="control" onclick="switchState('attribute_type_xibox'); return false;" style="display: none" /> <span class="caption">XML Instance Representation</span></div>
+      <div id="attribute_type_xibox" class="contents">
+        <span style="margin-left: 0em"> type="<span class="type"><a title="Jump to &quot;keyword-type&quot; type definition." href="#type_keyword-type">keyword-type</a></span>"</span>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('attribute_type_xibox', true);
+// -->
+</script>
+    </div>
+    <div class="schemaComponent box">
+      <div><input type="button" id="attribute_type_scbox_button" class="control" onclick="switchState('attribute_type_scbox'); return false;" style="display: none" /> <span class="caption">Schema Component Representation</span></div>
+      <div id="attribute_type_scbox" class="contents">
+        <div style="margin-left: 0em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">name</span>="<span class="scContent">type</span>" <span class="scTag">type</span>="<span class="scContent"><span class="type"><a title="Jump to &quot;keyword-type&quot; type definition." href="#type_keyword-type">keyword-type</a></span></span>"/&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('attribute_type_scbox', false);
+// -->
+</script>
+    </div>
+    <div style="text-align: right; clear: both;">
+      <a href="#top">top</a>
+    </div>
+    <hr />
+    <h3>Attribute: <a name="attribute_version" class="name" id="attribute_version">version</a></h3>
+    <table class="properties">
+      <tr>
+        <th>Name</th>
+        <td>version</td>
+      </tr>
+      <tr>
+        <th>Type</th>
+        <td>
+          <span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:integer</span>
+        </td>
+      </tr>
+      <tr>
+        <th>Documentation</th>
+        <td>
+        Version of the devhelp xml specification (2).
+      </td>
+      </tr>
+    </table>
+    <div class="sample box">
+      <div><input type="button" id="attribute_version_xibox_button" class="control" onclick="switchState('attribute_version_xibox'); return false;" style="display: none" /> <span class="caption">XML Instance Representation</span></div>
+      <div id="attribute_version_xibox" class="contents">
+        <span style="margin-left: 0em"> version="<span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:integer</span>"</span>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('attribute_version_xibox', true);
+// -->
+</script>
+    </div>
+    <div class="schemaComponent box">
+      <div><input type="button" id="attribute_version_scbox_button" class="control" onclick="switchState('attribute_version_scbox'); return false;" style="display: none" /> <span class="caption">Schema Component Representation</span></div>
+      <div id="attribute_version_scbox" class="contents">
+        <div style="margin-left: 0em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">name</span>="<span class="scContent">version</span>" <span class="scTag">type</span>="<span class="scContent"><span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:integer</span></span>"/&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('attribute_version_scbox', false);
+// -->
+</script>
+    </div>
+    <div style="text-align: right; clear: both;">
+      <a href="#top">top</a>
+    </div>
+    <hr />
+    <h3>Element: <a name="element_book" class="name" id="element_book">book</a></h3>
+    <table class="properties">
+      <tr>
+        <th>Name</th>
+        <td>book</td>
+      </tr>
+      <tr>
+        <th>Type</th>
+        <td>Locally-defined complex type</td>
+      </tr>
+      <tr>
+        <th>
+          <a title="Look up 'Nillable' in glossary" href="#term_Nillable">Nillable</a>
+        </th>
+        <td>no</td>
+      </tr>
+      <tr>
+        <th>
+          <a title="Look up 'Abstract' in glossary" href="#term_Abstract">Abstract</a>
+        </th>
+        <td>no</td>
+      </tr>
+      <tr>
+        <th>Documentation</th>
+        <td>
+        Toplevel element of a devhelp book. A devhelp book list the structure of
+        a developer manual together with development related metadata.
+      </td>
+      </tr>
+    </table>
+    <div class="sample box">
+      <div><input type="button" id="element_book_xibox_button" class="control" onclick="switchState('element_book_xibox'); return false;" style="display: none" /> <span class="caption">XML Instance Representation</span></div>
+      <div id="element_book_xibox" class="contents">
+        <div style="margin-left: 0em">&lt;book<br /><span style="margin-left: 0.5em"> <a title="Jump to &quot;title&quot; attribute declaration." href="#attribute_title">title</a>="<span class="occurs">[1]</span>"</span><br /><span style="margin-left: 0.5em"> <a title="Jump to &quot;link&quot; attribute declaration." href="#attribute_link">link</a>="<span class="occurs">[1]</span>"</span><br /><span style="margin-left: 0.5em"> <a title="Jump to &quot;author&quot; attribute declaration." href="#attribute_author">author</a>="<span class="occurs">[1]</span>"</span><br /><span style="margin-left: 0.5em"> <a title="Jump to &quot;name&quot; attribute declaration." href="#attribute_name">name</a>="<span class="occurs">[1]</span>"</span><br /><span style="margin-left: 0.5em"> <a title="Jump to &quot;version&quot; attribute declaration." href="#attribute_version">version</a>="<span class="occurs">[1]</span>"</span><br /><span style="margin-left: 0.5em"> <a title="Jump to &quot;langua
 ge&quot; attribute declaration." href="#attribute_language">language</a>="<span class="occurs">[0..1]</span>"</span>&gt; <br /><div style="margin-left: 1.5em">&lt;<a title="Jump to &quot;chapters&quot; element declaration." href="#element_chapters">chapters</a>&gt; ... &lt;/<a title="Jump to &quot;chapters&quot; element declaration." href="#element_chapters">chapters</a>&gt; <span class="occurs">[1]</span></div><div style="margin-left: 1.5em">&lt;<a title="Jump to &quot;functions&quot; element declaration." href="#element_functions">functions</a>&gt; ... &lt;/<a title="Jump to &quot;functions&quot; element declaration." href="#element_functions">functions</a>&gt; <span class="occurs">[1]</span></div>&lt;/book&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('element_book_xibox', true);
+// -->
+</script>
+    </div>
+    <div class="schemaComponent box">
+      <div><input type="button" id="element_book_scbox_button" class="control" onclick="switchState('element_book_scbox'); return false;" style="display: none" /> <span class="caption">Schema Component Representation</span></div>
+      <div id="element_book_scbox" class="contents">
+        <div style="margin-left: 0em">&lt;<span class="scTag">xsd:element</span> <span class="scTag">name</span>="<span class="scContent">book</span>"&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:complexType</span>&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:sequence</span>&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:element</span> <span class="scTag">ref</span>="<span class="scContent"><a title="Jump to &quot;chapters&quot; element declaration." href="#element_chapters">chapters</a></span>" <span class="scTag">minOccurs</span>="<span class="scContent">1</span>" <span class="scTag">maxOccurs</span>="<span class="scContent">1</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:element</span> <span class="scTag">ref</span>="<span class="scContent"><a title="Jump to &quot;functions&quot; element declaration." href="#element_functions">functions</a></span>" <span class="scTag">minOccurs</span>="<sp
 an class="scContent">1</span>" <span class="scTag">maxOccurs</span>="<span class="scContent">1</span>"/&gt;</div>&lt;/<span class="scTag">xsd:sequence</span>&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">ref</span>="<span class="scContent"><a title="Jump to &quot;title&quot; attribute declaration." href="#attribute_title">title</a></span>" <span class="scTag">use</span>="<span class="scContent">required</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">ref</span>="<span class="scContent"><a title="Jump to &quot;link&quot; attribute declaration." href="#attribute_link">link</a></span>" <span class="scTag">use</span>="<span class="scContent">required</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">ref</span>="<span class="scContent"><a title="Jump to &quot;author&quot; attribute declarati
 on." href="#attribute_author">author</a></span>" <span class="scTag">use</span>="<span class="scContent">required</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">ref</span>="<span class="scContent"><a title="Jump to &quot;name&quot; attribute declaration." href="#attribute_name">name</a></span>" <span class="scTag">use</span>="<span class="scContent">required</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">ref</span>="<span class="scContent"><a title="Jump to &quot;version&quot; attribute declaration." href="#attribute_version">version</a></span>" <span class="scTag">use</span>="<span class="scContent">required</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">ref</span>="<span class="scContent"><a title="Jump to &quot;language&quot; attribute declaration." href="#attribute_langu
 age">language</a></span>"/&gt;</div>&lt;/<span class="scTag">xsd:complexType</span>&gt;</div>&lt;/<span class="scTag">xsd:element</span>&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('element_book_scbox', false);
+// -->
+</script>
+    </div>
+    <div style="text-align: right; clear: both;">
+      <a href="#top">top</a>
+    </div>
+    <hr />
+    <h3>Element: <a name="element_chapters" class="name" id="element_chapters">chapters</a></h3>
+    <table class="properties">
+      <tr>
+        <th>Name</th>
+        <td>chapters</td>
+      </tr>
+      <tr>
+        <th>Type</th>
+        <td>Locally-defined complex type</td>
+      </tr>
+      <tr>
+        <th>
+          <a title="Look up 'Nillable' in glossary" href="#term_Nillable">Nillable</a>
+        </th>
+        <td>no</td>
+      </tr>
+      <tr>
+        <th>
+          <a title="Look up 'Abstract' in glossary" href="#term_Abstract">Abstract</a>
+        </th>
+        <td>no</td>
+      </tr>
+      <tr>
+        <th>Documentation</th>
+        <td>
+        The chapters tag encloses the structure of the reference manual. Each
+        sub unit is represented by a sub tag.
+      </td>
+      </tr>
+    </table>
+    <div class="sample box">
+      <div><input type="button" id="element_chapters_xibox_button" class="control" onclick="switchState('element_chapters_xibox'); return false;" style="display: none" /> <span class="caption">XML Instance Representation</span></div>
+      <div id="element_chapters_xibox" class="contents">
+        <div style="margin-left: 0em">&lt;chapters&gt; <br /><div style="margin-left: 1.5em">&lt;<a title="Jump to &quot;sub&quot; element declaration." href="#element_sub">sub</a>&gt; ... &lt;/<a title="Jump to &quot;sub&quot; element declaration." href="#element_sub">sub</a>&gt; <span class="occurs">[0..*]</span></div>&lt;/chapters&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('element_chapters_xibox', true);
+// -->
+</script>
+    </div>
+    <div class="schemaComponent box">
+      <div><input type="button" id="element_chapters_scbox_button" class="control" onclick="switchState('element_chapters_scbox'); return false;" style="display: none" /> <span class="caption">Schema Component Representation</span></div>
+      <div id="element_chapters_scbox" class="contents">
+        <div style="margin-left: 0em">&lt;<span class="scTag">xsd:element</span> <span class="scTag">name</span>="<span class="scContent">chapters</span>"&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:complexType</span>&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:sequence</span>&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:element</span> <span class="scTag">ref</span>="<span class="scContent"><a title="Jump to &quot;sub&quot; element declaration." href="#element_sub">sub</a></span>" <span class="scTag">minOccurs</span>="<span class="scContent">0</span>" <span class="scTag">maxOccurs</span>="<span class="scContent">unbounded</span>"/&gt;</div>&lt;/<span class="scTag">xsd:sequence</span>&gt;</div>&lt;/<span class="scTag">xsd:complexType</span>&gt;</div>&lt;/<span class="scTag">xsd:element</span>&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('element_chapters_scbox', false);
+// -->
+</script>
+    </div>
+    <div style="text-align: right; clear: both;">
+      <a href="#top">top</a>
+    </div>
+    <hr />
+    <h3>Element: <a name="element_functions" class="name" id="element_functions">functions</a></h3>
+    <table class="properties">
+      <tr>
+        <th>Name</th>
+        <td>functions</td>
+      </tr>
+      <tr>
+        <th>Type</th>
+        <td>Locally-defined complex type</td>
+      </tr>
+      <tr>
+        <th>
+          <a title="Look up 'Nillable' in glossary" href="#term_Nillable">Nillable</a>
+        </th>
+        <td>no</td>
+      </tr>
+      <tr>
+        <th>
+          <a title="Look up 'Abstract' in glossary" href="#term_Abstract">Abstract</a>
+        </th>
+        <td>no</td>
+      </tr>
+    </table>
+    <div class="sample box">
+      <div><input type="button" id="element_functions_xibox_button" class="control" onclick="switchState('element_functions_xibox'); return false;" style="display: none" /> <span class="caption">XML Instance Representation</span></div>
+      <div id="element_functions_xibox" class="contents">
+        <div style="margin-left: 0em">&lt;functions&gt; <br /><div style="margin-left: 1.5em">&lt;<a title="Jump to &quot;keyword&quot; element declaration." href="#element_keyword">keyword</a>&gt; ... &lt;/<a title="Jump to &quot;keyword&quot; element declaration." href="#element_keyword">keyword</a>&gt; <span class="occurs">[0..*]</span></div>&lt;/functions&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('element_functions_xibox', true);
+// -->
+</script>
+    </div>
+    <div class="schemaComponent box">
+      <div><input type="button" id="element_functions_scbox_button" class="control" onclick="switchState('element_functions_scbox'); return false;" style="display: none" /> <span class="caption">Schema Component Representation</span></div>
+      <div id="element_functions_scbox" class="contents">
+        <div style="margin-left: 0em">&lt;<span class="scTag">xsd:element</span> <span class="scTag">name</span>="<span class="scContent">functions</span>"&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:complexType</span>&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:sequence</span>&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:element</span> <span class="scTag">ref</span>="<span class="scContent"><a title="Jump to &quot;keyword&quot; element declaration." href="#element_keyword">keyword</a></span>" <span class="scTag">minOccurs</span>="<span class="scContent">0</span>" <span class="scTag">maxOccurs</span>="<span class="scContent">unbounded</span>"/&gt;</div>&lt;/<span class="scTag">xsd:sequence</span>&gt;</div>&lt;/<span class="scTag">xsd:complexType</span>&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:documentation</span>&gt;<div class="scContent" style="margin-left: 1.5em">
+        The functions tag encloses all api symbols of the reference manual. Each
+        sub unit is represented by a keyword tag.
+      </div>&lt;/<span class="scTag">xsd:documentation</span>&gt;</div>&lt;/<span class="scTag">xsd:element</span>&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('element_functions_scbox', false);
+// -->
+</script>
+    </div>
+    <div style="text-align: right; clear: both;">
+      <a href="#top">top</a>
+    </div>
+    <hr />
+    <h3>Element: <a name="element_keyword" class="name" id="element_keyword">keyword</a></h3>
+    <table class="properties">
+      <tr>
+        <th>Name</th>
+        <td>keyword</td>
+      </tr>
+      <tr>
+        <th>Type</th>
+        <td>Locally-defined complex type</td>
+      </tr>
+      <tr>
+        <th>
+          <a title="Look up 'Nillable' in glossary" href="#term_Nillable">Nillable</a>
+        </th>
+        <td>no</td>
+      </tr>
+      <tr>
+        <th>
+          <a title="Look up 'Abstract' in glossary" href="#term_Abstract">Abstract</a>
+        </th>
+        <td>no</td>
+      </tr>
+    </table>
+    <div class="sample box">
+      <div><input type="button" id="element_keyword_xibox_button" class="control" onclick="switchState('element_keyword_xibox'); return false;" style="display: none" /> <span class="caption">XML Instance Representation</span></div>
+      <div id="element_keyword_xibox" class="contents">
+        <div style="margin-left: 0em">&lt;keyword<br /><span style="margin-left: 0.5em"> <a title="Jump to &quot;type&quot; attribute declaration." href="#attribute_type">type</a>="<span class="occurs">[1]</span>"</span><br /><span style="margin-left: 0.5em"> <a title="Jump to &quot;name&quot; attribute declaration." href="#attribute_name">name</a>="<span class="occurs">[1]</span>"</span><br /><span style="margin-left: 0.5em"> <a title="Jump to &quot;link&quot; attribute declaration." href="#attribute_link">link</a>="<span class="occurs">[1]</span>"</span><br /><span style="margin-left: 0.5em"> <a title="Jump to &quot;since&quot; attribute declaration." href="#attribute_since">since</a>="<span class="occurs">[0..1]</span>"</span><br /><span style="margin-left: 0.5em"> <a title="Jump to &quot;deprecated&quot; attribute declaration." href="#attribute_deprecated">deprecated</a>="<span class="occurs">[0..1]</span>"</span>/&gt; </div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('element_keyword_xibox', true);
+// -->
+</script>
+    </div>
+    <div class="schemaComponent box">
+      <div><input type="button" id="element_keyword_scbox_button" class="control" onclick="switchState('element_keyword_scbox'); return false;" style="display: none" /> <span class="caption">Schema Component Representation</span></div>
+      <div id="element_keyword_scbox" class="contents">
+        <div style="margin-left: 0em">&lt;<span class="scTag">xsd:element</span> <span class="scTag">name</span>="<span class="scContent">keyword</span>"&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:complexType</span>&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">ref</span>="<span class="scContent"><a title="Jump to &quot;type&quot; attribute declaration." href="#attribute_type">type</a></span>" <span class="scTag">use</span>="<span class="scContent">required</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">ref</span>="<span class="scContent"><a title="Jump to &quot;name&quot; attribute declaration." href="#attribute_name">name</a></span>" <span class="scTag">use</span>="<span class="scContent">required</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">ref</span>="<span class
 ="scContent"><a title="Jump to &quot;link&quot; attribute declaration." href="#attribute_link">link</a></span>" <span class="scTag">use</span>="<span class="scContent">required</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">ref</span>="<span class="scContent"><a title="Jump to &quot;since&quot; attribute declaration." href="#attribute_since">since</a></span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">ref</span>="<span class="scContent"><a title="Jump to &quot;deprecated&quot; attribute declaration." href="#attribute_deprecated">deprecated</a></span>"/&gt;</div>&lt;/<span class="scTag">xsd:complexType</span>&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:documentation</span>&gt;<div class="scContent" style="margin-left: 1.5em">
+        The keyword tag points to the documentation of a api symbol.
+      </div>&lt;/<span class="scTag">xsd:documentation</span>&gt;</div>&lt;/<span class="scTag">xsd:element</span>&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('element_keyword_scbox', false);
+// -->
+</script>
+    </div>
+    <div style="text-align: right; clear: both;">
+      <a href="#top">top</a>
+    </div>
+    <hr />
+    <h3>Element: <a name="element_sub" class="name" id="element_sub">sub</a></h3>
+    <table class="properties">
+      <tr>
+        <th>Name</th>
+        <td>sub</td>
+      </tr>
+      <tr>
+        <th>Type</th>
+        <td>Locally-defined complex type</td>
+      </tr>
+      <tr>
+        <th>
+          <a title="Look up 'Nillable' in glossary" href="#term_Nillable">Nillable</a>
+        </th>
+        <td>no</td>
+      </tr>
+      <tr>
+        <th>
+          <a title="Look up 'Abstract' in glossary" href="#term_Abstract">Abstract</a>
+        </th>
+        <td>no</td>
+      </tr>
+      <tr>
+        <th>Documentation</th>
+        <td>
+        Sub tags for the hierachy of the chapters and parts.
+      </td>
+      </tr>
+    </table>
+    <div class="sample box">
+      <div><input type="button" id="element_sub_xibox_button" class="control" onclick="switchState('element_sub_xibox'); return false;" style="display: none" /> <span class="caption">XML Instance Representation</span></div>
+      <div id="element_sub_xibox" class="contents">
+        <div style="margin-left: 0em">&lt;sub<br /><span style="margin-left: 0.5em"> <a title="Jump to &quot;name&quot; attribute declaration." href="#attribute_name">name</a>="<span class="occurs">[1]</span>"</span><br /><span style="margin-left: 0.5em"> <a title="Jump to &quot;link&quot; attribute declaration." href="#attribute_link">link</a>="<span class="occurs">[1]</span>"</span>&gt; <br /><div style="margin-left: 1.5em">&lt;<a title="Jump to &quot;sub&quot; element declaration." href="#element_sub">sub</a>&gt; ... &lt;/<a title="Jump to &quot;sub&quot; element declaration." href="#element_sub">sub</a>&gt; <span class="occurs">[0..*]</span></div>&lt;/sub&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('element_sub_xibox', true);
+// -->
+</script>
+    </div>
+    <div class="schemaComponent box">
+      <div><input type="button" id="element_sub_scbox_button" class="control" onclick="switchState('element_sub_scbox'); return false;" style="display: none" /> <span class="caption">Schema Component Representation</span></div>
+      <div id="element_sub_scbox" class="contents">
+        <div style="margin-left: 0em">&lt;<span class="scTag">xsd:element</span> <span class="scTag">name</span>="<span class="scContent">sub</span>"&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:complexType</span>&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:sequence</span>&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:element</span> <span class="scTag">ref</span>="<span class="scContent"><a title="Jump to &quot;sub&quot; element declaration." href="#element_sub">sub</a></span>" <span class="scTag">minOccurs</span>="<span class="scContent">0</span>" <span class="scTag">maxOccurs</span>="<span class="scContent">unbounded</span>"/&gt;</div>&lt;/<span class="scTag">xsd:sequence</span>&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">ref</span>="<span class="scContent"><a title="Jump to &quot;name&quot; attribute declaration." href="#attribute_name">name</a></span>" <spa
 n class="scTag">use</span>="<span class="scContent">required</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:attribute</span> <span class="scTag">ref</span>="<span class="scContent"><a title="Jump to &quot;link&quot; attribute declaration." href="#attribute_link">link</a></span>" <span class="scTag">use</span>="<span class="scContent">required</span>"/&gt;</div>&lt;/<span class="scTag">xsd:complexType</span>&gt;</div>&lt;/<span class="scTag">xsd:element</span>&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('element_sub_scbox', false);
+// -->
+</script>
+    </div>
+    <div style="text-align: right; clear: both;">
+      <a href="#top">top</a>
+    </div>
+    <hr />
+    <h2>
+      <a name="SchemaDefinitions" id="SchemaDefinitions">Global Definitions</a>
+    </h2>
+    <h3>Simple Type: <a name="type_keyword-type" class="name" id="type_keyword-type">keyword-type</a></h3>
+    <table class="hierarchy">
+      <tr>
+        <th>Super-types:</th>
+        <td><span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:string</span> &lt; <strong>keyword-type</strong> (by restriction)</td>
+      </tr>
+      <tr>
+        <th>Sub-types:</th>
+        <td>None</td>
+      </tr>
+    </table>
+    <table class="properties">
+      <tr>
+        <th>Name</th>
+        <td>keyword-type</td>
+      </tr>
+      <tr>
+        <th>Content</th>
+        <td>
+          <ul>
+            <li>Base XSD Type: string</li>
+          </ul>
+          <ul>
+            <li><em>value</em> comes from list: {'constant'|'enum'|'function'|'macro'|'property'|'signal'|'struct'|'typedef'|'union'|'variable'}</li>
+          </ul>
+        </td>
+      </tr>
+      <tr>
+        <th>Documentation</th>
+        <td>
+        Known keyword types.
+      </td>
+      </tr>
+    </table>
+    <div class="schemaComponent box">
+      <div><input type="button" id="type_keyword-type_scbox_button" class="control" onclick="switchState('type_keyword-type_scbox'); return false;" style="display: none" /> <span class="caption">Schema Component Representation</span></div>
+      <div id="type_keyword-type_scbox" class="contents">
+        <div style="margin-left: 0em">&lt;<span class="scTag">xsd:simpleType</span> <span class="scTag">name</span>="<span class="scContent">keyword-type</span>"&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:restriction</span> <span class="scTag">base</span>="<span class="scContent"><span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:string</span></span>"&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:enumeration</span> <span class="scTag">value</span>="<span class="scContent">constant</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:enumeration</span> <span class="scTag">value</span>="<span class="scContent">enum</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:enumeration</span> <span class="scTag">value</span>="<span class="scContent">function</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:enumeration</span> <span cl
 ass="scTag">value</span>="<span class="scContent">macro</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:enumeration</span> <span class="scTag">value</span>="<span class="scContent">property</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:enumeration</span> <span class="scTag">value</span>="<span class="scContent">signal</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:enumeration</span> <span class="scTag">value</span>="<span class="scContent">struct</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:enumeration</span> <span class="scTag">value</span>="<span class="scContent">typedef</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:enumeration</span> <span class="scTag">value</span>="<span class="scContent">union</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:enumeration</span> <span class="scTag">valu
 e</span>="<span class="scContent">variable</span>"/&gt;</div>&lt;/<span class="scTag">xsd:restriction</span>&gt;</div>&lt;/<span class="scTag">xsd:simpleType</span>&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('type_keyword-type_scbox', false);
+// -->
+</script>
+    </div>
+    <div style="text-align: right; clear: both;">
+      <a href="#top">top</a>
+    </div>
+    <hr />
+    <h3>Simple Type: <a name="type_language-type" class="name" id="type_language-type">language-type</a></h3>
+    <table class="hierarchy">
+      <tr>
+        <th>Super-types:</th>
+        <td><span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:string</span> &lt; <strong>language-type</strong> (by restriction)</td>
+      </tr>
+      <tr>
+        <th>Sub-types:</th>
+        <td>None</td>
+      </tr>
+    </table>
+    <table class="properties">
+      <tr>
+        <th>Name</th>
+        <td>language-type</td>
+      </tr>
+      <tr>
+        <th>Content</th>
+        <td>
+          <ul>
+            <li>Base XSD Type: string</li>
+          </ul>
+          <ul>
+            <li><em>value</em> comes from list: {'c'|'c++'|'c#'|'java'|'javascript'|'perl'|'python'|'vala'}</li>
+          </ul>
+        </td>
+      </tr>
+      <tr>
+        <th>Documentation</th>
+        <td>
+        Known programing languages.
+      </td>
+      </tr>
+    </table>
+    <div class="schemaComponent box">
+      <div><input type="button" id="type_language-type_scbox_button" class="control" onclick="switchState('type_language-type_scbox'); return false;" style="display: none" /> <span class="caption">Schema Component Representation</span></div>
+      <div id="type_language-type_scbox" class="contents">
+        <div style="margin-left: 0em">&lt;<span class="scTag">xsd:simpleType</span> <span class="scTag">name</span>="<span class="scContent">language-type</span>"&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:restriction</span> <span class="scTag">base</span>="<span class="scContent"><span class="type"><a href="#ns_xsd" title="Find out namespace of 'xsd' prefix">xsd</a>:string</span></span>"&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:enumeration</span> <span class="scTag">value</span>="<span class="scContent">c</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:enumeration</span> <span class="scTag">value</span>="<span class="scContent">c++</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:enumeration</span> <span class="scTag">value</span>="<span class="scContent">c#</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:enumeration</span> <span class="scTag">v
 alue</span>="<span class="scContent">java</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:enumeration</span> <span class="scTag">value</span>="<span class="scContent">javascript</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:enumeration</span> <span class="scTag">value</span>="<span class="scContent">perl</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:enumeration</span> <span class="scTag">value</span>="<span class="scContent">python</span>"/&gt;</div><div style="margin-left: 1.5em">&lt;<span class="scTag">xsd:enumeration</span> <span class="scTag">value</span>="<span class="scContent">vala</span>"/&gt;</div>&lt;/<span class="scTag">xsd:restriction</span>&gt;</div>&lt;/<span class="scTag">xsd:simpleType</span>&gt;</div>
+      </div>
+      <script type="text/javascript">
+<!--
+setState('type_language-type_scbox', false);
+// -->
+</script>
+    </div>
+    <div style="text-align: right; clear: both;">
+      <a href="#top">top</a>
+    </div>
+    <hr />
+    <div id="legend">
+      <h2>
+        <a name="Legend" id="Legend">Legend</a>
+      </h2>
+      <div style="float: left; width: 15em;">
+        <h3 style="margin-bottom: 0px;">Complex Type:</h3>
+        <div class="hint" style="margin-left: 0em;">Schema Component Type</div>
+      </div>
+      <div style="float: left; width: 15em;">
+        <h3 style="margin-bottom: 0px;">
+          <span class="name">AusAddress</span>
+        </h3>
+        <div class="hint" style="margin-left: 0em;">Schema Component Name</div>
+      </div>
+      <table class="hierarchy" style="clear : both">
+        <tr>
+          <th>Super-types:</th>
+          <td><span class="type" style="color: #0000FF; text-decoration:underline;">Address</span> &lt; <span class="current">AusAddress</span> (by extension)</td>
+        </tr>
+        <tr>
+          <th>Sub-types:</th>
+          <td>
+            <ul>
+              <li><span class="type" style="color: #0000FF; text-decoration:underline;">QLDAddress</span> (by restriction)</li>
+            </ul>
+          </td>
+        </tr>
+      </table>
+      <div class="hint">If this schema component is a type definition, its type hierarchy is shown in a gray-bordered box.</div>
+      <table class="properties">
+        <tr>
+          <th>Name</th>
+          <td>AusAddress</td>
+        </tr>
+        <tr>
+          <th>
+            <a title="Look up 'Abstract' in glossary" href="#term_Abstract">Abstract</a>
+          </th>
+          <td>no</td>
+        </tr>
+      </table>
+      <div class="hint">The table above displays the properties of this schema component.</div>
+      <div class="sample box">
+        <div>
+          <span class="caption">XML Instance Representation</span>
+        </div>
+        <div class="contents"><span style="margin-left: 0em">&lt;...</span><span class="newFields"><span> country="<span class="fixed">Australia</span>"</span></span>&gt; <br /><span style="margin-left: 1.5em" class="inherited">&lt;unitNo&gt; <span class="type">string</span> &lt;/unitNo&gt; <span class="occurs">[0..1]</span></span><br /><span style="margin-left: 1.5em" class="inherited">&lt;houseNo&gt; <span class="type">string</span> &lt;/houseNo&gt; <span class="occurs">[1]</span></span><br /><span style="margin-left: 1.5em" class="inherited">&lt;street&gt; <span class="type">string</span> &lt;/street&gt; <span class="occurs">[1]</span></span><br /><span class="group" style="margin-left: 1.5em">Start <a title="Look up 'Choice' in glossary" href="#term_Choice">Choice</a><span class="occurs">[1]</span></span><br /><span style="margin-left: 3em" class="inherited">&lt;city&gt; <span class="type">string</span> &lt;/city&gt; <span class="occurs">[1]</span></span><br /><span styl
 e="margin-left: 3em" class="inherited">&lt;town&gt; <span class="type">string</span> &lt;/town&gt; <span class="occurs">[1]</span></span><br /><span class="group" style="margin-left: 1.5em">End Choice</span><br /><span class="newFields"><span style="margin-left: 1.5em">&lt;state&gt; <span class="type" style="text-decoration:underline;">AusStates</span> &lt;/state&gt; <span class="occurs">[1]</span></span><br /><span style="margin-left: 1.5em">&lt;postcode&gt; <span class="constraint">string &lt;&lt;<em>pattern</em> = [1-9][0-9]{3}&gt;&gt;</span> &lt;/postcode&gt; <span class="occurs">[1]</span><a href="javascript:void(0)" title="View Documentation" class="documentation" onclick="docArray = new Array('Post code must be a four-digit number.'); viewDocumentation('Element', 'postcode', docArray);">?</a></span><br /></span><span style="margin-left: 0em">&lt;/...&gt;</span><br /></div>
+      </div>
+      <div class="hint">
+        <p>The XML Instance Representation table above shows the schema component's content as an XML instance.</p>
+        <ul>
+          <li>The minimum and maximum occurrence of elements and attributes are provided in square brackets, e.g. [0..1].</li>
+          <li>Model group information are shown in gray, e.g. Start Choice ... End Choice.</li>
+          <li>For type derivations, the elements and attributes that have been added to or changed from the base type's content are shown in <span style="font-weight: bold">bold</span>.</li>
+          <li>If an element/attribute has a fixed value, the fixed value is shown in green, e.g. country="Australia".</li>
+          <li>Otherwise, the type of the element/attribute is displayed.
+               <ul><li>If the element/attribute's type is in the schema, a link is provided to it.</li><li>For local simple type definitions, the constraints are displayed in angle brackets, e.g. &lt;&lt;<em>pattern</em> = [1-9][0-9]{3}&gt;&gt;.</li></ul></li>
+          <li>If a local element/attribute has documentation, it will be displayed in a window that pops up when the question mark inside the attribute or next to the element is clicked, e.g. &lt;postcode&gt;.</li>
+        </ul>
+      </div>
+      <div class="schemaComponent box">
+        <div>
+          <span class="caption">Schema Component Representation</span>
+        </div>
+        <div class="contents">
+          <span style="margin-left: 0em">&lt;<span class="scTag">complexType</span><span class="scTag">name</span>="<span class="scContent">AusAddress</span>"&gt;</span>
+          <br />
+          <span style="margin-left: 1.5em">&lt;<span class="scTag">complexContent</span>&gt;</span>
+          <br />
+          <span style="margin-left: 3em">&lt;<span class="scTag">extension</span><span class="scTag">base</span>="<span class="scContent"><span class="type" style="text-decoration:underline;">Address</span></span>"&gt;</span>
+          <br />
+          <span style="margin-left: 4.5em">&lt;<span class="scTag">sequence</span>&gt;</span>
+          <br />
+          <span style="margin-left: 6em">&lt;<span class="scTag">element</span><span class="scTag">name</span>="<span class="scContent">state</span>" <span class="scTag">type</span>="<span class="scContent"><span class="type" style="text-decoration:underline;">AusStates</span></span>"/&gt;</span>
+          <br />
+          <span style="margin-left: 6em">&lt;<span class="scTag">element</span><span class="scTag">name</span>="<span class="scContent">postcode</span>"&gt;</span>
+          <br />
+          <span style="margin-left: 7.5em">&lt;<span class="scTag">simpleType</span>&gt;</span>
+          <br />
+          <span style="margin-left: 9em">&lt;<span class="scTag">restriction</span><span class="scTag">base</span>="<span class="scContent"><span class="type">string</span></span>"&gt;</span>
+          <br />
+          <span style="margin-left: 10.5em">&lt;<span class="scTag">pattern</span><span class="scTag">value</span>="<span class="scContent">[1-9][0-9]{3}</span>"/&gt;</span>
+          <br />
+          <span style="margin-left: 9em">&lt;/<span class="scTag">restriction</span>&gt;</span>
+          <br />
+          <span style="margin-left: 7.5em">&lt;/<span class="scTag">simpleType</span>&gt;</span>
+          <br />
+          <span style="margin-left: 6em">&lt;/<span class="scTag">element</span>&gt;</span>
+          <br />
+          <span style="margin-left: 4.5em">&lt;/<span class="scTag">sequence</span>&gt;</span>
+          <br />
+          <span style="margin-left: 4.5em">&lt;<span class="scTag">attribute</span><span class="scTag">name</span>="<span class="scContent">country</span>" <span class="scTag">type</span>="<span class="scContent"><span class="type">string</span></span>" <span class="scTag">fixed</span>="<span class="scContent">Australia</span>"/&gt;</span>
+          <br />
+          <span style="margin-left: 3em">&lt;/<span class="scTag">extension</span>&gt;</span>
+          <br />
+          <span style="margin-left: 1.5em">&lt;/<span class="scTag">complexContent</span>&gt;</span>
+          <br />
+          <span style="margin-left: 0em">&lt;/<span class="scTag">complexType</span>&gt;</span>
+          <br />
+        </div>
+      </div>
+      <div class="hint">The Schema Component Representation table above displays the underlying XML representation of the schema component. (Annotations are not shown.)</div>
+      <div style="text-align: right; clear: both;">
+        <a href="#top">top</a>
+      </div>
+      <hr />
+    </div>
+    <div id="glossary">
+      <h2>
+        <a name="Glossary" id="Glossary">Glossary</a>
+      </h2>
+      <p><span class="glossaryTerm"><a name="term_Abstract" id="term_Abstract">Abstract</a> </span>(Applies to complex type definitions and element declarations). An abstract element or complex type cannot used to validate an element instance. If there is a reference to an abstract element, only element declarations that can substitute the abstract element can be used to validate the instance. For references to abstract type definitions, only derived types can be used.</p>
+      <p><span class="glossaryTerm"><a name="term_All" id="term_All">All Model Group</a> </span>Child elements can be provided <em>in any order</em> in instances. See: <a title="http://www.w3.org/TR/xmlschema-1/#element-all"; href="http://www.w3.org/TR/xmlschema-1/#element-all";>http://www.w3.org/TR/xmlschema-1/#element-all</a>.</p>
+      <p><span class="glossaryTerm"><a name="term_Choice" id="term_Choice">Choice Model Group</a> </span><em>Only one</em> from the list of child elements and model groups can be provided in instances. See: <a title="http://www.w3.org/TR/xmlschema-1/#element-choice"; href="http://www.w3.org/TR/xmlschema-1/#element-choice";>http://www.w3.org/TR/xmlschema-1/#element-choice</a>.</p>
+      <p><span class="glossaryTerm"><a name="term_CollapseWS" id="term_CollapseWS">Collapse Whitespace Policy</a> </span>Replace tab, line feed, and carriage return characters with space character (Unicode character 32). Then, collapse contiguous sequences of space characters into single space character, and remove leading and trailing space characters.</p>
+      <p><span class="glossaryTerm"><a name="term_ElemBlock" id="term_ElemBlock">Disallowed Substitutions</a> </span>(Applies to element declarations). If <em>substitution</em> is specified, then <a title="Look up 'substitution group' in glossary" href="#term_SubGroup">substitution group</a> members cannot be used in place of the given element declaration to validate element instances. If <em>derivation methods</em>, e.g. extension, restriction, are specified, then the given element declaration will not validate element instances that have types derived from the element declaration's type using the specified derivation methods. Normally, element instances can override their declaration's type by specifying an <code>xsi:type</code> attribute.</p>
+      <p><span class="glossaryTerm"><a name="term_Key" id="term_Key">Key Constraint</a> </span>Like <a title="Look up 'Uniqueness Constraint' in glossary" href="#term_Unique">Uniqueness Constraint</a>, but additionally requires that the specified value(s) must be provided. See: <a title="http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions"; href="http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions";>http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions</a>.</p>
+      <p><span class="glossaryTerm"><a name="term_KeyRef" id="term_KeyRef">Key Reference Constraint</a> </span>Ensures that the specified value(s) must match value(s) from a <a title="Look up 'Key Constraint' in glossary" href="#term_Key">Key Constraint</a> or <a title="Look up 'Uniqueness Constraint' in glossary" href="#term_Unique">Uniqueness Constraint</a>. See: <a title="http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions"; href="http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions";>http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions</a>.</p>
+      <p><span class="glossaryTerm"><a name="term_ModelGroup" id="term_ModelGroup">Model Group</a> </span>Groups together element content, specifying the order in which the element content can occur and the number of times the group of element content may be repeated. See: <a title="http://www.w3.org/TR/xmlschema-1/#Model_Groups"; href="http://www.w3.org/TR/xmlschema-1/#Model_Groups";>http://www.w3.org/TR/xmlschema-1/#Model_Groups</a>.</p>
+      <p><span class="glossaryTerm"><a name="term_Nillable" id="term_Nillable">Nillable</a> </span>(Applies to element declarations). If an element declaration is nillable, instances can use the <code>xsi:nil</code> attribute. The <code>xsi:nil</code> attribute is the boolean attribute, <em>nil</em>, from the <em>http://www.w3.org/2001/XMLSchema-instance</em> namespace. If an element instance has an <code>xsi:nil</code> attribute set to true, it can be left empty, even though its element declaration may have required content.</p>
+      <p><span class="glossaryTerm"><a name="term_Notation" id="term_Notation">Notation</a> </span>A notation is used to identify the format of a piece of data. Values of elements and attributes that are of type, NOTATION, must come from the names of declared notations. See: <a title="http://www.w3.org/TR/xmlschema-1/#cNotation_Declarations"; href="http://www.w3.org/TR/xmlschema-1/#cNotation_Declarations";>http://www.w3.org/TR/xmlschema-1/#cNotation_Declarations</a>.</p>
+      <p><span class="glossaryTerm"><a name="term_PreserveWS" id="term_PreserveWS">Preserve Whitespace Policy</a> </span>Preserve whitespaces exactly as they appear in instances.</p>
+      <p><span class="glossaryTerm"><a name="term_TypeFinal" id="term_TypeFinal">Prohibited Derivations</a> </span>(Applies to type definitions). Derivation methods that cannot be used to create sub-types from a given type definition.</p>
+      <p><span class="glossaryTerm"><a name="term_TypeBlock" id="term_TypeBlock">Prohibited Substitutions</a> </span>(Applies to complex type definitions). Prevents sub-types that have been derived using the specified derivation methods from validating element instances in place of the given type definition.</p>
+      <p><span class="glossaryTerm"><a name="term_ReplaceWS" id="term_ReplaceWS">Replace Whitespace Policy</a> </span>Replace tab, line feed, and carriage return characters with space character (Unicode character 32).</p>
+      <p><span class="glossaryTerm"><a name="term_Sequence" id="term_Sequence">Sequence Model Group</a> </span>Child elements and model groups must be provided <em>in the specified order</em> in instances. See: <a title="http://www.w3.org/TR/xmlschema-1/#element-sequence"; href="http://www.w3.org/TR/xmlschema-1/#element-sequence";>http://www.w3.org/TR/xmlschema-1/#element-sequence</a>.</p>
+      <p><span class="glossaryTerm"><a name="term_SubGroup" id="term_SubGroup">Substitution Group</a> </span>Elements that are <em>members</em> of a substitution group can be used wherever the <em>head</em> element of the substitution group is referenced.</p>
+      <p><span class="glossaryTerm"><a name="term_ElemFinal" id="term_ElemFinal">Substitution Group Exclusions</a> </span>(Applies to element declarations). Prohibits element declarations from nominating themselves as being able to substitute a given element declaration, if they have types that are derived from the original element's type using the specified derivation methods.</p>
+      <p><span class="glossaryTerm"><a name="term_TargetNS" id="term_TargetNS">Target Namespace</a> </span>The target namespace identifies the namespace that components in this schema belongs to. If no target namespace is provided, then the schema components do not belong to any namespace.</p>
+      <p><span class="glossaryTerm"><a name="term_Unique" id="term_Unique">Uniqueness Constraint</a> </span>Ensures uniqueness of an element/attribute value, or a combination of values, within a specified scope. See: <a title="http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions"; href="http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions";>http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions</a>.</p>
+      <div style="text-align: right; clear: both;">
+        <a href="#top">top</a>
+      </div>
+      <hr />
+    </div>
+    <p class="footer">Generated by <a href="http://xml.fiforms.org/xs3p/";>xs3p</a> (<a href="http://titanium.dstc.edu.au/xml/xs3p";>old link</a>)
+               . Last modified: <script type="text/javascript">
+<!--
+document.write(document.lastModified);
+// -->
+</script></p>
+  </body>
+</html>
diff --git a/gtk-doc/download.php b/gtk-doc/download.php
new file mode 100644
index 0000000..6ecc984
--- /dev/null
+++ b/gtk-doc/download.php
@@ -0,0 +1,21 @@
+<?php
+$title = "The GTK-Doc Project: Download";
+$nav = "download";
+ob_start();
+
+require 'gtkdoc.config.php';
+?>
+<h2>Unstable release</h2>
+<p>You can check out the latest unstable release of GTK-Doc using <a href="http://git-scm.com/"; class="external">Git</a>.</p>
+<pre>git clone git://git.gnome.org/gtk-doc</pre>
+
+<p>For more information on this, see the <a href="http://live.gnome.org/Git/Developers"; class="external">instructions on how to use the repository</a>.</p>
+
+<h2>Stable release</h2>
+<p>GTK-Doc is available here:</p>
+
+<ul>
+	<li><a href="http://download.gnome.org/sources/gtk-doc/"; class="external">http://download.gnome.org/sources/gtk-doc/</a></li>
+</ul>
+
+<?php require '../template.php';
diff --git a/gtk-doc/gtkdoc.config.php b/gtk-doc/gtkdoc.config.php
new file mode 100644
index 0000000..95ea56a
--- /dev/null
+++ b/gtk-doc/gtkdoc.config.php
@@ -0,0 +1,9 @@
+<?php
+$globalnav = true;
+$navlinks = array(
+	"about" => array( "About", "index.php" ),
+	"news" => array( "News", "news.php" ),
+	"requirements" => array( "Requirements", "requirements.php"),
+	"download" => array( "Download", "download.php" )
+);
+$bodyclass = "gtkdoc";
diff --git a/gtk-doc/index.php b/gtk-doc/index.php
new file mode 100644
index 0000000..a8f567a
--- /dev/null
+++ b/gtk-doc/index.php
@@ -0,0 +1,31 @@
+<?php
+$title = "The GTK-Doc Project";
+$nav = "about";
+ob_start();
+
+require 'gtkdoc.config.php';
+?>
+
+<h2>The GTK-Doc Project</h2>
+<p>GTK-Doc is a project which was started to generate API documentation from comments added to C code. It is typically used to document the public API of <a href="http://www.gtk.org/"; class="external">GTK+</a> and <a href="http://www.gnome.org/"; class="external">GNOME</a> libraries, but it can also be used to document application code.</p>
+
+<h2>History</h2>
+<p>GTK-Doc wasn't originally intended to be a general-purpose documentation tool, so it can be a bit awkward to setup and use. For a more polished general-purpose documentation tool you may want to look at <a href="http://www.doxygen.org/"; class="external">Doxygen</a>. However GTK-Doc has some special code to document the signals and properties of GTK+ widgets and GObject classes which other tools may not have.</p>
+
+<h2>How it works</h2>
+<p>GTK-Doc allows your documentation to be written in 2 ways:</p>
+<ul>
+	<li>Embedded inside the source code in specially-formatted comments.</li>
+	<li>Added to the <em>template</em> files which gtk-doc outputs after scanning all the header files and parsing the declarations.</li>
+</ul>
+
+<p>From these source code comments and template files GTK-Doc generates a <a href="http://www.docbook.org/"; class="external">Docbook</a> XML (or <a href="http://en.wikipedia.org/wiki/SGML"; class="external">SGML</a>) document, which is then transformed into HTML.</p>
+
+<p>The generated HTML documentation can be browsed in an ordinary web browser or by using the special <a href="http://live.gnome.org/devhelp"; class="external">Devhelp API browser</a>. Devhelp uses a special <a href="devhelp2.xsd.html">index file</a> to locate and present the manuals.</p>
+
+<p>For full details have a look at the <a href="http://developer.gnome.org/gtk-doc-manual/unstable/"; class="external">GTK-Doc user manual</a>.</p>
+
+<h2>Examples</h2>
+<p>Visit the <a href="../documentation.php" class="external">GTK+ documentation</a> and click on one of the API references there to see the final result of using GTK-Doc. For examples on how to make use of GTK-Doc in your project, <a href="../download/index.php" class="external">download GTK+</a> and see how it is added to the source files. GTK-Doc itself has a test suite as well that can be used as examples.</p>
+
+<?php require '../template.php';
diff --git a/gtk-doc/news.php b/gtk-doc/news.php
new file mode 100644
index 0000000..635142c
--- /dev/null
+++ b/gtk-doc/news.php
@@ -0,0 +1,382 @@
+<?php
+$title = "The GTK-Doc Project: News";
+$nav = "news";
+ob_start();
+
+require 'gtkdoc.config.php';
+?>
+
+<h2>GTK-Doc News</h2>
+
+<div class="news-item">
+	<div class="header">
+		<h3 class="news-title">GTK-Doc 1.15</h3>
+		<span class="news-date">Released May 21, 2010</span>
+	</div>
+	<ul>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=614496"; class="external">Bug 614496</a>: Support for multiple DOC_SOURCE_DIR directories</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=615550"; class="external">Bug 615550</a>: gtk-doc fails to recognize (scope ...) and (skip) annotations</li>
+	</ul>
+</div>
+
+<div class="news-item">
+	<div class="header">
+		<h3 class="news-title">GTK-Doc 1.14</h3>
+		<span class="news-date">Released March 28, 2010</span>
+	</div>
+	<ul>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=593282"; class="external">Bug 593282</a>: Append ' _struct ' prefix to every struct name</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=599514"; class="external">Bug 599514</a>: sane support for per-page images</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=604892"; class="external">Bug 604892</a>: checks fail</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=613611"; class="external">Bug 613611</a>: parameter descriptions with annotations truncated at first \n</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=115531"; class="external">Bug 115531</a>: add short description to index entries</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=165425"; class="external">Bug 165425</a>: gtk-doc fails to parse unions</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=512155"; class="external">Bug 512155</a>: gets confused by multiline typedef</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=568711"; class="external">Bug 568711</a>: undocumented enum values are not reported</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=590602"; class="external">Bug 590602</a>: secondly running gtkdoc-mkdb will generate DOCTYPE missing XML files</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=590625"; class="external">Bug 590625</a>: $(DOC_MODULE)-overrides.txt is required by ' make dist '</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=591975"; class="external">Bug 591975</a>: Section_Id always embeds a trailing newline</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=604885"; class="external">Bug 604885</a>: Fix the use of gtkdocize --flavour option</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=604992"; class="external">Bug 604992</a>: gtkdoc-fixxref broken link warning is broken for functions</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=604995"; class="external">Bug 604995</a>: Syntax error in gtkdoc-mkman</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=604998"; class="external">Bug 604998</a>: Check for syntax errors in the test suite</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=605052"; class="external">Bug 605052</a>: put class structs to the generated section file</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=605211"; class="external">Bug 605211</a>: Many build failures with gtk-doc 1.13</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=605281"; class="external">Bug 605281</a>: Add ' Since ' and ' Deprecated ' tag to function example</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=605285"; class="external">Bug 605285</a>: Add &lt; keycap &gt; and &lt; keycombo &gt; example</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=605289"; class="external">Bug 605289</a>: Some documentation improvements</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=605452"; class="external">Bug 605452</a>: Added more info to ' Documenting symbols ' sectio</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=605564"; class="external">Bug 605564</a>: Env var equivalent to --flavour=no-tmpl</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=606661"; class="external">Bug 606661</a>: XInclude error while gnerating documentation</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=607445"; class="external">Bug 607445</a>: gtk-doc does not support long double as returned value type</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=607531"; class="external">Bug 607531</a>: Execute system() calls in subshells to ease debugging</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=609062"; class="external">Bug 609062</a>: [All-langs] [gtk-doc] Translated *.po files not available within ~/po directory</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=609194"; class="external">Bug 609194</a>: sort interface implementers</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=610255"; class="external">Bug 610255</a>: Self-test failure in git as of 2010-02-17: FAIL: gobject.sh</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=610257"; class="external">Bug 610257</a>: Patch to make GTK-DOC notice functions/variables with 'signed' prototypes</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=611848"; class="external">Bug 611848</a>: gtk-doc produces invalid DocBook markup if the SECTION ends with a tag that cannot be nested inside &lt; para &gt;</li>
+	</ul>
+</div>
+
+<div class="news-item">
+	<div class="header">
+		<h3 class="news-title">GTK-Doc 1.13</h3>
+		<span class="news-date">Released December 18, 2009</span>
+	</div>
+	<ul>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=604891"; class="external">Bug 604891</a>: gtk-doc tarball does not build</li>
+	</ul>
+</div>
+
+<div class="news-item">
+	<div class="header">
+		<h3 class="news-title">GTK-Doc 1.12</h3>
+		<span class="news-date">Released December 18, 2009</span>
+	</div>
+	<ul>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=591450"; class="external">Bug 591450</a>: Build related fixes</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=466535"; class="external">Bug 466535</a>: generate documentation as pdf</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=502191"; class="external">Bug 502191</a>: acronym support</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=532395"; class="external">Bug 532395</a>: inline function parsing problems (e.g. in glib api docs)</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=536928"; class="external">Bug 536928</a>: have syntax highlghted and xrefs source code samples</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=562064"; class="external">Bug 562064</a>: index generation trouble</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=562310"; class="external">Bug 562310</a>: glib 2.18.3: /bin/sh: line 1: gtkdoc-rebase: command not found</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=562655"; class="external">Bug 562655</a>: doesn't produce deprecation note for signals</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=565126"; class="external">Bug 565126</a>: linking to struct members</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=565835"; class="external">Bug 565835</a>: Three spelling errors in gtk-doc-manual</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=566911"; class="external">Bug 566911</a>: add support for --help and --version to remaining tools</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=567132"; class="external">Bug 567132</a>: Take FOO_GET_INTERFACE as standard</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=568702"; class="external">Bug 568702</a>: gtkdoc-mkhtml no longer works when symlinked</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=568706"; class="external">Bug 568706</a>: gtkdoc-scan: use CamelCase id for interfaces</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=568708"; class="external">Bug 568708</a>: gtkdoc-scan should try not to scan files twice</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=568714"; class="external">Bug 568714</a>: Perl errors when syntax highlighting is not available</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=568732"; class="external">Bug 568732</a>: missing long descriptions undetected</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=568734"; class="external">Bug 568734</a>: configure check for gtk-doc prints that gtk-doc cannot be built</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=569339"; class="external">Bug 569339</a>: abbreviation are not expanded at the start of text</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=572396"; class="external">Bug 572396</a>: Fix to use shave + gtk-doc + libtool 1.x</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=572612"; class="external">Bug 572612</a>: Mistakenly substitute -1 with G_MAXULONG in x86_64</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=572967"; class="external">Bug 572967</a>: use g_strerror</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=574654"; class="external">Bug 574654</a>: --ignore-decorators does not ignore trailing stuff</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=575574"; class="external">Bug 575574</a>: Be more friendly for files with a space in their name</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=575623"; class="external">Bug 575623</a>: Update FSF address</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=575711"; class="external">Bug 575711</a>:  &lt; table &gt; element mismatch in highlighted code</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=576313"; class="external">Bug 576313</a>: implicit declarations in testsuite ?</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=577059"; class="external">Bug 577059</a>: Gnome-doc support can't be disabled</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=577774"; class="external">Bug 577774</a>: Test suite run even when built with --disable-gtk-doc</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=580206"; class="external">Bug 580206</a>: gcc warnings in &lt; module &gt; -scan.c</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=580300"; class="external">Bug 580300</a>: gtkdoc-scan picks up _get_type functions it should not</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=580622"; class="external">Bug 580622</a>: xml dir is both part of distclean and dist rules</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=581237"; class="external">Bug 581237</a>: gtk-doc uses wrong gtkdoc-check in ' make check ' phase</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=584952"; class="external">Bug 584952</a>:  ' uninitialized value in concatenation ' gtkdoc-mkdb line 938</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=587103"; class="external">Bug 587103</a>: return values of function-like macros</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=587196"; class="external">Bug 587196</a>: Typo in a string</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=589426"; class="external">Bug 589426</a>: Python is a required dependency</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=591789"; class="external">Bug 591789</a>: master FTBFS with automake 1.11</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=594224"; class="external">Bug 594224</a>: Please fix manual about inlined SECTION comments (and show warnings when invalid)</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=596730"; class="external">Bug 596730</a>: Signed vs. unsigned comparison in gtkdoc-scangobj.in causing compile errors</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=596731"; class="external">Bug 596731</a>: autogen.sh doesn't recognize automake-1.11</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=602026"; class="external">Bug 602026</a>: Warn if non-existing function gets referenced</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=602518"; class="external">Bug 602518</a>: Doesn't support ' long int ' return type</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=604798"; class="external">Bug 604798</a>: tests/fail.sh and tests/tools.sh.in use bashisms</li>
+	</ul>
+</div>
+
+<div class="news-item">
+	<div class="header">
+		<h3 class="news-title">GTK-Doc 1.11</h3>
+		<span class="news-date">Released November 16, 2008</span>
+	</div>
+	<ul>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=531572"; class="external">Bug 531572</a>: one-page generation option</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=448879"; class="external">Bug 448879</a>: Use a footer when generating HTML documentation</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=311857"; class="external">Bug 311857</a>: xsltproc very slow generating index for gtk-docs.sgml</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=335239"; class="external">Bug 335239</a>: Using gnome-doc-utils for gtk-doc documentation</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=460753"; class="external">Bug 460753</a>: enable vpath build in gtkdoc-mkhtml</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=473342"; class="external">Bug 473342</a>: Warn about repeated symbols in sections</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=487727"; class="external">Bug 487727</a>: DocBook XML DTD version</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=523669"; class="external">Bug 523669</a>: make check: Element publisher content does not follow the...</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=530758"; class="external">Bug 530758</a>: gtk-doc should not expand XML tags and their attributes</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=533262"; class="external">Bug 533262</a>: no-template mode scans different source files</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=534627"; class="external">Bug 534627</a>: gtk-doc uses non-standard HTML element</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=542137"; class="external">Bug 542137</a>: No declaration found for: gsf_output_*</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=543855"; class="external">Bug 543855</a>: Fix for <a href="https://bugzilla.gnome.org/show_bug.cgi?id=460753"; class="external">Bug 460753</a> (enable vpath build in gtkdoc-mkhtml) ...</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=544172"; class="external">Bug 544172</a>: Fails to parse return value of 'char const *'</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=552822"; class="external">Bug 552822</a>: Add rules to create $(REPORT_FILES)</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=553407"; class="external">Bug 553407</a>: Example Makefile.am uses obsolete INCLUDES instead of AM_...</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=554718"; class="external">Bug 554718</a>: gtk-doc needs to allow versioned TARGET_DIR</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=554833"; class="external">Bug 554833</a>: Be more careful with ' struct _ &lt; struct_name &gt;  ' </li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=558082"; class="external">Bug 558082</a>: evince docs build fails with GTK_DISABLE_SINGLE_INCLUDES</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=559281"; class="external">Bug 559281</a>: Correct check for existance of gtkdoc-rebase</li>
+	</ul>
+</div>
+
+<div class="news-item">
+	<div class="header">
+		<h3 class="news-title">GTK-Doc 1.10</h3>
+		<span class="news-date">Released March 20, 2008</span>
+	</div>
+	<ul>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=460753"; class="external">Bug 460753</a>: enable vpath build in gtkdoc-mkhtml</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=503119"; class="external">Bug 503119</a>: Add dependency on content_files to SGML target</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=127049"; class="external">Bug 127049</a>: building reference documentation fails when builddir != s...</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=481811"; class="external">Bug 481811</a>: Inline function bodies are confused with declarations</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=448879"; class="external">Bug 448879</a>: Use a footer when generating HTML documentation</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=492005"; class="external">Bug 492005</a>: Deprecation guard warnings for properties and signals</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=498521"; class="external">Bug 498521</a>: Inconsistent compiler flags passed in gtk-doc.make</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=365913"; class="external">Bug 365913</a>: gtk-doc output is not predictable</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=446648"; class="external">Bug 446648</a>: gtk-doc does not handle forward typedef'd enums</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=468278"; class="external">Bug 468278</a>: Display proper types for properties</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=497367"; class="external">Bug 497367</a>: don't use US-ASCII for output encoding</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=501066"; class="external">Bug 501066</a>: Missing quotes around gtkdoc-rebase check cause a warning</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=508897"; class="external">Bug 508897</a>: [PATCH] Fix build when gtk-doc is not installed</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=509539"; class="external">Bug 509539</a>: Building documentation aborts when no .types file is present</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=512154"; class="external">Bug 512154</a>: Struct member type attributes are limited to one token</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=513318"; class="external">Bug 513318</a>: gtk-doc.el doesn't work fine with emacs22</li>
+	</ul>
+</div>
+
+<div class="news-item">
+	<div class="header">
+		<h3 class="news-title">GTK-Doc 1.9</h3>
+		<span class="news-date">Released September 30, 2007</span>
+	</div>
+	<ul>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=419308"; class="external">Bug 419308</a>: unsynced regexps for parameter parsing</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=449618"; class="external">Bug 449618</a>: Top navigation bar is in the way</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=453717"; class="external">Bug 453717</a>: fixxref logic to determine absolute path's is flawed</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=457173"; class="external">Bug 457173</a>: unit tests for gtk-doc</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=465920"; class="external">Bug 465920</a>: Use gtkdoc-rebase</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=467773"; class="external">Bug 467773</a>: default master doc should have proper extension</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=141869"; class="external">Bug 141869</a>: Poor error generated when faced with a type declared as <code>...</code></li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=156643"; class="external">Bug 156643</a>: Avoid make error in gtk-doc.make</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=322035"; class="external">Bug 322035</a>: wrong macro parsing</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=323938"; class="external">Bug 323938</a>: gtk-doc.m4 check is silent</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=324535"; class="external">Bug 324535</a>: gtk-doc doesn't handle deprecation inside enumerations</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=355352"; class="external">Bug 355352</a>: If you don't have an instantiatable type for a gtypeinter...</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=379466"; class="external">Bug 379466</a>: Improve C parser to handle TYPE\nVARIABLE in function pro...</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=380824"; class="external">Bug 380824</a>: docs are truncated if line begins with <code>* returns </code></li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=383456"; class="external">Bug 383456</a>: <code>make check</code> test for 100% documentation</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=411739"; class="external">Bug 411739</a>: Gtk-doc fails to handle <code>struct tm * function_name ();</code></li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=415388"; class="external">Bug 415388</a>: Please clean -undocumented.txt files</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=418027"; class="external">Bug 418027</a>: gtkdoc-mkdb does not handle #ifdef in enum {}</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=419997"; class="external">Bug 419997</a>: parameter name trouble</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=428596"; class="external">Bug 428596</a>: Warnings with gtk-doc.m4 macros</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=434134"; class="external">Bug 434134</a>: fixxrefs like sed for installing pregenerated docs</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=436565"; class="external">Bug 436565</a>: Report undeclared symbols into a file</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=445596"; class="external">Bug 445596</a>: Impossible to link a page with an anchor</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=445693"; class="external">Bug 445693</a>: Does not understand <code>unsigned long</code> as a type</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=450338"; class="external">Bug 450338</a>: Make gtk-doc.m4 fail when needed gtk-doc is not installed</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=454916"; class="external">Bug 454916</a>: gtk-doc should permit generation of URI-based cross-refer...</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=457077"; class="external">Bug 457077</a>: add --no-implicit-returns to gtkdoc-mkdb</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=459225"; class="external">Bug 459225</a>: Accept automake-1.10 in autogen.sh</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=459725"; class="external">Bug 459725</a>: <code>jhbuild build gtk-doc</code> fails on make</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=460127"; class="external">Bug 460127</a>: parsing nested union/structs confuses public/private state</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=465365"; class="external">Bug 465365</a>: [PATCH] gtk-doc does not compile</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=466559"; class="external">Bug 466559</a>: [CSS] styling &lt; hr / &gt;</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=471014"; class="external">Bug 471014</a>: G_CONST_RETURN * G_CONST_RETURN * function not picked up</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=477532"; class="external">Bug 477532</a>: function variables</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=479913"; class="external">Bug 479913</a>: gtk-doc.notmpl.make is not distributed</li>
+		<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=479923"; class="external">Bug 479923</a>: distclean test output properly</li>
+	</ul>
+</div>
+
+<div class="news-item">
+	<div class="header">
+		<h3 class="news-title">GTK-Doc 1.8</h3>
+		<span class="news-date">Released Feburary 16, 2007</span>
+	</div>
+	<ul>
+		<li>Made it easier to include example code in the source code comment blocks.</li>
+		<li><code>|[ ... ]|</code> can be used to delineate example code (it just gets converted to <code>&lt;informalexample&gt;&lt;programlisting&gt;</code>), and most of the text in example code is left as it is. The only thing that is still expanded is <code>#</code> to allow links to a symbol's documentation, e.g. <code>#GtkWidget</code>.</li>
+		<li>Made the field widths wider for the HTML output, so it looks a bit nicer.</li>
+		<li>Added a <code>--rebuild-sections</code> option to gtkdoc-scan to automatically rebuild the MODULE-sections.txt file. This only works if all the header files are organized neatly and functions don't need rearranging in the docs.</li>
+		<li>Added a <code>--rebuild-types</code> option to gtkdoc-scan to automatically rebuild the MODULE.types file, so you don't need to add new types manually.</li>
+		<li>Leave CDATA sections as they are, in the extra XML content files and within source code comment blocks.</li>
+		<li>Allow the section id and #include's to be set within the <code>SECTION:</code> comment block, using <code>@Section_ID:xxx</code> and <code>@Include:</code>.</li>
+		<li>Added <code>--default-includes</code> option to specify the default #include's (for people who are using --rebuild-sections and so can't specify it in MODULE-sections.txt).</li>
+		<li>Added a <code>--query-child-properties</code> argument to help document child properties of arbitrary GObjects (used by things like canvas widgets).</li>
+		<li>Fixed documentation of signals of interfaces.</li>
+	</ul>
+</div>
+
+<div class="news-item">
+	<div class="header">
+		<h3 class="news-title">GTK-Doc 1.7</h3>
+		<span class="news-date">Released July 29, 2006</span>
+	</div>
+	<ul>
+		<li>Fixed bug that resulted in empty <code>@:</code> lines in the templates.</li>
+		<li>Fixed a few bugs with the XSL code.</li>
+		<li>Supported a few more variations of C syntax.</li>
+		<li>Remove the internally-used '-struct' suffix from links to widget structs.</li>
+		<li>Fixed a few missing build dependencies.</li>
+		<li>Added a new <code>C-x4s</code> binding to the emacs lisp code, to insert a blank section header in the source code.</li>
+		<li>Fixed bug that ignored inline section header docs with '-' in their names.</li>
+		<li>Added a <code>make docs</code> target that can be used to build the docs even when gtk-doc has been disabled at configure time.</li>
+	</ul>
+</div>
+
+<div class="news-item">
+	<div class="header">
+		<h3 class="news-title">GTK-Doc 1.6</h3>
+		<span class="news-date">Released April 9, 2006</span>
+	</div>
+	<ul>
+		<li>Removed the hard dependancy on openjade or jade, since XML is used mainly now rather than SGML.</li>
+		<li>Install the .pc file in <code>$(datadir)</code> rather than <code>$(libdir)</code> since gtk-doc is architecture-independant.</li>
+		<li>Added <code>--ignore-decorators</code> option to ignore a list of declarators in function declarations.</li>
+		<li>Support <code>#Object::signal'/'#Object:property</code> to link to signals/properties.</li>
+		<li>Fixed missing index terms.</li>
+	</ul>
+</div>
+
+<div class="news-item">
+	<div class="header">
+		<h3 class="news-title">GTK-Doc 1.5</h3>
+		<span class="news-date">Released March 7, 2006</span>
+	</div>
+	<ul>
+		<li>Output the new version of devhelp2 information, but still generate the old devhelp files so older versions of DevHelp still work OK.</li>
+		<li>Fixed the initial creation of the *-sections.txt file so the object hierarchy, signals and properties all work automatically.</li>
+		<li>Show information about signal flags (run first/last).</li>
+		<li>Support a <code>--source-suffixes</code> argument specifying which source files to scan.</li>
+		<li>Support other root object types besides GObject and GInterface.</li>
+		<li>Use a fixed navigation bar for the generated documentation.</li>
+		<li>New documentation from Stefan Kost.</li>
+		<li>Handle more variations of C syntax.</li>
+	</ul>
+</div>
+
+<div class="news-item">
+	<div class="header">
+		<h3 class="news-title">GTK-Doc 1.4</h3>
+		<span class="news-date">Released July 3, 2005</span>
+	</div>
+	<ul>
+		<li>Support section documentation (title, short description, long description and 'see also') within the source code. I think everything can now be documented within the source code.</li>
+		<li>Support stable/unstable/private stability levels for everything.</li>
+	</ul>
+</div>
+
+<div class="news-item">
+	<div class="header">
+		<h3 class="news-title">GTK-Doc 1.3</h3>
+		<span class="news-date">Released January 9, 2005</span>
+	</div>
+	<ul>
+		<li>Use the new style.css stylesheet instead of hard-wiring the styles.</li>
+		<li>Updated the documentation and example build files.</li>
+		<li>Added support for a gallery of widget images.</li>
+		<li>Output default values for widget properties and allowed ranges.</li>
+		<li>Only underline links in the docs when the mouse hovers over them.</li>
+		<li>Added support for placing the parameter table anywhere within the function documentation (using the <code>&lt;!--PARAMETERS--&gt;</code> marker).</li>
+		<li>Handle more variations of C syntax.</li>
+	</ul>
+</div>
+
+<div class="news-item">
+	<div class="header">
+		<h3 class="news-title">GTK-Doc 1.2</h3>
+		<span class="news-date">Released February 16, 2004</span>
+	</div>
+	<ul>
+		<li>Added widget signals and properties to undocumented output and statistics.</li>
+		<li>Added support for an index of all symbols.</li>
+		<li>Emit "Since:" information for signals and properties.</li>
+		<li>Added derived subclasses and interfaces to the widget hierarchies.</li>
+		<li>Added .cat SGML catalog file.</li>
+		<li>Support properties on interfaces.</li>
+		<li>Added <code>--help</code> options to the scripts.</li>
+	</ul>
+</div>
+
+<div class="news-item">
+	<div class="header">
+		<h3 class="news-title">GTK-Doc 1.1</h3>
+		<span class="news-date">Released April 18, 2003</span>
+	</div>
+	<ul>
+		<li>Add a gtk-doc.m4 macro that allows packages to provide consistent checking for gtk-doc.</li>
+		<li>Check to make sure that the XML catalog actually contains entries for the DocBook XML DTD and XSLT stylesheets. Please consult the README file if your system's XML catalog isn't set up.</li>
+		<li>Add infrastructure for including the standard gtk-doc makefile glue, so that maintainers of packages don't need to worry about keeping it up to date. See glib head for an example of its use.</li>
+		<li>Some updates to the devhelp contents file generation, as suggested by Hallski.</li>
+		<li>Fix some bugs in the DocBook XML codepath that were preventing inter-module cross references from being resolved.</li>
+		<li>Fix some bugs in extraction of object property documentation.</li>
+	</ul>
+</div>
+
+<div class="news-item">
+	<div class="header">
+		<h3 class="news-title">GTK-Doc 1.0</h3>
+		<span class="news-date">Released January 20, 2003</span>
+	</div>
+	<ul>
+		<li>Added support for <code>Since:</code> and <code>Deprecated:</code> tags, and look for deprecated guard macros in header files.</li>
+		<li>Support <code>/*&lt; public &gt;*/</code> and <code>/*&lt; private &gt;*/</code> markers for all structs.</li>
+		<li>New <code>--ignore-files</code> option for gtkdoc-mkdb, to ignore files or directories.</li>
+		<li>Used the <code>sgml-raw</code> output type with openjade, to avoid problems with Lynx.</li>
+		<li>Added .pc pkg-config file which can be used to check the gtk-doc version.</li>
+	</ul>
+</div>
+
+<div class="news-item">
+	<div class="header">
+		<h3 class="news-title">GTK-Doc 0.10</h3>
+		<span class="news-date">Released November 14, 2002</span>
+	</div>
+	<ul>
+		<li><code>--output-format</code> option to select whether SGML or XML is generated.</li>
+		<li>Use openjade or jade when converting SGML to HTML.</li>
+		<li>Use xsltproc to convert XML to HTML, with a new look.</li>
+		<li>In XML mode, support XIncludes as an alternative to entities.</li>
+		<li>In XML mode, create .devhelp files.</li>
+		<li>List interfaces in the object hierarchy.</li>
+		<li>Create docs for signals on interfaces.</li>
+		<li>Generate links between interface and their implementations and prerequisites.</li>
+		<li>Create docs for child and style properties.</li>
+		<li>Use blurbs for property documentation.</li>
+		<li>Allow inline documentation for signals and properties.</li>
+	</ul>
+</div>
+
+<?php require '../template.php'; ?>
diff --git a/gtk-doc/requirements.php b/gtk-doc/requirements.php
new file mode 100644
index 0000000..15c9a4b
--- /dev/null
+++ b/gtk-doc/requirements.php
@@ -0,0 +1,30 @@
+<?php
+$title = "The GTK-Doc Project: Requirements";
+$nav = "requirements";
+ob_start();
+
+require 'gtkdoc.config.php';
+?>
+
+<h2>Basic GTK-Doc Requirements</h2>
+<p>The main scripts are written in <a href="http://www.perl.com/"; class="external">Perl</a>.</p>
+
+<h2>XML Generation</h2>
+<p>For writing XML files you will need the following packages. This is highly recommended!</p>
+<ul>
+	<li><a href="http://www.oasis-open.org/docbook/"; class="external">DocBook XML DTD</a></li>
+	<li><a href="http://docbook.sourceforge.net/"; class="external">DocBook XSL Stylesheets</a></li>
+	<li><a href="http://xmlsoft.org/"; class="external">libxslt &amp; libxml2</a></li>
+</ul>
+
+<h2>SGML Generation</h2>
+<p>For writing SGML files you will need the following packages. This is not actively maintained anymore.</p>
+<ul>
+	<li><a href="http://www.oasis-open.org/docbook/"; class="external">DocBook SGML DTD</a></li>
+	<li><a href="http://docbook.sourceforge.net/"; class="external">DocBook DSSSL Stylesheets</a></li>
+	<li><a href="http://www.jclark.com/jade"; class="external">Jade</a> or <a href="http://sourceforge.net/projects/openjade"; class="external">OpenJade</a></li>
+</ul>
+
+<p>Most distributions now have packages for all of these, so it is strongly advised that you grab those if possible.</p>
+
+<?php require '../template.php'; ?>
diff --git a/images/architecture.png b/images/architecture.png
new file mode 100644
index 0000000..7606b2f
Binary files /dev/null and b/images/architecture.png differ
diff --git a/images/architecture.svg b/images/architecture.svg
new file mode 100644
index 0000000..0e126ee
--- /dev/null
+++ b/images/architecture.svg
@@ -0,0 +1,69 @@
+<svg xmlns="http://www.w3.org/2000/svg"; version="1.1" width="1100" height="400"><!-- 1100x400 -->
+	<desc>Created by Devin Samarin (eboyjr) with help from Rapha&#xEB;l</desc>
+	<defs>
+		<linearGradient id="gtk-grey" x1="0" y1="1" x2="6.123031769111886e-17" y2="0">
+			<stop offset="0%" stop-color="#aaaaaa"/>
+			<stop offset="100%" stop-color="#dddddd"/>
+		</linearGradient>
+		<linearGradient id="gtk-blue" x1="0" y1="1" x2="6.123031769111886e-17" y2="0">
+			<stop offset="0%" stop-color="#729fcf"/>
+			<stop offset="100%" stop-color="#b0d6ff"/>
+		</linearGradient>
+		<linearGradient id="gtk-green" x1="0" y1="1" x2="6.123031769111886e-17" y2="0">
+			<stop offset="0%" stop-color="#7fe719"/>
+			<stop offset="100%" stop-color="#beff7e"/>
+		</linearGradient>
+		<linearGradient id="gtk-red" x1="0" y1="1" x2="6.123031769111886e-17" y2="0">
+			<stop offset="0%" stop-color="#e40000"/>
+			<stop offset="100%" stop-color="#ff3f3f"/>
+		</linearGradient>
+	</defs>
+	<g id="yourapp">
+		<path fill="url(#gtk-blue)" stroke="none" d="M5,5L1095,5L1095,295L1005,295L1005,195L905,195L905,95L195,95L195,195L95,195L95,295L5,295Z" style="opacity: 1; fill-opacity: 1; " opacity="1" fill-opacity="1"/>
+		<text x="550" y="62" text-anchor="middle" style="text-anchor: middle; font: normal normal normal 10px/normal Arial; font-size: 36px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', sans-serif; " font="10px &quot;Arial&quot;" stroke="none" fill="#000000" font-size="36px" font-family="&quot;DejaVu Sans&quot;, &quot;Bitstream Vera Sans&quot;, sans-serif">
+			<tspan>Your GTK+ Application</tspan>
+		</text>
+	</g>
+	<g id="gtk">
+		<path fill="url(#gtk-red)" stroke="none" d="M200,100L900,100L900,195L800,195L800,295L700,295L700,195L400,195L400,295L300,295L300,195L200,195Z" style="opacity: 1; fill-opacity: 1; " opacity="1" fill-opacity="1"/>
+		<text x="550" y="159.5" text-anchor="middle" style="text-anchor: middle; font: normal normal normal 10px/normal Arial; font-size: 36px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', sans-serif; " font="10px &quot;Arial&quot;" stroke="none" fill="#000000" font-size="36px" font-family="&quot;DejaVu Sans&quot;, &quot;Bitstream Vera Sans&quot;, sans-serif">
+			<tspan>GTK+</tspan>
+		</text>
+	</g>
+	<g id="pango">
+		<path fill="url(#gtk-green)" stroke="none" d="M100,200L295,200L295,295L100,295Z" style="opacity: 1; fill-opacity: 1; " opacity="1" fill-opacity="1"/>
+		<text x="197.5" y="259.5" text-anchor="middle" style="text-anchor: middle; font: normal normal normal 10px/normal Arial; font-size: 36px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', sans-serif; " font="10px &quot;Arial&quot;" stroke="none" fill="#000000" font-size="36px" font-family="&quot;DejaVu Sans&quot;, &quot;Bitstream Vera Sans&quot;, sans-serif">
+			<tspan>Pango</tspan>
+		</text>
+	</g>
+	<g id="gdk">
+		<path fill="url(#gtk-green)" stroke="none" d="M405,200L595,200L595,295L405,295Z" style="opacity: 1; fill-opacity: 1; " opacity="1" fill-opacity="1"/>
+		<text x="497.5" y="259.5" text-anchor="middle" style="text-anchor: middle; font: normal normal normal 10px/normal Arial; font-size: 36px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', sans-serif; " font="10px &quot;Arial&quot;" stroke="none" fill="#000000" font-size="36px" font-family="&quot;DejaVu Sans&quot;, &quot;Bitstream Vera Sans&quot;, sans-serif">
+			<tspan>GDK</tspan>
+		</text>
+	</g>
+	<g id="atk">
+		<path fill="url(#gtk-green)" stroke="none" d="M600,200L695,200L695,295L600,295Z" style="opacity: 1; fill-opacity: 1; " opacity="1" fill-opacity="1"/>
+		<text x="647.5" y="259.5" text-anchor="middle" style="text-anchor: middle; font: normal normal normal 10px/normal Arial; font-size: 36px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', sans-serif; " font="10px &quot;Arial&quot;" stroke="none" fill="#000000" font-size="36px" font-family="&quot;DejaVu Sans&quot;, &quot;Bitstream Vera Sans&quot;, sans-serif">
+			<tspan>ATK</tspan>
+		</text>
+	</g>
+	<g id="gio">
+		<path fill="url(#gtk-green)" stroke="none" d="M805,200L1000,200L1000,295L805,295Z" style="opacity: 1; fill-opacity: 1; " opacity="1" fill-opacity="1"/>
+		<text x="900" y="259.5" text-anchor="middle" style="text-anchor: middle; font: normal normal normal 10px/normal Arial; font-size: 36px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', sans-serif; " font="10px &quot;Arial&quot;" stroke="none" fill="#000000" font-size="36px" font-family="&quot;DejaVu Sans&quot;, &quot;Bitstream Vera Sans&quot;, sans-serif">
+			<tspan>GIO</tspan>
+		</text>
+	</g>
+	<g id="cairo">
+		<path fill="url(#gtk-grey)" stroke="none" d="M5,300L495,300L495,395L5,395Z" style="opacity: 1; fill-opacity: 1; " opacity="1" fill-opacity="1"/>
+		<text x="250" y="359.5" text-anchor="middle" style="text-anchor: middle; font: normal normal normal 10px/normal Arial; font-size: 36px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', sans-serif; " font="10px &quot;Arial&quot;" stroke="none" fill="#000000" font-size="36px" font-family="&quot;DejaVu Sans&quot;, &quot;Bitstream Vera Sans&quot;, sans-serif">
+			<tspan>Cairo</tspan>
+		</text>
+	</g>
+	<g id="glib">
+		<path fill="url(#gtk-grey)" stroke="none" d="M500,300L1095,300L1095,395L500,395Z" style="opacity: 1; fill-opacity: 1; " opacity="1" fill-opacity="1"/>
+		<text x="795" y="359.5" text-anchor="middle" style="text-anchor: middle; font: normal normal normal 10px/normal Arial; font-size: 36px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', sans-serif; " font="10px &quot;Arial&quot;" stroke="none" fill="#000000" font-size="36px" font-family="&quot;DejaVu Sans&quot;, &quot;Bitstream Vera Sans&quot;, sans-serif">
+			<tspan>GLib</tspan>
+		</text>
+	</g>
+</svg>
diff --git a/images/archives.gif b/images/archives.gif
new file mode 100644
index 0000000..6dab998
Binary files /dev/null and b/images/archives.gif differ
diff --git a/images/arrows.png b/images/arrows.png
new file mode 100644
index 0000000..0664043
Binary files /dev/null and b/images/arrows.png differ
diff --git a/images/atk.png b/images/atk.png
new file mode 100644
index 0000000..83ed259
Binary files /dev/null and b/images/atk.png differ
diff --git a/images/bullet.gif b/images/bullet.gif
new file mode 100644
index 0000000..073710b
Binary files /dev/null and b/images/bullet.gif differ
diff --git a/images/cairo.png b/images/cairo.png
new file mode 100644
index 0000000..bc79a92
Binary files /dev/null and b/images/cairo.png differ
diff --git a/images/commerce/platforms/gnome.png b/images/commerce/platforms/gnome.png
new file mode 100755
index 0000000..1daf713
Binary files /dev/null and b/images/commerce/platforms/gnome.png differ
diff --git a/images/commerce/platforms/maemo.png b/images/commerce/platforms/maemo.png
new file mode 100755
index 0000000..4b52a38
Binary files /dev/null and b/images/commerce/platforms/maemo.png differ
diff --git a/images/download.png b/images/download.png
new file mode 100644
index 0000000..1217b85
Binary files /dev/null and b/images/download.png differ
diff --git a/images/external.png b/images/external.png
new file mode 100644
index 0000000..4b710b0
Binary files /dev/null and b/images/external.png differ
diff --git a/images/features/thumbnail-twf.png b/images/features/thumbnail-twf.png
new file mode 100644
index 0000000..369a324
Binary files /dev/null and b/images/features/thumbnail-twf.png differ
diff --git a/images/features/twf.png b/images/features/twf.png
new file mode 100644
index 0000000..c4d2be1
Binary files /dev/null and b/images/features/twf.png differ
diff --git a/images/glib.png b/images/glib.png
new file mode 100644
index 0000000..8297d17
Binary files /dev/null and b/images/glib.png differ
diff --git a/images/gnome-binding.png b/images/gnome-binding.png
new file mode 100644
index 0000000..95c4ff6
Binary files /dev/null and b/images/gnome-binding.png differ
diff --git a/images/gtk-logo.ico b/images/gtk-logo.ico
new file mode 100644
index 0000000..5115083
Binary files /dev/null and b/images/gtk-logo.ico differ
diff --git a/images/gtkbg.png b/images/gtkbg.png
new file mode 100644
index 0000000..43024df
Binary files /dev/null and b/images/gtkbg.png differ
diff --git a/images/gtkbg.svg b/images/gtkbg.svg
new file mode 100644
index 0000000..d0d5799
--- /dev/null
+++ b/images/gtkbg.svg
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="744.09448819"
+   height="1052.3622047"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="New document 1">
+  <defs
+     id="defs4">
+    <linearGradient
+       id="linearGradient4582">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:1;"
+         offset="0"
+         id="stop4584" />
+      <stop
+         style="stop-color:#98bde5;stop-opacity:1;"
+         offset="1"
+         id="stop4586" />
+    </linearGradient>
+    <inkscape:path-effect
+       effect="skeletal"
+       id="path-effect3757"
+       is_visible="true"
+       pattern="m -6.009945,16.026519 0,10.000001 10,-5 z"
+       copytype="single_stretched"
+       prop_scale="1"
+       scale_y_rel="false"
+       spacing="0"
+       normal_offset="0"
+       tang_offset="0"
+       prop_units="false"
+       vertical_pattern="false"
+       fuse_tolerance="0" />
+    <inkscape:path-effect
+       effect="spiro"
+       id="path-effect3755"
+       is_visible="true" />
+    <inkscape:path-effect
+       effect="skeletal"
+       id="path-effect3737"
+       is_visible="true"
+       pattern="m 1.0016543,13.021547 0,10 9.9999997,-5 z"
+       copytype="single_stretched"
+       prop_scale="1"
+       scale_y_rel="false"
+       spacing="0"
+       normal_offset="0"
+       tang_offset="0"
+       prop_units="false"
+       vertical_pattern="false"
+       fuse_tolerance="0" />
+    <inkscape:path-effect
+       effect="spiro"
+       id="path-effect3735"
+       is_visible="true" />
+    <inkscape:path-effect
+       effect="skeletal"
+       id="path-effect3731"
+       is_visible="true"
+       pattern="m 2.0033155,17.028177 0,10 10.0000005,-5 z"
+       copytype="single_stretched"
+       prop_scale="1"
+       scale_y_rel="false"
+       spacing="0"
+       normal_offset="0"
+       tang_offset="0"
+       prop_units="false"
+       vertical_pattern="false"
+       fuse_tolerance="0" />
+    <inkscape:path-effect
+       effect="spiro"
+       id="path-effect3729"
+       is_visible="true" />
+    <inkscape:path-effect
+       effect="spiro"
+       id="path-effect2830"
+       is_visible="true" />
+    <inkscape:path-effect
+       effect="spiro"
+       id="path-effect2826"
+       is_visible="true" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2844"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3638"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective13"
+       inkscape:persp3d-origin="300 : 400 : 1"
+       inkscape:vp_z="700 : 600 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="-50 : 600 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4568"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4582"
+       id="linearGradient4588"
+       x1="145.71429"
+       y1="193.79076"
+       x2="331.42857"
+       y2="193.79076"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.9983453"
+     inkscape:cx="214.88213"
+     inkscape:cy="747.75395"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1024"
+     inkscape:window-height="548"
+     inkscape:window-x="0"
+     inkscape:window-y="25"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <rect
+       style="fill:#eeeeee;fill-opacity:1;stroke:none"
+       id="rect3725"
+       width="217.35966"
+       height="580.9613"
+       x="174.28839"
+       y="166.897" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#729fcf;fill-opacity:1;stroke:none"
+       id="path2834"
+       sodipodi:cx="238.57143"
+       sodipodi:cy="193.79076"
+       sodipodi:rx="92.85714"
+       sodipodi:ry="92.85714"
+       d="m 331.42857,193.79076 a 92.85714,92.85714 0 1 1 -185.71428,0 92.85714,92.85714 0 1 1 185.71428,0 z"
+       transform="matrix(0.45188492,0,0,0.45188492,-84.403623,82.657801)"
+       inkscape:export-filename="/home/eboyjr/.gvfs/sftp for eboyjr on 192.168.2.8/var/www/gtk/images/gtkbg.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90" />
+    <path
+       transform="matrix(0.35455586,0,0,0.35455586,-8.8941434,133.15122)"
+       sodipodi:type="arc"
+       style="fill:#7fe719;fill-opacity:1;stroke:none"
+       id="path2834-0"
+       sodipodi:cx="238.57143"
+       sodipodi:cy="193.79076"
+       sodipodi:rx="92.85714"
+       sodipodi:ry="92.85714"
+       d="m 331.42857,193.79076 a 92.85714,92.85714 0 1 1 -185.71428,0 92.85714,92.85714 0 1 1 185.71428,0 z"
+       inkscape:export-filename="/home/eboyjr/.gvfs/sftp for eboyjr on 192.168.2.8/var/www/gtk/images/gtkbg.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90" />
+    <path
+       transform="matrix(0.27113095,0,0,0.27113095,-29.015443,199.67108)"
+       sodipodi:type="arc"
+       style="fill:#e40000;fill-opacity:1;stroke:none"
+       id="path2834-0-1"
+       sodipodi:cx="238.57143"
+       sodipodi:cy="193.79076"
+       sodipodi:rx="92.85714"
+       sodipodi:ry="92.85714"
+       d="m 331.42857,193.79076 a 92.85714,92.85714 0 1 1 -185.71428,0 92.85714,92.85714 0 1 1 185.71428,0 z"
+       inkscape:export-filename="/home/eboyjr/.gvfs/sftp for eboyjr on 192.168.2.8/var/www/gtk/images/gtkbg.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90" />
+    <path
+       style="fill:#e40000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       d="m 245.05224,195.12019 -9.30888,3.65306 c 12.94594,32.04347 18.07623,67.35824 14.73012,101.92448 -1.9596,20.42159 -6.86165,40.69848 -10.94204,61.276 0,1e-5 0,1e-5 0,2e-5 -4.07929,20.41971 -7.32514,41.41969 -5.89357,62.51312 1.47662,21.04203 7.57103,41.32123 15.0951,60.70513 7.59566,19.60238 16.60706,38.5004 24.27725,57.88182 0,1e-5 0,1e-5 0,1e-5 6.60026,16.69574 12.21337,33.86297 14.4832,51.60686 2.26533,17.73768 1.11501,36.17572 -5.48703,52.824 -6.25917,15.80007 -17.41605,29.69443 -31.59202,39.25252 14.35883,-9.28112 25.86914,-23.01242 32.51406,-38.87676 6.99507,-16.7167 8.56437,-35.39819 6.59563,-53.44006 -1.96459,-18.03872 -7.29267,-35.54181 -13.62598,-52.47714 -10e-6,-10e-6 -10e-6,-2e-5 -10e-6,-3e-5 -7.34319,-19.65774 -15.99345,-38.74595 -23.12941,-58.28993 -7.04313,-19.32561 -12.64286,-39.26961 -13.62419,-59.51424 -1.03217,-20.2905 2.57934,-40.64856 6.96875,-60.81186 4.45238,-20.31245 9.78142,-40.6935 12.2553,-61.80674 4.16291,-35.78173 -0.41776,-72.60564 -13.3
 1628,-106.42026 z"
+       id="path3733"
+       inkscape:path-effect="#path-effect3735;#path-effect3737"
+       inkscape:original-d="m 240.3978,196.94672 c 0,0 25.04143,32.05304 14.0232,104.17237 -11.01823,72.11934 -30.04972,71.11768 -18.02983,123.20387 12.01989,52.08619 44.07293,43.07127 38.06298,118.19558 -6.00994,75.12431 27.04475,72.11933 8.01326,105.17403 -19.03149,33.0547 -32.05304,39.06464 -32.05304,39.06464"
+       inkscape:export-filename="/home/eboyjr/.gvfs/sftp for eboyjr on 192.168.2.8/var/www/gtk/images/gtkbg.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90" />
+    <path
+       style="fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       d="m 301.11638,204.20877 -5.24494,-8.51414 c -28.66722,18.02054 -50.43493,46.35506 -60.46116,78.46842 -10.00985,32.11863 -8.14663,67.59482 5.0222,98.31496 5.50586,12.8061 12.78989,24.62201 20.49213,35.95673 7.72926,11.38927 15.88445,22.3627 23.30171,33.74061 7.39322,11.35418 14.09603,23.15625 18.68327,35.76662 4.57973,12.60514 7.07399,26.08327 5.88213,39.3663 0,10e-6 0,2e-5 0,3e-5 -0.88896,10.14178 -3.93359,20.08309 -7.98519,29.57152 -4.10061,9.59294 -9.23071,18.76968 -14.46013,27.90479 0,10e-6 -1e-5,2e-5 -1e-5,3e-5 -5.23052,9.13085 -10.53322,18.28347 -14.98369,27.88178 -4.41242,9.51063 -7.9587,19.51872 -9.50841,29.90962 -3.19135,21.45449 2.60951,44.031 15.60482,61.19278 -12.68112,-17.39523 -17.97567,-39.94005 -14.44492,-61.00942 1.70718,-10.21209 5.39332,-20.01157 9.92343,-29.34561 4.57526,-9.42167 10.01166,-18.41684 15.40928,-27.45921 0,0 10e-6,-10e-6 10e-6,-2e-5 5.40604,-9.05063 10.74487,-18.21333 15.1081,-27.91281 4.3222,-9.59873 7.63608,-19.79381 8.78087,-30.3958
  1.47214,-13.88912 -0.82858,-27.97626 -5.36209,-41.1077 -4.52645,-13.12744 -11.16614,-25.37626 -18.47641,-37.02863 -7.31934,-11.68044 -15.29842,-22.83889 -22.73042,-34.23097 -1e-5,-1e-5 -1e-5,-2e-5 -2e-5,-3e-5 -7.39087,-11.34425 -14.28407,-22.96167 -19.29392,-35.28637 -12.02383,-29.48611 -13.11118,-63.30106 -3.13772,-93.31238 9.95709,-30.01658 30.98113,-56.26077 57.88108,-72.4711 z"
+       id="path3727"
+       inkscape:path-effect="#path-effect3729;#path-effect3731"
+       inkscape:original-d="m 298.49391,199.9517 c 0,0 -70.11602,122.20221 -55.09116,171.28343 15.02487,49.08121 81.13426,99.16408 67.11105,146.24198 -14.0232,47.0779 -52.08618,87.1442 -48.07956,115.19061 4.00663,28.04641 22.03647,45.07458 15.02487,61.1011"
+       inkscape:export-filename="/home/eboyjr/.gvfs/sftp for eboyjr on 192.168.2.8/var/www/gtk/images/gtkbg.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90" />
+    <path
+       style="fill:#7fe719;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       d="m 258.82233,194.28202 -6.79936,7.33272 c 18.40008,16.73152 31.92376,38.99073 38.29612,63.17527 6.37993,24.18262 5.6227,50.35175 -2.22242,74.24712 -4.55271,13.92655 -11.51558,27.12016 -19.17318,39.94513 0,1e-5 -1e-5,2e-5 -1e-5,3e-5 -7.7154,12.90054 -16.18953,25.48503 -23.95441,38.61221 -7.75104,13.08527 -14.77882,26.80905 -19.35268,41.47924 -4.58285,14.67561 -6.55739,30.39199 -4.13513,45.66617 2.30972,14.32807 8.36097,27.68994 15.79062,39.90023 0,0 1e-5,0 1e-5,10e-6 7.42021,12.21174 16.18582,23.42694 24.52538,34.85207 10e-6,0 10e-6,10e-6 2e-5,2e-5 8.33355,11.42849 16.31743,23.17266 21.95884,36.07228 1e-5,0 1e-5,10e-6 1e-5,10e-6 5.63556,12.89588 8.90202,27.0945 7.38141,41.10242 -1.34655,12.44861 -6.52202,24.5046 -14.68009,34.09689 8.33298,-9.44074 13.7759,-21.45312 15.36963,-34.01583 1.78771,-14.13417 -1.22759,-28.5965 -6.71387,-41.7626 -5.48154,-13.16499 -13.32049,-25.19098 -21.48082,-36.80669 -8.15439,-11.61917 -16.68261,-22.94736 -23.74945,-35.09164 -7.05691,-12.1
 4492 -12.71501,-25.22199 -14.62499,-38.91589 -2.07376,-14.58276 0.14461,-29.60218 4.78765,-43.67608 4.65256,-14.08102 11.76234,-27.3021 19.61826,-40.06603 7.88982,-12.80108 16.5801,-25.20594 24.65238,-38.15289 10e-6,-10e-6 10e-6,-10e-6 10e-6,-2e-5 8.03362,-12.86459 15.44844,-26.36046 20.55171,-40.94584 8.74029,-25.07762 10.08916,-52.71047 3.76271,-78.64748 -6.33403,-25.93509 -20.29448,-49.97611 -39.80835,-68.40083 z"
+       id="path3753"
+       inkscape:path-effect="#path-effect3755;#path-effect3757"
+       inkscape:original-d="m 255.42265,197.94838 c 0,0 46.07624,77.12762 36.05967,142.23535 -10.01657,65.10774 -73.12099,122.20221 -68.11271,164.27182 5.00829,42.06962 73.121,122.20221 68.11271,152.25193 -5.00829,30.04973 -15.02486,34.05636 -15.02486,34.05636"
+       inkscape:export-filename="/home/eboyjr/.gvfs/sftp for eboyjr on 192.168.2.8/var/www/gtk/images/gtkbg.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90" />
+    <path
+       sodipodi:type="arc"
+       style="fill:url(#linearGradient4588);fill-opacity:1;stroke:none"
+       id="path2834-7"
+       sodipodi:cx="238.57143"
+       sodipodi:cy="193.79076"
+       sodipodi:rx="92.85714"
+       sodipodi:ry="92.85714"
+       d="m 331.42857,193.79076 a 92.85714,92.85714 0 1 1 -185.71428,0 92.85714,92.85714 0 1 1 185.71428,0 z"
+       transform="matrix(0.45188492,0,0,0.45188492,-29.677549,274.64909)"
+       inkscape:export-filename="/home/eboyjr/.gvfs/sftp for eboyjr on 192.168.2.8/var/www/gtk/images/gtkbg.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90" />
+  </g>
+</svg>
diff --git a/images/header-logo-gtk-doc.png b/images/header-logo-gtk-doc.png
new file mode 100644
index 0000000..792ae72
Binary files /dev/null and b/images/header-logo-gtk-doc.png differ
diff --git a/images/header-logo-gtk-doc.svg b/images/header-logo-gtk-doc.svg
new file mode 100644
index 0000000..272f463
--- /dev/null
+++ b/images/header-logo-gtk-doc.svg
@@ -0,0 +1,394 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:osb="http://www.openswatchbook.org/uri/2009/osb";
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="900"
+   height="100"
+   id="svg3765"
+   version="1.1"
+   inkscape:version="0.48.1 r9760"
+   inkscape:export-filename="/home/martyn/header-logo.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   sodipodi:docname="gtk-doc-header-logo.svg">
+  <defs
+     id="defs3767">
+    <linearGradient
+       id="linearGradient5385"
+       osb:paint="solid">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5387" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4293">
+      <stop
+         style="stop-color:#3f79ba;stop-opacity:1;"
+         offset="0"
+         id="stop4295" />
+      <stop
+         style="stop-color:#539ff4;stop-opacity:1;"
+         offset="1"
+         id="stop4297" />
+    </linearGradient>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective3773" />
+    <inkscape:perspective
+       id="perspective4334"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4293-3"
+       id="linearGradient4299-8"
+       x1="53.5"
+       y1="100.03642"
+       x2="54"
+       y2="0"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient4293-3">
+      <stop
+         style="stop-color:#3f79ba;stop-opacity:1;"
+         offset="0"
+         id="stop4295-4" />
+      <stop
+         style="stop-color:#77a8df;stop-opacity:1;"
+         offset="1"
+         id="stop4297-6" />
+    </linearGradient>
+    <linearGradient
+       y2="0"
+       x2="54"
+       y1="100.03642"
+       x1="53.5"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4343"
+       xlink:href="#linearGradient4293-3"
+       inkscape:collect="always" />
+    <inkscape:perspective
+       id="perspective4372"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <filter
+       id="filter3639"
+       inkscape:label="Inner Shadow"
+       inkscape:menu="Shadows and Glows"
+       inkscape:menu-tooltip="Adds a colorizable drop shadow inside"
+       color-interpolation-filters="sRGB">
+      <feGaussianBlur
+         id="feGaussianBlur3641"
+         stdDeviation="0.01"
+         result="result8" />
+      <feOffset
+         id="feOffset3643"
+         dx="1.5"
+         dy="1.5"
+         result="result11" />
+      <feComposite
+         id="feComposite3645"
+         in2="result11"
+         result="result6"
+         in="SourceGraphic"
+         operator="in" />
+      <feFlood
+         id="feFlood3647"
+         result="result10"
+         in="result6"
+         flood-opacity="1"
+         flood-color="rgb(0,0,0)" />
+      <feBlend
+         id="feBlend3649"
+         in2="result10"
+         mode="normal"
+         in="result6"
+         result="result12" />
+      <feComposite
+         id="feComposite3651"
+         in2="SourceGraphic"
+         result="result2"
+         operator="in" />
+    </filter>
+    <filter
+       id="filter3639-8"
+       inkscape:label="Inner Shadow"
+       inkscape:menu="Shadows and Glows"
+       inkscape:menu-tooltip="Adds a colorizable drop shadow inside"
+       color-interpolation-filters="sRGB">
+      <feGaussianBlur
+         id="feGaussianBlur3641-2"
+         stdDeviation="0.01"
+         result="result8" />
+      <feOffset
+         id="feOffset3643-0"
+         dx="1.5"
+         dy="1.5"
+         result="result11" />
+      <feComposite
+         id="feComposite3645-2"
+         in2="result11"
+         result="result6"
+         in="SourceGraphic"
+         operator="in" />
+      <feFlood
+         id="feFlood3647-4"
+         result="result10"
+         in="result6"
+         flood-opacity="1"
+         flood-color="rgb(0,0,0)" />
+      <feBlend
+         id="feBlend3649-9"
+         in2="result10"
+         mode="normal"
+         in="result6"
+         result="result12" />
+      <feComposite
+         id="feComposite3651-8"
+         in2="SourceGraphic"
+         result="result2"
+         operator="in" />
+    </filter>
+    <filter
+       id="filter3639-89"
+       inkscape:label="Inner Shadow"
+       inkscape:menu="Shadows and Glows"
+       inkscape:menu-tooltip="Adds a colorizable drop shadow inside"
+       color-interpolation-filters="sRGB">
+      <feGaussianBlur
+         id="feGaussianBlur3641-28"
+         stdDeviation="0.01"
+         result="result8" />
+      <feOffset
+         id="feOffset3643-6"
+         dx="1.5"
+         dy="1.5"
+         result="result11" />
+      <feComposite
+         id="feComposite3645-7"
+         in2="result11"
+         result="result6"
+         in="SourceGraphic"
+         operator="in" />
+      <feFlood
+         id="feFlood3647-3"
+         result="result10"
+         in="result6"
+         flood-opacity="1"
+         flood-color="rgb(0,0,0)" />
+      <feBlend
+         id="feBlend3649-5"
+         in2="result10"
+         mode="normal"
+         in="result6"
+         result="result12" />
+      <feComposite
+         id="feComposite3651-3"
+         in2="SourceGraphic"
+         result="result2"
+         operator="in" />
+    </filter>
+    <filter
+       id="filter3639-1"
+       inkscape:label="Inner Shadow"
+       inkscape:menu="Shadows and Glows"
+       inkscape:menu-tooltip="Adds a colorizable drop shadow inside"
+       color-interpolation-filters="sRGB">
+      <feGaussianBlur
+         id="feGaussianBlur3641-8"
+         stdDeviation="0.01"
+         result="result8" />
+      <feOffset
+         id="feOffset3643-2"
+         dx="1.5"
+         dy="1.5"
+         result="result11" />
+      <feComposite
+         id="feComposite3645-8"
+         in2="result11"
+         result="result6"
+         in="SourceGraphic"
+         operator="in" />
+      <feFlood
+         id="feFlood3647-7"
+         result="result10"
+         in="result6"
+         flood-opacity="1"
+         flood-color="rgb(0,0,0)" />
+      <feBlend
+         id="feBlend3649-6"
+         in2="result10"
+         mode="normal"
+         in="result6"
+         result="result12" />
+      <feComposite
+         id="feComposite3651-84"
+         in2="SourceGraphic"
+         result="result2"
+         operator="in" />
+    </filter>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5385"
+       id="linearGradient3061"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-38.362444,2)"
+       x1="251.95441"
+       y1="53.822685"
+       x2="741.73566"
+       y2="53.822685" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.6733333"
+     inkscape:cx="450"
+     inkscape:cy="50"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer6"
+     showgrid="false"
+     showborder="true"
+     borderlayer="true"
+     inkscape:showpageshadow="true"
+     inkscape:window-width="1886"
+     inkscape:window-height="1122"
+     inkscape:window-x="213"
+     inkscape:window-y="54"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata3770">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Background"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0, -952.362)"
+     sodipodi:insensitive="true"
+     style="display:none">
+    <rect
+       style="fill:#eeeeef;fill-opacity:1;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect3775"
+       width="900"
+       height="100"
+       x="0"
+       y="-1.4210855e-14"
+       transform="translate(0, 952.362)" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="Header">
+    <rect
+       style="fill:url(#linearGradient4343);fill-opacity:1;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;display:inline"
+       id="rect4291"
+       width="900"
+       height="132"
+       x="0"
+       y="0"
+       rx="24"
+       ry="24" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="Shine"
+     style="opacity:0.17600002;display:inline" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="Text" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="Logo"
+     style="display:inline">
+    <g
+       transform="matrix(0.687665,0,0,0.687665,106.91756,5.89226)"
+       id="g4301">
+      <path
+         style="fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.12364459;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+         d="M 20.88413,30.82696 53.816977,55.527708 107.33282,39.060543 70.587303,17.177763 20.88413,30.82696 z"
+         id="path6976"
+         sodipodi:nodetypes="ccccc"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#e40000;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.12364459;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+         d="m 22.94243,82.287118 -2.0583,-51.460158 32.932847,24.700748 0,55.577152 L 22.94243,82.287118 z"
+         id="path6978"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#7fe719;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.12364459;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+         d="m 53.816977,111.10486 49.399213,-20.58416 4.11663,-51.460157 -53.515843,16.467165 0,55.577152 z"
+         id="path6980"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:none;stroke:#ffffff;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="M 23.216626,81.319479 70.48573,67.361442 103.38422,90.444516"
+         id="path6982"
+         sodipodi:nodetypes="ccc"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#babdb6;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m 70.434539,17.875593 0,49.109284"
+         id="path6984"
+         sodipodi:nodetypes="cc"
+         inkscape:connector-curvature="0" />
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="378.36282"
+       y="11.147676"
+       id="text3014"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3016"
+         x="378.36282"
+         y="11.147676" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:56px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:url(#linearGradient3061);fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.46382979;stroke-dasharray:none;stroke-dashoffset:0;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+       x="213.75603"
+       y="71.271904"
+       id="text3148"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3150"
+         x="213.75603"
+         y="71.271904"
+         style="fill:url(#linearGradient3061);fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.46382979;stroke-dasharray:none;stroke-dashoffset:0">The GTK-Doc Project</tspan></text>
+  </g>
+</svg>
diff --git a/images/header-logo-inset.png b/images/header-logo-inset.png
new file mode 100644
index 0000000..72c5b97
Binary files /dev/null and b/images/header-logo-inset.png differ
diff --git a/images/header-logo-inset.svg b/images/header-logo-inset.svg
new file mode 100644
index 0000000..a930dae
--- /dev/null
+++ b/images/header-logo-inset.svg
@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="900"
+   height="100"
+   id="svg3765"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   inkscape:export-filename="/home/eboyjr/.gvfs/sftp for eboyjr on 192.168.2.6/var/gtk/images/header-logo.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   sodipodi:docname="header-logo.svg">
+  <defs
+     id="defs3767">
+    <linearGradient
+       id="linearGradient4293">
+      <stop
+         style="stop-color:#3f79ba;stop-opacity:1;"
+         offset="0"
+         id="stop4295" />
+      <stop
+         style="stop-color:#539ff4;stop-opacity:1;"
+         offset="1"
+         id="stop4297" />
+    </linearGradient>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective3773" />
+    <inkscape:perspective
+       id="perspective4334"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4293-3"
+       id="linearGradient4299-8"
+       x1="53.5"
+       y1="100.03642"
+       x2="54"
+       y2="0"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient4293-3">
+      <stop
+         style="stop-color:#3f79ba;stop-opacity:1;"
+         offset="0"
+         id="stop4295-4" />
+      <stop
+         style="stop-color:#77a8df;stop-opacity:1;"
+         offset="1"
+         id="stop4297-6" />
+    </linearGradient>
+    <linearGradient
+       y2="0"
+       x2="54"
+       y1="100.03642"
+       x1="53.5"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4343"
+       xlink:href="#linearGradient4293-3"
+       inkscape:collect="always" />
+    <inkscape:perspective
+       id="perspective4372"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <filter
+       id="filter3639"
+       inkscape:label="Inner Shadow"
+       inkscape:menu="Shadows and Glows"
+       inkscape:menu-tooltip="Adds a colorizable drop shadow inside"
+       color-interpolation-filters="sRGB">
+      <feGaussianBlur
+         id="feGaussianBlur3641"
+         stdDeviation="0.01"
+         result="result8" />
+      <feOffset
+         id="feOffset3643"
+         dx="1.5"
+         dy="1.5"
+         result="result11" />
+      <feComposite
+         id="feComposite3645"
+         in2="result11"
+         result="result6"
+         in="SourceGraphic"
+         operator="in" />
+      <feFlood
+         id="feFlood3647"
+         result="result10"
+         in="result6"
+         flood-opacity="1"
+         flood-color="rgb(0,0,0)" />
+      <feBlend
+         id="feBlend3649"
+         in2="result10"
+         mode="normal"
+         in="result6"
+         result="result12" />
+      <feComposite
+         id="feComposite3651"
+         in2="SourceGraphic"
+         result="result2"
+         operator="in" />
+    </filter>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.0074671"
+     inkscape:cx="175.82294"
+     inkscape:cy="60.131632"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer3"
+     showgrid="false"
+     showborder="true"
+     borderlayer="true"
+     inkscape:showpageshadow="true"
+     inkscape:window-width="1024"
+     inkscape:window-height="548"
+     inkscape:window-x="0"
+     inkscape:window-y="25"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata3770">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Background"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-952.36218)"
+     sodipodi:insensitive="true"
+     style="display:none">
+    <rect
+       style="fill:#eeeeef;fill-opacity:1;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect3775"
+       width="900"
+       height="100"
+       x="0"
+       y="-1.4210855e-14"
+       transform="translate(0,952.36218)" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="Header">
+    <rect
+       style="fill:url(#linearGradient4343);fill-opacity:1;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;display:inline"
+       id="rect4291"
+       width="900"
+       height="132"
+       x="0"
+       y="0"
+       rx="24"
+       ry="24" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="Shine"
+     style="opacity:0.17600002;display:inline" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="Text" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="Logo"
+     style="display:inline">
+    <text
+       id="text4176"
+       y="71.449219"
+       x="251.47121"
+       style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;filter:url(#filter3639)"
+       xml:space="preserve"><tspan
+         style="font-size:56px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+         y="71.449219"
+         x="251.47121"
+         id="tspan4178"
+         sodipodi:role="line">The GTK+ Project</tspan></text>
+    <g
+       transform="matrix(0.68766509,0,0,0.68766509,145.28049,5.8922593)"
+       id="g4301">
+      <path
+         style="fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.12364459;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+         d="M 20.88413,30.82696 53.816977,55.527708 107.33282,39.060543 70.587303,17.177763 20.88413,30.82696 z"
+         id="path6976"
+         sodipodi:nodetypes="ccccc" />
+      <path
+         style="fill:#e40000;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.12364459;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+         d="m 22.94243,82.287118 -2.0583,-51.460158 32.932847,24.700748 0,55.577152 L 22.94243,82.287118 z"
+         id="path6978" />
+      <path
+         style="fill:#7fe719;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.12364459;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+         d="m 53.816977,111.10486 49.399213,-20.58416 4.11663,-51.460157 -53.515843,16.467165 0,55.577152 z"
+         id="path6980" />
+      <path
+         style="fill:none;stroke:#ffffff;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="M 23.216626,81.319479 70.48573,67.361442 103.38422,90.444516"
+         id="path6982"
+         sodipodi:nodetypes="ccc" />
+      <path
+         style="fill:#babdb6;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m 70.434539,17.875593 0,49.109284"
+         id="path6984"
+         sodipodi:nodetypes="cc" />
+    </g>
+  </g>
+</svg>
diff --git a/images/header-logo.png b/images/header-logo.png
new file mode 100644
index 0000000..b68312d
Binary files /dev/null and b/images/header-logo.png differ
diff --git a/images/header-logo.svg b/images/header-logo.svg
new file mode 100644
index 0000000..666f78b
--- /dev/null
+++ b/images/header-logo.svg
@@ -0,0 +1,394 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:osb="http://www.openswatchbook.org/uri/2009/osb";
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="900"
+   height="100"
+   id="svg3765"
+   version="1.1"
+   inkscape:version="0.48.1 r9760"
+   inkscape:export-filename="/home/martyn/header-logo.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   sodipodi:docname="header-logo.svg">
+  <defs
+     id="defs3767">
+    <linearGradient
+       id="linearGradient5385"
+       osb:paint="solid">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5387" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4293">
+      <stop
+         style="stop-color:#3f79ba;stop-opacity:1;"
+         offset="0"
+         id="stop4295" />
+      <stop
+         style="stop-color:#539ff4;stop-opacity:1;"
+         offset="1"
+         id="stop4297" />
+    </linearGradient>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective3773" />
+    <inkscape:perspective
+       id="perspective4334"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4293-3"
+       id="linearGradient4299-8"
+       x1="53.5"
+       y1="100.03642"
+       x2="54"
+       y2="0"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient4293-3">
+      <stop
+         style="stop-color:#3f79ba;stop-opacity:1;"
+         offset="0"
+         id="stop4295-4" />
+      <stop
+         style="stop-color:#77a8df;stop-opacity:1;"
+         offset="1"
+         id="stop4297-6" />
+    </linearGradient>
+    <linearGradient
+       y2="0"
+       x2="54"
+       y1="100.03642"
+       x1="53.5"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4343"
+       xlink:href="#linearGradient4293-3"
+       inkscape:collect="always" />
+    <inkscape:perspective
+       id="perspective4372"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <filter
+       id="filter3639"
+       inkscape:label="Inner Shadow"
+       inkscape:menu="Shadows and Glows"
+       inkscape:menu-tooltip="Adds a colorizable drop shadow inside"
+       color-interpolation-filters="sRGB">
+      <feGaussianBlur
+         id="feGaussianBlur3641"
+         stdDeviation="0.01"
+         result="result8" />
+      <feOffset
+         id="feOffset3643"
+         dx="1.5"
+         dy="1.5"
+         result="result11" />
+      <feComposite
+         id="feComposite3645"
+         in2="result11"
+         result="result6"
+         in="SourceGraphic"
+         operator="in" />
+      <feFlood
+         id="feFlood3647"
+         result="result10"
+         in="result6"
+         flood-opacity="1"
+         flood-color="rgb(0,0,0)" />
+      <feBlend
+         id="feBlend3649"
+         in2="result10"
+         mode="normal"
+         in="result6"
+         result="result12" />
+      <feComposite
+         id="feComposite3651"
+         in2="SourceGraphic"
+         result="result2"
+         operator="in" />
+    </filter>
+    <filter
+       id="filter3639-8"
+       inkscape:label="Inner Shadow"
+       inkscape:menu="Shadows and Glows"
+       inkscape:menu-tooltip="Adds a colorizable drop shadow inside"
+       color-interpolation-filters="sRGB">
+      <feGaussianBlur
+         id="feGaussianBlur3641-2"
+         stdDeviation="0.01"
+         result="result8" />
+      <feOffset
+         id="feOffset3643-0"
+         dx="1.5"
+         dy="1.5"
+         result="result11" />
+      <feComposite
+         id="feComposite3645-2"
+         in2="result11"
+         result="result6"
+         in="SourceGraphic"
+         operator="in" />
+      <feFlood
+         id="feFlood3647-4"
+         result="result10"
+         in="result6"
+         flood-opacity="1"
+         flood-color="rgb(0,0,0)" />
+      <feBlend
+         id="feBlend3649-9"
+         in2="result10"
+         mode="normal"
+         in="result6"
+         result="result12" />
+      <feComposite
+         id="feComposite3651-8"
+         in2="SourceGraphic"
+         result="result2"
+         operator="in" />
+    </filter>
+    <filter
+       id="filter3639-89"
+       inkscape:label="Inner Shadow"
+       inkscape:menu="Shadows and Glows"
+       inkscape:menu-tooltip="Adds a colorizable drop shadow inside"
+       color-interpolation-filters="sRGB">
+      <feGaussianBlur
+         id="feGaussianBlur3641-28"
+         stdDeviation="0.01"
+         result="result8" />
+      <feOffset
+         id="feOffset3643-6"
+         dx="1.5"
+         dy="1.5"
+         result="result11" />
+      <feComposite
+         id="feComposite3645-7"
+         in2="result11"
+         result="result6"
+         in="SourceGraphic"
+         operator="in" />
+      <feFlood
+         id="feFlood3647-3"
+         result="result10"
+         in="result6"
+         flood-opacity="1"
+         flood-color="rgb(0,0,0)" />
+      <feBlend
+         id="feBlend3649-5"
+         in2="result10"
+         mode="normal"
+         in="result6"
+         result="result12" />
+      <feComposite
+         id="feComposite3651-3"
+         in2="SourceGraphic"
+         result="result2"
+         operator="in" />
+    </filter>
+    <filter
+       id="filter3639-1"
+       inkscape:label="Inner Shadow"
+       inkscape:menu="Shadows and Glows"
+       inkscape:menu-tooltip="Adds a colorizable drop shadow inside"
+       color-interpolation-filters="sRGB">
+      <feGaussianBlur
+         id="feGaussianBlur3641-8"
+         stdDeviation="0.01"
+         result="result8" />
+      <feOffset
+         id="feOffset3643-2"
+         dx="1.5"
+         dy="1.5"
+         result="result11" />
+      <feComposite
+         id="feComposite3645-8"
+         in2="result11"
+         result="result6"
+         in="SourceGraphic"
+         operator="in" />
+      <feFlood
+         id="feFlood3647-7"
+         result="result10"
+         in="result6"
+         flood-opacity="1"
+         flood-color="rgb(0,0,0)" />
+      <feBlend
+         id="feBlend3649-6"
+         in2="result10"
+         mode="normal"
+         in="result6"
+         result="result12" />
+      <feComposite
+         id="feComposite3651-84"
+         in2="SourceGraphic"
+         result="result2"
+         operator="in" />
+    </filter>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5385"
+       id="linearGradient5417"
+       gradientUnits="userSpaceOnUse"
+       x1="251.95441"
+       y1="53.822685"
+       x2="741.73566"
+       y2="53.822685"
+       gradientTransform="translate(0,2)" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.2922222"
+     inkscape:cx="450"
+     inkscape:cy="50"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer3"
+     showgrid="false"
+     showborder="true"
+     borderlayer="true"
+     inkscape:showpageshadow="true"
+     inkscape:window-width="2560"
+     inkscape:window-height="1576"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata3770">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Background"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-952.36218)"
+     sodipodi:insensitive="true"
+     style="display:none">
+    <rect
+       style="fill:#eeeeef;fill-opacity:1;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect3775"
+       width="900"
+       height="100"
+       x="0"
+       y="-1.4210855e-14"
+       transform="translate(0,952.36218)" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="Header">
+    <rect
+       style="fill:url(#linearGradient4343);fill-opacity:1;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;display:inline"
+       id="rect4291"
+       width="900"
+       height="132"
+       x="0"
+       y="0"
+       rx="24"
+       ry="24" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="Shine"
+     style="opacity:0.17600002;display:inline" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="Text" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="Logo"
+     style="display:inline">
+    <g
+       transform="matrix(0.68766509,0,0,0.68766509,145.28049,5.8922593)"
+       id="g4301">
+      <path
+         style="fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.12364459;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+         d="M 20.88413,30.82696 53.816977,55.527708 107.33282,39.060543 70.587303,17.177763 20.88413,30.82696 z"
+         id="path6976"
+         sodipodi:nodetypes="ccccc"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#e40000;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.12364459;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+         d="m 22.94243,82.287118 -2.0583,-51.460158 32.932847,24.700748 0,55.577152 L 22.94243,82.287118 z"
+         id="path6978"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#7fe719;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.12364459;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+         d="m 53.816977,111.10486 49.399213,-20.58416 4.11663,-51.460157 -53.515843,16.467165 0,55.577152 z"
+         id="path6980"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:none;stroke:#ffffff;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="M 23.216626,81.319479 70.48573,67.361442 103.38422,90.444516"
+         id="path6982"
+         sodipodi:nodetypes="ccc"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#babdb6;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m 70.434539,17.875593 0,49.109284"
+         id="path6984"
+         sodipodi:nodetypes="cc"
+         inkscape:connector-curvature="0" />
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="378.36282"
+       y="11.147676"
+       id="text3014"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3016"
+         x="378.36282"
+         y="11.147676"></tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:56px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:url(#linearGradient5417);fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.46382979;stroke-dasharray:none;stroke-dashoffset:0;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+       x="252.11847"
+       y="71.271904"
+       id="text3148"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3150"
+         x="252.11847"
+         y="71.271904"
+         style="fill:url(#linearGradient5417);fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.46382979;stroke-dasharray:none;stroke-dashoffset:0">The GTK+ Project</tspan></text>
+  </g>
+</svg>
diff --git a/images/info.png b/images/info.png
new file mode 100644
index 0000000..b05abfb
Binary files /dev/null and b/images/info.png differ
diff --git a/images/link.png b/images/link.png
new file mode 100644
index 0000000..6d0ef54
Binary files /dev/null and b/images/link.png differ
diff --git a/images/logo-icon.png b/images/logo-icon.png
new file mode 100644
index 0000000..163783e
Binary files /dev/null and b/images/logo-icon.png differ
diff --git a/images/logo-small.png b/images/logo-small.png
new file mode 100644
index 0000000..33787fd
Binary files /dev/null and b/images/logo-small.png differ
diff --git a/images/logo.png b/images/logo.png
new file mode 100644
index 0000000..222a00e
Binary files /dev/null and b/images/logo.png differ
diff --git a/images/mail.png b/images/mail.png
new file mode 100644
index 0000000..8be8b64
Binary files /dev/null and b/images/mail.png differ
diff --git a/images/os-linux.png b/images/os-linux.png
new file mode 100644
index 0000000..57645f1
Binary files /dev/null and b/images/os-linux.png differ
diff --git a/images/os-macos.png b/images/os-macos.png
new file mode 100644
index 0000000..d46e1d3
Binary files /dev/null and b/images/os-macos.png differ
diff --git a/images/os-windows.png b/images/os-windows.png
new file mode 100644
index 0000000..e04f057
Binary files /dev/null and b/images/os-windows.png differ
diff --git a/images/pango.png b/images/pango.png
new file mode 100644
index 0000000..55e54e8
Binary files /dev/null and b/images/pango.png differ
diff --git a/images/pdf.png b/images/pdf.png
new file mode 100644
index 0000000..01329d6
Binary files /dev/null and b/images/pdf.png differ
diff --git a/images/progress-complete.png b/images/progress-complete.png
new file mode 100644
index 0000000..f72c811
Binary files /dev/null and b/images/progress-complete.png differ
diff --git a/images/progress-incomplete.png b/images/progress-incomplete.png
new file mode 100644
index 0000000..ae1cab6
Binary files /dev/null and b/images/progress-incomplete.png differ
diff --git a/images/progress-pending.png b/images/progress-pending.png
new file mode 100644
index 0000000..8399763
Binary files /dev/null and b/images/progress-pending.png differ
diff --git a/images/question.png b/images/question.png
new file mode 100644
index 0000000..2bf1c53
Binary files /dev/null and b/images/question.png differ
diff --git a/images/screenshots/screenshot-beos.png b/images/screenshots/screenshot-beos.png
new file mode 100644
index 0000000..3ccda32
Binary files /dev/null and b/images/screenshots/screenshot-beos.png differ
diff --git a/images/screenshots/screenshot-dfb-alpha.png b/images/screenshots/screenshot-dfb-alpha.png
new file mode 100644
index 0000000..337d154
Binary files /dev/null and b/images/screenshots/screenshot-dfb-alpha.png differ
diff --git a/images/screenshots/screenshot-gedit-osx.png b/images/screenshots/screenshot-gedit-osx.png
new file mode 100644
index 0000000..114669b
Binary files /dev/null and b/images/screenshots/screenshot-gedit-osx.png differ
diff --git a/images/screenshots/screenshot-gedit-vista.png b/images/screenshots/screenshot-gedit-vista.png
new file mode 100644
index 0000000..92c73e6
Binary files /dev/null and b/images/screenshots/screenshot-gedit-vista.png differ
diff --git a/images/screenshots/screenshot-gimp-linux.jpg b/images/screenshots/screenshot-gimp-linux.jpg
new file mode 100644
index 0000000..7eaaafc
Binary files /dev/null and b/images/screenshots/screenshot-gimp-linux.jpg differ
diff --git a/images/screenshots/screenshot-gimp-mac.jpg b/images/screenshots/screenshot-gimp-mac.jpg
new file mode 100644
index 0000000..b5816ad
Binary files /dev/null and b/images/screenshots/screenshot-gimp-mac.jpg differ
diff --git a/images/screenshots/screenshot-gimp-windows.jpg b/images/screenshots/screenshot-gimp-windows.jpg
new file mode 100644
index 0000000..f22d8bb
Binary files /dev/null and b/images/screenshots/screenshot-gimp-windows.jpg differ
diff --git a/images/screenshots/screenshot-gimp-windowsvista.png b/images/screenshots/screenshot-gimp-windowsvista.png
new file mode 100644
index 0000000..10154f0
Binary files /dev/null and b/images/screenshots/screenshot-gimp-windowsvista.png differ
diff --git a/images/screenshots/screenshot-gnome-desktop.png b/images/screenshots/screenshot-gnome-desktop.png
new file mode 100644
index 0000000..d406151
Binary files /dev/null and b/images/screenshots/screenshot-gnome-desktop.png differ
diff --git a/images/screenshots/screenshot-gnumeric-windows.png b/images/screenshots/screenshot-gnumeric-windows.png
new file mode 100644
index 0000000..ac6fbe1
Binary files /dev/null and b/images/screenshots/screenshot-gnumeric-windows.png differ
diff --git a/images/screenshots/screenshot-inkscape.png b/images/screenshots/screenshot-inkscape.png
new file mode 100644
index 0000000..5a390ba
Binary files /dev/null and b/images/screenshots/screenshot-inkscape.png differ
diff --git a/images/screenshots/screenshot-maemo.png b/images/screenshots/screenshot-maemo.png
new file mode 100644
index 0000000..08cab76
Binary files /dev/null and b/images/screenshots/screenshot-maemo.png differ
diff --git a/images/screenshots/screenshot-openmoko.png b/images/screenshots/screenshot-openmoko.png
new file mode 100644
index 0000000..a97cdb3
Binary files /dev/null and b/images/screenshots/screenshot-openmoko.png differ
diff --git a/images/screenshots/screenshot-vwworkstation.png b/images/screenshots/screenshot-vwworkstation.png
new file mode 100644
index 0000000..68e29f6
Binary files /dev/null and b/images/screenshots/screenshot-vwworkstation.png differ
diff --git a/images/screenshots/thumbnail-beos.png b/images/screenshots/thumbnail-beos.png
new file mode 100644
index 0000000..b419e52
Binary files /dev/null and b/images/screenshots/thumbnail-beos.png differ
diff --git a/images/screenshots/thumbnail-dfb-alpha.png b/images/screenshots/thumbnail-dfb-alpha.png
new file mode 100644
index 0000000..9400c3e
Binary files /dev/null and b/images/screenshots/thumbnail-dfb-alpha.png differ
diff --git a/images/screenshots/thumbnail-gedit-osx.png b/images/screenshots/thumbnail-gedit-osx.png
new file mode 100644
index 0000000..608ec7d
Binary files /dev/null and b/images/screenshots/thumbnail-gedit-osx.png differ
diff --git a/images/screenshots/thumbnail-gedit-vista.png b/images/screenshots/thumbnail-gedit-vista.png
new file mode 100644
index 0000000..d48a9ae
Binary files /dev/null and b/images/screenshots/thumbnail-gedit-vista.png differ
diff --git a/images/screenshots/thumbnail-gimp-linux.jpg b/images/screenshots/thumbnail-gimp-linux.jpg
new file mode 100644
index 0000000..4276fd7
Binary files /dev/null and b/images/screenshots/thumbnail-gimp-linux.jpg differ
diff --git a/images/screenshots/thumbnail-gimp-mac.jpg b/images/screenshots/thumbnail-gimp-mac.jpg
new file mode 100644
index 0000000..002aac3
Binary files /dev/null and b/images/screenshots/thumbnail-gimp-mac.jpg differ
diff --git a/images/screenshots/thumbnail-gimp-windows.jpg b/images/screenshots/thumbnail-gimp-windows.jpg
new file mode 100644
index 0000000..b9df071
Binary files /dev/null and b/images/screenshots/thumbnail-gimp-windows.jpg differ
diff --git a/images/screenshots/thumbnail-gimp-windowsvista.png b/images/screenshots/thumbnail-gimp-windowsvista.png
new file mode 100644
index 0000000..8a53b50
Binary files /dev/null and b/images/screenshots/thumbnail-gimp-windowsvista.png differ
diff --git a/images/screenshots/thumbnail-gnome-desktop.png b/images/screenshots/thumbnail-gnome-desktop.png
new file mode 100644
index 0000000..2ee10e6
Binary files /dev/null and b/images/screenshots/thumbnail-gnome-desktop.png differ
diff --git a/images/screenshots/thumbnail-gnumeric-windows.png b/images/screenshots/thumbnail-gnumeric-windows.png
new file mode 100644
index 0000000..91e4f90
Binary files /dev/null and b/images/screenshots/thumbnail-gnumeric-windows.png differ
diff --git a/images/screenshots/thumbnail-inkscape.png b/images/screenshots/thumbnail-inkscape.png
new file mode 100644
index 0000000..815c0a4
Binary files /dev/null and b/images/screenshots/thumbnail-inkscape.png differ
diff --git a/images/screenshots/thumbnail-maemo.png b/images/screenshots/thumbnail-maemo.png
new file mode 100644
index 0000000..38189e2
Binary files /dev/null and b/images/screenshots/thumbnail-maemo.png differ
diff --git a/images/screenshots/thumbnail-openmoko.png b/images/screenshots/thumbnail-openmoko.png
new file mode 100644
index 0000000..8aebd7f
Binary files /dev/null and b/images/screenshots/thumbnail-openmoko.png differ
diff --git a/images/screenshots/thumbnail-vwworkstation.png b/images/screenshots/thumbnail-vwworkstation.png
new file mode 100644
index 0000000..bb477ce
Binary files /dev/null and b/images/screenshots/thumbnail-vwworkstation.png differ
diff --git a/images/screenshots/thumbnail-win32-gnumeric.png b/images/screenshots/thumbnail-win32-gnumeric.png
new file mode 100644
index 0000000..90483a5
Binary files /dev/null and b/images/screenshots/thumbnail-win32-gnumeric.png differ
diff --git a/images/x.gif b/images/x.gif
new file mode 100644
index 0000000..c5b2954
Binary files /dev/null and b/images/x.gif differ
diff --git a/index.php b/index.php
new file mode 100755
index 0000000..683d9b7
--- /dev/null
+++ b/index.php
@@ -0,0 +1,65 @@
+<?php
+$nav = "about";
+include 'libs/gtknewsfeedloader.class.php';
+ob_start();
+?>
+
+<div class="sidebar" id="NewsFeed">
+
+	<h2>News Feed</h2>
+	<ul class="newsfeed"><?php
+
+// To use Twitter, replace IDENTICA with TWITTER
+$newsfeed = new GTKNewsFeedLoader(IDENTICA);
+$newsfeed->usecaching = false;
+$items = $newsfeed->load( array( 'count' => 6 ) );
+
+$first = true;
+if( $newsfeed->iscached ) echo '<!-- This content is cached -->';
+
+foreach( $items as $item ) {
+?> 
+		<li<?php if($first) echo ' class="first"'; ?>>
+			<div class="time">
+				<span class="date"><?php echo date("F j, Y", $item['date']); ?></span>
+				<span class="relt"><?php echo $newsfeed->reltime($item['date']); ?></span>
+			</div>
+			<span class="text"><?php echo $item['html']; ?></span>
+		</li>
+<?php
+$first = false;
+} ?>
+	</ul>
+
+	<div class="newsfeed_buttons">
+		<div>Follow the GTK+ project on:</div>
+		<span>
+			<a href="http://twitter.com/GTKtoolkit"; title="Follow GTKtoolkit on Twitter">Twitter</a> |
+			<a href="http://identi.ca/gtktoolkit"; title="Follow GTKtoolkit on identi.ca">identi.ca</a>
+		</span>
+	</div>
+
+</div>
+
+<h2 id="WhatIsGTK"><a name="WhatIsGTK">What is GTK+, and how can I use it?</a></h2>
+
+<p><span id="intro">GTK+</span>, or the GIMP Toolkit, is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable for projects ranging from small one-off tools to complete application suites.</p>
+
+<dl>
+	<dt id="WhereCanIUseIt">Where can I use it?</dt>
+	<dd>Everywhere! GTK+ is cross-platform and boasts an easy to use API, speeding up your development time. Take a look at the <a href="screenshots/">screenshots</a> to see a number of platforms GTK+ will run.</dd>
+
+	<dt id="WhatLanguages">What languages are supported?</dt>
+	<dd>GTK+ is written in C but has been designed from the ground up to support a <a href="language-bindings.php">wide range of languages</a>, not only C/C++. Using GTK+ from languages such as Perl and Python (especially in combination with the <a href="http://glade.gnome.org/"; class="external">Glade GUI builder</a>) provides an effective method of rapid application development.</dd>
+
+	<dt id="AreThereRestrictions">Are there any licensing restrictions?</dt>
+	<dd>GTK+ is free software and part of the GNU Project. However, the licensing terms for GTK+, the <a href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html"; class="external">GNU LGPL</a>, allow it to be used by all developers, including those developing proprietary software, without any license fees or royalties.</dd>
+</dl>
+
+<p>Get an <a href="overview.php">overview</a> of GTK+. Understand who started it, the basic architecture and why we use the license we do.</p>
+
+<p>GTK+ has been involved in <a href="http://www.gtkfiles.org/"; class="external">many</a> <a href="http://www.gtk-apps.org/"; class="external">projects</a> and some big platforms. To get a glimpse of what people think of GTK+ and how it has been used in commercial projects, <a href="commerce.php">read the success stories...</a></p>
+
+<p>To find out how more about what GTK+ can do for you, visit our <a href="features.php">features</a> page. If you want to <a href="development.php#Contributing">contribute</a>, you are more than welcome.</p>
+
+<?php require 'template.php';
diff --git a/language-bindings.php b/language-bindings.php
new file mode 100755
index 0000000..bc3e2bc
--- /dev/null
+++ b/language-bindings.php
@@ -0,0 +1,406 @@
+<?php
+$nav = "features";
+$title = "GTK+ Language Bindings";
+ob_start();
+
+// Keep these values unique
+define("OFFICIAL", 0, true);
+define("SUPPORTED", 1, true);
+define("PARTIAL", 2, true);
+define("UNSUPPORTED", 3, true);
+define("UNKNOWN", 4, true);
+
+/**
+ * README
+ *
+ * This page is automatically generated from the values in the following arrays
+ *
+ * In the following arrays, SUPPORTED means that the project is thought to wrap
+ * every part of the C API that you are likely to need in that programming
+ * language, and that it has a stable API; PARTIAL means that we think it will
+ * reach SUPPORTED status soon; and UNSUPPORTED means that the project has no
+ * wrapper for that version of the API. These descriptions are mostly self-
+ * reported by the project maintainers.
+ */
+
+// Versions of GTK used in the table
+$versions = array('2.8', '2.10', '2.12', '2.14', '2.16', '2.18', '2.20', '2.22', '2.24', '3.0');
+
+// Array of languages and their support
+$bindings = array(
+
+	"C++" => array(
+		'official' => true, // Whether this binding is an official GNOME binding
+		'url' => 'http://www.gtkmm.org/', // Link to this page
+		'support' => array( // Array of support
+			'2.8' => SUPPORTED, // Accepts SUPPORTED, PARTIAL, UNSUPPORTED
+			'2.10' => SUPPORTED,
+			'2.12' => SUPPORTED,
+			'2.14' => SUPPORTED,
+			'2.16' => SUPPORTED,
+			'2.18' => SUPPORTED,
+			'2.20' => SUPPORTED,
+			'2.22' => SUPPORTED,
+			'2.24' => SUPPORTED,
+			'3.0' => SUPPORTED
+		)
+	),
+
+	"C#" => array(
+		'official' => true,
+		'url' => 'http://www.mono-project.com/GtkSharp',
+		'support' => array(
+			'2.8' => SUPPORTED,
+			'2.10' => SUPPORTED,
+			'2.12' => SUPPORTED,
+			'2.14' => UNSUPPORTED,
+			'2.16' => UNSUPPORTED,
+			'2.18' => UNSUPPORTED,
+			'2.20' => UNSUPPORTED,
+			'2.22' => UNSUPPORTED,
+			'2.24' => UNSUPPORTED,
+			'3.0' => UNSUPPORTED
+		)
+	),
+
+	"Java" => array(
+		'official' => true,
+		'url' => 'http://java-gnome.sourceforge.net/',
+		'support' => array(
+			'2.8' => SUPPORTED,
+			'2.10' => SUPPORTED,
+			'2.12' => SUPPORTED,
+			'2.14' => SUPPORTED,
+			'2.16' => SUPPORTED,
+			'2.18' => UNSUPPORTED,
+			'2.20' => UNSUPPORTED,
+			'2.22' => UNSUPPORTED,
+			'2.24' => UNSUPPORTED,
+			'3.0' => UNSUPPORTED
+		)
+	),
+
+	"Python" => array(
+		'official' => true,
+		'url' => 'http://live.gnome.org/PyGObject',
+		'support' => array(
+			'2.8' => SUPPORTED,
+			'2.10' => SUPPORTED,
+			'2.12' => SUPPORTED,
+			'2.14' => SUPPORTED,
+			'2.16' => SUPPORTED,
+			'2.18' => SUPPORTED,
+			'2.20' => SUPPORTED,
+			'2.22' => SUPPORTED,
+			'2.24' => SUPPORTED,
+			'3.0' => SUPPORTED
+		)
+	),
+
+	"Javascipt" => array(
+		'official' => true,
+		'url' => 'http://live.gnome.org/JavaScript',
+		'support' => array(
+			'2.8' => SUPPORTED,
+			'2.10' => SUPPORTED,
+			'2.12' => SUPPORTED,
+			'2.14' => SUPPORTED,
+			'2.16' => SUPPORTED,
+			'2.18' => SUPPORTED,
+			'2.20' => SUPPORTED,
+			'2.22' => SUPPORTED,
+			'2.24' => SUPPORTED,
+			'3.0' => SUPPORTED
+		)
+	),
+
+	"Vala" => array(
+		'official' => true,
+		'url' => 'http://live.gnome.org/Vala',
+		'support' => array(
+			'2.8' => SUPPORTED,
+			'2.10' => SUPPORTED,
+			'2.12' => SUPPORTED,
+			'2.14' => SUPPORTED,
+			'2.16' => SUPPORTED,
+			'2.18' => SUPPORTED,
+			'2.20' => SUPPORTED,
+			'2.22' => SUPPORTED,
+			'2.24' => SUPPORTED,
+			'3.0' => SUPPORTED
+		)
+	),
+
+	"Perl" => array(
+		'official' => true,
+		'url' => 'http://gtk2-perl.sourceforge.net/',
+		'support' => array(
+			'2.8' => SUPPORTED,
+			'2.10' => SUPPORTED,
+			'2.12' => SUPPORTED,
+			'2.14' => SUPPORTED,
+			'2.16' => SUPPORTED,
+			'2.18' => PARTIAL,
+			'2.20' => PARTIAL,
+			'2.22' => UNSUPPORTED,
+			'2.24' => UNSUPPORTED,
+			'3.0' => UNSUPPORTED
+		)
+	),
+
+	"Ruby" => array(
+		'official' => false,
+		'url' => 'http://ruby-gnome2.sourceforge.jp/',
+		'support' => array(
+			'2.8' => SUPPORTED,
+			'2.10' => SUPPORTED,
+			'2.12' => SUPPORTED,
+			'2.14' => PARTIAL,
+			'2.16' => UNSUPPORTED,
+			'2.18' => UNSUPPORTED,
+			'2.20' => UNSUPPORTED,
+			'2.22' => UNSUPPORTED,
+			'2.24' => UNSUPPORTED,
+			'3.0' => UNSUPPORTED
+		)
+	),
+
+	"PHP" => array(
+		'official' => false,
+		'url' => 'http://gtk.php.net/',
+		'support' => array(
+			'2.8' => SUPPORTED,
+			'2.10' => SUPPORTED,
+			'2.12' => SUPPORTED,
+			'2.14' => SUPPORTED,
+			'2.16' => SUPPORTED,
+			'2.18' => UNSUPPORTED,
+			'2.20' => UNSUPPORTED,
+			'2.22' => UNSUPPORTED,
+			'2.24' => UNSUPPORTED,
+			'3.0' => UNSUPPORTED
+		)
+	),
+
+	"R" => array(
+		'official' => false,
+		'url' => 'http://cran.r-project.org/web/packages/RGtk2/index.html',
+		'support' => array(
+			'2.8' => SUPPORTED,
+			'2.10' => SUPPORTED,
+			'2.12' => SUPPORTED,
+			'2.14' => UNSUPPORTED,
+			'2.16' => UNSUPPORTED,
+			'2.18' => UNSUPPORTED,
+			'2.20' => UNSUPPORTED,
+			'2.22' => UNSUPPORTED,
+			'2.24' => UNSUPPORTED,
+			'3.0' => UNSUPPORTED
+		)
+	),
+
+	"Lua" => array(
+		'official' => false,
+		'url' => 'http://luaforge.net/projects/lua-gtk',
+		'support' => array(
+			'2.8' => SUPPORTED,
+			'2.10' => SUPPORTED,
+			'2.12' => SUPPORTED,
+			'2.14' => SUPPORTED,
+			'2.16' => SUPPORTED,
+			'2.18' => UNSUPPORTED,
+			'2.20' => UNSUPPORTED,
+			'2.22' => UNSUPPORTED,
+			'2.24' => UNSUPPORTED,
+			'3.0' => UNSUPPORTED
+		)
+	),
+
+	"Guile" => array(
+		'official' => false,
+		'url' => 'http://www.gnu.org/software/guile-gnome/',
+		'support' => array(
+			'2.8' => SUPPORTED,
+			'2.10' => SUPPORTED,
+			'2.12' => SUPPORTED,
+			'2.14' => PARTIAL,
+			'2.16' => UNSUPPORTED,
+			'2.18' => UNSUPPORTED,
+			'2.20' => UNSUPPORTED,
+			'2.22' => UNSUPPORTED,
+			'2.24' => UNSUPPORTED,
+			'3.0' => UNSUPPORTED
+		)
+	),
+
+	"Ada" => array(
+		'official' => false,
+		'url' => 'http://libre.adacore.com/libre/tools/gtkada/',
+		'support' => array(
+			'2.8' => SUPPORTED,
+			'2.10' => SUPPORTED,
+			'2.12' => SUPPORTED,
+			'2.14' => SUPPORTED,
+			'2.16' => SUPPORTED,
+			'2.18' => PARTIAL,
+			'2.20' => PARTIAL,
+			'2.22' => PARTIAL,
+			'2.24' => PARTIAL,
+			'3.0' => PARTIAL
+		)
+	),
+
+	"OCaml" => array(
+		'official' => false,
+		'url' => 'http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/lablgtk.html',
+		'support' => array(
+			'2.8' => SUPPORTED,
+			'2.10' => SUPPORTED,
+			'2.12' => SUPPORTED,
+			'2.14' => SUPPORTED,
+			'2.16' => SUPPORTED,
+			'2.18' => UNSUPPORTED,
+			'2.20' => UNSUPPORTED,
+			'2.22' => UNSUPPORTED,
+			'2.24' => UNSUPPORTED,
+			'3.0' => UNSUPPORTED
+		)
+	),
+
+	"Haskell" => array(
+		'official' => false,
+		'url' => 'http://www.haskell.org/haskellwiki/Gtk2Hs',
+		'support' => array(
+			'2.8' => SUPPORTED,
+			'2.10' => SUPPORTED,
+			'2.12' => SUPPORTED,
+			'2.14' => SUPPORTED,
+			'2.16' => SUPPORTED,
+			'2.18' => SUPPORTED,
+			'2.20' => SUPPORTED,
+			'2.22' => SUPPORTED,
+			'2.24' => SUPPORTED,
+			'3.0' => SUPPORTED
+		)
+	),
+
+	"FreeBASIC" => array(
+		'official' => false,
+		'url' => 'http://www.freebasic-portal.de/downloads/ressourcencompiler/gtktobac2-2-0-131.html',
+		'support' => array(
+			'2.8' => SUPPORTED,
+			'2.10' => UNSUPPORTED,
+			'2.12' => UNSUPPORTED,
+			'2.14' => UNSUPPORTED,
+			'2.16' => UNSUPPORTED,
+			'2.18' => UNSUPPORTED,
+			'2.20' => UNSUPPORTED,
+			'2.22' => SUPPORTED,
+			'2.24' => SUPPORTED,
+			'3.0' => SUPPORTED
+		)
+	),
+
+	"D" => array(
+		'official' => false,
+		'url' => 'http://www.dsource.org/projects/gtkd',
+		'support' => array(
+			'2.8' => UNSUPPORTED,
+			'2.10' => UNSUPPORTED,
+			'2.12' => SUPPORTED,
+			'2.14' => SUPPORTED,
+			'2.16' => SUPPORTED,
+			'2.18' => SUPPORTED,
+			'2.20' => UNSUPPORTED,
+			'2.22' => UNSUPPORTED,
+			'2.24' => UNSUPPORTED,
+			'3.0' => UNSUPPORTED
+		)
+	),
+
+        "Fortran" => array(
+                'official' => false,
+                'url' => 'http://github.com/jerryd/gtk-fortran/wiki',
+                'support' => array(
+                        '2.8' => UNSUPPORTED,
+                        '2.10' => UNSUPPORTED,
+                        '2.12' => SUPPORTED,
+                        '2.14' => SUPPORTED,
+                        '2.16' => SUPPORTED,
+                        '2.18' => SUPPORTED,
+                        '2.20' => UNSUPPORTED,
+                        '2.22' => UNSUPPORTED,
+                        '2.24' => PARTIAL,
+                        '3.0' => PARTIAL
+                )
+        )
+
+);
+
+// Alternate image attributes
+$imgalt = array(
+	SUPPORTED => "[#]",
+	PARTIAL => "&nbsp;@&nbsp;",
+	UNSUPPORTED => "&nbsp;_&nbsp;",
+	UNKNOWN => "&nbsp;?&nbsp;",
+	OFFICIAL => "&nbsp;O&nbsp;"
+);
+
+// Title image attributes
+$imgtitle = array(
+	SUPPORTED => "Supported",
+	PARTIAL => "Has partial support",
+	UNSUPPORTED => "Unsupported",
+	UNKNOWN => "Unknown",
+	OFFICIAL => "Official GNOME Binding"
+);
+
+if(isset($_GET['json'])) {
+	ob_end_clean();
+	header("Content-type: application/json");
+	echo json_encode($bindings);
+	die();
+}
+
+?>
+<h2><a name="LanguageBindings">Language Bindings</a></h2>
+<p>Language Bindings (or 'wrappers') allow GTK+ to be used from other programming languages, in the style of those languages. They are relatively easy to create because GTK+ is designed with them in mind.</p>
+
+<p>The bindings that are official <a href="http://www.gnome.org/start/unstable/Bindings/"; class="external">GNOME Bindings</a> follow the GNOME release schedule which guarantees API stability and time-based releases.</p>
+
+<p style="display: none;"><!-- For Lynx --></p>
+
+<table class="bindingtable">
+	<tr>
+		<th colspan="2">Language</th><?php foreach($versions as $v) { ?> 
+		<th><?php echo $v; ?></th><?php } ?> 
+	</tr><?php $index = -1; foreach($bindings as $name => $lang) { $index++; ?> 
+
+	<tr<?php echo $index % 2 != 0 ? ' class="odd"': ' class="even"'; ?>>
+		<td><a href="<?php echo htmlentities($lang['url']); ?>" class="external"><?php echo htmlentities($name); ?></a></td>
+		<td><?php if($lang['official']) { ?><img src="images/gnome-binding.png" alt="<?php echo $imgalt[OFFICIAL]; ?>" title="<?php echo $imgtitle[OFFICIAL]; ?>" /><?php } else { echo '&nbsp;'; } ?></td><?php
+
+foreach($versions as $v) {
+	if(isset($lang['support'][$v])) { $s = $lang['support'][$v]; ?> 
+		<td><?php if( $s == SUPPORTED ) { ?>
+<img src="images/progress-complete.png" width="12" height="12" alt="<?php echo $imgalt[SUPPORTED]; ?>" title="<?php echo $imgtitle[SUPPORTED]; ?>" /><?php } elseif ( $s == PARTIAL ) { ?>
+<img src="images/progress-pending.png" width="12" height="12" alt="<?php echo $imgalt[PARTIAL]; ?>" title="<?php echo $imgtitle[PARTIAL]; ?>" /><?php } else { ?>
+<img src="images/progress-incomplete.png" width="12" height="12" alt="<?php echo $imgalt[UNSUPPORTED]; ?>" title="<?php echo $imgtitle[UNSUPPORTED]; ?>" /><?php } ?></td><?php } else { ?> 
+		<td>?</td><?php } } ?> 
+	</tr><?php } ?> 
+
+</table>
+
+<div class="legend"><!-- aside -->
+	<h3>Legend</h3>
+	<ul>
+		<li><img src="images/gnome-binding.png" alt="<?php echo $imgalt[OFFICIAL]; ?>" title="<?php echo $imgtitle[OFFICIAL]; ?>" /> Official GNOME Binding</li>
+		<li><img src="images/progress-complete.png" alt="<?php echo $imgalt[SUPPORTED]; ?>" title="<?php echo $imgtitle[SUPPORTED]; ?>" /> Supported</li>
+		<li><img src="images/progress-pending.png" alt="<?php echo $imgalt[PARTIAL]; ?>" title="<?php echo $imgtitle[PARTIAL]; ?>" /> Partially Supported</li>
+		<li><img src="images/progress-incomplete.png" alt="<?php echo $imgalt[UNSUPPORTED]; ?>" title="<?php echo $imgtitle[UNSUPPORTED]; ?>" /> Unsupported</li>
+	</ul>
+</div>
+
+<p class="footnote">If this page happens to be out of date, you can edit this page by checking out the <a href="http://git.gnome.org/cgit/gtk-web/"; class="external">gtk-web</a> module in <a href="http://git.gnome.org/"; class="external">GNOME's Git</a>. If you don't have an account to do this, please contact the  <a href="mailto:language-bindings gnome org?subject=Out%20of%20date%20language%20bindings" class="email">GNOME Language Bindings Team</a> for GNOME supported bindings or the <a href="mailto:gtk-devel-list gnome org" class="email">gtk-devel list</a> for all other bindings. </p>
+
+<?php require 'template.php';
diff --git a/libs/gtknewsfeedloader.class.php b/libs/gtknewsfeedloader.class.php
new file mode 100755
index 0000000..42114ea
--- /dev/null
+++ b/libs/gtknewsfeedloader.class.php
@@ -0,0 +1,147 @@
+<?php
+
+/***************************************
+ * Made specifically for gtk.org
+ * By Devin Samarin <eboyjr14 gmail com>
+ ***************************************/
+
+define("TWITTER", 1);
+define("IDENTICA", 2);
+
+class GTKNewsFeedLoader {
+
+	public $protocol = TWITTER; // The protocol used to get the feed. Supports TWITTER or IDENTICA, and set in the constructor
+
+	public $usecaching = true;
+	public $iscached;
+
+	public $cachetime = 3600; // 1 hour
+	public $cachefile;
+
+	public $count;
+	public $userid = array(
+		IDENTICA => 135193,
+		TWITTER => 116482352
+	);
+
+	private $url;
+
+	function __construct($protocol) {
+		$this->protocol = $protocol;
+
+		// I'm glad StatusNet has a Twitter-compatible API
+		if( $this->protocol == TWITTER ) {
+			$this->url = "http://api.twitter.com/1/statuses/user_timeline.json";;
+		} elseif ( $this->protocol == IDENTICA ) {
+			$this->url = "http://identi.ca/api/statuses/user_timeline.json";;
+		} else {
+			print "Protocol not supported.";
+		}
+	}
+
+	// Returns an aray of items in the news feed e.g.
+	// array(
+	//     array(
+	//         "text" => "This is the text of the news item http://example.com via @eboyjr",
+	//         "html" => "This is the html of the news item <a href='http://example.com'>http://example.com</a> via @<a href='http://twitter.com/eboyjr'>eboyjr</a>",
+	//         "date" => 364229432 // This is the timestamp of when it was published
+	//     )
+	// )
+	public function load( $options ) {
+		$this->cachefile = dirname(__FILE__).'/newsfeed.cache.txt';
+		$this->count = $options['count'];
+		$options['count'] *= 2;
+		$options['user_id'] = $this->userid[$this->protocol];
+		$options['include_rts'] = true;
+
+		// If the cache file is used, the options aren't set right away,
+		// so delete the cache file for changes to appear.
+		if( isset($_GET['nocache']) ) $this->usecaching = true;
+		$this->iscached = false;
+		if( $this->usecaching ) {
+			if( file_exists($this->cachefile) ) {
+				if( (time() - filemtime($this->cachefile)) < $this->cachetime ) {
+					$list = unserialize(file_get_contents($this->cachefile));
+					$this->iscached = true;
+					return $list;
+				}
+			} else {
+				fclose(fopen($this->cachefile, 'a', true));
+			}
+		}
+		$options['trim_user'] = true;
+		$items = json_decode(file_get_contents($this->url."?".http_build_query($options)), true);
+		$list = array();
+		foreach( $items as $item ) {
+
+			// We don't want replies in our news feed
+			if( $item['in_reply_to_user_id'] != null ) continue;
+			$list[] = array(
+				'text' => $item['text'],
+				'html' => $this->htmlify($item),
+				'date' => $this->getdate($item)
+			);
+			if( --$this->count <= 0 ) break;
+		}
+
+		if( $this->usecaching )
+			file_put_contents($this->cachefile, serialize($list));
+
+		return $list;
+	}
+
+	private function htmlify(&$item) {
+		$find = array(
+			'@((s?ftp|https?)://([-\w\.]+)+(:\d+)?(/([-\w/_\.+]*(\?\S+)?)?)?)@', // Generate hyperlinks
+			'/^RT /',   // This is just here
+			//'/ (!|#)/', // to make the feed
+			'/ gtk$/',  // more readable.
+			'/@([A-Za-z0-9_]+)/' // Link to users
+		);
+		$replace = array(
+			'<a href="$1">$1</a>',
+			'Post by ',
+			//' ',
+			''
+		);
+
+		// It looks like whoever is posting stuff to identica mentions users that
+		// only have a Twitter account
+		//if( $this->protocol == TWITTER )
+			$replace[] = '<a href="http://twitter.com/$1";>$1</a>';
+		//elseif( $this->protocol == IDENTICA )
+		//	$replace[] = '<a href="http://identi.ca/$1";>$1</a>';
+
+		return preg_replace($find, $replace, htmlentities($item['text'], NULL, 'utf-8'));
+	}
+
+	private function getdate(&$item) {
+		return strtotime($item['created_at']);
+	}
+
+	// Accepts $time (timestamp) and $now (timestamp) and returns a string saying when it was e.g. about 5 minutes ago
+	public function reltime($time, $now = false) {
+		$time = (int) $time;
+		$curr = $now ? $now : time();
+		$shift = $curr - $time;
+
+		if ($shift < 45):
+			$diff = $shift;
+			$term = "second";
+		elseif ($shift < 2700):
+			$diff = round($shift / 60);
+			$term = "minute";
+		elseif ($shift < 64800):
+			$diff = round($shift / 60 / 60);
+			$term = "hour";
+		else:
+			$diff = round($shift / 60 / 60 / 24);
+			$term = "day";
+		endif;
+
+		if ($diff != 1) $term .= "s";
+		return "about $diff $term ago";
+	}
+}
+
+?>
diff --git a/libs/newsfeed.cache.txt b/libs/newsfeed.cache.txt
new file mode 100644
index 0000000..06134bf
--- /dev/null
+++ b/libs/newsfeed.cache.txt
@@ -0,0 +1 @@
+a:6:{i:0;a:3:{s:4:"text";s:137:"Resize grip in all the GtkWindows now: http://blogs.fedoraproject.org/wp/mclasen/2010/10/09/getting-a-grip/ thanks to @bratschegnome !gtk";s:4:"html";s:259:"Resize grip in all the GtkWindows now: <a href="http://blogs.fedoraproject.org/wp/mclasen/2010/10/09/getting-a-grip/";>http://blogs.fedoraproject.org/wp/mclasen/2010/10/09/getting-a-grip/</a> thanks to <a href="http://identi.ca/bratschegnome";>bratschegnome</a>";s:4:"date";i:1286600659;}i:1;a:3:{s:4:"text";s:122:"ANNOUNCE: gtkmm 2.91.0 (#C++ bindings) released: http://mail.gnome.org/archives/gtkmm-list/2010-October/msg00000.html !gtk";s:4:"html";s:200:"ANNOUNCE: gtkmm 2.91.0 (#C++ bindings) released: <a href="http://mail.gnome.org/archives/gtkmm-list/2010-October/msg00000.html";>http://mail.gnome.org/archives/gtkmm-list/2010-October/msg00000.html</a>";s:4:"date";i:1286128640;}i:2;a:3:{s:4:"text";s:136:"GTK+ 2.91.0 (unstable) released: http://ur1.ca/1xbzr The rendering cleanup work has landed.
  Porting guide here: http://ur1.ca/1xbzs !gtk";s:4:"html";s:199:"GTK+ 2.91.0 (unstable) released: <a href="http://ur1.ca/1xbzr";>http://ur1.ca/1xbzr</a> The rendering cleanup work has landed. Porting guide here: <a href="http://ur1.ca/1xbzs";>http://ur1.ca/1xbzs</a>";s:4:"date";i:1286073055;}i:3;a:3:{s:4:"text";s:62:"Anyone up to the challenge of writing a WebP gdkpixbuf loader?";s:4:"html";s:62:"Anyone up to the challenge of writing a WebP gdkpixbuf loader?";s:4:"date";i:1285950571;}i:4;a:3:{s:4:"text";s:127:"We strongly recommend not using PyGTK for new projects and to port existing applications from #PyGTK to #PyGObject #python !gtk";s:4:"html";s:119:"We strongly recommend not using PyGTK for new projects and to port existing applications from PyGTK to PyGObject python";s:4:"date";i:1285721993;}i:5;a:3:{s:4:"text";s:139:"ANNOUNCE: PyGObject 2.26.0 released:http://mail.gnome.org/archives/python-hackers-list/2010-September/msg00019.html  !gtk #python #bindings";s:4:"html";s:2
 30:"ANNOUNCE: PyGObject 2.26.0 released:<a href="http://mail.gnome.org/archives/python-hackers-list/2010-September/msg00019.html";>http://mail.gnome.org/archives/python-hackers-list/2010-September/msg00019.html</a>  gtk python bindings";s:4:"date";i:1285721962;}}
\ No newline at end of file
diff --git a/mailing-lists.php b/mailing-lists.php
new file mode 100755
index 0000000..ef33c39
--- /dev/null
+++ b/mailing-lists.php
@@ -0,0 +1,43 @@
+<?php
+$nav = "development";
+$title = "GTK+ Mailing Lists";
+ob_start();
+?>
+<h2><a name="MailingLists">Mailing Lists</a></h2>
+
+<p>There are several GTK+ mailing lists. With ALL of these mailing lists, if you want to subscribe, all you need to do is to go to the subscribe url for each mailing list or visit the list information page detailed below:</p>
+<p>For information on how to use the mailing lists, see the <a href="http://mail.gnome.org/"; class="external">mailing list FAQ</a>.</p>
+
+<h3>gtk-list gnome org</h3>
+<p>This is the main mailing list and probably the one on which you should ask questions about GTK+.</p>
+<p>The is for general topics related to GTK+, including everything from discussion of proposed new features to questions about compiling GTK+.</p>
+<p>Mailing list: <a href="mailto:gtk-list-request gnome org?subject=subscribe" class="email">Subscribe</a>, <a href="http://mail.gnome.org/mailman/listinfo/gtk-list"; class="info">Information</a>, <a href="http://mail.gnome.org/archives/gtk-list/"; class="archives">Archives</a></p>
+
+<h3>gtk-app-devel-list gnome org</h3>
+<p>Discussion on this list is oriented toward developing applications with GTK+. This has been a lower traffic list which is good for asking simple GTK+ questions.</p>
+<p>Mailing list: <a href="mailto:gtk-app-devel-list-request gnome org?subject=subscribe" class="email">Subscribe</a>, <a href="http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list"; class="info">Information</a>, <a href="http://mail.gnome.org/archives/gtk-app-devel-list/"; class="archives">Archives</a></p>
+
+<h3>gtk-devel-list gnome org</h3>
+<p>This list is for developers of the <strong>core</strong> GTK+ library to discuss GTK+ implementation. GTK+ application development and general GTK+ questions should <strong>not</strong> be asked on this list. The gtk-app-devel-list mailing list is more appropriate for that.</p>
+<p>Bug reports reports and requests for new features should generally be entered in <a href="http://bugzilla.gnome.org"; class="external">Bugzilla</a> instead of sent to this list.</p>
+<p>Mailing list: <a href="mailto:gtk-devel-list-request gnome org?subject=subscribe" class="email">Subscribe</a>, <a href="http://mail.gnome.org/mailman/listinfo/gtk-devel-list"; class="info">Information</a>, <a href="http://mail.gnome.org/archives/gtk-devel-list/"; class="archives">Archives</a></p>
+
+<h3>gtk-doc-list gnome org</h3>
+<p>This list is for discussion of the development of the gtk-doc documentation tool. Discussion about improving the GTK+ documentation itself belongs on gtk-devel-list.</p>
+<p>Specific suggestions for the documentation should be put in <a href="http://bugzilla.gnome.org"; class="external">Bugzilla</a>.</p>
+<p>Mailing list: <a href="mailto:gtk-doc-list-request gnome org?subject=subscribe" class="email">Subscribe</a>, <a href="http://mail.gnome.org/mailman/listinfo/gtk-doc-list"; class="info">Information</a>, <a href="http://mail.gnome.org/archives/gtk-doc-list/"; class="archives">Archives</a></p>
+
+<h3>gtk-i18n-list gnome org</h3>
+<p>This list is intended for discussion of the internationalization and localization of GTK+ itself and of GTK+ applications.</p>
+<p>Mailing list: <a href="mailto:gtk-i18n-list-request gnome org?subject=subscribe" class="email">Subscribe</a>, <a href="http://mail.gnome.org/mailman/listinfo/gtk-i18n-list"; class="info">Information</a>, <a href="http://mail.gnome.org/archives/gtk-i18n-list/"; class="archives">Archives</a></p>
+
+<h3>gtk-perl-list gnome org</h3> 
+<p>This list is intended for discussion of the usage of GTK+
+with Perl.</p>
+<p>Mailing list: <a href="mailto:gtk-perl-list-request gnome org?subject=subscribe" class="email">Subscribe</a>, <a href="http://mail.gnome.org/mailman/listinfo/gtk-perl-list"; class="info">Information</a>, <a href="http://mail.gnome.org/archives/gtk-perl-list/"; class="archives">Archives</a></p>
+
+<h3>language-bindings gnome org</h3>
+<p>This list is intended for discussion among creators of language bindings.</p> 
+<p>Mailing list: <a href="mailto:language-bindings-request gnome org?subject=subscribe" class="email">Subscribe</a>, <a href="http://mail.gnome.org/mailman/listinfo/language-bindings"; class="info">Information</a>, <a href="http://mail.gnome.org/archives/language-bindings/"; class="archives">Archives</a></p>
+
+<?php require 'template.php';
diff --git a/overview.php b/overview.php
new file mode 100755
index 0000000..c059201
--- /dev/null
+++ b/overview.php
@@ -0,0 +1,46 @@
+<?php
+$nav = "about";
+$title = "GTK+ Overview";
+ob_start();
+?>
+
+<h2>Overview of GTK+ and its Libraries</h2>
+
+<img src="/images/architecture.png" class="diagram" alt="GTK+ has grown over time, and with it, has brought different libraries including Pango (text layout), Cairo (graphics rendering), GDK (platform abstraction), ATK (accessibility), GIO (file input/output), and GLib (core library)." title="GTK+ Architecture" />
+
+<div class="columns">
+
+	<div class="left">
+
+		<h2>Architecture</h2>
+		<p>Over time GTK+ has been built up to be based on four libraries, also developed by the GTK+ team:</p>
+
+		<ul class="librarieslist">
+			<li class="glib"><a href="http://library.gnome.org/devel/glib/"; class="external">GLib</a>, a low-level core library that forms the basis of GTK+. It provides data structure handling for C, portability wrappers and interfaces for such run-time functionality as an event loop, threads, dynamic loading and an object system.</li>
+			<li class="pango"><a href="http://www.pango.org"; class="external">Pango</a>, a library for layout and rendering of text with an emphasis on internationalization. It forms the core of text and font handling for GTK+.</li>
+			<li class="cairo"><a href="http://www.cairographics.org/"; class="external">Cairo</a>, a library for 2D graphics with support for multiple output devices (including the X Window System, Win32) while producing a consistent output on all media while taking advantage of display hardware acceleration when available.</li>
+			<li class="atk"><a href="http://library.gnome.org/devel/atk/"; class="external">ATK</a>, a library for a set of interfaces providing accessibility. By supporting the ATK interfaces, an application or toolkit can be used with tools such as screen readers, magnifiers, and alternative input devices.</li>
+		</ul>
+
+	</div>
+
+	<div class="right">
+
+		<h2>Creation</h2>
+		<p>GTK+ was initially developed for and used by the GIMP, the GNU Image Manipulation Program. It is called the "The GIMP ToolKit" so that the origins of the project are remembered. Today it is more commonly known as GTK+ for short and is used by a large number of applications including the GNU project's GNOME desktop.</p>
+
+		<p>Peter Mattis started it all, with help from Spencer Kimball and Josh Macdonald. Marius Vollmer taught us how to make GTK+ work for language bindings. Lars Hamann and Stefan Jeske added all sorts of features to the core widgets. Carsten Haitzler designed and did the first implementation of theme support. Shawn Amundson did release management for GTK+ 1.0 and GTK+ 1.2.</p>
+
+		<h2>License</h2>
+		<p>GTK+ is free software and part of the GNU Project. However, the licensing terms for GTK+, the GNU LGPL 2.1, allow it to be used by all developers, including those developing proprietary software, without any license fees or royalties.</p>
+
+		<h2>Languages</h2>
+		<p>GTK+ has been designed from the ground up to support a range of <a href="language-bindings.php">languages</a>, not only C/C++. Using GTK+ from languages such as Perl and Python (especially in combination with the Glade GUI builder) provides an effective method of rapid application development.</p>
+
+		<h2>Community</h2>
+		<p>GTK+ has a large development community, as can be seen by the lists of contributors in GTK+ release announcements. While there are people that can be identified as responsible for one piece of code or the other, there are also <a href="development.php#Team">core developers</a> who are always working on the toolkit.</p>
+
+	</div>
+	
+</div>
+<?php require 'template.php';
diff --git a/screenshots/index.php b/screenshots/index.php
new file mode 100755
index 0000000..6b9525a
--- /dev/null
+++ b/screenshots/index.php
@@ -0,0 +1,89 @@
+<?php
+$nav = "screenshots";
+$title = "GTK+ Screenshots";
+ob_start();
+?>
+<h2><a name="RunsEverywhere">Runs everywhere!</a></h2>
+<p>Below are screenshots showing applications using GTK+ running on Windows, GNU/Linux and Unix, OSX, and mobile devices.</p>
+
+<div class="gallery">
+	<ul>
+		<li>
+			<div class="figure"><!-- figure -->
+				<a href="../images/screenshots/screenshot-gnome-desktop.png" class="image"><img src="../images/screenshots/thumbnail-gnome-desktop.png" alt="[Screenshot]" /></a>
+				<div class="caption"><!-- figcaption --><a href="http://www.gnome.org"; class="external">GNOME</a> Desktop</div>
+			</div>
+		</li>
+		<li>
+			<div class="figure"><!-- figure -->
+				<a href="../images/screenshots/screenshot-openmoko.png" class="image"><img src="../images/screenshots/thumbnail-openmoko.png" alt="[Screenshot]" /></a>
+				<div class="caption"><!-- figcaption --><a href="http://www.openmoko.com"; class="external">Openmoko</a> mobile phone</div>
+			</div>
+		</li>
+		<li>
+			<div class="figure"><!-- figure -->
+				<a href="../images/screenshots/screenshot-maemo.png" class="image"><img src="../images/screenshots/thumbnail-maemo.png" alt="[Screenshot]" /></a>
+				<div class="caption"><!-- figcaption --><a href="http://www.maemo.org"; class="external">Maemo</a> surf tablet</div>
+			</div>
+		</li>
+		<li>
+			<div class="figure"><!-- figure -->
+				<a href="../images/screenshots/screenshot-gimp-linux.jpg" class="image"><img src="../images/screenshots/thumbnail-gimp-linux.jpg" alt="[Screenshot]" /></a>
+				<div class="caption"><!-- figcaption --><a href="http://www.gimp.org"; class="external">GIMP</a> on GNU/Linux</div>
+			</div>
+		</li>
+		<li>
+			<div class="figure"><!-- figure -->
+				<a href="../images/screenshots/screenshot-gimp-windows.jpg" class="image"><img src="../images/screenshots/thumbnail-gimp-windows.jpg" alt="[Screenshot]" /></a>
+				<div class="caption"><!-- figcaption --><a href="http://www.gimp.org"; class="external">GIMP</a> on Windows XP</div>
+			</div>
+		</li>
+		<li>
+			<div class="figure"><!-- figure -->
+				<a href="../images/screenshots/screenshot-gimp-windowsvista.png" class="image"><img src="../images/screenshots/thumbnail-gimp-windowsvista.png" alt="[Screenshot]" /></a>
+				<div class="caption"><!-- figcaption --><a href="http://www.gimp.org"; class="external">GIMP</a> on Windows Vista</div>
+			</div>
+		</li>
+		<li>
+			<div class="figure"><!-- figure -->
+				<a href="../images/screenshots/screenshot-gimp-mac.jpg" class="image"><img src="../images/screenshots/thumbnail-gimp-mac.jpg" alt="[Screenshot]" /></a>
+				<div class="caption"><!-- figcaption --><a href="http://www.gimp.org"; class="external">GIMP</a> on OS X</div>
+			</div>
+		</li>
+		<li>
+			<div class="figure"><!-- figure -->
+				<a href="../images/screenshots/screenshot-vwworkstation.png" class="image"><img src="../images/screenshots/thumbnail-vwworkstation.png" alt="[Screenshot]" /></a>
+				<div class="caption"><!-- figcaption --><a href="http://www.vmware.com"; class="external">VMWare</a> Workstation</div>
+			</div>
+		</li>
+		<li>
+			<div class="figure"><!-- figure -->
+				<a href="../images/screenshots/screenshot-inkscape.png" class="image"><img src="../images/screenshots/thumbnail-inkscape.png" alt="[Screenshot]" /></a>
+				<div class="caption"><!-- figcaption --><a href="http://www.inkscape.org"; class="external">Inkscape</a> Graphics Editor</div>
+			</div>
+		</li>
+		<li>
+			<div class="figure"><!-- figure -->
+				<a href="../images/screenshots/screenshot-gnumeric-windows.png" class="image"><img src="../images/screenshots/thumbnail-gnumeric-windows.png" alt="[Screenshot]" /></a>
+				<div class="caption"><!-- figcaption --><a href="http://www.gnumeric.org"; class="external">Gnumeric</a> on Windows</div>
+			</div>
+		</li>
+		<li>
+			<div class="figure"><!-- figure -->
+				<a href="../images/screenshots/screenshot-gedit-osx.png" class="image"><img src="../images/screenshots/thumbnail-gedit-osx.png" alt="[Screenshot]" /></a>
+				<div class="caption"><!-- figcaption --><a href="http://projects.gnome.org/gedit/"; class="external">gedit</a> on OS X</div>
+			</div>
+		</li>
+		<li>
+			<div class="figure"><!-- figure -->
+				<a href="../images/screenshots/screenshot-gedit-vista.png" class="image"><img src="../images/screenshots/thumbnail-gedit-vista.png" alt="[Screenshot]" /></a>
+				<div class="caption"><!-- figcaption --><a href="http://projects.gnome.org/gedit/"; class="external">gedit</a> on Windows Vista</div>
+			</div>
+		</li>
+	</ul>
+</div>
+
+<h2><a name="OlderScreenshots">Older Screenshots</a></h2>
+<p>For older images of GTK+, visit the <a href="museum.php">screenshots museum</a>.</p>
+
+<?php require '../template.php';
diff --git a/screenshots/museum.php b/screenshots/museum.php
new file mode 100755
index 0000000..003efb3
--- /dev/null
+++ b/screenshots/museum.php
@@ -0,0 +1,26 @@
+<?php
+$nav = "screenshots";
+$title = "GTK+ Screenshots Museum";
+ob_start();
+?>
+<h2><a name="ScreenshotsMuseum">Screenshots Museum</a></h2>
+<p>BeOS has been discontinued, so these screenshots show GTK+ when BeOS was still in active development.</p>
+
+<div class="gallery">
+	<ul>
+		<li>
+			<div class="figure"><!-- figcaption -->
+				<a href="../images/screenshots/screenshot-beos.png" class="image"><img src="../images/screenshots/thumbnail-beos.png" alt="[Screenshot]" /></a>
+				<div class="caption"><!-- figcaption -->GTK+ on BeOS</div>
+			</div>
+		</li>
+		<li>
+			<div class="figure"><!-- figcaption -->
+				<a href="../images/screenshots/screenshot-dfb-alpha.png" class="image"><img src="../images/screenshots/thumbnail-dfb-alpha.png" alt="[Screenshot]"/></a>
+				<div class="caption"><!-- figcaption -->GTK+ using DirectFB</div>
+			</div>
+		</li>
+	</ul>
+</div>
+
+<?php require '../template.php';
diff --git a/scripts/easyslider.js b/scripts/easyslider.js
new file mode 100644
index 0000000..bbbdf5f
--- /dev/null
+++ b/scripts/easyslider.js
@@ -0,0 +1,175 @@
+/*
+ * 	Easy Slider 1.5 - jQuery plugin
+ *	written by Alen Grakalic	
+ *	http://cssglobe.com/post/4004/easy-slider-15-the-easiest-jquery-plugin-for-sliding
+ *
+ *	Copyright (c) 2009 Alen Grakalic (http://cssglobe.com)
+ *	Dual licensed under the MIT (MIT-LICENSE.txt)
+ *	and GPL (GPL-LICENSE.txt) licenses.
+ *
+ *	Built for jQuery library
+ *	http://jquery.com
+ *
+ */
+ 
+/*
+ *	markup example for $("#slider").easySlider();
+ *	
+ * 	<div id="slider">
+ *		<ul>
+ *			<li><img src="images/01.jpg" alt="" /></li>
+ *			<li><img src="images/02.jpg" alt="" /></li>
+ *			<li><img src="images/03.jpg" alt="" /></li>
+ *			<li><img src="images/04.jpg" alt="" /></li>
+ *			<li><img src="images/05.jpg" alt="" /></li>
+ *		</ul>
+ *	</div>
+ *
+ */
+
+(function($) {
+
+	$.fn.easySlider = function(options){
+	  
+		// default configuration properties
+		var defaults = {			
+			prevId: 		'prevBtn',
+			prevText: 		'Previous',
+			nextId: 		'nextBtn',	
+			nextText: 		'Next',
+			controlsShow:	true,
+			controlsBefore:	'',
+			controlsAfter:	'',	
+			controlsFade:	true,
+			firstId: 		'firstBtn',
+			firstText: 		'First',
+			firstShow:		false,
+			lastId: 		'lastBtn',	
+			lastText: 		'Last',
+			lastShow:		false,				
+			vertical:		false,
+			speed: 			800,
+			auto:			false,
+			pause:			2000,
+			continuous:		false
+		}; 
+		
+		var options = $.extend(defaults, options);  
+				
+		this.each(function() {  
+			var obj = $(this); 				
+			var s = $(".item", obj).length;
+			var w = $(".item", obj).width(); 
+			var h = $(".item", obj).height(); 
+			obj.width(w); 
+			obj.height(h); 
+			obj.css("overflow","hidden");
+			var ts = s-1;
+			var t = 0;
+			$(".list", obj).css('width',s*w);			
+			if(!options.vertical) $(".item", obj).css('float','left');
+			
+			if(options.controlsShow){
+				var html = options.controlsBefore;
+				if(options.firstShow) html += '<span id="'+ options.firstId +'"><a href=\"javascript:void(0);\">'+ options.firstText +'</a></span>';
+				html += ' <span id="'+ options.prevId +'"><a href=\"javascript:void(0);\">'+ options.prevText +'</a></span>';
+				html += ' <span id="'+ options.nextId +'"><a href=\"javascript:void(0);\">'+ options.nextText +'</a></span>';
+				if(options.lastShow) html += ' <span id="'+ options.lastId +'"><a href=\"javascript:void(0);\">'+ options.lastText +'</a></span>';
+				html += options.controlsAfter;						
+				$(obj).after(html);										
+			};
+	
+			$("a","#"+options.nextId).click(function(){		
+				animate("next",true);
+			});
+			$("a","#"+options.prevId).click(function(){		
+				animate("prev",true);				
+			});	
+			$("a","#"+options.firstId).click(function(){		
+				animate("first",true);
+			});				
+			$("a","#"+options.lastId).click(function(){		
+				animate("last",true);				
+			});		
+			
+			function animate(dir,clicked){
+				var ot = t;				
+				switch(dir){
+					case "next":
+						t = (ot>=ts) ? (options.continuous ? 0 : ts) : t+1;						
+						break; 
+					case "prev":
+						t = (t<=0) ? (options.continuous ? ts : 0) : t-1;
+						break; 
+					case "first":
+						t = 0;
+						break; 
+					case "last":
+						t = ts;
+						break; 
+					default:
+						break; 
+				};	
+				
+				var diff = Math.abs(ot-t);
+				var speed = diff*options.speed;						
+				if(!options.vertical) {
+					p = (t*w*-1);
+					$(".list",obj).animate(
+						{ marginLeft: p }, 
+						speed
+					);				
+				} else {
+					p = (t*h*-1);
+					$(".list",obj).animate(
+						{ marginTop: p }, 
+						speed
+					);					
+				};
+				
+				if(!options.continuous && options.controlsFade){					
+					if(t==ts){
+						$("a","#"+options.nextId).hide();
+						$("a","#"+options.lastId).hide();
+					} else {
+						$("a","#"+options.nextId).show();
+						$("a","#"+options.lastId).show();					
+					};
+					if(t==0){
+						$("a","#"+options.prevId).hide();
+						$("a","#"+options.firstId).hide();
+					} else {
+						$("a","#"+options.prevId).show();
+						$("a","#"+options.firstId).show();
+					};					
+				};				
+				
+				if(clicked) clearTimeout(timeout);
+				if(options.auto && dir=="next" && !clicked){;
+					timeout = setTimeout(function(){
+						animate("next",false);
+					},diff*options.speed+options.pause);
+				};
+				
+			};
+			// init
+			var timeout;
+			if(options.auto){;
+				timeout = setTimeout(function(){
+					animate("next",false);
+				},options.pause);
+			};		
+		
+			if(!options.continuous && options.controlsFade){					
+				$("a","#"+options.prevId).hide();
+				$("a","#"+options.firstId).hide();				
+			};				
+			
+		});
+	  
+	};
+
+})(jQuery);
+
+
+
diff --git a/scripts/features_slider.js b/scripts/features_slider.js
new file mode 100644
index 0000000..f7c2608
--- /dev/null
+++ b/scripts/features_slider.js
@@ -0,0 +1,57 @@
+/**
+ * Features page accordian
+ * Devin Samarin <eboyjr14 gmail com>
+ **/
+
+/*
+$(function() {
+	var features_box = $('#features_box');
+	$('#features_box .accordian_info').hide();
+	$('#features_box .accordian_head').mouseover(function() {
+		$(this).next().slideDown("slow").parent().addClass("accordian_open");
+	});
+	features_box.mouseleave(function() {
+		$('.accordian_open', features_box).removeClass("accordian_open").children(":last-child").slideUp("fast");
+	});
+});
+*/
+
+$.fn.gtk_slider = function() {
+	var object = $(this);
+	var slider = $('.list', object);
+	var position = 0;
+	
+	var max = slider.children();
+	slider.height( max.eq(position).height() );
+	max = max.size()-1;
+	
+	var next = function() {
+		if (position < max) {
+			position++;
+		} else {
+			position = 0;
+		}
+		move(position);
+		return false;
+	};
+	var prev = function() {
+		if (position) {
+			position--;
+		} else {
+			position = max;
+		}
+		move(position);
+		return false;
+	};
+	
+	var move = function(x) {
+		slider.animate({marginLeft: -x*860, height: slider.children().eq(x).height() });
+	};
+	
+	$('.next').click(next);
+	$('.prev').click(prev);
+};
+
+$(function() {
+	$('#features_box').gtk_slider();
+});
diff --git a/scripts/jquery-1.4.4.min.js b/scripts/jquery-1.4.4.min.js
new file mode 100644
index 0000000..8f3ca2e
--- /dev/null
+++ b/scripts/jquery-1.4.4.min.js
@@ -0,0 +1,167 @@
+/*!
+ * jQuery JavaScript Library v1.4.4
+ * http://jquery.com/
+ *
+ * Copyright 2010, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2010, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Thu Nov 11 19:04:53 2010 -0500
+ */
+(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h=
+h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;k<J.length;k++){h=J[k];h.origType.replace(X,"")===a.type?f.push(h.selector):J.splice(k--,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f[o];for(k=0;k<J.length;k++){h=J[k];if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType==="mouseenter"||
+h.preType==="mouseleave"){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)[0]}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C[o];if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La,
+"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this,
+e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a,
+"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+
+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,
+C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j,
+s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this,
+j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length},
+toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j===
+-1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false;
+if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K<Q;K++)if((j=arguments[K])!=null)for(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G[s]=b.extend(ga,v,z)}else if(z!==B)G[s]=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait--;
+if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&--b.readyWait>0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload",
+b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&&
+!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&&
+l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H<G;){if(s.apply(j[H++],v)===false)break}else if(K)for(z in j){if(s.call(j[z],
+z,j[z])===false)break}else for(v=j[0];H<G&&s.call(v,H,v)!==false;v=j[++H]);return j},trim:O?function(j){return j==null?"":O.call(j)}:function(j){return j==null?"":j.toString().replace(k,"").replace(o,"")},makeArray:function(j,s){var v=s||[];if(j!=null){var z=b.type(j);j.length==null||z==="string"||z==="function"||z==="regexp"||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var v=0,z=s.length;v<z;v++)if(s[v]===j)return v;return-1},merge:function(j,
+s){var v=j.length,z=0;if(typeof s.length==="number")for(var H=s.length;z<H;z++)j[v++]=s[z];else for(;s[z]!==B;)j[v++]=s[z++];j.length=v;return j},grep:function(j,s,v){var z=[],H;v=!!v;for(var G=0,K=j.length;G<K;G++){H=!!s(j[G],G);v!==H&&z.push(j[G])}return z},map:function(j,s,v){for(var z=[],H,G=0,K=j.length;G<K;G++){H=s(j[G],G,v);if(H!=null)z[z.length]=H}return z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length===2)if(typeof s==="string"){v=j;j=v[s];s=B}else if(s&&!b.isFunction(s)){v=
+s;s=B}if(!s&&j)s=function(){return j.apply(v||this,arguments)};if(j)s.guid=j.guid=j.guid||s.guid||b.guid++;return s},access:function(j,s,v,z,H,G){var K=j.length;if(typeof s==="object"){for(var Q in s)b.access(j,Q,s[Q],z,H,v);return j}if(v!==B){z=!G&&z&&b.isFunction(v);for(Q=0;Q<K;Q++)H(j[Q],s,z?v.call(j[Q],Q,H(j[Q],s)):v,G);return j}return K?H(j[0],s):B},now:function(){return(new Date).getTime()},uaMatch:function(j){j=j.toLowerCase();j=L.exec(j)||g.exec(j)||i.exec(j)||j.indexOf("compatible")<0&&n.exec(j)||
+[];return{browser:j[1]||"",version:j[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(j,s){R["[object "+s+"]"]=s.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=m.version}if(b.browser.webkit)b.browser.safari=true;if(D)b.inArray=function(j,s){return D.call(s,j)};if(!/\s/.test("\u00a0")){k=/^[\s\xA0]+/;o=/[\s\xA0]+$/}f=b(t);if(t.addEventListener)u=function(){t.removeEventListener("DOMContentLoaded",u,
+false);b.ready()};else if(t.attachEvent)u=function(){if(t.readyState==="complete"){t.detachEvent("onreadystatechange",u);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=t.documentElement,b=t.createElement("script"),d=t.createElement("div"),e="script"+c.now();d.style.display="none";d.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"),
+k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false,
+scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent=
+false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom=
+1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display=
+"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h=
+c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando);
+else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h<l;h++){f=e[h].name;if(f.indexOf("data-")===0){f=f.substr(5);ka(this[0],f,d[f])}}}return d}else if(typeof a==="object")return this.each(function(){c.data(this,
+a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=this.triggerHandler("getData"+k[1]+"!",[k[0]]);if(d===B&&this.length){d=c.data(this[0],a);d=ka(this[0],a,d)}return d===B&&k[1]?this.data(k[0]):d}else return this.each(function(){var o=c(this),x=[k[0],b];o.triggerHandler("setData"+k[1]+"!",x);c.data(this,a,b);o.triggerHandler("changeData"+k[1]+"!",x)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e=
+c.data(a,b);if(!d)return e||[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===B)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,
+a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var sa=/[\n\t]/g,ha=/\s+/,Sa=/\r/g,Ta=/^(?:href|src|style)$/,Ua=/^(?:button|input)$/i,Va=/^(?:button|input|object|select|textarea)$/i,Wa=/^a(?:rea)?$/i,ta=/^(?:radio|checkbox)$/i;c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",
+colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(x){var r=c(this);r.addClass(a.call(this,x,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===
+1)if(f.className){for(var h=" "+f.className+" ",l=f.className,k=0,o=b.length;k<o;k++)if(h.indexOf(" "+b[k]+" ")<0)l+=" "+b[k];f.className=c.trim(l)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var x=c(this);x.removeClass(a.call(this,o,x.attr("class")))});if(a&&typeof a==="string"||a===B)for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(sa," "),
+l=0,k=b.length;l<k;l++)h=h.replace(" "+b[l]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,l=c(this),k=b,o=a.split(ha);f=o[h++];){k=e?k:!l.hasClass(f);l[k?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,
+"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(sa," ").indexOf(a)>-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one";
+if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var l=f[h];if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute("disabled")===null)&&(!l.parentNode.disabled||!c.nodeName(l.parentNode,"optgroup"))){a=c(l).val();if(b)return a;d.push(a)}}return d}if(ta.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Sa,"")}return B}var k=c.isFunction(a);return this.each(function(o){var x=c(this),r=a;if(this.nodeType===1){if(k)r=
+a.call(this,o,x.val());if(r==null)r="";else if(typeof r==="number")r+="";else if(c.isArray(r))r=c.map(r,function(C){return C==null?"":C+""});if(c.isArray(r)&&ta.test(this.type))this.checked=c.inArray(x.val(),r)>=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},
+attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&
+b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0};
+c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,
+arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid=
+d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+
+c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h<A.length;h++){C=A[h];if(d.guid===C.guid){if(k||x.test(C.namespace)){e==null&&A.splice(h--,1);r.remove&&r.remove.call(a,C)}if(e!=null)break}}if(A.length===0||e!=null&&A.length===1){if(!r.teardown||r.teardown.call(a,o)===false)c.removeEvent(a,f,w.handle);delete I[f]}}else for(h=0;h<A.length;h++){C=A[h];if(k||x.test(C.namespace)){c.event.remove(a,r,C.handler,h);A.splice(h--,1)}}}if(c.isEmptyObject(I)){if(b=
+w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,J);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===
+8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k===
+"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+
+d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f<l;f++){var k=d[f];if(b||e.test(k.namespace)){a.handler=k.handler;a.data=k.data;a.handleObj=k;k=k.handler.apply(this,h);if(k!==B){a.result=k;if(k===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
+fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||t;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=t.documentElement;d=t.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
+d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==B)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.remove(this,
+Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=t.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=
+c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ca;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ca;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ca;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U};
+var va=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},wa=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!==
+"form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=B;return la("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=B;return la("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V,
+xa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired=
+B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type===
+"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]===
+0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h<k;h++)c.event.add(this[h],d,l,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d,
+a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d=
+1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var ya={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var l,k=0,o,x,r=h||this.selector;h=h?this:c(this.context);if(typeof d===
+"object"&&!d.preventDefault){for(l in d)h[b](l,e,d[l],r);return this}if(c.isFunction(e)){f=e;e=B}for(d=(d||"").split(" ");(l=d[k++])!=null;){o=X.exec(l);x="";if(o){x=o[0];l=l.replace(X,"")}if(l==="hover")d.push("mouseenter"+x,"mouseleave"+x);else{o=l;if(l==="focus"||l==="blur"){d.push(ya[l]+x);l+=x}else l=(ya[l]||l)+x;if(b==="live"){x=0;for(var A=h.length;x<A;x++)c.event.add(h[x],"live."+Y(l,r),{data:e,selector:r,handler:f,origType:l,origHandler:f,preType:o})}else h.unbind("live."+Y(l,r),f)}}return this}});
+c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});
+(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1&&!q){y.sizcache=n;y.sizset=p}if(y.nodeName.toLowerCase()===i){F=y;break}y=y[g]}m[p]=F}}}function b(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1){if(!q){y.sizcache=n;y.sizset=p}if(typeof i!=="string"){if(y===i){F=true;break}}else if(k.filter(i,
+[y]).length>0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3];
+break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr,
+q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h=
+l;g.sort(w);if(h)for(var i=1;i<g.length;i++)g[i]===g[i-1]&&g.splice(i--,1)}return g};k.matches=function(g,i){return k(g,null,null,i)};k.matchesSelector=function(g,i){return k(i,null,null,[g]).length>0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p<q;p++){var u,y=o.order[p];if(u=o.leftMatch[y].exec(g)){var F=u[1];u.splice(1,1);if(F.substr(F.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");m=o.find[y](u,i,n);if(m!=null){g=g.replace(o.match[y],"");break}}}}m||(m=i.getElementsByTagName("*"));
+return{set:m,expr:g}};k.filter=function(g,i,n,m){for(var p,q,u=g,y=[],F=i,M=i&&i[0]&&k.isXML(i[0]);g&&i.length;){for(var N in o.filter)if((p=o.leftMatch[N].exec(g))!=null&&p[2]){var O,D,R=o.filter[N];D=p[1];q=false;p.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(F===y)y=[];if(o.preFilter[N])if(p=o.preFilter[N](p,F,n,y,m,M)){if(p===true)continue}else q=O=true;if(p)for(var j=0;(D=F[j])!=null;j++)if(D){O=R(D,p,j,F);var s=m^!!O;if(n&&O!=null)if(s)q=true;else F[j]=false;else if(s){y.push(D);q=true}}if(O!==
+B){n||(F=y);g=g.replace(o.match[N],"");if(!q)return[];break}}}if(g===u)if(q==null)k.error(g);else break;u=g}return F};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var o=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
+POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,i){var n=typeof i==="string",m=n&&!/\W/.test(i);n=n&&!m;if(m)i=i.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=n||q&&q.nodeName.toLowerCase()===
+i?q||false:q===i}n&&k.filter(i,g,true)},">":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p<q;p++){if(n=g[p]){n=n.parentNode;g[p]=n.nodeName.toLowerCase()===i?n:false}}else{for(;p<q;p++)if(n=g[p])g[p]=m?n.parentNode:n.parentNode===i;m&&k.filter(i,g,true)}},"":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=i=i.toLowerCase();q=a}q("parentNode",i,p,g,m,n)},"~":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=
+i=i.toLowerCase();q=a}q("previousSibling",i,p,g,m,n)}},find:{ID:function(g,i,n){if(typeof i.getElementById!=="undefined"&&!n)return(g=i.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,i){if(typeof i.getElementsByName!=="undefined"){for(var n=[],m=i.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&n.push(m[p]);return n.length===0?null:n}},TAG:function(g,i){return i.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,i,n,m,p,q){g=" "+g[1].replace(/\\/g,
+"")+" ";if(q)return g;q=0;for(var u;(u=i[q])!=null;q++)if(u)if(p^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n,
+m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===
+true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===
+g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return i<n[3]-0},gt:function(g,i,n){return i>n[3]-0},nth:function(g,i,n){return n[3]-
+0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n<m;n++)if(i[n]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,i){var n=i[1],m=g;switch(n){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(n===
+"first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":n=i[2];var p=i[3];if(n===1&&p===0)return true;var q=i[0],u=g.parentNode;if(u&&(u.sizcache!==q||!g.nodeIndex)){var y=0;for(m=u.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++y;u.sizcache=q}m=g.nodeIndex-p;return n===0?m===0:m%n===0&&m/n>=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===
+i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]];
+if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m,
+g);else if(typeof g.length==="number")for(var p=g.length;n<p;n++)m.push(g[n]);else for(;g[n];n++)m.push(g[n]);return m}}var w,I;if(t.documentElement.compareDocumentPosition)w=function(g,i){if(g===i){h=true;return 0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(i)&4?-1:1};else{w=function(g,i){var n,m,p=[],q=[];n=g.parentNode;m=i.parentNode;var u=n;if(g===i){h=true;return 0}else if(n===m)return I(g,i);else if(n){if(!m)return 1}else return-1;
+for(;u;){p.unshift(u);u=u.parentNode}for(u=m;u;){q.unshift(u);u=u.parentNode}n=p.length;m=q.length;for(u=0;u<n&&u<m;u++)if(p[u]!==q[u])return I(p[u],q[u]);return u===n?I(g,q[u],-1):I(p[u],i,1)};I=function(g,i,n){if(g===i)return n;for(g=g.nextSibling;g;){if(g===i)return-1;g=g.nextSibling}return 1}}k.getText=function(g){for(var i="",n,m=0;g[m];m++){n=g[m];if(n.nodeType===3||n.nodeType===4)i+=n.nodeValue;else if(n.nodeType!==8)i+=k.getText(n.childNodes)}return i};(function(){var g=t.createElement("div"),
+i="script"+(new Date).getTime(),n=t.documentElement;g.innerHTML="<a name='"+i+"'/>";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g);
+n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&&
+function(){var g=k,i=t.createElement("div");i.innerHTML="<p class='TEST'></p>";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F||
+p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g=
+t.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition?
+function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n<u;n++)k(g,q[n],m);return k.filter(p,m)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=k.getText;c.isXMLDoc=k.isXML;
+c.contains=k.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,Na=/^.[^:#\[\.,]*$/,bb=Array.prototype.slice,cb=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var l=0;l<d;l++)if(b[l]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})},
+not:function(a){return this.pushStack(ma(this,a,false),"not",a)},filter:function(a){return this.pushStack(ma(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h=
+h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e<f;e++)for(h=this[e];h;)if(l?l.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context):
+c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,
+2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,
+b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&
+e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/<tbody/i,eb=/<|&#?\w+;/,Ca=/<(?:script|object|embed|option|style)/i,Da=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/\=([^="'>\s]+\/)>/g,P={option:[1,
+"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
+c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
+wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
+prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
+this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
+return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null;
+else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=
+c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){var e,f,h,l=a[0],k=[];if(!c.support.checkClone&&arguments.length===3&&typeof l==="string"&&Da.test(l))return this.each(function(){c(this).domManip(a,
+b,d,true)});if(c.isFunction(l))return this.each(function(x){var r=c(this);a[0]=l.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(this[0]){e=l&&l.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);h=e.fragment;if(f=h.childNodes.length===1?h=h.firstChild:h.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var o=this.length;f<o;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")):
+this[f]:this[f],f>0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append",
+prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f<h;f++){var l=(f>0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument||
+b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1></$2>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]==="<table>"&&!x?r.childNodes:[];for(o=k.length-
+1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script"))));
+d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i,
+jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,
+zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b),
+h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b);
+if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f=
+d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left;
+e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
+ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b===
+"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("<div>").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&
+!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})},
+getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html",
+script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data||
+!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache=
+false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset;
+A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type",
+b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&&
+c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d||
+c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]=
+encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess",
+[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),
+e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}});
+if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show",
+3),a,b,d);else{d=0;for(var e=this.length;d<e;d++){a=this[d];b=a.style.display;if(!c.data(a,"olddisplay")&&b==="none")b=a.style.display="";b===""&&c.css(a,"display")==="none"&&c.data(a,"olddisplay",qa(a.nodeName))}for(d=0;d<e;d++){a=this[d];b=a.style.display;if(b===""||b==="none")a.style.display=c.data(a,"olddisplay")||""}return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay",
+d)}for(a=0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b,
+d,e);if(c.isEmptyObject(a))return this.each(f.complete);return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),l,k=this.nodeType===1,o=k&&c(this).is(":hidden"),x=this;for(l in a){var r=c.camelCase(l);if(l!==r){a[r]=a[l];delete a[l];l=r}if(a[l]==="hide"&&o||a[l]==="show"&&!o)return h.complete.call(this);if(k&&(l==="height"||l==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)===
+"inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[l])){(h.specialEasing=h.specialEasing||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(A,C){var J=new c.fx(x,h,A);if(vb.test(C))J[C==="toggle"?o?"show":"hide":C](a);else{var w=wb.exec(C),I=J.cur()||0;if(w){var L=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(x,A,(L||1)+g);I=(L||
+1)/J.cur()*I;c.style(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.custom(I,L,g)}else J.custom(I,C,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b,
+d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a*
+Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)}
+var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;
+this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide||
+this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=
+c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(ba);ba=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===
+b.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in t.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=fa(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&&
+h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d,e=b.offsetParent,f=b.ownerDocument,h=f.documentElement,l=f.body;d=(f=f.defaultView)?f.getComputedStyle(b,null):b.currentStyle;
+for(var k=b.offsetTop,o=b.offsetLeft;(b=b.parentNode)&&b!==l&&b!==h;){if(c.offset.supportsFixedPosition&&d.position==="fixed")break;d=f?f.getComputedStyle(b,null):b.currentStyle;k-=b.scrollTop;o-=b.scrollLeft;if(b===e){k+=b.offsetTop;o+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeName))){k+=parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}e=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"){k+=
+parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}d=d}if(d.position==="relative"||d.position==="static"){k+=l.offsetTop;o+=l.offsetLeft}if(c.offset.supportsFixedPosition&&d.position==="fixed"){k+=Math.max(h.scrollTop,l.scrollTop);o+=Math.max(h.scrollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset={initialize:function(){var a=t.body,b=t.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",
+height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells=
+f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a,
+"marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),l=c.css(a,"top"),k=c.css(a,"left"),o=e==="absolute"&&c.inArray("auto",[l,k])>-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a,
+e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&&
+c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();
+c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+
+b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window);
diff --git a/template.php b/template.php
new file mode 100755
index 0000000..9b06012
--- /dev/null
+++ b/template.php
@@ -0,0 +1,306 @@
+<?php
+/*
+.--------------------------------------------------------------.
+| Test results                                                 |
+|-------------------------.--------.---------------------------|
+| Lynx                    |  0.??% | Works beautifully         |
+|-------------------------+--------+---------------------------+
+| Opera Mini 5 beta 2     |  0.??% | Works nicely              |
+|-------------------------+--------+---------------------------|
+| Firefox 1/1.5           |  0.08% | Not tested                |
+|-------------------------+--------+---------------------------|
+| Firefox 2               |  0.46% | Works                     |
+|-------------------------+--------+---------------------------|
+| Opera                   |  2.01% | Works                     |
+|-------------------------+--------+---------------------------|
+| Firefox 3               |  2.47% | Works                     |
+|-------------------------+--------+---------------------------|
+| Firefox 3.5             |  4.76% | Works                     |
+|-------------------------+--------+---------------------------|
+| Safari                  |  4.90% | Works                     |
+|-------------------------+--------+---------------------------|
+| Google Chrome <3        |  8.30% | Works                     |
+|-------------------------+--------+---------------------------|
+| Internet Explorer 7     | 11.43% | Works                     |
+|-------------------------+--------+---------------------------|
+| Firefox 3.6             | 15.99% | Works                     |
+|-------------------------+--------+---------------------------|
+| Internet Explorer 6     | 16.97% | Works fine                |
+|                         |        | The external link bg imgs |
+|                         |        | are  disabled             |
+|-------------------------+--------+---------------------------|
+| Internet Explorer 8     | 26.87% | Works                     |
+'-------------------------'--------'---------------------------'
+
+IE Note: Rounded corners don't display on the footer and the div.bubble's.
+The page still looks good without rounded corners, and I consider rounded
+corners to be an optional benefit of browsers that support it.
+
+If you are using Firefox 3.6, Google Chrome, or Opera, then the page layout
+changes depending on the size of the window. This is so that if your screen
+is too small, the things start rearranging, e.g. two-column mode goes into
+one-column mode. Go ahead and resize your browser right now! Do it! It's nice!
+
+Also, there is a separate layout for when you are printing the page. I only
+tested this in Firefox, and I think thats only a bug when you see the first
+page with just the title and then a whole bunch of blank space. I don't know
+how to fix it but that's going to happen no matter if I have the special
+layout or not. Opera renders it fine, even though the print preview dialog
+is buggy. It must be tough doing print preview since Google Chrome doesn't
+have it working either.
+
+Also in order to create a page that uses this template, here is what you do:
+	* Start the page with ob_start();
+	* Set optional $title variable to be used as the page title
+	* Put your HTML here
+	* Include or require this page
+
+Here is an example:
+
+--------------------------------------------------------------------------------
+<?php
+$title = "Page title";
+ob_start();
+?>
+<h2>Hello world</h2>
+<p>Lorem ipsum dolor sit amet consectetuer adipscing...</p>
+<?php require 'template.php';
+--------------------------------------------------------------------------------
+
+NOTE: I didn't use the end php ?> tag since it is not required and makes sure
+nothing else is printed. This is optional though and just something that I have
+gotten used to doing.
+
+Remember the path to template.php is relative to the current file, so put '../'
+where appropriate.
+
+FILES:
+	CSS:
+		global.css: Contains main W3C-validated CSS styling for this page
+		browser.css: Builds on global.css with CSS3/Browser-specific stuff that
+		             couldn't pass validation with W3C (It's not that important
+		             though anyway)
+
+INLINE
+	CSS:
+		Internet Explorer-specific styling is written in this file with
+			conditional comments.
+
+*/
+
+$content = ob_get_clean();
+
+/* REMOVE this if block, and also clean up the footer */
+if( !isset($nofeedback) ) {
+
+	if( isset($_GET['page']) ) {
+		highlight_file("/var/gtk".$_SERVER['SCRIPT_NAME']);
+		die();
+	}
+
+	if( isset($_GET['template']) ) {
+		highlight_file(__FILE__);
+		die();
+	}
+}
+
+if (!isset($nav)) {
+	$nav = "";
+}
+
+$tmpnav = array(
+	"about" => array( "About", "/", "About GTK+" ),
+	"features" => array( "Features", "/features.php", "Find out what GTK+ can do for you" ),
+	"download" => array( "Download", "/download/index.php", "Download the latest version of GTK+" ),
+	"screenshots" => array( "Screenshots", "/screenshots/index.php", "See applications using GTK+ on various platforms" ),
+	"documentation" => array( "Documentation", "/documentation.php", "Read up on documentation about how to use GTK+" ),
+	"development" => array( "Development", "/development.php", "Get involved in the development of GTK+" )
+);
+if (!isset($navlinks)) {
+	$navlinks = $tmpnav;
+} elseif ($globalnav) {
+	$globalnav = $tmpnav;
+}
+
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv="Content-Language" content="en-us" />
+<meta name="author" content="The GTK+ Team" />
+<meta name="description" content="GTK+ is a highly usable, feature rich toolkit for creating graphical user interfaces which boasts cross platform compatibility and an easy to use API. GTK+ is licensed under the GNU LGPL 2.1 allowing development of both free and proprietary software with GTK+ without any license fees or royalties." />
+<meta name="keywords" content="gtk, gtk+, gimp, toolkit, user interface" />
+<link href="/css/global.css" rel="stylesheet" type="text/css" />
+<link href="/css/browser.css" rel="stylesheet" type="text/css" />
+<link rel="icon" href="/images/gtk-logo.ico" type="image/x-icon" />
+<link rel="shortcut icon" href="/images/gtk-logo.ico" type="image/x-icon" />
+
+<?php if( isset($_GET['red']) ) { ?>
+<style type="text/css">
+h2 {
+	color: #AA0000;
+}
+</style>
+<?php } ?>
+
+<!--[if lte IE 6]>
+<script defer="defer" type="text/javascript">
+//<![CDATA[
+
+// The following is an ever-so-slighly customized version of supersleight
+var supersleight=function(){var root='content';
+	var applyPositioning=true;
+	var shim='/images/x.gif';
+var fnLoadPngs=function(){if(root){root=document.getElementById(root);}else{root=document;}
+for(var i=root.all.length-1,obj=null;(obj=root.all[i]);i = i - 1){if(obj.currentStyle.backgroundImage.match(/\.png/i)!==null){bg_fnFixPng(obj);}
+if(obj.tagName=='IMG'&&obj.src.match(/\.png$/i)!==null){el_fnFixPng(obj);}
+if(applyPositioning&&(obj.tagName=='A'||obj.tagName=='INPUT')&&obj.style.position===''){obj.style.position='relative';}}};var bg_fnFixPng=function(obj){var mode='scale';var bg=obj.currentStyle.backgroundImage;var src=bg.substring(5,bg.length-2);if(obj.currentStyle.backgroundRepeat=='no-repeat'){mode='crop';}
+obj.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='"+mode+"')";obj.style.backgroundImage='url('+shim+')';};var el_fnFixPng=function(img){var src=img.src;img.style.width=img.width+"px";img.style.height=img.height+"px";img.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='crop')";img.src=shim;};var addLoadEvent=function(func){var oldonload=window.onload;if(typeof window.onload!='function'){window.onload=func;}else{window.onload=function(){if(oldonload){oldonload();}
+func();};}};return{init:function(){addLoadEvent(fnLoadPngs);},limitTo:function(el){root=el;},run:function(){fnLoadPngs();}};}();supersleight.init();
+
+//]]>
+</script>
+<![endif]-->
+
+<!--[if lte IE 6]>
+<style type="text/css">
+/*<![CDATA[*/
+/* So content div can clear sidebar floats */
+#content {
+	width: 860px;
+}
+/* Fix double margin float bug */
+.bindingtable, .legend {
+	display: inline;
+}
+
+/* No let's disable it for external links it doesn't work well enough */
+a.external, a.pdf, a.email, a.info, a.irc, a.archives, a.download {
+	padding: 0 !important;
+	background-image: none;
+}
+
+a:hover { text-decoration: none; }
+
+/* Inline-block for screenshots */
+.gallery li {
+	height: 175px;
+	zoom: 1;
+	display: inline;
+}
+.gallery .figure {
+	text-align: center;
+}
+.gallery .figure a {
+	margin: 0 auto;
+	display: block;
+}
+.gallery .caption {
+	word-wrap: nowrap;
+}
+
+.columns {
+	width: 860px;
+	overflow: hidden;
+}
+/*]]>*/
+</style>
+<![endif]-->
+
+<!--[if gt IE 6]>
+<style type="text/css">
+/*<![CDATA[*/
+/* IE7/8-implemented link images */
+a {
+	zoom: 1;
+}
+/*]]>*/
+</style>
+<![endif]-->
+
+<!--[if IE]>
+<style type="text/css">
+/*<![CDATA[*/
+/* Pre elements aren't wrapping */
+pre {
+	word-wrap: break-word;
+}
+
+/* Platform list doesn't render correctly */
+.platform_list li {
+	list-style-image: none;
+	height: 36px;
+}
+
+/* Hovering in IE causes reflow */
+:link:hover, :visited:hover {
+	border-bottom: none;
+	text-decoration: underline;
+	color: #999;
+}
+
+.newsfeed {
+	list-style-image: none;
+}
+
+/* Inline-block for screenshots */
+.gallery li {
+	zoom: 1;
+	*display: inline;
+}
+/*]]>*/
+</style>
+<![endif]-->
+
+<title><?php if (!isset($title)) { $title = "The GTK+ Project"; } echo htmlentities($title); ?></title>
+</head>
+
+<body<?php if (isset($bodyclass)) { echo ' class="'.$bodyclass.'"'; } ?>>
+
+<?php if (isset($globalnav)) { ?>
+	<div id="globalnav_wrap">
+		<div id="globalnav">
+			<span class="relation">Part of the <a href="../">GTK+ Project</a></span>
+			<ul><?php foreach( $globalnav as $k => $v ) { ?> 
+				<li<?php if ($k == $nav) echo ' class="current"'; ?>><a href="..<?php echo htmlentities($v[1]); ?>"<?php if (isset($v[2])) { echo ' title="'.htmlentities($v[2]).'"'; } ?>><?php echo htmlentities($v[0]); ?></a></li><?php } ?> 
+			</ul>
+		</div>
+	</div>
+<?php } ?>
+
+<div id="container">
+
+	<div id="header">
+		<h1><span><?php echo htmlentities($title); ?></span></h1>
+	</div>
+
+	<div id="navigation">
+		<ul><?php foreach( $navlinks as $k => $v ) { ?> 
+			<li<?php if ($k == $nav) echo ' class="current"'; ?>><a href="<?php echo htmlentities($v[1]); ?>"<?php if (isset($v[2])) { echo ' title="'.htmlentities($v[2]).'"'; } ?>><?php echo htmlentities($v[0]); ?></a></li><?php } ?> 
+		</ul>
+	</div>
+
+<div id="content">
+
+<?php if($content !== false) echo $content; ?> 
+
+<br style="clear: both;" />
+
+</div>
+
+	<div id="footer">
+		<pre style="display: none;"><!-- For Lynx --></pre>
+		<span>Copyright &copy; 2007-2011 The GTK+ Team</span><?php if (!isset($_GET['production'])) { ?> |
+		<span>Valid <a href="http://validator.w3.org/check?uri=http://<?php echo htmlentities("curlybeast.net:8080".$_SERVER['REQUEST_URI']); ?>&amp;charset=utf-8&amp;doctype=Inline&amp;group=0">XHTML</a> and <a href="http://jigsaw.w3.org/css-validator/validator?uri=<?php echo htmlentities("curlybeast.net:8080"); ?>/css/global.css&amp;profile=css21&amp;usermedium=all&amp;warning=1&amp;lang=en">CSS</a></span>
+<?php if( !isset($nofeedback) ) { ?>
+<?php } ?>
+		| <span>Add ?red to the url to use red headers</span><?php } ?>
+	</div>
+
+</div>
+<?php if (isset($scripts)) { foreach ($scripts as $url) { ?> 
+<script type="text/javascript" src="<?php echo htmlspecialchars($url); ?>"></script><?php } } ?> 
+
+</body>
+</html>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]