http://git-wip-us.apache.org/repos/asf/james-project/blob/91fdf04a/src/homepage/assets/js/jquery.scrollex.min.js
----------------------------------------------------------------------
diff --git a/src/homepage/assets/js/jquery.scrollex.min.js 
b/src/homepage/assets/js/jquery.scrollex.min.js
new file mode 100644
index 0000000..c511a5c
--- /dev/null
+++ b/src/homepage/assets/js/jquery.scrollex.min.js
@@ -0,0 +1,2 @@
+/* jquery.scrollex v0.2.1 | (c) @ajlkn | github.com/ajlkn/jquery.scrollex | 
MIT licensed */
+!function(t){function e(t,e,n){return"string"==typeof 
t&&("%"==t.slice(-1)?t=parseInt(t.substring(0,t.length-1))/100*e:"vh"==t.slice(-2)?t=parseInt(t.substring(0,t.length-2))/100*n:"px"==t.slice(-2)&&(t=parseInt(t.substring(0,t.length-2)))),t}var
 n=t(window),i=1,o={};n.on("scroll",function(){var 
e=n.scrollTop();t.map(o,function(t){window.clearTimeout(t.timeoutId),t.timeoutId=window.setTimeout(function(){t.handler(e)},t.options.delay)})}).on("load",function(){n.trigger("scroll")}),jQuery.fn.scrollex=function(l){var
 s=t(this);if(0==this.length)return s;if(this.length>1){for(var 
r=0;r<this.length;r++)t(this[r]).scrollex(l);return 
s}if(s.data("_scrollexId"))return s;var 
a,u,h,c,p;switch(a=i++,u=jQuery.extend({top:0,bottom:0,delay:0,mode:"default",enter:null,leave:null,initialize:null,terminate:null,scroll:null},l),u.mode){case"top":h=function(t,e,n,i,o){return
 t>=i&&o>=t};break;case"bottom":h=function(t,e,n,i,o){return 
n>=i&&o>=n};break;case"middle":h=function(t,e,n,i,o){return e>=i&&o>
 =e};break;case"top-only":h=function(t,e,n,i,o){return 
i>=t&&n>=i};break;case"bottom-only":h=function(t,e,n,i,o){return 
n>=o&&o>=t};break;default:case"default":h=function(t,e,n,i,o){return 
n>=i&&o>=t}}return c=function(t){var 
i,o,l,s,r,a,u=this.state,h=!1,c=this.$element.offset();i=n.height(),o=t+i/2,l=t+i,s=this.$element.outerHeight(),r=c.top+e(this.options.top,s,i),a=c.top+s-e(this.options.bottom,s,i),h=this.test(t,o,l,r,a),h!=u&&(this.state=h,h?this.options.enter&&this.options.enter.apply(this.element):this.options.leave&&this.options.leave.apply(this.element)),this.options.scroll&&this.options.scroll.apply(this.element,[(o-r)/(a-r)])},p={id:a,options:u,test:h,handler:c,state:null,element:this,$element:s,timeoutId:null},o[a]=p,s.data("_scrollexId",p.id),p.options.initialize&&p.options.initialize.apply(this),s},jQuery.fn.unscrollex=function(){var
 e=t(this);if(0==this.length)return e;if(this.length>1){for(var 
n=0;n<this.length;n++)t(this[n]).unscrollex();return e}var i,l;return(i=e.
 data("_scrollexId"))?(l=o[i],window.clearTimeout(l.timeoutId),delete 
o[i],e.removeData("_scrollexId"),l.options.terminate&&l.options.terminate.apply(this),e):e}}(jQuery);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/91fdf04a/src/homepage/assets/js/jquery.scrolly.min.js
----------------------------------------------------------------------
diff --git a/src/homepage/assets/js/jquery.scrolly.min.js 
b/src/homepage/assets/js/jquery.scrolly.min.js
new file mode 100644
index 0000000..5d08850
--- /dev/null
+++ b/src/homepage/assets/js/jquery.scrolly.min.js
@@ -0,0 +1,2 @@
+/* jquery.scrolly v1.0.0-dev | (c) @ajlkn | MIT licensed */
+(function(e){function u(s,o){var u,a,f;if((u=e(s))[t]==0)return 
n;a=u[i]()[r];switch(o.anchor){case"middle":f=a-(e(window).height()-u.outerHeight())/2;break;default:case
 r:f=Math.max(a,0)}return typeof o[i]=="function"?f-=o[i]():f-=o[i],f}var 
t="length",n=null,r="top",i="offset",s="click.scrolly",o=e(window);e.fn.scrolly=function(i){var
 o,a,f,l,c=e(this);if(this[t]==0)return 
c;if(this[t]>1){for(o=0;o<this[t];o++)e(this[o]).scrolly(i);return 
c}l=n,f=c.attr("href");if(f.charAt(0)!="#"||f[t]<2)return 
c;a=jQuery.extend({anchor:r,easing:"swing",offset:0,parent:e("body,html"),pollOnce:!1,speed:1e3},i),a.pollOnce&&(l=u(f,a)),c.off(s).on(s,function(e){var
 
t=l!==n?l:u(f,a);t!==n&&(e.preventDefault(),a.parent.stop().animate({scrollTop:t},a.speed,a.easing))})}})(jQuery);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/91fdf04a/src/homepage/assets/js/lightbox.js
----------------------------------------------------------------------
diff --git a/src/homepage/assets/js/lightbox.js 
b/src/homepage/assets/js/lightbox.js
new file mode 100644
index 0000000..352bb86
--- /dev/null
+++ b/src/homepage/assets/js/lightbox.js
@@ -0,0 +1,453 @@
+/*!
+ * Lightbox v2.8.2
+ * by Lokesh Dhakar
+ *
+ * More info:
+ * http://lokeshdhakar.com/projects/lightbox2/
+ *
+ * Copyright 2007, 2015 Lokesh Dhakar
+ * Released under the MIT license
+ * https://github.com/lokesh/lightbox2/blob/master/LICENSE
+ */
+
+// Uses Node, AMD or browser globals to create a module.
+(function (root, factory) {
+    if (typeof define === 'function' && define.amd) {
+        // AMD. Register as an anonymous module.
+        define(['jquery'], factory);
+    } else if (typeof exports === 'object') {
+        // Node. Does not work with strict CommonJS, but
+        // only CommonJS-like environments that support module.exports,
+        // like Node.
+        module.exports = factory(require('jquery'));
+    } else {
+        // Browser globals (root is window)
+        root.lightbox = factory(root.jQuery);
+    }
+}(this, function ($) {
+
+  function Lightbox(options) {
+    this.album = [];
+    this.currentImageIndex = void 0;
+    this.init();
+
+    // options
+    this.options = $.extend({}, this.constructor.defaults);
+    this.option(options);
+  }
+
+  // Descriptions of all options available on the demo site:
+  // http://lokeshdhakar.com/projects/lightbox2/index.html#options
+  Lightbox.defaults = {
+    albumLabel: 'Image %1 of %2',
+    alwaysShowNavOnTouchDevices: false,
+    fadeDuration: 500,
+    fitImagesInViewport: true,
+    // maxWidth: 800,
+    // maxHeight: 600,
+    positionFromTop: 50,
+    resizeDuration: 700,
+    showImageNumberLabel: true,
+    wrapAround: false,
+    disableScrolling: false
+  };
+
+  Lightbox.prototype.option = function(options) {
+    $.extend(this.options, options);
+  };
+
+  Lightbox.prototype.imageCountLabel = function(currentImageNum, totalImages) {
+    return this.options.albumLabel.replace(/%1/g, 
currentImageNum).replace(/%2/g, totalImages);
+  };
+
+  Lightbox.prototype.init = function() {
+    this.enable();
+    this.build();
+  };
+
+  // Loop through anchors and areamaps looking for either data-lightbox 
attributes or rel attributes
+  // that contain 'lightbox'. When these are clicked, start lightbox.
+  Lightbox.prototype.enable = function() {
+    var self = this;
+    $('body').on('click', 'a[rel^=lightbox], area[rel^=lightbox], 
a[data-lightbox], area[data-lightbox]', function(event) {
+      self.start($(event.currentTarget));
+      return false;
+    });
+  };
+
+  // Build html for the lightbox and the overlay.
+  // Attach event handlers to the new DOM elements. click click click
+  Lightbox.prototype.build = function() {
+    var self = this;
+    $('<div id="lightboxOverlay" class="lightboxOverlay"></div><div 
id="lightbox" class="lightbox"><div class="lb-outerContainer"><div 
class="lb-container"><img class="lb-image" 
src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="
 /><div class="lb-nav"><a class="lb-prev" href="" ></a><a class="lb-next" 
href="" ></a></div><div class="lb-loader"><a 
class="lb-cancel"></a></div></div></div><div class="lb-dataContainer"><div 
class="lb-data"><div class="lb-details"><span class="lb-caption"></span><span 
class="lb-number"></span></div><div class="lb-closeContainer"><a 
class="lb-close"></a></div></div></div></div>').appendTo($('body'));
+
+    // Cache jQuery objects
+    this.$lightbox       = $('#lightbox');
+    this.$overlay        = $('#lightboxOverlay');
+    this.$outerContainer = this.$lightbox.find('.lb-outerContainer');
+    this.$container      = this.$lightbox.find('.lb-container');
+
+    // Store css values for future lookup
+    this.containerTopPadding = parseInt(this.$container.css('padding-top'), 
10);
+    this.containerRightPadding = 
parseInt(this.$container.css('padding-right'), 10);
+    this.containerBottomPadding = 
parseInt(this.$container.css('padding-bottom'), 10);
+    this.containerLeftPadding = parseInt(this.$container.css('padding-left'), 
10);
+
+    // Attach event handlers to the newly minted DOM elements
+    this.$overlay.hide().on('click', function() {
+      self.end();
+      return false;
+    });
+
+    this.$lightbox.hide().on('click', function(event) {
+      if ($(event.target).attr('id') === 'lightbox') {
+        self.end();
+      }
+      return false;
+    });
+
+    this.$outerContainer.on('click', function(event) {
+      if ($(event.target).attr('id') === 'lightbox') {
+        self.end();
+      }
+      return false;
+    });
+
+    this.$lightbox.find('.lb-prev').on('click', function() {
+      if (self.currentImageIndex === 0) {
+        self.changeImage(self.album.length - 1);
+      } else {
+        self.changeImage(self.currentImageIndex - 1);
+      }
+      return false;
+    });
+
+    this.$lightbox.find('.lb-next').on('click', function() {
+      if (self.currentImageIndex === self.album.length - 1) {
+        self.changeImage(0);
+      } else {
+        self.changeImage(self.currentImageIndex + 1);
+      }
+      return false;
+    });
+
+    this.$lightbox.find('.lb-loader, .lb-close').on('click', function() {
+      self.end();
+      return false;
+    });
+  };
+
+  // Show overlay and lightbox. If the image is part of a set, add siblings to 
album array.
+  Lightbox.prototype.start = function($link) {
+    var self    = this;
+    var $window = $(window);
+
+    $window.on('resize', $.proxy(this.sizeOverlay, this));
+
+    $('select, object, embed').css({
+      visibility: 'hidden'
+    });
+
+    this.sizeOverlay();
+
+    this.album = [];
+    var imageNumber = 0;
+
+    function addToAlbum($link) {
+      self.album.push({
+        link: $link.attr('href'),
+        title: $link.attr('data-title') || $link.attr('title')
+      });
+    }
+
+    // Support both data-lightbox attribute and rel attribute implementations
+    var dataLightboxValue = $link.attr('data-lightbox');
+    var $links;
+
+    if (dataLightboxValue) {
+      $links = $($link.prop('tagName') + '[data-lightbox="' + 
dataLightboxValue + '"]');
+      for (var i = 0; i < $links.length; i = ++i) {
+        addToAlbum($($links[i]));
+        if ($links[i] === $link[0]) {
+          imageNumber = i;
+        }
+      }
+    } else {
+      if ($link.attr('rel') === 'lightbox') {
+        // If image is not part of a set
+        addToAlbum($link);
+      } else {
+        // If image is part of a set
+        $links = $($link.prop('tagName') + '[rel="' + $link.attr('rel') + 
'"]');
+        for (var j = 0; j < $links.length; j = ++j) {
+          addToAlbum($($links[j]));
+          if ($links[j] === $link[0]) {
+            imageNumber = j;
+          }
+        }
+      }
+    }
+
+    // Position Lightbox
+    var top  = $window.scrollTop() + this.options.positionFromTop;
+    var left = $window.scrollLeft();
+    this.$lightbox.css({
+      top: top + 'px',
+      left: left + 'px'
+    }).fadeIn(this.options.fadeDuration);
+
+    // Disable scrolling of the page while open
+    if (this.options.disableScrolling) {
+      $('body').addClass('lb-disable-scrolling');
+    }
+
+    this.changeImage(imageNumber);
+  };
+
+  // Hide most UI elements in preparation for the animated resizing of the 
lightbox.
+  Lightbox.prototype.changeImage = function(imageNumber) {
+    var self = this;
+
+    this.disableKeyboardNav();
+    var $image = this.$lightbox.find('.lb-image');
+
+    this.$overlay.fadeIn(this.options.fadeDuration);
+
+    $('.lb-loader').fadeIn('slow');
+    this.$lightbox.find('.lb-image, .lb-nav, .lb-prev, .lb-next, 
.lb-dataContainer, .lb-numbers, .lb-caption').hide();
+
+    this.$outerContainer.addClass('animating');
+
+    // When image to show is preloaded, we send the width and height to 
sizeContainer()
+    var preloader = new Image();
+    preloader.onload = function() {
+      var $preloader;
+      var imageHeight;
+      var imageWidth;
+      var maxImageHeight;
+      var maxImageWidth;
+      var windowHeight;
+      var windowWidth;
+
+      $image.attr('src', self.album[imageNumber].link);
+
+      $preloader = $(preloader);
+
+      $image.width(preloader.width);
+      $image.height(preloader.height);
+
+      if (self.options.fitImagesInViewport) {
+        // Fit image inside the viewport.
+        // Take into account the border around the image and an additional 
10px gutter on each side.
+
+        windowWidth    = $(window).width();
+        windowHeight   = $(window).height();
+        maxImageWidth  = windowWidth - self.containerLeftPadding - 
self.containerRightPadding - 20;
+        maxImageHeight = windowHeight - self.containerTopPadding - 
self.containerBottomPadding - 120;
+
+        // Check if image size is larger then maxWidth|maxHeight in settings
+        if (self.options.maxWidth && self.options.maxWidth < maxImageWidth) {
+          maxImageWidth = self.options.maxWidth;
+        }
+        if (self.options.maxHeight && self.options.maxHeight < maxImageWidth) {
+          maxImageHeight = self.options.maxHeight;
+        }
+
+        // Is there a fitting issue?
+        if ((preloader.width > maxImageWidth) || (preloader.height > 
maxImageHeight)) {
+          if ((preloader.width / maxImageWidth) > (preloader.height / 
maxImageHeight)) {
+            imageWidth  = maxImageWidth;
+            imageHeight = parseInt(preloader.height / (preloader.width / 
imageWidth), 10);
+            $image.width(imageWidth);
+            $image.height(imageHeight);
+          } else {
+            imageHeight = maxImageHeight;
+            imageWidth = parseInt(preloader.width / (preloader.height / 
imageHeight), 10);
+            $image.width(imageWidth);
+            $image.height(imageHeight);
+          }
+        }
+      }
+      self.sizeContainer($image.width(), $image.height());
+    };
+
+    preloader.src          = this.album[imageNumber].link;
+    this.currentImageIndex = imageNumber;
+  };
+
+  // Stretch overlay to fit the viewport
+  Lightbox.prototype.sizeOverlay = function() {
+    this.$overlay
+      .width($(document).width())
+      .height($(document).height());
+  };
+
+  // Animate the size of the lightbox to fit the image we are showing
+  Lightbox.prototype.sizeContainer = function(imageWidth, imageHeight) {
+    var self = this;
+
+    var oldWidth  = this.$outerContainer.outerWidth();
+    var oldHeight = this.$outerContainer.outerHeight();
+    var newWidth  = imageWidth + this.containerLeftPadding + 
this.containerRightPadding;
+    var newHeight = imageHeight + this.containerTopPadding + 
this.containerBottomPadding;
+
+    function postResize() {
+      self.$lightbox.find('.lb-dataContainer').width(newWidth);
+      self.$lightbox.find('.lb-prevLink').height(newHeight);
+      self.$lightbox.find('.lb-nextLink').height(newHeight);
+      self.showImage();
+    }
+
+    if (oldWidth !== newWidth || oldHeight !== newHeight) {
+      this.$outerContainer.animate({
+        width: newWidth,
+        height: newHeight
+      }, this.options.resizeDuration, 'swing', function() {
+        postResize();
+      });
+    } else {
+      postResize();
+    }
+  };
+
+  // Display the image and its details and begin preload neighboring images.
+  Lightbox.prototype.showImage = function() {
+    this.$lightbox.find('.lb-loader').stop(true).hide();
+    this.$lightbox.find('.lb-image').fadeIn('slow');
+
+    this.updateNav();
+    this.updateDetails();
+    this.preloadNeighboringImages();
+    this.enableKeyboardNav();
+  };
+
+  // Display previous and next navigation if appropriate.
+  Lightbox.prototype.updateNav = function() {
+    // Check to see if the browser supports touch events. If so, we take the 
conservative approach
+    // and assume that mouse hover events are not supported and always show 
prev/next navigation
+    // arrows in image sets.
+    var alwaysShowNav = false;
+    try {
+      document.createEvent('TouchEvent');
+      alwaysShowNav = (this.options.alwaysShowNavOnTouchDevices) ? true : 
false;
+    } catch (e) {}
+
+    this.$lightbox.find('.lb-nav').show();
+
+    if (this.album.length > 1) {
+      if (this.options.wrapAround) {
+        if (alwaysShowNav) {
+          this.$lightbox.find('.lb-prev, .lb-next').css('opacity', '1');
+        }
+        this.$lightbox.find('.lb-prev, .lb-next').show();
+      } else {
+        if (this.currentImageIndex > 0) {
+          this.$lightbox.find('.lb-prev').show();
+          if (alwaysShowNav) {
+            this.$lightbox.find('.lb-prev').css('opacity', '1');
+          }
+        }
+        if (this.currentImageIndex < this.album.length - 1) {
+          this.$lightbox.find('.lb-next').show();
+          if (alwaysShowNav) {
+            this.$lightbox.find('.lb-next').css('opacity', '1');
+          }
+        }
+      }
+    }
+  };
+
+  // Display caption, image number, and closing button.
+  Lightbox.prototype.updateDetails = function() {
+    var self = this;
+
+    // Enable anchor clicks in the injected caption html.
+    // Thanks Nate Wright for the fix. @https://github.com/NateWr
+    if (typeof this.album[this.currentImageIndex].title !== 'undefined' &&
+      this.album[this.currentImageIndex].title !== '') {
+      this.$lightbox.find('.lb-caption')
+        .html(this.album[this.currentImageIndex].title)
+        .fadeIn('fast')
+        .find('a').on('click', function(event) {
+          if ($(this).attr('target') !== undefined) {
+            window.open($(this).attr('href'), $(this).attr('target'));
+          } else {
+            location.href = $(this).attr('href');
+          }
+        });
+    }
+
+    if (this.album.length > 1 && this.options.showImageNumberLabel) {
+      var labelText = this.imageCountLabel(this.currentImageIndex + 1, 
this.album.length);
+      this.$lightbox.find('.lb-number').text(labelText).fadeIn('fast');
+    } else {
+      this.$lightbox.find('.lb-number').hide();
+    }
+
+    this.$outerContainer.removeClass('animating');
+
+    
this.$lightbox.find('.lb-dataContainer').fadeIn(this.options.resizeDuration, 
function() {
+      return self.sizeOverlay();
+    });
+  };
+
+  // Preload previous and next images in set.
+  Lightbox.prototype.preloadNeighboringImages = function() {
+    if (this.album.length > this.currentImageIndex + 1) {
+      var preloadNext = new Image();
+      preloadNext.src = this.album[this.currentImageIndex + 1].link;
+    }
+    if (this.currentImageIndex > 0) {
+      var preloadPrev = new Image();
+      preloadPrev.src = this.album[this.currentImageIndex - 1].link;
+    }
+  };
+
+  Lightbox.prototype.enableKeyboardNav = function() {
+    $(document).on('keyup.keyboard', $.proxy(this.keyboardAction, this));
+  };
+
+  Lightbox.prototype.disableKeyboardNav = function() {
+    $(document).off('.keyboard');
+  };
+
+  Lightbox.prototype.keyboardAction = function(event) {
+    var KEYCODE_ESC        = 27;
+    var KEYCODE_LEFTARROW  = 37;
+    var KEYCODE_RIGHTARROW = 39;
+
+    var keycode = event.keyCode;
+    var key     = String.fromCharCode(keycode).toLowerCase();
+    if (keycode === KEYCODE_ESC || key.match(/x|o|c/)) {
+      this.end();
+    } else if (key === 'p' || keycode === KEYCODE_LEFTARROW) {
+      if (this.currentImageIndex !== 0) {
+        this.changeImage(this.currentImageIndex - 1);
+      } else if (this.options.wrapAround && this.album.length > 1) {
+        this.changeImage(this.album.length - 1);
+      }
+    } else if (key === 'n' || keycode === KEYCODE_RIGHTARROW) {
+      if (this.currentImageIndex !== this.album.length - 1) {
+        this.changeImage(this.currentImageIndex + 1);
+      } else if (this.options.wrapAround && this.album.length > 1) {
+        this.changeImage(0);
+      }
+    }
+  };
+
+  // Closing time. :-(
+  Lightbox.prototype.end = function() {
+    this.disableKeyboardNav();
+    $(window).off('resize', this.sizeOverlay);
+    this.$lightbox.fadeOut(this.options.fadeDuration);
+    this.$overlay.fadeOut(this.options.fadeDuration);
+    $('select, object, embed').css({
+      visibility: 'visible'
+    });
+    if (this.options.disableScrolling) {
+      $('body').removeClass('lb-disable-scrolling');
+    }
+  };
+
+  return new Lightbox();
+}));

http://git-wip-us.apache.org/repos/asf/james-project/blob/91fdf04a/src/homepage/assets/js/main.js
----------------------------------------------------------------------
diff --git a/src/homepage/assets/js/main.js b/src/homepage/assets/js/main.js
new file mode 100644
index 0000000..83b8f82
--- /dev/null
+++ b/src/homepage/assets/js/main.js
@@ -0,0 +1,139 @@
+/*
+       Stellar by HTML5 UP
+       html5up.net | @ajlkn
+       Free for personal and commercial use under the CCA 3.0 license 
(html5up.net/license)
+*/
+
+(function($) {
+
+       skel.breakpoints({
+               xlarge: '(max-width: 1680px)',
+               large: '(max-width: 1280px)',
+               medium: '(max-width: 980px)',
+               small: '(max-width: 736px)',
+               xsmall: '(max-width: 480px)',
+               xxsmall: '(max-width: 360px)'
+       });
+
+       $(function() {
+
+               var     $window = $(window),
+                       $body = $('body'),
+                       $main = $('#main');
+
+               // Disable animations/transitions until the page has loaded.
+                       $body.addClass('is-loading');
+
+                       $window.on('load', function() {
+                               window.setTimeout(function() {
+                                       $body.removeClass('is-loading');
+                               }, 100);
+                       });
+
+               // Fix: Placeholder polyfill.
+                       $('form').placeholder();
+
+               // Prioritize "important" elements on medium.
+                       skel.on('+medium -medium', function() {
+                               $.prioritize(
+                                       '.important\\28 medium\\29',
+                                       skel.breakpoint('medium').active
+                               );
+                       });
+
+               // Nav.
+                       var $nav = $('#nav');
+
+                       if ($nav.length > 0) {
+
+                               // Shrink effect.
+                                       $main
+                                               .scrollex({
+                                                       mode: 'top',
+                                                       enter: function() {
+                                                               
$nav.addClass('alt');
+                                                       },
+                                                       leave: function() {
+                                                               
$nav.removeClass('alt');
+                                                       },
+                                               });
+
+                               // Links.
+                                       var $nav_a = $nav.find('a');
+
+                                       $nav_a
+                                               .scrolly({
+                                                       speed: 1000,
+                                                       offset: function() { 
return $nav.height(); }
+                                               })
+                                               .on('click', function() {
+
+                                                       var $this = $(this);
+
+                                                       // External link? Bail.
+                                                               if 
($this.attr('href').charAt(0) != '#')
+                                                                       return;
+
+                                                       // Deactivate all links.
+                                                               $nav_a
+                                                                       
.removeClass('active')
+                                                                       
.removeClass('active-locked');
+
+                                                       // Activate link *and* 
lock it (so Scrollex doesn't try to activate other links as we're scrolling to 
this one's section).
+                                                               $this
+                                                                       
.addClass('active')
+                                                                       
.addClass('active-locked');
+
+                                               })
+                                               .each(function() {
+
+                                                       var     $this = $(this),
+                                                               id = 
$this.attr('href'),
+                                                               $section = 
$(id);
+
+                                                       // No section for this 
link? Bail.
+                                                               if 
($section.length < 1)
+                                                                       return;
+
+                                                       // Scrollex.
+                                                               
$section.scrollex({
+                                                                       mode: 
'middle',
+                                                                       
initialize: function() {
+
+                                                                               
// Deactivate section.
+                                                                               
        if (skel.canUse('transition'))
+                                                                               
                $section.addClass('inactive');
+
+                                                                       },
+                                                                       enter: 
function() {
+
+                                                                               
// Activate section.
+                                                                               
        $section.removeClass('inactive');
+
+                                                                               
// No locked links? Deactivate all links and activate this section's one.
+                                                                               
        if ($nav_a.filter('.active-locked').length == 0) {
+
+                                                                               
                $nav_a.removeClass('active');
+                                                                               
                $this.addClass('active');
+
+                                                                               
        }
+
+                                                                               
// Otherwise, if this section's link is the one that's locked, unlock it.
+                                                                               
        else if ($this.hasClass('active-locked'))
+                                                                               
                $this.removeClass('active-locked');
+
+                                                                       }
+                                                               });
+
+                                               });
+
+                       }
+
+               // Scrolly.
+                       $('.scrolly').scrolly({
+                               speed: 1000
+                       });
+
+       });
+
+})(jQuery);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/91fdf04a/src/homepage/assets/js/skel.min.js
----------------------------------------------------------------------
diff --git a/src/homepage/assets/js/skel.min.js 
b/src/homepage/assets/js/skel.min.js
new file mode 100644
index 0000000..6ca4bf1
--- /dev/null
+++ b/src/homepage/assets/js/skel.min.js
@@ -0,0 +1,2 @@
+/* skel.js v3.0.1 | (c) skel.io | MIT licensed */
+var skel=function(){"use strict";var 
t={breakpointIds:null,events:{},isInit:!1,obj:{attachments:{},breakpoints:{},head:null,states:{}},sd:"/",state:null,stateHandlers:{},stateId:"",vars:{},DOMReady:null,indexOf:null,isArray:null,iterate:null,matchesMedia:null,extend:function(e,n){t.iterate(n,function(i){t.isArray(n[i])?(t.isArray(e[i])||(e[i]=[]),t.extend(e[i],n[i])):"object"==typeof
 n[i]?("object"!=typeof 
e[i]&&(e[i]={}),t.extend(e[i],n[i])):e[i]=n[i]})},newStyle:function(t){var 
e=document.createElement("style");return 
e.type="text/css",e.innerHTML=t,e},_canUse:null,canUse:function(e){t._canUse||(t._canUse=document.createElement("div"));var
 n=t._canUse.style,i=e.charAt(0).toUpperCase()+e.slice(1);return e in 
n||"Moz"+i in n||"Webkit"+i in n||"O"+i in n||"ms"+i in n},on:function(e,n){var 
i=e.split(/[\s]+/);return t.iterate(i,function(e){var 
a=i[e];if(t.isInit){if("init"==a)return void n();if("change"==a)n();else{var 
r=a.charAt(0);if("+"==r||"!"==r){var o=a.substring(1);if(o in t.obj
 .breakpoints)if("+"==r&&t.obj.breakpoints[o].active)n();else 
if("!"==r&&!t.obj.breakpoints[o].active)return void 
n()}}}t.events[a]||(t.events[a]=[]),t.events[a].push(n)}),t},trigger:function(e){return
 
t.events[e]&&0!=t.events[e].length?(t.iterate(t.events[e],function(n){t.events[e][n]()}),t):void
 0},breakpoint:function(e){return 
t.obj.breakpoints[e]},breakpoints:function(e){function 
n(t,e){this.name=this.id=t,this.media=e,this.active=!1,this.wasActive=!1}return 
n.prototype.matches=function(){return 
t.matchesMedia(this.media)},n.prototype.sync=function(){this.wasActive=this.active,this.active=this.matches()},t.iterate(e,function(i){t.obj.breakpoints[i]=new
 
n(i,e[i])}),window.setTimeout(function(){t.poll()},0),t},addStateHandler:function(e,n){t.stateHandlers[e]=n},callStateHandler:function(e){var
 
n=t.stateHandlers[e]();t.iterate(n,function(e){t.state.attachments.push(n[e])})},changeState:function(e){t.iterate(t.obj.breakpoints,function(e){t.obj.breakpoints[e].sync()}),t.vars.lastState
 
Id=t.stateId,t.stateId=e,t.breakpointIds=t.stateId===t.sd?[]:t.stateId.substring(1).split(t.sd),t.obj.states[t.stateId]?t.state=t.obj.states[t.stateId]:(t.obj.states[t.stateId]={attachments:[]},t.state=t.obj.states[t.stateId],t.iterate(t.stateHandlers,t.callStateHandler)),t.detachAll(t.state.attachments),t.attachAll(t.state.attachments),t.vars.stateId=t.stateId,t.vars.state=t.state,t.trigger("change"),t.iterate(t.obj.breakpoints,function(e){t.obj.breakpoints[e].active?t.obj.breakpoints[e].wasActive||t.trigger("+"+e):t.obj.breakpoints[e].wasActive&&t.trigger("-"+e)})},generateStateConfig:function(e,n){var
 i={};return 
t.extend(i,e),t.iterate(t.breakpointIds,function(e){t.extend(i,n[t.breakpointIds[e]])}),i},getStateId:function(){var
 e="";return t.iterate(t.obj.breakpoints,function(n){var 
i=t.obj.breakpoints[n];i.matches()&&(e+=t.sd+i.id)}),e},poll:function(){var 
e="";e=t.getStateId(),""===e&&(e=t.sd),e!==t.stateId&&t.changeState(e)},_attach:null,attach:function(e){var
 n=t.obj.head,i=e
 .element;return 
i.parentNode&&i.parentNode.tagName?!1:(t._attach||(t._attach=n.firstChild),n.insertBefore(i,t._attach.nextSibling),e.permanent&&(t._attach=i),!0)},attachAll:function(e){var
 
n=[];t.iterate(e,function(t){n[e[t].priority]||(n[e[t].priority]=[]),n[e[t].priority].push(e[t])}),n.reverse(),t.iterate(n,function(e){t.iterate(n[e],function(i){t.attach(n[e][i])})})},detach:function(t){var
 e=t.element;return 
t.permanent||!e.parentNode||e.parentNode&&!e.parentNode.tagName?!1:(e.parentNode.removeChild(e),!0)},detachAll:function(e){var
 
n={};t.iterate(e,function(t){n[e[t].id]=!0}),t.iterate(t.obj.attachments,function(e){e
 in n||t.detach(t.obj.attachments[e])})},attachment:function(e){return e in 
t.obj.attachments?t.obj.attachments[e]:null},newAttachment:function(e,n,i,a){return
 
t.obj.attachments[e]={id:e,element:n,priority:i,permanent:a}},init:function(){t.initMethods(),t.initVars(),t.initEvents(),t.obj.head=document.getElementsByTagName("head")[0],t.isInit=!0,t.trigger("init")},ini
 
tEvents:function(){t.on("resize",function(){t.poll()}),t.on("orientationChange",function(){t.poll()}),t.DOMReady(function(){t.trigger("ready")}),window.onload&&t.on("load",window.onload),window.onload=function(){t.trigger("load")},window.onresize&&t.on("resize",window.onresize),window.onresize=function(){t.trigger("resize")},window.onorientationchange&&t.on("orientationChange",window.onorientationchange),window.onorientationchange=function(){t.trigger("orientationChange")}},initMethods:function(){document.addEventListener?!function(e,n){t.DOMReady=n()}("domready",function(){function
 t(t){for(r=1;t=n.shift();)t()}var 
e,n=[],i=document,a="DOMContentLoaded",r=/^loaded|^c/.test(i.readyState);return 
i.addEventListener(a,e=function(){i.removeEventListener(a,e),t()}),function(t){r?t():n.push(t)}}):!function(e,n){t.DOMReady=n()}("domready",function(t){function
 e(t){for(h=1;t=i.shift();)t()}var 
n,i=[],a=!1,r=document,o=r.documentElement,s=o.doScroll,c="DOMContentLoaded",d="addEventListener",
 
u="onreadystatechange",l="readyState",f=s?/^loaded|^c/:/^loaded|c/,h=f.test(r[l]);return
 
r[d]&&r[d](c,n=function(){r.removeEventListener(c,n,a),e()},a),s&&r.attachEvent(u,n=function(){/^c/.test(r[l])&&(r.detachEvent(u,n),e())}),t=s?function(e){self!=top?h?e():i.push(e):function(){try{o.doScroll("left")}catch(n){return
 
setTimeout(function(){t(e)},50)}e()}()}:function(t){h?t():i.push(t)}}),Array.prototype.indexOf?t.indexOf=function(t,e){return
 t.indexOf(e)}:t.indexOf=function(t,e){if("string"==typeof t)return 
t.indexOf(e);var n,i,a=e?e:0;if(!this)throw new 
TypeError;if(i=this.length,0===i||a>=i)return-1;for(0>a&&(a=i-Math.abs(a)),n=a;i>n;n++)if(this[n]===t)return
 n;return-1},Array.isArray?t.isArray=function(t){return 
Array.isArray(t)}:t.isArray=function(t){return"[object 
Array]"===Object.prototype.toString.call(t)},Object.keys?t.iterate=function(t,e){if(!t)return[];var
 
n,i=Object.keys(t);for(n=0;i[n]&&e(i[n],t[i[n]])!==!1;n++);}:t.iterate=function(t,e){if(!t)return[];var
 n;for(n in t)
 
if(Object.prototype.hasOwnProperty.call(t,n)&&e(n,t[n])===!1)break},window.matchMedia?t.matchesMedia=function(t){return""==t?!0:window.matchMedia(t).matches}:window.styleMedia||window.media?t.matchesMedia=function(t){if(""==t)return!0;var
 e=window.styleMedia||window.media;return 
e.matchMedium(t||"all")}:window.getComputedStyle?t.matchesMedia=function(t){if(""==t)return!0;var
 
e=document.createElement("style"),n=document.getElementsByTagName("script")[0],i=null;e.type="text/css",e.id="matchmediajs-test",n.parentNode.insertBefore(e,n),i="getComputedStyle"in
 window&&window.getComputedStyle(e,null)||e.currentStyle;var a="@media "+t+"{ 
#matchmediajs-test { width: 1px; } }";return 
e.styleSheet?e.styleSheet.cssText=a:e.textContent=a,"1px"===i.width}:t.matchesMedia=function(t){if(""==t)return!0;var
 
e,n,i,a,r={"min-width":null,"max-width":null},o=!1;for(i=t.split(/\s+and\s+/),e=0;e<i.length;e++)n=i[e],"("==n.charAt(0)&&(n=n.substring(1,n.length-1),a=n.split(/:\s+/),2==a.length&&(r[a[0].replac
 e(/^\s+|\s+$/g,"")]=parseInt(a[1]),o=!0));if(!o)return!1;var 
s=document.documentElement.clientWidth,c=document.documentElement.clientHeight;return
 
null!==r["min-width"]&&s<r["min-width"]||null!==r["max-width"]&&s>r["max-width"]||null!==r["min-height"]&&c<r["min-height"]||null!==r["max-height"]&&c>r["max-height"]?!1:!0},navigator.userAgent.match(/MSIE
 ([0-9]+)/)&&RegExp.$1<9&&(t.newStyle=function(t){var 
e=document.createElement("span");return e.innerHTML='&nbsp;<style 
type="text/css">'+t+"</style>",e})},initVars:function(){var 
e,n,i,a=navigator.userAgent;e="other",n=0,i=[["firefox",/Firefox\/([0-9\.]+)/],["bb",/BlackBerry.+Version\/([0-9\.]+)/],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/],["opera",/OPR\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)/],["edge",/Edge\/([0-9\.]+)/],["safari",/Version\/([0-9\.]+).+Safari/],["chrome",/Chrome\/([0-9\.]+)/],["ie",/MSIE
 ([0-9]+)/],["ie",/Trident\/.+rv:([0-9]+)/]],t.iterate(i,function(t,i){return 
a.match(i[1])?(e=i[0],n=parseFloat(RegExp.$1),!1):void 0})
 ,t.vars.browser=e,t.vars.browserVersion=n,e="other",n=0,i=[["ios",/([0-9_]+) 
like Mac OS X/,function(t){return 
t.replace("_",".").replace("_","")}],["ios",/CPU like Mac OS 
X/,function(t){return 0}],["wp",/Windows Phone 
([0-9\.]+)/,null],["android",/Android ([0-9\.]+)/,null],["mac",/Macintosh.+Mac 
OS X ([0-9_]+)/,function(t){return 
t.replace("_",".").replace("_","")}],["windows",/Windows NT 
([0-9\.]+)/,null],["bb",/BlackBerry.+Version\/([0-9\.]+)/,null],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/,null]],t.iterate(i,function(t,i){return
 a.match(i[1])?(e=i[0],n=parseFloat(i[2]?i[2](RegExp.$1):RegExp.$1),!1):void 
0}),t.vars.os=e,t.vars.osVersion=n,t.vars.IEVersion="ie"==t.vars.browser?t.vars.browserVersion:99,t.vars.touch="wp"==t.vars.os?navigator.msMaxTouchPoints>0:!!("ontouchstart"in
 
window),t.vars.mobile="wp"==t.vars.os||"android"==t.vars.os||"ios"==t.vars.os||"bb"==t.vars.os}};return
 t.init(),t}();!function(t,e){"function"==typeof 
define&&define.amd?define([],e):"object"==typeof exports?m
 odule.exports=e():t.skel=e()}(this,function(){return skel});

