diff --git a/bin/tools/doxyFilter b/bin/tools/doxyFilter
index 2e370383e5dae0cf96fc9ce0211e199b2fa6c020..061c72e526a503d94e8424e8151c8c55cf4800e6 100755
--- a/bin/tools/doxyFilter
+++ b/bin/tools/doxyFilter
@@ -1,11 +1,11 @@
-#!/bin/sh
+#!/bin/bash
 #------------------------------------------------------------------------------
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
 #    \\/     M anipulation  |
-#-------------------------------------------------------------------------------
+#------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
 #
@@ -38,7 +38,15 @@
 
 if [ "$#" -gt 0 ]
 then
-    filePath=$(echo $1 | sed -e s@^$WM_PROJECT_DIR@../../..@ )
+
+    realFilePath=$(echo $1 | sed -e s@^$WM_PROJECT_DIR@../../..@ )
+    if [ -n "$FOAM_ONLINE_REPO" ]
+    then
+        filePath=$(echo $1 | sed -e s@^$WM_PROJECT_DIR@$FOAM_ONLINE_REPO@ )
+    else
+        filePath=$realFilePath
+    fi
+
     # dirName=$(echo "$filePath" | sed -e 's@/[^/]*$@@' )
     dirName=${filePath%/[^/]*}
     fileName=${filePath##*/}
@@ -57,6 +65,7 @@ then
     awk -f $WM_PROJECT_DIR/bin/tools/doxyFilter-table.awk $1 | \
     awk -f $awkScript  | \
     sed -f $WM_PROJECT_DIR/bin/tools/doxyFilter.sed \
+        -e s@%realFilePath%@$realFilePath@g \
         -e s@%filePath%@$filePath@g \
         -e s@%fileName%@$fileName@g \
         -e s@%dirName%@$dirName@g
diff --git a/bin/tools/doxyFilter.sed b/bin/tools/doxyFilter.sed
index 084049a4a2733f443b69d24d30e2f2b19a72d688..e2aecb8b8d4a496f6958298287c3eb94064a890e 100644
--- a/bin/tools/doxyFilter.sed
+++ b/bin/tools/doxyFilter.sed
@@ -11,7 +11,7 @@
 /^License/,/\*\//{
 /^License/,\%http://www.gnu.org/licenses%{
 s?^License.*?\*\/\
-\/\*! \\file %filePath%\
+\/\*! \\file %realFilePath%\
 <b>Original source file</b> <a href="%filePath%">%fileName%</a>\
 \
 \
@@ -64,12 +64,14 @@ s/^    /\\relates /
 # =>
 # \\class Foam::namespaceName::className
 #
-/^Class *$/,/^[^ ]/{
+/^Class *$/{
 N
+:loop
 /.*:: *$/{
 N
-s/Class *\n *\(.*\) *\n *\(.*\) */\\class \1\2/
+s/^ *\(.*\) *\n *\(.*\) */\1\2/
 }
+t loop
 s/Class *\n *\(.*\) */\\class \1/
 }
 
diff --git a/doc/Doxygen/Allwmake b/doc/Doxygen/Allwmake
index a349ee4fc1761041bcdc140d29f39cf1a269dcf8..227bd01b72704a69310f483e51bc8e59d3ddbfb9 100755
--- a/doc/Doxygen/Allwmake
+++ b/doc/Doxygen/Allwmake
@@ -8,6 +8,39 @@ cd ${0%/*} || exit 1    # Run from this directory
     exit 1
 }
 
+usage() {
+    exec 1>&2
+    while [ "$#" -ge 1 ]; do echo "$1"; shift; done
+    cat<<USAGE
+
+usage: ${0##*/} [OPTION]
+options:
+  -online    use the links to the Github repositories instead of the local source code
+  -help
+
+USAGE
+    exit 1
+}
+
+# parse options
+while [ "$#" -gt 0 ]
+do
+    case "$1" in
+    -h | -help)
+        usage
+        ;;
+    -online)
+        export FOAM_ONLINE_REPO="https://github.com/$WM_PROJECT/$WM_PROJECT-$WM_PROJECT_VERSION/tree/master"
+        shift
+        ;;
+    *)
+        usage "unknown option/argument: '$*'"
+        ;;
+    esac
+done
+
+#------------------------------------------------------------------------------
+
 set -x
 
 rm -rf latex man
