changeset 8:2b9634b63474 v1.2.0

* Update to v1.0 for release * Update to latest XSL * Rename Install.xml to install.xml because validation became picky about the capitalisation no-open-ticket
author IBBoard <dev@ibboard.co.uk>
date Sun, 01 Aug 2010 19:52:31 +0000
parents ff8527bb5116
children 09596edfe65e
files Install.xml contrib/MultiRaceRankThemesIntegration.xml contrib/modx.prosilver.en.xsl install.xml modx.prosilver.en.xsl subsilver2.xml
diffstat 6 files changed, 2035 insertions(+), 665 deletions(-) [+]
line wrap: on
line diff
--- a/Install.xml	Wed Jun 17 15:16:02 2009 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,272 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<?xml-stylesheet type="text/xsl" href="modx.prosilver.en.xsl"?>
-<!--For security purposes, please check: http://www.phpbb.com/mods/ for the
-      latest version of this MOD. Although MODs are checked before being
-      allowed in the MODs Database there is no guarantee that there are no
-      security problems within the MOD. No support will be given for MODs not
-      found within the MODs Database which can be found at
-      http://www.phpbb.com/mods/-->
-<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phpbb.com/mods/xml/modx-1.2.1.xsd">
-
-	<header>
-		<license>http://opensource.org/licenses/gpl-license.php GNU General Public License v2</license>
-		<title lang="en-gb">Special and Normal Rank Images</title>
-		<description lang="en-gb">This MOD will allow users with special ranks (e.g. Administrators) to have a normal rank image in addition to their special rank image in topics and on their profile page.</description>
-		<author-notes lang="en-gb"><![CDATA[While this mod doesn't have to be installed along-side the "Multi-Race Rank Theme" mod, it is compatible with the mod and can be used to compliment it. Instructions on how to alter the Multi-Race Rank Theme mod to allow users with special ranks to choose a theme can be found in the /contrib folder.
-
-The styling used by this mod is entirely arbitrary and was included as an example. You may wish to use different HTML in memberlist_view.html and viewtopic_body.html.]]></author-notes>
-		<author-group>
-			<author>
-				<realname>IBBoard</realname>
-				<email>phpbb@ibboard.co.uk</email>
-				<username>IBBoard</username>
-				<homepage>http://www.ibboard.co.uk</homepage>
-			</author>
-		</author-group>
-		<link-group>
-			<link type="template" href="subsilver2.xml" lang="en-gb">subsilver2</link>
-			<link type="contrib" href="contrib/MultiRaceRankThemesIntegration.xml" lang="en-gb">Multi-Race Rank Theme MOD integration</link>
-		</link-group>
-		<mod-version>1.1.0</mod-version>
-		<installation>
-			<level>intermediate</level>
-			<time>600</time>
-			<target-version>3.0.5</target-version>
-		</installation>
-		<history>
-			<entry>
-				<date>2009-06-15</date>
-				<rev-version>1.1.0</rev-version>
-				<changelog lang="en-gb">
-					<change>Add: Add config value for Memberlist that also fixes the situation where only users with special ranks show ranks in the members list</change>
-					<change>Add: Add code and template to add both ranks when viewing PMs</change>
-					<change>Change: Update documentation on get_user_additional_rank to make it different to get_user_rank</change>
-				</changelog>
-			</entry>
-			<entry>
-				<date>2009-01-09</date>
-				<rev-version>1.0.1</rev-version>
-				<changelog lang="en-gb">
-					<change>No code changes - convert instructions to less semantically rich MODX 1.2.1 format</change>
-				</changelog>
-			</entry>
-			<entry>
-				<date>2009-01-08</date>
-				<rev-version>1.0.0</rev-version>
-				<changelog lang="en-gb">
-					<change>No code changes - first release</change>
-				</changelog>
-			</entry>
-			<entry>
-				<date>2008-05-12</date>
-				<rev-version>0.1.5</rev-version>
-				<changelog lang="en-gb">
-					<change>Fix: Stop users without a special rank showing their posting rank twice when SPECIAL_RANK_AS_EXTRA is set to true</change>
-				</changelog>
-			</entry>
-			<entry>
-				<date>2008-05-09</date>
-				<rev-version>0.1.4b</rev-version>
-				<changelog lang="en-gb">
-					<change>Update: Add ability to have the special rank show as the 'extra' rank to allow admins to have their admin rank in a different location to their post rank (add new change to includes/constants.php and overhaul changes in viewtopic.php and memberlist.php)</change>
-				</changelog>
-			</entry>
-			<entry>
-				<date>2008-05-05</date>
-				<rev-version>0.1.3b</rev-version>
-				<changelog lang="en-gb">
-					<change>Fix: Move mis-placed instruction from a template file to memberlist.php and make sure instruction doesn't match multiple locations</change>
-					<change>Change: Separate out Subsilver instructions</change>
-				</changelog>
-			</entry>
-			<entry>
-				<date>2008-04-13</date>
-				<rev-version>0.1.2b</rev-version>
-				<changelog lang="en-gb">
-					<change>Fix: "Undeclared index" warnings that were reported in viewtopic.php when viewing guest posts (added setting of blank defaults for guests)</change>
-				</changelog>
-			</entry>
-			<entry>
-				<date>2008-04-13</date>
-				<rev-version>0.1.1b</rev-version>
-				<changelog lang="en-gb">
-					<change>Initial release</change>
-				</changelog>
-			</entry>
-		</history>
-	</header>
-	<action-group>
-		<open src="includes/constants.php">
-			<edit>
-				<find><![CDATA[// Additional constants]]></find>
-				<action type="after-add"><![CDATA[// Special and normal rank images
-define('SHOW_SPECIAL_AS_EXTRA', false); //Set to true if you want topics and profiles to show the special ranks, e.g. Administrator, as the 'extra' rank
-define('SHOW_ONLY_NORMAL_RANKS_ON_MEMBERLIST', false); //Set to true if you want the memberslist to show only normal ranks and not special ranks
-]]>
-				</action>
-			</edit>
-		</open>
-		<open src="includes/functions_display.php">
-			<edit>
-				<find><![CDATA[/**
-* Get user avatar]]></find>
-				<action type="before-add"><![CDATA[/**
-* Get user's additional (normal) rank title and image if they have a special rank
-*
-* @param int $user_rank the current stored users rank id
-* @param int $user_posts the users number of posts
-* @param string &$rank_title the additional rank title will be stored here after execution, if the user has an additional rank
-* @param string &$rank_img the additional rank image as full img tag is stored here after execution, if the user has an additional rank
-* @param string &$rank_img_src the additional rank image source is stored here after execution, if the user has an additional rank
-*
-*/
-function get_user_additional_rank($user_rank, $user_posts, &$rank_title, &$rank_img, &$rank_img_src)
-{
-	if (!empty($user_rank))
-	{
-		//Always pass 0 to save duplicating get_user_rank and getting the special rank back
-		get_user_rank(0, $user_posts, $rank_title, $rank_img, $rank_img_src);
-	}
-}
-]]>
-				</action>
-			</edit>
-		</open>
-		<open src="includes/ucp/ucp_pm_viewmessage.php">
-			<edit>
-				<find><![CDATA[		'RANK_TITLE'		=> $user_info['rank_title'],
-		'RANK_IMG'			=> $user_info['rank_image'],]]></find>
-				<action type="after-add"><![CDATA[		'EXTRA_RANK_TITLE'		=> $user_info['extra_rank_title'],
-		'EXTRA_RANK_IMG'			=> $user_info['extra_rank_img'],]]></action>
-			</edit>
-			<edit>
-				<find><![CDATA[	get_user_rank($user_row['user_rank'], $user_row['user_posts'], $user_row['rank_title'], $user_row['rank_image'], $user_row['rank_image_src']);]]></find>
-				<action type="after-add"><![CDATA[	$user_row['extra_rank_title'] = $user_row['extra_rank_img'] = $user_row['extra_rank_img_src'] = '';
-
-	if (defined('SHOW_SPECIAL_AS_EXTRA') && SHOW_SPECIAL_AS_EXTRA)
-	{
-		$user_row['extra_rank_title'] = $user_row['rank_title'];
-		$user_row['extra_rank_img'] = $user_row['rank_image'];
-		$user_row['extra_rank_img_src'] = $user_row['rank_img_src'];
-		$user_row['rank_title'] = $user_row['rank_img'] = $user_row['rank_img_src'] = '';
-
-		get_user_additional_rank($user_row['user_rank'], $user_row['user_posts'], $user_row['rank_title'], $user_row['rank_image'], $user_row['rank_image_src']);
-	}
-	else
-	{
-		get_user_additional_rank($user_row['user_rank'], $user_row['user_posts'], $user_row['extra_rank_title'], $user_row['extra_rank_img'], $user_row['extra_rank_img_src']);
-	}]]></action>
-			</edit>
-		</open>
-		<open src="memberlist.php">
-			<edit>
-				<find><![CDATA[				if (isset($cp_row['row']) && sizeof($cp_row['row']))]]></find>
-				<action type="before-add"><![CDATA[				$user_rank = $row['user_rank'];
-
-				if (defined('SHOW_ONLY_NORMAL_RANKS_ON_MEMBERLIST') && SHOW_ONLY_NORMAL_RANKS_ON_MEMBERLIST)
-				{
-					$user_rank = 0;
-				}
-
-				//Reset our ranks, since show_profile() gets the values for the profile page
-				get_user_rank($user_rank, (($user_id == ANONYMOUS) ? false : $row['user_posts']), $memberrow['RANK_TITLE'], $memberrow['RANK_IMG'], $memberrow['RANK_IMG_SRC']);]]></action>
-			</edit>
-			<edit>
-				<find><![CDATA[	if (!empty($data['user_allow_viewemail']) || $auth->acl_get('a_user'))]]></find>
-				<action type="before-add"><![CDATA[	$extra_rank_title = $extra_rank_img = $extra_rank_img_src = '';
-
-	if (defined('SHOW_SPECIAL_AS_EXTRA') && SHOW_SPECIAL_AS_EXTRA)
-	{
-		$extra_rank_title = $rank_title;
-		$extra_rank_img = $rank_img;
-		$extra_rank_img_src = $rank_img_src;
-		$rank_title = $rank_img = $rank_img_src = '';
-
-		get_user_additional_rank($data['user_rank'], $data['user_posts'], $rank_title, $rank_img, $rank_img_src);
-	}
-	else
-	{
-		get_user_additional_rank($data['user_rank'], $data['user_posts'], $extra_rank_title, $extra_rank_img, $extra_rank_img_src);
-	}
-]]></action>
-			</edit>
-			<edit>
-				<find><![CDATA[		'ICQ_STATUS_IMG'	=> (!empty($data['user_icq']))]]></find>
-				<action type="before-add"><![CDATA[
-		'EXTRA_RANK_TITLE'	=> $extra_rank_title,
-		'EXTRA_RANK_IMG'	=> $extra_rank_img,
-		'EXTRA_RANK_IMG_SRC'=> $extra_rank_img_src,]]></action>
-			</edit>
-		</open>
-		<open src="styles/prosilver/template/memberlist_view.html">
-			<edit>
-				<find><![CDATA[			<!-- IF RANK_IMG --><dd style="text-align: center;">{RANK_IMG}</dd><!-- ENDIF -->]]></find>
-				<action type="after-add"><![CDATA[
-			<!-- IF EXTRA_RANK_TITLE --><dd style="text-align: center;">{EXTRA_RANK_TITLE}</dd><!-- ENDIF -->
-			<!-- IF EXTRA_RANK_IMG --><dd style="text-align: center;">{EXTRA_RANK_IMG}</dd><!-- ENDIF -->]]>
-				</action>
-			</edit>
-			<edit>
-				<find><![CDATA[			<!-- IF RANK_IMG --><dt><!-- IF RANK_TITLE -->&nbsp;<!-- ELSE -->{L_RANK}:<!-- ENDIF --></dt> <dd>{RANK_IMG}</dd><!-- ENDIF -->]]></find>
-				<action type="after-add"><![CDATA[
-			<!-- IF EXTRA_RANK_TITLE --><dt>&nbsp;</dt> <dd>{EXTRA_RANK_TITLE}</dd><!-- ENDIF -->
-			<!-- IF EXTRA_RANK_IMG --><dt>&nbsp;</dt> <dd>{EXTRA_RANK_IMG}</dd><!-- ENDIF -->]]></action>
-			</edit>
-		</open>
-		<open src="styles/prosilver/template/ucp_pm_viewmessage.html">
-			<edit>
-				<find><![CDATA[		<!-- IF RANK_IMG --><dd>{RANK_IMG}</dd><!-- ENDIF -->]]></find>
-				<action type="after-add"><![CDATA[		<!-- IF EXTRA_RANK_TITLE --><dd>{EXTRA_RANK_TITLE}</dd><!-- ENDIF -->
-		<!-- IF EXTRA_RANK_IMG --><dd>{EXTRA_RANK_IMG}</dd><!-- ENDIF -->]]></action>
-			</edit>
-		</open>
-		<open src="styles/prosilver/template/viewtopic_body.html">
-			<edit>
-				<find><![CDATA[			<!-- IF postrow.RANK_TITLE or postrow.RANK_IMG --><dd>{postrow.RANK_TITLE}<!-- IF postrow.RANK_TITLE and postrow.RANK_IMG --><br /><!-- ENDIF -->{postrow.RANK_IMG}</dd><!-- ENDIF -->]]></find>
-				<action type="after-add"><![CDATA[			<!-- IF postrow.EXTRA_RANK_TITLE or postrow.EXTRA_RANK_IMG --><dd>{postrow.EXTRA_RANK_TITLE}<!-- IF postrow.EXTRA_RANK_TITLE and postrow.EXTRA_RANK_IMG --><br /><!-- ENDIF -->{postrow.EXTRA_RANK_IMG}</dd><!-- ENDIF -->]]>
-				</action>
-			</edit>
-		</open>
-		<open src="viewtopic.php">
-			<edit>
-				<find><![CDATA[				'sig'				=> '',]]></find>
-				<action type="before-add"><![CDATA[
-				'extra_rank_title'		=> '',
-				'extra_rank_image'		=> '',
-				'extra_rank_image_src'	=> '',]]></action>
-			</edit>
-			<edit>
-				<find><![CDATA[				'username'			=> $row['username'],]]></find>
-				<action type="before-add"><![CDATA[
-				'extra_rank_title'		=> '',
-				'extra_rank_image'		=> '',
-				'extra_rank_image_src'	=> '',]]></action>
-			</edit>
-			<edit>
-				<find><![CDATA[			if (!empty($row['user_allow_viewemail']) || $auth->acl_get('a_email'))]]></find>
-				<action type="before-add"><![CDATA[
-			if (defined('SHOW_SPECIAL_AS_EXTRA') && SHOW_SPECIAL_AS_EXTRA)
-			{
-				$user_cache[$poster_id]['extra_rank_title'] = $user_cache[$poster_id]['rank_title'];
-				$user_cache[$poster_id]['extra_rank_image'] = $user_cache[$poster_id]['rank_image'];
-				$user_cache[$poster_id]['extra_rank_image_src'] = $user_cache[$poster_id]['rank_image_src'];
-				$user_cache[$poster_id]['rank_title'] = $user_cache[$poster_id]['rank_image'] = $user_cache[$poster_id]['rank_image_src'] = '';
-
-				get_user_additional_rank($row['user_rank'], $row['user_posts'], $user_cache[$poster_id]['rank_title'], $user_cache[$poster_id]['rank_image'], $user_cache[$poster_id]['rank_image_src']);
-			}
-			else
-			{
-				get_user_additional_rank($row['user_rank'], $row['user_posts'], $user_cache[$poster_id]['extra_rank_title'], $user_cache[$poster_id]['extra_rank_image'], $user_cache[$poster_id]['extra_rank_image_src']);
-			}
-]]></action>
-			</edit>
-			<edit>
-				<find><![CDATA[		'RANK_IMG_SRC'		=> $user_cache[$poster_id]['rank_image_src'],]]></find>
-				<action type="after-add"><![CDATA[
-		'EXTRA_RANK_TITLE'	=> $user_cache[$poster_id]['extra_rank_title'],
-		'EXTRA_RANK_IMG'	=> $user_cache[$poster_id]['extra_rank_image'],
-		'EXTRA_RANK_IMG_SRC'=> $user_cache[$poster_id]['extra_rank_image_src'],]]></action>
-			</edit>
-		</open>
-	</action-group>
-</mod>
--- a/contrib/MultiRaceRankThemesIntegration.xml	Wed Jun 17 15:16:02 2009 +0000
+++ b/contrib/MultiRaceRankThemesIntegration.xml	Sun Aug 01 19:52:31 2010 +0000
@@ -6,7 +6,7 @@
       security problems within the MOD. No support will be given for MODs not
       found within the MODs Database which can be found at
       http://www.phpbb.com/mods/-->
-<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phpbb.com/mods/xml/modx-1.2.1.xsd">
+<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
 
 	<header>
 		<license>http://opensource.org/licenses/gpl-license.php GNU General Public License v2</license>
@@ -24,9 +24,9 @@
 			</author>
 		</author-group>
 		<link-group>
-			<link type="parent" href="../Install.xml" lang="en-gb">Main instructions</link>
+			<link type="parent" href="../install.xml" lang="en-gb">Main instructions</link>
 		</link-group>
-		<mod-version>1.1.0</mod-version>
+		<mod-version>1.2.0</mod-version>
 		<installation>
 			<level>intermediate</level>
 			<time>300</time>
@@ -34,6 +34,13 @@
 		</installation>
 		<history>
 			<entry>
+				<date>2010-08-01</date>
+				<rev-version>1.2.0</rev-version>
+				<changelog lang="en-gb">
+					<change>Update version number and other minor fixes for release</change>
+				</changelog>
+			</entry>
+			<entry>
 				<date>2009-06-15</date>
 				<rev-version>1.1.0</rev-version>
 				<changelog lang="en-gb">
--- a/contrib/modx.prosilver.en.xsl	Wed Jun 17 15:16:02 2009 +0000
+++ b/contrib/modx.prosilver.en.xsl	Sun Aug 01 19:52:31 2010 +0000
@@ -1,17 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- MODX by the phpBB MOD Team XSL file v1.2.1 copyright 2005-2008 the phpBB MOD Team.
-	$Id: modx.prosilver.en.xsl 2242 2008-10-06 19:40:58Z paul $ -->
+<!-- MODX by the phpBB MOD Team XSL file v1.2.4 copyright 2005-2010 the phpBB MOD Team.
+	This file is released under the GNU GPL version 2.  See license.txt.
+	$Id: modx.prosilver.en.xsl 211 2010-02-27 20:05:11Z tumba25 $ -->
 <!DOCTYPE xsl:stylesheet[
 	<!ENTITY nbsp "&#160;">
 ]>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="http://www.phpbb.com/mods/xml/modx-1.2.1.xsd">
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
 	<xsl:output method="html" omit-xml-declaration="no" indent="yes" />
 	<xsl:variable name="title" select="mod:mod/mod:header/mod:title" />
 	<xsl:variable name="version">
-	<xsl:for-each select="mod:mod/mod:header/mod:mod-version">
-		<xsl:value-of select="current()" />
-	</xsl:for-each>
+		<xsl:for-each select="mod:mod/mod:header/mod:mod-version">
+			<xsl:value-of select="current()" />
+		</xsl:for-each>
 	</xsl:variable>
+
 	<xsl:template match="mod:mod">
 		<html xmlns="http://www.w3.org/1999/xhtml">
 		<head>
@@ -34,6 +36,11 @@
 	font-size:100%;
 }
 
+/*.rtl * {
+	text-align:right;
+	direction: rtl;
+}*/
+
 body, div, p, th, td, li, dd {
 	font-size:x-small;
 	voice-family:"\"}\"";
@@ -181,14 +188,14 @@
 }
 
 #content {
-	padding:0px 10px 10px 10px;
+	padding:0 10px 10px 10px;
 	position:relative;
 }
 
 #content h1 {
 	color:#115098;
 	line-height:1.2em;
-	margin-bottom:0px;
+	margin-bottom:0;
 }
 
 #main {
@@ -259,14 +266,14 @@
 /* General form styles
 ––––––––––––––––––––––––––––––––––––––––*/
 fieldset {
-	margin:15px 0;
-	padding:1px;
+	margin:25px 0;
+	padding:1px 0;
 	border-top:1px solid #D7D7D7;
 	border-right:1px solid #CCCCCC;
 	border-bottom:1px solid #CCCCCC;
 	border-left:1px solid #D7D7D7;
 	background-color:#FFFFFF;
-	/*position:relative;*/
+	position:relative;
 }
 
 .rtl fieldset {
@@ -285,15 +292,16 @@
 }
 
 legend {
-	padding:1px 3px;
+	padding:1px 5px;
 	font-family:Tahoma,arial,Verdana,Sans-serif;
 	font-size:1.06em;
 	font-weight:bold;
 	color:#115098;
-/*	position:relative;*/
-	text-transform:capitalize;
+	margin-top:-.4em;
+	position:relative;
+/*	text-transform:capitalize;*/
 	line-height:1.00em;
-	top:0em;
+	top:0;
 	vertical-align:middle;
 }
 
@@ -358,11 +366,10 @@
 }
 
 .mod-about span.corners-top, .mod-about span.corners-bottom {
-	background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAMCAYAAABBV8wuAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABVSURBVHjaYviPAD+BeDIQ2wMxGwNU8AkQGwAxAwwzQFXqIgvCJCajC8IkbLBJMIItYmD4xYAGmBhwAJCEMS6JcKxa8DkX5kFdbBKwIJkADRIGgAADAGtyotIvyqGpAAAAAElFTkSuQmCC);
+background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAMCAYAAABBV8wuAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABVSURBVHjaYviPAD+BeDIQ2wMxGwNU8AkQGwAxAwwzQFXqIgvCJCajC8IkbLBJMIItYmD4xYAGmBhwAJCEMS6JcKxa8DkX5kFdbBKwIJkADRIGgAADAGtyotIvyqGpAAAAAElFTkSuQmCC);
 }
 