http://git-wip-us.apache.org/repos/asf/james-project/blob/91fdf04a/src/homepage/assets/js/util.js
----------------------------------------------------------------------
diff --git a/src/homepage/assets/js/util.js b/src/homepage/assets/js/util.js
new file mode 100644
index 0000000..ecf7b37
--- /dev/null
+++ b/src/homepage/assets/js/util.js
@@ -0,0 +1,587 @@
+(function($) {
+
+       /**
+        * Generate an indented list of links from a nav. Meant for use with 
panel().
+        * @return {jQuery} jQuery object.
+        */
+       $.fn.navList = function() {
+
+               var     $this = $(this);
+                       $a = $this.find('a'),
+                       b = [];
+
+               $a.each(function() {
+
+                       var     $this = $(this),
+                               indent = Math.max(0, $this.parents('li').length 
- 1),
+                               href = $this.attr('href'),
+                               target = $this.attr('target');
+
+                       b.push(
+                               '<a ' +
+                                       'class="link depth-' + indent + '"' +
+                                       ( (typeof target !== 'undefined' && 
target != '') ? ' target="' + target + '"' : '') +
+                                       ( (typeof href !== 'undefined' && href 
!= '') ? ' href="' + href + '"' : '') +
+                               '>' +
+                                       '<span class="indent-' + indent + 
'"></span>' +
+                                       $this.text() +
+                               '</a>'
+                       );
+
+               });
+
+               return b.join('');
+
+       };
+
+       /**
+        * Panel-ify an element.
+        * @param {object} userConfig User config.
+        * @return {jQuery} jQuery object.
+        */
+       $.fn.panel = function(userConfig) {
+
+               // No elements?
+                       if (this.length == 0)
+                               return $this;
+
+               // Multiple elements?
+                       if (this.length > 1) {
+
+                               for (var i=0; i < this.length; i++)
+                                       $(this[i]).panel(userConfig);
+
+                               return $this;
+
+                       }
+
+               // Vars.
+                       var     $this = $(this),
+                               $body = $('body'),
+                               $window = $(window),
+                               id = $this.attr('id'),
+                               config;
+
+               // Config.
+                       config = $.extend({
+
+                               // Delay.
+                                       delay: 0,
+
+                               // Hide panel on link click.
+                                       hideOnClick: false,
+
+                               // Hide panel on escape keypress.
+                                       hideOnEscape: false,
+
+                               // Hide panel on swipe.
+                                       hideOnSwipe: false,
+
+                               // Reset scroll position on hide.
+                                       resetScroll: false,
+
+                               // Reset forms on hide.
+                                       resetForms: false,
+
+                               // Side of viewport the panel will appear.
+                                       side: null,
+
+                               // Target element for "class".
+                                       target: $this,
+
+                               // Class to toggle.
+                                       visibleClass: 'visible'
+
+                       }, userConfig);
+
+                       // Expand "target" if it's not a jQuery object already.
+                               if (typeof config.target != 'jQuery')
+                                       config.target = $(config.target);
+
+               // Panel.
+
+                       // Methods.
+                               $this._hide = function(event) {
+
+                                       // Already hidden? Bail.
+                                               if 
(!config.target.hasClass(config.visibleClass))
+                                                       return;
+
+                                       // If an event was provided, cancel it.
+                                               if (event) {
+
+                                                       event.preventDefault();
+                                                       event.stopPropagation();
+
+                                               }
+
+                                       // Hide.
+                                               
config.target.removeClass(config.visibleClass);
+
+                                       // Post-hide stuff.
+                                               window.setTimeout(function() {
+
+                                                       // Reset scroll 
position.
+                                                               if 
(config.resetScroll)
+                                                                       
$this.scrollTop(0);
+
+                                                       // Reset forms.
+                                                               if 
(config.resetForms)
+                                                                       
$this.find('form').each(function() {
+                                                                               
this.reset();
+                                                                       });
+
+                                               }, config.delay);
+
+                               };
+
+                       // Vendor fixes.
+                               $this
+                                       .css('-ms-overflow-style', 
'-ms-autohiding-scrollbar')
+                                       .css('-webkit-overflow-scrolling', 
'touch');
+
+                       // Hide on click.
+                               if (config.hideOnClick) {
+
+                                       $this.find('a')
+                                               
.css('-webkit-tap-highlight-color', 'rgba(0,0,0,0)');
+
+                                       $this
+                                               .on('click', 'a', 
function(event) {
+
+                                                       var $a = $(this),
+                                                               href = 
$a.attr('href'),
+                                                               target = 
$a.attr('target');
+
+                                                       if (!href || href == 
'#' || href == '' || href == '#' + id)
+                                                               return;
+
+                                                       // Cancel original 
event.
+                                                               
event.preventDefault();
+                                                               
event.stopPropagation();
+
+                                                       // Hide panel.
+                                                               $this._hide();
+
+                                                       // Redirect to href.
+                                                               
window.setTimeout(function() {
+
+                                                                       if 
(target == '_blank')
+                                                                               
window.open(href);
+                                                                       else
+                                                                               
window.location.href = href;
+
+                                                               }, config.delay 
+ 10);
+
+                                               });
+
+                               }
+
+                       // Event: Touch stuff.
+                               $this.on('touchstart', function(event) {
+
+                                       $this.touchPosX = 
event.originalEvent.touches[0].pageX;
+                                       $this.touchPosY = 
event.originalEvent.touches[0].pageY;
+
+                               })
+
+                               $this.on('touchmove', function(event) {
+
+                                       if ($this.touchPosX === null
+                                       ||      $this.touchPosY === null)
+                                               return;
+
+                                       var     diffX = $this.touchPosX - 
event.originalEvent.touches[0].pageX,
+                                               diffY = $this.touchPosY - 
event.originalEvent.touches[0].pageY,
+                                               th = $this.outerHeight(),
+                                               ts = ($this.get(0).scrollHeight 
- $this.scrollTop());
+
+                                       // Hide on swipe?
+                                               if (config.hideOnSwipe) {
+
+                                                       var result = false,
+                                                               boundary = 20,
+                                                               delta = 50;
+
+                                                       switch (config.side) {
+
+                                                               case 'left':
+                                                                       result 
= (diffY < boundary && diffY > (-1 * boundary)) && (diffX > delta);
+                                                                       break;
+
+                                                               case 'right':
+                                                                       result 
= (diffY < boundary && diffY > (-1 * boundary)) && (diffX < (-1 * delta));
+                                                                       break;
+
+                                                               case 'top':
+                                                                       result 
= (diffX < boundary && diffX > (-1 * boundary)) && (diffY > delta);
+                                                                       break;
+
+                                                               case 'bottom':
+                                                                       result 
= (diffX < boundary && diffX > (-1 * boundary)) && (diffY < (-1 * delta));
+                                                                       break;
+
+                                                               default:
+                                                                       break;
+
+                                                       }
+
+                                                       if (result) {
+
+                                                               $this.touchPosX 
= null;
+                                                               $this.touchPosY 
= null;
+                                                               $this._hide();
+
+                                                               return false;
+
+                                                       }
+
+                                               }
+
+                                       // Prevent vertical scrolling past the 
top or bottom.
+                                               if (($this.scrollTop() < 0 && 
diffY < 0)
+                                               || (ts > (th - 2) && ts < (th + 
2) && diffY > 0)) {
+
+                                                       event.preventDefault();
+                                                       event.stopPropagation();
+
+                                               }
+
+                               });
+
+                       // Event: Prevent certain events inside the panel from 
bubbling.
+                               $this.on('click touchend touchstart touchmove', 
function(event) {
+                                       event.stopPropagation();
+                               });
+
+                       // Event: Hide panel if a child anchor tag pointing to 
its ID is clicked.
+                               $this.on('click', 'a[href="#' + id + '"]', 
function(event) {
+
+                                       event.preventDefault();
+                                       event.stopPropagation();
+
+                                       
config.target.removeClass(config.visibleClass);
+
+                               });
+
+               // Body.
+
+                       // Event: Hide panel on body click/tap.
+                               $body.on('click touchend', function(event) {
+                                       $this._hide(event);
+                               });
+
+                       // Event: Toggle.
+                               $body.on('click', 'a[href="#' + id + '"]', 
function(event) {
+
+                                       event.preventDefault();
+                                       event.stopPropagation();
+
+                                       
config.target.toggleClass(config.visibleClass);
+
+                               });
+
+               // Window.
+
+                       // Event: Hide on ESC.
+                               if (config.hideOnEscape)
+                                       $window.on('keydown', function(event) {
+
+                                               if (event.keyCode == 27)
+                                                       $this._hide(event);
+
+                                       });
+
+               return $this;
+
+       };
+
+       /**
+        * Apply "placeholder" attribute polyfill to one or more forms.
+        * @return {jQuery} jQuery object.
+        */
+       $.fn.placeholder = function() {
+
+               // Browser natively supports placeholders? Bail.
+                       if (typeof 
(document.createElement('input')).placeholder != 'undefined')
+                               return $(this);
+
+               // No elements?
+                       if (this.length == 0)
+                               return $this;
+
+               // Multiple elements?
+                       if (this.length > 1) {
+
+                               for (var i=0; i < this.length; i++)
+                                       $(this[i]).placeholder();
+
+                               return $this;
+
+                       }
+
+               // Vars.
+                       var $this = $(this);
+
+               // Text, TextArea.
+                       $this.find('input[type=text],textarea')
+                               .each(function() {
+
+                                       var i = $(this);
+
+                                       if (i.val() == ''
+                                       ||  i.val() == i.attr('placeholder'))
+                                               i
+                                                       
.addClass('polyfill-placeholder')
+                                                       
.val(i.attr('placeholder'));
+
+                               })
+                               .on('blur', function() {
+
+                                       var i = $(this);
+
+                                       if 
(i.attr('name').match(/-polyfill-field$/))
+                                               return;
+
+                                       if (i.val() == '')
+                                               i
+                                                       
.addClass('polyfill-placeholder')
+                                                       
.val(i.attr('placeholder'));
+
+                               })
+                               .on('focus', function() {
+
+                                       var i = $(this);
+
+                                       if 
(i.attr('name').match(/-polyfill-field$/))
+                                               return;
+
+                                       if (i.val() == i.attr('placeholder'))
+                                               i
+                                                       
.removeClass('polyfill-placeholder')
+                                                       .val('');
+
+                               });
+
+               // Password.
+                       $this.find('input[type=password]')
+                               .each(function() {
+
+                                       var i = $(this);
+                                       var x = $(
+                                                               $('<div>')
+                                                                       
.append(i.clone())
+                                                                       
.remove()
+                                                                       .html()
+                                                                       
.replace(/type="password"/i, 'type="text"')
+                                                                       
.replace(/type=password/i, 'type=text')
+                                       );
+
+                                       if (i.attr('id') != '')
+                                               x.attr('id', i.attr('id') + 
'-polyfill-field');
+
+                                       if (i.attr('name') != '')
+                                               x.attr('name', i.attr('name') + 
'-polyfill-field');
+
+                                       x.addClass('polyfill-placeholder')
+                                               
.val(x.attr('placeholder')).insertAfter(i);
+
+                                       if (i.val() == '')
+                                               i.hide();
+                                       else
+                                               x.hide();
+
+                                       i
+                                               .on('blur', function(event) {
+
+                                                       event.preventDefault();
+
+                                                       var x = 
i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
+
+                                                       if (i.val() == '') {
+
+                                                               i.hide();
+                                                               x.show();
+
+                                                       }
+
+                                               });
+
+                                       x
+                                               .on('focus', function(event) {
+
+                                                       event.preventDefault();
+
+                                                       var i = 
x.parent().find('input[name=' + x.attr('name').replace('-polyfill-field', '') + 
']');
+
+                                                       x.hide();
+
+                                                       i
+                                                               .show()
+                                                               .focus();
+
+                                               })
+                                               .on('keypress', function(event) 
{
+
+                                                       event.preventDefault();
+                                                       x.val('');
+
+                                               });
+
+                               });
+
+               // Events.
+                       $this
+                               .on('submit', function() {
+
+                                       
$this.find('input[type=text],input[type=password],textarea')
+                                               .each(function(event) {
+
+                                                       var i = $(this);
+
+                                                       if 
(i.attr('name').match(/-polyfill-field$/))
+                                                               i.attr('name', 
'');
+
+                                                       if (i.val() == 
i.attr('placeholder')) {
+
+                                                               
i.removeClass('polyfill-placeholder');
+                                                               i.val('');
+
+                                                       }
+
+                                               });
+
+                               })
+                               .on('reset', function(event) {
+
+                                       event.preventDefault();
+
+                                       $this.find('select')
+                                               .val($('option:first').val());
+
+                                       $this.find('input,textarea')
+                                               .each(function() {
+
+                                                       var i = $(this),
+                                                               x;
+
+                                                       
i.removeClass('polyfill-placeholder');
+
+                                                       switch (this.type) {
+
+                                                               case 'submit':
+                                                               case 'reset':
+                                                                       break;
+
+                                                               case 'password':
+                                                                       
i.val(i.attr('defaultValue'));
+
+                                                                       x = 
i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
+
+                                                                       if 
(i.val() == '') {
+                                                                               
i.hide();
+                                                                               
x.show();
+                                                                       }
+                                                                       else {
+                                                                               
i.show();
+                                                                               
x.hide();
+                                                                       }
+
+                                                                       break;
+
+                                                               case 'checkbox':
+                                                               case 'radio':
+                                                                       
i.attr('checked', i.attr('defaultValue'));
+                                                                       break;
+
+                                                               case 'text':
+                                                               case 'textarea':
+                                                                       
i.val(i.attr('defaultValue'));
+
+                                                                       if 
(i.val() == '') {
+                                                                               
i.addClass('polyfill-placeholder');
+                                                                               
i.val(i.attr('placeholder'));
+                                                                       }
+
+                                                                       break;
+
+                                                               default:
+                                                                       
i.val(i.attr('defaultValue'));
+                                                                       break;
+
+                                                       }
+                                               });
+
+                               });
+
+               return $this;
+
+       };
+
+       /**
+        * Moves elements to/from the first positions of their respective 
parents.
+        * @param {jQuery} $elements Elements (or selector) to move.
+        * @param {bool} condition If true, moves elements to the top. 
Otherwise, moves elements back to their original locations.
+        */
+       $.prioritize = function($elements, condition) {
+
+               var key = '__prioritize';
+
+               // Expand $elements if it's not already a jQuery object.
+                       if (typeof $elements != 'jQuery')
+                               $elements = $($elements);
+
+               // Step through elements.
+                       $elements.each(function() {
+
+                               var     $e = $(this), $p,
+                                       $parent = $e.parent();
+
+                               // No parent? Bail.
+                                       if ($parent.length == 0)
+                                               return;
+
+                               // Not moved? Move it.
+                                       if (!$e.data(key)) {
+
+                                               // Condition is false? Bail.
+                                                       if (!condition)
+                                                               return;
+
+                                               // Get placeholder (which will 
serve as our point of reference for when this element needs to move back).
+                                                       $p = $e.prev();
+
+                                                       // Couldn't find 
anything? Means this element's already at the top, so bail.
+                                                               if ($p.length 
== 0)
+                                                                       return;
+
+                                               // Move element to top of 
parent.
+                                                       $e.prependTo($parent);
+
+                                               // Mark element as moved.
+                                                       $e.data(key, $p);
+
+                                       }
+
+                               // Moved already?
+                                       else {
+
+                                               // Condition is true? Bail.
+                                                       if (condition)
+                                                               return;
+
+                                               $p = $e.data(key);
+
+                                               // Move element back to its 
original location (using our placeholder).
+                                                       $e.insertAfter($p);
+
+                                               // Unmark element as moved.
+                                                       $e.removeData(key);
+
+                                       }
+
+                       });
+
+       };
+
+})(jQuery);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/91fdf04a/src/homepage/elements.html
----------------------------------------------------------------------
diff --git a/src/homepage/elements.html b/src/homepage/elements.html
new file mode 100644
index 0000000..9b85773
--- /dev/null
+++ b/src/homepage/elements.html
@@ -0,0 +1,377 @@
+---
+layout: default
+---
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements. See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership. The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License. You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied. See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+
+               <!-- Wrapper -->
+                       <div id="wrapper">
+
+                               <!-- Header -->
+                                       <header id="header">
+                                               <h1>Elements</h1>
+                                               <p>Ipsum dolor sit amet 
nullam</p>
+                                       </header>
+
+                               <!-- Main -->
+                                       <div id="main">
+
+                                               <!-- Content -->
+                                                       <section id="content" 
class="main">
+
+                                                               <!-- Text -->
+                                                                       
<section>
+                                                                               
<h2>Text</h2>
+                                                                               
<p>This is <b>bold</b> and this is <strong>strong</strong>. This is 
<i>italic</i> and this is <em>emphasized</em>.
+                                                                               
This is <sup>superscript</sup> text and this is <sub>subscript</sub> text.
+                                                                               
This is <u>underlined</u> and this is code: <code>for (;;) { ... }</code>. 
Finally, <a href="#">this is a link</a>.</p>
+                                                                               
<hr />
+                                                                               
<p>Nunc lacinia ante nunc ac lobortis. Interdum adipiscing gravida odio 
porttitor sem non mi integer non faucibus ornare mi ut ante amet placerat 
aliquet. Volutpat eu sed ante lacinia sapien lorem accumsan varius montes 
viverra nibh in adipiscing blandit tempus accumsan.</p>
+                                                                               
<hr />
+                                                                               
<h2>Heading Level 2</h2>
+                                                                               
<h3>Heading Level 3</h3>
+                                                                               
<h4>Heading Level 4</h4>
+                                                                               
<hr />
+                                                                               
<h3>Blockquote</h3>
+                                                                               
<blockquote>Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis 
sagittis eget tempus euismod. Vestibulum ante ipsum primis in faucibus 
vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan 
faucibus. Vestibulum ante ipsum primis in faucibus lorem ipsum dolor sit amet 
nullam adipiscing eu felis.</blockquote>
+                                                                               
<h3>Preformatted</h3>
+                                                                               
<pre><code>i = 0;
+
+while (!deck.isInOrder()) {
+    print 'Iteration ' + i;
+    deck.shuffle();
+    i++;
+}
+
+print 'It took ' + i + ' iterations to sort the deck.';</code></pre>
+                                                                       
</section>
+
+                                                               <!-- Lists -->
+                                                                       
<section>
+                                                                               
<h2>Lists</h2>
+                                                                               
<div class="row">
+                                                                               
        <div class="6u 12u$(medium)">