diff --git a/doc/Doxygen/_Header b/doc/Doxygen/_Header
index 2b4b441decca106d09b1e0bc6fccff106c521470..985c43d52c32e060e14134c896d4187ead462e9e 100644
--- a/doc/Doxygen/_Header
+++ b/doc/Doxygen/_Header
@@ -9,6 +9,8 @@
 <link href="search/search.css" rel="stylesheet" type="text/css" />
 <link href="../css/openfoam.css" rel="stylesheet" type="text/css" />
 <script type="text/javaScript" src="search/search.js"></script>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
 
 <!-- meta info -->
 <meta
diff --git a/doc/Doxygen/css/cfdLayout.css b/doc/Doxygen/css/cfdLayout.css
index f803ce8802b93605c51779fe336138d05105655c..b00bd68da4db3e7ccae20fe4c444813c3acaed8f 100644
--- a/doc/Doxygen/css/cfdLayout.css
+++ b/doc/Doxygen/css/cfdLayout.css
@@ -71,7 +71,7 @@ p:after {
     border:3px solid rgb(175,175,175);
     border-bottom-width: 0;
     margin-top:10px;
-    background:#d5e1f0;
+    background:#e1f0e1;
     overflow:visible !important /*Firefox*/;
     overflow:hidden /*IE6*/;
 }
@@ -265,12 +265,12 @@ p:after {
 }
 
 div.contents a {
-    color:rgb(70,122,167);
+    color:rgb(85,144,112);
     font-weight:bold;
     text-decoration:none;
 }
 div.contents a:hover {
-    color:rgb(42,90,138);
+    color:rgb(56,94,73);
     text-decoration:underline;
 }
 /*
@@ -342,4 +342,3 @@ div.crosslinks {
 }
 
 } /* end media print */
-
diff --git a/doc/Doxygen/css/cfdNav.css b/doc/Doxygen/css/cfdNav.css
index 9c590e8695cabd4bb6282f369f5bcaaebbcf449d..662442034fc1f74dcc1a1cbf1085e55824390d67 100644
--- a/doc/Doxygen/css/cfdNav.css
+++ b/doc/Doxygen/css/cfdNav.css
@@ -271,7 +271,7 @@ nav3-bullet
     padding:0 0 0 10px;
     background:url(img/bg_bullet_full_1.gif) no-repeat 0px 50%;
     text-decoration:none;
-    color:rgb(70,122,167);
+    color:rgb(56,94,73);
     font-weight:bold;
     font-size:120%;
 }
@@ -282,7 +282,7 @@ nav3-bullet
     padding:0 0 0 10px;
     background:url(img/bg_bullet_half_1.gif) no-repeat 0px 50%;
     text-decoration:none;
-    color:rgb(70,122,167);
+    color:rgb(56,94,73);
     font-weight:normal;
     font-size:120%;
 }
@@ -570,5 +570,3 @@ div.navpath, div.summary
 {
     background-color:#d5e1f0 !important;
 }
-
-
diff --git a/doc/Doxygen/css/doxygen.css b/doc/Doxygen/css/doxygen.css
index 18537810378e0b05a65a9f7a08471599550e9d04..4958570ce303053568ab6ee2d21992768afc45f8 100644
--- a/doc/Doxygen/css/doxygen.css
+++ b/doc/Doxygen/css/doxygen.css
@@ -86,13 +86,13 @@ div.navtab {
 /* @group Link Styling */
 
 a {
-	color: #153788;
+	color: rgb(85,144,112);
 	font-weight: normal;
 	text-decoration: none;
 }
 
 .contents a:visited {
-	color: #1b77c5;
+	color: rgb(85,144,112);
 }
 
 a:hover {
@@ -398,12 +398,12 @@ hr.footer {
         background-color: #d5e1e8;
         font-weight: bold;
         /* firefox specific markup */
-        background-image: -moz-linear-gradient(rgba(228, 233, 245, 1.0) 0%, rgba(193, 205, 232, 1.0) 100%);
+        background-image: -moz-linear-gradient(rgba(225, 244, 238, 1.0) 0%, rgba(191, 223, 191, 1.0) 100%);
         -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
         -moz-border-radius-topright: 8px;
         -moz-border-radius-topleft: 8px;
         /* webkit specific markup */
-        background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(228, 233, 245, 1.0)), to(rgba(193, 205, 232, 1.0)));
+        background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(225, 244, 238, 1.0)), to(rgba(191, 223, 191, 1.0)));
         -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
         -webkit-border-top-right-radius: 8px;
         -webkit-border-top-left-radius: 8px;
