<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia at $dateFormat.format( $currentDate ) -->
#macro ( link $href $name $target $img $position $alt $border $width $height )
	#set ( $linkTitle = ' title="' + $name + '"' )
	#if( $target )
		#set ( $linkTarget = ' target="' + $target + '"' )
	#else
		#set ( $linkTarget = "" )
	#end
	#if ( $href.toLowerCase().startsWith("http:/") || $href.toLowerCase().startsWith("https:/") ||
		$href.toLowerCase().startsWith("ftp:/") || $href.toLowerCase().startsWith("mailto:/") ||
		$href.toLowerCase().startsWith("file:/") || ($href.toLowerCase().indexOf("://") != -1) )
		#set ( $linkClass = ' class="externalLink" target="_blank"' )
		
		#if ( $linkTarget )
		#else
			#set ( $linkTarget = "_blank" )
		#end
		
	#else
		#set ( $linkClass = "" )
	#end
	#if ( $img )
		#if ( $position == "left" )
			<a href="$href"$linkClass$linkTarget$linkTitle>#image($img $alt $border $width $height)$name</a>
		#else
			<a href="$href"$linkClass$linkTarget$linkTitle>$name #image($img $alt $border $width $height)</a>
		#end
	#else
		<a href="$href"$linkClass$linkTarget$linkTitle>$name</a>
	#end
#end
##
#macro ( image $img $alt $border $width $height )
	#if( $img )
		#if ( ! ( $img.toLowerCase().startsWith("http:/") || $img.toLowerCase().startsWith("https:/") ||
						$img.toLowerCase().startsWith("ftp:/") || $img.toLowerCase().startsWith("mailto:/") ||
						$img.toLowerCase().startsWith("file:/") || ($img.toLowerCase().indexOf("://") != -1) ) )
			#set ( $imgSrc = $PathTool.calculateLink( $img, $relativePath ) )
			#set ( $imgSrc = $imgSrc.replaceAll( '\\', '/' ) )
			#set ( $imgSrc = ' src="' + $imgSrc + '"' )
		#else
			#set ( $imgSrc = ' src="' + $img + '"' )
		#end
		#if( $alt )
			#set ( $imgAlt = ' alt="' + $alt + '"' )
		#else
			#set ( $imgAlt = ' alt=""' )
		#end
		#if( $border )
			#set ( $imgBorder = ' border="' + $border + '"' )
		#else
			#set ( $imgBorder = "" )
		#end
		#if( $width )
			#set ( $imgWidth = ' width="' + $width + '"' )
		#else
			#set ( $imgWidth = "" )
		#end
		#if( $height )
			#set ( $imgHeight = ' height="' + $height + '"' )
		#else
			#set ( $imgHeight = "" )
		#end
		<img class="imageLink"$imgSrc$imgAlt$imgBorder$imgWidth$imgHeight/>
	#end
#end
#macro ( banner $banner $id )
	#if ( $banner )
		#if( $banner.href )
			#set ( $hrf = $banner.href )
			#if ( ! ( $hrf.toLowerCase().startsWith("http:/") || $hrf.toLowerCase().startsWith("https:/") ||
				$hrf.toLowerCase().startsWith("ftp:/") || $hrf.toLowerCase().startsWith("mailto:/") ||
				$hrf.toLowerCase().startsWith("file:/") || ($hrf.toLowerCase().indexOf("://") != -1) ) )
				#set ( $hrf = $PathTool.calculateLink( $hrf, $relativePath ) )
				#set ( $hrf = $hrf.replaceAll( '\\', '/' ) )
				#if ( ( $hrf == '' ) )
					#set ( $hrf = './' )
				#end
			#end
			<a href="$hrf" id="$id"#if( $banner.alt ) title="$banner.alt"#end>
		#else
				<div id="$id">
		#end
##
		#if( $banner.src )
				#set ( $src = $banner.src )
				#if ( ! ( $src.toLowerCase().startsWith("http:/") || $src.toLowerCase().startsWith("https:/") ||
								$src.toLowerCase().startsWith("ftp:/") || $src.toLowerCase().startsWith("mailto:/") ||
								$src.toLowerCase().startsWith("file:/") || ($src.toLowerCase().indexOf("://") != -1) ) )
						#set ( $src = $PathTool.calculateLink( $src, $relativePath ) )
						#set ( $src = $src.replaceAll( '\\', '/' ) )
				#end
				#if ( $banner.alt )
						#set ( $alt = $banner.alt )
				#else
						#set ( $alt = $banner.name )
				#end
				<img src="$src" alt="$alt" />
		#else
				$banner.name
		#end