+                                                                               
                <h3>Unordered</h3>
+                                                                               
                <ul>
+                                                                               
                        <li>Dolor pulvinar magna etiam.</li>
+                                                                               
                        <li>Sagittis sed lorem adipiscing.</li>
+                                                                               
                        <li>Felis enim etiam feugiat.</li>
+                                                                               
                        <li>Ipsum lorem nullam consequat.</li>
+                                                                               
                </ul>
+                                                                               
                <h3>Alternate</h3>
+                                                                               
                <ul class="alt">
+                                                                               
                        <li>Dolor pulvinar magna etiam.</li>
+                                                                               
                        <li>Sagittis sed lorem adipiscing.</li>
+                                                                               
                        <li>Felis enim etiam feugiat.</li>
+                                                                               
                        <li>Ipsum lorem nullam consequat.</li>
+                                                                               
                </ul>
+                                                                               
        </div>
+                                                                               
        <div class="6u$ 12u$(medium)">
+                                                                               
                <h3>Ordered</h3>
+                                                                               
                <ol>
+                                                                               
                        <li>Dolor pulvinar etiam.</li>
+                                                                               
                        <li>Etiam vel felis viverra.</li>
+                                                                               
                        <li>Felis enim feugiat.</li>
+                                                                               
                        <li>Dolor pulvinar etiam.</li>