@@ -546,7 +546,7 @@ table.doxtable {
 }
 
 table.doxtable td, table.doxtable th {
-	border: 1px solid #153788;
+	border: 1px solid rgb(85,144,112);
 	padding: 3px 7px 2px;
 }
 
@@ -559,3 +559,192 @@ table.doxtable th {
 	text-align:left;
 }
 
+/* tooltip related style info */
+
+.ttc {
+        position: absolute;
+        display: none;
+}
+
+#powerTip {
+  cursor: default;
+  white-space: nowrap;
+  background-color: white;
+  border: 1px solid gray;
+  border-radius: 4px 4px 4px 4px;
+  box-shadow: 1px 1px 7px gray;
+  display: none;
+  font-size: smaller;
+  max-width: 80%;
+  opacity: 0.9;
+  padding: 1ex 1em 1em;
+  position: absolute;
+  z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+        color: grey;
+  font-style: italic;
+}
+
+#powerTip div.ttname a {
+        font-weight: bold;
+}
+
+#powerTip div.ttname {
+        font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+        color: #006318;
+}
+
+#powerTip div {
+        margin: 0px;
+        padding: 0px;
+        font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+  content: "";
+  position: absolute;
+  margin: 0px;
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.w:after,  #powerTip.w:before,
+#powerTip.e:after,  #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+  border: solid transparent;
+  content: " ";
+  height: 0;
+  width: 0;
+  position: absolute;
+}
+
+#powerTip.n:after,  #powerTip.s:after,
+#powerTip.w:after,  #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+  border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before,  #powerTip.s:before,
+#powerTip.w:before,  #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+  border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+  top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+  border-top-color: #ffffff;
+  border-width: 10px;
+  margin: 0px -10px;
+}
+#powerTip.n:before {
+  border-top-color: #808080;
+  border-width: 11px;
+  margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+  left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+  right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+  left: 14px;
+}
+
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+  bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+  border-bottom-color: #ffffff;
+  border-width: 10px;
+  margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+  border-bottom-color: #808080;
+  border-width: 11px;
+  margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+  left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+  right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+  left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+  left: 100%;
+}
+#powerTip.e:after {
+  border-left-color: #ffffff;
+  border-width: 10px;
+  top: 50%;
+  margin-top: -10px;
+}
+#powerTip.e:before {
+  border-left-color: #808080;
+  border-width: 11px;
+  top: 50%;
+  margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+  right: 100%;
+}
+#powerTip.w:after {
+  border-right-color: #ffffff;
+  border-width: 10px;
+  top: 50%;
+  margin-top: -10px;
+}
+#powerTip.w:before {
+  border-right-color: #808080;
+  border-width: 11px;
+  top: 50%;
+  margin-top: -11px;
+}
+
+@media print
+{
+  #top { display: none; }
+  #side-nav { display: none; }
+  #nav-path { display: none; }
+  body { overflow:visible; }
+  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+  .summary { display: none; }
+  .memitem { page-break-inside: avoid; }
+  #doc-content
+  {
+    margin-left:0 !important;
+    height:auto !important;
+    width:auto !important;
+    overflow:inherit;
+    display:inline;
+  }
+}
diff --git a/doc/Doxygen/css/img/OpenFOAMlogo.png b/doc/Doxygen/css/img/OpenFOAMlogo.png
index aae8387f5ea2b443ea550f52e8bab62c4f19883e..6d9e2f698b4052636fad0c08cb0fbcb539fd2202 100644
Binary files a/doc/Doxygen/css/img/OpenFOAMlogo.png and b/doc/Doxygen/css/img/OpenFOAMlogo.png differ