##
		#if( $banner.href )
				</a>
		#else
				</div>
		#end
	#end
#end
##
#macro ( links $links )
	<ul class="nav">
	#set ( $counter = 0 )
	#foreach( $item in $links )
		#set ( $counter = $counter + 1 )
		#set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) )
		#set ( $currentItemHref = $currentItemHref.replaceAll( '\\', '/' ) )
		#set ( $activeClass = "" )
		#if ( $alignedFileName == $currentItemHref) 
			#set ( $activeClass = ' class="active"' )
		#end
		<li$activeClass>
		#link( $currentItemHref $item.name $item.target $item.img $item.position $item.alt $item.border $item.width $item.height )
		</li>
	#end
	</ul>
#end
##
#macro ( breadcrumbs $breadcrumbs )
	#foreach( $item in $breadcrumbs )
		#set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) )
		#set ( $currentItemHref = $currentItemHref.replaceAll( '\\', '/' ) )
		#if ( ( $currentItemHref == '' ) )
			#set ( $currentItemHref = './' )
		#end
##
			#link( $currentItemHref $item.name $item.target $item.img $item.position $item.alt $item.border $item.width $item.height )
			<span class="divider">&gt;</span>
	#end
	$title
#end
##
#macro ( displayTree $display $item )
	#if ( $item && $item.items && $item.items.size() > 0 )
		#foreach( $subitem in $item.items )
			#set ( $subitemHref = $PathTool.calculateLink( $subitem.href, $relativePath ) )
			#set ( $subitemHref = $subitemHref.replaceAll( '\\', '/' ) )
##
			#if ( $alignedFileName == $subitemHref )
				#set ( $display = true )
			#end
##
			#displayTree( $display $subitem )
		#end
	#end
#end
##
#macro ( menuItem $item )
	#set ( $collapse = "none" )
	#set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) )
	#set ( $currentItemHref = $currentItemHref.replaceAll( '\\', '/' ) )
##
	#if ( $item && $item.items && $item.items.size() > 0 )
		#if ( $item.collapse == false )
			#set ( $collapse = "expanded" )
		#else
			## By default collapsed
			#set ( $collapse = "collapsed" )
		#end
##
		#set ( $display = false )
		#displayTree( $display $item )
##
		#if ( $alignedFileName == $currentItemHref || $display )
			#set ( $collapse = "expanded" )
		#end
	#end
	#set ( $active = "" )
	#if ( $alignedFileName == $currentItemHref )
	#set ($active = " active")
	#end
	<li class="$collapse$active">
	#link($currentItemHref $item.name $item.target $item.img $item.position $item.alt $item.border $item.width $item.height )
	#if ( $item && $item.items && $item.items.size() > 0 )
		#if ( $collapse == "expanded" )
			<ul>
				#foreach( $subitem in $item.items )
					#menuItem( $subitem )
				#end
			</ul>
		#end
	#end
	</li>
#end
##
#macro ( mainMenu $menus )
	#foreach( $menu in $menus )
		<ul class="nav nav-list">
		#if ( $menu.name )
			#if ( $menu.img )
			 <li class="nav-header"><i class="$menu.img"></i>$menu.name</li>
			#else
			 <li class="nav-header">$menu.name</li>
			#end
		#end
		#if ( $menu.items && $menu.items.size() > 0 )
			#foreach( $item in $menu.items )
				#menuItem( $item )
			#end
		#end
		</ul>
	#end
#end
##
#macro ( copyright )
	#if ( $project )
		#if ( ${project.organization} && ${project.organization.name} )
			#set ( $period = "" )
		#else
			#set ( $period = "." )
	 #end
##
	 #set ( $currentYear = ${currentDate.year} + 1900 )
##
		#if ( ${project.inceptionYear} && ( ${project.inceptionYear} != ${currentYear.toString()} ) )
			${project.inceptionYear}-${currentYear}${period}
		#else
			${currentYear}${period}
		#end
##
		#if ( ${project.organization} )
			#if ( ${project.organization.name} && ${project.organization.url} )
					<a href="$project.organization.url">${project.organization.name}</a>.
			#elseif ( ${project.organization.name} )
				${project.organization.name}.
			#end
		#end
	#end
#end
##
#macro ( publishDate $position $publishDate $version )
	#if ( $publishDate && $publishDate.format )
		#set ( $format = $publishDate.format )
	#else
		#set ( $format = "yyyy-MM-dd" )
	#end
##
	$dateFormat.applyPattern( $format )