+                                                                               
                        <li>Etiam vel felis lorem.</li>
+                                                                               
                        <li>Felis enim et feugiat.</li>
+                                                                               
                </ol>
+                                                                               
                <h3>Icons</h3>
+                                                                               
                <ul class="icons">
+                                                                               
                        <li><a href="#" class="icon fa-twitter"><span 
class="label">Twitter</span></a></li>
+                                                                               
                        <li><a href="#" class="icon fa-facebook"><span 
class="label">Facebook</span></a></li>
+                                                                               
                        <li><a href="#" class="icon fa-instagram"><span 
class="label">Instagram</span></a></li>
+                                                                               
                        <li><a href="#" class="icon fa-github"><span 
class="label">GitHub</span></a></li>
+                                                                               
                        <li><a href="#" class="icon fa-dribbble"><span 
class="label">Dribbble</span></a></li>
+                                                                               
                </ul>
+                                                                               
                <ul class="icons">
+                                                                               
                        <li><a href="#" class="icon alt fa-twitter"><span 
class="label">Twitter</span></a></li>
+                                                                               
                        <li><a href="#" class="icon alt fa-facebook"><span 
class="label">Facebook</span></a></li>
+                                                                               
                        <li><a href="#" class="icon alt fa-instagram"><span 
class="label">Instagram</span></a></li>
+                                                                               
                        <li><a href="#" class="icon alt fa-github"><span 