-.mod-about span.corners-top span, .mod-about span.corners-bottom span {
-	background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAMCAYAAABBV8wuAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABbSURBVHjaYvr//z8bENsD8WQg/vkfChjQsAEQPwFJMDGgggtA7AnEv9AlQOAyEM/CJgECK3FJnMIlwYZLQheXRDg2CV0gzmTCIrgd2Q4bIJ4AxGeAWBokABBgAE4XMoXm9S+UAAAAAElFTkSuQmCC);
+.mod-about span.corners-top span, .mod-about span.corners-bottom span {	background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAMCAYAAABBV8wuAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABbSURBVHjaYvr//z8bENsD8WQg/vkfChjQsAEQPwFJMDGgggtA7AnEv9AlQOAyEM/CJgECK3FJnMIlwYZLQheXRDg2CV0gzmTCIrgd2Q4bIJ4AxGeAWBokABBgAE4XMoXm9S+UAAAAAElFTkSuQmCC);
 }
 
 .mod-about span.corners-top {
@@ -384,13 +391,14 @@
 	background-position:100% 100%;
 }
 
-.mod-about-padding { 0px 8px; }
-.mod-about { margin:10px 4px; }
+.mod-about-padding { padding: 0 8px; }
+.mod-about { margin:7px 4px 10px 4px; }
 .mod-about dt { font-weight:bold; padding-right:4px; }
-.mod-about dl { margin:0px 8px; }
-.mod-about div { margin:3px 8px; }
-/*div.inner .mod-about dl { margin:0px 0px; }*/
-/*.nopadding { margin:0px 0px; }*/
+.rtl .mod-about dt { padding-left: 4px; }
+.mod-about dl { margin:0 8px; }
+.mod-about div { margin:3px 8px;}
+/*div.inner .mod-about dl { margin:0; }*/
+/*.nopadding { margin:0; }*/
 
 .mod-history {font-size:82.5%; } /* Mod histories can get pretty long, so I'm making that font a bit smaller */
 #language { width:130px; }
@@ -400,13 +408,14 @@
 .mod-edit { background-color:#D6E6F6; border:solid 1px #336699; margin:10px 0; padding:0 10px; }
 .mod-inlineedit { background-color:#DDEEFF; border:solid 1px #6699CC; margin:10px 0; padding:0 10px; }
 
-dl.author-info dd { margin-left:100px; margin-bottom:8px; }
-ol#file-copy { padding:5px; margin-left:20px; margin-bottom:10px; }
-ol#file-copy li { margin-left:30px; vertical-align:top;}
-ol#file-copy span { font-weight:bold; }
-ol#file-copy dt {margin-right:5px; float:none !important }
-ol#file-copy dl {width:100%}
-h2#lang-fca, h2#lang-edts, h2#lang-diy, h2#lang-sql { margin-left:5px; }
+dl.author-info dd { margin-left:112px; margin-bottom:8px; }
+.rtl dl.author-info dd { margin-left:112px; margin-bottom:8px; }
+ol#file-copy, ol#file-delete { padding:5px; margin-left:20px; margin-right:20px; margin-bottom:10px; }
+ol#file-copy li, ol#file-delete li { margin-left:30px; margin-right:30px; vertical-align:top;}
+ol#file-copy span, ol#file-delete span { font-weight:bold; }
+ol#file-copy dt, ol#file-delete dt {margin-right:5px; float:none !important }
+ol#file-copy dl, ol#file-delete dl {width:100%}
+h2#lang-fca, h2#lang-edts, h2#lang-diy, h2#lang-sql, h2#lang-installer-h2, h2#lang-del-head { margin-left:5px; }
 
 /* Code block */
 div.codebox {
@@ -448,20 +457,29 @@
 	margin:2px 0;
 }
 
+/*.rtl div.codePre pre {
+	text-align: left !important;
+	direction: ltr !important;
+}*/
+
 dt {
-	float:left;
+	float: left;
 	width:auto;
 }
 
 .rtl dt {
-	float:right;
+	float: right !important;
+	text-align: right;
+	width:auto;
 }
 
-dd {color:#666666;}
-dd + dd {padding-top:5px;}
-dt span {padding:0 5px 0 0;}
-.rtl dt span {padding:0 0 0 5px;}
-div.endMOD {padding:0 5px;}
+dd { color:#666666; }
+dd + dd { padding-top: 5px; }
+
+dt span { padding: 0 5px 0 0; }
+.rtl dt span { padding: 0 0 0 5px; }
+
+div.endMOD { padding:0 5px; }
 
 #history_toggle_link {
 	display:block;
@@ -493,6 +511,11 @@
 						mhcls_ll.push('<xsl:value-of select="generate-id()"/>');
 					</xsl:if>
 				</xsl:for-each>
+
+				var link_ll = [];
+				<xsl:for-each select="mod:link-group/mod:link">
+					link_ll.push('<xsl:value-of select="generate-id()"/>');
+				</xsl:for-each>
 			</xsl:for-each>
 
 			var opens_ll = [];
@@ -511,8 +534,10 @@
 			</xsl:for-each>
 
 			var finds_ll = [];
+			var removes_ll = [];
 			var regex_ll = [];
 			var ifinds_ll = [];
+			var iremoves_ll = [];
 			var iregex_ll = [];
 			var addafters_ll = [];
 			var iaddafters_ll = [];
@@ -527,6 +552,9 @@
 				<xsl:for-each select="mod:find">
 					finds_ll.push('<xsl:value-of select="generate-id()"/>');
 				</xsl:for-each>
+				<xsl:for-each select="mod:remove">
+					removes_ll.push('<xsl:value-of select="generate-id()"/>');
+				</xsl:for-each>
 				<xsl:if test="count(mod:comment) > 0">
 					comments_ll.push('<xsl:value-of select="generate-id()"/>');
 				</xsl:if>
@@ -554,6 +582,9 @@
 							iregex_ll.push('<xsl:value-of select="generate-id()"/>');
 						</xsl:if>
 					</xsl:for-each>
+					<xsl:for-each select="mod:inline-remove">
+						iremoves_ll.push('<xsl:value-of select="generate-id()"/>');
+					</xsl:for-each>
 					<xsl:for-each select="mod:inline-find|mod:inline-action">
 						codes_ll.push('<xsl:value-of select="generate-id()"/>');
 						<xsl:if test="name() = 'inline-action'">
@@ -583,6 +614,11 @@
 				copies_ll.push('<xsl:value-of select="generate-id()"/>');
 			</xsl:for-each>
 
+			var delete_ll = [];
+			<xsl:for-each select="mod:action-group/mod:delete/mod:file">
+				delete_ll.push('<xsl:value-of select="generate-id()"/>');
+			</xsl:for-each>
+
 			<xsl:text disable-output-escaping="yes">
 <![CDATA[
 // The following line from http://www.ryancooper.com/resources/keycode.asp
@@ -590,16 +626,17 @@
 
 var host = "http://www.phpbb.com/mods/modx/i18n/";
 
-var enStrings = "h1=Installation Instructions for\n" +
+var enStrings = "dir=ltr\n" +
+"h1=Installation instructions for\n" +
 "edt-show=Show&nbsp;&gt;&gt;\n" +
 "edt-hide=&lt;&lt;&nbsp;Hide\n" +
-"V=Version\n" +
+"V=version\n" +
 "t=Title:\n" +
 "d=Description:\n" +
 "aV=Version:\n" +
 "mint=minutes\n" +
-"it=Installation Time:\n" +
-"il=Installation Level:\n" +
+"it=Installation time:\n" +
+"il=Installation level:\n" +
 "ile=Easy\n" +
 "ili=Intermediate\n" +
 "ila=Advanced\n" +
@@ -609,63 +646,86 @@
 "a-e=Email:\n" +
 "a-n=Name:\n" +
 "a-h=WWW:\n" +
-"fte=Files to Edit\n" +
-"icf=Included Files\n" +
+"a-c=Contributions:\n" +
+"a-c-f=From\n" +
+"a-c-t=to\n" +
+"a-c-s=Since\n" +
+"fte=Files to edit\n" +
+"icf=Included files\n" +
 "icfn=No files have been included with this MOD.\n" +
 "dcl=Disclaimer\n" +
 "dclt=For security purposes, please check: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a>\n" +
-"isp=English Support\n" +
+"isp=and English support\n" +
 "ispt=English support can be obtained at <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for released MODs.\n" +
-"ant=Author Notes:\n" +
+"ant=Author notes:\n" +
 "lic=License\n" +
 "lict=This MOD has been licensed under the following license:\n" +
-"ont=Other Notes\n" +
-"ontt1=Before adding this MOD to your forum, you should back up all files related to this MOD.\n" +
+"ont=and other notes\n" +
+"ontt1=Before adding this MOD to your forum, you should back up all files and databases related to this MOD.\n" +
 "ontt2=This MOD was designed for phpBB\n" +
 "ontt3=and may not function as stated on other phpBB versions. MODs for phpBB 3.0 will <strong>not</strong> work on phpBB 2.0 and vice versa.\n" +
 "onttq=This MOD is development quality. It is not recommended that you install it on a live forum.\n" +
 "sql=SQL\n" +
-"fca=File Copy\n" +
+"fca=File copy\n" +
 "c-copy=Copy:\n" +
 "c-to=To:\n" +
 "cde-c=Code:\n" +
-"cde-sa=Select All\n" +
+"cde-sa=Select all\n" +
 "edts=Edits\n" +
 "edtt=Use your keyboard to navigate the code boxes. You may also hit '<em>s</em>' on your keyboard to go to the first code box.\n" +
 "opn=Open:\n" +
 "cm-cmt=Comments\n" +
 "fnd=Find\n" +
 "fndt=<strong>Tip:</strong> This may be a partial find and not the whole line.\n" +
-"rplw=Replace With\n" +
+"remove=Find and Delete\n" +
+"removet=<strong>Tip:</strong> Find and delete this code.\n" +
+"rplw=Replace with\n" +
 "rplwt=<strong>Tip:</strong> Replace the preceding line(s) to find with the following lines.\n" +
 "aft=Add after\n" +
 "aftt=<strong>Tip:</strong> Add these lines on a new blank line after the preceding line(s) to find.\n" +
 "bef=Add before\n" +
 "beft=<strong>Tip:</strong> Add these lines on a new blank line before the preceding line(s) to find.\n" +
-"inc=Increment\n" +
-"inct=<strong>Tip:</strong> This allows you to alter integers. For help on what each operator means, click here.\n" +
+"inc=Operation\n" +
+"inct=<strong>Tip:</strong> This allows you to alter integers.\n" +
 "ifnd=In-line Find\n" +
 "ifndt=<strong>Tip:</strong> This is a partial match of a line for in-line operations.\n" +
-"irplw=In-line Replace With\n" +
+"iremove=In-line Find and Delete\n" +
+"iremovet=<strong>Tip:</strong> Find this code in the line and delete it.\n" +
+"irplw=In-line Replace with\n" +
 "irplwt=\n" +
 "iaft=In-line Add after\n" +
 "iaftt=\n" +
 "ibef=In-line Add before\n" +
 "ibeft=\n" +
-"iinc=In-line Increment\n" +
-"iinct=<strong>Tip:</strong> This allows you to alter integers. For help on what each operator means, click here.\n" +
-"diy=DIY Instructions\n" +
+"iinc=In-line Operation\n" +
+"iinct=<strong>Tip:</strong> This allows you to alter integers.\n" +
+"diy=DIY instructions\n" +
 "diyt=These are manual instructions that cannot be performed automatically. You should follow these instructions carefully.\n" +
 "eom=Save all files. End of MOD.\n" +
 "eomt=You have finished the installation for this MOD. Upload all changed files to your website. If the installation went bad, simply restore your backed up files.\n" +
-"slg=Select Language:\n" +
+"slg=Select language:\n" +
 "dbms=Select Database Type:\n" +
 "foot=MOD UA XSLT File Copyright &#169; 2007 The phpBB Group, this MOD is copyright to the authors listed above.\n" +
-"regex=This find contains an advanced feature known as regular expressions, click here to learn more.\n" +
+"regex=This find contains an advanced feature known as regular expressions.\n" +
 "mhe-v=- Version\n" +
-"mh=MOD History\n" +
-"addtl-modx=Additional MODX Files\n" +
-"imn=This MOD has no additional MODX files.\n"+
+"mh=MOD history\n" +
+"addtl-modx=Additional MODX files\n" +
+"imn=This MOD has no additional MODX files.\n" +
+"link-c=Contrib\n" +
+"link-d=Dependency\n" +
+"link-l=Language\n" +
+"link-p=Parent\n" +
+"link-te=Template\n" +
+"link-txt=Text file\n" +
+"link-tl=Template lang\n" +
+"link-un=Uninstall instructions\n" +
+"installer-h2=PHP install file\n" +
+"installer-exp1=There is a PHP install file that needs to be run in order to complete the installation.\n" +
+"installer-exp2=To run it point your browser to, for example,\n" +
+"ispt-int=Support in your language <strong>might</strong> be available at a <a href=\"http://www.phpbb.com/support/intl/\">international support site</a>.\n" +
+"del-heads=Delete files\n" +
+"del-head=Delete file\n" +
+"del-file=Delete\n" +
 "atm=About this MOD";
 
 var box = codes_ll;
@@ -675,23 +735,27 @@
 var arrClasCnt = [
 	['a-'	, authors_ll		],
 	['c-'	, copies_ll			],
+	['del-'	, delete_ll			],
 	['cm-'	, comments_ll		],
 	['opn'	, opens_ll			],
 	['cde-'	, codes_ll			],
 	['edt-'	, edits_ll			],
 	['fnd'	, finds_ll			],
+	['fnd'	, removes_ll			],
 	['regex', regex_ll			],
 	['rplw'	, replacewiths_ll	],
 	['aft'	, addafters_ll		],
 	['bef'	, addbefores_ll		],
 	['inc'	, increments_ll		],
 	['ifnd'	, ifinds_ll			],
+	['ifnd'	, iremoves_ll			],
 	['regex', iregex_ll			],
 	['irplw', ireplacewiths_ll	],
 	['iaft'	, iaddafters_ll		],
 	['ibef'	, iaddbefores_ll	],
 	['iinc'	, iincrements_ll	],
-	['mhe'	, mhes_ll			]
+	['mhe'	, mhes_ll			],
+	['link', link_ll]
 ];
 
 function startup()
@@ -1023,6 +1087,10 @@
 	for (i in texts)
 	{
 		var lang = texts[i].split("=");
+		if(lang[0] == 'dir')
+		{
+			set_dir(lang[1]);
+		}
 		if (lang.length < 2)
 		{
 			continue;
@@ -1069,6 +1137,102 @@
 	} catch(o) {}
 }
 
+function set_dir(direction)
+{
+	direction = (direction == 'rtl') ? 'rtl' : 'ltr';
+	document.body.style.direction=direction;
+
+	var ie = /*@cc_on!@*/false;
+	var dts = document.getElementsByTagName('dt');
+	var uls = document.getElementsByTagName('ul');
+	var h2s = document.getElementsByTagName('h2');
+	var mod_dt = document.getElementsByName('left4px');
+	var author_dd = document.getElementsByName('author-dd');
+	var ltr_spec = document.getElementsByName('ltr-spec');
+	var rtl_spec = document.getElementsByName('rtl-spec');
+
+	var rtl_float = (ie) ? 'styleFloat' : 'cssFloat';
+
+	if(direction == 'rtl')
+	{
+		for(j = 0; j < dts.length; j++)
+		{
+			if(ie)
+			{
+				dts[j].style.styleFloat='right';
+			}
+			else
+			{
+				dts[j].style.cssFloat='right';
+			}
+		}
+		for(j = 0; j < h2s.length; j++)
+		{
+			h2s[j].style.textAlign='right';
+		}
+		for(j = 0; j < uls.length; j++)
+		{
+			uls[j].style.margin='0 2em 1em 0';
+		}
+		for(j = 0; j < ltr_spec.length; j++)
+		{
+			ltr_spec[j].style.display='none';
+		}
+		for(j = 0; j < rtl_spec.length; j++)
+		{
+			rtl_spec[j].style.display='inherit';
+		}
+		for(j = 0; j < author_dd.length; j++)
+		{
+			author_dd[j].style.marginRight='115px';
+		}
+		for(j = 0; j < mod_dt.length; j++)
+		{
+			mod_dt[j].style.paddingRight='0';
+			mod_dt[j].style.paddingLeft='4px';
+		}
+	}
+	else
+	{
+		for(j = 0; j < dts.length; j++)
+		{
+			if(ie)
+			{
+				dts[j].style.styleFloat='left';
+			}
+			else
+			{
+				dts[j].style.cssFloat='left';
+			}
+		}
+		for(j = 0; j < h2s.length; j++)
+		{
+			h2s[j].style.textAlign='left';
+		}
+		for(j = 0; j < uls.length; j++)
+		{
+			uls[j].style.margin='0 0 1em 2em';
+		}
+		for(j = 0; j < ltr_spec.length; j++)
+		{
+			ltr_spec[j].style.display='inherit';
+		}
+		for(j = 0; j < rtl_spec.length; j++)
+		{
+			rtl_spec[j].style.display='none';
+		}
+		for(j = 0; j < author_dd.length; j++)
+		{
+			author_dd[j].style.marginleft='112px';
+		}
+		for(j = 0; j < mod_dt.length; j++)
+		{
+			mod_dt[j].style.paddingRight='4px';
+			mod_dt[j].style.paddingLeft='0';
+		}
+	}
+}
+
 function select_code(a)
 {
 	// Get ID of code block
@@ -1298,7 +1462,12 @@
  */
 function sql_display($value)
 {
-	$tags = document.getElementsByTagName('dbms');
+	var $ie = /*@cc_on!@*/false;
+	var $tags = document.getElementsByTagName('dbms');
+	if($ie)
+	{
+		var $div_list = document.getElementsByTagName('div');
+	}
 
 	// show the dbms of type we have selected, hide all others except for non dbms specific
 	for ($i = 0; $i < $tags.length; $i++)
@@ -1307,7 +1476,20 @@
 		{
 			continue;
 		}
-		$tags[$i].style.display = ($dbms == $value) ? '' : 'none';
+		if(!$ie)
+		{
+			$tags[$i].style.display = ($dbms == $value) ? '' : 'none';
+		}
+		else
+		{
+			for($j = 0; $j < $div_list.length; $j++)
+			{
+				if($div_list[$j].name == $dbms)
+				{
+					$div_list[$j].style.display = ($dbms == $value) ? '' : 'none';
+				}
+			}
+		}
 	}
 }
 
@@ -1316,6 +1498,7 @@
 */
 function sql_dropdown()
 {
+	var $ie = /*@cc_on!@*/false;
 	var $dbms_element = document.getElementById('dbms');
 	var $dbms_selector = document.getElementById('dbms-selector');
 	if (!$dbms_element || !$dbms_selector)
@@ -1323,6 +1506,12 @@
 		return;
 	}
 
+/*	if($ie)
+	{
+		$dbms_selector.style.display = 'none';
+		return;
+	}
+*/
 	$type = [
 		'mysql',
 		'mysql_41',
@@ -1334,6 +1523,8 @@
 		'sqllite'
 	];
 	$options = [];
+	$ie_options = [];
+	$ie_count = 0;
 	$tags = document.getElementsByTagName('dbms');
 
 	// Show the dbms of type we have selected, hide all others except for non dbms specific
@@ -1346,6 +1537,13 @@
 		if (($position = in_array($type, $dbms, true)) !== false)
 		{
 			$options[$position] = '<option value=' + $dbms + '>' + $dbms + '</option>';
+			if($ie)
+			{
+				if(!in_array($ie_options, $dbms, false))
+				{
+					$ie_options[$ie_count++] = $dbms;
+				}
+			}
 		}
 	}
 
@@ -1361,7 +1559,18 @@
 				$selects += $options[$i];
 			}
 		}
-		$dbms_element.innerHTML = $selects;
+		$dbms_element.innerHTML=$selects;
+
+		if($ie)
+		{
+			for($i in $ie_options)
+			{
+				$ie_option = document.createElement('option');
+				$ie_option.text = $ie_options[$i];
+				$ie_option.value = $ie_options[$i];
+				$dbms_element.add($ie_option);
+			}
+		}
 	}
 	else
 	{
@@ -1415,14 +1624,14 @@
 }
 				</script>
 		</head>
-		<body class="ltr" onload="startup()">
+		<body onload="startup()">
 		<div id="debug"></div>
 		<div id="wrap">
 			<div id="page-header">
-				<h1><span id="lang-h1">Installation Instructions for</span> '<xsl:value-of select="$title" />' <span id="lang-V">Version</span>&nbsp;<xsl:value-of select="$version" /></h1>
+				<h1><span id="lang-h1">Installation instructions for</span> '<xsl:value-of select="$title" />' <span id="lang-V">version</span>&nbsp;<xsl:value-of select="$version" /></h1>
 				<form method="post" action="" id="lang-selector" style="display: none;">
 				<fieldset class="nobg">
-					<label for="language"><span id="lang-slg">Select Language:</span></label>&nbsp;<select id="language" name="language" onclick="load_languages()"><option value="en" selected="selected">English</option></select>
+					<label for="language"><span id="lang-slg">Select language:</span></label>&nbsp;<select id="language" name="language" onclick="load_languages()"><option value="en" selected="selected">English</option></select>
 				</fieldset>
 				</form>
 			</div>
@@ -1434,7 +1643,7 @@
 								<xsl:for-each select="mod:header">
 									<xsl:call-template name="give-header"></xsl:call-template>
 								</xsl:for-each>
-								<hr />
+
 								<div class="permissions" id="Fieldset1">
 									<xsl:for-each select="mod:action-group">
 										<xsl:call-template name="give-actions"></xsl:call-template>
@@ -1457,13 +1666,14 @@
 		</body>
 		</html>
 	</xsl:template>
+
 	<xsl:template name="give-header">
 		<fieldset>
-		<legend id="lang-atm">About this MOD</legend>
+			<legend id="lang-atm">About this MOD</legend>
 			<div class="mod-about">
 				<span class="corners-top"><span></span></span>
 				<dl>
-					<dt id="lang-t">Title:</dt>
+					<dt id="lang-t" name="left4px">Title:</dt>
 					<dd>
 						<xsl:if test="count(mod:title) > 1">
 							<dl id="title" class="nopadding">
@@ -1479,7 +1689,7 @@
 							<p lang="{@lang}" style='white-space:pre;'><xsl:value-of select="mod:title" /></p>
 						</xsl:if>
 					</dd>
-					<dt id="lang-d">Description:</dt>
+					<dt id="lang-d" name="left4px">Description:</dt>
 					<dd>
 						<xsl:if test="count(mod:description) > 1">
 							<dl id="description" class="nopadding">
@@ -1503,7 +1713,7 @@
 							</p>
 						</xsl:if>
 					</dd>
-					<dt id="lang-aV">Version:</dt>
+					<dt id="lang-aV" name="left4px">Version:</dt>
 					<dd class="mod-about">
 						<p>
 							<xsl:for-each select="mod:mod-version">
@@ -1515,95 +1725,126 @@
 						<xsl:call-template name="give-installation"></xsl:call-template>
 					</xsl:for-each>
 					<xsl:if test="mod:author-notes != 'N/A' and mod:author-notes != 'n/a' and mod:author-notes != ''">
-					<dt id="lang-ant">Author Notes:</dt>
-					<dd>
-						<xsl:if test="count(mod:author-notes) > 1">
-							<dl id="author-notes" class="nopadding">
-								<xsl:for-each select="mod:author-notes">
-									<dt><xsl:value-of select="@lang" /></dt>
-									<dd lang="{@lang}">
-										<p>
-											<xsl:call-template name="add-line-breaks">
-												<xsl:with-param name="string"><xsl:value-of select="current()" /></xsl:with-param>
-											</xsl:call-template>
-										</p>
-									</dd>
-								</xsl:for-each>
-							</dl>
-						</xsl:if>
-						<xsl:if test="count(mod:author-notes) = 1">
-							<p lang="{@lang}">
-								<xsl:call-template name="add-line-breaks">
-									<xsl:with-param name="string"><xsl:value-of select="mod:author-notes" /></xsl:with-param>
-								</xsl:call-template>
-							</p>
-						</xsl:if>
-					</dd>
+						<dt id="lang-ant" name="left4px">Author notes:</dt>
+						<dd>
+							<xsl:if test="count(mod:author-notes) > 1">
+								<dl id="author-notes" class="nopadding">
+									<xsl:for-each select="mod:author-notes">
+										<dt><xsl:value-of select="@lang" /></dt>
+										<dd lang="{@lang}">
+											<p>
+												<xsl:call-template name="add-line-breaks">
+													<xsl:with-param name="string"><xsl:value-of select="current()" /></xsl:with-param>
+												</xsl:call-template>
+											</p>
+										</dd>
+									</xsl:for-each>
+								</dl>
+							</xsl:if>
+							<xsl:if test="count(mod:author-notes) = 1">
+								<p lang="{@lang}">
+									<xsl:call-template name="add-line-breaks">
+										<xsl:with-param name="string"><xsl:value-of select="mod:author-notes" /></xsl:with-param>
+									</xsl:call-template>
+								</p>
+							</xsl:if>
+						</dd>
 					</xsl:if>
 				</dl>
 				<span class="corners-bottom"><span></span></span>
 			</div>
 		</fieldset>
 		<fieldset>
-		<xsl:for-each select="mod:author-group">
-			<xsl:if test="count(mod:author) > 1">
-				<legend id="lang-aus">Authors</legend>
-			</xsl:if>
-			<xsl:if test="count(mod:author) = 1">
-				<legend id="lang-au">Author</legend>
-			</xsl:if>
-			<xsl:call-template name="give-authors"></xsl:call-template>
-		</xsl:for-each>
+			<xsl:for-each select="mod:author-group">
+				<xsl:if test="count(mod:author) > 1">
+					<legend id="lang-aus">Authors</legend>
+				</xsl:if>
+				<xsl:if test="count(mod:author) = 1">
+					<legend id="lang-au">Author</legend>
+				</xsl:if>
+				<xsl:call-template name="give-authors"></xsl:call-template>
+			</xsl:for-each>
 		</fieldset>
 		<xsl:if test="count(../mod:action-group/mod:open) > 0">
-		<h3 id="lang-fte">Files to Edit</h3>
-		<xsl:for-each select="../mod:action-group">
-			<xsl:call-template name="give-files-to-edit"></xsl:call-template>
-		</xsl:for-each>
+			<h3 id="lang-fte">Files to edit</h3>
+			<xsl:for-each select="../mod:action-group">
+				<xsl:call-template name="give-files-to-edit"></xsl:call-template>
+			</xsl:for-each>
 		</xsl:if>
-		<h3 id="lang-icf">Included Files</h3>
+		<h3 id="lang-icf">Included files</h3>
 		<xsl:if test="count(../mod:action-group/mod:copy/mod:file) = 0">
 			<p id="lang-icfn">No files have been included with this MOD.</p>
 		</xsl:if>
 		<xsl:for-each select="../mod:action-group">
 			<xsl:call-template name="give-files-included"></xsl:call-template>
 		</xsl:for-each>
-		<h3 id="lang-addtl-modx">Additional MODX Files</h3>
+		<h3 id="lang-addtl-modx">Additional MODX files</h3>
 		<xsl:if test="count(mod:link-group/mod:link) = 0">
 			<p id="lang-imn">This MOD has no additional MODX files.</p>
 		</xsl:if>
+
 		<ul class="link-group" id="link-group">
 			<xsl:for-each select="mod:link-group/mod:link">
-				<li lang="{@lang}"><span class="link-group-lang"><xsl:value-of select="@lang" />&nbsp;</span><strong style="text-transform: capitalize;"><xsl:value-of select="@type" />:</strong>&nbsp;<a href="{@href}"><xsl:value-of select="current()" /></a></li>
+				<li lang="{@lang}">
+					<span class="link-group-lang"><xsl:value-of select="@lang" />&nbsp;</span>
+					<strong>
+						<xsl:if test="@type = 'contrib'">
+							<span id="lang-link-c[{generate-id()}]">Contrib</span>:
+						</xsl:if>
+						<xsl:if test="@type = 'dependency'">
+							<span id="lang-link-d[{generate-id()}]">Dependency</span>:
+						</xsl:if>
+						<xsl:if test="@type = 'language'">
+							<span id="lang-link-l[{generate-id()}]">Language</span>:
+						</xsl:if>
+						<xsl:if test="@type = 'parent'">
+							<span id="lang-link-p[{generate-id()}]">Parent</span>:
+						</xsl:if>
+						<xsl:if test="@type = 'template'">
+							<span id="lang-link-te[{generate-id()}]">Template</span>:
+						</xsl:if>
+						<xsl:if test="@type = 'template-lang'">
+							<span id="lang-link-tl[{generate-id()}]">Template lang</span>:
+						</xsl:if>
+						<xsl:if test="@type = 'text'">
+							<span id="lang-link-txt[{generate-id()}]">Text file</span>:
+						</xsl:if>
+						<xsl:if test="@type = 'uninstall'">
+							<span id="lang-link-un[{generate-id()}]">Uninstall instructions</span>:
+						</xsl:if>
+					</strong>
+					&nbsp;<a href="{@href}"><xsl:value-of select="current()" /></a>
+				</li>
 			</xsl:for-each>
 		</ul>
 		<hr />
 		<div id="modDisclaimer">
-			<h3><span id="lang-dcl">Disclaimer</span> &amp; <span id="lang-ont">Other Notes</span></h3>
+			<h3><span id="lang-dcl">Disclaimer</span>&nbsp;<span id="lang-ont">and other notes</span></h3>
 			<div class="mod-about">
 				<span class="corners-top"><span></span></span>
-					<div class="mod-about-padding">
+				<div class="mod-about-padding">
 					<p><span id="lang-dclt">For security purposes, please check: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a></span></p>
-					<p><span id="lang-ontt1">Before adding this MOD to your forum, you should back up all files related to this MOD.</span></p>
-					<p><span id="lang-ontt2">This MOD was designed for phpBB</span><xsl:text> </xsl:text><xsl:value-of select="mod:installation/mod:target-version" /><xsl:text> </xsl:text><span id="lang-ontt3"> and may not function as stated on other phpBB versions. MODs for phpBB 3.0 will <strong>not</strong> work on phpBB 2.0 and vice versa.</span></p>
+					<p><span id="lang-ontt1">Before adding this MOD to your forum, you should back up all files and databases related to this MOD.</span></p>
+					<p><span id="lang-ontt2">This MOD was designed for phpBB</span><xsl:text> </xsl:text><xsl:value-of select="mod:installation/mod:target-version" /><xsl:text> </xsl:text>&nbsp;<span id="lang-ontt3">and may not function as stated on other phpBB versions. MODs for phpBB 3.0 will <strong>not</strong> work on phpBB 2.0 and vice versa.</span></p>
 					<xsl:for-each select="./mod:mod-version">
-						<xsl:if test="substring-before(substring-after(current(), '.'), '.') mod 2 != 0 or substring-before(current(), '.') = 0">
+						<xsl:if test="substring-before(current(), '.') = 0">
 							<p><strong class="red"><span id="lang-onttq">This MOD is development quality. It is not recommended that you install it on a live forum.</span></strong></p>
 						</xsl:if>
 					</xsl:for-each>
-					</div>
+				</div>
 				<span class="corners-bottom"><span></span></span>
 			</div>
 		</div>
 		<div>
-			<h3><span id="lang-lic">License</span> &amp; <span id="lang-isp">English Support</span></h3>
+			<h3><span id="lang-lic">License</span>&nbsp;<span id="lang-isp">and English support</span></h3>
 			<div class="mod-about">
 				<span class="corners-top"><span></span></span>
-					<div class="mod-about-padding">
+				<div class="mod-about-padding">
 					<p><span id="lang-lict">This MOD has been licensed under the following license:</span></p>
 					<p style='white-space:pre;'><a href="license.txt"><xsl:value-of select="mod:license" /></a></p>
 					<p><span id="lang-ispt">English support can be obtained at <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a> for released MODs.</span></p>
-					</div>
+					<p><span id="lang-ispt-int">Support in your language <strong>might</strong> be available at a <a href="http://www.phpbb.com/support/intl/">international support site</a>.</span></p>
+				</div>
 				<span class="corners-bottom"><span></span></span>
 			</div>
 			<xsl:for-each select="mod:history">
@@ -1611,45 +1852,99 @@
 			</xsl:for-each>
 		</div>
 	</xsl:template>
+
 	<xsl:template name="give-authors">
 		<xsl:for-each select="mod:author">
 			<div class="mod-about">
 				<span class="corners-top"><span></span></span>
-					<xsl:call-template name="give-author"></xsl:call-template>
+					<dl class="author-info">
+						<dt id="lang-a-un[{generate-id()}]" name="left4px">Username:</dt>
+
+						<xsl:variable name="authorname" select="mod:username" />
+						<xsl:for-each select="mod:username">
+							<xsl:choose>
+								<xsl:when test="@phpbbcom = 'no' or @phpbbcom = 'No' or @phpbbcom = 'NO'">
+									<dd name="author-dd"><span dir="ltr"><xsl:value-of select="$authorname" /></span></dd>
+								</xsl:when>
+
+								<xsl:otherwise>
+									<xsl:variable name="authorurl">
+										<xsl:call-template name="validate-username">
+											<xsl:with-param name="string-in" select="string($authorname)"/>
+										</xsl:call-template>
+									</xsl:variable>
+
+									<xsl:variable name="browserEngine" select="system-property('xsl:vendor')" />
+									<xsl:choose>
+										<xsl:when test="$browserEngine='Opera'">
+											<xsl:variable name="operaurl">
+												<xsl:call-template name="validate-opera">
+													<xsl:with-param name="string-in" select="string($authorurl)"/>
+												</xsl:call-template>
+											</xsl:variable>
+											<dd name="author-dd"><a dir="ltr" href="http://www.phpbb.com/community/memberlist.php?mode=viewprofile&amp;un={$operaurl}"><xsl:value-of select="$authorname" /></a></dd>
+										</xsl:when>
+										<xsl:otherwise>
+											<dd name="author-dd"><a dir="ltr" href="http://www.phpbb.com/community/memberlist.php?mode=viewprofile&amp;un={$authorurl}"><xsl:value-of select="$authorname" /></a></dd>
+										</xsl:otherwise>
+
+									</xsl:choose>
+								</xsl:otherwise>
+
+							</xsl:choose>
+						</xsl:for-each>
+						<xsl:if test="mod:email != 'N/A' and mod:email != 'n/a' and mod:email != ''">
+							<dt id="lang-a-e[{generate-id()}]">Email:</dt>
+							<dd name="author-dd"><a href="mailto:{mod:email}"><xsl:value-of select="mod:email" /></a></dd>
+						</xsl:if>
+						<xsl:if test="mod:realname != 'N/A' and mod:realname != 'n/a' and mod:realname != ''">
+							<dt id="lang-a-n[{generate-id()}]">Name:</dt>
+							<dd name="author-dd"><xsl:value-of select="mod:realname" /></dd>
+						</xsl:if>
+						<xsl:if test="mod:homepage != 'N/A' and mod:homepage != 'n/a' and mod:homepage!=''">
+							<dt id="lang-a-h[{generate-id()}]">WWW:</dt>
+							<dd name="author-dd"><a href="{mod:homepage}" dir="ltr"><xsl:value-of select="mod:homepage" /></a></dd>
+						</xsl:if>
+						<xsl:if test="count(mod:contributions-group) > 0">
+							<dt id="lang-a-c[{generate-id()}]">Contributions:</dt>
+							<xsl:for-each select="mod:contributions-group/mod:contributions">
+								<dd name="author-dd">
+
+									<span name="rtl-spec" style="display: none">
+										<xsl:if test="@status = 'past' and @from != 'N/A' and @from != 'n/a' and @from!=''">
+											<xsl:if test="@to != 'N/A' and @to != 'n/a' and @to!=''">
+											<span id="lang-a-c-f[{generate-id()}]">From</span>:&nbsp;<xsl:value-of select="@from" />&nbsp;<span id="lang-a-c-t[{generate-id()}]]">to</span>:&nbsp;<xsl:value-of select="@to" />
+											</xsl:if>
+										</xsl:if>
+										<xsl:if test="@status = 'current' and @from != 'N/A' and @from != 'n/a' and @from!=''">
+											<span id="lang-a-c-s[{generate-id()}]]">Since</span>:&nbsp;<xsl:value-of select="@from" />
+										</xsl:if>
+										&nbsp;<strong style="text-transform: capitalize;"><xsl:value-of select="@position" /></strong>
+									</span>
+
+									<span name="ltr-spec">
+										<strong style="text-transform: capitalize;"><xsl:value-of select="@position" /></strong>&nbsp;
+										<xsl:if test="@status = 'past' and @from != 'N/A' and @from != 'n/a' and @from!=''">
+											<xsl:if test="@to != 'N/A' and @to != 'n/a' and @to!=''">
+											(<span id="lang-a-c-f[{generate-id()}]]">From</span>:&nbsp;<xsl:value-of select="@from" />&nbsp;<span id="lang-a-c-t[{generate-id()}]]">to</span>:&nbsp;<xsl:value-of select="@to" />)
+											</xsl:if>
+										</xsl:if>
+										<xsl:if test="@status = 'current' and @from != 'N/A' and @from != 'n/a' and @from!=''">
+											(<span id="lang-a-c-s[{generate-id()}]]">Since</span>:&nbsp;<xsl:value-of select="@from" />)
+										</xsl:if>
+									</span>
+
+								</dd>
+							</xsl:for-each>
+						</xsl:if>
+					</dl>
 				<span class="corners-bottom"><span></span></span>
 			</div>
 		</xsl:for-each>
 	</xsl:template>
-	<xsl:template name="give-author">
-		<dl class="author-info">
-			<dt id="lang-a-un[{generate-id()}]">Username:</dt>
-			<dd><a href="http://www.phpbb.com/phpBB/profile.php?mode=viewprofile&amp;un={translate(mod:username, ' ', '+')}"><xsl:value-of select="mod:username" /></a></dd>
-			<xsl:if test="mod:email != 'N/A' and mod:email != 'n/a' and mod:email != ''">
-				<dt id="lang-a-e[{generate-id()}]">Email:</dt>
-				<dd><a href="mailto:{mod:email}"><xsl:value-of select="mod:email" /></a></dd>
-			</xsl:if>
-			<xsl:if test="mod:realname != 'N/A' and mod:realname != 'n/a' and mod:realname != ''">
-				<dt id="lang-a-n[{generate-id()}]">Name:</dt>
-				<dd><xsl:value-of select="mod:realname" /></dd>
-			</xsl:if>
-			<xsl:if test="mod:homepage != 'N/A' and mod:homepage != 'n/a' and mod:homepage!=''">
-				<dt id="lang-a-h[{generate-id()}]">WWW:</dt>
-				<dd><a href="{mod:homepage}"><xsl:value-of select="mod:homepage" /></a></dd>
-			</xsl:if>
-			<xsl:if test="count(mod:contributions) > 0 and count(mod:contributions/mod:status) > 0">
-				<dt id="lang-a-c[{generate-id()}]">Contributions:</dt>
-				<dd>
-					<xsl:if test="count(mod:contributions/mod:status) > 0">
-						<xsl:value-of select="mod:contributions/mod:status" /><br />
-						From:<xsl:value-of select="mod:contributions/mod:from" /><br />
-						To:<xsl:value-of select="mod:contributions/mod:to" />
-					</xsl:if>
-				</dd>
-			</xsl:if>
-		</dl>
-	</xsl:template>
+
 	<xsl:template name="give-installation">
-		<dt id="lang-il">Installation Level:</dt>
+		<dt id="lang-il" name="left4px">Installation level:</dt>
 		<dd class="mod-about">
 			<div class="inner">
 				<xsl:if test="mod:level='easy'">
@@ -1663,17 +1958,18 @@
 				</xsl:if>
 			</div>
 		</dd>
-		<dt id="lang-it">Installation Time:</dt>
+		<dt id="lang-it" name="left4px">Installation time:</dt>
 		<dd class="mod-about">
 			<div class="inner">
 				<p>~<xsl:value-of select="floor(mod:time div 60)" />&nbsp;<span id="lang-mint">minutes</span></p>
 			</div>
 		</dd>
 	</xsl:template>
+
 	<xsl:template name="give-mod-history">
 		<xsl:if test="count(mod:entry) > 0">
 			<fieldset>
-			<legend id="lang-mh">MOD History</legend>
+			<legend id="lang-mh">MOD history</legend>
 			<div class="mod-about" id="history_toggle_area" style="display:none;">
 				<span class="corners-top"><span></span></span>
 				<div class="mod-about-padding">
@@ -1689,6 +1985,7 @@
 			</fieldset>
 		</xsl:if>
 	</xsl:template>
+
 	<xsl:template name="give-history-entry">
 		<div class="mod-about">
 			<span class="corners-top"><span></span></span>
@@ -1718,6 +2015,7 @@
 			<span class="corners-bottom"><span></span></span>
 		</div>
 	</xsl:template>
+
 	<xsl:template name="give-history-entry-changelog">
 		<dt><xsl:value-of select="@lang" /></dt>
 		<dd lang="{@lang}">
@@ -1730,6 +2028,7 @@
 			</ul>
 		</dd>
 	</xsl:template>
+
 	<xsl:template name="give-history-entry-changelog-single">
 		<ul>
 			<xsl:for-each select="mod:change">
@@ -1739,6 +2038,7 @@
 			</xsl:for-each>
 		</ul>
 	</xsl:template>
+
 	<xsl:template name="give-files-to-edit">
 		<ul>
 			<xsl:for-each select="mod:open">
@@ -1746,6 +2046,7 @@
 			</xsl:for-each>
 		</ul>
 	</xsl:template>
+
 	<xsl:template name="give-files-included">
 		<ul>
 			<xsl:for-each select="mod:copy">
@@ -1753,9 +2054,11 @@
 			</xsl:for-each>
 		</ul>
 	</xsl:template>
+
 	<xsl:template name="give-file">
 		<li><a href="#{@src}"><xsl:value-of select="@src" /></a><xsl:if test="position()!=last()">,</xsl:if></li>
 	</xsl:template>
+
 	<xsl:template name="give-file-copy">
 		<xsl:for-each select="mod:file">
 			<li><xsl:value-of select="@from" />
@@ -1764,12 +2067,16 @@
 			</li>
 		</xsl:for-each>
 	</xsl:template>
+
 	<xsl:template name="give-actions">
+	  <xsl:if test="count(mod:sql) > 0 or count(mod:copy) > 0 or count(mod:open) > 0">
+	  <hr />
+    </xsl:if>
 		<xsl:if test="count(mod:sql) > 0">
 			<form method="post" action="" id="dbms-selector">
 				<fieldset class="nobg">
 					<label for="dbms"> <span id="lang-dbms">Select Database Type:</span> </label>
-					<select id="dbms" name="dbms" onchange="change_dbms(this)">
+					<select id="dbms" name="dbms" onchange="change_dbms(this);">
 						<option value="mysql_41" selected="selected">MySQL 41</option>
 						<option value="mysql_40">MySQL 40</option>
 						<option value="firebird">Firebird</option>
@@ -1786,42 +2093,70 @@
 					<xsl:for-each select="mod:sql">
 						<xsl:call-template name="give-sql"></xsl:call-template>
 					</xsl:for-each>
-				<span class="corners-bottom"><span></span></span></div>
+				<span class="corners-bottom"><span></span></span>
+			</div>
 		</xsl:if>
 		<xsl:if test="count(mod:copy) > 0">
 			<xsl:for-each select="mod:copy">
 				<xsl:call-template name="give-filez"></xsl:call-template>
 			</xsl:for-each>
 		</xsl:if>
+		<xsl:if test="count(mod:delete) > 0">
+			<xsl:for-each select="mod:delete">
+				<xsl:call-template name="away-filez"></xsl:call-template>
+			</xsl:for-each>
+		</xsl:if>
 		<xsl:if test="count(mod:open) > 0">
-		<h2 id="lang-edts">Edits</h2>
-		<p><span class="key">s</span><span class="key">&lt;</span><span class="key">&gt;</span><span id="lang-edtt">Use your keyboard to navigate the code boxes. You may also hit '<em>s</em>' on your keyboard to go to the first code box.</span></p>
-		<div id="edits">
-			<div class="inner">
-				<xsl:for-each select="mod:open">
-					<xsl:call-template name="give-fileo"></xsl:call-template>
-				</xsl:for-each>
+			<h2 id="lang-edts">Edits</h2>
+			<p><span class="key">s</span><span class="key">w</span><span class="key">x</span><span id="lang-edtt">Use your keyboard to navigate the code boxes. You may also hit '<em>s</em>' on your keyboard to go to the first code box.</span></p>
+			<div id="edits">
+				<div class="inner">
+					<xsl:for-each select="mod:open">
+						<xsl:call-template name="give-fileo"></xsl:call-template>
+					</xsl:for-each>
+				</div>
 			</div>
-		</div>
 		</xsl:if>
-		<xsl:call-template name="give-manual"></xsl:call-template>
+		<xsl:if test="count(mod:php-installer) > 0">
+			<h2 id="lang-installer-h2">PHP install file</h2>
+			<div class="mod-about">
+				<span class="corners-top"><span></span></span>
+					<div class="mod-about-padding">
+						<p>
+							<span id="lang-installer-exp1">There is a PHP install file that needs to be run in order to complete the installation.</span>
+							<br />
+							<span id="lang-installer-exp2">To run it point your browser to, for example,</span><span dir="ltr"> domain.tld/phpBB3/<xsl:value-of select="mod:php-installer" /></span>
+						</p>
+						<div class="content">
+							<div class="codebox">
+								<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select All</span></a></div>
+								<div class="codePre"><pre id="{generate-id()}" dir="ltr"><xsl:value-of select="mod:php-installer" /></pre></div>
+							</div>
+						</div>
+					</div>
+				<span class="corners-bottom"><span></span></span>
+			</div>
+		</xsl:if>
+		<xsl:call-template name="give-manual" />
 	</xsl:template>
+
 	<xsl:template name="give-sql">
 		<dbms type="{@dbms}">
-			<div class="content">
+			<div class="content" name="{@dbms}">
 				<xsl:if test="@dbms != ''">
 					<xsl:value-of select="@dbms" />:
 				</xsl:if>
 				<div class="codebox">
-					<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select All</span></a></div>
-					<div class="codePre"><pre id="{generate-id()}"><xsl:value-of select="current()" /></pre></div>
+					<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select all</span></a></div>
+					<div class="codePre"><pre id="{generate-id()}" dir="ltr"><xsl:value-of select="current()" /></pre></div>
 				</div>
 			</div>
 		</dbms>
 	</xsl:template>
+
 	<xsl:template name="give-manual">
-		<xsl:if test="count(mod:diy-instructions) > 0">
-			<h2 id="lang-diy">DIY Instructions</h2>
+		<xsl:if test="count(mod:diy-instructions)">
+			<h2 id="lang-diy">DIY instructions</h2>
 			<div class="mod-about">
 				<span class="corners-top"><span></span></span>
 					<div class="mod-about-padding">
@@ -1843,6 +2178,7 @@
 			</div>
 		</xsl:if>
 	</xsl:template>
+
 	<xsl:template name="give-fileo">
 		<div class="mod-about">
 			<span class="corners-top"><span></span></span>
@@ -1866,76 +2202,92 @@
 								</dl>
 							</div>
 						</xsl:if>
-						<xsl:for-each select="mod:find|mod:action|mod:inline-edit">
+						<xsl:for-each select="mod:find|mod:remove|mod:action|mod:inline-edit">
 							<xsl:if test="name() = 'find'">
 								<h4 id="lang-fnd[{generate-id()}]">Find</h4>
 								<p><span id="lang-fndt[{generate-id()}]"><strong>Tip:</strong> This may be a partial find and not the whole line.</span>
 									<xsl:if test="@type = 'regex'">
-										<br /><em id="lang-regex[{generate-id()}]">This find contains an advanced feature known as regular expressions, click here to learn more.</em>
+										<br /><em id="lang-regex[{generate-id()}]">This find contains an advanced feature known as regular expressions.</em>
 									</xsl:if>
 								</p>
 								<div class="codebox">
 									<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select All</span></a></div>
-									<div class="codePre"><pre id="{generate-id()}"><xsl:value-of select="current()" /></pre></div>
+									<div class="codePre"><pre id="{generate-id()}" dir="ltr"><xsl:value-of select="current()" /></pre></div>
+								</div>
+							</xsl:if>
+							<xsl:if test="name() = 'remove'">
+								<h4 id="lang-remove[{generate-id()}]" style="color: #FF0FFF;">Find and Delete</h4>
+								<p><span id="lang-removet[{generate-id()}]"><strong>Tip:</strong>  Find and delete this code.</span></p>
+								<div class="codebox">
+									<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select All</span></a></div>
+									<div class="codePre"><pre id="{generate-id()}" dir="ltr"><xsl:value-of select="current()" /></pre></div>
 								</div>
 							</xsl:if>
 							<xsl:if test="name() = 'action'">
 								<xsl:if test="@type = 'after-add'">
-									<h4 id="lang-aft[{generate-id()}]">Add after</h4>
+									<h4 id="lang-aft[{generate-id()}]" style="color: #009933;">Add after</h4>
 									<p><span id="lang-aftt[{generate-id()}]"><strong>Tip:</strong> Add these lines on a new blank line after the preceding line(s) to find.</span></p>
 								</xsl:if>
 								<xsl:if test="@type = 'before-add'">
-									<h4 id="lang-bef[{generate-id()}]">Add before</h4>
+									<h4 id="lang-bef[{generate-id()}]" style="color: #AC1987;">Add before</h4>
 									<p><span id="lang-beft[{generate-id()}]"><strong>Tip:</strong> Add these lines on a new blank line before the preceding line(s) to find.</span></p>
 								</xsl:if>
 								<xsl:if test="@type = 'replace-with'">
-									<h4 id="lang-rplw[{generate-id()}]">Replace With</h4>
+									<h4 id="lang-rplw[{generate-id()}]" style="color: #AE1616;">Replace with</h4>
 									<p><span id="lang-rplwt[{generate-id()}]"><strong>Tip:</strong> Replace the preceding line(s) to find with the following lines.</span></p>
 								</xsl:if>
 								<xsl:if test="@type = 'operation'">
-									<h4 id="lang-inc[{generate-id()}]">Increment</h4>
-									<p><span id="lang-inct[{generate-id()}]"><strong>Tip:</strong> This allows you to alter integers. For help on what each operator means, click here.</span></p>
+									<h4 id="lang-inc[{generate-id()}]" style="color: #333333;">Operation</h4>
+									<p><span id="lang-inct[{generate-id()}]"><strong>Tip:</strong> This allows you to alter integers.</span></p>
 								</xsl:if>
 								<div class="codebox">
-									<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select All</span></a></div>
-									<div class="codePre"><pre id="{generate-id()}"><xsl:value-of select="current()" /></pre></div>
+									<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select all</span></a></div>
+									<div class="codePre"><pre id="{generate-id()}" dir="ltr"><xsl:value-of select="current()" /></pre></div>
 								</div>
 							</xsl:if>
 							<xsl:if test="name() = 'inline-edit'">
 								<div class="mod-inlineedit">
-									<xsl:for-each select="mod:inline-find|mod:inline-action|mod:inline-comment">
+									<xsl:for-each select="mod:inline-find|mod:inline-remove|mod:inline-action|mod:inline-comment">
 										<xsl:if test="name() = 'inline-find'">
 											<h5 id="lang-ifnd[{generate-id()}]">In-line Find</h5>
 											<p><span id="lang-ifndt[{generate-id()}]"><strong>Tip:</strong> This is a partial match of a line for in-line operations.</span>
 												<xsl:if test="@type = 'regex'">
-													<br /><em id="lang-regex[{generate-id()}]">This find contains an advanced feature known as regular expressions, click here to learn more.</em>
+													<br /><em id="lang-regex[{generate-id()}]">This find contains an advanced feature known as regular expressions.</em>
 												</xsl:if>
 											</p>
 											<div class="codebox">
-												<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select All</span></a></div>
-												<div class="codePre"><pre id="{generate-id()}"><xsl:value-of select="current()" /></pre></div>
+												<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select all</span></a></div>
+												<div class="codePre"><pre id="{generate-id()}" dir="ltr"><xsl:value-of select="current()" /></pre></div>
+											</div>
+										</xsl:if>
+										<xsl:if test="name() = 'inline-remove'">
+											<h5 id="lang-iremove[{generate-id()}]" style="color: #FF0FFF;">In-line Find and Delete</h5>
+											<p><span id="lang-iremovet[{generate-id()}]"><strong>Tip:</strong> Find this code in the line and delete it.</span></p>
+											<div class="codebox">
+												<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select all</span></a></div>
+												<div class="codePre"><pre id="{generate-id()}" dir="ltr"><xsl:value-of select="current()" /></pre></div>
 											</div>
 										</xsl:if>
 										<xsl:if test="name() = 'inline-action'">
 											<xsl:if test="@type = 'after-add'">
-												<h5 id="lang-iaft[{generate-id()}]">In-line Add after</h5>
+												<h5 id="lang-iaft[{generate-id()}]" style="color: #009933;">In-line Add after</h5>
 												<p><span id="lang-iaftt[{generate-id()}]"></span></p>
 											</xsl:if>
 											<xsl:if test="@type = 'before-add'">
-												<h5 id="lang-ibef[{generate-id()}]">In-line Add before</h5>
+												<h5 id="lang-ibef[{generate-id()}]" style="color: #AC1987;">In-line Add before</h5>
 												<p><span id="lang-ibeft[{generate-id()}]"></span></p>
 											</xsl:if>
 											<xsl:if test="@type = 'replace-with'">
-												<h5 id="lang-irplw[{generate-id()}]">In-line Replace With</h5>
+												<h5 id="lang-irplw[{generate-id()}]" style="color: #AE1616;">In-line Replace with</h5>
 												<p><span id="lang-irplwt[{generate-id()}]"></span></p>
 											</xsl:if>
 											<xsl:if test="@type = 'operation'">
-												<h5 id="lang-iinc[{generate-id()}]">In-line Increment</h5>
-												<p><span id="lang-iinct[{generate-id()}]"><strong>Tip:</strong> This allows you to alter integers. For help on what each operator means, click here.</span></p>
+												<h5 id="lang-iinc[{generate-id()}]" style="color: #333333;">In-line Operation</h5>
+												<p><span id="lang-iinct[{generate-id()}]"><strong>Tip:</strong> This allows you to alter integers.</span></p>
 											</xsl:if>
 											<div class="codebox">
 												<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select All</span></a></div>
-												<div class="codePre"><pre id="{generate-id()}"><xsl:value-of select="current()" /></pre></div>
+												<div class="codePre"><pre id="{generate-id()}" dir="ltr"><xsl:value-of select="current()" /></pre></div>
 											</div>
 										</xsl:if>
 										<xsl:if test="name() = 'inline-comment'">
@@ -1956,11 +2308,13 @@
 			<span class="corners-bottom"><span></span></span>
 		</div>
 	</xsl:template>
+
 	<xsl:template name="give-filez">
-		<h2 id="lang-fca">File Copy</h2>
+		<h2 id="lang-fca">File copy</h2>
 		<ol id="file-copy">
 			<xsl:for-each select="mod:file">
-				<li><dl>
+				<li>
+					<dl>
 						<dt><span id="lang-c-copy[{generate-id()}]">Copy:</span>&nbsp;<xsl:value-of select="@from" /></dt>
 						<dd><span id="lang-c-to[{generate-id()}]">To:</span>&nbsp;<xsl:value-of select="@to" /></dd>
 					</dl>
@@ -1968,6 +2322,27 @@
 			</xsl:for-each>
 		</ol>
 	</xsl:template>
+
+	<xsl:template name="away-filez">
+		<xsl:choose>
+			<xsl:when test="count(mod:file) > 1">
+				<h2 id="lang-del-heads">Delete files</h2>
+			</xsl:when>
+			<xsl:otherwise>
+				<h2 id="lang-del-head">Delete file</h2>
+			</xsl:otherwise>
+		</xsl:choose>
+		<ol id="file-delete">
+			<xsl:for-each select="mod:file">
+				<li>
+					<dl>
+						<dt><span id="lang-del-file[{generate-id()}]">Delete:</span>&nbsp;<xsl:value-of select="@name" /></dt>
+					</dl>
+				</li>
+			</xsl:for-each>
+		</ol>
+	</xsl:template>
+
 	<!-- add-line-breaks borrowed from http://www.stylusstudio.com/xsllist/200103/post40180.html -->
 	<xsl:template name="add-line-breaks">
 		<xsl:param name="string" select="." />
@@ -1981,4 +2356,300 @@
 			</xsl:otherwise>
 		</xsl:choose>
 	</xsl:template>
+
+	<!-- replace function borrowed from http://www.dpawson.co.uk/xsl/sect2/replace.html#d9701e43 -->
+	<xsl:template name="replaceCharsInString">
+		<xsl:param name="stringIn"/>
+		<xsl:param name="charsIn"/>
+		<xsl:param name="charsOut"/>
+		<xsl:choose>
+			<xsl:when test="contains($stringIn,$charsIn)">
+				<xsl:value-of select="concat(substring-before($stringIn,$charsIn),$charsOut)"/>
+				<xsl:call-template name="replaceCharsInString">
+					<xsl:with-param name="stringIn" select="substring-after($stringIn,$charsIn)"/>
+					<xsl:with-param name="charsIn" select="$charsIn"/>
+					<xsl:with-param name="charsOut" select="$charsOut"/>
+				</xsl:call-template>
+			</xsl:when>
+			<xsl:otherwise>
+				<xsl:value-of select="$stringIn"/>
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+
+	<!-- Replace some chars -->
+	<xsl:template name="validate-username">
+		<xsl:param name="string-in"/>
+
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+
+		<xsl:call-template name="replaceCharsInString">
+			<xsl:with-param name="stringIn" select="string($string-in)"/>
+			<xsl:with-param name="charsIn" select="'#'"/>
+			<xsl:with-param name="charsOut" select="'%23'"/>
+		</xsl:call-template>
+
+		</xsl:with-param><xsl:with-param name="charsIn" select="'&amp;'"/><xsl:with-param name="charsOut" select="'%26'"/></xsl:call-template> <!-- & -->
+		</xsl:with-param><xsl:with-param name="charsIn" select="'+'"/><xsl:with-param name="charsOut" select="'%2B'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="' '"/><xsl:with-param name="charsOut" select="'%20'"/></xsl:call-template> <!-- space -->
+	</xsl:template>
+
+	<!-- This is only needed for Opera support, hiding it here at the bottom. -->
+	<xsl:template name="validate-opera">
+		<xsl:param name="string-in"/>
+
+		<!-- This doesn't follow any coding guidelines. But is easier to read this way -->
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+
+		<xsl:call-template name="replaceCharsInString">
+			<xsl:with-param name="stringIn" select="string($string-in)"/>
+			<xsl:with-param name="charsIn" select="'é'"/>
+			<xsl:with-param name="charsOut" select="'%C3%A9'"/>
+		</xsl:call-template>
+
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ÿ'"/><xsl:with-param name="charsOut" select="'%C3%BF'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'þ'"/><xsl:with-param name="charsOut" select="'%C3%BE'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ý'"/><xsl:with-param name="charsOut" select="'%C3%BD'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ü'"/><xsl:with-param name="charsOut" select="'%C3%BC'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'û'"/><xsl:with-param name="charsOut" select="'%C3%BB'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ú'"/><xsl:with-param name="charsOut" select="'%C3%BA'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ù'"/><xsl:with-param name="charsOut" select="'%C3%B9'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ø'"/><xsl:with-param name="charsOut" select="'%C3%B8'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'÷'"/><xsl:with-param name="charsOut" select="'%C3%B7'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ö'"/><xsl:with-param name="charsOut" select="'%C3%B6'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'õ'"/><xsl:with-param name="charsOut" select="'%C3%B5'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ô'"/><xsl:with-param name="charsOut" select="'%C3%B4'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ó'"/><xsl:with-param name="charsOut" select="'%C3%B3'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ò'"/><xsl:with-param name="charsOut" select="'%C3%B2'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ñ'"/><xsl:with-param name="charsOut" select="'%C3%B1'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ð'"/><xsl:with-param name="charsOut" select="'%C3%B0'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ï'"/><xsl:with-param name="charsOut" select="'%C3%AF'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'î'"/><xsl:with-param name="charsOut" select="'%C3%AE'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'í'"/><xsl:with-param name="charsOut" select="'%C3%AD'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ì'"/><xsl:with-param name="charsOut" select="'%C3%AC'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ë'"/><xsl:with-param name="charsOut" select="'%C3%AB'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ê'"/><xsl:with-param name="charsOut" select="'%C3%AA'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'é'"/><xsl:with-param name="charsOut" select="'%C3%A9'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'è'"/><xsl:with-param name="charsOut" select="'%C3%A8'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ç'"/><xsl:with-param name="charsOut" select="'%C3%A7'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'æ'"/><xsl:with-param name="charsOut" select="'%C3%A6'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'å'"/><xsl:with-param name="charsOut" select="'%C3%A5'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ä'"/><xsl:with-param name="charsOut" select="'%C3%A4'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ã'"/><xsl:with-param name="charsOut" select="'%C3%A3'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'â'"/><xsl:with-param name="charsOut" select="'%C3%A2'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'á'"/><xsl:with-param name="charsOut" select="'%C3%A1'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'à'"/><xsl:with-param name="charsOut" select="'%C3%A0'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ß'"/><xsl:with-param name="charsOut" select="'%C3%9F'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Þ'"/><xsl:with-param name="charsOut" select="'%C3%9E'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ý'"/><xsl:with-param name="charsOut" select="'%C3%9D'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ü'"/><xsl:with-param name="charsOut" select="'%C3%9C'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Û'"/><xsl:with-param name="charsOut" select="'%C3%9B'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ú'"/><xsl:with-param name="charsOut" select="'%C3%9A'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ù'"/><xsl:with-param name="charsOut" select="'%C3%99'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ø'"/><xsl:with-param name="charsOut" select="'%C3%98'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'×'"/><xsl:with-param name="charsOut" select="'%C3%97'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ö'"/><xsl:with-param name="charsOut" select="'%C3%96'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Õ'"/><xsl:with-param name="charsOut" select="'%C3%95'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ô'"/><xsl:with-param name="charsOut" select="'%C3%94'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ó'"/><xsl:with-param name="charsOut" select="'%C3%93'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ò'"/><xsl:with-param name="charsOut" select="'%C3%92'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ñ'"/><xsl:with-param name="charsOut" select="'%C3%91'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ð'"/><xsl:with-param name="charsOut" select="'%C3%90'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ï'"/><xsl:with-param name="charsOut" select="'%C3%8F'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Î'"/><xsl:with-param name="charsOut" select="'%C3%8E'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Í'"/><xsl:with-param name="charsOut" select="'%C3%8D'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ì'"/><xsl:with-param name="charsOut" select="'%C3%8C'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ë'"/><xsl:with-param name="charsOut" select="'%C3%8B'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ê'"/><xsl:with-param name="charsOut" select="'%C3%8A'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'É'"/><xsl:with-param name="charsOut" select="'%C3%89'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'È'"/><xsl:with-param name="charsOut" select="'%C3%88'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ç'"/><xsl:with-param name="charsOut" select="'%C3%87'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Æ'"/><xsl:with-param name="charsOut" select="'%C3%86'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Å'"/><xsl:with-param name="charsOut" select="'%C3%85'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ä'"/><xsl:with-param name="charsOut" select="'%C3%84'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ã'"/><xsl:with-param name="charsOut" select="'%C3%83'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Â'"/><xsl:with-param name="charsOut" select="'%C3%82'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Á'"/><xsl:with-param name="charsOut" select="'%C3%81'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'À'"/><xsl:with-param name="charsOut" select="'%C3%80'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¿'"/><xsl:with-param name="charsOut" select="'%C2%BF'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¾'"/><xsl:with-param name="charsOut" select="'%C2%BE'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'½'"/><xsl:with-param name="charsOut" select="'%C2%BD'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¼'"/><xsl:with-param name="charsOut" select="'%C2%BC'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'»'"/><xsl:with-param name="charsOut" select="'%C2%BB'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'º'"/><xsl:with-param name="charsOut" select="'%C2%BA'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¹'"/><xsl:with-param name="charsOut" select="'%C2%B9'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¸'"/><xsl:with-param name="charsOut" select="'%C2%B8'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'·'"/><xsl:with-param name="charsOut" select="'%C2%B7'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¶'"/><xsl:with-param name="charsOut" select="'%C2%B6'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'µ'"/><xsl:with-param name="charsOut" select="'%C2%B5'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'´'"/><xsl:with-param name="charsOut" select="'%C2%B4'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'³'"/><xsl:with-param name="charsOut" select="'%C2%B3'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'²'"/><xsl:with-param name="charsOut" select="'%C2%B2'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'±'"/><xsl:with-param name="charsOut" select="'%C2%B1'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'°'"/><xsl:with-param name="charsOut" select="'%C2%B0'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¯'"/><xsl:with-param name="charsOut" select="'%C2%AF'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'®'"/><xsl:with-param name="charsOut" select="'%C2%AE'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¬'"/><xsl:with-param name="charsOut" select="'%C2%AC'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'«'"/><xsl:with-param name="charsOut" select="'%C2%AB'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ª'"/><xsl:with-param name="charsOut" select="'%C2%AA'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'©'"/><xsl:with-param name="charsOut" select="'%C2%A9'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¨'"/><xsl:with-param name="charsOut" select="'%C2%A8'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'§'"/><xsl:with-param name="charsOut" select="'%C2%A7'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¦'"/><xsl:with-param name="charsOut" select="'%C2%A6'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¥'"/><xsl:with-param name="charsOut" select="'%C2%A5'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¤'"/><xsl:with-param name="charsOut" select="'%C2%A4'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'£'"/><xsl:with-param name="charsOut" select="'%C2%A3'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¢'"/><xsl:with-param name="charsOut" select="'%C2%A2'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¡'"/><xsl:with-param name="charsOut" select="'%C2%A1'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ÿ'"/><xsl:with-param name="charsOut" select="'%C5%B8'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ž'"/><xsl:with-param name="charsOut" select="'%C5%BE'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'œ'"/><xsl:with-param name="charsOut" select="'%C5%93'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'›'"/><xsl:with-param name="charsOut" select="'%E2%80%BA'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'š'"/><xsl:with-param name="charsOut" select="'%C5%A1'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'™'"/><xsl:with-param name="charsOut" select="'%E2%84%A2'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'˜'"/><xsl:with-param name="charsOut" select="'%CB%9C'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'—'"/><xsl:with-param name="charsOut" select="'%E2%80%94'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'–'"/><xsl:with-param name="charsOut" select="'%E2%80%93'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'•'"/><xsl:with-param name="charsOut" select="'%E2%80%A2'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'”'"/><xsl:with-param name="charsOut" select="'%E2%80%9D'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'“'"/><xsl:with-param name="charsOut" select="'%E2%80%9C'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'’'"/><xsl:with-param name="charsOut" select="'%E2%80%99'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'‘'"/><xsl:with-param name="charsOut" select="'%E2%80%98'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ž'"/><xsl:with-param name="charsOut" select="'%C5%BD'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Œ'"/><xsl:with-param name="charsOut" select="'%C5%92'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'‹'"/><xsl:with-param name="charsOut" select="'%E2%80%B9'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Š'"/><xsl:with-param name="charsOut" select="'%C5%A0'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'‰'"/><xsl:with-param name="charsOut" select="'%E2%80%B0'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ˆ'"/><xsl:with-param name="charsOut" select="'%CB%86'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'‡'"/><xsl:with-param name="charsOut" select="'%E2%80%A1'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'†'"/><xsl:with-param name="charsOut" select="'%E2%80%A0'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'…'"/><xsl:with-param name="charsOut" select="'%E2%80%A6'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'„'"/><xsl:with-param name="charsOut" select="'%E2%80%9E'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ƒ'"/><xsl:with-param name="charsOut" select="'%C6%92'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'‚'"/><xsl:with-param name="charsOut" select="'%E2%80%9A'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'€'"/><xsl:with-param name="charsOut" select="'%E2%82%AC'"/></xsl:call-template>
+	</xsl:template>
+
 </xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/install.xml	Sun Aug 01 19:52:31 2010 +0000
@@ -0,0 +1,286 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<?xml-stylesheet type="text/xsl" href="modx.prosilver.en.xsl"?>
+<!--For security purposes, please check: http://www.phpbb.com/mods/ for the
+      latest version of this MOD. Although MODs are checked before being
+      allowed in the MODs Database there is no guarantee that there are no
+      security problems within the MOD. No support will be given for MODs not
+      found within the MODs Database which can be found at
+      http://www.phpbb.com/mods/-->
+<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
+
+	<header>
+		<license>http://opensource.org/licenses/gpl-license.php GNU General Public License v2</license>
+		<title lang="en-gb">Special and Normal Rank Images</title>
+		<description lang="en-gb">This MOD will allow users with special ranks (e.g. Administrators) to have a normal rank image in addition to their special rank image in topics and on their profile page.</description>
+		<author-notes lang="en-gb"><![CDATA[While this mod doesn't have to be installed along-side the "Multi-Race Rank Theme" mod, it is compatible with the mod and can be used to compliment it. Instructions on how to alter the Multi-Race Rank Theme mod to allow users with special ranks to choose a theme can be found in the /contrib folder.
+
+The styling used by this mod is entirely arbitrary and was included as an example. You may wish to use different HTML in memberlist_view.html and viewtopic_body.html.]]></author-notes>
+		<author-group>
+			<author>
+				<realname>IBBoard</realname>
+				<email>phpbb@ibboard.co.uk</email>
+				<username>IBBoard</username>
+				<homepage>http://www.ibboard.co.uk</homepage>
+			</author>
+		</author-group>
+		<link-group>
+			<link type="template" href="subsilver2.xml" lang="en-gb">subsilver2</link>
+			<link type="contrib" href="contrib/MultiRaceRankThemesIntegration.xml" lang="en-gb">Multi-Race Rank Theme MOD integration</link>
+		</link-group>
+		<mod-version>1.2.0</mod-version>
+		<installation>
+			<level>intermediate</level>
+			<time>600</time>
+			<target-version>3.0.7</target-version>
+		</installation>
+		<history>
+			<entry>
+				<date>2010-08-01</date>
+				<rev-version>1.2.0</rev-version>
+				<changelog lang="en-gb">
+					<change>Update version number and other minor fixes for release</change>
+				</changelog>
+			</entry>
+			<entry>
+				<date>2010-03-20</date>
+				<rev-version>1.1.1</rev-version>
+				<changelog lang="en-gb">
+					<change>Fix: Correct array indexes in ucp_pm_viewmessage.php (should be image, not img) - thanks to _RocknRoll for reporting it</change>
+				</changelog>
+			</entry>
+			<entry>
+				<date>2009-06-15</date>
+				<rev-version>1.1.0</rev-version>
+				<changelog lang="en-gb">
+					<change>Add: Add config value for Memberlist that also fixes the situation where only users with special ranks show ranks in the members list</change>
+					<change>Add: Add code and template to add both ranks when viewing PMs</change>
+					<change>Change: Update documentation on get_user_additional_rank to make it different to get_user_rank</change>
+				</changelog>
+			</entry>
+			<entry>
+				<date>2009-01-09</date>
+				<rev-version>1.0.1</rev-version>
+				<changelog lang="en-gb">
+					<change>No code changes - convert instructions to less semantically rich MODX 1.2.1 format</change>
+				</changelog>
+			</entry>
+			<entry>
+				<date>2009-01-08</date>
+				<rev-version>1.0.0</rev-version>
+				<changelog lang="en-gb">
+					<change>No code changes - first release</change>
+				</changelog>
+			</entry>
+			<entry>
+				<date>2008-05-12</date>
+				<rev-version>0.1.5</rev-version>
+				<changelog lang="en-gb">
+					<change>Fix: Stop users without a special rank showing their posting rank twice when SPECIAL_RANK_AS_EXTRA is set to true</change>
+				</changelog>
+			</entry>
+			<entry>
+				<date>2008-05-09</date>
+				<rev-version>0.1.4b</rev-version>
+				<changelog lang="en-gb">
+					<change>Update: Add ability to have the special rank show as the 'extra' rank to allow admins to have their admin rank in a different location to their post rank (add new change to includes/constants.php and overhaul changes in viewtopic.php and memberlist.php)</change>
+				</changelog>
+			</entry>
+			<entry>
+				<date>2008-05-05</date>
+				<rev-version>0.1.3b</rev-version>
+				<changelog lang="en-gb">
+					<change>Fix: Move mis-placed instruction from a template file to memberlist.php and make sure instruction doesn't match multiple locations</change>
+					<change>Change: Separate out Subsilver instructions</change>
+				</changelog>
+			</entry>
+			<entry>
+				<date>2008-04-13</date>
+				<rev-version>0.1.2b</rev-version>
+				<changelog lang="en-gb">
+					<change>Fix: "Undeclared index" warnings that were reported in viewtopic.php when viewing guest posts (added setting of blank defaults for guests)</change>
+				</changelog>
+			</entry>
+			<entry>
+				<date>2008-04-13</date>
+				<rev-version>0.1.1b</rev-version>
+				<changelog lang="en-gb">
+					<change>Initial release</change>
+				</changelog>
+			</entry>
+		</history>
+	</header>
+	<action-group>
+		<open src="includes/constants.php">
+			<edit>
+				<find><![CDATA[// Additional constants]]></find>
+				<action type="after-add"><![CDATA[// Special and normal rank images
+define('SHOW_SPECIAL_AS_EXTRA', false); //Set to true if you want topics and profiles to show the special ranks, e.g. Administrator, as the 'extra' rank
+define('SHOW_ONLY_NORMAL_RANKS_ON_MEMBERLIST', false); //Set to true if you want the memberslist to show only normal ranks and not special ranks
+]]>
+				</action>
+			</edit>
+		</open>
+		<open src="includes/functions_display.php">
+			<edit>
+				<find><![CDATA[/**
+* Get user avatar]]></find>
+				<action type="before-add"><![CDATA[/**
+* Get user's additional (normal) rank title and image if they have a special rank
+*
+* @param int $user_rank the current stored users rank id
+* @param int $user_posts the users number of posts
+* @param string &$rank_title the additional rank title will be stored here after execution, if the user has an additional rank
+* @param string &$rank_img the additional rank image as full img tag is stored here after execution, if the user has an additional rank
+* @param string &$rank_img_src the additional rank image source is stored here after execution, if the user has an additional rank
+*
+*/
+function get_user_additional_rank($user_rank, $user_posts, &$rank_title, &$rank_img, &$rank_img_src)
+{
+	if (!empty($user_rank))
+	{
+		//Always pass 0 to save duplicating get_user_rank and getting the special rank back
+		get_user_rank(0, $user_posts, $rank_title, $rank_img, $rank_img_src);
+	}
+}
+]]>
+				</action>
+			</edit>
+		</open>
+		<open src="includes/ucp/ucp_pm_viewmessage.php">
+			<edit>
+				<find><![CDATA[		'RANK_TITLE'		=> $user_info['rank_title'],
+		'RANK_IMG'			=> $user_info['rank_image'],]]></find>
+				<action type="after-add"><![CDATA[		'EXTRA_RANK_TITLE'		=> $user_info['extra_rank_title'],
+		'EXTRA_RANK_IMG'			=> $user_info['extra_rank_img'],]]></action>
+			</edit>
+			<edit>
+				<find><![CDATA[	get_user_rank($user_row['user_rank'], $user_row['user_posts'], $user_row['rank_title'], $user_row['rank_image'], $user_row['rank_image_src']);]]></find>
+				<action type="after-add"><![CDATA[	$user_row['extra_rank_title'] = $user_row['extra_rank_img'] = $user_row['extra_rank_img_src'] = '';
+
+	if (defined('SHOW_SPECIAL_AS_EXTRA') && SHOW_SPECIAL_AS_EXTRA)
+	{
+		$user_row['extra_rank_title'] = $user_row['rank_title'];
+		$user_row['extra_rank_img'] = $user_row['rank_image'];
+		$user_row['extra_rank_img_src'] = $user_row['rank_img_src'];
+		$user_row['rank_title'] = $user_row['rank_image'] = $user_row['rank_image_src'] = '';
+
+		get_user_additional_rank($user_row['user_rank'], $user_row['user_posts'], $user_row['rank_title'], $user_row['rank_image'], $user_row['rank_image_src']);
+	}
+	else
+	{
+		get_user_additional_rank($user_row['user_rank'], $user_row['user_posts'], $user_row['extra_rank_title'], $user_row['extra_rank_img'], $user_row['extra_rank_img_src']);
+	}]]></action>
+			</edit>
+		</open>
+		<open src="memberlist.php">
+			<edit>
+				<find><![CDATA[				if (isset($cp_row['row']) && sizeof($cp_row['row']))]]></find>
+				<action type="before-add"><![CDATA[				$user_rank = $row['user_rank'];
+
+				if (defined('SHOW_ONLY_NORMAL_RANKS_ON_MEMBERLIST') && SHOW_ONLY_NORMAL_RANKS_ON_MEMBERLIST)
+				{
+					$user_rank = 0;
+				}
+
+				//Reset our ranks, since show_profile() gets the values for the profile page
+				get_user_rank($user_rank, (($user_id == ANONYMOUS) ? false : $row['user_posts']), $memberrow['RANK_TITLE'], $memberrow['RANK_IMG'], $memberrow['RANK_IMG_SRC']);]]></action>
+			</edit>
+			<edit>
+				<find><![CDATA[	if (!empty($data['user_allow_viewemail']) || $auth->acl_get('a_user'))]]></find>
+				<action type="before-add"><![CDATA[	$extra_rank_title = $extra_rank_img = $extra_rank_img_src = '';
+
+	if (defined('SHOW_SPECIAL_AS_EXTRA') && SHOW_SPECIAL_AS_EXTRA)
+	{
+		$extra_rank_title = $rank_title;
+		$extra_rank_img = $rank_img;
+		$extra_rank_img_src = $rank_img_src;
+		$rank_title = $rank_img = $rank_img_src = '';
+
+		get_user_additional_rank($data['user_rank'], $data['user_posts'], $rank_title, $rank_img, $rank_img_src);
+	}
+	else
+	{
+		get_user_additional_rank($data['user_rank'], $data['user_posts'], $extra_rank_title, $extra_rank_img, $extra_rank_img_src);
+	}
+]]></action>
+			</edit>
+			<edit>
+				<find><![CDATA[		'ICQ_STATUS_IMG'	=> (!empty($data['user_icq']))]]></find>
+				<action type="before-add"><![CDATA[
+		'EXTRA_RANK_TITLE'	=> $extra_rank_title,
+		'EXTRA_RANK_IMG'	=> $extra_rank_img,
+		'EXTRA_RANK_IMG_SRC'=> $extra_rank_img_src,]]></action>
+			</edit>
+		</open>
+		<open src="styles/prosilver/template/memberlist_view.html">
+			<edit>
+				<find><![CDATA[			<!-- IF RANK_IMG --><dd style="text-align: center;">{RANK_IMG}</dd><!-- ENDIF -->]]></find>
+				<action type="after-add"><![CDATA[
+			<!-- IF EXTRA_RANK_TITLE --><dd style="text-align: center;">{EXTRA_RANK_TITLE}</dd><!-- ENDIF -->
+			<!-- IF EXTRA_RANK_IMG --><dd style="text-align: center;">{EXTRA_RANK_IMG}</dd><!-- ENDIF -->]]>
+				</action>
+			</edit>
+			<edit>
+				<find><![CDATA[			<!-- IF RANK_IMG --><dt><!-- IF RANK_TITLE -->&nbsp;<!-- ELSE -->{L_RANK}:<!-- ENDIF --></dt> <dd>{RANK_IMG}</dd><!-- ENDIF -->]]></find>
+				<action type="after-add"><![CDATA[
+			<!-- IF EXTRA_RANK_TITLE --><dt>&nbsp;</dt> <dd>{EXTRA_RANK_TITLE}</dd><!-- ENDIF -->
+			<!-- IF EXTRA_RANK_IMG --><dt>&nbsp;</dt> <dd>{EXTRA_RANK_IMG}</dd><!-- ENDIF -->]]></action>
+			</edit>
+		</open>
+		<open src="styles/prosilver/template/ucp_pm_viewmessage.html">
+			<edit>
+				<find><![CDATA[		<!-- IF RANK_IMG --><dd>{RANK_IMG}</dd><!-- ENDIF -->]]></find>
+				<action type="after-add"><![CDATA[		<!-- IF EXTRA_RANK_TITLE --><dd>{EXTRA_RANK_TITLE}</dd><!-- ENDIF -->
+		<!-- IF EXTRA_RANK_IMG --><dd>{EXTRA_RANK_IMG}</dd><!-- ENDIF -->]]></action>
+			</edit>
+		</open>
+		<open src="styles/prosilver/template/viewtopic_body.html">
+			<edit>
+				<find><![CDATA[			<!-- IF postrow.RANK_TITLE or postrow.RANK_IMG --><dd>{postrow.RANK_TITLE}<!-- IF postrow.RANK_TITLE and postrow.RANK_IMG --><br /><!-- ENDIF -->{postrow.RANK_IMG}</dd><!-- ENDIF -->]]></find>
+				<action type="after-add"><![CDATA[			<!-- IF postrow.EXTRA_RANK_TITLE or postrow.EXTRA_RANK_IMG --><dd>{postrow.EXTRA_RANK_TITLE}<!-- IF postrow.EXTRA_RANK_TITLE and postrow.EXTRA_RANK_IMG --><br /><!-- ENDIF -->{postrow.EXTRA_RANK_IMG}</dd><!-- ENDIF -->]]>
+				</action>
+			</edit>
+		</open>
+		<open src="viewtopic.php">
+			<edit>
+				<find><![CDATA[				'sig'				=> '',]]></find>
+				<action type="before-add"><![CDATA[
+				'extra_rank_title'		=> '',
+				'extra_rank_image'		=> '',
+				'extra_rank_image_src'	=> '',]]></action>
+			</edit>
+			<edit>
+				<find><![CDATA[				'username'			=> $row['username'],]]></find>
+				<action type="before-add"><![CDATA[
+				'extra_rank_title'		=> '',
+				'extra_rank_image'		=> '',
+				'extra_rank_image_src'	=> '',]]></action>
+			</edit>
+			<edit>
+				<find><![CDATA[			if (!empty($row['user_allow_viewemail']) || $auth->acl_get('a_email'))]]></find>
+				<action type="before-add"><![CDATA[
+			if (defined('SHOW_SPECIAL_AS_EXTRA') && SHOW_SPECIAL_AS_EXTRA)
+			{
+				$user_cache[$poster_id]['extra_rank_title'] = $user_cache[$poster_id]['rank_title'];
+				$user_cache[$poster_id]['extra_rank_image'] = $user_cache[$poster_id]['rank_image'];
+				$user_cache[$poster_id]['extra_rank_image_src'] = $user_cache[$poster_id]['rank_image_src'];
+				$user_cache[$poster_id]['rank_title'] = $user_cache[$poster_id]['rank_image'] = $user_cache[$poster_id]['rank_image_src'] = '';
+
+				get_user_additional_rank($row['user_rank'], $row['user_posts'], $user_cache[$poster_id]['rank_title'], $user_cache[$poster_id]['rank_image'], $user_cache[$poster_id]['rank_image_src']);
+			}
+			else
+			{
+				get_user_additional_rank($row['user_rank'], $row['user_posts'], $user_cache[$poster_id]['extra_rank_title'], $user_cache[$poster_id]['extra_rank_image'], $user_cache[$poster_id]['extra_rank_image_src']);
+			}
+]]></action>
+			</edit>
+			<edit>
+				<find><![CDATA[		'RANK_IMG_SRC'		=> $user_cache[$poster_id]['rank_image_src'],]]></find>
+				<action type="after-add"><![CDATA[
+		'EXTRA_RANK_TITLE'	=> $user_cache[$poster_id]['extra_rank_title'],
+		'EXTRA_RANK_IMG'	=> $user_cache[$poster_id]['extra_rank_image'],
+		'EXTRA_RANK_IMG_SRC'=> $user_cache[$poster_id]['extra_rank_image_src'],]]></action>
+			</edit>
+		</open>
+	</action-group>
+</mod>
--- a/modx.prosilver.en.xsl	Wed Jun 17 15:16:02 2009 +0000
+++ b/modx.prosilver.en.xsl	Sun Aug 01 19:52:31 2010 +0000
@@ -1,17 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- MODX by the phpBB MOD Team XSL file v1.2.1 copyright 2005-2008 the phpBB MOD Team.
-	$Id: modx.prosilver.en.xsl 2242 2008-10-06 19:40:58Z paul $ -->
+<!-- MODX by the phpBB MOD Team XSL file v1.2.4 copyright 2005-2010 the phpBB MOD Team.
+	This file is released under the GNU GPL version 2.  See license.txt.
+	$Id: modx.prosilver.en.xsl 211 2010-02-27 20:05:11Z tumba25 $ -->
 <!DOCTYPE xsl:stylesheet[
 	<!ENTITY nbsp "&#160;">
 ]>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="http://www.phpbb.com/mods/xml/modx-1.2.1.xsd">
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
 	<xsl:output method="html" omit-xml-declaration="no" indent="yes" />
 	<xsl:variable name="title" select="mod:mod/mod:header/mod:title" />
 	<xsl:variable name="version">
-	<xsl:for-each select="mod:mod/mod:header/mod:mod-version">
-		<xsl:value-of select="current()" />
-	</xsl:for-each>
+		<xsl:for-each select="mod:mod/mod:header/mod:mod-version">
+			<xsl:value-of select="current()" />
+		</xsl:for-each>
 	</xsl:variable>
+
 	<xsl:template match="mod:mod">
 		<html xmlns="http://www.w3.org/1999/xhtml">
 		<head>
@@ -34,6 +36,11 @@
 	font-size:100%;
 }
 
+/*.rtl * {
+	text-align:right;
+	direction: rtl;
+}*/
+
 body, div, p, th, td, li, dd {
 	font-size:x-small;
 	voice-family:"\"}\"";
@@ -181,14 +188,14 @@
 }
 
 #content {
-	padding:0px 10px 10px 10px;
+	padding:0 10px 10px 10px;
 	position:relative;
 }
 
 #content h1 {
 	color:#115098;
 	line-height:1.2em;
-	margin-bottom:0px;
+	margin-bottom:0;
 }
 
 #main {
@@ -259,14 +266,14 @@
 /* General form styles
 ––––––––––––––––––––––––––––––––––––––––*/
 fieldset {
-	margin:15px 0;
-	padding:1px;
+	margin:25px 0;
+	padding:1px 0;
 	border-top:1px solid #D7D7D7;
 	border-right:1px solid #CCCCCC;
 	border-bottom:1px solid #CCCCCC;
 	border-left:1px solid #D7D7D7;
 	background-color:#FFFFFF;
-	/*position:relative;*/
+	position:relative;
 }
 
 .rtl fieldset {
@@ -285,15 +292,16 @@
 }
 
 legend {
-	padding:1px 3px;
+	padding:1px 5px;
 	font-family:Tahoma,arial,Verdana,Sans-serif;
 	font-size:1.06em;
 	font-weight:bold;
 	color:#115098;
-/*	position:relative;*/
-	text-transform:capitalize;
+	margin-top:-.4em;
+	position:relative;
+/*	text-transform:capitalize;*/
 	line-height:1.00em;
-	top:0em;
+	top:0;
 	vertical-align:middle;
 }
 
@@ -358,11 +366,10 @@
 }
 
 .mod-about span.corners-top, .mod-about span.corners-bottom {
-	background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAMCAYAAABBV8wuAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABVSURBVHjaYviPAD+BeDIQ2wMxGwNU8AkQGwAxAwwzQFXqIgvCJCajC8IkbLBJMIItYmD4xYAGmBhwAJCEMS6JcKxa8DkX5kFdbBKwIJkADRIGgAADAGtyotIvyqGpAAAAAElFTkSuQmCC);
+background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAMCAYAAABBV8wuAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABVSURBVHjaYviPAD+BeDIQ2wMxGwNU8AkQGwAxAwwzQFXqIgvCJCajC8IkbLBJMIItYmD4xYAGmBhwAJCEMS6JcKxa8DkX5kFdbBKwIJkADRIGgAADAGtyotIvyqGpAAAAAElFTkSuQmCC);
 }
 