##
	#set ( $dateToday = $dateFormat.format( $currentDate ) )
##
	#if ( $publishDate && $publishDate.position )
		#set ( $datePosition = $publishDate.position )
	#else
		#set ( $datePosition = "left" )
	#end
##
	#if ( $version )
		#if ( $version.position )
			#set ( $versionPosition = $version.position )
		#else
			#set ( $versionPosition = "left" )
		#end
	#else
		#set ( $version = "" )
		#set ( $versionPosition = "left" )
	#end
##
	#set ( $breadcrumbs = $decoration.body.breadcrumbs )
	#set ( $links = $decoration.body.links )

	#if ( $datePosition.equalsIgnoreCase( $position ) )
		#if ( ( $datePosition.equalsIgnoreCase( "right" ) ) || ( $datePosition.equalsIgnoreCase( "bottom" ) ) )
			<span id="publishDate">$i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateToday</span>
			#if ( $versionPosition.equalsIgnoreCase( $position ) )
				<span class="divider">|</span> <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span>
			#end
		#elseif ( ( $datePosition.equalsIgnoreCase( "navigation-bottom" ) ) || ( $datePosition.equalsIgnoreCase( "navigation-top" ) ) )
			<div id="lastPublished">
				<span id="publishDate">$i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateToday</span>
				#if ( $versionPosition.equalsIgnoreCase( $position ) )
					<span class="divider">|</span> <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span>
				#end
			</div>
		#elseif ( $datePosition.equalsIgnoreCase("left") )
			<div class="pull-left">
				<span id="publishDate">$i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateToday</span>
				#if ( $versionPosition.equalsIgnoreCase( $position ) )
					<span class="divider">|</span> <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span>
				#end
				#if ( $breadcrumbs && $breadcrumbs.size() > 0 )
					<span class="divider">|</span> #breadcrumbs( $breadcrumbs )
				#end
			</div>
		#end
	#elseif ( $versionPosition.equalsIgnoreCase( $position ) )
		#if ( ( $versionPosition.equalsIgnoreCase( "right" ) ) || ( $versionPosition.equalsIgnoreCase( "bottom" ) ) )
			$prefix <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span>
		#elseif ( ( $versionPosition.equalsIgnoreCase( "navigation-bottom" ) ) || ( $versionPosition.equalsIgnoreCase( "navigation-top" ) ) )
			<div id="lastPublished">
				<span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span>
			</div>
		#elseif ( $versionPosition.equalsIgnoreCase("left") )
			<div class="pull-left">
				<span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span>
				#if ( $breadcrumbs && $breadcrumbs.size() > 0 )
					<span class="divider">|</span> #breadcrumbs( $breadcrumbs )
				#end
			</div>
		#end
	#elseif ( $position.equalsIgnoreCase( "left" ) )
		#if ( $breadcrumbs && $breadcrumbs.size() > 0 )
			<div class="pull-left">
				#breadcrumbs( $breadcrumbs )
			</div>
		#end
	#end
#end
##
#macro ( poweredByLogo $poweredBy )
	#if( $poweredBy )
		#foreach ($item in $poweredBy)
			#if( $item.href )
				#set ( $href = $PathTool.calculateLink( $item.href, $relativePath ) )
				#set ( $href = $href.replaceAll( '\\', '/' ) )
			#else
				#set ( $href="http://maven.apache.org/" )
			#end
##
			#if( $item.name )
				#set ( $name = $item.name )
			#else
				#set ( $name = $i18n.getString( "site-renderer", $locale, "template.builtby" )	)
				#set ( $name = "${name} Maven"	)
			#end
##
			#if( $item.img )
				#set ( $img = $item.img )
			#else
				#set ( $img = "images/logos/maven-feather.png" )
			#end
##
			#if ( ! ( $img.toLowerCase().startsWith("http:/") || $img.toLowerCase().startsWith("https:/") ||
						$img.toLowerCase().startsWith("ftp:/") || $img.toLowerCase().startsWith("mailto:/") ||
						$img.toLowerCase().startsWith("file:/") || ($img.toLowerCase().indexOf("://") != -1) ) )
				#set ( $img = $PathTool.calculateLink( $img, $relativePath ) )
				#set ( $img = $img.replaceAll( '\\', '/' ) )
			#end
##
			#if( $item.alt )
				#set ( $alt = ' alt="' + $item.alt + '"' )
			#else
				#set ( $alt = ' alt="' + $name + '"' )
			#end