class="label">GitHub</span></a></li>
+                                                                               
                        <li><a href="#" class="icon alt fa-dribbble"><span 
class="label">Dribbble</span></a></li>
+                                                                               
                </ul>
+                                                                               
        </div>
+                                                                               
</div>
+                                                                               
<h2>Actions</h2>
+                                                                               
<div class="row">
+                                                                               
        <div class="6u 12u$(medium)">
+                                                                               
                <ul class="actions">
+                                                                               
                        <li><a href="#" class="button special">Default</a></li>
+                                                                               
                        <li><a href="#" class="button">Default</a></li>
+                                                                               
                </ul>
+                                                                               
                <ul class="actions small">
+                                                                               
                        <li><a href="#" class="button special 
small">Small</a></li>
+                                                                               
                        <li><a href="#" class="button small">Small</a></li>
+                                                                               
                </ul>
+                                                                               
                <ul class="actions vertical">
+                                                                               
                        <li><a href="#" class="button special">Default</a></li>
+                                                                               
                        <li><a href="#" class="button">Default</a></li>
+                                                                               
                </ul>
+                                                                               
                <ul class="actions vertical small">
+                                                                               
                        <li><a href="#" class="button special 
small">Small</a></li>
+                                                                               
                        <li><a href="#" class="button small">Small</a></li>
+                                                                               
                </ul>
+                                                                               
        </div>
+                                                                               
        <div class="6u 12u$(medium)">
+                                                                               
                <ul class="actions vertical">
+                                                                               
                        <li><a href="#" class="button special 
fit">Default</a></li>
+                                                                               
                        <li><a href="#" class="button fit">Default</a></li>
+                                                                               
                </ul>
+                                                                               
                <ul class="actions vertical small">
+                                                                               
                        <li><a href="#" class="button special small 
fit">Small</a></li>
+                                                                               
                        <li><a href="#" class="button small fit">Small</a></li>
+                                                                               
                </ul>
+                                                                               
        </div>
+                                                                               
</div>
+                                                                       
</section>
+
+                                                               <!-- Table -->
+                                                                       
<section>
+                                                                               
<h2>Table</h2>
+                                                                               
<h3>Default</h3>
+                                                                               
<div class="table-wrapper">
+                                                                               
        <table>
+                                                                               
                <thead>
+                                                                               
                        <tr>
+                                                                               
                                <th>Name</th>
+                                                                               
                                <th>Description</th>
+                                                                               
                                <th>Price</th>
+                                                                               
                        </tr>
+                                                                               
                </thead>
+                                                                               
                <tbody>
+                                                                               
                        <tr>
+                                                                               
                                <td>Item One</td>
+                                                                               
                                <td>Ante turpis integer aliquet porttitor.</td>
+                                                                               
                                <td>29.99</td>
+                                                                               
                        </tr>
+                                                                               
                        <tr>
+                                                                               
                                <td>Item Two</td>
+                                                                               
                                <td>Vis ac commodo adipiscing arcu aliquet.</td>
+                                                                               
                                <td>19.99</td>
+                                                                               
                        </tr>
+                                                                               
                        <tr>
+                                                                               
                                <td>Item Three</td>
+                                                                               
                                <td> Morbi faucibus arcu accumsan lorem.</td>
+                                                                               
                                <td>29.99</td>
+                                                                               
                        </tr>
+                                                                               
                        <tr>
+                                                                               
                                <td>Item Four</td>
+                                                                               
                                <td>Vitae integer tempus condimentum.</td>
+                                                                               
                                <td>19.99</td>
+                                                                               
                        </tr>
+                                                                               
                        <tr>
+                                                                               
                                <td>Item Five</td>
+                                                                               
                                <td>Ante turpis integer aliquet porttitor.</td>
+                                                                               
                                <td>29.99</td>
+                                                                               
                        </tr>
+                                                                               
                </tbody>
+                                                                               
                <tfoot>
+                                                                               
                        <tr>
+                                                                               
                                <td colspan="2"></td>
+                                                                               
                                <td>100.00</td>
+                                                                               
                        </tr>
+                                                                               
                </tfoot>
+                                                                               
        </table>
+                                                                               
</div>
+
+                                                                               
<h3>Alternate</h3>
+                                                                               
<div class="table-wrapper">
+                                                                               
        <table class="alt">
+                                                                               
                <thead>
+                                                                               
                        <tr>
+                                                                               
                                <th>Name</th>
+                                                                               
                                <th>Description</th>
+                                                                               
                                <th>Price</th>
+                                                                               
                        </tr>
+                                                                               
                </thead>
+                                                                               
                <tbody>
+                                                                               
                        <tr>
+                                                                               
                                <td>Item One</td>
+                                                                               
                                <td>Ante turpis integer aliquet porttitor.</td>
+                                                                               
                                <td>29.99</td>
+                                                                               
                        </tr>
+                                                                               
                        <tr>
+                                                                               
                                <td>Item Two</td>
+                                                                               
                                <td>Vis ac commodo adipiscing arcu aliquet.</td>
+                                                                               
                                <td>19.99</td>
+                                                                               
                        </tr>
+                                                                               
                        <tr>
+                                                                               
                                <td>Item Three</td>
+                                                                               
                                <td> Morbi faucibus arcu accumsan lorem.</td>
+                                                                               
                                <td>29.99</td>
+                                                                               
                        </tr>
+                                                                               
                        <tr>
+                                                                               
                                <td>Item Four</td>
+                                                                               
                                <td>Vitae integer tempus condimentum.</td>
+                                                                               
                                <td>19.99</td>
+                                                                               
                        </tr>
+                                                                               
                        <tr>
+                                                                               
                                <td>Item Five</td>
+                                                                               
                                <td>Ante turpis integer aliquet porttitor.</td>
+                                                                               
                                <td>29.99</td>
+                                                                               
                        </tr>
+                                                                               
                </tbody>
+                                                                               
                <tfoot>
+                                                                               
                        <tr>
+                                                                               
                                <td colspan="2"></td>
+                                                                               
                                <td>100.00</td>
+                                                                               
                        </tr>
+                                                                               
                </tfoot>
+                                                                               
        </table>
+                                                                               
</div>
+                                                                       
</section>
+
+                                                               <!-- Buttons -->
+                                                                       
<section>
+                                                                               
<h3>Buttons</h3>
+                                                                               
<ul class="actions">
+                                                                               
        <li><a href="#" class="button special">Special</a></li>
+                                                                               
        <li><a href="#" class="button">Default</a></li>
+                                                                               
</ul>
+                                                                               
<ul class="actions">
+                                                                               
        <li><a href="#" class="button big">Big</a></li>
+                                                                               
        <li><a href="#" class="button">Default</a></li>
+                                                                               
        <li><a href="#" class="button small">Small</a></li>
+                                                                               
</ul>
+                                                                               
<ul class="actions fit">
+                                                                               
        <li><a href="#" class="button special fit">Fit</a></li>
+                                                                               
        <li><a href="#" class="button fit">Fit</a></li>
+                                                                               
        <li><a href="#" class="button fit">Fit</a></li>
+                                                                               
</ul>
+                                                                               
<ul class="actions fit small">
+                                                                               
        <li><a href="#" class="button special fit small">Fit + Small</a></li>
+                                                                               
        <li><a href="#" class="button fit small">Fit + Small</a></li>
+                                                                               
        <li><a href="#" class="button fit small">Fit + Small</a></li>
+                                                                               
</ul>
+                                                                               
<ul class="actions">
+                                                                               
        <li><a href="#" class="button special icon fa-download">Icon</a></li>
+                                                                               
        <li><a href="#" class="button icon fa-upload">Icon</a></li>
+                                                                               
        <li><a href="#" class="button icon fa-save">Icon</a></li>
+                                                                               
</ul>
+                                                                               
<ul class="actions">
+                                                                               
        <li><span class="button special disabled">Disabled</span></li>
+                                                                               
        <li><span class="button disabled">Disabled</span></li>
+                                                                               
</ul>
+                                                                       
</section>
+
+                                                               <!-- Form -->
+                                                                       
<section>
+                                                                               
<h2>Form</h2>
+                                                                               
<form method="post" action="#">
+                                                                               
        <div class="row uniform">
+                                                                               
                <div class="6u 12u$(xsmall)">
+                                                                               
                        <input type="text" name="demo-name" id="demo-name" 
value="" placeholder="Name" />
+                                                                               
                </div>
+                                                                               
                <div class="6u$ 12u$(xsmall)">
+                                                                               
                        <input type="email" name="demo-email" id="demo-email" 
value="" placeholder="Email" />
+                                                                               
                </div>
+                                                                               
                <div class="12u$">
+                                                                               
                        <div class="select-wrapper">
+                                                                               
                                <select name="demo-category" id="demo-category">
+                                                                               
                                        <option value="">- Category -</option>
+                                                                               
                                        <option value="1">Manufacturing</option>
+                                                                               
                                        <option value="1">Shipping</option>
+                                                                               
                                        <option 
value="1">Administration</option>
+                                                                               
                                        <option value="1">Human 
Resources</option>
+                                                                               
                                </select>
+                                                                               
                        </div>
+                                                                               
                </div>
+                                                                               
                <div class="4u 12u$(small)">
+                                                                               
                        <input type="radio" id="demo-priority-low" 
name="demo-priority" checked>
+                                                                               
                        <label for="demo-priority-low">Low</label>
+                                                                               
                </div>
+                                                                               
                <div class="4u 12u$(small)">
+                                                                               
                        <input type="radio" id="demo-priority-normal" 
name="demo-priority">
+                                                                               
                        <label for="demo-priority-normal">Normal</label>
+                                                                               
                </div>
+                                                                               
                <div class="4u$ 12u$(small)">
+                                                                               
                        <input type="radio" id="demo-priority-high" 
name="demo-priority">
+                                                                               
                        <label for="demo-priority-high">High</label>
+                                                                               
                </div>
+                                                                               
                <div class="6u 12u$(small)">
+                                                                               
                        <input type="checkbox" id="demo-copy" name="demo-copy">
+                                                                               
                        <label for="demo-copy">Email me a copy</label>
+                                                                               
                </div>
+                                                                               
                <div class="6u$ 12u$(small)">
+                                                                               
                        <input type="checkbox" id="demo-human" 
name="demo-human" checked>
+                                                                               
                        <label for="demo-human">Not a robot</label>
+                                                                               
                </div>
+                                                                               
                <div class="12u$">
+                                                                               
                        <textarea name="demo-message" id="demo-message" 
placeholder="Enter your message" rows="6"></textarea>
+                                                                               
                </div>
+                                                                               
                <div class="12u$">
+                                                                               
                        <ul class="actions">
+                                                                               
                                <li><input type="submit" value="Send Message" 
class="special" /></li>
+                                                                               
                                <li><input type="reset" value="Reset" /></li>
+                                                                               
                        </ul>
+                                                                               
                </div>
+                                                                               
        </div>
+                                                                               
</form>
+                                                                       
</section>
+
+                                                               <!-- Image -->
+                                                                       
<section>
+                                                                               
<h2>Image</h2>
+                                                                               
<h3>Fit</h3>
+                                                                               
<div class="box alt">
+                                                                               
        <div class="row uniform">
+                                                                               
                <div class="12u$"><span class="image fit"><img 
src="images/pic04.jpg" alt="" /></span></div>
+                                                                               
                <div class="4u"><span class="image fit"><img 
src="images/pic01.jpg" alt="" /></span></div>
+                                                                               
                <div class="4u"><span class="image fit"><img 
src="images/pic02.jpg" alt="" /></span></div>
+                                                                               
                <div class="4u$"><span class="image fit"><img 
src="images/pic03.jpg" alt="" /></span></div>
+                                                                               
                <div class="4u"><span class="image fit"><img 
src="images/pic03.jpg" alt="" /></span></div>
+                                                                               
                <div class="4u"><span class="image fit"><img 
src="images/pic01.jpg" alt="" /></span></div>
+                                                                               
                <div class="4u$"><span class="image fit"><img 
src="images/pic02.jpg" alt="" /></span></div>
+                                                                               
                <div class="4u"><span class="image fit"><img 
src="images/pic02.jpg" alt="" /></span></div>
+                                                                               
                <div class="4u"><span class="image fit"><img 
src="images/pic03.jpg" alt="" /></span></div>
+                                                                               
                <div class="4u$"><span class="image fit"><img 
src="images/pic01.jpg" alt="" /></span></div>
+                                                                               
        </div>
+                                                                               
</div>
+                                                                               
<h3>Left &amp; Right</h3>
+                                                                               
<p><span class="image left"><img src="images/pic05.jpg" alt="" 
/></span>Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis 
sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus 
vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan 
eu faucibus. Integer ac pellentesque praesent tincidunt felis sagittis eget. 
tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit 
adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. 
Integer ac pellentesque praesent. Donec accumsan interdum nisi, quis tincidunt 
felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus 
vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan 
eu faucibus. Integer ac pellentesque praesent tincidunt felis sagittis eget. 
tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit 
adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integ
 er ac pellentesque praesent. Blandit adipiscing eu felis iaculis volutpat ac 
adipiscing accumsan eu faucibus. Integer ac pellentesque praesent tincidunt 
felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus 
vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan 
eu faucibus. Integer ac pellentesque praesent lorem ipsum dolor sit amet 
veroeros consequat. Etiam tempus lorem ipsum.</p>
+                                                                               
<p><span class="image right"><img src="images/pic06.jpg" alt="" 
/></span>Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis 
sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus 
vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan 
eu faucibus. Integer ac pellentesque praesent tincidunt felis sagittis eget. 
tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit 
adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. 
Integer ac pellentesque praesent. Donec accumsan interdum nisi, quis tincidunt 
felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus 
vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan 
eu faucibus. Integer ac pellentesque praesent tincidunt felis sagittis eget. 
tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit 
adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Inte
 ger ac pellentesque praesent. Blandit adipiscing eu felis iaculis volutpat ac 