-.mod-about span.corners-top span, .mod-about span.corners-bottom span {
-	background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAMCAYAAABBV8wuAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABbSURBVHjaYvr//z8bENsD8WQg/vkfChjQsAEQPwFJMDGgggtA7AnEv9AlQOAyEM/CJgECK3FJnMIlwYZLQheXRDg2CV0gzmTCIrgd2Q4bIJ4AxGeAWBokABBgAE4XMoXm9S+UAAAAAElFTkSuQmCC);
+.mod-about span.corners-top span, .mod-about span.corners-bottom span {	background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAMCAYAAABBV8wuAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABbSURBVHjaYvr//z8bENsD8WQg/vkfChjQsAEQPwFJMDGgggtA7AnEv9AlQOAyEM/CJgECK3FJnMIlwYZLQheXRDg2CV0gzmTCIrgd2Q4bIJ4AxGeAWBokABBgAE4XMoXm9S+UAAAAAElFTkSuQmCC);
 }
 
 .mod-about span.corners-top {
@@ -384,13 +391,14 @@
 	background-position:100% 100%;
 }
 
-.mod-about-padding { 0px 8px; }
-.mod-about { margin:10px 4px; }
+.mod-about-padding { padding: 0 8px; }
+.mod-about { margin:7px 4px 10px 4px; }
 .mod-about dt { font-weight:bold; padding-right:4px; }
-.mod-about dl { margin:0px 8px; }
-.mod-about div { margin:3px 8px; }
-/*div.inner .mod-about dl { margin:0px 0px; }*/
-/*.nopadding { margin:0px 0px; }*/
+.rtl .mod-about dt { padding-left: 4px; }
+.mod-about dl { margin:0 8px; }
+.mod-about div { margin:3px 8px;}
+/*div.inner .mod-about dl { margin:0; }*/
+/*.nopadding { margin:0; }*/
 
 .mod-history {font-size:82.5%; } /* Mod histories can get pretty long, so I'm making that font a bit smaller */
 #language { width:130px; }
@@ -400,13 +408,14 @@
 .mod-edit { background-color:#D6E6F6; border:solid 1px #336699; margin:10px 0; padding:0 10px; }
 .mod-inlineedit { background-color:#DDEEFF; border:solid 1px #6699CC; margin:10px 0; padding:0 10px; }
 
-dl.author-info dd { margin-left:100px; margin-bottom:8px; }
-ol#file-copy { padding:5px; margin-left:20px; margin-bottom:10px; }
-ol#file-copy li { margin-left:30px; vertical-align:top;}
-ol#file-copy span { font-weight:bold; }
-ol#file-copy dt {margin-right:5px; float:none !important }
-ol#file-copy dl {width:100%}
-h2#lang-fca, h2#lang-edts, h2#lang-diy, h2#lang-sql { margin-left:5px; }
+dl.author-info dd { margin-left:112px; margin-bottom:8px; }
+.rtl dl.author-info dd { margin-left:112px; margin-bottom:8px; }
+ol#file-copy, ol#file-delete { padding:5px; margin-left:20px; margin-right:20px; margin-bottom:10px; }
+ol#file-copy li, ol#file-delete li { margin-left:30px; margin-right:30px; vertical-align:top;}
+ol#file-copy span, ol#file-delete span { font-weight:bold; }
+ol#file-copy dt, ol#file-delete dt {margin-right:5px; float:none !important }
+ol#file-copy dl, ol#file-delete dl {width:100%}
+h2#lang-fca, h2#lang-edts, h2#lang-diy, h2#lang-sql, h2#lang-installer-h2, h2#lang-del-head { margin-left:5px; }
 
 /* Code block */
 div.codebox {
@@ -448,20 +457,29 @@
 	margin:2px 0;
 }
 
+/*.rtl div.codePre pre {
+	text-align: left !important;
+	direction: ltr !important;
+}*/
+
 dt {
-	float:left;
+	float: left;
 	width:auto;
 }
 
 .rtl dt {
-	float:right;
+	float: right !important;
+	text-align: right;
+	width:auto;
 }
 
-dd {color:#666666;}
-dd + dd {padding-top:5px;}
-dt span {padding:0 5px 0 0;}
-.rtl dt span {padding:0 0 0 5px;}
-div.endMOD {padding:0 5px;}
+dd { color:#666666; }
+dd + dd { padding-top: 5px; }
+
+dt span { padding: 0 5px 0 0; }
+.rtl dt span { padding: 0 0 0 5px; }
+
+div.endMOD { padding:0 5px; }
 
 #history_toggle_link {
 	display:block;
@@ -493,6 +511,11 @@
 						mhcls_ll.push('<xsl:value-of select="generate-id()"/>');
 					</xsl:if>
 				</xsl:for-each>
+
+				var link_ll = [];
+				<xsl:for-each select="mod:link-group/mod:link">
+					link_ll.push('<xsl:value-of select="generate-id()"/>');
+				</xsl:for-each>
 			</xsl:for-each>
 
 			var opens_ll = [];
@@ -511,8 +534,10 @@
 			</xsl:for-each>
 
 			var finds_ll = [];
+			var removes_ll = [];
 			var regex_ll = [];
 			var ifinds_ll = [];
+			var iremoves_ll = [];
 			var iregex_ll = [];
 			var addafters_ll = [];
 			var iaddafters_ll = [];
@@ -527,6 +552,9 @@
 				<xsl:for-each select="mod:find">
 					finds_ll.push('<xsl:value-of select="generate-id()"/>');
 				</xsl:for-each>
+				<xsl:for-each select="mod:remove">
+					removes_ll.push('<xsl:value-of select="generate-id()"/>');
+				</xsl:for-each>
 				<xsl:if test="count(mod:comment) > 0">
 					comments_ll.push('<xsl:value-of select="generate-id()"/>');
 				</xsl:if>
@@ -554,6 +582,9 @@
 							iregex_ll.push('<xsl:value-of select="generate-id()"/>');
 						</xsl:if>
 					</xsl:for-each>
+					<xsl:for-each select="mod:inline-remove">
+						iremoves_ll.push('<xsl:value-of select="generate-id()"/>');
+					</xsl:for-each>
 					<xsl:for-each select="mod:inline-find|mod:inline-action">
 						codes_ll.push('<xsl:value-of select="generate-id()"/>');
 						<xsl:if test="name() = 'inline-action'">
@@ -583,6 +614,11 @@
 				copies_ll.push('<xsl:value-of select="generate-id()"/>');
 			</xsl:for-each>
 
+			var delete_ll = [];
+			<xsl:for-each select="mod:action-group/mod:delete/mod:file">
+				delete_ll.push('<xsl:value-of select="generate-id()"/>');
+			</xsl:for-each>
+
 			<xsl:text disable-output-escaping="yes">
 <![CDATA[
 // The following line from http://www.ryancooper.com/resources/keycode.asp
@@ -590,16 +626,17 @@
 
 var host = "http://www.phpbb.com/mods/modx/i18n/";
 
-var enStrings = "h1=Installation Instructions for\n" +
+var enStrings = "dir=ltr\n" +
+"h1=Installation instructions for\n" +
 "edt-show=Show&nbsp;&gt;&gt;\n" +
 "edt-hide=&lt;&lt;&nbsp;Hide\n" +
-"V=Version\n" +
+"V=version\n" +
 "t=Title:\n" +
 "d=Description:\n" +
 "aV=Version:\n" +
 "mint=minutes\n" +
-"it=Installation Time:\n" +
-"il=Installation Level:\n" +
+"it=Installation time:\n" +
+"il=Installation level:\n" +
 "ile=Easy\n" +
 "ili=Intermediate\n" +
 "ila=Advanced\n" +
@@ -609,63 +646,86 @@
 "a-e=Email:\n" +
 "a-n=Name:\n" +
 "a-h=WWW:\n" +
-"fte=Files to Edit\n" +
-"icf=Included Files\n" +
+"a-c=Contributions:\n" +
+"a-c-f=From\n" +
+"a-c-t=to\n" +
+"a-c-s=Since\n" +
+"fte=Files to edit\n" +
+"icf=Included files\n" +
 "icfn=No files have been included with this MOD.\n" +
 "dcl=Disclaimer\n" +
 "dclt=For security purposes, please check: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a>\n" +
-"isp=English Support\n" +
+"isp=and English support\n" +
 "ispt=English support can be obtained at <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for released MODs.\n" +
-"ant=Author Notes:\n" +
+"ant=Author notes:\n" +
 "lic=License\n" +
 "lict=This MOD has been licensed under the following license:\n" +
-"ont=Other Notes\n" +
-"ontt1=Before adding this MOD to your forum, you should back up all files related to this MOD.\n" +
+"ont=and other notes\n" +
+"ontt1=Before adding this MOD to your forum, you should back up all files and databases related to this MOD.\n" +
 "ontt2=This MOD was designed for phpBB\n" +
 "ontt3=and may not function as stated on other phpBB versions. MODs for phpBB 3.0 will <strong>not</strong> work on phpBB 2.0 and vice versa.\n" +
 "onttq=This MOD is development quality. It is not recommended that you install it on a live forum.\n" +
 "sql=SQL\n" +
-"fca=File Copy\n" +
+"fca=File copy\n" +
 "c-copy=Copy:\n" +
 "c-to=To:\n" +
 "cde-c=Code:\n" +
-"cde-sa=Select All\n" +
+"cde-sa=Select all\n" +
 "edts=Edits\n" +
 "edtt=Use your keyboard to navigate the code boxes. You may also hit '<em>s</em>' on your keyboard to go to the first code box.\n" +
 "opn=Open:\n" +
 "cm-cmt=Comments\n" +
 "fnd=Find\n" +
 "fndt=<strong>Tip:</strong> This may be a partial find and not the whole line.\n" +
-"rplw=Replace With\n" +
+"remove=Find and Delete\n" +
+"removet=<strong>Tip:</strong> Find and delete this code.\n" +
+"rplw=Replace with\n" +
 "rplwt=<strong>Tip:</strong> Replace the preceding line(s) to find with the following lines.\n" +
 "aft=Add after\n" +
 "aftt=<strong>Tip:</strong> Add these lines on a new blank line after the preceding line(s) to find.\n" +
 "bef=Add before\n" +
 "beft=<strong>Tip:</strong> Add these lines on a new blank line before the preceding line(s) to find.\n" +
-"inc=Increment\n" +
-"inct=<strong>Tip:</strong> This allows you to alter integers. For help on what each operator means, click here.\n" +
+"inc=Operation\n" +
+"inct=<strong>Tip:</strong> This allows you to alter integers.\n" +
 "ifnd=In-line Find\n" +
 "ifndt=<strong>Tip:</strong> This is a partial match of a line for in-line operations.\n" +
-"irplw=In-line Replace With\n" +
+"iremove=In-line Find and Delete\n" +
+"iremovet=<strong>Tip:</strong> Find this code in the line and delete it.\n" +
+"irplw=In-line Replace with\n" +
 "irplwt=\n" +
 "iaft=In-line Add after\n" +
 "iaftt=\n" +
 "ibef=In-line Add before\n" +
 "ibeft=\n" +
-"iinc=In-line Increment\n" +
-"iinct=<strong>Tip:</strong> This allows you to alter integers. For help on what each operator means, click here.\n" +
-"diy=DIY Instructions\n" +
+"iinc=In-line Operation\n" +
+"iinct=<strong>Tip:</strong> This allows you to alter integers.\n" +
+"diy=DIY instructions\n" +
 "diyt=These are manual instructions that cannot be performed automatically. You should follow these instructions carefully.\n" +
 "eom=Save all files. End of MOD.\n" +
 "eomt=You have finished the installation for this MOD. Upload all changed files to your website. If the installation went bad, simply restore your backed up files.\n" +
-"slg=Select Language:\n" +
+"slg=Select language:\n" +
 "dbms=Select Database Type:\n" +
 "foot=MOD UA XSLT File Copyright &#169; 2007 The phpBB Group, this MOD is copyright to the authors listed above.\n" +
-"regex=This find contains an advanced feature known as regular expressions, click here to learn more.\n" +
+"regex=This find contains an advanced feature known as regular expressions.\n" +
 "mhe-v=- Version\n" +
-"mh=MOD History\n" +
-"addtl-modx=Additional MODX Files\n" +
-"imn=This MOD has no additional MODX files.\n"+
+"mh=MOD history\n" +
+"addtl-modx=Additional MODX files\n" +
+"imn=This MOD has no additional MODX files.\n" +
+"link-c=Contrib\n" +
+"link-d=Dependency\n" +
+"link-l=Language\n" +
+"link-p=Parent\n" +
+"link-te=Template\n" +
+"link-txt=Text file\n" +
+"link-tl=Template lang\n" +
+"link-un=Uninstall instructions\n" +
+"installer-h2=PHP install file\n" +
+"installer-exp1=There is a PHP install file that needs to be run in order to complete the installation.\n" +
+"installer-exp2=To run it point your browser to, for example,\n" +
+"ispt-int=Support in your language <strong>might</strong> be available at a <a href=\"http://www.phpbb.com/support/intl/\">international support site</a>.\n" +
+"del-heads=Delete files\n" +
+"del-head=Delete file\n" +
+"del-file=Delete\n" +
 "atm=About this MOD";
 
 var box = codes_ll;
@@ -675,23 +735,27 @@
 var arrClasCnt = [
 	['a-'	, authors_ll		],
 	['c-'	, copies_ll			],
+	['del-'	, delete_ll			],
 	['cm-'	, comments_ll		],
 	['opn'	, opens_ll			],
 	['cde-'	, codes_ll			],
 	['edt-'	, edits_ll			],
 	['fnd'	, finds_ll			],
+	['fnd'	, removes_ll			],
 	['regex', regex_ll			],
 	['rplw'	, replacewiths_ll	],
 	['aft'	, addafters_ll		],
 	['bef'	, addbefores_ll		],
 	['inc'	, increments_ll		],
 	['ifnd'	, ifinds_ll			],
+	['ifnd'	, iremoves_ll			],
 	['regex', iregex_ll			],
 	['irplw', ireplacewiths_ll	],
 	['iaft'	, iaddafters_ll		],
 	['ibef'	, iaddbefores_ll	],
 	['iinc'	, iincrements_ll	],
-	['mhe'	, mhes_ll			]
+	['mhe'	, mhes_ll			],
+	['link', link_ll]
 ];
 
 function startup()
@@ -1023,6 +1087,10 @@
 	for (i in texts)
 	{
 		var lang = texts[i].split("=");
+		if(lang[0] == 'dir')
+		{
+			set_dir(lang[1]);
+		}
 		if (lang.length < 2)
 		{
 			continue;
@@ -1069,6 +1137,102 @@
 	} catch(o) {}
 }
 
+function set_dir(direction)
+{
+	direction = (direction == 'rtl') ? 'rtl' : 'ltr';
+	document.body.style.direction=direction;
+
+	var ie = /*@cc_on!@*/false;
+	var dts = document.getElementsByTagName('dt');
+	var uls = document.getElementsByTagName('ul');
+	var h2s = document.getElementsByTagName('h2');
+	var mod_dt = document.getElementsByName('left4px');
+	var author_dd = document.getElementsByName('author-dd');
+	var ltr_spec = document.getElementsByName('ltr-spec');
+	var rtl_spec = document.getElementsByName('rtl-spec');
+
+	var rtl_float = (ie) ? 'styleFloat' : 'cssFloat';
+
+	if(direction == 'rtl')
+	{
+		for(j = 0; j < dts.length; j++)
+		{
+			if(ie)
+			{
+				dts[j].style.styleFloat='right';
+			}
+			else
+			{
+				dts[j].style.cssFloat='right';
+			}
+		}
+		for(j = 0; j < h2s.length; j++)
+		{
+			h2s[j].style.textAlign='right';
+		}
+		for(j = 0; j < uls.length; j++)
+		{
+			uls[j].style.margin='0 2em 1em 0';
+		}
+		for(j = 0; j < ltr_spec.length; j++)
+		{
+			ltr_spec[j].style.display='none';
+		}
+		for(j = 0; j < rtl_spec.length; j++)
+		{
+			rtl_spec[j].style.display='inherit';
+		}
+		for(j = 0; j < author_dd.length; j++)
+		{
+			author_dd[j].style.marginRight='115px';
+		}
+		for(j = 0; j < mod_dt.length; j++)
+		{
+			mod_dt[j].style.paddingRight='0';
+			mod_dt[j].style.paddingLeft='4px';
+		}
+	}
+	else
+	{
+		for(j = 0; j < dts.length; j++)
+		{
+			if(ie)
+			{
+				dts[j].style.styleFloat='left';
+			}
+			else
+			{
+				dts[j].style.cssFloat='left';
+			}
+		}
+		for(j = 0; j < h2s.length; j++)
+		{
+			h2s[j].style.textAlign='left';
+		}
+		for(j = 0; j < uls.length; j++)
+		{
+			uls[j].style.margin='0 0 1em 2em';
+		}
+		for(j = 0; j < ltr_spec.length; j++)
+		{
+			ltr_spec[j].style.display='inherit';
+		}
+		for(j = 0; j < rtl_spec.length; j++)
+		{
+			rtl_spec[j].style.display='none';
+		}
+		for(j = 0; j < author_dd.length; j++)
+		{
+			author_dd[j].style.marginleft='112px';
+		}
+		for(j = 0; j < mod_dt.length; j++)
+		{
+			mod_dt[j].style.paddingRight='4px';
+			mod_dt[j].style.paddingLeft='0';
+		}
+	}
+}
+
 function select_code(a)
 {
 	// Get ID of code block
@@ -1298,7 +1462,12 @@
  */
 function sql_display($value)
 {
-	$tags = document.getElementsByTagName('dbms');
+	var $ie = /*@cc_on!@*/false;
+	var $tags = document.getElementsByTagName('dbms');
+	if($ie)
+	{
+		var $div_list = document.getElementsByTagName('div');
+	}
 
 	// show the dbms of type we have selected, hide all others except for non dbms specific
 	for ($i = 0; $i < $tags.length; $i++)
@@ -1307,7 +1476,20 @@
 		{
 			continue;
 		}
-		$tags[$i].style.display = ($dbms == $value) ? '' : 'none';
+		if(!$ie)
+		{
+			$tags[$i].style.display = ($dbms == $value) ? '' : 'none';
+		}
+		else
+		{
+			for($j = 0; $j < $div_list.length; $j++)
+			{
+				if($div_list[$j].name == $dbms)
+				{
+					$div_list[$j].style.display = ($dbms == $value) ? '' : 'none';
+				}
+			}
+		}
 	}
 }
 
@@ -1316,6 +1498,7 @@
 */
 function sql_dropdown()
 {
+	var $ie = /*@cc_on!@*/false;
 	var $dbms_element = document.getElementById('dbms');
 	var $dbms_selector = document.getElementById('dbms-selector');
 	if (!$dbms_element || !$dbms_selector)
@@ -1323,6 +1506,12 @@
 		return;
 	}
 
+/*	if($ie)
+	{
+		$dbms_selector.style.display = 'none';
+		return;
+	}
+*/
 	$type = [
 		'mysql',
 		'mysql_41',
@@ -1334,6 +1523,8 @@
 		'sqllite'
 	];
 	$options = [];
+	$ie_options = [];
+	$ie_count = 0;
 	$tags = document.getElementsByTagName('dbms');
 
 	// Show the dbms of type we have selected, hide all others except for non dbms specific
@@ -1346,6 +1537,13 @@
 		if (($position = in_array($type, $dbms, true)) !== false)
 		{
 			$options[$position] = '<option value=' + $dbms + '>' + $dbms + '</option>';
+			if($ie)
+			{
+				if(!in_array($ie_options, $dbms, false))
+				{
+					$ie_options[$ie_count++] = $dbms;
+				}
+			}
 		}
 	}
 
@@ -1361,7 +1559,18 @@
 				$selects += $options[$i];
 			}
 		}
-		$dbms_element.innerHTML = $selects;
+		$dbms_element.innerHTML=$selects;
+
+		if($ie)
+		{
+			for($i in $ie_options)
+			{
+				$ie_option = document.createElement('option');
+				$ie_option.text = $ie_options[$i];
+				$ie_option.value = $ie_options[$i];
+				$dbms_element.add($ie_option);
+			}
+		}
 	}
 	else
 	{
@@ -1415,14 +1624,14 @@
 }
 				</script>
 		</head>
-		<body class="ltr" onload="startup()">
+		<body onload="startup()">
 		<div id="debug"></div>
 		<div id="wrap">
 			<div id="page-header">
-				<h1><span id="lang-h1">Installation Instructions for</span> '<xsl:value-of select="$title" />' <span id="lang-V">Version</span>&nbsp;<xsl:value-of select="$version" /></h1>
+				<h1><span id="lang-h1">Installation instructions for</span> '<xsl:value-of select="$title" />' <span id="lang-V">version</span>&nbsp;<xsl:value-of select="$version" /></h1>
 				<form method="post" action="" id="lang-selector" style="display: none;">
 				<fieldset class="nobg">
-					<label for="language"><span id="lang-slg">Select Language:</span></label>&nbsp;<select id="language" name="language" onclick="load_languages()"><option value="en" selected="selected">English</option></select>
+					<label for="language"><span id="lang-slg">Select language:</span></label>&nbsp;<select id="language" name="language" onclick="load_languages()"><option value="en" selected="selected">English</option></select>
 				</fieldset>
 				</form>
 			</div>
@@ -1434,7 +1643,7 @@
 								<xsl:for-each select="mod:header">
 									<xsl:call-template name="give-header"></xsl:call-template>
 								</xsl:for-each>
-								<hr />
+
 								<div class="permissions" id="Fieldset1">
 									<xsl:for-each select="mod:action-group">
 										<xsl:call-template name="give-actions"></xsl:call-template>
@@ -1457,13 +1666,14 @@
 		</body>
 		</html>
 	</xsl:template>
+
 	<xsl:template name="give-header">
 		<fieldset>
-		<legend id="lang-atm">About this MOD</legend>
+			<legend id="lang-atm">About this MOD</legend>
 			<div class="mod-about">
 				<span class="corners-top"><span></span></span>
 				<dl>
-					<dt id="lang-t">Title:</dt>
+					<dt id="lang-t" name="left4px">Title:</dt>
 					<dd>
 						<xsl:if test="count(mod:title) > 1">
 							<dl id="title" class="nopadding">
@@ -1479,7 +1689,7 @@
 							<p lang="{@lang}" style='white-space:pre;'><xsl:value-of select="mod:title" /></p>
 						</xsl:if>
 					</dd>
-					<dt id="lang-d">Description:</dt>
+					<dt id="lang-d" name="left4px">Description:</dt>
 					<dd>
 						<xsl:if test="count(mod:description) > 1">
 							<dl id="description" class="nopadding">
@@ -1503,7 +1713,7 @@
 							</p>
 						</xsl:if>
 					</dd>
-					<dt id="lang-aV">Version:</dt>
+					<dt id="lang-aV" name="left4px">Version:</dt>
 					<dd class="mod-about">
 						<p>
 							<xsl:for-each select="mod:mod-version">
@@ -1515,95 +1725,126 @@
 						<xsl:call-template name="give-installation"></xsl:call-template>
 					</xsl:for-each>
 					<xsl:if test="mod:author-notes != 'N/A' and mod:author-notes != 'n/a' and mod:author-notes != ''">
-					<dt id="lang-ant">Author Notes:</dt>
-					<dd>
-						<xsl:if test="count(mod:author-notes) > 1">
-							<dl id="author-notes" class="nopadding">
-								<xsl:for-each select="mod:author-notes">
-									<dt><xsl:value-of select="@lang" /></dt>
-									<dd lang="{@lang}">
-										<p>
-											<xsl:call-template name="add-line-breaks">
-												<xsl:with-param name="string"><xsl:value-of select="current()" /></xsl:with-param>
-											</xsl:call-template>
-										</p>
-									</dd>
-								</xsl:for-each>
-							</dl>
-						</xsl:if>
-						<xsl:if test="count(mod:author-notes) = 1">
-							<p lang="{@lang}">
-								<xsl:call-template name="add-line-breaks">
-									<xsl:with-param name="string"><xsl:value-of select="mod:author-notes" /></xsl:with-param>
-								</xsl:call-template>
-							</p>
-						</xsl:if>
-					</dd>
+						<dt id="lang-ant" name="left4px">Author notes:</dt>
+						<dd>
+							<xsl:if test="count(mod:author-notes) > 1">
+								<dl id="author-notes" class="nopadding">
+									<xsl:for-each select="mod:author-notes">
+										<dt><xsl:value-of select="@lang" /></dt>
+										<dd lang="{@lang}">
+											<p>
+												<xsl:call-template name="add-line-breaks">
+													<xsl:with-param name="string"><xsl:value-of select="current()" /></xsl:with-param>
+												</xsl:call-template>
+											</p>
+										</dd>
+									</xsl:for-each>
+								</dl>
+							</xsl:if>
+							<xsl:if test="count(mod:author-notes) = 1">
+								<p lang="{@lang}">
+									<xsl:call-template name="add-line-breaks">
+										<xsl:with-param name="string"><xsl:value-of select="mod:author-notes" /></xsl:with-param>
+									</xsl:call-template>
+								</p>
+							</xsl:if>
+						</dd>
 					</xsl:if>
 				</dl>
 				<span class="corners-bottom"><span></span></span>
 			</div>
 		</fieldset>
 		<fieldset>
-		<xsl:for-each select="mod:author-group">
-			<xsl:if test="count(mod:author) > 1">
-				<legend id="lang-aus">Authors</legend>
-			</xsl:if>
-			<xsl:if test="count(mod:author) = 1">
-				<legend id="lang-au">Author</legend>
-			</xsl:if>
-			<xsl:call-template name="give-authors"></xsl:call-template>
-		</xsl:for-each>
+			<xsl:for-each select="mod:author-group">
+				<xsl:if test="count(mod:author) > 1">
+					<legend id="lang-aus">Authors</legend>
+				</xsl:if>
+				<xsl:if test="count(mod:author) = 1">
+					<legend id="lang-au">Author</legend>
+				</xsl:if>
+				<xsl:call-template name="give-authors"></xsl:call-template>
+			</xsl:for-each>
 		</fieldset>
 		<xsl:if test="count(../mod:action-group/mod:open) > 0">
-		<h3 id="lang-fte">Files to Edit</h3>
-		<xsl:for-each select="../mod:action-group">
-			<xsl:call-template name="give-files-to-edit"></xsl:call-template>
-		</xsl:for-each>
+			<h3 id="lang-fte">Files to edit</h3>
+			<xsl:for-each select="../mod:action-group">
+				<xsl:call-template name="give-files-to-edit"></xsl:call-template>
+			</xsl:for-each>
 		</xsl:if>
-		<h3 id="lang-icf">Included Files</h3>
+		<h3 id="lang-icf">Included files</h3>
 		<xsl:if test="count(../mod:action-group/mod:copy/mod:file) = 0">
 			<p id="lang-icfn">No files have been included with this MOD.</p>
 		</xsl:if>
 		<xsl:for-each select="../mod:action-group">
 			<xsl:call-template name="give-files-included"></xsl:call-template>
 		</xsl:for-each>
-		<h3 id="lang-addtl-modx">Additional MODX Files</h3>
+		<h3 id="lang-addtl-modx">Additional MODX files</h3>
 		<xsl:if test="count(mod:link-group/mod:link) = 0">
 			<p id="lang-imn">This MOD has no additional MODX files.</p>
 		</xsl:if>
+
 		<ul class="link-group" id="link-group">
 			<xsl:for-each select="mod:link-group/mod:link">
-				<li lang="{@lang}"><span class="link-group-lang"><xsl:value-of select="@lang" />&nbsp;</span><strong style="text-transform: capitalize;"><xsl:value-of select="@type" />:</strong>&nbsp;<a href="{@href}"><xsl:value-of select="current()" /></a></li>
+				<li lang="{@lang}">
+					<span class="link-group-lang"><xsl:value-of select="@lang" />&nbsp;</span>
+					<strong>
+						<xsl:if test="@type = 'contrib'">
+							<span id="lang-link-c[{generate-id()}]">Contrib</span>:
+						</xsl:if>
+						<xsl:if test="@type = 'dependency'">
+							<span id="lang-link-d[{generate-id()}]">Dependency</span>:
+						</xsl:if>
+						<xsl:if test="@type = 'language'">
+							<span id="lang-link-l[{generate-id()}]">Language</span>:
+						</xsl:if>
+						<xsl:if test="@type = 'parent'">
+							<span id="lang-link-p[{generate-id()}]">Parent</span>:
+						</xsl:if>
+						<xsl:if test="@type = 'template'">
+							<span id="lang-link-te[{generate-id()}]">Template</span>:
+						</xsl:if>
+						<xsl:if test="@type = 'template-lang'">
+							<span id="lang-link-tl[{generate-id()}]">Template lang</span>:
+						</xsl:if>
+						<xsl:if test="@type = 'text'">
+							<span id="lang-link-txt[{generate-id()}]">Text file</span>:
+						</xsl:if>
+						<xsl:if test="@type = 'uninstall'">
+							<span id="lang-link-un[{generate-id()}]">Uninstall instructions</span>:
+						</xsl:if>
+					</strong>
+					&nbsp;<a href="{@href}"><xsl:value-of select="current()" /></a>
+				</li>
 			</xsl:for-each>
 		</ul>
 		<hr />
 		<div id="modDisclaimer">
-			<h3><span id="lang-dcl">Disclaimer</span> &amp; <span id="lang-ont">Other Notes</span></h3>
+			<h3><span id="lang-dcl">Disclaimer</span>&nbsp;<span id="lang-ont">and other notes</span></h3>
 			<div class="mod-about">
 				<span class="corners-top"><span></span></span>
-					<div class="mod-about-padding">
+				<div class="mod-about-padding">
 					<p><span id="lang-dclt">For security purposes, please check: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a></span></p>
-					<p><span id="lang-ontt1">Before adding this MOD to your forum, you should back up all files related to this MOD.</span></p>
-					<p><span id="lang-ontt2">This MOD was designed for phpBB</span><xsl:text> </xsl:text><xsl:value-of select="mod:installation/mod:target-version" /><xsl:text> </xsl:text><span id="lang-ontt3"> and may not function as stated on other phpBB versions. MODs for phpBB 3.0 will <strong>not</strong> work on phpBB 2.0 and vice versa.</span></p>
+					<p><span id="lang-ontt1">Before adding this MOD to your forum, you should back up all files and databases related to this MOD.</span></p>
+					<p><span id="lang-ontt2">This MOD was designed for phpBB</span><xsl:text> </xsl:text><xsl:value-of select="mod:installation/mod:target-version" /><xsl:text> </xsl:text>&nbsp;<span id="lang-ontt3">and may not function as stated on other phpBB versions. MODs for phpBB 3.0 will <strong>not</strong> work on phpBB 2.0 and vice versa.</span></p>
 					<xsl:for-each select="./mod:mod-version">
-						<xsl:if test="substring-before(substring-after(current(), '.'), '.') mod 2 != 0 or substring-before(current(), '.') = 0">
+						<xsl:if test="substring-before(current(), '.') = 0">
 							<p><strong class="red"><span id="lang-onttq">This MOD is development quality. It is not recommended that you install it on a live forum.</span></strong></p>
 						</xsl:if>
 					</xsl:for-each>
-					</div>
+				</div>
 				<span class="corners-bottom"><span></span></span>
 			</div>
 		</div>
 		<div>
-			<h3><span id="lang-lic">License</span> &amp; <span id="lang-isp">English Support</span></h3>
+			<h3><span id="lang-lic">License</span>&nbsp;<span id="lang-isp">and English support</span></h3>
 			<div class="mod-about">
 				<span class="corners-top"><span></span></span>
-					<div class="mod-about-padding">
+				<div class="mod-about-padding">
 					<p><span id="lang-lict">This MOD has been licensed under the following license:</span></p>
 					<p style='white-space:pre;'><a href="license.txt"><xsl:value-of select="mod:license" /></a></p>
 					<p><span id="lang-ispt">English support can be obtained at <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a> for released MODs.</span></p>
-					</div>
+					<p><span id="lang-ispt-int">Support in your language <strong>might</strong> be available at a <a href="http://www.phpbb.com/support/intl/">international support site</a>.</span></p>
+				</div>
 				<span class="corners-bottom"><span></span></span>
 			</div>
 			<xsl:for-each select="mod:history">
@@ -1611,45 +1852,99 @@
 			</xsl:for-each>
 		</div>
 	</xsl:template>
+
 	<xsl:template name="give-authors">
 		<xsl:for-each select="mod:author">
 			<div class="mod-about">
 				<span class="corners-top"><span></span></span>
-					<xsl:call-template name="give-author"></xsl:call-template>
+					<dl class="author-info">
+						<dt id="lang-a-un[{generate-id()}]" name="left4px">Username:</dt>
+
+						<xsl:variable name="authorname" select="mod:username" />
+						<xsl:for-each select="mod:username">
+							<xsl:choose>
+								<xsl:when test="@phpbbcom = 'no' or @phpbbcom = 'No' or @phpbbcom = 'NO'">
+									<dd name="author-dd"><span dir="ltr"><xsl:value-of select="$authorname" /></span></dd>
+								</xsl:when>
+
+								<xsl:otherwise>
+									<xsl:variable name="authorurl">
+										<xsl:call-template name="validate-username">
+											<xsl:with-param name="string-in" select="string($authorname)"/>
+										</xsl:call-template>
+									</xsl:variable>
+
+									<xsl:variable name="browserEngine" select="system-property('xsl:vendor')" />
+									<xsl:choose>
+										<xsl:when test="$browserEngine='Opera'">
+											<xsl:variable name="operaurl">
+												<xsl:call-template name="validate-opera">
+													<xsl:with-param name="string-in" select="string($authorurl)"/>
+												</xsl:call-template>
+											</xsl:variable>
+											<dd name="author-dd"><a dir="ltr" href="http://www.phpbb.com/community/memberlist.php?mode=viewprofile&amp;un={$operaurl}"><xsl:value-of select="$authorname" /></a></dd>
+										</xsl:when>
+										<xsl:otherwise>
+											<dd name="author-dd"><a dir="ltr" href="http://www.phpbb.com/community/memberlist.php?mode=viewprofile&amp;un={$authorurl}"><xsl:value-of select="$authorname" /></a></dd>
+										</xsl:otherwise>
+
+									</xsl:choose>
+								</xsl:otherwise>
+
+							</xsl:choose>
+						</xsl:for-each>
+						<xsl:if test="mod:email != 'N/A' and mod:email != 'n/a' and mod:email != ''">
+							<dt id="lang-a-e[{generate-id()}]">Email:</dt>
+							<dd name="author-dd"><a href="mailto:{mod:email}"><xsl:value-of select="mod:email" /></a></dd>
+						</xsl:if>
+						<xsl:if test="mod:realname != 'N/A' and mod:realname != 'n/a' and mod:realname != ''">
+							<dt id="lang-a-n[{generate-id()}]">Name:</dt>
+							<dd name="author-dd"><xsl:value-of select="mod:realname" /></dd>
+						</xsl:if>
+						<xsl:if test="mod:homepage != 'N/A' and mod:homepage != 'n/a' and mod:homepage!=''">
+							<dt id="lang-a-h[{generate-id()}]">WWW:</dt>
+							<dd name="author-dd"><a href="{mod:homepage}" dir="ltr"><xsl:value-of select="mod:homepage" /></a></dd>
+						</xsl:if>
+						<xsl:if test="count(mod:contributions-group) > 0">
+							<dt id="lang-a-c[{generate-id()}]">Contributions:</dt>
+							<xsl:for-each select="mod:contributions-group/mod:contributions">
+								<dd name="author-dd">
+
+									<span name="rtl-spec" style="display: none">
+										<xsl:if test="@status = 'past' and @from != 'N/A' and @from != 'n/a' and @from!=''">
+											<xsl:if test="@to != 'N/A' and @to != 'n/a' and @to!=''">
+											<span id="lang-a-c-f[{generate-id()}]">From</span>:&nbsp;<xsl:value-of select="@from" />&nbsp;<span id="lang-a-c-t[{generate-id()}]]">to</span>:&nbsp;<xsl:value-of select="@to" />
+											</xsl:if>
+										</xsl:if>
+										<xsl:if test="@status = 'current' and @from != 'N/A' and @from != 'n/a' and @from!=''">
+											<span id="lang-a-c-s[{generate-id()}]]">Since</span>:&nbsp;<xsl:value-of select="@from" />
+										</xsl:if>
+										&nbsp;<strong style="text-transform: capitalize;"><xsl:value-of select="@position" /></strong>
+									</span>
+
+									<span name="ltr-spec">
+										<strong style="text-transform: capitalize;"><xsl:value-of select="@position" /></strong>&nbsp;
+										<xsl:if test="@status = 'past' and @from != 'N/A' and @from != 'n/a' and @from!=''">
+											<xsl:if test="@to != 'N/A' and @to != 'n/a' and @to!=''">
+											(<span id="lang-a-c-f[{generate-id()}]]">From</span>:&nbsp;<xsl:value-of select="@from" />&nbsp;<span id="lang-a-c-t[{generate-id()}]]">to</span>:&nbsp;<xsl:value-of select="@to" />)
+											</xsl:if>
+										</xsl:if>
+										<xsl:if test="@status = 'current' and @from != 'N/A' and @from != 'n/a' and @from!=''">
+											(<span id="lang-a-c-s[{generate-id()}]]">Since</span>:&nbsp;<xsl:value-of select="@from" />)
+										</xsl:if>
+									</span>
+
+								</dd>
+							</xsl:for-each>
+						</xsl:if>
+					</dl>
 				<span class="corners-bottom"><span></span></span>
 			</div>
 		</xsl:for-each>
 	</xsl:template>
-	<xsl:template name="give-author">
-		<dl class="author-info">
-			<dt id="lang-a-un[{generate-id()}]">Username:</dt>
-			<dd><a href="http://www.phpbb.com/phpBB/profile.php?mode=viewprofile&amp;un={translate(mod:username, ' ', '+')}"><xsl:value-of select="mod:username" /></a></dd>
-			<xsl:if test="mod:email != 'N/A' and mod:email != 'n/a' and mod:email != ''">
-				<dt id="lang-a-e[{generate-id()}]">Email:</dt>
-				<dd><a href="mailto:{mod:email}"><xsl:value-of select="mod:email" /></a></dd>
-			</xsl:if>
-			<xsl:if test="mod:realname != 'N/A' and mod:realname != 'n/a' and mod:realname != ''">
-				<dt id="lang-a-n[{generate-id()}]">Name:</dt>
-				<dd><xsl:value-of select="mod:realname" /></dd>
-			</xsl:if>
-			<xsl:if test="mod:homepage != 'N/A' and mod:homepage != 'n/a' and mod:homepage!=''">
-				<dt id="lang-a-h[{generate-id()}]">WWW:</dt>
-				<dd><a href="{mod:homepage}"><xsl:value-of select="mod:homepage" /></a></dd>
-			</xsl:if>
-			<xsl:if test="count(mod:contributions) > 0 and count(mod:contributions/mod:status) > 0">
-				<dt id="lang-a-c[{generate-id()}]">Contributions:</dt>
-				<dd>
-					<xsl:if test="count(mod:contributions/mod:status) > 0">
-						<xsl:value-of select="mod:contributions/mod:status" /><br />
-						From:<xsl:value-of select="mod:contributions/mod:from" /><br />
-						To:<xsl:value-of select="mod:contributions/mod:to" />
-					</xsl:if>
-				</dd>
-			</xsl:if>
-		</dl>
-	</xsl:template>
+
 	<xsl:template name="give-installation">
-		<dt id="lang-il">Installation Level:</dt>
+		<dt id="lang-il" name="left4px">Installation level:</dt>
 		<dd class="mod-about">
 			<div class="inner">
 				<xsl:if test="mod:level='easy'">
@@ -1663,17 +1958,18 @@
 				</xsl:if>
 			</div>
 		</dd>
-		<dt id="lang-it">Installation Time:</dt>
+		<dt id="lang-it" name="left4px">Installation time:</dt>
 		<dd class="mod-about">
 			<div class="inner">
 				<p>~<xsl:value-of select="floor(mod:time div 60)" />&nbsp;<span id="lang-mint">minutes</span></p>
 			</div>
 		</dd>
 	</xsl:template>
+
 	<xsl:template name="give-mod-history">
 		<xsl:if test="count(mod:entry) > 0">
 			<fieldset>
-			<legend id="lang-mh">MOD History</legend>
+			<legend id="lang-mh">MOD history</legend>
 			<div class="mod-about" id="history_toggle_area" style="display:none;">
 				<span class="corners-top"><span></span></span>
 				<div class="mod-about-padding">
@@ -1689,6 +1985,7 @@
 			</fieldset>
 		</xsl:if>
 	</xsl:template>
+
 	<xsl:template name="give-history-entry">
 		<div class="mod-about">
 			<span class="corners-top"><span></span></span>
@@ -1718,6 +2015,7 @@
 			<span class="corners-bottom"><span></span></span>
 		</div>
 	</xsl:template>
+
 	<xsl:template name="give-history-entry-changelog">
 		<dt><xsl:value-of select="@lang" /></dt>
 		<dd lang="{@lang}">
@@ -1730,6 +2028,7 @@
 			</ul>
 		</dd>
 	</xsl:template>
+
 	<xsl:template name="give-history-entry-changelog-single">
 		<ul>
 			<xsl:for-each select="mod:change">
@@ -1739,6 +2038,7 @@
 			</xsl:for-each>
 		</ul>
 	</xsl:template>
+
 	<xsl:template name="give-files-to-edit">
 		<ul>
 			<xsl:for-each select="mod:open">
@@ -1746,6 +2046,7 @@
 			</xsl:for-each>
 		</ul>
 	</xsl:template>
+
 	<xsl:template name="give-files-included">
 		<ul>
 			<xsl:for-each select="mod:copy">
@@ -1753,9 +2054,11 @@
 			</xsl:for-each>
 		</ul>
 	</xsl:template>
+
 	<xsl:template name="give-file">
 		<li><a href="#{@src}"><xsl:value-of select="@src" /></a><xsl:if test="position()!=last()">,</xsl:if></li>
 	</xsl:template>
+
 	<xsl:template name="give-file-copy">
 		<xsl:for-each select="mod:file">
 			<li><xsl:value-of select="@from" />
@@ -1764,12 +2067,16 @@
 			</li>
 		</xsl:for-each>
 	</xsl:template>
+
 	<xsl:template name="give-actions">
+	  <xsl:if test="count(mod:sql) > 0 or count(mod:copy) > 0 or count(mod:open) > 0">
+	  <hr />
+    </xsl:if>
 		<xsl:if test="count(mod:sql) > 0">
 			<form method="post" action="" id="dbms-selector">
 				<fieldset class="nobg">
 					<label for="dbms"> <span id="lang-dbms">Select Database Type:</span> </label>
-					<select id="dbms" name="dbms" onchange="change_dbms(this)">
+					<select id="dbms" name="dbms" onchange="change_dbms(this);">
 						<option value="mysql_41" selected="selected">MySQL 41</option>
 						<option value="mysql_40">MySQL 40</option>
 						<option value="firebird">Firebird</option>
@@ -1786,42 +2093,70 @@
 					<xsl:for-each select="mod:sql">
 						<xsl:call-template name="give-sql"></xsl:call-template>
 					</xsl:for-each>
-				<span class="corners-bottom"><span></span></span></div>
+				<span class="corners-bottom"><span></span></span>
+			</div>
 		</xsl:if>
 		<xsl:if test="count(mod:copy) > 0">
 			<xsl:for-each select="mod:copy">
 				<xsl:call-template name="give-filez"></xsl:call-template>
 			</xsl:for-each>
 		</xsl:if>
+		<xsl:if test="count(mod:delete) > 0">
+			<xsl:for-each select="mod:delete">
+				<xsl:call-template name="away-filez"></xsl:call-template>
+			</xsl:for-each>
+		</xsl:if>
 		<xsl:if test="count(mod:open) > 0">
-		<h2 id="lang-edts">Edits</h2>
-		<p><span class="key">s</span><span class="key">&lt;</span><span class="key">&gt;</span><span id="lang-edtt">Use your keyboard to navigate the code boxes. You may also hit '<em>s</em>' on your keyboard to go to the first code box.</span></p>
-		<div id="edits">
-			<div class="inner">
-				<xsl:for-each select="mod:open">
-					<xsl:call-template name="give-fileo"></xsl:call-template>
-				</xsl:for-each>
+			<h2 id="lang-edts">Edits</h2>
+			<p><span class="key">s</span><span class="key">w</span><span class="key">x</span><span id="lang-edtt">Use your keyboard to navigate the code boxes. You may also hit '<em>s</em>' on your keyboard to go to the first code box.</span></p>
+			<div id="edits">
+				<div class="inner">
+					<xsl:for-each select="mod:open">
+						<xsl:call-template name="give-fileo"></xsl:call-template>
+					</xsl:for-each>
+				</div>
 			</div>
-		</div>
 		</xsl:if>
-		<xsl:call-template name="give-manual"></xsl:call-template>
+		<xsl:if test="count(mod:php-installer) > 0">
+			<h2 id="lang-installer-h2">PHP install file</h2>
+			<div class="mod-about">
+				<span class="corners-top"><span></span></span>
+					<div class="mod-about-padding">
+						<p>
+							<span id="lang-installer-exp1">There is a PHP install file that needs to be run in order to complete the installation.</span>
+							<br />
+							<span id="lang-installer-exp2">To run it point your browser to, for example,</span><span dir="ltr"> domain.tld/phpBB3/<xsl:value-of select="mod:php-installer" /></span>
+						</p>
+						<div class="content">
+							<div class="codebox">
+								<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select All</span></a></div>
+								<div class="codePre"><pre id="{generate-id()}" dir="ltr"><xsl:value-of select="mod:php-installer" /></pre></div>
+							</div>
+						</div>
+					</div>
+				<span class="corners-bottom"><span></span></span>
+			</div>
+		</xsl:if>
+		<xsl:call-template name="give-manual" />
 	</xsl:template>
+
 	<xsl:template name="give-sql">
 		<dbms type="{@dbms}">
-			<div class="content">
+			<div class="content" name="{@dbms}">
 				<xsl:if test="@dbms != ''">
 					<xsl:value-of select="@dbms" />:
 				</xsl:if>
 				<div class="codebox">
-					<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select All</span></a></div>
-					<div class="codePre"><pre id="{generate-id()}"><xsl:value-of select="current()" /></pre></div>
+					<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select all</span></a></div>
+					<div class="codePre"><pre id="{generate-id()}" dir="ltr"><xsl:value-of select="current()" /></pre></div>
 				</div>
 			</div>
 		</dbms>
 	</xsl:template>
+
 	<xsl:template name="give-manual">
-		<xsl:if test="count(mod:diy-instructions) > 0">
-			<h2 id="lang-diy">DIY Instructions</h2>
+		<xsl:if test="count(mod:diy-instructions)">
+			<h2 id="lang-diy">DIY instructions</h2>
 			<div class="mod-about">
 				<span class="corners-top"><span></span></span>
 					<div class="mod-about-padding">
@@ -1843,6 +2178,7 @@
 			</div>
 		</xsl:if>
 	</xsl:template>
+
 	<xsl:template name="give-fileo">
 		<div class="mod-about">
 			<span class="corners-top"><span></span></span>
@@ -1866,76 +2202,92 @@
 								</dl>
 							</div>
 						</xsl:if>
-						<xsl:for-each select="mod:find|mod:action|mod:inline-edit">
+						<xsl:for-each select="mod:find|mod:remove|mod:action|mod:inline-edit">
 							<xsl:if test="name() = 'find'">
 								<h4 id="lang-fnd[{generate-id()}]">Find</h4>
 								<p><span id="lang-fndt[{generate-id()}]"><strong>Tip:</strong> This may be a partial find and not the whole line.</span>
 									<xsl:if test="@type = 'regex'">
-										<br /><em id="lang-regex[{generate-id()}]">This find contains an advanced feature known as regular expressions, click here to learn more.</em>
+										<br /><em id="lang-regex[{generate-id()}]">This find contains an advanced feature known as regular expressions.</em>
 									</xsl:if>
 								</p>
 								<div class="codebox">
 									<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select All</span></a></div>
-									<div class="codePre"><pre id="{generate-id()}"><xsl:value-of select="current()" /></pre></div>
+									<div class="codePre"><pre id="{generate-id()}" dir="ltr"><xsl:value-of select="current()" /></pre></div>
+								</div>
+							</xsl:if>
+							<xsl:if test="name() = 'remove'">
+								<h4 id="lang-remove[{generate-id()}]" style="color: #FF0FFF;">Find and Delete</h4>
+								<p><span id="lang-removet[{generate-id()}]"><strong>Tip:</strong>  Find and delete this code.</span></p>
+								<div class="codebox">
+									<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select All</span></a></div>
+									<div class="codePre"><pre id="{generate-id()}" dir="ltr"><xsl:value-of select="current()" /></pre></div>
 								</div>
 							</xsl:if>
 							<xsl:if test="name() = 'action'">
 								<xsl:if test="@type = 'after-add'">
-									<h4 id="lang-aft[{generate-id()}]">Add after</h4>
+									<h4 id="lang-aft[{generate-id()}]" style="color: #009933;">Add after</h4>
 									<p><span id="lang-aftt[{generate-id()}]"><strong>Tip:</strong> Add these lines on a new blank line after the preceding line(s) to find.</span></p>
 								</xsl:if>
 								<xsl:if test="@type = 'before-add'">
-									<h4 id="lang-bef[{generate-id()}]">Add before</h4>
+									<h4 id="lang-bef[{generate-id()}]" style="color: #AC1987;">Add before</h4>
 									<p><span id="lang-beft[{generate-id()}]"><strong>Tip:</strong> Add these lines on a new blank line before the preceding line(s) to find.</span></p>
 								</xsl:if>
 								<xsl:if test="@type = 'replace-with'">
-									<h4 id="lang-rplw[{generate-id()}]">Replace With</h4>
+									<h4 id="lang-rplw[{generate-id()}]" style="color: #AE1616;">Replace with</h4>
 									<p><span id="lang-rplwt[{generate-id()}]"><strong>Tip:</strong> Replace the preceding line(s) to find with the following lines.</span></p>
 								</xsl:if>
 								<xsl:if test="@type = 'operation'">
-									<h4 id="lang-inc[{generate-id()}]">Increment</h4>
-									<p><span id="lang-inct[{generate-id()}]"><strong>Tip:</strong> This allows you to alter integers. For help on what each operator means, click here.</span></p>
+									<h4 id="lang-inc[{generate-id()}]" style="color: #333333;">Operation</h4>
+									<p><span id="lang-inct[{generate-id()}]"><strong>Tip:</strong> This allows you to alter integers.</span></p>
 								</xsl:if>
 								<div class="codebox">
-									<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select All</span></a></div>
-									<div class="codePre"><pre id="{generate-id()}"><xsl:value-of select="current()" /></pre></div>
+									<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select all</span></a></div>
+									<div class="codePre"><pre id="{generate-id()}" dir="ltr"><xsl:value-of select="current()" /></pre></div>
 								</div>
 							</xsl:if>
 							<xsl:if test="name() = 'inline-edit'">
 								<div class="mod-inlineedit">
-									<xsl:for-each select="mod:inline-find|mod:inline-action|mod:inline-comment">
+									<xsl:for-each select="mod:inline-find|mod:inline-remove|mod:inline-action|mod:inline-comment">
 										<xsl:if test="name() = 'inline-find'">
 											<h5 id="lang-ifnd[{generate-id()}]">In-line Find</h5>
 											<p><span id="lang-ifndt[{generate-id()}]"><strong>Tip:</strong> This is a partial match of a line for in-line operations.</span>
 												<xsl:if test="@type = 'regex'">
-													<br /><em id="lang-regex[{generate-id()}]">This find contains an advanced feature known as regular expressions, click here to learn more.</em>
+													<br /><em id="lang-regex[{generate-id()}]">This find contains an advanced feature known as regular expressions.</em>
 												</xsl:if>
 											</p>
 											<div class="codebox">
-												<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select All</span></a></div>
-												<div class="codePre"><pre id="{generate-id()}"><xsl:value-of select="current()" /></pre></div>
+												<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select all</span></a></div>
+												<div class="codePre"><pre id="{generate-id()}" dir="ltr"><xsl:value-of select="current()" /></pre></div>
+											</div>
+										</xsl:if>
+										<xsl:if test="name() = 'inline-remove'">
+											<h5 id="lang-iremove[{generate-id()}]" style="color: #FF0FFF;">In-line Find and Delete</h5>
+											<p><span id="lang-iremovet[{generate-id()}]"><strong>Tip:</strong> Find this code in the line and delete it.</span></p>
+											<div class="codebox">
+												<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select all</span></a></div>
+												<div class="codePre"><pre id="{generate-id()}" dir="ltr"><xsl:value-of select="current()" /></pre></div>
 											</div>
 										</xsl:if>
 										<xsl:if test="name() = 'inline-action'">
 											<xsl:if test="@type = 'after-add'">
-												<h5 id="lang-iaft[{generate-id()}]">In-line Add after</h5>
+												<h5 id="lang-iaft[{generate-id()}]" style="color: #009933;">In-line Add after</h5>
 												<p><span id="lang-iaftt[{generate-id()}]"></span></p>
 											</xsl:if>
 											<xsl:if test="@type = 'before-add'">
-												<h5 id="lang-ibef[{generate-id()}]">In-line Add before</h5>
+												<h5 id="lang-ibef[{generate-id()}]" style="color: #AC1987;">In-line Add before</h5>
 												<p><span id="lang-ibeft[{generate-id()}]"></span></p>
 											</xsl:if>
 											<xsl:if test="@type = 'replace-with'">
-												<h5 id="lang-irplw[{generate-id()}]">In-line Replace With</h5>
+												<h5 id="lang-irplw[{generate-id()}]" style="color: #AE1616;">In-line Replace with</h5>
 												<p><span id="lang-irplwt[{generate-id()}]"></span></p>
 											</xsl:if>
 											<xsl:if test="@type = 'operation'">
-												<h5 id="lang-iinc[{generate-id()}]">In-line Increment</h5>
-												<p><span id="lang-iinct[{generate-id()}]"><strong>Tip:</strong> This allows you to alter integers. For help on what each operator means, click here.</span></p>
+												<h5 id="lang-iinc[{generate-id()}]" style="color: #333333;">In-line Operation</h5>
+												<p><span id="lang-iinct[{generate-id()}]"><strong>Tip:</strong> This allows you to alter integers.</span></p>
 											</xsl:if>
 											<div class="codebox">
 												<div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select All</span></a></div>
-												<div class="codePre"><pre id="{generate-id()}"><xsl:value-of select="current()" /></pre></div>
+												<div class="codePre"><pre id="{generate-id()}" dir="ltr"><xsl:value-of select="current()" /></pre></div>
 											</div>
 										</xsl:if>
 										<xsl:if test="name() = 'inline-comment'">
@@ -1956,11 +2308,13 @@
 			<span class="corners-bottom"><span></span></span>
 		</div>
 	</xsl:template>
+
 	<xsl:template name="give-filez">
-		<h2 id="lang-fca">File Copy</h2>
+		<h2 id="lang-fca">File copy</h2>
 		<ol id="file-copy">
 			<xsl:for-each select="mod:file">
-				<li><dl>
+				<li>
+					<dl>
 						<dt><span id="lang-c-copy[{generate-id()}]">Copy:</span>&nbsp;<xsl:value-of select="@from" /></dt>
 						<dd><span id="lang-c-to[{generate-id()}]">To:</span>&nbsp;<xsl:value-of select="@to" /></dd>
 					</dl>
@@ -1968,6 +2322,27 @@
 			</xsl:for-each>
 		</ol>
 	</xsl:template>
+
+	<xsl:template name="away-filez">
+		<xsl:choose>
+			<xsl:when test="count(mod:file) > 1">
+				<h2 id="lang-del-heads">Delete files</h2>
+			</xsl:when>
+			<xsl:otherwise>
+				<h2 id="lang-del-head">Delete file</h2>
+			</xsl:otherwise>
+		</xsl:choose>
+		<ol id="file-delete">
+			<xsl:for-each select="mod:file">
+				<li>
+					<dl>
+						<dt><span id="lang-del-file[{generate-id()}]">Delete:</span>&nbsp;<xsl:value-of select="@name" /></dt>
+					</dl>
+				</li>
+			</xsl:for-each>
+		</ol>
+	</xsl:template>
+
 	<!-- add-line-breaks borrowed from http://www.stylusstudio.com/xsllist/200103/post40180.html -->
 	<xsl:template name="add-line-breaks">
 		<xsl:param name="string" select="." />
@@ -1981,4 +2356,300 @@
 			</xsl:otherwise>
 		</xsl:choose>
 	</xsl:template>
+
+	<!-- replace function borrowed from http://www.dpawson.co.uk/xsl/sect2/replace.html#d9701e43 -->
+	<xsl:template name="replaceCharsInString">
+		<xsl:param name="stringIn"/>
+		<xsl:param name="charsIn"/>
+		<xsl:param name="charsOut"/>
+		<xsl:choose>
+			<xsl:when test="contains($stringIn,$charsIn)">
+				<xsl:value-of select="concat(substring-before($stringIn,$charsIn),$charsOut)"/>
+				<xsl:call-template name="replaceCharsInString">
+					<xsl:with-param name="stringIn" select="substring-after($stringIn,$charsIn)"/>
+					<xsl:with-param name="charsIn" select="$charsIn"/>
+					<xsl:with-param name="charsOut" select="$charsOut"/>
+				</xsl:call-template>
+			</xsl:when>
+			<xsl:otherwise>
+				<xsl:value-of select="$stringIn"/>
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+
+	<!-- Replace some chars -->
+	<xsl:template name="validate-username">
+		<xsl:param name="string-in"/>
+
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+
+		<xsl:call-template name="replaceCharsInString">
+			<xsl:with-param name="stringIn" select="string($string-in)"/>
+			<xsl:with-param name="charsIn" select="'#'"/>
+			<xsl:with-param name="charsOut" select="'%23'"/>
+		</xsl:call-template>
+
+		</xsl:with-param><xsl:with-param name="charsIn" select="'&amp;'"/><xsl:with-param name="charsOut" select="'%26'"/></xsl:call-template> <!-- & -->
+		</xsl:with-param><xsl:with-param name="charsIn" select="'+'"/><xsl:with-param name="charsOut" select="'%2B'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="' '"/><xsl:with-param name="charsOut" select="'%20'"/></xsl:call-template> <!-- space -->
+	</xsl:template>
+
+	<!-- This is only needed for Opera support, hiding it here at the bottom. -->
+	<xsl:template name="validate-opera">
+		<xsl:param name="string-in"/>
+
+		<!-- This doesn't follow any coding guidelines. But is easier to read this way -->
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+		<xsl:call-template name="replaceCharsInString"><xsl:with-param name="stringIn">
+
+		<xsl:call-template name="replaceCharsInString">
+			<xsl:with-param name="stringIn" select="string($string-in)"/>
+			<xsl:with-param name="charsIn" select="'é'"/>
+			<xsl:with-param name="charsOut" select="'%C3%A9'"/>
+		</xsl:call-template>
+
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ÿ'"/><xsl:with-param name="charsOut" select="'%C3%BF'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'þ'"/><xsl:with-param name="charsOut" select="'%C3%BE'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ý'"/><xsl:with-param name="charsOut" select="'%C3%BD'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ü'"/><xsl:with-param name="charsOut" select="'%C3%BC'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'û'"/><xsl:with-param name="charsOut" select="'%C3%BB'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ú'"/><xsl:with-param name="charsOut" select="'%C3%BA'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ù'"/><xsl:with-param name="charsOut" select="'%C3%B9'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ø'"/><xsl:with-param name="charsOut" select="'%C3%B8'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'÷'"/><xsl:with-param name="charsOut" select="'%C3%B7'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ö'"/><xsl:with-param name="charsOut" select="'%C3%B6'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'õ'"/><xsl:with-param name="charsOut" select="'%C3%B5'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ô'"/><xsl:with-param name="charsOut" select="'%C3%B4'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ó'"/><xsl:with-param name="charsOut" select="'%C3%B3'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ò'"/><xsl:with-param name="charsOut" select="'%C3%B2'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ñ'"/><xsl:with-param name="charsOut" select="'%C3%B1'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ð'"/><xsl:with-param name="charsOut" select="'%C3%B0'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ï'"/><xsl:with-param name="charsOut" select="'%C3%AF'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'î'"/><xsl:with-param name="charsOut" select="'%C3%AE'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'í'"/><xsl:with-param name="charsOut" select="'%C3%AD'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ì'"/><xsl:with-param name="charsOut" select="'%C3%AC'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ë'"/><xsl:with-param name="charsOut" select="'%C3%AB'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ê'"/><xsl:with-param name="charsOut" select="'%C3%AA'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'é'"/><xsl:with-param name="charsOut" select="'%C3%A9'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'è'"/><xsl:with-param name="charsOut" select="'%C3%A8'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ç'"/><xsl:with-param name="charsOut" select="'%C3%A7'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'æ'"/><xsl:with-param name="charsOut" select="'%C3%A6'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'å'"/><xsl:with-param name="charsOut" select="'%C3%A5'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ä'"/><xsl:with-param name="charsOut" select="'%C3%A4'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ã'"/><xsl:with-param name="charsOut" select="'%C3%A3'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'â'"/><xsl:with-param name="charsOut" select="'%C3%A2'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'á'"/><xsl:with-param name="charsOut" select="'%C3%A1'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'à'"/><xsl:with-param name="charsOut" select="'%C3%A0'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ß'"/><xsl:with-param name="charsOut" select="'%C3%9F'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Þ'"/><xsl:with-param name="charsOut" select="'%C3%9E'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ý'"/><xsl:with-param name="charsOut" select="'%C3%9D'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ü'"/><xsl:with-param name="charsOut" select="'%C3%9C'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Û'"/><xsl:with-param name="charsOut" select="'%C3%9B'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ú'"/><xsl:with-param name="charsOut" select="'%C3%9A'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ù'"/><xsl:with-param name="charsOut" select="'%C3%99'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ø'"/><xsl:with-param name="charsOut" select="'%C3%98'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'×'"/><xsl:with-param name="charsOut" select="'%C3%97'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ö'"/><xsl:with-param name="charsOut" select="'%C3%96'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Õ'"/><xsl:with-param name="charsOut" select="'%C3%95'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ô'"/><xsl:with-param name="charsOut" select="'%C3%94'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ó'"/><xsl:with-param name="charsOut" select="'%C3%93'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ò'"/><xsl:with-param name="charsOut" select="'%C3%92'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ñ'"/><xsl:with-param name="charsOut" select="'%C3%91'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ð'"/><xsl:with-param name="charsOut" select="'%C3%90'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ï'"/><xsl:with-param name="charsOut" select="'%C3%8F'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Î'"/><xsl:with-param name="charsOut" select="'%C3%8E'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Í'"/><xsl:with-param name="charsOut" select="'%C3%8D'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ì'"/><xsl:with-param name="charsOut" select="'%C3%8C'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ë'"/><xsl:with-param name="charsOut" select="'%C3%8B'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ê'"/><xsl:with-param name="charsOut" select="'%C3%8A'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'É'"/><xsl:with-param name="charsOut" select="'%C3%89'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'È'"/><xsl:with-param name="charsOut" select="'%C3%88'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ç'"/><xsl:with-param name="charsOut" select="'%C3%87'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Æ'"/><xsl:with-param name="charsOut" select="'%C3%86'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Å'"/><xsl:with-param name="charsOut" select="'%C3%85'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ä'"/><xsl:with-param name="charsOut" select="'%C3%84'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ã'"/><xsl:with-param name="charsOut" select="'%C3%83'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Â'"/><xsl:with-param name="charsOut" select="'%C3%82'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Á'"/><xsl:with-param name="charsOut" select="'%C3%81'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'À'"/><xsl:with-param name="charsOut" select="'%C3%80'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¿'"/><xsl:with-param name="charsOut" select="'%C2%BF'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¾'"/><xsl:with-param name="charsOut" select="'%C2%BE'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'½'"/><xsl:with-param name="charsOut" select="'%C2%BD'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¼'"/><xsl:with-param name="charsOut" select="'%C2%BC'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'»'"/><xsl:with-param name="charsOut" select="'%C2%BB'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'º'"/><xsl:with-param name="charsOut" select="'%C2%BA'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¹'"/><xsl:with-param name="charsOut" select="'%C2%B9'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¸'"/><xsl:with-param name="charsOut" select="'%C2%B8'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'·'"/><xsl:with-param name="charsOut" select="'%C2%B7'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¶'"/><xsl:with-param name="charsOut" select="'%C2%B6'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'µ'"/><xsl:with-param name="charsOut" select="'%C2%B5'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'´'"/><xsl:with-param name="charsOut" select="'%C2%B4'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'³'"/><xsl:with-param name="charsOut" select="'%C2%B3'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'²'"/><xsl:with-param name="charsOut" select="'%C2%B2'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'±'"/><xsl:with-param name="charsOut" select="'%C2%B1'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'°'"/><xsl:with-param name="charsOut" select="'%C2%B0'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¯'"/><xsl:with-param name="charsOut" select="'%C2%AF'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'®'"/><xsl:with-param name="charsOut" select="'%C2%AE'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¬'"/><xsl:with-param name="charsOut" select="'%C2%AC'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'«'"/><xsl:with-param name="charsOut" select="'%C2%AB'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ª'"/><xsl:with-param name="charsOut" select="'%C2%AA'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'©'"/><xsl:with-param name="charsOut" select="'%C2%A9'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¨'"/><xsl:with-param name="charsOut" select="'%C2%A8'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'§'"/><xsl:with-param name="charsOut" select="'%C2%A7'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¦'"/><xsl:with-param name="charsOut" select="'%C2%A6'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¥'"/><xsl:with-param name="charsOut" select="'%C2%A5'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¤'"/><xsl:with-param name="charsOut" select="'%C2%A4'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'£'"/><xsl:with-param name="charsOut" select="'%C2%A3'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¢'"/><xsl:with-param name="charsOut" select="'%C2%A2'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'¡'"/><xsl:with-param name="charsOut" select="'%C2%A1'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ÿ'"/><xsl:with-param name="charsOut" select="'%C5%B8'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ž'"/><xsl:with-param name="charsOut" select="'%C5%BE'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'œ'"/><xsl:with-param name="charsOut" select="'%C5%93'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'›'"/><xsl:with-param name="charsOut" select="'%E2%80%BA'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'š'"/><xsl:with-param name="charsOut" select="'%C5%A1'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'™'"/><xsl:with-param name="charsOut" select="'%E2%84%A2'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'˜'"/><xsl:with-param name="charsOut" select="'%CB%9C'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'—'"/><xsl:with-param name="charsOut" select="'%E2%80%94'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'–'"/><xsl:with-param name="charsOut" select="'%E2%80%93'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'•'"/><xsl:with-param name="charsOut" select="'%E2%80%A2'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'”'"/><xsl:with-param name="charsOut" select="'%E2%80%9D'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'“'"/><xsl:with-param name="charsOut" select="'%E2%80%9C'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'’'"/><xsl:with-param name="charsOut" select="'%E2%80%99'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'‘'"/><xsl:with-param name="charsOut" select="'%E2%80%98'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Ž'"/><xsl:with-param name="charsOut" select="'%C5%BD'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Œ'"/><xsl:with-param name="charsOut" select="'%C5%92'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'‹'"/><xsl:with-param name="charsOut" select="'%E2%80%B9'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'Š'"/><xsl:with-param name="charsOut" select="'%C5%A0'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'‰'"/><xsl:with-param name="charsOut" select="'%E2%80%B0'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ˆ'"/><xsl:with-param name="charsOut" select="'%CB%86'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'‡'"/><xsl:with-param name="charsOut" select="'%E2%80%A1'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'†'"/><xsl:with-param name="charsOut" select="'%E2%80%A0'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'…'"/><xsl:with-param name="charsOut" select="'%E2%80%A6'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'„'"/><xsl:with-param name="charsOut" select="'%E2%80%9E'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'ƒ'"/><xsl:with-param name="charsOut" select="'%C6%92'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'‚'"/><xsl:with-param name="charsOut" select="'%E2%80%9A'"/></xsl:call-template>
+		</xsl:with-param><xsl:with-param name="charsIn" select="'€'"/><xsl:with-param name="charsOut" select="'%E2%82%AC'"/></xsl:call-template>
+	</xsl:template>
+
 </xsl:stylesheet>
\ No newline at end of file
--- a/subsilver2.xml	Wed Jun 17 15:16:02 2009 +0000
+++ b/subsilver2.xml	Sun Aug 01 19:52:31 2010 +0000
@@ -6,7 +6,7 @@
       security problems within the MOD. No support will be given for MODs not
       found within the MODs Database which can be found at
       http://www.phpbb.com/mods/-->
-<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phpbb.com/mods/xml/modx-1.2.1.xsd">
+<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
 
 	<header>
 		<license>http://opensource.org/licenses/gpl-license.php GNU General Public License v2</license>
@@ -24,16 +24,23 @@
 			</author>
 		</author-group>
 		<link-group>
-			<link type="parent" href="Install.xml" lang="en-gb">Main instructions</link>
+			<link type="parent" href="install.xml" lang="en-gb">Main instructions</link>
 		</link-group>
-		<mod-version>1.1.0</mod-version>
+		<mod-version>1.2.0</mod-version>
 		<installation>
 			<level>intermediate</level>
 			<time>180</time>
-			<target-version>3.0.5</target-version>
+			<target-version>3.0.7</target-version>
 		</installation>
 		<history>
 			<entry>
+				<date>2010-08-01</date>
+				<rev-version>1.2.0</rev-version>
+				<changelog lang="en-gb">
+					<change>Update version number and other minor fixes for release</change>
+				</changelog>
+			</entry>
+			<entry>
 				<date>2009-06-15</date>
 				<rev-version>1.1.0</rev-version>
 				<changelog lang="en-gb">