##
			#if( $item.border )
				#set ( $border = ' border="' + $item.border + '"' )
			#else
				#set ( $border = "" )
			#end
##
			#if( $item.width )
				#set ( $width = ' width="' + $item.width + '"' )
			#else
				#set ( $width = "" )
			#end
			#if( $item.height )
				#set ( $height = ' height="' + $item.height + '"' )
			#else
				#set ( $height = "" )
			#end
##
			<a href="$href" title="$name" class="poweredBy">
				<img class="poweredBy" $alt src="$img" $border $width $height />
			</a>
		#end
		#if( $poweredBy.isEmpty() )
			<a href="http://maven.apache.org/" title="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" class="poweredBy">
				<img class="poweredBy" alt="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" src="$relativePath/images/logos/maven-feather.png" />
			</a>
		#end
	#else
		<a href="http://maven.apache.org/" title="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" class="poweredBy">
			<img class="poweredBy" alt="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" src="$relativePath/images/logos/maven-feather.png" />
		</a>
	#end
#end
##
#macro ( googleAnalytics $accountId )
	#if( $accountId && $accountId != "" )
		<!-- Google Analytics -->
		<script type="text/javascript">
		
			var _gaq = _gaq || [];
			_gaq.push(['_setAccount', '$accountId']);
			_gaq.push (['_gat._anonymizeIp']);
			_gaq.push(['_trackPageview']);

			(function() {
				var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
				ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
				var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
			})();

		</script>
	#end
#end
##
<html xmlns="http://www.w3.org/1999/xhtml"#if ( $locale ) xml:lang="$locale.language" lang="$locale.language"#end>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=${outputEncoding}" />
		<title>$title - $project.name</title>
		<link rel="stylesheet" href="$relativePath/css/bootstrap.min.css" type="text/css" />
		<link rel="stylesheet" href="$relativePath/css/site.css" type="text/css" />
		<script type="text/javascript" src="$relativePath/js/jquery.min.js"></script>
		<script type="text/javascript" src="$relativePath/js/bootstrap.min.js"></script>
		<script type="text/javascript" src="$relativePath/js/prettify.min.js"></script>
		<script type="text/javascript" src="$relativePath/js/site.js"></script>
#foreach( $author in $authors )
			<meta name="author" content="$author" />
#end
#if ( $dateCreation )
		<meta name="Date-Creation-yyyymmdd" content="$dateCreation" />
#end
#if ( $dateRevision )
		<meta name="Date-Revision-yyyymmdd" content="$dateRevision" />
#end
#if ( $locale )
		<meta http-equiv="Content-Language" content="$locale.language" />
#end
		$headContent
		#googleAnalytics( $decoration.googleAnalyticsAccountId )
	</head>
	<body class="composite">
 
		<div class="navbar">
			<div class="navbar-inner">
				<div class="container-fluid">
					<a class="brand" href="$project.url">$project.name &trade;</a>
					#links( $decoration.body.links )

					<!-- Twitter link -->
					<ul class="nav pull-right">
						<li><a href="http://twitter.com/log4php/" class="externalLink">Follow <strong>@log4php</strong></a></li>
					</ul>
					
					<!-- Google CSE Search Box -->
					<form class="navbar-search pull-right" id="cref" action="http://www.google.com/cse">
						<input type="hidden" name="cref" value="$project.url/cse.xml" />
						<input class="search-query pull-left" type="text" name="q" size="40" placeholder="Search" />
					</form>
				</div>
			</div>
		</div>

		<div class="container-fluid">
			<table class="layout-table">
				<tr>
					<td class="sidebar">
						<div class="well sidebar-nav">
							#mainMenu( $decoration.body.menus )
						</div>
						<div id="poweredBy">
							#poweredByLogo( $decoration.poweredBy )
						</div>
					</td>
					<td class="content">
						$bodyContent
					</td>
				</tr>
			</table>
		</div>
			
		<div class="footer">
			<p>Copyright &#169;#copyright()All Rights Reserved.#publishDate( "bottom" $decoration.publishDate $decoration.version )
			Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>. 
			Please read the <a href="$relativePath/privacy.html">Privacy policy</a></p>
			<p>Apache log4php, Apache, log4php, the Apache feather logo, the Apache Logging Services project logo and the Built by 
			Maven logo are trademarks of The Apache Software Foundation.</p>
			<p>Site powered by <a target="_blank" href="http://twitter.github.com/bootstrap/">Twitter Bootstrap</a>. Icons from 
			<a target="_blank" href="http://glyphicons.com/">Glyphicons Free</a>.</p>
		</div>
	</body>
</html>