adipiscing accumsan eu faucibus. Integer ac pellentesque praesent tincidunt 
felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus 
vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan 
eu faucibus..</p>
+                                                                       
</section>
+                                                                       <footer 
class="major special">
+                                                                               
<hr>
+                                                                               
<center>
+                                                                               
        <ul class="actions">
+                                                                               
                <li><a href="/" class="button">Back to homepage</a></li>
+                                                                               
        </ul>
+                                                                               
</center>
+                                                                       
</footer>
+
+                                                       </section>
+
+                                       </div>
+
+
+                       </div>
+
+               <!-- Scripts -->
+                       <script src="assets/js/jquery.min.js"></script>
+                       <script src="assets/js/jquery.scrollex.min.js"></script>
+                       <script src="assets/js/jquery.scrolly.min.js"></script>
+                       <script src="assets/js/skel.min.js"></script>
+                       <script src="assets/js/util.js"></script>
+                       <!--[if lte IE 8]><script 
src="assets/js/ie/respond.min.js"></script><![endif]-->
+                       <script src="assets/js/main.js"></script>
+
+       </body>
+</html>

http://git-wip-us.apache.org/repos/asf/james-project/blob/91fdf04a/src/homepage/feed.xml
----------------------------------------------------------------------
diff --git a/src/homepage/feed.xml b/src/homepage/feed.xml
new file mode 100644
index 0000000..2e86983
--- /dev/null
+++ b/src/homepage/feed.xml
@@ -0,0 +1,48 @@
+---
+layout: null
+---
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements. See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership. The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License. You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied. See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom";>
+  <channel>
+    <title>{{ site.title | xml_escape }}</title>
+    <description>{{ site.description | xml_escape }}</description>
+    <link>{{ site.url }}{{ site.baseurl }}/</link>
+    <atom:link href="{{ "/feed.xml" | prepend: site.baseurl | prepend: 
site.url }}" rel="self" type="application/rss+xml"/>
+    <pubDate>{{ site.time | date_to_rfc822 }}</pubDate>
+    <lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate>
+    <generator>Jekyll v{{ jekyll.version }}</generator>
+    {% for post in site.posts limit:10 %}
+      <item>
+        <title>{{ post.title | xml_escape }}</title>
+        <description>{{ post.content | xml_escape }}</description>
+        <pubDate>{{ post.date | date_to_rfc822 }}</pubDate>
+        <link>{{ post.url | prepend: site.baseurl | prepend: site.url }}</link>
+        <guid isPermaLink="true">{{ post.url | prepend: site.baseurl | 
prepend: site.url }}</guid>
+        {% for tag in post.tags %}
+        <category>{{ tag | xml_escape }}</category>
+        {% endfor %}
+        {% for cat in post.categories %}
+        <category>{{ cat | xml_escape }}</category>
+        {% endfor %}
+      </item>
+    {% endfor %}
+  </channel>
+</rss>

http://git-wip-us.apache.org/repos/asf/james-project/blob/91fdf04a/src/homepage/images/james-alt.svg
----------------------------------------------------------------------
diff --git a/src/homepage/images/james-alt.svg 
b/src/homepage/images/james-alt.svg
new file mode 100644
index 0000000..cdab29b
--- /dev/null
+++ b/src/homepage/images/james-alt.svg
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 
6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd";>
+<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink"; x="0px" y="0px"
+        width="37px" height="31px" viewBox="0 0 37 31" enable-background="new 
0 0 37 31" xml:space="preserve">
+<g>
+       <path fill="#FFFFFF" 
d="M37.001,4.407c-1.435-0.966-2.92-1.75-4.473-2.153c-1.552-0.412-3.151-0.315-4.63,0.3l-0.277,0.117
+               
l-0.139,0.062l-0.064,0.032l-0.036,0.016l-0.018,0.008l-0.008,0.004c0.008-0.007-0.028,0.016,0.02-0.012L27.37,2.783
+               
c-0.2,0.127-0.391,0.232-0.589,0.337c-0.392,0.207-0.796,0.391-1.216,0.543c-0.836,0.295-1.737,0.503-2.664,0.389
+               
c-0.458-0.061-0.913-0.222-1.3-0.489c-0.382-0.268-0.689-0.629-0.899-1.026C20.28,1.737,20.15,0.857,20.124,0
+               
c0.156,0.842,0.393,1.686,0.857,2.363c0.234,0.336,0.523,0.622,0.864,0.811c0.339,0.19,0.723,0.284,1.111,0.301
+               
c0.782,0.038,1.582-0.201,2.325-0.532c0.376-0.165,0.741-0.353,1.092-0.563c0.176-0.105,0.354-0.219,0.509-0.33l0.307-0.201
+               
c0.1-0.057,0.194-0.122,0.293-0.173c0.801-0.433,1.702-0.731,2.627-0.793c0.925-0.069,1.856,0.063,2.716,0.357
+               
c0.863,0.29,1.655,0.731,2.359,1.267C35.888,3.047,36.52,3.676,37.001,4.407z"/>
+       <path fill="#FFFFFF" 
d="M13.25,20.418c-5.733-4.373-9.554-8.973-9.418-9.078c0.147-0.145,4.153,4.212,9.83,8.536
+               
c1.665,1.28,3.28,2.412,4.733,3.381c0.02-0.036,0.041-0.069,0.062-0.105c0.237-0.456,0.42-0.948,0.562-1.462
+               
c-1.018-2.053-3.554-4.892-6.501-7.496c-0.656-0.572-1.338-1.078-2.028-1.536c-0.151,1.223-0.452,2.098-0.453,2.096
+               
c0,0-0.335-1.163-0.306-2.579C9.266,11.892,8.8,11.63,8.336,11.389c-0.004,1.395-0.414,2.439-0.417,2.439
+               
c0,0.002-0.833-1.414-0.922-3.071c-0.002-0.01-0.002-0.021-0.002-0.031c-2.767-1.279-5.1-1.896-5.104-1.89
+               
C1.867,8.774,2.064,14.75,6.431,19.305c0.147-0.008,0.296-0.016,0.449-0.016c1.588,0.004,2.944,0.577,2.947,0.577
+               
c0-0.002-0.835,0.501-2.054,0.671c0.444,0.355,0.899,0.682,1.364,0.973c1.148-0.416,2.102-0.557,2.102-0.557
+               
c0-0.002-0.503,0.495-1.334,1.017c3.035,1.685,5.787,2.542,7.53,2.624c0.236-0.26,0.452-0.532,0.645-0.821
+               C16.586,22.84,14.938,21.717,13.25,20.418z"/>
+       <path fill="#FFFFFF" 
d="M33.7,4.335c-1.103,0.092-2.21,0.292-3.3,0.605c-2.173,0.623-4.31,1.725-6.062,3.396
+               
c-0.883,0.824-1.64,1.798-2.271,2.846c-0.614,1.059-1.109,2.191-1.43,3.363c-0.327,1.168-0.529,2.363-0.595,3.548
+               
c-0.02,0.291-0.031,0.596-0.039,0.9L19.995,19.4l-0.008,0.35c-0.012,0.462-0.051,0.918-0.122,1.358
+               
c-0.056,0.337-0.131,0.665-0.223,0.984c-0.141,0.514-0.324,1.006-0.562,1.466c-0.02,0.036-0.043,0.066-0.062,0.102
+               
c-0.099,0.178-0.204,0.353-0.317,0.52c-0.191,0.286-0.407,0.559-0.643,0.819c-0.17,0.186-0.348,0.366-0.544,0.541
+               
c-1.304,1.152-3.097,1.944-5.021,2.453c-1.931,0.518-3.995,0.788-6.091,0.934c-2.1,0.145-4.234,0.166-6.404,0.112
+               
c2.023,0.815,4.157,1.338,6.333,1.664c2.179,0.313,4.422,0.415,6.701,0.127c1.137-0.149,2.287-0.394,3.418-0.802
+               
c1.129-0.405,2.252-0.959,3.265-1.745c1.019-0.771,1.92-1.77,2.571-2.913c0.331-0.568,0.601-1.167,0.82-1.775
+               
c0.21-0.611,0.364-1.236,0.47-1.859c0.11-0.619,0.17-1.24,0.193-1.852c0.008-0.154,0.008-0.307,0.008-0.461v-0.398
+               
c0.005-0.234,0.011-0.468,0.022-0.716c0.052-0.967,0.166-1.914,0.376-2.832c0.418-1.832,1.213-3.537,2.405-5.009
+               
c1.192-1.472,2.767-2.711,4.552-3.706c1.79-0.994,3.765-1.774,5.862-2.355C35.917,4.247,34.808,4.238,33.7,4.335z"/>
+</g>
+</svg>

http://git-wip-us.apache.org/repos/asf/james-project/blob/91fdf04a/src/homepage/images/james-general-architecture.png
----------------------------------------------------------------------
diff --git a/src/homepage/images/james-general-architecture.png 
b/src/homepage/images/james-general-architecture.png
new file mode 100644
index 0000000..351ffc8
Binary files /dev/null and b/src/homepage/images/james-general-architecture.png 
differ

http://git-wip-us.apache.org/repos/asf/james-project/blob/91fdf04a/src/homepage/images/james-imap-server.png
----------------------------------------------------------------------
diff --git a/src/homepage/images/james-imap-server.png 
b/src/homepage/images/james-imap-server.png
new file mode 100644
index 0000000..30112d9
Binary files /dev/null and b/src/homepage/images/james-imap-server.png differ

http://git-wip-us.apache.org/repos/asf/james-project/blob/91fdf04a/src/homepage/images/james-logo.png
----------------------------------------------------------------------
diff --git a/src/homepage/images/james-logo.png 
b/src/homepage/images/james-logo.png
new file mode 100644
index 0000000..a1bcfcf
Binary files /dev/null and b/src/homepage/images/james-logo.png differ

http://git-wip-us.apache.org/repos/asf/james-project/blob/91fdf04a/src/homepage/images/james-smtp-relay.png
----------------------------------------------------------------------
diff --git a/src/homepage/images/james-smtp-relay.png 
b/src/homepage/images/james-smtp-relay.png
new file mode 100644
index 0000000..7e7b365
Binary files /dev/null and b/src/homepage/images/james-smtp-relay.png differ


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to