[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [websites/konqueror-org] /: move apps/konqueror to sites/konqueror
From:       Dirk Mueller <mueller () kde ! org>
Date:       2014-10-10 22:44:45
Message-ID: E1XcivV-0000qY-W4 () scm ! kde ! org
[Download RAW message or body]

Git commit 00fd7859a4a8ac3e033bd27037079e0265994ba6 by Dirk Mueller.
Committed on 03/10/2006 at 14:13.
Pushed by whiting into branch 'master'.

move apps/konqueror to sites/konqueror

A  +22   -0    404.php
A  +16   -0    announcements/index.php
A  +4    -0    announcements/menu.inc
A  +162  -0    announcements/reaktivate.php
A  +107  -0    announcements/sitelaunch.php
A  +61   -0    banking/admin.php
A  +38   -0    banking/authorise.inc
A  +58   -0    banking/common.inc
A  +73   -0    banking/edit.php
A  +195  -0    banking/index.php
A  +64   -0    banking/submit.php
A  +-    --    componentstutorial/img/step1.png
A  +-    --    componentstutorial/img/step2.png
A  +-    --    componentstutorial/img/step3.png
A  +-    --    componentstutorial/img/step4.png
A  +-    --    componentstutorial/img/title.png
A  +123  -0    componentstutorial/index.php
A  +9    -0    componentstutorial/menu.inc
A  +96   -0    componentstutorial/page2.php
A  +202  -0    componentstutorial/page3.php
A  +511  -0    componentstutorial/page4.php
A  +280  -0    componentstutorial/page5.php
A  +400  -0    componentstutorial/page6.php
A  +116  -0    componentstutorial/page7.php
A  +676  -0    css/index.php
A  +234  -0    developers/index.php
A  +17   -0    download/index.php
A  +313  -0    embedded/index.php
A  +394  -0    faq/index.php
A  +-    --    favicon.ico
A  +80   -0    features/application.php
A  +92   -0    features/browser.php
A  +73   -0    features/filemanager.php
A  +12   -0    features/index.php
A  +6    -0    features/menu.inc
A  +83   -0    features/viewer.php
A  +54   -0    index.php
A  +256  -0    investigatebug/index.php
A  +92   -0    javahowto/index.php
A  +24   -0    menu.inc
A  +14   -0    news.php
A  +277  -0    news.rdf
A  +-    --    pics/gear.png
A  +-    --    pics/kfm_icon.png
A  +-    --    pics/kghostview_icon.png
A  +-    --    pics/konq_about.png
A  +-    --    pics/konq_about_sm.png
A  +-    --    pics/konq_bidi.png
A  +-    --    pics/konq_crypto.png
A  +-    --    pics/konq_explore.png
A  +-    --    pics/konq_explore_sm.png
A  +-    --    pics/konq_hybrid.png
A  +-    --    pics/konq_hybrid_sm.png
A  +-    --    pics/konq_icon.png
A  +-    --    pics/konq_icon_sm.png
A  +-    --    pics/konq_image.jpg
A  +-    --    pics/konq_image.png
A  +-    --    pics/konq_konquer.png
A  +-    --    pics/konq_konquer_sm.png
A  +-    --    pics/konq_navigate.png
A  +-    --    pics/konq_navigate_sm.png
A  +-    --    pics/konq_newrc.png
A  +-    --    pics/konq_newrc_sm.png
A  +-    --    pics/konq_office.jpg
A  +-    --    pics/konq_office.png
A  +-    --    pics/konq_presents.jpg
A  +-    --    pics/konq_presents.png
A  +-    --    pics/konq_std.png
A  +-    --    pics/konq_std_sm.png
A  +-    --    pics/konq_word.jpg
A  +-    --    pics/konq_word.png
A  +-    --    pics/web_icon.png
A  +0    -0    robots.txt
A  +8    -0    site.inc

http://commits.kde.org/websites/konqueror-org/00fd7859a4a8ac3e033bd27037079e0265994ba6


diff --git a/404.php b/404.php
new file mode 100644
index 0000000..5d5d445
--- /dev/null
+++ b/404.php
@@ -0,0 +1,22 @@
+<?php
+include("handler.inc");
+$handler = new Handler404();
+$handler->add("/bug.html", "/investigatebug");
+$handler->add("/c-tutorials.html", "/componentstutorial");
+$handler->add("/developers.html", "/developers");
+$handler->add("/embedded.html", "/embedded");
+$handler->add("/faq.html", "/faq");
+$handler->add("/install-binaries.html", "/index.php");
+$handler->add("/install-source.html", \
"http://developer.kde.org/build/compile_kde3_1.html"); \
+$handler->add("/konq-application.html", "/features/application.php"); \
+$handler->add("/konq-browser.html", "/features/browser.php"); \
+$handler->add("/konq-filemanager.html", "/features/filemanager.php"); \
+$handler->add("/konq-java.html", "/javahowto"); +$handler->add("/konq-viewer.html", \
"/features/viewer.php"); +$handler->add("/announcements/reaktivate.html", \
"/announcements/reaktivate.php"); +$handler->add("/announcements/konqueror.org.html", \
"/announcements/sitelaunch.php"); +$handler->add("/index.html", "/index.php");
+$handler->add("/announcements/index.html", "/announcements");
+$handler->add("/content/khtml_css2.html", "/css");
+$handler->execute();
+?>
diff --git a/announcements/index.php b/announcements/index.php
new file mode 100644
index 0000000..a4f77d1
--- /dev/null
+++ b/announcements/index.php
@@ -0,0 +1,16 @@
+<?php
+  $site_root = "../";
+  $page_title = "Announcements";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<p>Available announcements:</p>
+<ul>
+<li><a href="sitelaunch.php">Konqueror.org site launch announcement</a></li>
+<li><a href="reaktivate.php">Reaktivate released</a></li>
+</ul>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/announcements/menu.inc b/announcements/menu.inc
new file mode 100644
index 0000000..882b5a4
--- /dev/null
+++ b/announcements/menu.inc
@@ -0,0 +1,4 @@
+<?php
+$this->appendLink("konqueror.org Launch", "sitelaunch.php");
+$this->appendLink("Reaktivate Released", "reaktivate.php");
+?>
diff --git a/announcements/reaktivate.php b/announcements/reaktivate.php
new file mode 100644
index 0000000..cfcb89d
--- /dev/null
+++ b/announcements/reaktivate.php
@@ -0,0 +1,162 @@
+<?php
+  $site_root = "../";
+  $page_title = "Reaktivate Released";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<p>DATELINE JULY 9, 2001</p>
+<p>FOR IMMEDIATE RELEASE</p>
+<h2 align="center">KDE Web Browser Konqueror Gets Activ(eX)ated</h2>
+<p><strong>Konqueror Embraces ActiveX, Plays Shockwave Movies</strong></p>
+<p>July 9, 2001 (The INTERNET).
+<a href="mailto:wildfox@kde.org">Nikolas Zimmermann</a> and
+<a href="mailto:malte@kde.org">Malte Starostik</a> today announced
+the availability of reaktivate for
+<a href="http://konqueror.kde.org/">Konqueror</a>, KDE's web browser.
+Reaktivate enables Konqueror to embed
+<a href="http://www.microsoft.com/com/tech/ActiveX.asp">ActiveX</a> controls,
+such as the popular
+<a href="http://macromedia.com/software/shockwaveplayer/">Shockwave</a>
+movies, for which no native Linux/Unix solution exists.  Reaktivate relies
+on the
+<a href="http://www.winehq.org/">WINE</a> libraries to load and run
+ActiveX controls.
+</p>
+<p>
+With this addition, Konqueror now enables KDE users to take optimal advantage
+of sophisticated websites that make use of Microsoft Internet Explorer plugins,
+Netscape Communicator
+<a href="http://konqueror.kde.org/faq.html#nsplugin">plugins</a> for Linux and Java \
applets, +as well as KDE plugins designed using KDE's
+<a href="http://developer.kde.org/documentation/tutorials/kparts/">KParts</a>
+technology.
+</p>
+<p>
+According to Malte, the reason he and Nikolas implemented reaktivate
+is rather simple: it broadens the spectrum of web sites accessible
+to Konqueror, and it was possible.
+</p>
+<h2>Successes and Limitations</h2>
+<p>Theoretically,
+Reaktivate can eventually be used to embed any ActiveX control into Konqueror.
+Currently, however, not all ActiveX controls are compatible with reaktivate.
+In particular, the <a href="http://windowsmedia1.com/mg/home.asp">Microsoft
+Windows Media Player</a> cannot be installed using reaktivate (though it is not \
known if a player which is already installed will work with +reaktivate).  Thus it is \
likely there exist other ActiveX controls which +will not yet work with reaktivate.
+Work is ongoing to increase compatability with other ActiveX controls,
+including the
+<a href="http://www.apple.com/quicktime/">Apple QuickTime</a> plugin.
+</p>
+<p>
+So far, however, reaktivate has been successfully tested with the
+following ActiveX controls:
+</p>
+<table border="0" cellspacing="6" cellpadding="0">
+ <tr><th align="left">Control</th><th align="left">Status</th>
+     <th align="left">Test-URL</th><th align="left">Screenshots</th></tr>
+ <tr valign="top">
+     <td nowrap="nowrap"><a \
href="http://macromedia.com/software/shockwaveplayer/">Macromedia +Shockwave Flash \
5</a></td> +     <td>No known problems.</td>
+     <td><a href="http://static.kdenews.org/mirrors/malte.homeip.net/base.html">Click \
here</a></td> +     <td><a \
href="http://static.kdenews.org/content/reaktivate/flash1.png">[1]</a>, <a \
href="http://static.kdenews.org/content/reaktivate/flash2.png">[2]</a>, <a \
href="http://static.kdenews.org/content/reaktivate/flash3.png">[3]</a>, <a \
href="http://static.kdenews.org/content/reaktivate/flash4.png">[4]</a>, and <a \
href="http://static.kdenews.org/content/reaktivate/flash5.png">[5]</a></td> + </tr>
+ <tr valign="top">
+     <td nowrap="nowrap">
+<a href="http://macromedia.com/software/shockwaveplayer/">Macromedia
+Shockwave Player 8</a></td>
+     <td>Some files require the use of a native msvcrt.dll instead of the
+         one provided by winelib. The post-installation dialog is functional
+         but hard to decipher due to drawing problems.  Some movies do not
+         display properly (only black stripes and rects are shown)</td>
+     <td><a href="http://sdc.shockwave.com/shockwave/download/triggerpages_mmcom/default.html">Click \
here</a></td> +     <td><a \
href="http://static.kdenews.org/content/reaktivate/shockwave1.png">[1]</a></td> + \
</tr> + <tr valign="top">
+     <td nowrap="nowrap"><a \
href="http://www.livepicture.com/products/viewers/activex/info.html">LivePics</a></td>
 +     <td>Clicking the "info" button in the toolbar has no result, everything
+         else works fine.</td>
+     <td><a href="http://static.kdenews.org/mirrors/malte.homeip.net/livepics.html">Click \
here</a></td> +     <td><a \
href="http://static.kdenews.org/content/reaktivate/livepics1.png">[1]</a> and <a \
href="http://static.kdenews.org/content/reaktivate/livepics2.png">[2]</a></td> + \
</tr> +</table>
+<h2>Note on Security</h2>
+<p>
+<strong><em>Install ActiveX controls only from sites that you
+trust.</em></strong>
+Microsoft's ActiveX technology has often been criticized for weak security.
+Those controls are dynamic libraries that are executed exactly like any
+other piece of code installed on the user's system. This means they have
+full access to the file system, the system registry etc.  As a means to
+establish the users' trust in the controls a web site wishes to install,
+every ActiveX control is cryptographically signed and carries a certificate
+issued by an authority known to the web browser (like
+<a href="http://www.verisign.com/">VeriSign</a>).  A control
+that has no signature or no certificate or if they are invalid will not be
+installed.
+</p>
+<p>
+With reaktivate the situation is similar: the installed controls can call
+every WinAPI function provided by the WINE libraries and therefore have
+access to WINE's registry and all files visible to the WINE installation.
+The current implementation of reaktivate will ask the user for
+confirmation to install a new control, but it will not check the embedded
+certificate and signature. This is due to technical reasons as well as
+limited time.  Therefore we strongly advise to install controls only from
+sites that you trust.  To save your files from malicious controls, you might
+also consider using this feature only from a seperate user account that
+has no access to your main user's files. Reaktivate will not run for the
+root account.
+</p>
+<h2>Installing Reaktivate</h2>
+<p>
+Source code for reaktivate is freely available under a Free, Open Source
+license from the
+<a href="http://webcvs.kde.org/cgi-bin/cvsweb.cgi/kdenonbeta/reaktivate">kdenonbeta
+module</a> in
+<a href="http://webcvs.kde.org/">KDE's CVS repository</a>
+and its <a href="http://www.kde.org/cvsupmirrors.html">mirrors</a>.
+See the <a href="http://www.kde.org/anoncvs.html">KDE website</a> for
+information about how to get a module from CVS.  You only need
+the toplevel, admin and reaktivate directories from kdenonbeta.  Before
+compiling, get the latest <a href="http://www.winehq.org/download.shtml">CVS
+version of WINE</a> (a snapshot will likely not be new enough). Next,
+apply all patches from reaktivate/patches-for-wine/ against the WINE
+sources and build/install WINE.  Finally, you can build and install
+reaktivate.
+</p>
+<p>
+<em>Disclaimer</em>: reaktivate is not in any manner sponsored or endorsed
+by, affiliated with, or otherwise related to,
+<a href="http://www.microsoft.com/">Microsoft Corporation</a>.
+</p>
+<p>
+Thanks to <a href="mailto:pour at kde.org">Andreas "Dre" Pour</a> and
+<a href="mailto:navindra@kde.org">Navindra Umanee</a> for assisting in
+drafting this release.
+</p>
+<hr />
+
+<p>
+<em>Trademarks Notices.</em>
+KDE, K Desktop Environment and Konqueror are trademarks of KDE e.V.
+Linux is a registered trademark of Linus Torvalds.
+Unix is a registered trademark of The Open Group.
+Microsoft, ActiveX, Microsoft Internet Explorer and Windows Media Player
+are registered trademarks or trademarks of Microsoft Corporation.
+Shockwave is a trademark or registered trademark of Macromedia, Inc. in
+the United States and/or other countries.
+Netscape and Netscape Communicator are trademarks or registered trademarks
+of Netscape Communications Corporation in the United States and other
+countries and JavaScript is a trademark of Netscape Communications Corporation.
+Apple and Quicktime are trademarks of Apple Computer, Inc., registered in
+the U.S. and other countries.
+All other trademarks and copyrights referred to in this announcement are the \
property +of their respective owners.
+</p>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/announcements/sitelaunch.php b/announcements/sitelaunch.php
new file mode 100644
index 0000000..2dea07b
--- /dev/null
+++ b/announcements/sitelaunch.php
@@ -0,0 +1,107 @@
+<?php
+  $site_root = "../";
+  $page_title = "Site Launch Announcement";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<p>DATELINE MAY 2, 2000</p>
+<p>FOR IMMEDIATE RELEASE</p>
+<h2 align="center">Konqueror.org Launches</h2>
+<p><strong>New Website Dedicated to Users of KDE's Next-Generation
+File Manager/Browser/Universal Viewer</strong></p>
+<p>May 2, 2000 (New York, New York).  The <a href="http://www.kde.org">KDE
+Team</a> is pleased
+to announce the launch of <a href="http://www.konqueror.org">Konqueror.org</a>,
+a website devoted to Konqueror, KDE's next-generation, full-featured,
+powerful, flexible, modular and Internet-transparent
+<a href="http://konqueror.kde.org/konq-filemanager.html">file manager</a>,
+<a href="http://konqueror.kde.org/konq-browser.html">web browser</a> and
+<a href="http://konqueror.kde.org/konq-viewer.html">universal document
+viewer</a>.</p>
+
+<p>Konqueror, which has been widely acclaimed as a technological
+break-through for the Linux desktop, has a component-based architecture
+which combines the features and functionality of Internet
+Explorer<sup>&reg;</sup>/Netscape Communicator<sup>&reg;</sup> and
+Windows Explorer<sup>&reg;</sup>.  Konqueror supports
+all major Internet technologies, including JavaScript<sup>TM</sup>,
+Java<sup>&reg;</sup>, HTML 4.0, CSS-2 (Cascading Style Sheets), SSL
+(Secure Socket Layer for secure communications) and, in the near
+future, Netscape<sup>&reg;</sup> plugins (for viewing Flash<sup>TM</sup>,
+RealAudio<sup>TM</sup>, RealVideo<sup>TM</sup> and similar technologies).
+In addition,
+Konqueror's network transparency offers seamless support for browsing
+Linux<sup>&reg;</sup> NFS shares, Windows<sup>&reg;</sup> SMB shares
+and FTP directories.  Konqueror will ship as part of the highly
+anticipated release of KDE 2.0, targeted for mid-summer 2000.</p>
+
+<p>Konqueror's developers created
+<a href="http://www.konqueror.org">Konqueror.org</a> to serve as
+Konqueror's official website.  There
+users can learn about Konqueror's many powerful features, keep abreast
+of the latest Konqueror news and developments, learn how to download and install
+Konqueror and submit comments and questions to Konqueror developers.
+Developers can learn how they can use Konqueror to web-enable their
+applications, how they can enable their applications to serve as a
+Konqueror component and how they can contribute to Konqueror's
+ongoing development.</p>
+
+<p>"While the site offers rich content already - including a number of
+mouth-watering screenshots - it is a work in progress and we will certainly
+continually improve it",
+said <a href="mailto:lee@azsites.com">Chris Lee</a>,
+webmaster and principal architect of the site.  "We plan to add tutorials
+and FAQs for users, include a plug-in and component directory and
+supplement the developer's news and tutorials.  This will be <em>the</em>
+site to go to for official, as well as unofficial, Konqueror news and
+information."</p>
+
+<p>"Konqueror is an extremely promising technology which is poised to
+revolutionize Linux not only on the corporate and consumer desktops but
+also on networked appliances and personal digital assistants", said
+<a href="mailto:pour@mieterra.com">Andreas Pour</a>, President
+of MieTerra LLC.  "With the new web site, the Konqueror developers are
+again demonstrating their deep commitment to support their users,
+assist third-party developers and create the world's premier browser."</p>
+
+<h2>About KDE</h2>
+<p>KDE is a collaborative project by hundreds of developers worldwide to
+create a sophisticated, customizable and stable desktop environment
+employing a network-transparent, intuitive user interface.  Currently
+development is focused on KDE 2, which will for the first time offer a
+free, open source, fully-featured office suite and which promises to
+make the Linux desktop as easy to use as Windows<sup>&reg;</sup> and
+the Macintosh<sup>&reg;</sup>
+while remaining loyal to open standards and empowering developers and users
+with open source software.  KDE is working proof of how the open source
+software development model can create technologies on par with and superior
+to even the most complex commercial software.</p>
+
+<p>For more information about KDE, please visit KDE's <a \
href="http://www.kde.org/whatiskde/">web site</a>.</p> +
+<hr />
+
+<table border="0" cellpadding="8" cellspacing="0">
+<tr><th colspan="2" align="left">
+Press Contacts:
+</th></tr>
+<tr valign="top"><td align="right" nowrap="nowrap">
+United&nbsp;States:
+</td><td nowrap="nowrap">
+Kurt Granroth<br />
+granroth@kde.org<br />
+(1) 480 732 1752
+</td></tr>
+<tr valign="top"><td align="right" nowrap="nowrap">
+Europe (French and English):
+</td><td nowrap="nowrap">
+David Faure<br />
+faure@kde.org<br />
+(44) 1225 471 300
+</td></tr>
+</table>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/banking/admin.php b/banking/admin.php
new file mode 100644
index 0000000..2af2fb0
--- /dev/null
+++ b/banking/admin.php
@@ -0,0 +1,61 @@
+<?php
+//error_reporting(E_ALL);
+//ini_set('display_errors', 1);
+?>
+<?php
+  include("authorise.inc");
+  authorise();
+  $site_root = "../";
+  $page_title = "Konqueror - Online Banking";
+  include("konqueror.inc");
+  include("header.inc");
+  include("common.inc");
+?>
+
+<?php
+	include_once("common.inc");
+
+	$id = $_GET['id'];
+
+	$sql = "SELECT banks.country, banks.url, banks.name, compat.comment, compat.kde30, \
compat.kde31 FROM banks, compat WHERE banks.id = '$id' AND compat.bank = '$id'"; \
+	$query = mysql_query($sql) or die("MySQL error: " . mysql_error()); +
+	$row = mysql_fetch_array($query);
+	echo "<h1>" . $row['country'] . " - " . $row['name'] . "</h1>";
+?>
+
+
+<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
+<input type="hidden" name="submitted" value="true" />
+<table border="0">
+<tr>
+<td>
+Name
+</td>
+<td>
+<input type="text" name="name" value="<?php echo stripslashes($row['name']) ?>" />
+</td>
+</tr>
+<tr>
+<td>
+Url
+</td>
+<td>
+<input type="text" name="url" value="<?php echo $row['url'] ?>" />
+</td>
+</tr>
+<tr>
+<td>
+Comment
+</td>
+<td>
+<textarea cols="70" rows="5" name="comment"><?php echo stripslashes($row['comment']) \
?></textarea> +</td>
+</tr>
+</table>
+<input type="submit" caption="Submit" />
+</form>
+
+<?php
+ include("footer.inc");
+?>
diff --git a/banking/authorise.inc b/banking/authorise.inc
new file mode 100644
index 0000000..bea84d7
--- /dev/null
+++ b/banking/authorise.inc
@@ -0,0 +1,38 @@
+<?php
+include("auth.inc");
+
+function authorise()
+{
+	global $host, $username, $password;
+
+	$auth_check = mysql_connect($host, $username, $password) or die (mysql_error());
+        $db = mysql_select_db("wwwkonqueror", $auth_check);
+	//$auth_check = mysql_connect("localhost, "konqueror", "konqueror") or die \
(mysql_error()); +	//$db = mysql_select_db("wwwkonqueror", $auth_check);
+
+	$auth = false;
+
+	if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW']))
+	{
+		$sql = "SELECT * from auth";
+		$query = mysql_query($sql, $auth_check) or die("error " . mysql_error());
+		while ($row = mysql_fetch_array($query))
+		{
+			if (($row['user'] == $_SERVER['PHP_AUTH_USER']) && ($row['pass'] == \
$_SERVER['PHP_AUTH_PW'])) +			{
+				$auth = true;
+			}
+		}
+	}
+
+	if (!$auth)
+	{
+		header("WWW-Authenticate: Basic realm=\"Private\"");
+		header("HTTP/1.0 401 Unauthorized");
+		exit();
+	}
+
+	mysql_close($auth_check);
+}
+
+?>
diff --git a/banking/common.inc b/banking/common.inc
new file mode 100644
index 0000000..5533d7c
--- /dev/null
+++ b/banking/common.inc
@@ -0,0 +1,58 @@
+<?php
+include("auth.inc");
+mysql_connect($host, $username, $password);
+mysql_select_db("wwwkonqueror");
+//mysql_connect("localhost", "konqueror", "konqueror");
+//mysql_select_db("konqueror");
+
+function parseCompat($value)
+{
+	if ($value == "four")
+	{
+		return "Works";
+	}
+	else
+	if ($value == "three")
+	{
+		return "Small Problems";
+	}
+	if ($value == "two")
+	{
+		return "UA Change";
+	}
+	if ($value == "one")
+	{
+		return "Not Work";
+	}
+	else
+	{
+		return "Unknown";
+	}
+}
+
+function returnStatistic($sql)
+{
+	$query = mysql_query($sql);
+        return mysql_num_rows($query);
+}
+
+function country($string)
+{
+	$country = addslashes($string);
+	if (ereg("^[A-Z]{2}$", $string))
+	{
+		$sql = "SELECT name FROM country WHERE iso = '$country'";
+		$query = mysql_query($sql);
+		$value = mysql_fetch_array($query);
+		return $value['name'];
+	}
+	else
+	{
+		$sql = "SELECT iso FROM country WHERE name = '$country'";
+		$query = mysql_query($sql);
+		$value = mysql_fetch_array($query);
+		return $value['iso'];
+	}
+}
+
+?>
diff --git a/banking/edit.php b/banking/edit.php
new file mode 100644
index 0000000..22cd93e
--- /dev/null
+++ b/banking/edit.php
@@ -0,0 +1,73 @@
+<?php
+//error_reporting(E_ALL);
+//ini_set('display_errors', 1);
+?>
+
+<?php
+  $site_root = "../";
+  $page_title = "Konqueror - Online Banking";
+  include("konqueror.inc");
+  include("header.inc");
+  include("common.inc");
+?>
+
+<?php
+	if (isset($_GET['id']) && isset($_GET['test']))
+	{
+?>
+
+<h2>Replace the following details...</h2>
+
+<?php
+	$selected = $_GET['id'];
+	echo "<table border=\"0\">\n";
+	echo "<tr id=\"leftmenu\">\n<td><h4>Bank</h4></td>\n<td><h4>Comment</h4></td>\n<td><h4>KDE \
3.0</h4></td>\n<td><h4>KDE 3.1</h4></td>\n<td><h4>KDE 3.2</h4></td>\n</tr>\n"; +	$sql \
= "SELECT banks.id, banks.country, banks.url, banks.name, compat.comment, \
compat.kde30, compat.kde31, compat.kde32 FROM banks, compat WHERE banks.id = \
'$selected' AND compat.bank = '$selected'"; +	$query = mysql_query($sql);
+	$row = mysql_fetch_array($query);
+	echo "<tr>\n";
+	echo "<td valign=\"top\"><a href=\"" . $row['url'] ."\">" . \
stripslashes($row['name']) . "</a></td>\n"; +	echo "<td>" . \
stripslashes($row['comment']) . "</td>\n"; +	echo "<td>" . parseCompat($row['kde30']) \
. "</td>\n"; +	echo "<td>" . parseCompat($row['kde31']) . "</td>\n";
+	echo "<td>" . parseCompat($row['kde32']) . "</td>\n";
+	echo "</tr>\n";
+	echo "</table>\n";
+?>
+
+<h2>...with the new details</h2>
+
+<form action="submit.php" method="POST">
+<input type="hidden" name="edit" value="true" />
+<label for="nameofbank">Name of Bank:</label>
+<input type="text" name="nameofbank" id="nameofbank" value="<?php echo \
stripslashes($row['name']) ?>" /><br /> +<label for="url">URL:</label>
+<input type="text" name="url" id="url"  value="<?php echo stripslashes($row['url']) \
?>"/><br /> +<label for="version">KDE Version:</label>
+<select size="1" name="version" title="Version" id="version">
+<option value="kde30">KDE 3.0</option>
+<option value="kde31">KDE 3.1</option>
+<option value="kde32">KDE 3.2</option>
+</select><br />
+<label for="rating">Rate how well Konqueror works with the site:</label>
+<select size="1" name="rating" title="Rating" id="rating">
+<option value="four">Perfectly</option>
+<option value="three">Very well, with minor problems</option>
+<option value="two">UserAgent needs changing</option>
+<option value="one">Not at all</option>
+</select><br />
+<label for="comment">Comments:</label>
+<textarea rows="4" cols="70" name="comment" id="comment"><?php echo \
stripslashes($row['comment']) ?></textarea><br /> +<label for="submitter">Submitter \
Name:</label> +<input type="text" name="submitter" id="submitter" /><br />
+<label for="email">Submitter E-Mail:</label>
+<input type="text" name="email" id="email" /><br />
+<input type="submit" value="Submit" />
+</form>
+
+<?php
+	}
+?>
+<?php
+ include("footer.inc");
+?>
diff --git a/banking/index.php b/banking/index.php
new file mode 100644
index 0000000..eff572e
--- /dev/null
+++ b/banking/index.php
@@ -0,0 +1,195 @@
+<?php
+//error_reporting(E_ALL);
+//ini_set('display_errors', 1);
+?>
+
+<?php
+  $site_root = "../";
+  $page_title = "Konqueror - Online Banking";
+  include("konqueror.inc");
+  include("header.inc");
+  include("common.inc");
+?>
+
+<?php
+	$country = "";
+	if (!isset($_GET['country']))
+	{
+?>
+
+<h2>Country Selection</h2>
+
+<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="GET">
+<select size="1" name="country" title="Country">
+<option value="all">All</option>
+<?php
+$sql = "SELECT DISTINCT country FROM banks ORDER BY country";
+$query = mysql_query($sql);
+while ($row = mysql_fetch_array($query))
+{
+	echo "<option value=\"" . $row['country'] . "\">" . country($row['country']) . \
"</option>\n"; +}
+?>
+</select>
+<input type="submit" caption="Submit" />
+</form>
+
+<p>If your country is not listed in the above list please use the form below to \
submit details.</p> +
+<h2>Statistics</h2>
+<ul>
+<li>Number of countries: <?php echo returnStatistic("SELECT DISTINCT country FROM \
banks") ?></li> +</ul>
+
+<table border="1">
+<tr>
+<td>
+Version
+</td>
+<td>
+Does not work
+</td>
+<td>
+UA change
+</td>
+<td>
+Works mostly
+</td>
+<td>
+Works perfectly
+</td>
+</tr>
+
+<?php
+for ($i = 0; $i <= 2; $i++)
+{
+?>
+
+<tr>
+<td>
+Konqueror 3.<?php echo $i ?>
+</td>
+<td>
+<?php echo returnStatistic("SELECT * FROM compat WHERE kde3" . $i . " = 'one'") ?>
+</td>
+<td>
+<?php echo returnStatistic("SELECT * FROM compat WHERE kde3" . $i . " = 'two'") ?>
+</td>
+<td>
+<?php echo returnStatistic("SELECT * FROM compat WHERE kde3" . $i . " = 'three'") ?>
+</td>
+<td>
+<?php echo returnStatistic("SELECT * FROM compat WHERE kde3" . $i . " = 'four'") ?>
+</td>
+</tr>
+
+<?php
+}
+?>
+</table>
+
+<?php
+	}
+	else if (isset($_GET['country']))
+	{
+?>
+
+<?php
+	$selected = $_GET['country'];
+	echo "<table border=\"0\">";
+	$sql = "";
+	if ($selected == "all")
+	{
+		$sql = "SELECT DISTINCT country FROM banks ORDER BY country";
+	}
+	else
+	{
+		$sql = "SELECT DISTINCT country FROM banks WHERE country = '$selected'";
+	}
+	$query = mysql_query($sql);
+	$num = mysql_num_rows($query);
+
+	if ($num == 0)
+	{
+		echo "<p>No banks known for selected country.</p>";
+	}
+	while ($row = mysql_fetch_array($query))
+	{
+		$country = $row['country'];
+		echo "<tr><td colspan=\"4\"><h2>" . country($row['country']) . \
"</h2></td></tr>\n"; +		echo "<tr \
id=\"leftmenu\">\n<td><h4>Bank</h4></td>\n<td><h4>Comment</h4></td>\n<td><h4>KDE \
3.0</h4></td>\n<td><h4>KDE 3.1</h4></td>\n<td><h4>KDE \
3.2</h4></td>\n<td><h4>Edit</h4></td>\n</tr>\n"; +		$sql2 = "SELECT banks.id, \
banks.country, banks.url, banks.name, compat.comment, compat.kde30, compat.kde31, \
compat.kde32 FROM banks, compat WHERE banks.id = compat.bank AND country = '$country' \
ORDER BY banks.name"; +		$query2 = mysql_query($sql2);
+		$alternate = false;
+		while($row2 = mysql_fetch_array($query2))
+		{
+			$alternate = !$alternate;
+			if ($alternate)
+			{
+				$color = "newsbox2";
+			}
+			else
+			{
+				$color = "newsbox1";
+			}
+			echo "<tr class=\"$color\">\n";
+			echo "<td valign=\"top\"><a href=\"" . $row2['url'] ."\">" . \
stripslashes($row2['name']) . "</a></td>\n"; +			echo "<td>" . \
stripslashes($row2['comment']) . "</td>\n"; +			echo "<td>" . \
parseCompat($row2['kde30']) . "</td>\n"; +			echo "<td>" . \
parseCompat($row2['kde31']) . "</td>\n"; +			echo "<td>" . \
parseCompat($row2['kde32']) . "</td>\n"; +			echo "<td><a href=\"edit.php" . "?id=" . \
$row2['id'] . "\">Edit</a></td>\n"; +			echo "</tr>\n";
+		}
+	}
+	echo "</table>\n";
+?>
+
+<?php
+	}
+?>
+
+<h2>Add New Entry</h2>
+
+<form action="submit.php" method="POST">
+<input type="hidden" name="new" value="true" />
+<label for="nameofbank">Name of Bank:</label>
+<input type="text" name="nameofbank" id="nameofbank" /><br />
+<label for="url">URL:</label>
+<input type="text" name="url" id="url" /><br />
+<label for="country">Country:</label>
+<select size="1" name="country" title="Country" id="country">
+<?php                   
+$sql = "SELECT name FROM country ORDER BY name";
+$query = mysql_query($sql);
+while ($row = mysql_fetch_array($query))
+{       
+        echo "<option value=\"" . country($row['name']) . "\">" . $row['name'] . \
"</option>\n"; +}
+?>
+</select><br />
+<label for="version">KDE Version:</label>
+<select size="1" name="version" title="Version" id="version">
+<option value="kde30">KDE 3.0</option>
+<option value="kde31">KDE 3.1</option>
+<option value="kde32">KDE 3.2</option>
+</select><br />
+<label for="rating">Rate how well Konqueror works with the site:</label>
+<select size="1" name="rating" title="Rating" id="rating">
+<option value="four">Perfectly</option>
+<option value="three">Very well, with minor problems</option>
+<option value="two">UserAgent needs changing</option>
+<option value="one">Not at all</option>
+</select><br />
+<label for="comment">Comments:</label>
+<textarea rows="4" cols="70" name="comment" id="comment"></textarea><br />
+<label for="submitter">Submitter Name:</label>
+<input type="text" name="submitter" id="submitter" /><br />
+<label for="email">Submitter E-Mail:</label>
+<input type="text" name="email" id="email" /><br />
+<input type="submit" value="Submit" />
+</form>
+
+<?php
+ include("footer.inc");
+?>
diff --git a/banking/submit.php b/banking/submit.php
new file mode 100644
index 0000000..f6a8f4d
--- /dev/null
+++ b/banking/submit.php
@@ -0,0 +1,64 @@
+<?php
+  $site_root = "../";
+  $page_title = "Konqueror - Online Banking";
+  include("konqueror.inc");
+  include("header.inc");
+  include("common.inc");
+?>
+
+<?php
+	if (isset($_POST['new']))
+	{
+?>
+
+<?php
+	$name = addslashes($_POST['nameofbank']);
+	$url = addslashes($_POST['url']);
+	$country = country($_POST['country']);
+	$version = $_POST['version'];
+	$rating = $_POST['rating'];
+	$comment = addslashes($_POST['comment']);
+	$submitter = addslashes($_POST['submitter']);
+	$email = addslashes($_POST['email']);
+
+	$sql = "INSERT INTO banks (id, name, url, country) VALUES (NULL, '$country', \
'$url', '$name')"; +	mysql_query($sql) or die("MySQL Error: " . mysql_error());
+
+	$sql = "SELECT id FROM banks ORDER BY id DESC LIMIT 1";
+	$query = mysql_query($sql) or die ("MySQL Error: " . mysql_error());
+	$row = mysql_fetch_array($query);
+	$id = $row['id'];
+
+	$sql = "INSERT INTO compat (bank, comment, $version, display) VALUES ($id, \
'$comment', '$rating', '0')"; +	mysql_query($sql) or die("MySQL Error: " . \
mysql_error()); +	$sql = "INSERT INTO submitter VALUES ($id, '$submitter', \
'$email')"; +	mysql_query($sql) or die("MySQL Errord: " . mysql_error());
+
+	$body = "Moderate at http://www.konqueror.org/banking/moderate.php";
+	$title = "Konqueror Banking New Entry";
+?>
+
+<?php
+	}
+	else if (isset($_POST['edit']))
+	{
+?>
+
+<?php
+	$body = "Moderate at http://www.konqueror.org/banking/moderate.php";
+	$title = "Konqueror Banking Edited Entry";
+?>
+
+<?php
+	}
+?>
+
+<p>Thank you for your submission, it will be checked and will appear on the site \
shortly.</p> +
+<?php
+	mail("kde-www@kde.org", $title, $body);
+?>
+
+<?php
+ include("footer.inc");
+?>
diff --git a/componentstutorial/img/step1.png b/componentstutorial/img/step1.png
new file mode 100644
index 0000000..4b1e1db
Binary files /dev/null and b/componentstutorial/img/step1.png differ
diff --git a/componentstutorial/img/step2.png b/componentstutorial/img/step2.png
new file mode 100644
index 0000000..b454515
Binary files /dev/null and b/componentstutorial/img/step2.png differ
diff --git a/componentstutorial/img/step3.png b/componentstutorial/img/step3.png
new file mode 100644
index 0000000..b8e7788
Binary files /dev/null and b/componentstutorial/img/step3.png differ
diff --git a/componentstutorial/img/step4.png b/componentstutorial/img/step4.png
new file mode 100644
index 0000000..f74150c
Binary files /dev/null and b/componentstutorial/img/step4.png differ
diff --git a/componentstutorial/img/title.png b/componentstutorial/img/title.png
new file mode 100644
index 0000000..6da0ecc
Binary files /dev/null and b/componentstutorial/img/title.png differ
diff --git a/componentstutorial/index.php b/componentstutorial/index.php
new file mode 100644
index 0000000..a11f115
--- /dev/null
+++ b/componentstutorial/index.php
@@ -0,0 +1,123 @@
+<?php
+  $site_root = "../";
+  $page_title = "Embedded Components Tutorial - Page 1";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<div id="quicklinks">
+[ Page 1 | <a href="page2.php">2</a> | <a href="page3.php">3</a> | <a \
href="page4.php">4</a> | <a href="page5.php">5</a> | <a href="page6.php">6</a> | <a \
href="page7.php">7</a> ] +</div>
+
+<p>By <a href="mailto:granroth@kde.org">Kurt Granroth</a></p>
+
+<p>
+This tutorial will demonstrate how to convert an existing KDE application (the \
aKtion! video player) into a component suitable for embedding inside of the Konqueror \
browser. This is accomplished in four simple steps with copious code listings and \
explanations. +</p>
+
+<h2>Preface: Tutorial Conventions</h2>
+
+<h2><a name="copyright">Copyright</a></h2>
+<p>
+This tutorial is Copyright (C) 2000 Kurt Granroth
+&lt;<a href="mailto:granroth@kde.org">granroth@kde.org</a>&gt;.
+All rights reserved.
+</p>
+
+<h2><a name="history">Version History</a></h2>
+<p>
+1.0 (Jan 03, 2000) - Initial Version<br />
+1.1 (Jan 25, 2000) - Converted to KParts<br />
+1.2 (Mar 03, 2000) - Change to new KParts::BrowserExtension
+</p>
+
+<h2><a name="sections">Sections</a></h2>
+<p>
+Most steps in the tutorial will have at least four sections:<br />
+<b>The Plan</b><br />
+This section tells you what you will be doing in this step
+</p>
+
+<p>
+<b>Line By Line</b><br />
+This section will go into the important lines of code in some detail.
+It will address only those lines of code that need explaining.</p>
+
+<p>
+<b>Visible Result</b><br />
+This section contains a screenshot of the example app as it should
+appear after the current step</p>
+
+<p>
+<b>Practical Matters</b><br />
+If you are reading this tutorial, it is likely because you want to use
+this knowledge in your own application.  Tutorials are necessarily
+very dependent on one example application, however.  This section
+tries to bring to light any practical matters that you should keep in
+mind when transferring the procedure used for the example app to to
+your own app.</p>
+
+
+<h2><a name="remember">Things to Remember</a></h2>
+<p>
+Every now and then, a point will come up that the author thinks is
+very important to remember.  This information will often be repeated
+in a small box like so:
+</p>
+
+<center>
+<table border="0" cellspacing="0" cellpadding="0">
+<tr><td bgcolor="#000000">
+<table border="0" align="center" cellspacing="2" cellpadding="0" width="100%">
+<tr><td bgcolor="#FFCCCC">
+<b>Thing To Remember:</b><br />
+Important points will often appear in boxes like this
+</td></tr></table>
+</td></tr></table>
+</center>
+
+
+<h2><a name="listing">Code Listing</a></h2>
+<p>
+Most sections will have quite a bit of code listed.  Individual lines
+will usually be listed like so:
+</p>
+
+<pre><b>
+some_code = new IndividualLine(of_code);
+</b></pre>
+
+<p>
+Listings that exceed a few lines of code (entire files, for instance)
+will be displayed in a box as shown below.  The lines that the author
+feels are important will be highlighted in bold.
+</p>
+
+<p>
+&nbsp;<b><u>Listing Description</u></b>
+</p>
+<table border="0" cellspacing="0" cellpadding="0">
+<tr><td bgcolor="#000000">
+<table border="0" align="center" cellspacing="2" cellpadding="0" width="100%">
+<tr><td bgcolor="#C0C0C0">
+<pre>
+class ExampleClass: public ParentClass
+{
+    Q_OBJECT
+public:
+    ExampleClass(QWidget *parent, const char *name);
+    virtual ~AktionKonqView();
+
+<b>    virtual void someImportantMethod();</b>
+
+private:
+    QWidget *widget;
+
+<b>    NewWidget *m_newWidget;</b>
+};
+</pre>
+</td></tr></table></td></tr></table>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/componentstutorial/menu.inc b/componentstutorial/menu.inc
new file mode 100644
index 0000000..9d15318
--- /dev/null
+++ b/componentstutorial/menu.inc
@@ -0,0 +1,9 @@
+<?php
+$this->appendLink("Part 1", "index.php");
+$this->appendLink("Part 2", "page2.php");
+$this->appendLink("Part 3", "page3.php");
+$this->appendLink("Part 4", "page4.php");
+$this->appendLink("Part 5", "page5.php");
+$this->appendLink("Part 6", "page6.php");
+$this->appendLink("Part 7", "page7.php");
+?>
diff --git a/componentstutorial/page2.php b/componentstutorial/page2.php
new file mode 100644
index 0000000..a6abd57
--- /dev/null
+++ b/componentstutorial/page2.php
@@ -0,0 +1,96 @@
+<?php
+  $site_root = "../";
+  $page_title = "Embedded Components Tutorial - Page 2";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<div id="quicklinks">
+[ Page 1 | <a href="page2.php">2</a> | <a href="page3.php">3</a> | <a \
href="page4.php">4</a> | <a href="page5.php">5</a> | <a href="page6.php">6</a> | <a \
href="page7.php">7</a> ] +</div>
+
+<h2>Introducing aKtion!</h2>
+
+<h2><a name="plan">Introduction</a></h2>
+<p>
+If you have used konqueror at all, you have no doubt noticed its
+ability to "embed" components for viewing certain types of files.  The
+two best known examples are viewing images using the embedded kview
+and viewing postscript or PDF files using kghostview.
+</p>
+<p>
+The technology behind the embedding is pretty impressive... but the
+authors took great pains to make the API as easy to use as possible.
+In fact, this tutorial will show you just how incredibly easy it is to
+convert an existing application into an embedded component.  It will
+take exactly four tiny steps!
+</p>
+<p>
+The four steps are as follows:
+</p>
+<ol>
+<li>Convert application to shared library (simple change in Makefile)</li>
+<li>Add boilerplate KParts component (add one standard file)</li>
+<li>Connect existing app to KParts (a few lines of code)</li>
+<li>Add toolbar and menu entries (a few more lines of code)</li>
+</ol>
+
+<p>
+It took this author exactly 15 minutes to convert the example
+application to an embedded component.. and it took that long only
+because of some quirks in the existing app.  The conversion to
+KParts was trivial.
+</p>
+
+<h2><a name="aktion">Introducing aKtion!</a></h2>
+<p>
+The application that this tutorial will use as it's example is
+'aKtion!'  aKtion is a KDE video player based on xanim.  It can play
+most common forms of animation (AVI, Quicktime, MPEG, etc).  With the
+conclusion of this tutorial, it will be able to play those animations
+inside of Konqueror!
+</p>
+<p>
+There is one small catch to this: you must start with the version of
+aKtion supplied with this tutorial.  There are two "official" versions
+of aKtion.  One is still based on KDE 1.x and is not suitable for
+KParts.  The other is in kdemultimedia and is already converted to
+KParts!  So, if you want to follow along, use
+<a href="aktion-1.99-base.tar.gz">this</a> version.
+</p>
+
+<h2><a name="started">Getting Started</a></h2>
+<p>
+The first step is to get the aKtion source package compiled and
+installed just to test what it currently does.  This assumes that you
+have a working KDE2 development system.  If you do not, read this
+first!
+</p>
+
+<p>
+Follow these steps:
+</p>
+
+<ol>
+<li>Unpack the aKtion source package<br />
+<pre>
+% gzip -dc aktion-1.99.tar.gz | tar xvpf -
+</pre>
+</li>
+<li>Build and install it<br />
+<pre>
+% cd aktion-1.99 &amp;&amp; ./configure &amp;&amp; make &amp;&amp; make install
+</pre>
+</li>
+</ol>
+
+<p>
+Now find an animation file somewhere -- either on your local hard
+drive or on the web and click on it.  You should see that Konqueror
+will download the file (if it is remote) and pass it to aKtion to
+play.  Pretty standard, huh?
+</p>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/componentstutorial/page3.php b/componentstutorial/page3.php
new file mode 100644
index 0000000..6516398
--- /dev/null
+++ b/componentstutorial/page3.php
@@ -0,0 +1,202 @@
+<?php
+  $site_root = "../";
+  $page_title = "Embedded Components Tutorial - Page 3";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<div id="quicklinks">
+[ Page 1 | <a href="page2.php">2</a> | <a href="page3.php">3</a> | <a \
href="page4.php">4</a> | <a href="page5.php">5</a> | <a href="page6.php">6</a> | <a \
href="page7.php">7</a> ] +</div>
+
+<h2>Converting aKtion to a Shared Library</h2>
+
+<h2 id="plan">The Plan</h2>
+<p>
+The first real step to converting an existing application to an
+embedded component is to turn it into a shared library.  An important
+thing to keep in mind is that this will not change the way you use the
+program currently.  There will still be a standalone executable called
+<tt>aktion</tt> that you can run.  The only difference at this point
+is that the <tt>aktion</tt> executable won't have all of its code
+compiled in -- it will load it all dynamically.
+</p>
+<p>
+A second important thing to note is that this does not require
+<em>any</em> code changes.  The only changes necessary are are a few
+simple lines in the Makefile.  To be specific, the file to modify
+isn't <tt>Makefile</tt> -- it is <tt>Makefile.am</tt>.  This is
+because aKtion, like all good KDE programs, uses the automake/autoconf
+system to automate Makefile creation.  In this system,
+<tt>Makefile.in</tt> and <tt>Makefile</tt> are both created based on
+<tt>Makefile.am</tt>
+</p>
+
+<center>
+<table border="0" cellspacing="0" cellpadding="0">
+<tr><td bgcolor="#000000">
+<table border="0" align="center" cellspacing="2" cellpadding="0" width="100%">
+<tr><td bgcolor="#FFCCCC">
+<b>Thing To Remember:</b><br />The <em>only</em> file that you need to
+change is <tt>Makefile.am</tt>
+</td></tr></table>
+</td></tr></table>
+</center>
+
+<p>
+Here are the lines from the Makefile that you will need to change.
+</p>
+
+<b id="old_makefile"><u>OLD: aktion-1.99/src/Makefile.am</u></b>
+<table border="0" cellspacing="0" cellpadding="0">
+<tr><td bgcolor="#000000">
+<table border="0" align="center" cellspacing="2" cellpadding="0" width="100%">
+<tr><td bgcolor="#C0C0C0">
+<pre>
+<b>
+# this is the program that gets installed.  it's name is used for all
+# of the other Makefile.am variables
+bin_PROGRAMS = aktion
+
+aktion_SOURCES = main.cpp aktionConf.cpp capture.cpp  \
+                 aktionVm.cpp kxanim.cpp principal.cpp
+aktion_LDFLAGS = $(all_libraries) $(KDE_RPATH)
+aktion_LDADD   = $(LIB_KFILE) $(LIBVM)
+</b>
+</pre>
+</td></tr></table></td></tr></table>
+<p>
+Those lines basically say "to create the binary program 'aktion', use
+the source files specified with <b>aktion_SOURCES</b>, the link flags
+specified with <b>aktion_LDFLAGS</b>, and the libraries specified with
+<b>aktion_LDADD</b>"
+</p>
+<p>
+As mentioned earlier, you need to change this so that the Makefile
+generates a shared library instead of one standalone executable.
+</p>
+<p>
+Here is the result of the replacement:
+</p>
+
+<b id="new_makefile"><u>NEW: aktion-1.99/src/Makefile.am</u></b>
+<table border="0" cellspacing="0" cellpadding="0">
+<tr><td bgcolor="#000000">
+<table border="0" align="center" cellspacing="2" cellpadding="0" width="100%">
+<tr><td bgcolor="#C0C0C0">
+<pre>
+<b>
+# since the "real" aktion is a library, we start constructing the
+# stuff for it
+lib_LTLIBRARIES = libaktion.la
+bin_PROGRAMS    = aktion
+
+libaktion_la_SOURCES = main.cpp aktionConf.cpp capture.cpp  \
+                       aktionVm.cpp kxanim.cpp principal.cpp
+libaktion_la_LDFLAGS = $(all_libraries) -version-info 1:0:0 -module
+libaktion_la_LIBADD  = $(LIB_KFILE) $(LIBVM)
+
+aktion_LDFLAGS = $(KDE_RPATH)
+aktion_SOURCES = main.cpp
+aktion_LDADD   = libaktion.la
+</b>
+</pre>
+</td></tr></table>
+</td></tr></table>
+
+
+<h2 id="linebyline">Line by Line Analysis</h2>
+<p>
+What is happening in the above lines?  Here is what each group means:
+</p>
+
+<ol>
+<li>Specify the outputs
+
+<pre>
+<b>
+bin_PROGRAMS    = aktion
+lib_LTLIBRARIES = libaktion.la
+</b>
+</pre>
+<p>
+These two lines detail what are the outputs.  Specifically, they
+are an executable (specified with 'bin_PROGRAMS') called aktion and
+a shared library (specified with 'lib_LTLIBRARIES') called
+libaktion.la.
+</p>
+<p>
+All Makefile variables after these will depend on those names.  For
+instance, all variables that pertain to the executable will be in
+the form 'aktion_<em>SOMEVARIABLE</em>' and all variables that apply to the
+shared library will look like 'libaktion_la_<em>SOMEVARIABLE</em>'
+</p>
+</li>
+<li>Convert former executable variables to shared library variables
+<pre>
+<b>
+libaktion_la_SOURCES = main.cpp aktionConf.cpp capture.cpp  \
+                       aktionVm.cpp kxanim.cpp principal.cpp
+libaktion_la_LDFLAGS = $(all_libraries) -version-info 1:0:0 -module
+libaktion_la_LIBADD  = $(LIB_KFILE) $(LIBVM) -lkparts
+</b>
+</pre>
+<p>
+You may notice that there are only three changes to the variables,
+here.
+</p>
+<p>
+First:  They are all preceded with libaktion_la_ instead of aktion_.<br />
+Reason: Everything is a shared library, now.
+</p>
+<p>
+Second: The LDFLAGS variable has the additional '-version-info
+         1:0:0 -module'<br />
+Reason: Those are standard flags that are needed to create the
+        shared library.  You shouldn't have to change them.
+</p>
+
+<p>
+Third:  The LDADD variable is now called LIBADD<br />
+Reason: Same reason as the first -- this is a shared library now
+</p>
+</li>
+
+<li>Create a standalone executable
+<pre>
+<b>
+aktion_LDFLAGS = $(KDE_RPATH)
+aktion_SOURCES = main.cpp
+aktion_LDADD   = libaktion.la
+</b>
+</pre>
+
+<p>
+Since all of the code is now in a shared library, the standalone
+executable now needs only a main() function (found in main.cpp in
+aKtion) and a pointer to the shared library.
+</p>
+</li>
+</ol>
+<p>
+That's it.  If you build and install this, you'll notice that it works
+exactly the same as before.  The only differences you should see is
+that the 'aktion' file is much smaller than before and there is an
+additional library in <em>$KDEDIR</em>/lib
+</p>
+
+<h2 id="visible">Visible Result</h2>
+<p>
+<img src="img/step1.png" alt="Step 1" width="198" height="195" />
+</p>
+
+<h2 id="practical">Practical Matters</h2>
+<p>
+If your own application uses a standard automake like the one above,
+then converting it to a shared library uses exactly the same steps
+(and code).  There is nothing specific to aKtion in this procedure.
+</p>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/componentstutorial/page4.php b/componentstutorial/page4.php
new file mode 100644
index 0000000..20792af
--- /dev/null
+++ b/componentstutorial/page4.php
@@ -0,0 +1,511 @@
+<?php
+  $site_root = "../";
+  $page_title = "Embedded Components Tutorial - Page 4";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<div id="quicklinks">
+[ Page 1 | <a href="page2.php">2</a> | <a href="page3.php">3</a> | <a \
href="page4.php">4</a> | <a href="page5.php">5</a> | <a href="page6.php">6</a> | <a \
href="page7.php">7</a> ] +</div>
+
+<h2>Add Boilerplate KParts Code</h2>
+
+<h2 id="plan">The Plan</h2>
+<p>
+In this step, you will convert aKtion into an embedded component using
+"standard" boilerplate code.  After this step, when you click on an
+animation file, it will embed aKtion instead of spawning it off in a
+separate process.  Since no aKtion specific code is used in this step,
+it won't actually play the animation -- that's reserved for
+<a href="page3.php">step 3</a>.
+</p>
+<p>
+The code in this step is completely generic.  You can drop it into any
+application with no modifications!
+</p>
+<p>
+You will do this in three baby steps:
+</p>
+<ol>
+<li>Add the aktion_part.cpp and aktion_part.h files</li>
+<li>Modify the Makefile.am to reflect the new files</li>
+<li>Modify the aktion.desktop file to indicate that it is an embedded
+component</li>
+</ol>
+
+
+<h2 id="files">Add KParts Files</h2>
+<p>
+Add the following two files to your project with no modifications.
+</p>
+<b><u>aktion_part.h</u></b>
+<table border="0" cellspacing="0" cellpadding="0">
+<tr><td bgcolor="#000000">
+<table border="0" align="center" cellspacing="2" cellpadding="0" width="100%">
+<tr><td bgcolor="#c0c0c0">
+<pre>
+#ifndef __aktion_part_h__
+#define __aktion_part_h__
+
+#include &lt;kparts/browserextension.h&gt;
+#include &lt;klibloader.h&gt;
+
+class KInstance;
+class AktionBrowserExtension;
+<b>class QLabel;</b>
+
+class AktionFactory : public KLibFactory
+{
+    Q_OBJECT
+public:
+    AktionFactory();
+    virtual ~AktionFactory();
+
+    virtual QObject* create(QObject* parent = 0, const char* name = 0,
+                            const char* classname = "QObject",
+                            const QStringList &amp;args = QStringList());
+
+    static KInstance *instance();
+
+private:
+    static KInstance *s_instance;
+};
+
+class AktionPart: public KParts::ReadOnlyPart
+{
+    Q_OBJECT
+public:
+    AktionPart(QWidget *parent, const char *name);
+    virtual ~AktionPart();
+
+protected:
+    virtual bool openFile();
+
+private:
+    <b>QLabel *widget;</b>
+    AktionBrowserExtension *m_extension;
+};
+
+class AktionBrowserExtension : public KParts::BrowserExtension
+{
+    Q_OBJECT
+    friend class AktionPart;
+public:
+    AktionBrowserExtension(AktionPart *parent);
+    virtual ~AktionBrowserExtension();
+};
+
+#endif
+</pre>
+</td></tr></table></td></tr></table>
+
+<b><u>aktion_part.cpp</u></b>
+<table border="0" cellspacing="0" cellpadding="0">
+<tr><td bgcolor="#000000">
+<table border="0" align="center" cellspacing="2" cellpadding="0" width="100%">
+<tr><td bgcolor="#c0c0c0">
+<pre>
+#include "aktion_part.h"
+
+#include &lt;kinstance.h&gt;
+#include &lt;klocale.h&gt;
+#include &lt;kaboutdata.h&gt;
+
+#include &lt;qlabel.h&gt;
+
+extern "C"
+{
+    /**
+     * This function is the 'main' function of this part.  It takes
+     * the form 'void *init_lib&lt;library name&gt;()  It always returns a
+     * new factory object
+     */
+    void *init_libaktion()
+    {
+        return new AktionFactory;
+    }
+};
+
+/**
+ * We need one static instance of the factory for our C 'main'
+ * function
+ */
+KInstance *AktionFactory::s_instance = 0L;
+
+AktionFactory::AktionFactory()
+{
+}
+
+AktionFactory::~AktionFactory()
+{
+    if (s_instance)
+        delete s_instance;
+
+    s_instance = 0;
+}
+
+QObject *AktionFactory::create(QObject *parent, const char *name, const char*,
+                               const QStringList&amp; )
+{
+    QObject *obj = new AktionPart((QWidget*)parent, name);
+    emit objectCreated(obj);
+    return obj;
+}
+
+KInstance *AktionFactory::instance()
+{
+    if ( !s_instance )
+    {
+        KAboutData about("aktion", I18N_NOOP("aKtion"), "1.99");
+        s_instance = new KInstance(&amp;about);
+    }
+    return s_instance;
+}
+
+AktionPart::AktionPart(QWidget *parent, const char *name)
+    : KParts::ReadOnlyPart(parent, name)
+{
+    setInstance(AktionFactory::instance());
+
+    // create a canvas to insert our widget
+    QWidget *canvas = new QWidget(parent);
+    canvas-&gt;setFocusPolicy(QWidget::ClickFocus);
+    setWidget(canvas);
+
+    m_extension = new AktionBrowserExtension(this);
+
+<b>    // as an example, display a blank white widget
+    widget = new QLabel(canvas);
+    widget-&gt;setText("aKtion!");
+    widget-&gt;setAutoResize(true);
+    widget-&gt;show();</b>
+}
+
+AktionPart::~AktionPart()
+{
+    closeURL();
+}
+
+bool AktionPart::openFile()
+{
+    widget-&gt;setText(m_file);
+
+    return true;
+}
+
+bool AktionPart::closeURL()
+{
+    return true;
+}
+
+AktionBrowserExtension::AktionBrowserExtension(AktionPart *parent)
+    : KParts::BrowserExtension(parent, "AktionBrowserExtension")
+{
+}
+
+AktionBrowserExtension::~AktionBrowserExtension()
+{
+}
+</pre>
+</td></tr></table></td></tr></table>
+
+
+<h2 id="linebylinefactory">Line By Line: Factory</h2>
+<p>
+All KParts components need to construct two classes: A factory
+class derived from KLibFactory and a view class derived from
+KParts::ReadOnlyPart.  In this tutorial, they are:
+</p>
+<pre><b>
+#include &lt;kparts/browserextension.h&gt;
+#include &lt;klibloader.h&gt;
+class AktionFactory : public KLibFactory
+class AktionPart : public KParts::ReadOnlyPart
+</b></pre>
+<p>
+The factory object is responsible for instantiating the components and
+returning a pointer to them.  This is how Konqueror gets a reference
+to your component.
+</p>
+<p>
+The entire process start here:
+</p>
+<pre><b>
+    void *init_libaktion()
+    {
+        return new AktionFactory;
+    }
+</b></pre>
+<p>
+This is the first function that is called in the loading process.  The
+form of the name is <b>void *init_<em>libyourapp</em>()</b>  Keep the
+part after init_ in mind -- that is the string you will use in the
+X-KDE-Library entry <a href="#enable">later on</a>.  This function
+always returns a new instance of your factory object
+</p>
+<p>
+You also need to overload two functions in the factory class:
+<b>create()</b> and <b>instance()</b>.
+</p>
+<p>
+<pre><b>
+QObject *AktionFactory::create(QObject *parent, const char *name, const char*,
+                               const QStringList& )
+{
+    QObject *obj = new AktionPart((QWidget*)parent, name);
+    emit objectCreated(obj);
+    return obj;
+}
+</b></pre>
+<p>
+The <tt>create()</tt> function is called each time your component is
+needed.  It is responsible for instantiating a new view object and
+returning it.
+</p>
+<pre><b>
+KInstance *AktionFactory::instance()
+{
+    if ( !s_instance )
+    {
+        KAboutData about("aktion", I18N_NOOP("aKtion"), "1.99");
+        s_instance = new KInstance(&amp;about);
+    }
+    return s_instance;
+}
+</b></pre>
+<p>
+The <tt>instance()</tt> function returns an instance of type
+KInstance.  The above code is very standard.  Just use it.
+</p>
+<center>
+<table border="0" cellspacing="0" cellpadding="0">
+<tr><td bgcolor="#000000">
+<table border=0 align="center" cellspacing="2" cellpadding="0" width="100%">
+<tr><td bgcolor="#ffcccc">
+<b>Things To Remember:</b><br />
+From a practical point of view, all of the factory code is cut and
+paste.  Change the references to aktion and Aktion to your own naming
+convention and you are set (e.g., <tt>s/aktion/yourapp</tt>,
+<tt>s/Aktion/YourApp</tt>)
+</td></tr></table>
+</td></tr></table>
+</center>
+
+
+<h2 id="linebylineview">Line By Line: View</h2>
+<p>
+There are six methods that you need to overload for your view class...
+but a <em>lot</em> of the code is very cut and paste.  The code in
+bold (related to QLabel) is the <em>only</em> application specific
+code in the view class!  Here is what each function is doing:
+</p>
+<pre><b>
+AktionPart::AktionPart(QWidget *parent, const char *name)
+    : KParts::ReadOnlyPart(parent, name)
+{
+    setInstance(AktionFactory::instance());
+
+    // create a canvas to insert our widget
+    QWidget *canvas = new QWidget(parent);
+    canvas-&gt;setFocusPolicy(QWidget::ClickFocus);
+    setWidget(canvas);
+
+    m_extension = new AktionBrowserExtension(this);
+
+    // as an example, display a blank white widget
+    widget = new QLabel(this);
+    widget-&gt;setText("aKtion!");
+    widget-&gt;setAutoResize(true);
+    widget-&gt;show();
+}
+</b></pre>
+<p>
+The constructor is responsible for initializing your internal
+variables as well as your "workhorse" object.  Typically, you do not
+do much processing inside of your KParts derived class.  Rather,
+you have an existing class that has all of the functionality and you
+just use that inside of your view class.  In this example, a QLabel
+label is used just so there is <em>something</em> displayed when you
+run it.
+</p>
+<p>
+Notice that a blank "canvas" is the main widget.  This is because
+Konqueror will resize the component to the full width of the view.  In
+many cases, you will want to control the size of your component;
+both the QLabel and the actual aKtion component are examples of this.
+In this case, you set a blank widget as the resized widget and just
+use that as the parent of your "real" class.
+</p>
+<pre><b>
+bool AktionPart::openFile()
+{
+    widget-&gt;setText(m_file);
+
+    return true;
+}
+</b></pre>
+<p>
+The <tt>openFile</tt> method is arguably the most important method in
+this class.  It is what is called when Konqueror wants your
+application to display a file.  There is a lot going on behind the
+scenes of this function, though.  The KParts framework itself handles
+all file downloads.  That means that by the time <tt>openFile</tt> is
+called, the file to play is already local.
+</p>
+<p>
+Note that if your application can handle remote URLs already, then you
+can overload the <tt>openURL</tt> function instead of
+<tt>openFile</tt>
+</p>
+<pre><b>
+    widget-&gt;setText(m_file);
+</b></pre>
+<p>
+The <tt>m_file</tt> variable is set by the KParts framework.  It is a
+QString with a path (not a URL) to a local file.  If the original URL
+was a local file, then it will be a path to the actual file.  If it
+the original URL was remote, then the path will likely be in the /tmp
+directory.
+</p>
+<center>
+<table border="0" cellspacing="0" cellpadding="0">
+<tr><td bgcolor="#000000">
+<table border="0" align="center" cellspacing="2" cellpadding="0" width="100%">
+<tr><td bgcolor="#ffcccc">
+<b>Things To Remember:</b><br />
+Most of the parts code is cut and paste, also.  Just rename the
+references to "aktion" and "Aktion" and insert your own widget in the
+place of <tt>widget</tt> and you're set.
+</td></tr></table>
+</td></tr></table>
+</center>
+
+
+<h2 id="build">Building the Component</h2>
+<b><u>Makefile.am</u></b>
+<table border="0" cellspacing="0" cellpadding="0">
+<tr><td bgcolor="#000000">
+<table border="0" align="center" cellspacing="2" cellpadding="0" width="100%">
+<tr><td bgcolor="#c0c0c0">
+<pre>
+# since the "real" aktion is a library, we start constructing the
+# stuff for it
+bin_PROGRAMS    = aktion
+lib_LTLIBRARIES = libaktion.la
+
+libaktion_la_SOURCES = main.cpp aktionConf.cpp capture.cpp  \
+                       aktionVm.cpp kxanim.cpp principal.cpp \
+                       <b>aktion_part.cpp</b>
+libaktion_la_LDFLAGS = $(all_libraries) -version-info 1:0:0 -module
+libaktion_la_LIBADD  = $(LIB_KFILE) $(LIBVM) <b>-lkparts</b>
+
+aktion_SOURCES = main.cpp
+aktion_LDADD   = libaktion.la
+
+# these are the headers for your project
+noinst_HEADERS = principal.h aktionConf.h kxanim.h capture.h aktionVm.h \
+                 <b>aktion_part.h</b>
+</pre>
+</td></tr></table></td></tr></table>
+<p>
+The two parts files that you just added to the project need to be added
+to the Makefile just like any other file.. and are done so above. You
+also need to link to the KParts library since we make extensive use of
+it now.
+</p>
+<center>
+<table border="0" cellspacing="0" cellpadding="0">
+<tr><td bgcolor="#000000">
+<table border="0" align="center" cellspacing="2" cellpadding="0" width="100%">
+<tr><td bgcolor="#ffcccc">
+<b>Things To Remember:</b><br />
+To build an embedded component, you need only to add:<br />
+1. Your "parts" files to _SOURCES and _HEADERS<br />
+2. The <b>-lkparts</b> library to _LIBADD
+</td></tr></table>
+</td></tr></table>
+</center>
+
+
+<h2 id="enable">Letting "The System" Know of the Component</h2>
+<b><u>aktion.desktop</u></b>
+<table border="0" cellspacing="0" cellpadding="0">
+<tr><td bgcolor="#000000">
+<table border="0" align="center" cellspacing="2" cellpadding="0" width="100%">
+<tr><td bgcolor="#c0c0c0">
+<pre>
+[Desktop Entry]
+Name=aKtion!
+Exec=aktion %i %m -caption "%c"
+Icon=aktion
+<b>MimeType=video/mpeg;video/x-msvideo;video/quicktime;video/x-flic;</b>
+Type=Application
+DocPath=aktion/aktion.html
+Comment=Video Player
+Comment[es]=Reproductor de videos
+Terminal=0
+<b>ServiceTypes=Browser/View
+X-KDE-Library=libaktion</b>
+</pre>
+</td></tr></table></td></tr></table>
+<p>
+So far, you've made all the changes necessary to make aKtion an
+embedded component (albeit one that doesn't do much).. but there is no
+way (yet) for Konqueror to know that when it clicks on a Quicktime
+file, it should embed the component instead of spawning an external
+viewer.
+</p>
+<p>
+This is where the aktion.desktop file comes in to play.  When you
+install the desktop file, the KDE mimetypes system becomes aware of
+all of its fields (if it doesn't do it immediately, you can force a
+reload by running the <tt>kbuildsycoca</tt> command).  The three that
+matter in this case or the <b>MimeType</b>, <b>ServiceTypes</b>, and
+<b>X-KDE-Library</b> entries.</p>
+
+<pre><b>
+MimeType=video/mpeg;video/x-msvideo;video/quicktime;video/x-flic;
+ServiceTypes=Browser/View
+X-KDE-Library=libaktion
+</b></pre>
+<p>
+These lines tell the mimetypes system that aKtion can handle the
+mimetypes specified in MimeType; it implements an embedded component
+of type Browser/View; and the name of the component is libaktion.</p>
+<p>
+When Konqueror is asked to execute a Quicktime file, it asks the
+mimetype system for a corresponding app that can handle
+<tt>video/quicktime</tt>.  It also asks if the app can handle
+"Browser/View" embedding.  When a pointer to aKtion is returned, it
+uses X-KDE-Library to tell it that the component it needs to load is
+'libaktion'.
+</p>
+<center>
+<table border="0" cellspacing="0" cellpadding="0">
+<tr><td bgcolor="#000000">
+<table border="0" align="center" cellspacing="2" cellpadding="0" width="100%">
+<tr><td bgcolor="#ffcccc">
+<b>Things To Remember:</b><br />
+To "enable" your embedded component, you need to have a <tt>.desktop</tt>
+file with:<br />
+1. A <b>MimeType</b> entry with your supported mimetypes<br />
+2. A <b>ServiceTypes=Browser/View</b> entry (exactly like that)<br />
+3. A <b>X-KDE-Library=lib<em>yourapp</em></b> entry
+</td></tr></table>
+</td></tr></table>
+</center>
+
+<h2 id="visible">Visible Result</h2>
+<img src="img/step2.png" alt="Step 2" width="367" height="166" />
+
+<h2 id="practical">Practical Matters</h2>
+<p>
+If your own application uses a standard automake like the one above,
+then converting it to a shared library uses exactly the same steps
+(and code).  There is little specific to aKtion in this procedure.
+</p>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/componentstutorial/page5.php b/componentstutorial/page5.php
new file mode 100644
index 0000000..18e9878
--- /dev/null
+++ b/componentstutorial/page5.php
@@ -0,0 +1,280 @@
+<?php
+  $site_root = "../";
+  $page_title = "Embedded Components Tutorial - Page 5";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<div id="quicklinks">
+[ Page 1 | <a href="page2.php">2</a> | <a href="page3.php">3</a> | <a \
href="page4.php">4</a> | <a href="page5.php">5</a> | <a href="page6.php">6</a> | <a \
href="page7.php">7</a> ] +</div>
+
+<h2>Making the Component Functional</h2>
+
+<h2 id="plan">The Plan</h2>
+<p>
+You're on the home stretch now.  You have a fully working embedded
+component -- you just need to make it do something!
+</p>
+<p>
+This step is one of the shortest ones in this tutorial but will likely
+be the hardest in real use.  This is where you need to connect your
+applications functionality to the KParts interface.
+</p>
+<p>
+In the case of aKtion, nearly all of the actual "playing" code is
+encapsulated in the KXAnim class.  This made it very easy to use in a
+KParts interface.  All that was needed was to replace the QLabel
+example with KXAnim and everything worked (mostly).
+</p>
+
+
+<h2 id="files">The Files</h2>
+&nbsp;<b><u>aktion_part.h</u></b>
+<table border="0" cellspacing="0" cellpadding="0">
+<tr><td bgcolor="#000000">
+<table border="0" align="center" cellspacing="2" cellpadding="0" width="100%">
+<tr><td bgcolor="#c0c0c0">
+<pre>
+#ifndef __aktion_part_h__
+#define __aktion_part_h__
+
+#include &lt;kparts/browserextension.h&gt;
+#include &lt;klibloader.h&gt;
+
+class KInstance;
+<b>class KXAnim;</b>
+class AktionBrowserExtension;
+
+class AktionFactory : public KLibFactory
+{
+    Q_OBJECT
+public:
+    AktionFactory();
+    virtual ~AktionFactory();
+
+    virtual QObject* create(QObject* parent = 0, const char* name = 0,
+                            const char* classname = "QObject",
+                            const QStringList &amp;args = QStringList());
+
+    static KInstance *instance();
+
+private:
+    static KInstance *s_instance;
+};
+
+class AktionPart: public KParts::ReadOnlyPart
+{
+    Q_OBJECT
+public:
+    AktionPart(QWidget *parent, const char *name);
+    virtual ~AktionPart();
+
+    virtual bool closeURL();
+
+protected:
+    virtual bool openFile();
+
+<b>protected slots:
+    void slotPlay();
+    void slotStop();</b>
+
+private:
+<b>    KXAnim *widget;</b>
+};
+
+#endif
+</pre>
+</td></tr></table><td></tr></table>
+
+&nbsp;<b><u>aktion_part.cpp</u></b>
+<table border="0" cellspacing="0" cellpadding="0">
+<tr><td bgcolor="#000000">
+<table border="0" align="center" cellspacing="2" cellpadding="0" width="100%">
+<tr><td bgcolor="#c0c0c0">
+<pre>
+#include "aktion_part.h"
+
+#include &lt;kinstance.h&gt;
+#include &lt;klocale.h&gt;
+#include &lt;kaboutdata.h&gt;
+
+<b>#include "kxanim.h"
+#include &lt;qtimer.h&gt;</b>
+
+extern "C"
+{
+    /**
+     * This function is the 'main' function of this part.  It takes
+     * the form 'void *init_lib&lt;library name&gt;()'.  It always returns a
+     * new factory object
+     */
+    void *init_libaktion()
+    {
+        return new AktionFactory;
+    }
+};
+
+/**
+ * We need one static instance of the factory for our C 'main'
+ * function
+ */
+KInstance *AktionFactory::s_instance = 0L;
+
+AktionFactory::AktionFactory()
+{
+}
+
+AktionFactory::~AktionFactory()
+{
+    if (s_instance)
+        delete s_instance;
+
+    s_instance = 0;
+}
+
+QObject *AktionFactory::create(QObject *parent, const char *name, const char*,
+                               const QStringList&amp; )
+{
+    QObject *obj = new AktionPart((QWidget*)parent, name);
+    emit objectCreated(obj);
+    return obj;
+}
+
+KInstance *AktionFactory::instance()
+{
+    if ( !s_instance )
+    {
+        KAboutData about("aktion", I18N_NOOP("aKtion"), "1.99");
+        s_instance = new KInstance(&amp;about);
+    }
+    return s_instance;
+}
+
+AktionPart::AktionPart(QWidget *parent, const char *name)
+    : KParts::ReadOnlyPart(parent, name)
+{
+    setInstance(AktionFactory::instance());
+
+    // create a canvas to insert our widget
+    QWidget *canvas = new QWidget(parent);
+    canvas-&gt;setFocusPolicy(QWidget::ClickFocus);
+    setWidget(canvas);
+
+<b>    // create our animation widget
+    widget = new KXAnim(canvas);
+    widget-&gt;setLoop(true);
+    widget-&gt;show();</b>
+}
+
+AktionPart::~AktionPart()
+{
+    slotStop();
+}
+
+bool AktionPart::openFile()
+{
+<b>    widget-&gt;setFile(m_file);
+    widget-&gt;stop();
+    widget-&gt;show();
+    QTimer::singleShot(2000, this, SLOT(slotPlay()));</b>
+
+    return true;
+}
+
+bool AktionPart::closeURL()
+{
+<b>    slotStop();</b>
+    return true;
+}
+
+<b>void AktionPart::slotPlay()
+{
+    widget-&gt;play();
+}
+
+void AktionPart::slotStop()
+{
+    widget-&gt;stop();
+}</b>
+</pre>
+</td></tr></table><td></tr></table>
+
+
+<h2 id="linebyline">Line by Line</h2>
+
+There isn't much non-aKtion specific stuff to show in this step.  The
+two major chunks of code are in the constructor and in the
+<tt>openFile</tt> method.
+
+<pre><b>
+// create our animation widget
+widget = new KXAnim(canvas);
+widget-&gt;setLoop(true);
+widget-&gt;show();
+</b></pre>
+
+This creates our animation widget and sets some default parameters.
+
+<PRE><B>
+widget-&gt;setFile(m_file);
+widget-&gt;stop();
+widget-&gt;show();
+QTimer::singleShot(2000, this, SLOT(slotPlay()));
+</B></PRE>
+
+<p>
+And this actually plays the file.  Some hackery needed to be done to
+get it to play due to some timing problems with KXAnim.
+
+And that's pretty much it!
+
+</p>
+
+<h2 id="visible">Visible Result</h2>
+
+<img src="img/step3.png" alt="Step 3" width="341" height="244" />
+
+<h2 id="practical">Practical Matters</h2>
+<p>
+As said earlier, this is one of the shorted and simplest steps in this
+example.. but could easily be the hardest in your own application.  It
+all depends on how much functionality is encapsulated in your "main"
+view object.
+</p>
+<p>
+The key to this step is to have one view object already in your
+application in which all processing of the file takes place.  If you
+have several classes that all depend on each other with no central
+"viewing" object, then you will have problems.
+</p>
+<p>
+As a case study, KGhostView was one of the hardest programs to port to
+the KParts system.  The reason for this was that all of the UI
+elements were scattered all over the application.  There was no one
+coherent interface to the UI aspects -- essentially no way for a third
+party app to "view" the same thing that KGhostView was.
+</p>
+<p>
+The solution to this was to create a view class that combined most of
+the required UI elements in one place.  After this was done, it was
+trivial to plug this view into the KParts system.
+</p>
+
+<center>
+<table border="0" cellspacing="0" cellpadding="0">
+<tr><td bgcolor="#000000">
+<table border="0" align="center" cellspacing="2" cellpadding="0" width="100%">
+<tr><td bgcolor="#ffcccc">
+<b>Things To Remember:</b><br />
+The ease of integrating your application into the KParts
+architecture depends almost entirely on how encapsulated your UI
+elements are into one coherent interface.  The less coherent, the more
+problems you will have.
+</td></tr></table>
+</td></tr></table>
+</center>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/componentstutorial/page6.php b/componentstutorial/page6.php
new file mode 100644
index 0000000..1fa449a
--- /dev/null
+++ b/componentstutorial/page6.php
@@ -0,0 +1,400 @@
+<?php
+  $site_root = "../";
+  $page_title = "Embedded Components Tutorial - Page 6";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<div id="quicklinks">
+[ Page 1 | <a href="page2.php">2</a> | <a href="page3.php">3</a> | <a \
href="page4.php">4</a> | <a href="page5.php">5</a> | <a href="page6.php">6</a> | <a \
href="page7.php">7</a> ] +</div>
+
+<H2>Finishing Off With KAction</H2>
+
+<H2><A NAME="plan">The Plan</A></H2>
+The aKtion embedded component needs only one thing, now -- it's Play,
+Stop, Forward, and Backward buttons displayed on Konqueror's toolbar
+and View menu.
+<P>
+This is done by creating "actions" corresponding to those, well,
+actions.  The resulting actions (encapsulated in the KAction class)
+can then be "plugged" or unplugged into toolbar or menubars or pretty
+much anywhere else.  The location of these actions will be described
+in an XML file.
+<P>
+As with everything else, this takes only a few lines of code.
+
+Here is the aktion_part.h file with the necessary changes in bold:
+<P>
+&nbsp;<B><U>aktion_part.h</U></B>
+<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
+<TR><TD BGCOLOR="#000000">
+<TABLE BORDER=0 ALIGN="center" CELLSPACING=2 CELLPADDING="0" WIDTH="100%">
+<TR><TD BGCOLOR="#C0C0C0">
+<PRE>
+#ifndef __aktion_part_h__
+#define __aktion_part_h__
+
+#include &lt;kparts/browserextension.h&gt;
+#include &lt;klibloader.h&gt;
+
+class KInstance;
+class KXAnim;
+class AktionBrowserExtension;
+<B>class KAction;</B>
+
+class AktionFactory : public KLibFactory
+{
+    Q_OBJECT
+public:
+    AktionFactory();
+    virtual ~AktionFactory();
+
+    virtual QObject* create(QObject* parent = 0, const char* name = 0,
+                            const char* classname = "QObject",
+                            const QStringList &amp;args = QStringList());
+
+    static KInstance *instance();
+
+private:
+    static KInstance *s_instance;
+};
+
+class AktionPart: public KParts::ReadOnlyPart
+{
+    Q_OBJECT
+public:
+    AktionPart(QWidget *parent, const char *name);
+    virtual ~AktionPart();
+
+    virtual bool closeURL();
+
+protected:
+    virtual bool openFile();
+
+protected slots:
+    void slotPlay();
+    void slotStop();
+<B>    void slotForward();
+    void slotBackward();</B>
+
+private:
+    KXAnim *widget;
+    AktionBrowserExtension *m_extension;
+
+<B>    KAction *m_playAction;
+    KAction *m_stopAction;
+    KAction *m_forwardAction;
+    KAction *m_backwardAction;</B>
+};
+
+class AktionBrowserExtension : public KParts::BrowserExtension
+{
+    Q_OBJECT
+    friend class AktionPart;
+public:
+    AktionBrowserExtension(AktionPart *parent);
+    virtual ~AktionBrowserExtension();
+};
+
+#endif
+</PRE>
+</TD></TR></TABLE><TD></TR></TABLE>
+
+<P>&nbsp;
+<CENTER>
+<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
+<TR><TD BGCOLOR="#000000">
+<TABLE BORDER=0 ALIGN="center" CELLSPACING=2 CELLPADDING="0" WIDTH="100%">
+<TR><TD BGCOLOR="#FFCCCC">
+<B>Thing To Remember:</B><BR>
+Each <em>real</em> action ("play", "cut", "quit") in your application
+should have exactly one corresponding KAction
+</TD></TR></TABLE>
+</TD></TR></TABLE>
+</CENTER>
+
+<P>
+Here is the aktion_part.cpp file with changes in bold:<BR>
+
+&nbsp;<B><U>aktion_part.cpp</U></B>
+<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
+<TR><TD BGCOLOR="#000000">
+<TABLE BORDER=0 ALIGN="center" CELLSPACING=2 CELLPADDING="0" WIDTH="100%">
+<TR><TD BGCOLOR="#C0C0C0">
+<PRE>
+#include "aktion_part.h"
+
+#include &lt;kinstance.h&gt;
+#include &lt;klocale.h&gt;
+#include &lt;kaboutdata.h&gt;
+<B>#include &lt;kaction.h&gt;</B>
+
+#include "kxanim.h"
+#include &lt;qtimer.h&gt;
+
+extern "C"
+{
+    /**
+     * This function is the 'main' function of this part.  It takes
+     * the form 'void *init_lib&lt;library name&gt;()'.  It always returns a
+     * new factory object
+     */
+    void *init_libaktion()
+    {
+        return new AktionFactory;
+    }
+};
+
+/**
+ * We need one static instance of the factory for our C 'main'
+ * function
+ */
+KInstance *AktionFactory::s_instance = 0L;
+
+AktionFactory::AktionFactory()
+{
+}
+
+AktionFactory::~AktionFactory()
+{
+    if (s_instance)
+        delete s_instance;
+
+    s_instance = 0;
+}
+
+QObject *AktionFactory::create(QObject *parent, const char *name, const char*,
+                               const QStringList&amp; )
+{
+    QObject *obj = new AktionPart((QWidget*)parent, name);
+    emit objectCreated(obj);
+    return obj;
+}
+
+KInstance *AktionFactory::instance()
+{
+    if ( !s_instance )
+    {
+        KAboutData about("aktion", I18N_NOOP("aKtion"), "1.99");
+        s_instance = new KInstance(&amp;about);
+    }
+    return s_instance;
+}
+
+AktionPart::AktionPart(QWidget *parent, const char *name)
+    : KParts::ReadOnlyPart(parent, name)
+{
+    setInstance(AktionFactory::instance());
+
+    // create a canvas to insert our widget
+    QWidget *canvas = new QWidget(parent);
+    canvas-&gt;setFocusPolicy(QWidget::ClickFocus);
+    setWidget(canvas);
+
+    m_extension = new AktionBrowserExtension(this);
+
+    // create our animation widget
+    widget = new KXAnim(this);
+    widget-&gt;setLoop(true);
+    widget-&gt;show();
+
+<B>    // create and connect our actions
+    m_playAction = new KAction(i18n("Play"), QIconSet(BarIcon("tocar",
+                               AktionFactory::instance())), 0, this,
+                               SLOT(slotPlay()), actionCollection(),
+                               "play");
+
+    m_stopAction = new KAction(i18n("Stop"), QIconSet(BarIcon("parar",
+                               AktionFactory::instance())), 0, this,
+                               SLOT(slotStop()), actionCollection(),
+                               "stop");
+
+    m_backwardAction = new KAction(i18n("Backward"),
+                                   QIconSet(BarIcon("retroceder",
+                                   AktionFactory::instance())), 0, this,
+                                   SLOT(slotBackward()), actionCollection(),
+                                   "backward");
+
+    m_forwardAction = new KAction(i18n("Forward"), QIconSet(BarIcon("avanzar",
+                                  AktionFactory::instance())), 0, this,
+                                  SLOT(slotForward()), actionCollection(),
+                                  "forward");
+
+    setXMLFile("aktion_part.rc");</B>
+}
+
+AktionPart::~AktionPart()
+{
+    slotStop();
+}
+
+bool AktionPart::openFile()
+{
+    widget-&gt;setFile(m_file);
+    widget-&gt;stop();
+    widget-&gt;show();
+    QTimer::singleShot(2000, this, SLOT(slotPlay()));
+
+    return true;
+}
+
+bool AktionPart::closeURL()
+{
+    slotStop();
+    return true;
+}
+
+void AktionPart::slotPlay()
+{
+    widget-&gt;play();
+<B>    m_playAction-&gt;setEnabled(false);
+    m_stopAction-&gt;setEnabled(true);
+    m_forwardAction-&gt;setEnabled(true);
+    m_backwardAction-&gt;setEnabled(true);</B>
+}
+
+void AktionPart::slotStop()
+{
+    widget-&gt;stop();
+<B>    m_playAction-&gt;setEnabled(true);
+    m_stopAction-&gt;setEnabled(false);
+    m_forwardAction-&gt;setEnabled(false);
+    m_backwardAction-&gt;setEnabled(false);</B>
+}
+
+<B>void AktionPart::slotForward()
+{
+    widget-&gt;stepForward();
+}
+
+void AktionPart::slotBackward()
+{
+    widget-&gt;stepBack();
+}</B>
+
+AktionBrowserExtension::AktionBrowserExtension(AktionPart *parent)
+    : KParts::BrowserExtension(parent, "AktionBrowserExtension")
+{
+}
+
+AktionBrowserExtension::~AktionBrowserExtension()
+{
+}
+</PRE>
+</TD></TR></TABLE><TD></TR></TABLE>
+
+<P>
+
+<H2><A NAME="linebyline">Line By Line</A></H2>
+Using actions always follow the same steps:
+<OL>
+<LI>Create KAction with name, icon(s), keyboard shortcut, and slot
+<LI>Connect the action with any toolbars/menubars/etc that you want it
+to display on using an XML file
+</OL>
+
+<CENTER>
+<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
+<TR><TD BGCOLOR="#000000">
+<TABLE BORDER=0 ALIGN="center" CELLSPACING=2 CELLPADDING="0" WIDTH="100%">
+<TR><TD BGCOLOR="#FFCCCC">
+<B>Thing To Remember:</B><BR>
+There are only two necessary steps to use actions with KParts<P>
+1. Create a KAction (or derived class) for each real action<BR>
+2. Connect the KAction to the toolbar/menubars in an XML file
+</TD></TR></TABLE>
+</TD></TR></TABLE>
+</CENTER>
+
+The first step is done with this line:
+<PRE>
+<B>
+m_playAction = new KAction(i18n("Play"), QIconSet(BarIcon("tocar",
+                           AktionFactory::instance())), 0, this,
+                           SLOT(slotPlay()), actionCollection(),
+                           "play");
+</B>
+</PRE>
+This creates a new action with the following parameters:<P>
+
+Text to display - "Play"<BR>
+Icon to display - tocar.png<BR>
+Keyboard accel - none<BR>
+SLOT parent - current widget<BR>
+SLOT - slotPlay()<BR>
+Action parent - the KParts action collection<BR>
+action name - used to match XML description with action
+<P>
+As a side note, KDE has a number of standard actions available for
+use.  They take advantage of the fact that certain actions (like
+"quit", "open document", etc) have standard text, icons, and keyboard
+accelerators.  These parameters are encapsulated into KStdAction
+actions.  You, as a developer using them, need only supply a SLOT to
+connect to.  aKtion does not use any standard actions, hence they are
+not used here.
+<P>
+The second step (connecting the action to our widgets) is accomplished
+with in this file:
+
+<P>
+&nbsp;<B><U>aktion_part.rc</U></B>
+<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
+<TR><TD BGCOLOR="#000000">
+<TABLE BORDER=0 ALIGN="center" CELLSPACING=2 CELLPADDING="0" WIDTH="100%">
+<TR><TD BGCOLOR="#C0C0C0">
+<PRE>
+&lt;!DOCTYPE kpartgui&gt;
+&lt;kpartgui name="aktion"&gt;
+&lt;MenuBar&gt;
+ &lt;Menu name="view"&gt;
+  &lt;Action name="play"/&gt;
+  &lt;Action name="stop"/&gt;
+  &lt;Action name="backward"/&gt;
+  &lt;Action name="forward"/&gt;
+ &lt;/Menu&gt;
+&lt;/MenuBar&gt;
+&lt;ToolBar name="Aktion-ToolBar"&gt;
+  &lt;Action name="play"/&gt;
+  &lt;Action name="stop"/&gt;
+  &lt;Action name="backward"/&gt;
+  &lt;Action name="forward"/&gt;
+&lt;/ToolBar&gt;
+&lt;StatusBar/&gt;
+&lt;/kpartgui&gt;
+</PRE>
+</TD></TR></TABLE><TD></TR></TABLE>
+
+<P>
+You can see that each action has a corresponding Action item in the
+XML.  The names for the Menu and ToolBars are either specific or
+generic depending on what you want them to do.  If you use a reserved
+name like "view" or "edit", then your actions will be plugged into an
+existing menu or toolbar.  If you use a new name like
+"Aktion-ToolBar", then you will get a new toolbar.
+<P>
+You'll also need to add the following lines to your Makefile.am:
+<PRE><B>
+# this is where the menu and toolbar description file goes
+partdir   = $(kde_datadir)/aktion
+part_DATA = aktion_part.rc
+</B></PRE>
+<P>
+That's pretty much it!
+
+<P>
+
+<H2><A NAME="visible">Visible Result</A></H2>
+<IMG SRC="img/step4.png" ALT="Final Result" WIDTH="353" HEIGHT="276">
+
+<P>
+
+<H2><A NAME="practical">Practical Matters</A></H2>
+As you saw, this code was pretty straight-forward.  There really
+wasn't anything specific to aKtion, here.  Do check the KStdAction
+actions before creating your own, however.  Using those actions are
+<em>strongly</em> encouraged.
+
+<?php
+  include("footer.inc");
+?>
diff --git a/componentstutorial/page7.php b/componentstutorial/page7.php
new file mode 100644
index 0000000..ce54f05
--- /dev/null
+++ b/componentstutorial/page7.php
@@ -0,0 +1,116 @@
+<?php
+  $site_root = "../";
+  $page_title = "Embedded Components Tutorial - Page 7";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<div id="quicklinks">
+[ Page 1 | <a href="page2.php">2</a> | <a href="page3.php">3</a> | <a \
href="page4.php">4</a> | <a href="page5.php">5</a> | <a href="page6.php">6</a> | <a \
href="page7.php">7</a> ] +</div>
+
+<H2>Final Thoughts</H2>
+
+<H2><A NAME="recap">The Steps to a Component: Recap</A></H2>
+You may have noticed that converting an application to an embedded
+component is pretty easy.  In fact, this tutorial could have easily
+condensed the four steps into one or two with no loss of clarity.
+That said, you will likely do your conversion in the four stages
+outlined, so maybe that wasn't such a bad idea.
+<P>
+To recap, the four stages are:
+<OL>
+<LI><B>Convert your application to a shared library</B><P>
+
+    This requires only a change to the Makefile.am file
+    <P>
+<LI><B>Add the skeleton KParts code</B><P>
+
+    This requires two files to be added to the project, and two minor
+    changes to the Makefile.am and your application's .desktop file
+    <P>
+<LI><B>Add in your own code</B><P>
+
+    This is probably the hardest step.. where you integrate your
+    existing code into the KParts interface.
+    <P>
+<LI><B>Connect GUI elements to control your code</B><P>
+
+    This is where you insert items into the toolbar and edit menu to
+    allow the user to control your component.
+    <P>
+</OL>
+
+
+<H2><A NAME="unique">What is Boilerplate? What is App-Specific?</A></H2>
+Whenever you do a tutorial, the question is what of the tutorial can
+you use in your own and what is specific to the app itself.  Well,
+you're in luck for this tutorial -- nearly all of the code in this
+tutorial was boilerplate, cut-and-paste type code!
+<P>
+In general, you can copy over the files and just change all references
+to 'aktion' and 'Aktion' to your own app naming convention.
+<P>
+The only thing that is totally app specific is in the AktionPart
+class.  Wherever you see references to the <tt>widget</tt> object,
+that's where you need to insert your app specific things.
+<P>
+
+
+<H2><A NAME="gotcha">"Gotcha"s.  What to Look Out For</A></H2>
+Most of the things to look out for were mentioned in the steps of the
+tutorial.  Two things that stand out, though, are these:
+
+<OL>
+<LI><B>Pay attention to the .desktop file</B><P>
+
+    If you wonder why Konqueror isn't embedding your app, it's almost
+    surely because something is wrong with your .desktop file.  Pay
+    close attention to that section in the tutorial.
+    <P>
+<LI><B>Make sure your app has a pre-existing "view" class</B><P>
+
+     This is probably the most important point in this tutorial.  If
+     you app already has a existing view class that provides a
+     coherent interface to your apps UI functionality, then everything
+     is trivial.  If your code is ad-hoc, then this could be a
+     nightmare.
+</OL>
+
+
+<H2><A NAME="links">Links</A></H2>
+Here are some links that you may find useful:<P>
+
+<B>Original location of this tutorial:</B><BR>
+<A HREF="http://developer.kde.org/documentation/tutorials/components/index.html">
+http://developer.kde.org/documentation/tutorials/components/index.html</A><P>
+
+<B>Tutorial pages packaged up (no source)</B><BR>
+<A HREF="http://developer.kde.org/documentation/tutorials/components/components-tutorial.tar.bz2">
 +http://developer.kde.org/documentation/tutorials/components/components-tutorial.tar.bz2</A><P>
 +
+<B>Source package for the base aKtion 1.99:</B><BR>
+<A HREF="http://developer.kde.org/documentation/tutorials/components/aktion-1.99-base.tar.gz">
 +http://developer.kde.org/documentation/tutorials/components/aktion-1.99-base.tar.gz</A><P>
 +
+<B>Source package for the finished (component) aKtion 1.99:</B><BR>
+<A HREF="http://developer.kde.org/documentation/tutorials/components/aktion-1.99-final.tar.gz">
 +http://developer.kde.org/documentation/tutorials/components/aktion-1.99-final.tar.gz</A><P>
 +
+<B>Official aKtion! homepage</B><BR>
+<A HREF="http://www.geocities.com/SiliconValley/Haven/3864/aktion.html">
+http://www.geocities.com/SiliconValley/Haven/3864/aktion.html</A><P>
+
+<B>Sample AVI file for testing (needs to be unzipped)</B><BR>
+<A HREF="http://cmg.simplenet.com/avi_clips/pepe_pen.zip">
+http://cmg.simplenet.com/avi_clips/pepe_pen.zip</A><P>
+
+<B>Plugins needed for xanim/aktion to play sample AVI file (Intel
+Indeo 4.1)</B><BR>
+<A HREF="http://xanim.va.pubnix.com/xa_dlls.html">
+http://xanim.va.pubnix.com/xa_dlls.html</A><P>
+
+
+<?php
+  include("footer.inc");
+?>
diff --git a/css/index.php b/css/index.php
new file mode 100644
index 0000000..79b7158
--- /dev/null
+++ b/css/index.php
@@ -0,0 +1,676 @@
+<?php
+  $site_root = "../";
+  $page_title = "CSS 2.1 &amp; 3 Support in KHTML 3.4";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+ <p>Compiled by <a href="mailto:kde@carewolf.com">Allan Sandfeld</a>.</p>
+
+    <table border="1">
+      <tr>
+        <th>CSS Property</th>
+
+        <th>Supported?</th>
+
+        <th>Comments</th>
+      </tr>
+
+      <tr>
+        <td>'background'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'background-attachment'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'background-color'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'background-image'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'background-position'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'background-repeat'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'border'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'border-collapse'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'border-color'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'border-spacing'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'border-style'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'border-top' 'border-right' 'border-bottom' 'border-left'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'border-top-color' 'border-right-color' 'border-bottom-color' \
'border-left-color'</td> +
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'border-top-style' 'border-right-style' 'border-bottom-style' \
'border-left-style'</td> +
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'border-top-width' 'border-right-width' 'border-bottom-width' \
'border-left-width'</td> +
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'border-width'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'bottom'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'box-sizing'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>CSS 3 UI: only KHTML and Opera, but also supported with -moz- in Gecko \
</td> +      </tr>
+
+      <tr>
+        <td>'caption-side'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>Only top and bottom, left and right was deprecated in CSS 2.1</td>
+      </tr>
+
+      <tr>
+        <td>'clear'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'clip'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'color'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'content'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>KHTML is one of the only browsers to support generated quotes and \
counters.</td> +      </tr>
+
+      <tr>
+        <td>'counter-increment'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'counter-reset'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'cursor'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'direction'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>
+        </td>
+      </tr>
+
+      <tr>
+        <td>'display'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'empty-cells'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'float'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'font'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'font-family'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'font-size'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'font-style'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'font-variant'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'font-weight'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'height'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'left'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'letter-spacing'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'line-height'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'list-style'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>All CSS 2.1 styles plus box. With -kthml- extension also diamond, \
upper-greek, persian, urdu and arabic-indic from CSS 3 List</td> +      </tr>
+
+      <tr>
+        <td>'list-style-image'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'list-style-position'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'list-style-type'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'margin'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'margin-top' 'margin-right' 'margin-bottom' 'margin-left'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'marker-offset'</td>
+
+        <td><span class="unsup">no</span></td>
+
+        <td>Deprecated in CSS3</td>
+      </tr>
+
+      <tr>
+        <td>'max-height'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'max-width'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'min-height'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'min-width'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'opacity'</td>
+
+        <td><span class="nosup">no</span></td>
+
+        <td>CSS 3 Color: Implemented by WebCore and Gecko</td>
+      </tr>
+
+      <tr>
+        <td>'outline'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'outline-color'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'outline-offset'</td>
+
+        <td><span class="nosup">no</span></td>
+
+        <td>CSS 3 UI: Implemented by WebCore</td>
+      </tr>
+      <tr>
+        <td>'outline-style'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'outline-width'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'orphans'</td>
+
+        <td><span class="nosup">no</span></td>
+
+        <td>Paged media.</td>
+      </tr>
+
+      <tr>
+        <td>'overflow'</td>
+
+        <td><span class="parsup">partial</span></td>
+
+        <td>except value <span class="unsup">scroll, auto</span></td>
+      </tr>
+
+      <tr>
+        <td>'padding'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'page-break-before'</td>
+
+        <td><span class="parsup">partial</span></td>
+
+        <td>Paged media.Only auto and always</td>
+      </tr>
+
+      <tr>
+        <td>'page-break-after'</td>
+
+        <td><span class="parsup">partial</span></td>
+
+        <td>Paged media. Only auto and always</td>
+      </tr>
+
+      <tr>
+        <td>'page-break-inside'</td>
+
+        <td><span class="nosup">no</span></td>
+
+        <td>Paged media</td>
+      </tr>
+
+      <tr>
+        <td>'padding-top' 'padding-right' 'padding-bottom' 'padding-left'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'position'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'quotes'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'right'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'table-layout'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'text-align'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'text-decoration'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>value <span class="unsup">blink</span> not supported, it is optional in \
css2</td> +      </tr>
+
+      <tr>
+        <td>'text-indent'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'text-shadow'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>CSS 3 Text: Only implemented by KHTML and WebCore</td>
+      </tr>
+      <tr>
+        <td>'text-transform'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'top'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'unicode-bidi'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'vertical-align'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'visibility'</td>
+
+        <td><span class="parsup">partial</span></td>
+
+        <td>except value <span class="unsup">collapse</span></td>
+      </tr>
+
+      <tr>
+        <td>'white-space'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>KHTML is the only browser that supports all CSS 2.1 values such as \
pre-line and pre-wrap</td> +      </tr>
+
+      <tr>
+        <td>'widows'</td>
+
+        <td><span class="nosup">no</span></td>
+
+        <td>Paged media.</td>
+      </tr>
+      <tr>
+        <td>'width'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'word-spacing'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+
+      <tr>
+        <td>'z-index'</td>
+
+        <td><span class="sup">yes</span></td>
+
+        <td>&nbsp;</td>
+      </tr>
+    </table>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/developers/index.php b/developers/index.php
new file mode 100644
index 0000000..b70f28f
--- /dev/null
+++ b/developers/index.php
@@ -0,0 +1,234 @@
+<?php
+  $site_root = "../";
+  $page_title = "Developers";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<table border="0" cellpadding="4">
+
+ <tr>
+  <td>David Faure</td>
+  <td>framework, parts, Javascript, I/O lib and maintainer</td>
+  <td>faure kde.org</td>
+ </tr>
+
+ <tr>
+  <td>Simon Hausmann</td>
+  <td>framework, parts</td>
+  <td>hausmann kde.org</td>
+ </tr>
+
+ <tr>
+  <td>Michael Reiher</td>
+  <td>framework</td>
+  <td>michael.reiher gmx.de</td>
+ </tr>
+
+ <tr>
+  <td>Matthias Welk</td>
+  <td>framework</td>
+  <td>welk fokus.gmd.de</td>
+ </tr>
+
+ <tr>
+  <td>Alexander Neundorf</td>
+  <td>List views</td>
+  <td>neundorf kde.org</td>
+ </tr>
+
+ <tr>
+  <td>Michael Brade</td>
+  <td>List views, I/O lib</td>
+  <td>brade kde.org</td>
+ </tr>
+
+ <tr>
+  <td>Lars Knoll</td>
+  <td>HTML rendering engine</td>
+  <td>knoll kde.org</td>
+ </tr>
+
+ <tr>
+  <td>Dirk Mueller</td>
+  <td>HTML rendering engine</td>
+  <td>mueller kde.org</td>
+ </tr>
+
+ <tr>
+  <td>Waldo Bastian</td>
+  <td>HTML rendering engine, I/O lib</td>
+  <td>bastian kde.org</td>
+ </tr>
+
+ <tr>
+  <td>Germain Garand</td>
+  <td>HTML rendering engine</td>
+  <td>germain ebooksfrance.org</td>
+ </tr>
+
+ <tr>
+  <td>Leo Savernik</td>
+  <td>HTML rendering engine</td>
+  <td>l.savernik aon.at</td>
+ </tr>
+
+ <tr>
+  <td>Stephan Kulow</td>
+  <td>HTML rendering engine, I/O lib, regression test framework</td>
+  <td>coolo kde.org</td>
+ </tr>
+
+ <tr>
+  <td>Antti Koivisto</td>
+  <td>HTML rendering engine</td>
+  <td>koivisto kde.org</td>
+ </tr>
+
+<tr>
+<td>Zack Rusin</td>
+<td>HTML rendering engine</td>
+<td>zack kde.org</td>
+</tr>
+
+<tr>
+<td>Tobias Anton</td>
+<td>HTML rendering engine</td>
+<td>anton stud.fbi.fh-darmstadt.de</td>
+</tr>
+
+<tr>
+<td>Lubos Lunak</td>
+<td>HTML rendering engine</td>
+<td>l.lunak kde.org</td>
+</tr>
+
+<tr>
+<td>Allan Sandfeld Jensen</td>
+<td>HTML rendering engine</td>
+<td>kde carewolf.com</td>
+</tr>
+
+ <tr>
+  <td>Apple Safari Developers</td>
+  <td>HTML rendering engine, Javascript</td>
+  <td></td>
+ </tr>
+
+ <tr>
+  <td>Harri Porten</td>
+  <td>Javascript</td>
+  <td>porten kde.org</td>
+ </tr>
+
+ <tr>
+  <td>Koos Vriezen</td>
+  <td>Java applets and other embedded objects</td>
+  <td>koos.vriezen xs4all.nl</td>
+ </tr>
+
+ <tr>
+  <td>Matt Koss</td>
+  <td>I/O lib</td>
+  <td>koss napri.sk</td>
+ </tr>
+
+ <tr>
+  <td>Alex Zepeda</td>
+  <td>I/O lib</td>
+  <td>jazepeda pacbell.net</td>
+ </tr>
+
+ <tr>
+  <td>Peter Kelly</td>
+  <td>Javascript, HTML rendering engine</td>
+  <td>pmk post.com</td>
+ </tr>
+
+ <tr>
+  <td>Carsten Pfeiffer</td>
+  <td>framework</td>
+  <td>pfeiffer kde.org</td>
+ </tr>
+
+ <tr>
+  <td>Wynn Wilkes</td>
+  <td>Java 2 security manager support, and other major improvements to applet \
support</td> +  <td>wynnw calderasystems.com</td>
+ </tr>
+
+ <tr>
+  <td>Richard Moore</td>
+  <td>Java applet support</td>
+  <td>rich kde.org</td>
+ </tr>
+
+ <tr>
+  <td>Dima Rogozin</td>
+  <td>Java applet support</td>
+  <td>dima mercury.co.il</td>
+ </tr>
+
+ <tr>
+  <td>Stefan Schimanski</td>
+  <td>Netscape plugin support</td>
+  <td>1Stein gmx.de</td>
+ </tr>
+
+ <tr>
+  <td>George Staikos</td>
+  <td>SSL support</td>
+  <td>staikos kde.org</td>
+ </tr>
+
+ <tr>
+  <td>Dawit Alemayehu</td>
+  <td>I/O lib, Authentication support</td>
+  <td>adawit kde.org</td>
+ </tr>
+
+ <tr>
+  <td>Torben Weis</td>
+  <td>kfm author</td>
+  <td>weis kde.org</td>
+ </tr>
+
+ <tr>
+  <td>Chris Lee</td>
+  <td>web site</td>
+  <td>webmaster konqueror.org</td>
+ </tr>
+
+ <tr>
+  <td>Stephan Binner</td>
+  <td>Misc bug fixing and improvements</td>
+  <td>binner kde.org</td>
+ </tr>
+
+</table>
+
+<p>
+ Konqueror uses OpenSSL, Copyright &copy; 1995-1998 Eric Young (eay cryptsoft.com),
+ see <a href="http://www.openssl.org">www.openssl.org</a>.
+</p>
+
+<p>
+ For any question about Konqueror, please mail <a href="mailto:kfm-devel@kde.org">
+the developer's mailing list, kfm-devel</a> (mention whether you're subscribed to \
the +list when posting to it, see <a \
href="http://mail.kde.org/mailman/listinfo/kfm-devel/">here</a> for subscribing) \
+instead of the individual developers. +</p>
+
+<p>
+ There's an archive of the <a \
href="http://lists.kde.org/?l=kfm-devel&amp;r=1&amp;w=2">developer's + mailing \
list</a>. +</p>
+
+<p>
+ Note that for bug reports or feature requests, you should rather
+ use the <a href="http://bugs.kde.org">bug-tracking system</a>.
+</p>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/download/index.php b/download/index.php
new file mode 100644
index 0000000..bc9a9b9
--- /dev/null
+++ b/download/index.php
@@ -0,0 +1,17 @@
+<?php
+  $site_root = "../";
+  $page_title = "Download Konqueror";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<p>Konqueror is part of KDE's &quot;kdebase&quot; package. The HTML rendering engine \
khtml is +together with all other needed KDE libraries contained in KDE's \
&quot;kdelibs&quot; package.</p> +
+<p>To install Konqueror please refer to the <a href="http://www.kde.org/download/">
+pages on how to install KDE</a>.
+</p>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/embedded/index.php b/embedded/index.php
new file mode 100644
index 0000000..758f5c5
--- /dev/null
+++ b/embedded/index.php
@@ -0,0 +1,313 @@
+<?php
+  $site_root = "../";
+  $page_title = "Konqueror Embedded";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<p>The Konqueror/Embedded project attempts to build up a special version of the
+web browsing component of the KDE browser Konqueror (in particular its html
+rendering engine khtml and its io subsystem) . Konqueror/Embedded runs on the
+Qt/Embedded platform for embedded devices, in an environment without a KDE
+installation or a X windowing system, as one static binary, being as small as
+possible while still providing all essential features of a web browser, 
+including 
+</p>
+<ul>
+<li>HTML4</li>
+<li>CSS</li>
+<li>JavaScript</li>
+<li>Cookies</li>
+<li>SSL</li>
+<li>Non-blocking IO</li>
+<li>Builtin Image Viewer</li>
+<li>IPv6 support</li>
+<li>Full xbel compatible bookmark support and management</li>
+</ul>
+<p>
+Another key feature is the fact that Konq/E is <em>not</em> a fork of the
+browser components of KDE but it is part of the actual build process
+to copy over the original sources of the rendering engine, the HTTP client
+implementation and various support classes and compile them without 
+modification. This is accomplished by providing drop-in replacement classes,
+providing source compatibility to the original code, while being optimized
+in size and functionality for Konq/E . This has the tremendous advantage of
+being able to gain from the latest bugfixes and improvements of the
+original browser, for free!
+</p>
+
+<h1>Mini FAQ</h1>
+
+<?php
+
+$faq = new FAQ();
+
+$faq->addQuestion("How can I make Konq/E pick up the Qt/Embedded library instead of \
the normal Qt lib?", +"If you want to compile with Qt/Embedded support, then you have \
to configure +it with the <code>--enable-qt-embedded</code> configure switch. Also \
make sure +the <code>QTDIR</code> is set correctly.
+");
+
+$faq->addQuestion("I heard there's special support for the Qt Palmtop Environment?",
+"There is a --enable-qpe configure switch which will make Konq/E link
+against the Qt Palmtop Environment libraries (and use them) . The support
+involves inherittance of the <code>QPEApplication</code> base application
+class and use of the QPE shared status message feature (re-using the
+task-bar for status messages, to avoid wasting screen space with an
+application status bar) . Make sure to have <code>QPEDIR</code> set then
+using this switch.
+");
+
+$faq->addQuestion("Where can I find this Qt Palmtop Environment?",
+"
+Here's the official website:
+<a href=\"http://qpe.sourceforge.net/\">http://qpe.sourceforge.net/</a>
+and here's the project page, where you can get the latest development
+version:
+<a href=\"http://www.sourceforge.net/projects/qpe/\">http://www.sourceforge.net/projects/qpe/</a> \
. +Note that Konq/E requires at least QPE version 1.3.1.
+");
+
+$faq->addQuestion("The startup time of Konq/E is very slow when using Qt/Embedded. \
Is there +a hidden turbo-boost configure switch to accelerate it to lightspeed?",
+"
+A lot of time on startup is spend on parsing the available fonts. To optimize
+this make sure Qt/E only uses the .qpf font files for fonts and no .bdf or
+.ttf fonts . This will decrease startup time dramatically and reduce memory
+usage. See the Qt documentation of details about .qpf font files and how to
+generate them.
+
+");
+
+$faq->addQuestion("How do things look like after a make install?",
+"
+Basically an installation consists of three components:
+</p>
+<ul>
+<li>the <code>konq</code> binary, installed into <code>$prefix</code></li>
+<li>the <code>konqueror</code> startup script, installed into <code>$prefix
+</code> as well. This startup script sets some environment variables to
+ensure Konq/E finds its data files and knows where to temporarily store data
+on the filesystem. Note that you don't need this startup script if you have
+the appropriate environment variables set globally in your system already</li>
+<li>the <code>share/</code> subdirectory, installed into
+<code>$prefix/share</code> , containing some data files (in particular charset
+information and the default stylesheet) . Note that these files are
+<em>absolutely</em> required for running Konq/E</li>
+</ul>
+<p>
+");
+
+$faq->addQuestion("Is there support for HTTP proxy servers?",
+"
+Sure, although this is currently a bit rudimentary, with regard to
+configurability. If you want to use a HTTP proxy server make sure to
+set the <code>HTTP_PROXY</code> environment variable appropriately. Like for
+example <code>HTTP_PROXY=&quot;http://proxy.foo.com:3128/&quot;</code> .
+In addition the <code>NO_PROXY_FOR</code> environment variable is supported.
+Set it up to a list of servers for which you do not want to use a HTTP proxy
+server.
+<br />
+There is work in progress for a nice configuration dialog for this, combined
+with storing these settings in a persistent way, not using environment
+variables.
+");
+
+$faq->addQuestion("Is there support for caching, to speed up browsing?",
+"
+There are two caches in Konq/e.
+<br />
+The memory cache. Primarily used for caching images and stylesheets. The
+maximum size is 512 kbyte.
+<br />
+The disk cache. This is disabled by default, however you can turn it on
+and control it using the following environment variables:
+</p>
+<ul>
+<li><code>KIO_HTTP_USECACHE</code> - (set to any value to turn on caching)</li>
+<li><code>KIO_HTTP_MAXCACHEAGE</code> - Maximum age of cache in seconds (default 14 \
Days)</li> +<li><code>KIO_HTTP_MAXCACHESIZE</code> - Maximum cache size in Kilobytes \
(default 5Mb)</li> +</ul>
+<p>
+");
+
+$faq->addQuestion("Are there more environment variables konq/e reads?",
+"
+Yes, here are three:
+</p>
+<ul>
+<li><code>KIO_HTTP_PROXY_CONNECT_TIMEOUT</code> - default 10 seconds</li>
+<li><code>KIO_HTTP_CONNECT_TIMEOUT</code> - default 20 seconds</li>
+<li><code>KIO_HTTP_RESPONSE_TIMEOUT</code> - default 60 seconds</li>
+</ul>
+<p>
+");
+
+$faq->addQuestion("Can I make the home toolbar button load www.mycompany.com instead \
of +the KDE website?",
+"
+Yes, the URL loaded when pressing the home button is configurable.
+Just provide a <code>konq-embedrc</code> file in <code>$prefix/share/config</code>
+and specify a <code>HomeURL=http://your.site.org/</code> in the
+<code>[General]</code> group.
+");
+
+$faq->addQuestion("Is there a way to make Konq/E load an initial document on \
startup, instead +of the blank page?",
+"Just put a html document called <code>start.html</code> into
+<code>$prefix/share/apps/konq-embed</code>.
+");
+
+$faq->addQuestion("I'm having trouble with images in html documents. Or Konq/E \
crashes for +me when loading JPEG Images",
+"
+Here's how to get optimal image support and how to get rid of crashes related
+to jpegs. For GIF and PNG support you can easily use the builtin Qt support.
+For MNG the -system-libmng switch for Qt works fine. For JPEG you don't have
+to enable the qt builtin jpeg support. Konq/E comes with its own incremental
+jpeg loader. In fact the qt jpeg support won't be used. You need to use an
+external jpeg library (well, the one and only popuplar libjpeg which you most
+likely already have anyway) . To convince configure to pick up your jpeg
+library you might probably need the
+<code>--with-extra-libs=/path/to/your/jpeg/lib</code> and
+<code>--with-extra-includes=/path/to/your/jpeg/includes</code> configure
+switches.
+");
+
+$faq->addQuestion("Is it possible to internationalize Konq/E, to make the menus show
+for instance German text instead of the default English?",
+"
+Run <code>make messages</code> in the konq-embed directory. This will create
+a konqueror.pot file which you can use with standard GNU i18n tools. Like for
+example use <code>msgmerge</code> to merge it with your existing translations.
+For translating the actual POT files I strongly recomment using
+<a href=\"http://i18n.kde.org/tools/kbabel/\">KBabel</a> , it's certainly one of
+the very best translation applications out there.
+</p>
+<p>
+To actually use a POT file with Konq/E you have to convert it
+to a Qt message file. This is done easily using the <code>msg2qm</code> utility,
+shipped with your Qt distribution, in <code>\$QTDIR/tools/msg2qm</code> . Run
+it like:
+</p>
+<pre>
+  \$QTDIR/tools/msg2qm/msg2qm konqueror_de.pot konqueror_de.qm
+</pre>
+<p>
+To make Konq/E use the correct Qt message file, install the .qm file into
+<code>\$prefix/share/locale</code> . The filename has to be in the format
+<code>konqueror_&lt;languagecode&gt;qm</code> . The choice of the language is done \
on +the basis of the <code>LANG</code> environment variable.
+<br />
+So for example if you have a german translation installed as
+<code>konqueror_de.qm</code> in
+<code>/path/where/you/installed/konqueror/share/locale/konqueror_de.qm</code> ,
+then just make sure the <code>LANG</code> environment variable is set to
+&quot;de&quot; .  Konq/E will then automatically load the message file and
+utilize the translations.
+<br />
+Last but not least: Translation support works only if Qt is compiled with
+translation support!! So double-check your qconfig-local to NOT contain
+<code>QT_NO_TRANSLATION</code> .
+");
+
+$faq->addQuestion("How do I run Flash plugins with Konqueror/Embedded?",
+"
+You have to enable the Flash add-on (via --enable-add-ons=kflashpart) which
+is based on the flash library written by Olivier Debon. This add-on does not
+require X but only implements Flash 3 features and a few of the Flash 4.
+<br />
+Other efforts are on the way to port the Netscape plugin support to Konq/E
+(which will require X).
+");
+
+$faq->addQuestion("Is there a mailing list where I can ask question about Konq/E or \
participate +with development?",
+"
+Yes! Help is needed and more than appreciated! More information about the
+dedicated mailinglist can be found at
+<a href=\"http://mail.kde.org/mailman/listinfo/konq-e\">http://mail.kde.org/mailman/listinfo/konq-e</a>
 +</p>
+<p>Please keep in mind that I in particular am working on this in my spare free
+time. I'm doing it for the fun of it, I don't get any money. So please bear with
+me if I don't answer to emails within 5 minutes.
+");
+
+$faq->addQuestion("There are tons of special configure options and the like. I'm \
getting +confused. How does your configuration look like?",
+"
+Here's what I use for cross-compiling for the iPAQ:<br/>
+Qt:
+</p>
+<pre>
+./configure -gif -qt-libpng -no-jpeg -no-mng -no-thread -no-opengl -release
+  -shared -no-g++-exceptions -I/usr/local/arm-linux/include -depths 16
+  -qconfig local -no-qvfb -xplatform linux-ipaq-g++
+</pre>
+<p>
+Konq/E:
+</p>
+<pre>
+../xconfigure --disable-debug --enable-static --disable-shared
+  --enable-qt-embedded --enable-qpe --with-extra-libs=\$PWD/../lib/
+  --with-extra-includes=\$PWD/../include -without-ssl
+  --prefix=\$PWD/../install
+</pre>
+<p>
+<code>xconfigure</code> is a configure wrapper script I found on the net.
+It's handy when cross-compiling for ARM-Linux, as it sets up all necessary
+special configure switches to get things right. I put up a copy of it
+<a href=\"http://devel-home.kde.org/~hausmann/xconfigure\">here</a> .
+");
+
+$faq->addQuestion("How can I add support for an external application handling the \
foo: protocol?", +"
+Edit $prefix/share/config/konq-embedrc and add a section like this
+</p>
+<pre>
+[External Protocols]
+mailto=foomailer
+myfooprotocol=specialxzyplayer
+</pre>
+<p>
+(this feature is available as of CVS >= 20010625)
+");
+
+$faq->addQuestion("Where can I download Konqueror/Embedded?",
+"
+Although there is a 0.1 release available I strongly recommend for grabbing
+one of the latest snapshots instead. Have a look at
+<a href=\"http://devel-home.kde.org/~hausmann/snapshots/\">http://devel-home.kde.org/~hausmann/snapshots/</a>.
 +Please note these snapshots are based on the KONQE_1_0_BRANCH and require
+Qt version 2.3.x to compile - they won't work with any Qt 3.x version!
+<br />
+And if you're interesting in bleeding edge stuff then you can also check
+out the source from the <a href=\"http://www.kde.org/anoncvs.html\">KDE CVS \
Repository</a> , +in the <code>kdenox</code> module. Note that besides this module \
you will also +need the <code>kdelibs</code> module for building. Make sure your copy \
of kdelibs +resides in the same directory as the kdenox module.
+</p>
+<p>
+Also note that the CVS version is <em>development code</em> . This means it can
+happen that it crashes, does not compile or refuses to brew your coffee!
+</p>
+<p>
+There also exists a binary package of a konq/e snapshot (more or less regularly
+updated) for the iPAQ (cross-compiled as arm-linux) , for use with the
+<a href=\"http://familiar.handhelds.org/\">Familiar Linux</a> ipkg package
+system. Just add <code>http://bolug.uni-bonn.de/files/konq-e/</code> as source
+to your <code>/etc/ipkg.conf</code> and after a 'ipkg update' a 'konqueror'
+package should be available for download/upgrade on your iPAQ. (note that it
+requires Qtopia >= 1.5)
+</p>
+<p>
+Thanks to the <a href=\"http://bolug.uni-bonn.de/\">BoLUG</a> for the hosting!
+");
+
+$faq->show();
+
+?>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/faq/index.php b/faq/index.php
new file mode 100644
index 0000000..d556472
--- /dev/null
+++ b/faq/index.php
@@ -0,0 +1,394 @@
+<?php
+  $site_root = "../";
+  $page_title = "Konqueror FAQ";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<?php
+
+$faq = new FAQ("Konqueror FAQ");
+
+$faq->addQuestion("Konqueror refuses to login into netscape mail. Is there a fix for \
that ?", +"By default konqueror does not accept cookies that originate from a site \
other than the one you +are currently visiting. This is done to protect your privacy. \
Unfortunately, the netscape mail +site requires that you accept cookies that come \
from sites other than their own. Hence, the +only way to make konqueror work with \
that site is to disable the option that activates the  +feature mentioned above. To \
disable this option do the following: </p> +<ul>
+<li>In konqueror click on the <b>Settings</b> menu.</li>
+<li>Select <b>Configure Konqueror...</b></li>
+<li>In the <i>Configure Konqueror</i> dialog, click on <b>Cookies</b>.</li>
+<li>Make sure the option labeled <b>Only accept cookies from originating servers</b> \
 +is unchecked.</li>
+</ul>
+<p>
+");
+
+$faq->addQuestion("Is there a way to change the default \
Accept-Charset/Accept-Language HTTP headers in konqueror ?", +"Yes. By default \
konqueror automatically uses the settings configured when you installed your \
+desktop. You can manually override this behavior by adding the following settings to \
either <code> +\$KDEHOME/share/config/kioslaverc</code> or \
<code>\$KDEHOME/share/config/kio_httprc</code>: +</p>
+<pre>
+Languages=&lt;comma-separated-list-of-languages&gt;
+Charsets=&lt;comma-separated-list-of-charsets&gt;
+</pre>
+<p>
+If you add the settings to the first \"kioslaverc\", then the options are available \
to all KDE ioslaves that support  +changing these settings. On the other hand, if you \
want the settings to be applicable to a specific io-slave, e.g.  +kio_httprc, then \
you want to add them to the protocol specific config files. You can also specify \
these  +settings on a per-site basis. To do that, instead of adding the settings to \
the top of the file (global section), +you need to add them to a specific site \
section. For example to change the settings sent to all <b>kde.org</b> +sites you \
would do the following: +</p>
+<pre>
+[kde.org]
+Languages=en
+Charsets=iso-8859-1
+</pre>
+<p>
+After making these changes you need to issue the following command to make the \
settings  +take immediate effect:
+</p>
+<pre>
+dcop konqueror-* KIO::Scheduler reparseSlaveConfiguration \"http\";
+</pre>
+<p>&nbsp;
+"); // Last paragraph is a dummy paragraph for XHTML validation
+
+$faq->addQuestion("How do I tell Konqueror to forget all the cached logins and \
passwords?", +"When you successfully login to a web site (using the login/password \
dialog, not using a form), +or to an FTP/SMB/SSH/... site, Konqueror caches the \
username and password in the +kdesud daemon. This information remains alive as long \
as kdesud runs, but isn't +saved to any file. To ask it to forget all the currently \
cached logins and passwords, +simply run
+<br/>
+<code>kdesu -s</code>
+");
+
+$faq->addQuestion("Where does Konqueror store its history, and how do I erase it?",
+"There are several kinds of \"history\" stored by Konqueror.
+</p>
+<ul>
+<li>The location bar combobox items and completion: since KDE 2.2, you can clear \
those with right-click, \"Empty Contents\".</li> +<li>The history module in the \
sidebar: since KDE 2.2 you can clear it with a right-click on one of the host names, \
and selecting \"Clear History\".</li> +<li>The HTTP cache (known as \"Temporary \
Internet Files\" in other environments) can be cleared in the KControl module called \
\"Cache\", using the \"Clear cache\" button on the bottom right.</li> +</ul>
+<p>
+File locations (<code>~/.kde</code> is only an indication. Your distributor, or \
\$KDEHOME, could have modified that value) : +</p>
+<ul>
+<li>Combobox items: <code>~/.kde/share/config/konq_history</code></li>
+<li>History module and combobox completion: \
<code>~/.kde/share/apps/konqueror/konq_history</code> (binary file)</li> +<li>HTTP \
cache: <code>~/.kde/share/cache/http/</code> (previously in \
<code>~/.kde/share/apps/kio_http/cache/</code>)</li> +</ul>
+<p>&nbsp;
+"); // Last paragraph is a dummy paragraph for XHTML validation
+
+$faq->addQuestion("Why does KDE ignore the system wide proxy settings? (KDE 2.2.2 or \
earlier)", +"This is due to a bug in a script used by the configuration update \
program.  It +has been fixed for 3.x release.  For KDE 2.2.2 or earlier you can \
workaround +the problem by simply replacing the last line of
+<b>\$KDEDIR/share/apps/kconf_update/proxytype.pl</b> with the following:
+</p>
+<pre>
+print \"ProxyType=\$proxytype\n\" if \$proxytype;
+</pre>
+<p>
+Another solution is to remove <b>kioslave.upd</b> located in the same
+directory mentioned above.  Note that you do not want to do this right after
+upgrading KDE and before you have had a chance to start the new version for
+the first time.  Otherwise, you might loose your exisiting configuration.  Also
+note that this does not apply to upgrading to KDE 3.x since the problem has
+already been fixed.
+");
+
+$faq->addQuestion("Why does Konqueror 2.2 crash on every page with JavaScript?",
+"There are two cases where this is known to happen:
+<br />
+If you're using the SuSE i686 RPM's of KDE2.2 release you will experience
+that almost every page with JavaScript either does not work or crashes
+Konqueror. This is a bug in the objprelinking that was used to build the
+RPMs. Please use the non-experimentally marked RPMs instead, they will work.
+<br />
+<b>Please do not report bugs if you are using these packages.</b>
+<br />
+If you see a message about an undefined symbol on the konsole output,
+you hit the binutils bug. Exact reason for this is unknown, but upgrading
+to a recent binutils (&gt;= 2.10) and recompiling kjs helped in every case up to \
now. +If you installed from RPM you shouldn't be affected.
+");
+
+$faq->addQuestion("Why does Konqueror crash on every page with Flash?",
+"This is a result of a clashing symbol in both the flash plugin and the
+XFree86 libGLU (OpenGL utility lib). Upon closing an embedded flash view,
+the wrong function is called which heavily corrupts memory and leads to
+either immediately or delayed crashes, lockups and worse.
+<br />
+The only solution that is currently known is either to install Qt without
+OpenGL support or to not use the Flash plugin. You can't combine both
+until this symbol clash is somehow solved. Unfortunately we cannot do
+much about this issue, unless Macromedia is willing to help.
+<br />
+Another reason for Konqueror to crash on every page using a Netscape plugin
+is the use of gcc3. Plugins can't work with gcc3 because they are linked to
+gcc2's libstdc++, which is incompatible with gcc3's libstdc++.
+");
+
+$faq->addQuestion("Does Konqueror support automatic ftp logins via \".netrc\" \
files", +"Starting with version 2.2 beta1 konuqeror does indeed support automatic
+logins as specified in the \".netrc\" file.  However, there is no graphical
+front end to enable this feature ; so you have to do it manually using the
+following procedure:
+</p>
+<ol>
+<li>Create <tt>\$KDEHOME/share/config/kio_ftprc</tt> if it does not already exist.
+<br /><code>Note that \$KDEHOME referes to your personal kde config directory \
(usually +~/.kde).</code></li>
+<li>Add the following entry to kio_ftprc: \"EnableAutoLogin=true\"</li>
+<li>Issue the following command to update running io-slaves:<br />
+<code>dcop konqueror-* KIO::Scheduler reparseConfiguration \"\"</code>
+</li>
+</ol>
+<p>
+Please note that the support for the \"macro\" keyword is very limited in the \
current +implementation.  In fact, we only honor the \"cd\" command.  Furthermore, \
eventhough +this nominal \"macro\" support was left ON by default for the 2.2 beta1 \
release, you +will have to be manually enable it in subsequent releases by adding a \
\"EnableAutoLoginMacro=\" +entry following the same procedure outlined above.
+");
+
+$faq->addQuestion("I'm using an NVidia driver for X, and Konqueror hangs the \
system", +"Add</p>
+<pre>Option \"NvAgp\" \"2\"</pre>
+<p>to the \"Device\" section for the NVidia card, in XF86Config.
+The above option just says to use the Linux agpgart module instead of Nvidia's own.
+Thanks to Scott Lanham for this advice.
+");
+
+$faq->addQuestion("My wheel mouse sometimes does not work with Konqueror",
+"Disable imwheel, at least for Konqueror (you can add this to the Exclude section in \
~/.imwheelrc). +You might consider not using imwheel at all, because it causes more \
problems than they solve +with applications these days.
+");
+
+$faq->addQuestion("Where does the name <i>Konqueror</i> come from?",
+"It's a word play on the other browsers' names. After the Navigator and the
+Explorer comes the Conqueror; it's spelled with a K to show that it's part of
+KDE. The name change also moves away from \"kfm\" (the KDE file manager,
+Konqueror's predecessor) which represented only file management.
+");
+
+$faq->addQuestion("Why doesn't KHTML show the contents of an image's ALT tag in a \
tooltip?", +"There's no standard that says an ALT tag should appear when you
+hover over an image. Some browsers do so, but that's all.<br/>
+Most of the time the ALT tag contains some useless description
+like \"foo.jpg (231432 bytes)\" as Frontpage does by default; besides, the
+specification for the ALT property calls for ALT to be displayed in place of
+the image, as in text-mode-only browsers such as lynx or w3m. It is not meant
+to be used as a tooltip. Tooltips for images are supposed to come from the TITLE \
attribute, +and this is being implemented.
+");
+
+$faq->addQuestion("When trying to authenticate to a proxy, I get \"unknown \
authorization method\" (KDE 2.1.1)", +"Unfortunately a bug was introduced when the \
code that deals with authentication +was being revamped for the 2.1.1 release.  The \
bug has now been fixed in both +the development as well as the current stable \
branches. +<br />
+If you compiled KDE 2.1.1 from source code through anoncvs.kde.org, please update
+kdelibs/kio/http to the current version of 2.1.1 using</p>
+<pre>cvs upd -r KDE_2_1_BRANCH</pre>
+<p>in that directory.
+<br />
+We apologize for the inconvenience.
+");
+
+$faq->addQuestion("What is Konqueror's User Agent string?",
+"There is no definite answer to this question.
+<br />
+The <code>HTTP_USER_AGENT</code> http header and the properties of the
+window.navigator JavaScript object have been subject to change during
+the last KDE releases. Additionally, the user can modify the UA
+information on a domain-by-domain basis pretending to have any other
+browser in existence.
+<br />
+If you are reading this because you wanted to uniquely identify
+Konqueror on your website see the answer to the next question.
+");
+
+$faq->addQuestion("As an author of a web site, how can I identify Konqueror from \
other +browsers?",
+"We are working very hard on making all the differences go away thus
+making any differentiation impossible - or rather needless.
+<br />
+In case you experience a bug or missing feature in Konqueror (let's
+say the JavaScript function document.foo() is not working as expected)
+we recommend to test for features rather than the browsers brand.
+<br />
+Rather than writing code like</p>
+<pre>
+  if (navigator.userAgent.indexOf(\"Konqueror\") &gt;= 0)
+     IEorMozilla = false;
+</pre>
+we recommend to perform direct checks such as
+<br /><br /><pre>
+  var workingFoo = (foo(\"bar\") == 42); // doing what it's supposed to do ?
+  var DOM = !!document.getElementById; // basic DOM support ?
+  var documentALL = !!document.all; // Microsoft extension available ?
+</pre><br />
+
+This way you don't
+<ul>
+  <li>discriminate against any kind of browser. No matter how exotic
+  they are.</li>
+  <li>get trapped by browsers that have to disguise their
+  identity to slip through incomplete or wrong user agent checks.</li>
+  <li>have to maintain any version dependency in your check in case a
+  future maintenance release fixes the issue.</li>
+</ul>
+<p>&nbsp;"); // Last paragraph is a dummy paragraph for XHTML validation
+
+$faq->addQuestion("How do I set my 'home' page - the page loaded on startup?",
+"Start Konqueror with the \"Web Browser\" button, open the page that you want
+to be loaded in any new \"Web Browser\" window, and select \"Save View Profile Web \
Browsing\" +in the Window menu. To have Konqueror start up with no page loaded (as it \
did in KDE 2.0), +use \"about:blank\".
+");
+
+$faq->addQuestion("Is there a way to change the timeout values in Konqueror?",
+"Beginning with 2.2 beta series, you can change the timeout settings
+in the control panel under <code>\"Network->Preferences\"</code>.
+<br />
+If you are using the 2.1 series, however, you have to manipulate the config
+file manually to adjust these values to your liking. Here is the procedure
+for doing that:
+</p>
+<ol>
+<li>Open \$KDEHOME/share/config/kioslaverc in your favorite editor, where
+\$KDEHOME is your local kde config directory (<em>usually ~/.kde/</em>).
+</li>
+<li>Add the following entries without any HEADING, i.e outside of any [] block.
+Simply adding it to the top of the file will suffice.
+<br /><br />
+<pre>ReadTimeout=x                       // length of time to wait for arrival of \
requested data +ResponseTimeout=x                   // length of time to wait for a \
response after sending a request +ConnectTimeout=x                    // length of \
time to wait for response after attempting to connect +ProxyConnectTimeout=x          \
// same a above except it is used for proxy servers. +</pre>
+<br />
+where x is the value you need in seconds.  To give you an idea, here are the default
+values:
+<br /><br />
+<pre>DEFAULT_READ_TIMEOUT                    15     // 15 SECONDS
+DEFAULT_RESPONSE_TIMEOUT                60     //  1 MINUTE
+DEFAULT_CONNECT_TIMEOUT                 20     // 20 SECONDS
+DEFAULT_PROXY_CONNECT_TIMEOUT           10     // 10 SECONDS</pre>
+</li>
+<li>Manually run the following command to update any running io-slaves:
+<br /><br />
+<pre>dcop konqueror-* KIO::Scheduler reparseConfiguration \"\"</pre></li>
+</ol>
+<p>
+If you are running older than version 2.1 of KDE, upgrade.
+");
+
+$faq->addQuestion("Can I run Konqueror without running KDE?",
+"Yes. Just install Qt, kdelibs and kdebase, and from your favourite
+window manager, just launch Konqueror. It should work just fine,
+but if it doesn't (KDE developers don't test that case often), report it
+to http://bugs.kde.org and try running \"kdeinit\" before running Konqueror,
+it usually helps.
+<br />
+This is of course the same for any other KDE application.
+");
+
+$faq->addQuestion("What is the format of addresses in the \"No proxy for\" dialog \
box?", +"The \"No Proxy For\" field under \"Settings->Configure->Proxies\" accepts \
any +number of <b>comma or space</b> separated hostnames or fully qualified
+addresses.  You can mix and match the use of these separators as well as
+have any number of them b/n the specified hostnames in the list.
+</p>
+<pre>
+Example: 1.) kde.org,,,,,,,  mycompanyintranet.com
+         2.) kde.org  mycompanyintranet.com
+         3.) kde.org, mycompanyintranet.com
+</pre>
+<p>
+<em>Do not however use the asterisk (*) to indicate multiple matches under
+a specific domain.</em> That will not work. Instead only enter the common part of
+the addresses you want to exclude.  For example, to exclude all KDE sites from
+using proxy enter \".kde.org\" (without the quotation) rather than \"*.kde.org\"
+in the \"No Proxy For\" field.
+Also note that this is only supported for HTTP proxies currently, not
+for FTP proxies.
+");
+
+
+// CH: does this still apply to KDE 3? It can be resurrected from the Attic
+//http://webcvs.kde.org/cgi-bin/cvsweb.cgi/~checkout~/www/konqueror/content/Attic/i18n.html?rev=1.3&content-type=text/plain&hideattic=0
 +//if so
+//$faq->addQuestion("How can I browse web sites using non latin scripts in \
Konqueror?", +//"Detailed instructions can be found <a href=\"../i18n\">here</a>.
+//");
+
+$faq->addQuestion("How can I connect to an FTP site that requires a login and \
password?", +"Simply type <tt>ftp://user@host/</tt> and Konqueror will prompt you for \
a password. +If your username contains the '@' sign, replace it with %40.
+");
+
+$faq->addQuestion("Konqueror crashes when viewing PNGs (e.g. in the image preview)",
+"All KDE applications are affected by an incompatibility between Qt 2.2.1 and
+libpng 1.0.8, when they try to display PNGs.
+This applies to Konqueror, but also to ksnapshot and many other KDE applications.
+Either upgrade libpng to 1.0.9, or Qt to 2.2.2 or 2.2.3.
+See <a href=\"http://www.libpng.org/pub/png/libpng.html\">the libpng home page</a>.
+");
+
+$faq->addQuestion("I get many problems / crashes with the beta releases or with KDE \
2.0", +"Update to the latest KDE, many bugs have been fixed, and Konqueror is much \
more stable +than it used to be. See the <a href=\"http://www.kde.org\">KDE web \
site</a> for instructions +on installing binaries and source.
+");
+
+$faq->addQuestion("How do I add bookmarks to the bookmark toolbar?",
+"Under the Bookmarks menu, select Edit Bookmarks.
+This will bring up a new window, showing the contents of the bookmarks directory.
+From there, you can copy bookmarks into the <i>Toolbar</i> sub-directory,
+and every bookmark you copy there will appear in the bookmark toolbar.
+<br />
+Using the \"Edit toolbars\" dialog for this won't work, it even tends to crash.
+Sorry about that, this toolbar shouldn't even appear there.
+<br />
+There is no way to control the order of bookmarks, in the toolbar or in the menu, in \
KDE 2.0., +but this has been done in CVS (will be in KDE 2.1)
+");
+
+$faq->addQuestion("How do I enable SSL support?",
+"Most binary distributions come with SSL support enabled, but if you compile
+from sources, you need to install a recent openssl, remove config.cache
+and re-run configure, in kdelibs.
+");
+
+$faq->addQuestion("How do I enable support for Netscape plugins?",
+"Most binary distributions come from Netscape plugins support enabled, but if you \
compile +from sources, you need to install lesstif, remove config.cache
+and re-run configure, in kdebase (check that it compiles the contents of
+kdebase/nsplugins/). If the auto-detection of the plugins fails, try
+running \"nspluginscan\" from the command line.
+");
+
+$faq->addQuestion("Java Applets only show up as grey rectangles, what's wrong?",
+"Most like you are using Sun's 1.3 JRE.  There is a know problem that prevents KJAS \
from +working with that version of Java.  Please use Blackdown's 1.3 release, IBM's \
1.3 release, +or Sun's 1.2.2 release.  Each of those is known to work.  Hopefully \
this issue will be +resolved in a 1.3.1 release from Sun.
+");
+
+$faq->show();
+
+?>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000..5893015
Binary files /dev/null and b/favicon.ico differ
diff --git a/features/application.php b/features/application.php
new file mode 100644
index 0000000..5e86c91
--- /dev/null
+++ b/features/application.php
@@ -0,0 +1,80 @@
+<?php
+  $site_root = "../";
+  $page_title = "Customizable Application";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<p>
+ Konqueror is not only a very responsive and agile filemanager,
+ as well as a web browser/universal document viewer; but it is also
+ a fully customizable application which anybody can configure to
+ suit their own needs. As can be seen from the various screenshots
+ hosted on this site, there are many different ways to configure
+ Konqueror - too many to list here. However, just because there are
+ a myriad of configuration possibilities, that's no reason to rule
+ out the basics of what can be changed exactly.
+</p>
+
+<p>
+ All of the KDE
+ core applications adhere to a KDE-based XML configuration file.
+ This file determines what items will be displayed on a toolbar,
+ what items will be displayed in the menu options, and how to
+ display them - with icons alone, or icons with short descriptions
+ beneath them, or with simply text descriptions of the functions
+ that they provide.
+</p>
+
+<table border="0" cellspacing="15" cellpadding="0">
+
+ <tr>
+  <td width="320">
+   <a href="../pics/konq_std.png"><img src="../pics/konq_std_sm.png" border="0" \
alt="The standard Konqueror window" width="301" height="208" /></a> +  </td>
+
+  <td valign="top">
+   <p>
+    In this screenshot, you have the standard Konqueror window
+    with the default KDE theme. This is what users will see when
+    KDE is first installed on any system, unless of course
+    the vendor decides to ship with altered defaults.
+   </p>
+  </td>
+ </tr>
+
+<tr><td>&nbsp;</td><td></td></tr>
+
+ <tr>
+  <td>
+   <a href="../pics/konq_newrc.png"><img src="../pics/konq_newrc_sm.png" border="0" \
alt="Konqueror with a new XML config" width="301" height="208" /></a> +  </td>
+
+  <td valign="top">
+   <p>
+    By firing up the
+    configuration window you can configure Konqueror's
+    XML configuration file in order to have totally different
+    toolbars.<!-- + ...fixme -->
+   </p>
+  </td>
+
+ </tr>
+
+<tr><td>&nbsp;</td><td></td></tr>
+</table>
+
+<p>
+ Now, as noted above, the XML configuration files for Konqueror
+ make it easy and simple to change the entire style of the program;
+ since the entire KDE suite of applications is also configurable
+ by XML, this means that laptop users can have configurations that fit
+ laptops (small icons, low-color-count configurations and so forth); people
+ who really miss Windows9x (c) can choose to use a Qt theme that looks very
+ similar. They can also use the graphical configuration tool to set
+ up Konqueror's toolbar to look just like Internet Explorer or Netscape Navigator.
+</p>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/features/browser.php b/features/browser.php
new file mode 100644
index 0000000..e9cf3cf
--- /dev/null
+++ b/features/browser.php
@@ -0,0 +1,92 @@
+<?php
+  $site_root = "../";
+  $page_title = "Web Browser";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<p>
+Konqueror uses a very capable HTML rendering engine called KHTML.
+This engine is implemented as a KPart and as such, it can be
+easily used by other KDE programs. KHTML is also used by the Apple browser <a \
href="http://www.apple.com/safari/">Safari</a>. +</p>
+
+<p>
+Features of the HTML rendering component in KDE 3.4:
+</p>
+
+<ol>
+<li>HTML 4.01 compliance.</li>
+<li>ECMAscript 262 support (JavaScript). Notice that ECMAscript can still give \
problems because websites can detect browsers and choose to ignore Konqueror. \
Spoofing as another browser will often make sites work anyway.</li> +<li>Ability to \
house Java applets.</li> +<li>Cascading Style Sheets:
+<ul>
+<li>CSS 1: supported</li>
+<li>CSS 2.1: supported (paged media only partially supported)</li>
+<li>CSS 3 Selectors: supported</li>
+<li>CSS 3 (other): <a href="../css"> Details about the visual media support can be \
found here</a>. </li> +</ul>
+</li>
+<li>DOM1, DOM2 and partially DOM3 support in ECMAScript and native C++ \
bindings.</li> +<li>Full support for bidirectional scripts (arabic and hebrew).<br />
+A screenshot can be found <a href="../pics/konq_bidi.png">here</a>.</li>
+<li><a href="../pics/konq_crypto.png">SSL</a> support (requires <a \
href="http://www.openssl.org">OpenSSL</a>).</li> +</ol>
+
+<table>
+<tr>
+<td width="320">
+<a href="../pics/konq_explore.png"><img src="../pics/konq_explore_sm.png" border="0" \
alt="Konqueror exploring..."  width="301" height="201"/></a> +</td>
+<td valign="top">
+<strong>From the Explorer...</strong><br />
+The original Explorer was simply a file
+manager - nothing more, nothing less.
+Obviously, this isn't a problem...
+</td>
+</tr>
+
+<tr><td>&nbsp;</td><td></td></tr>
+
+<tr>
+<td>
+<a href="../pics/konq_navigate.png"><img src="../pics/konq_navigate_sm.png" \
border="0" alt="Konqueror navigating..."  width="301" height="252"/></a> +</td>
+<td valign="top">
+<strong>To the Navigator...</strong><br />
+Here we have a simple internet browsing
+window - it's what the original Navigator
+did and did well.
+</td>
+</tr>
+
+<tr><td>&nbsp;</td><td></td></tr>
+
+<tr>
+<td>
+<a href="../pics/konq_konquer.png"><img src="../pics/konq_konquer_sm.png" border="0" \
alt="Konqueror konquering"  width="301" height="278"/></a> +</td>
+<td valign="top">
+<strong>To the Konqueror</strong><br />
+This browsing window contains an HTML frame, and two local hard drive views.
+</td>
+</tr>
+
+<tr><td>&nbsp;</td><td></td></tr>
+
+<tr>
+<td>
+<a href="../pics/konq_about.png"><img src="../pics/konq_about_sm.png" border="0" \
alt="About Konqueror"  width="301" height="279"/></a> +</td>
+<td valign="top">
+<strong>About...</strong><br />
+Konqueror also has a very nice "About" screen.
+</td>
+</tr>
+
+<tr><td>&nbsp;</td><td></td></tr>
+</table>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/features/filemanager.php b/features/filemanager.php
new file mode 100644
index 0000000..aeeb7ac
--- /dev/null
+++ b/features/filemanager.php
@@ -0,0 +1,73 @@
+<?php
+  $site_root = "../";
+  $page_title = "File Manager";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<p>At a first glance, Konqueror looks just like a normal file manager:</p>
+
+<ul>
+<li>It displays files and directories using the "icon view" (three icon sizes)
+or the "tree view" (detailed view in which you can open sub-directories)</li>
+<li>It allows copying, moving and deleting, by direct drag and
+drop or by using copy, cut and paste.</li>
+<li>It provides properties on a file, to see and change its attributes in a dialog \
box.</li> +</ul>
+
+<table border="0" cellspacing="15" cellpadding="0">
+<tr>
+<td width="320">
+<a href="../pics/konq_icon.png"><img src="../pics/konq_icon_sm.png" border="0" \
alt="Simple icon view"  width="301" height="210"/></a> +</td>
+<td valign="top">
+<p>
+This screenshot demonstrates that Konqueror has all of the simple
+and standard functionality of the other "modern"
+filemanagers. It is a single window with an icon view.
+</p>
+</td>
+</tr>
+
+<tr><td>&nbsp;</td><td></td></tr>
+
+<tr>
+<td>
+<a href="../pics/konq_hybrid.png"><img src="../pics/konq_hybrid_sm.png" border="0" \
alt="Framed view"  width="301" height="260"/></a> +</td>
+<td valign="top">
+<p>A Konqueror window
+is not limited to simply being a "filemanager" window, or a "web browser"
+window - it is possible to view a presentation, a spreadsheet, a local
+directory, a web page, and more...</p>
+</td>
+</tr>
+
+<tr><td>&nbsp;</td><td></td></tr>
+
+<tr>
+<td>
+<a href="../pics/konq_office.png"><img src="../pics/konq_office.jpg" border="0" \
alt="KOffice documents in a window"  width="301" height="252"/> +</a>
+</td>
+<td valign="top">
+<p>Of course, it also makes a very nice preview program for
+all of the KOffice modules, as well...
+</p>
+</td>
+</tr>
+
+<tr><td>&nbsp;</td><td></td></tr>
+</table>
+
+<p>One other interesting feature of Konqueror is that it
+provides automatic updating of directories - if a file is
+created in a directory which is currently being viewed, it
+is <em>not</em> necessary to refresh or reload the directory;
+Konqueror automatically shows the new content. The same
+situation occurs with files which have been deleted - they
+simply disappear, without any refreshing/reloading necessary.</p>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/features/index.php b/features/index.php
new file mode 100644
index 0000000..25db07a
--- /dev/null
+++ b/features/index.php
@@ -0,0 +1,12 @@
+<?php
+  $site_root = "../";
+  $page_title = "Features";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<p>Konqueror is a versatile application. Use the links on the left to take a look at \
its features.</p> +
+<?php
+  include("footer.inc");
+?>
diff --git a/features/menu.inc b/features/menu.inc
new file mode 100644
index 0000000..f1b64b6
--- /dev/null
+++ b/features/menu.inc
@@ -0,0 +1,6 @@
+<?php
+$this->appendLink("Browser","browser.php");
+$this->appendLink("File Manager","filemanager.php");
+$this->appendLink("Universal Viewer","viewer.php");
+$this->appendLink("Customizable Application","application.php");
+?>
diff --git a/features/viewer.php b/features/viewer.php
new file mode 100644
index 0000000..f69fae3
--- /dev/null
+++ b/features/viewer.php
@@ -0,0 +1,83 @@
+<?php
+  $site_root = "../";
+  $page_title = "Universal Viewer";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<p>
+   Konqueror can also serve as a viewer for a lot of file types.
+   Click on an image and it will display the image in the current view.
+   Click on a text file, it will show its contents. Same for postscript
+   and DVI files, KOffice files, and others.
+  </p>
+
+   <table border="0" cellspacing="15" cellpadding="0">
+
+    <tr>
+     <td width="320">
+      <a href="../pics/konq_image.png"><img src="../pics/konq_image.jpg" border="0" \
alt="An embedded image"  width="301" height="278"/></a> +     </td>
+     <td valign="top">
+      <p>
+       Right after clicking on a file containing an image, it gets embedded
+       into Konqueror.
+      </p>
+     </td>
+    </tr>
+<tr><td>&nbsp;</td><td></td></tr>
+
+    <tr>
+     <td>
+      <a href="../pics/konq_presents.png"><img src="../pics/konq_presents.jpg" \
border="0" alt="An embedded KPresenter document"  width="300" height="220"/></a> +    \
</td> +     <td valign="top">
+      <p>
+       Here you can see an embedded
+       KPresenter document from a presentation by <a
+       href="/developers/">David Faure</a>.
+      </p>
+     </td>
+    </tr>
+<tr><td>&nbsp;</td><td></td></tr>
+
+    <tr>
+     <td>
+      <a href="../pics/konq_word.png"><img src="../pics/konq_word.jpg" border="0" \
alt="An embedded KWord document"  width="300" height="271"/></a> +     </td>
+     <td valign="top">
+      <p>
+       Click on a KWord document to see its contents.
+       You don\'t need to install a KWord viewing application -- Konqueror and KWord
+       do it automatically.
+      </p>
+     </td>
+    </tr>
+<tr><td>&nbsp;</td><td></td></tr>
+
+   </table>
+
+<p>
+ On the technical side, the very nice thing about this is that
+ those viewers are not part of Konqueror and haven't been developed
+ specifically for it.
+</p>
+
+<p>
+ Konqueror embeds components (parts) provided by other applications.
+ The image-viewing part is KView, the text-viewing part is KWrite,
+ the DVI viewer KDVI, the PostScript viewer KGhostview, and of course
+ all KOffice documents are shown by their originating application.
+</p>
+
+<p>
+ Any new type of file you want to be able to display inside Konqueror,
+ you just need to write a part and register it with a desktop file.
+ No need to touch Konqueror in any case.
+ Embedding parts from other applications is provided by the library
+ called KParts.
+</p>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/index.php b/index.php
new file mode 100644
index 0000000..c9a0181
--- /dev/null
+++ b/index.php
@@ -0,0 +1,54 @@
+<?php
+  $site_root = "./";
+  $site_menus = 2;
+  $page_title = "Konqueror - Web Browser, File Manager - and more!";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<table border="0" cellspacing="0" cellpadding="4">
+<tr>
+<td><a href="features/filemanager.php"><img src="pics/kfm_icon.png" width="48" \
height="48" alt="File Manager Icon" border="0" /></a></td> +<td valign="top">
+<b>Konqueror</b> is the <a href="features/filemanager.php">file manager</a>
+for the K Desktop Environment. It supports basic file management on local
+UNIX filesystems, from simple cut/copy and paste operations to advanced
+remote and local network file browsing.
+</td>
+</tr>
+<tr>
+<td><a href="features/application.php"><img src="pics/gear.png" width="48" \
height="48" alt="Gear Icon" border="0" /></a></td> +<td valign="top">
+<b>Konqueror</b> is the canvas for all the latest KDE technology, from
+KIO slaves (which provide mechanisms for file access) to component
+embedding via the KParts object interface, and it is one of the most
+<a href="features/application.php">customizable applications</a> available.
+</td>
+</tr>
+<tr>
+<td><a href="features/browser.php"><img src="pics/web_icon.png" width="48" \
height="48" alt="Web Icon" border="0" /></a></td> +<td valign="top">
+<b>Konqueror</b> is an Open Source <a href="features/browser.php">web
+browser</a> with HTML 4.01 compliance, supporting Java applets,
+JavaScript, CSS 1, CSS 2.1, as well as Netscape plugins (for
+example, Flash or RealVideo plugins).
+</td>
+</tr>
+<tr>
+<td><a href="features/viewer.php"><img src="pics/kghostview_icon.png" width="48" \
height="48" alt="Viewer Icon" border="0" /></a></td> +<td valign="top">
+<b>Konqueror</b> is a <a href="features/viewer.php">universal viewing
+application</a>, capable of embedding read-only viewing components in
+itself to view documents without ever launching another application.
+</td>
+</tr>
+</table>
+
+
+<?php
+ kde_general_news("./news.rdf", 5, true);
+?>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/investigatebug/index.php b/investigatebug/index.php
new file mode 100644
index 0000000..e5410f7
--- /dev/null
+++ b/investigatebug/index.php
@@ -0,0 +1,256 @@
+<?php
+  $site_root = "../";
+  $page_title = "Investigating Konqueror Bugs";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<p>Here is some information about how to investigate a Konqueror bug, to
+gather as much information as possible before reporting the bug. Doing this
+helps the developers a great deal, because they directly know where the
+problem is, without having to do all the investigation themselves.</p>
+
+<p><b>Unfortunately due to the large number of bug reports received, and the
+large amount of time that it takes developers to identify issues,
+reports which do not include a testcase or are not described in reproduceable
+steps will get a low priority of fixing.</b></p>
+
+<p>This page is about bugs in the web browser only. For bugs in the
+file manager, or about any other KDE application, jump directly to
+the generic <a href="http://bugs.kde.org/Reporting.html">How to report a bug in
+KDE</a>.</p>
+
+<p>Please always test the latest version available. For browser bugs
+this means the latest <a \
href="http://developer.kde.org/build/index.html">development +version</a>, which can \
be very different from the latest stable release.</p> +
+<p>Also, always give a quick look at the <a href="../faq/">Konqueror FAQ</a>
+to see if the bug is a well-known bug, possibly with a known fix or workaround.</p>
+
+<p>The first step is finding out the type of bug this is about.
+The second step is to follow the instructions for this type of bug
+(follow the links relating to the type of problem).
+And the third step is to find out the right package to report the bug to.</p>
+
+<h2>Page appears completely empty</h2>
+
+<p>This could be a problem at many levels (HTML, HTTP, Javascript...).</p>
+
+<p>First check that you have Javascript activated, some sites use Javascript
+to do redirections etc.</p>
+
+<p>Use <code>wget</code> to download the page, and see if konqueror can
+view the local page. If yes, then it's an <a href="#http">HTTP problem</a>.
+Also try changing the user agent (in "Configure Konqueror"), to see if the site
+isn't giving different results depending on the browser.</p>
+
+<p>If you can't use wget (https site, etc.), try to view the HTML source
+from konqueror itself. If it's empty, then it's an <a href="#http">HTTP problem</a>,
+if not then it's an <a href="#html">HTML/CSS problem</a> or a <a \
href="#js">Javascript +problem</a>.</p>
+
+
+<h2>Page appears as plain text (I see the HTML source)</h2>
+
+<p>This is very probably an HTTP problem, see the <a href="#http">HTTP bug</a>
+section.</p>
+
+<h2>Authentication doesn't work, or isn't remembered</h2>
+This is very probably an HTTP problem, see the <a href="#http">HTTP bug</a> section.
+
+
+<h2>Rendering bugs</h2>
+
+<p>If something doesn't appear as it should (not the right position
+in the page, not the right font, etc.), see the <a href="#html">HTML/CSS problem</a>
+section.</p>
+
+
+<h2>Some (Javascript) animation or menu doesn't work</h2>
+
+<p>After checking that you have activated Javascript (in "Configure Konqueror"),
+go to the <a href="#js">Javascript problem</a> section.</p>
+
+
+<h2>Konqueror crashes</h2>
+
+<p>The most useful information you can provide in that case is a
+backtrace, but you need to compile KDE yourself (preferrably with
+<code>--enable-debug</code>) so the backtrace is useful, or to use
+development packages. Official binary packages are "stripped", so
+they don't contain any useful information for a backtrace. Simply
+paste the backtrace from DrKonqi, into the bugreport.</p>
+
+<p>Very important: a backtrace is good, but it's <em>not enough</em>. You
+must also describe on which site it happened, and which steps one should
+follow to reproduce the crash.</p>
+
+
+<h2>HTTPS sites don't work</h2>
+
+<p>First try other HTTPS sites. If the problem happens only on one,
+then try activating different ciphers in the SSL control module, some
+sites don't work well with SSLv3, some need TLS, etc. If the problem
+happens on all the https sites you try, then it could be an
+installation problem.</p>
+
+<p>A common case of problems (such as "the protocol https died
+unexpectedly") is if you don't have openssl at all (install it!) or
+when your binary packages were built with a certain version of
+openssl (for instance 0.9.5a) and you are using openssl 0.9.6. Those
+two versions are binary incompatible, so you have to use the same
+version as the one your packager used.</p>
+
+<p>If this still doesn't help, follow the instructions for
+<a href="#http">HTTP-related problems</a>, to get some debug output
+out of kio_http before reporting the bug.</p>
+
+
+<h2>Anything else</h2>
+
+<p>If the tips on this page don't seem related to your problem,
+jump to the next step, <a href="#package">finding the right package</a>.</p>
+
+<hr />
+
+<a name="html"></a><h2>HTML/CSS problem</h2>
+
+<p>Your bug is related to HTML and/or CSS. You need to know a bit
+HTML and follow these steps to build a <strong>test case</strong>:</p>
+
+<ol>
+ <li>Save the relevant page or frame on your disk.</li>
+ <li>Load the page from your disk and see if the problem is still there.</li>
+ <li><em>Only</em> if it's necessary to reproduce the bug: save framesets, images \
etc.</li> + <li>Throw out anything that has nothing to do with the bug, i.e. delete \
some +	stuff, reload to check if the problem is still there, delete more stuff.
+	Do this until you found the <em>exact</em> cause of the problem.
+	The HTML file should not have more than 20 lines at the end.</li>
+<li>The important part is: the page should be as short as possible to be
+able to still reproduce the bug. The shorter it is, the sooner it will get \
fixed!</li> +<li>The HTML does <em>not</em> have to be valid, however it is still \
recommended +to use <a \
href="http://validator.w3.org/file-upload.html">validator.w3.org</a> (note +	that you \
can <em>upload</em> files there, they don't have to be online) +to check the basic \
structure of your document.  +	Here's an example of a minimal test case that's valid \
HTML:<br /><br /> +
+<pre>
+&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;
+&lt;html&gt;
+&lt;head&gt;&lt;title&gt;konqi test&lt;/title&gt;&lt;/head&gt;
+&lt;body&gt;
+
+&lt;p&gt;insert the problematic HTML here&lt;/p&gt;
+
+&lt;/body&gt;
+&lt;/html&gt;
+</pre>
+<br /></li>
+
+<!--
+ <li>If the problem appears only with an invalid page, but not with a valid
+	one, first mail the webmaster of the page. The bug is in his page, not
+	in our browser. You may still submit this as a bug, but please
+	make clear in your report that it only happens with invalid pages.</li>
+-->
+ <li>Submit a bug report to <a href="http://bugs.kde.org">the KDE bug system</a>
+	with the test case in the bug report, and the description of the problem.
+	You should add "testcase" to the description of the bug so
+	it's easier for the developers to find test cases.</li>
+</ol>
+
+<a name="http"></a><h2>HTTP problem</h2>
+
+<p>Here's how to debug an HTTP problem,
+if you have compiled KDE from sources (otherwise there is no debug
+output to look into, since binary packages disable it).</p>
+
+<p>The goal here is to generate and access debug output messages,
+so first we have to make sure where it will end up.</p>
+
+<ul>
+ <li>If you start X using "startx", and if you distribution doesn't
+	automatically redirect output messages into a file in your
+	home directory (as Caldera does), then you should restart X using
+	<code>startx 2&gt;&amp;1 | tee ~/xsession.log</code>, and the debug
+	output will go into ~/xsession.log.</li>
+ <li>If you start X in 'runlevel 5', i.e. using xdm, gdm or kdm,
+	then the debug output automatically goes into ~/.xsession-errors
+	on most distributions (RedHat, Mandriva, Debian...) and
+	goes into ~/.X.err on SuSE.</li>
+</ul>
+
+<p>Now we can generate the debug output:</p>
+
+<ul>
+ <li>Run <code>kdebugdialog</code>, locate the areas 7103 and 7113,
+	and activate them (check the checkbox). Then press Ok.</li>
+ <li>Restart KDE (or simply kill any kio_http process)</li>
+ <li>Open konqueror onto the webpage you're interested in</li>
+ <li>Look for the debug output at the location previously determined</li>
+</ul>
+
+<p>Now, actually digging info out of the debug output requires to know the
+HTTP protocol. If you don't, try to reduce the debug output to what starts
+with kio_http, and send it as part of the bug report.</p>
+
+<a name="js"></a><h2>Javascript problem</h2>
+
+<p>A very useful piece of information (besides a reduced test case that
+shows the bug) is the debug output from konqueror, since any javascript
+error is printed there (assuming you're not using RPMs with disabled
+debug output).</p>
+
+<p>Simply start "konqueror" from a terminal, and open the web page in question.
+The lines startings with "JS:" are those printed by the javascript interpreter.
+If you see any errors, report them as part of the bug report.</p>
+
+<hr />
+
+<p><a name="package"></a>Once you have gathered the required information,
+find the right package to which the bug should be reported to :</p>
+
+	<table border="1">
+		<tr>
+			<th>Package</th>
+			<th>Problem</th>
+		</tr>
+		<tr>
+			<td>konqueror</td>
+			<td>Any bug that is not inside the "view", but part of the
+			framework, e.g. the toolbar</td>
+		</tr>
+		<tr>
+			<td>khtml</td>
+			<td>Rendering/layouting bugs, crashes that don't go a away when you visit a html
+			page and have Javascript and Java disabled</td>
+		</tr>
+		<tr>
+			<td>kjs</td>
+			<td>Any dynamic Javascript thingie not working or crashing. Might be a bug in
+			khtml, but as it's difficult to judge for the user this package line is fine</td>
+		</tr>
+		<tr>
+			<td>kjava</td>
+			<td>Java related problems</td>
+		</tr>
+		<tr>
+			<td>kssl</td>
+			<td>https (SSL) related problems</td>
+		</tr>
+		<tr>
+			<td>kio_http</td>
+			<td>Problems with the http communication itself.</td>
+		</tr>
+		<tr>
+			<td>kcookiejar</td>
+			<td>Cookie related problems</td>
+		</tr>
+	</table>
+
+<p>Now go to <a href="http://bugs.kde.org">the KDE bug system</a>
+to send in a bug report. Thanks!</p>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/javahowto/index.php b/javahowto/index.php
new file mode 100644
index 0000000..97ab9ee
--- /dev/null
+++ b/javahowto/index.php
@@ -0,0 +1,92 @@
+<?php
+  $site_root = "../";
+  $page_title = "Java HOWTO";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<p>
+ This document is a small HOWTO that will explain how to
+ configure Konqueror to take advantage of its Java support.  The Java support
+ relies on the KDE Java Applet Server( KJAS ), which was begun by
+ <a href="mailto:rich@kde.org">Richard Moore</a> and was finished
+ and is currently maintained by
+ <a href="mailto:wynnw@caldera.com">Wynn Wilkes</a>.
+
+ KJAS uses an external jvm which runs in a different process than Konqueror.
+ This has the advantage of developers being able to use Konqueror as a
+ deployment platform for the latest java technologies without having to worry
+ about plugins.  However, some applets out there were designed for older jvm's.
+ Some of these may fail to run correctly with the current jvm's required by KJAS.  A \
general + rule is: if your jdk's appletviewer can show the applet, then KJAS should.  \
Please + verify that before submitting bug reports.
+</p>
+
+<b>Software Requirements</b>
+<p>
+ KJAS requires a Java 2 compatible jvm to operate correctly.  This new release
+ has a built in Security Manager that will not work on the Java 1.1 platform.
+ You do not need a complete JDK for KJAS to work- you just need a JRE.
+</p>
+<p>
+ KJAS has been tested against IBM's and Blackdown's 1.3 releases, and Sun's 1.2.2 \
release. + Currently, Sun's 1.3 jvm is not supported, but work is going on to fix the \
problems with + that version.  Hopefully Sun's 1.3.1 release will work.
+ 
+ It's been found that KJAS seems to work best under Blackdown's jvm.
+ Kaffe and IBM's 1.1.8 will probably not work- they are not officially supported.
+</p>
+
+<p> 
+ Blackdown's JVM can be obtained from <a \
href="http://www.blackdown.org">http://www.blackdown.org</a>.<br /> + IBM's Java \
products can be found at <a \
href="http://www.ibm.com/developer/java/">http://www.ibm.com/developer/java/</a>.<br \
/> + Sun's Java products can be found at <a \
href="http://java.sun.com/products/">http://java.sun.com/products/</a>.<br /> +</p>
+
+<b>Configuring Konqueror</b>
+<p>
+ Konqueror will default to using 'java' to start the Applet Server.  If you need to \
use a + different jvm, or your system does not have 'java' in it's path, you can use \
the KControl + Module for Konqueror to configure the correct java to use.  For \
example, if you install + IBM's IBMJava2-SDK-1.3-5.0.i386.rpm, the rpm will install \
to /opt/IBMJava2-13.  From + a konqueror window, choose the Settings->Configure \
Konqueror Menu option.  In the + Konqueror Browser module, choose the Java Tab.  In \
the edit box for 'Path to java executable', + type /opt/IbmJava2-13/bin/java.  \
Konqueror will now use the IBM jvm. +</p>
+
+<b>Getting HTTPS support for Applets</b>
+<p>
+ You can get applets to work over https with konqueror using Sun Microsystem's JSSE
+ (Java Secure Sockets Extension classes).  These are available at <a \
href="http://java.sun.com/products/jsse"> + http://java.sun.com/products/jsse</a>.  \
You will need to download JSSE version 1.0.3 (Sun requires + a free registration to \
do so).  You will get a zip file that will contain 3 jar files: jcert.jar, jnet.jar, \
and jsse.jar. + Simply copy those to your $KDEDIRS/share/apps/kjava/ directory and \
KJAS will automatically use them. + If you don't have write access to your $KDEDIRS \
directory, then copy the three jar files to your + $KDEHOME/share/apps/kjava/ \
directory.  Then copy the $KDEDIRS/share/apps/kjava/kjava.jar to + \
$KDEHOME/share/apps/kjava/.  Konqueror will then look here instead of the KDEDIRS \
directory. +</p>
+<p>
+ Please Note that you do NOT need to edit your java.security file or do any of the \
steps outlined + in the JSSE installation howto.  Simply copy the jar files and KJAS \
will make use of them. +</p>
+
+<b>It still doesn't work, what should I do?</b>
+<p>
+It depends on the error....
+
+If applets fail to show up, please enable the Java console to make sure that your \
java process starts. +If the console does not show up, verify that the path that the \
Konqueror Browser Control Module has set +for the Java executable leads to an actual \
java executable. +
+If applets fail to load and the java console spits out ClassFormatExceptions errors, \
then there is a problem +with the applet.  Most likely it has not been tested on the \
latest jvm's.  Check the site with the appletviewer +from your jdk. If the \
appletviewer shows the applet, then KJAS has a bug- otherwise please talk +to the \
applet owner and ask them to support Java 2 with their applets. +
+If you do find an applet that should work, but doesn't, by all means enter a bug \
report.  Please report +what jvm you're using when you do so.
+</p>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/menu.inc b/menu.inc
new file mode 100644
index 0000000..5baeedc
--- /dev/null
+++ b/menu.inc
@@ -0,0 +1,24 @@
+<?php
+$this->setName ("Konqueror Homepage");
+
+$section =& $this->appendSection("Inform");
+$section->appendLink("Home","");
+$section->appendLink("KDE Home","http://www.kde.org/",false);
+$section->appendDir("Announcements", "announcements");
+$section->appendLink("News","news.php");
+$section->appendDir("Features", "features");
+$section->appendLink("Konqueror Embedded", "embedded");
+
+$section =& $this->appendSection("Technical");
+$section->appendLink("Konqueror FAQ", "faq");
+$section->appendLink("Java HOWTO", "javahowto");
+$section->appendLink("CSS Support", "css");
+
+$section =& $this->appendSection("Download");
+$section->appendLink("Download Konqueror", "download");
+
+$section =& $this->appendSection("Develop");
+$section->appendLink("Developers", "developers");
+$section->appendLink("Investigating Bugs", "investigatebug");
+$section->appendDir("Embedded Components Tutorial", "componentstutorial");
+?>
diff --git a/news.php b/news.php
new file mode 100644
index 0000000..f39970b
--- /dev/null
+++ b/news.php
@@ -0,0 +1,14 @@
+<?php
+  $site_root = "./";
+  $page_title = "Konqueror News";
+  include("konqueror.inc");
+  include("header.inc");
+?>
+
+<?php
+	kde_general_news("./news.rdf", 25, false);
+?>
+
+<?php
+  include("footer.inc");
+?>
diff --git a/news.rdf b/news.rdf
new file mode 100644
index 0000000..7c042c4
--- /dev/null
+++ b/news.rdf
@@ -0,0 +1,277 @@
+<?xml version="1.0"?>
+<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd">
+<rss version="0.91">
+  <channel>
+    <title>konqueror.org: K Desktop Environement Browser</title>
+    <link>http://konqueror.kde.org/</link>
+    <description>KDE is a browser for the K Desktop Environment</description>
+    <language>en-us</language>
+    <webMaster>webmaster@konqueror.org (Webmaster)</webMaster>
+    <copyright>Copyright (c) 2003, Konqueror.org Webmaster</copyright>
+
+<item>
+<title>Konqueror 3.5.4 Review on SoftPedia</title>
+<date>25-September-2006</date>
+<fullstory>SoftPedia wrote a <a \
href="http://www.softpedia.com/reviews/linux/Konqueror-Review-36082.shtml">very nice \
review of Konqueror</a> - as a file manager, viewer, and web browser.</fullstory> \
+</item> +
+<item>
+<title>Konqueror 3.5.2 Released</title>
+<date>28-March-2006</date>
+<fullstory>Konqueror 3.5.2 was released as part of <a \
href="http://www.kde.org/announcements/announce-3.5.2.php">KDE 3.5.2</a>.  +khtml has \
had some performance improvements, as well some crash and bug fixes. You can see more \
khtml changes and improvements at <a \
href="http://www.kde.org/announcements/changelogs/changelog3_5_1to3_5_2.php#kdelibs">the \
KDE 3.5.1 to 3.5.2 Changelog</a>.</fullstory> +</item>
+<item>
+
+<title>KHTML Info Page Launched</title>
+<date>4-June-2005</date>
+<fullstory>
+Developers of the Konqueror components KHTML, KJS and KSVG have launched <a \
href="http://khtml.info/">KHTML.info</a>. By creating an open Web portal the \
developers wish to promote their work and reach out to users and developers from both \
Open Source as well as commercial environments. +</fullstory>
+</item>
+
+<item>
+<title>Konqueror 3.4 Tricks feature</title>
+<date>4-June-2005</date>
+<fullstory>
+The Linuxuser magazine released an article about <a \
href="http://www.linux-magazine.com/issue/56/Konqueror_3.4_Tricks.pdf">Working with \
Konqueror 3.4</a>. +</fullstory>
+</item>
+
+<item>
+<title>Konqueror 3.4 Released</title>
+<date>16-March-2005</date>
+<fullstory>Konqueror 3.4 was released as part of <a \
href="http://www.kde.org/announcements/announce-3.4.php">KDE 3.4</a>.  +khtml has \
improved standard support and now close to full support for CSS 2.1 and the CSS 3 \
selectors module. KHTML +plugins are now configurable, so the user can selectively \
disable ones that are not used.</fullstory> +</item>
+
+<item>
+<title>Konqueror 3.3 Released</title>
+<date>19-August-2004</date>
+<fullstory>Konqueror 3.3 was released as part of <a \
href="http://www.kde.org/announcements/announce-3.3.php">KDE 3.3</a>. +This release \
ships more WebCore merges, type-ahead-find and unsubmitted form content warnings in \
khtml. Konqueror features +IM contact integration, many flicker fixes and tab \
improvements. Plugins for documentation relations and a search bar were added to \
kdeaddons.</fullstory> +</item>
+
+<item>
+<title>Konqueror 3.2.3 Released</title>
+<date>09-June-2004</date>
+<fullstory>Konqueror 3.2.3 was released as part of <a \
href="http://www.kde.org/announcements/announce-3.2.3.php">KDE 3.2.3</a>. <a \
href="http://www.kde.org/announcements/changelogs/changelog3_2_2_to_3_2_3.php">Some \
bugs were fixed</a> in khtml and Konqueror.</fullstory> +</item>
+
+<item>
+<title>Konqueror 3.2.2 Released</title>
+<date>19-April-2004</date>
+<fullstory>Konqueror 3.2.2 was released as part of <a \
href="http://www.kde.org/announcements/announce-3.2.2.php">KDE 3.2.2</a>. <a \
href="http://www.kde.org/announcements/changelogs/changelog3_2_1_to_3_2_2.php">Some \
bugs were fixed</a> in khtml and Konqueror.</fullstory> +</item>
+
+<item>
+<title>Konqueror 3.2.1 Released</title>
+<date>9-March-2004</date>
+<fullstory>Konqueror 3.2.1 was released as part of <a \
href="http://www.kde.org/announcements/announce-3.2.1.php">KDE 3.2.1</a>. <a \
href="http://www.kde.org/announcements/changelogs/changelog3_2_0_to_3_2_1.php">Several \
bugs were fixed</a> in khtml and Konqueror.</fullstory> +</item>
+
+<item>
+<title>Konqueror 3.2 Released</title>
+<date>3-February-2004</date>
+<fullstory>Konqueror 3.2 was released as part of <a \
href="http://www.kde.org/announcements/announce-3.2.php">KDE 3.2</a>. +This is the \
first release which ships with most of the khtml improvements which Apple supplied. \
Other +enhancements include preloading, spellchecking in text forms, a web sidebar \
and improved bookmark +handling and tabbed browsing.</fullstory>
+</item>
+
+<item>
+<title>KDE Conquers the Vectors with KSVG</title>
+<date>15-September-2003</date>
+<fullstory>With the recent addition of <a href="http://svg.kde.org/">KSVG</a> to the \
kdegraphics module for +KDE 3.2, Konqueror gains the ability to display SVG icons and \
websites which make use of it. Read the +<a \
href="http://dot.kde.org/1063656242/">dot.kde.org story</a> for details.</fullstory> \
+</item> +
+<item>
+<title>Konqueror Sidebar Gains Functionality</title>
+<date>04-April-2003</date>
+<fullstory>George Staikos added a feature which allows you to have a website panel \
as known from Mozilla within the +Konqueror sidebar. dot.kde.org has the <a \
href="http://dot.kde.org/1049415292/">full story with many \
screenshots</a>.</fullstory> +</item>
+
+<item>
+<title>Apple chooses KHTML as rendering engine for Safari</title>
+<date>08-January-2003</date>
+<fullstory>Apple Computer Inc. released <a \
href="http://www.apple.com/safari/">Safari</a>, a new fast and lean Browser +for \
MacOS X using KHTML, Konqueror's outstanding rendering engine. After the announcement \
on MacWorld, +the Safari Team today passed all their changes along with a detailed \
ChangeLog to the Konqueror Developers and it seems that co-operation between the two \
Teams will continously improve KHTML. <a href="http://dot.kde.org/1041971213/">Get \
all details!</a> +</fullstory>
+</item>
+
+<item>
+<title>Konqueror Cross Site Scripting Vulnerability</title>
+<date>10-September-2002</date>
+<fullstory>
+The KDE Project released two security advisories today. The <a \
href="http://www.kde.org/info/security/advisory-20020908-1.txt"> +first advisory</a> \
is about a vulnerability in handling secure cookies, which has been fixed already in \
the +<a href="http://www.kde.org/announcements/announce-3.0.3.html">KDE 3.0.3 \
release</a>. +<a href="http://www.kde.org/info/security/advisory-20020908-2.txt">Another \
vulnerability</a> was discovered last +week on Bugtraq, which is related to the cross \
site scripting protection in Konqueror. +<a \
href="ftp://ftp.kde.org/pub/kde/security_patches/">A patch</a> and an updated +<a \
href="http://download.kde.org/stable/3.0.3/src/kdelibs-3.0.3a.tar.bz2">kdelibs</a> \
package was released today +to fix both problems. The <a \
href="http://www.kde.org/info/3.0.3.html">KDE 3.0.3 Info page</a> was updated as \
well. +It is recommended to upgrade immediately.</fullstory>
+</item>
+
+<item>
+<title>Konqueror SSL vulnerability</title>
+<date>19-August-2002</date>
+<fullstory>
+A problem has been discovered in the way in which Konqueror handles SSL \
certificates. +SSL certificates are used by websites to prove that they are indeed \
the website the +user thinks they are. An <a \
href="http://www.kde.org/info/security/advisory-20020818-1.txt">advisory</a> +has \
been released to bring this issue under the attention of all KDE users. The solution \
+is to upgrade kdelibs to <a href="http://www.kde.org/info/3.0.3.html">KDE 3.0.3</a>. \
+A patch for KDE 2.2.2 is also <a \
href="ftp://ftp.kde.org/pub/kde/security_patches">available</a>.</fullstory> +</item>
+
+<item>
+<title>Tabbed Browsing Support</title>
+<date>29-June-2002</date>
+<fullstory>The <a href="http://developer.kde.org/build/compile_cvs.html">CVS \
version</a> of Konqueror +now comes with support for tabbed browsing.</fullstory>
+</item>
+
+<item>
+<title>KDE Wins three Linux Journal awards</title>
+<date>09-November-2001</date>
+<fullstory>The KDE Web Browser Konqueror received the
+<a href="http://noframes.linuxjournal.com/articles/buzz/0052.html">editors' choice
+award </a>for the
+web client thanks to "its high quality and for its very good integration into
+the desktop". The other KDE laureates were KDevelop as best development tool
+and KDE itself for being the best desktop environment.</fullstory>
+</item>
+
+<item>
+<title>Konqueror wins Linux New Media award</title>
+<date>22-October-2001</date>
+<fullstory>Konqueror, the versatile KDE web browser, file manager and document
+viewer, won the award for "Best client-side Open Source Software" at at the
+"Systems" fair in Munich, Germany. Alongside <a
+href="http://www.kdevelop.org">KDevelop</a>, KDE's integrated development
+environment was awarded as best development software. More details about the
+awards are available (in German) from the <a
+href="http://www.linux-community.de/Neues/story?storyid=2174">linux-community.de</a>
+web site.</fullstory>
+</item>
+
+<item>
+<title>Konqueror JavaScript/DOM/CSS reviewed</title>
+<date>11-September-2001</date>
+<fullstory>Peter-Paul Koch, maintainer of a JavaScript/DOM/CSS testing site, updated
+his <a href="http://www.xs4all.nl/~ppk/js/browsers5.html">browser
+section</a>. He reviews Konqueror, together with the other Version 5
+browsers, Mozilla and IE and concludes, "In short, the few remaining bugs in
+Konqueror are details that no doubt will be solved soon. The development team
+has succeeded in building an excellent, standards compliant browser from
+scratch."</fullstory>
+</item>
+
+<item>
+<title>Konqueror wins Tuxie Award</title>
+<date>11-September-2001</date>
+<fullstory>In the <a href="http://www.linux-mag.com/2001-09/toc.html">September 2001
+issue</a> of Linux Magazine, Konqueror, the KDE all-in-one wunder kind, has
+been awarded the Tuxie for Best Web Browser as part of the 2001 Editors'
+Choice Awards.
+</fullstory>
+</item>
+
+<item>
+<title>Interview with the Konqueror core team</title>
+<date>04-September-2001</date>
+<fullstory>OSnews is running an interview with Konqueror developers Dirk Mueller,
+Waldo Bastian, Carsten Pfeiffer and Simon Hausmann about what the future
+holds in store for Konqueror. Most of the covered topics are familiar to the
+frequent dot.kde.org reader, but some stuff -- such as details of the Atheos
+port, font handling, and plans for improved CSS2 support -- is very
+interesting. Read the <a
+href="http://www.osnews.com/story.php?news_id=82">whole interview</a>.
+</fullstory>
+</item>
+
+ <item>
+ <title>Konqueror Gets Text-to-Speech Synthesis</title>
+ <date>15-July-2001</date>
+ <fullstory>George Russell today released <a \
href="http://dogma.freebsd-uk.eu.org/~grrussel/speaker.html">Speaker</a>, a first \
salvo at making Konqueror synthesize text to speech and hence making Konqueror \
useable by people with visual impairments and by people who are otherwise unable to \
view a screen. Speaker is a plugin for Konqueror which provides \
text-to-speech-synthesis using the <a \
href="http://www.cstr.ed.ac.uk/projects/festival/">Festival Speech Synthesis \
System</a> engine developed at <a href="http://www.ed.ac.uk/">Edinburgh \
University</a>.</fullstory> + </item>
+
+
+ <item>
+ <title>Konqueror Gets Activ(eX)ated</title>
+ <date>10-July-2001</date>
+ <fullstory>Konqueror just gained the ability to embed MSIE ActiveX controls such as \
the popular + Shockwave Player, and LivePics.
+ Read the <a href="/announcements/reaktivate.html">full announcement</a> and the \
discussions + on the <a href="http://dot.kde.org/994747675/">dot</a>.</fullstory>
+ </item>
+
+ <item>
+ <title>Konqueror gets form completion</title>
+ <date>19-Mar-2001</date>
+ <fullstory>Another cool khtml feature just made it into CVS. Konqueror is now \
capable of +   completing forms in webformulars as in IE5. Read the complete story on \
<a +   href="http://kt.zork.net/kde/kde20010316_2.html#2">Kernel Cousin \
KDE</a>.</fullstory> + </item>
+
+ <item>
+ <title>Konqueror Goes Embedded!</title>
+ <date>07-Dec-2000</date>
+ <fullstory>Konqueror has been ported to <a
+   href="http://www.trolltech.com/company/announce/embeddeddl.html">Qt/Embedded</a>
+   by Simon Hausmann. The story is <a href="http://dot.kde.org/976193346/">here</a>
+   and the code is <a href="http://devel-home.kde.org/~hausmann/">here</a>.
+   Exciting news for owners of Qt/Embedded-enabled palmtop devices !
+ </fullstory>
+ </item>
+
+ <item>
+ <title>Interoperable XML bookmarks</title>
+ <date>29-Nov-2000</date>
+ <fullstory>Konqueror now uses the XBEL standard for its bookmarks. <a
+   href="http://pyxml.sourceforge.net/topics/xbel/">XBEL</a> is an XML
+   specification for storing bookmarks, as defined by the Python XML SIG. This is
+   certainly a step in the direction of more interoperatibility with other
+   browsers, bookmark management tools and bookmark collections.
+ </fullstory>
+ </item>
+
+ <item>
+ <title>Text file preview</title>
+ <date>16-Nov-2000</date>
+ <fullstory>Konqueror is now able to show a preview of the contents of text files, \
not only +    image files anymore.
+ </fullstory>
+ </item>
+
+ <item>
+ <title>Network-transparent image preview</title>
+ <date>02-Jul-2000</date>
+ <fullstory>The well-known "image preview" feature now works over the network
+   as well, for instance when browsing a FTP server with images, or
+   a Windows share. It supports both pixie (3 different sizes) and xv thumbnails.
+ <date>
+   Another new feature, asked by konqueror's early users, is listing with
+   wildcards, like /tmp/*.txt
+ </fullstory>
+ </item>
+
+ <item>
+ <title>Undo feature</title>
+ <date>24-Jun-2000</date>
+ <fullstory>Konqueror now supports undo when used as a file manager. Copying,
+    moving and deleting files (if using the Trash Bin) can be undone.
+    Discover many other new features by trying the current CVS!
+ </fullstory>
+ </item>
+
+</channel>
+</rss>
diff --git a/pics/gear.png b/pics/gear.png
new file mode 100644
index 0000000..f3631a8
Binary files /dev/null and b/pics/gear.png differ
diff --git a/pics/kfm_icon.png b/pics/kfm_icon.png
new file mode 100644
index 0000000..0a50e32
Binary files /dev/null and b/pics/kfm_icon.png differ
diff --git a/pics/kghostview_icon.png b/pics/kghostview_icon.png
new file mode 100644
index 0000000..0289cea
Binary files /dev/null and b/pics/kghostview_icon.png differ
diff --git a/pics/konq_about.png b/pics/konq_about.png
new file mode 100644
index 0000000..1eb2ad5
Binary files /dev/null and b/pics/konq_about.png differ
diff --git a/pics/konq_about_sm.png b/pics/konq_about_sm.png
new file mode 100644
index 0000000..19eb768
Binary files /dev/null and b/pics/konq_about_sm.png differ
diff --git a/pics/konq_bidi.png b/pics/konq_bidi.png
new file mode 100644
index 0000000..477ef26
Binary files /dev/null and b/pics/konq_bidi.png differ
diff --git a/pics/konq_crypto.png b/pics/konq_crypto.png
new file mode 100644
index 0000000..b22d1ec
Binary files /dev/null and b/pics/konq_crypto.png differ
diff --git a/pics/konq_explore.png b/pics/konq_explore.png
new file mode 100644
index 0000000..bc76ed2
Binary files /dev/null and b/pics/konq_explore.png differ
diff --git a/pics/konq_explore_sm.png b/pics/konq_explore_sm.png
new file mode 100644
index 0000000..8b0a2f7
Binary files /dev/null and b/pics/konq_explore_sm.png differ
diff --git a/pics/konq_hybrid.png b/pics/konq_hybrid.png
new file mode 100644
index 0000000..ef2f341
Binary files /dev/null and b/pics/konq_hybrid.png differ
diff --git a/pics/konq_hybrid_sm.png b/pics/konq_hybrid_sm.png
new file mode 100644
index 0000000..b1b6380
Binary files /dev/null and b/pics/konq_hybrid_sm.png differ
diff --git a/pics/konq_icon.png b/pics/konq_icon.png
new file mode 100644
index 0000000..a489560
Binary files /dev/null and b/pics/konq_icon.png differ
diff --git a/pics/konq_icon_sm.png b/pics/konq_icon_sm.png
new file mode 100644
index 0000000..51ab73f
Binary files /dev/null and b/pics/konq_icon_sm.png differ
diff --git a/pics/konq_image.jpg b/pics/konq_image.jpg
new file mode 100644
index 0000000..76f2607
Binary files /dev/null and b/pics/konq_image.jpg differ
diff --git a/pics/konq_image.png b/pics/konq_image.png
new file mode 100644
index 0000000..cd7b4d5
Binary files /dev/null and b/pics/konq_image.png differ
diff --git a/pics/konq_konquer.png b/pics/konq_konquer.png
new file mode 100644
index 0000000..d8b2785
Binary files /dev/null and b/pics/konq_konquer.png differ
diff --git a/pics/konq_konquer_sm.png b/pics/konq_konquer_sm.png
new file mode 100644
index 0000000..8e404e7
Binary files /dev/null and b/pics/konq_konquer_sm.png differ
diff --git a/pics/konq_navigate.png b/pics/konq_navigate.png
new file mode 100644
index 0000000..6887dab
Binary files /dev/null and b/pics/konq_navigate.png differ
diff --git a/pics/konq_navigate_sm.png b/pics/konq_navigate_sm.png
new file mode 100644
index 0000000..1a87f97
Binary files /dev/null and b/pics/konq_navigate_sm.png differ
diff --git a/pics/konq_newrc.png b/pics/konq_newrc.png
new file mode 100644
index 0000000..72af112
Binary files /dev/null and b/pics/konq_newrc.png differ
diff --git a/pics/konq_newrc_sm.png b/pics/konq_newrc_sm.png
new file mode 100644
index 0000000..3895b12
Binary files /dev/null and b/pics/konq_newrc_sm.png differ
diff --git a/pics/konq_office.jpg b/pics/konq_office.jpg
new file mode 100644
index 0000000..b75c5db
Binary files /dev/null and b/pics/konq_office.jpg differ
diff --git a/pics/konq_office.png b/pics/konq_office.png
new file mode 100644
index 0000000..73e74c4
Binary files /dev/null and b/pics/konq_office.png differ
diff --git a/pics/konq_presents.jpg b/pics/konq_presents.jpg
new file mode 100644
index 0000000..ad7625f
Binary files /dev/null and b/pics/konq_presents.jpg differ
diff --git a/pics/konq_presents.png b/pics/konq_presents.png
new file mode 100644
index 0000000..9c0caa3
Binary files /dev/null and b/pics/konq_presents.png differ
diff --git a/pics/konq_std.png b/pics/konq_std.png
new file mode 100644
index 0000000..1a44b92
Binary files /dev/null and b/pics/konq_std.png differ
diff --git a/pics/konq_std_sm.png b/pics/konq_std_sm.png
new file mode 100644
index 0000000..46e707d
Binary files /dev/null and b/pics/konq_std_sm.png differ
diff --git a/pics/konq_word.jpg b/pics/konq_word.jpg
new file mode 100644
index 0000000..82f4420
Binary files /dev/null and b/pics/konq_word.jpg differ
diff --git a/pics/konq_word.png b/pics/konq_word.png
new file mode 100644
index 0000000..452f13a
Binary files /dev/null and b/pics/konq_word.png differ
diff --git a/pics/web_icon.png b/pics/web_icon.png
new file mode 100644
index 0000000..8a83a7f
Binary files /dev/null and b/pics/web_icon.png differ
diff --git a/robots.txt b/robots.txt
new file mode 100644
index 0000000..e69de29
diff --git a/site.inc b/site.inc
new file mode 100644
index 0000000..74ec481
--- /dev/null
+++ b/site.inc
@@ -0,0 +1,8 @@
+<?php
+$site_title = "Konqueror";
+$templatepath = "newlayout/";
+$site_logo_left = siteLogo("/media/images/konqueror.png", "64", "64");
+$site_external = true;
+$name = "konqueror.org Webmaster";
+$mail = "webmaster@konqueror.org";
+?>


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic