Implemented first stage of visual overhaul

This commit is contained in:
Ethan N. Paul 2018-01-29 11:22:45 -05:00
parent 01408952b3
commit 9db295238f
48 changed files with 7706 additions and 569 deletions

4
_archive/5/css/font-awesome.min.css vendored Normal file

File diff suppressed because one or more lines are too long

428
_archive/5/css/style.css Normal file
View File

@ -0,0 +1,428 @@
/*!
* Start Bootstrap - Grayscale Bootstrap Theme (http://startbootstrap.com)
* Code licensed under the Apache License v2.0.
* For details, see http://www.apache.org/licenses/LICENSE-2.0.
*/
body {
width: 100%;
height: 100%;
font-family: Lora,"Helvetica Neue",Helvetica,Arial,sans-serif;
color: #fff;
background-color: #000;
}
html {
width: 100%;
height: 100%;
}
h1,
h2,
h3,
h4,
h5,
h6 {
margin: 0 0 35px;
text-transform: uppercase;
font-family: Montserrat,"Verdana",Verdana,Arial,sans-serif;
font-weight: 700;
letter-spacing: 1px;
}
p {
margin: 0 0 25px;
font-size: 18px;
line-height: 1.5;
}
.data {
padding-bottom: 75px;
}
@media(min-width:768px) {
p {
margin: 0 0 35px;
font-size: 20px;
line-height: 1.6;
}
}
a {
color: #2C9FFF;
-webkit-transition: all .2s ease-in-out;
-moz-transition: all .2s ease-in-out;
transition: all .2s ease-in-out;
}
#HeaderBlock {
background-color: rgba(0, 0, 0, 0.5);
}
a:hover,
a:focus {
text-decoration: none;
color: #8D9BB6;
}
.light {
font-weight: 400;
}
.documentation {
padding-top: 10px;
padding-bottom: 10px;
}
.documentation b {
color: #2C9FFF;
}
.navbar-custom {
margin-bottom: 0;
border-bottom: 1px solid rgba(255,255,255,.3);
text-transform: uppercase;
font-family: Montserrat,"Helvetica Neue",Helvetica,Arial,sans-serif;
background-color: #000;
}
.navbar-custom .navbar-brand {
font-weight: 700;
}
.navbar-custom .navbar-brand:focus {
outline: 0;
}
.navbar-custom .navbar-brand .navbar-toggle {
padding: 4px 6px;
font-size: 16px;
color: #fff;
}
.navbar-custom .navbar-brand .navbar-toggle:focus,
.navbar-custom .navbar-brand .navbar-toggle:active {
outline: 0;
}
.navbar-custom a {
color: #fff;
}
.navbar-custom .nav li a {
-webkit-transition: background .3s ease-in-out;
-moz-transition: background .3s ease-in-out;
transition: background .3s ease-in-out;
}
.navbar-custom .nav li a:hover {
outline: 0;
color: rgba(255,255,255,.8);
background-color: transparent;
}
.navbar-custom .nav li a:focus,
.navbar-custom .nav li a:active {
outline: 0;
background-color: transparent;
}
.navbar-custom .nav li.active {
outline: 0;
}
.navbar-custom .nav li.active a {
background-color: rgba(255,255,255,.3);
}
.navbar-custom .nav li.active a:hover {
color: #fff;
}
@media(min-width:768px) {
.navbar-custom {
padding: 20px 0;
border-bottom: 0;
letter-spacing: 1px;
background: 0 0;
-webkit-transition: background .5s ease-in-out,padding .5s ease-in-out;
-moz-transition: background .5s ease-in-out,padding .5s ease-in-out;
transition: background .5s ease-in-out,padding .5s ease-in-out;
}
.navbar-custom.top-nav-collapse {
padding: 0;
border-bottom: 1px solid rgba(255,255,255,.3);
background: #000;
}
}
.intro {
display: table;
width: 100%;
height: auto;
padding: 100px 0;
text-align: center;
color: #fff;
background: url(../img/background.jpg) no-repeat bottom center scroll;
background-color: #000;
-webkit-background-size: cover;
-moz-background-size: cover;
background-size: cover;
-o-background-size: cover;
}
.intro-minecraft{
background: url(../img/background-minecraft.jpg) no-repeat bottom center scroll;
display: table-cell;
vertical-align: middle;
}
.intro .intro-body .title-heading {
font-size: 30px;
}
.intro .intro-body {
display: table-cell;
vertical-align: middle;
}
.intro .intro-body .brand-heading {
font-size: 40px;
}
.intro .intro-body .intro-text {
font-size: 18px;
}
@media(min-width:768px) {
.intro {
height: 100%;
padding: 0;
}
.intro .intro-body .brand-heading {
font-size: 100px;
}
.intro .intro-body .intro-text {
font-size: 26px;
}
}
.btn-circle {
width: 70px;
height: 70px;
margin-top: 15px;
padding: 7px 16px;
border: 2px solid #fff;
border-radius: 100%!important;
font-size: 40px;
color: #fff;
background: 0 0;
-webkit-transition: background .3s ease-in-out;
-moz-transition: background .3s ease-in-out;
transition: background .3s ease-in-out;
}
.btn-circle:hover,
.btn-circle:focus {
outline: 0;
color: #fff;
background: rgba(255,255,255,.1);
}
.btn-circle i.animated {
-webkit-transition-property: -webkit-transform;
-webkit-transition-duration: 1s;
-moz-transition-property: -moz-transform;
-moz-transition-duration: 1s;
}
.btn-circle:hover i.animated {
-webkit-animation-name: pulse;
-moz-animation-name: pulse;
-webkit-animation-duration: 1.5s;
-moz-animation-duration: 1.5s;
-webkit-animation-iteration-count: infinite;
-moz-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
-moz-animation-timing-function: linear;
}
@-webkit-keyframes pulse {
0 {
-webkit-transform: scale(1);
transform: scale(1);
}
50% {
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
100% {
-webkit-transform: scale(1);
transform: scale(1);
}
}
@-moz-keyframes pulse {
0 {
-moz-transform: scale(1);
transform: scale(1);
}
50% {
-moz-transform: scale(1.2);
transform: scale(1.2);
}
100% {
-moz-transform: scale(1);
transform: scale(1);
}
}
.content-section {
padding-top: 5px;
text-align: center;
}
.download-section {
width: 100%;
padding: 50px 0;
color: #fff;
background: url(../img/network-banner.png) no-repeat center center scroll;
background-color: #000;
-webkit-background-size: cover;
-moz-background-size: cover;
background-size: cover;
-o-background-size: cover;
}
#map {
width: 100%;
height: 200px;
margin-top: 100px;
}
@media(min-width:767px) {
.content-section {
padding-top: 100px;
padding-bottom: 100px;
}
.download-section {
padding: 100px 0;
}
#map {
height: 400px;
margin-top: 250px;
}
}
.btn {
border-radius: 0;
text-transform: uppercase;
font-family: Montserrat,"Helvetica Neue",Helvetica,Arial,sans-serif;
font-weight: 400;
-webkit-transition: all .3s ease-in-out;
-moz-transition: all .3s ease-in-out;
transition: all .3s ease-in-out;
}
.btn-default {
border: 1px solid #2C9FFF;
color: #2C9FFF;
background-color: transparent;
}
.btn-default:hover,
.btn-default:focus {
border: 1px solid #fff;
outline: 0;
color: #000;
background-color: #fff;
}
ul.banner-social-buttons {
margin-top: 0;
}
.section-divider {
display: none;
}
@media screen and (max-width:767px) {
#logo_about {
display: none;
}
.section-divider {
display: block;
}
.heading_large {
display: none;
}
}
@media screen and (min-width:768px) {
.heading_small {
display: none;
}
#heading_large {
width: 512px;
}
}
@media(max-width:1199px) {
ul.banner-social-buttons {
margin-top: 15px;
}
}
@media(max-width:767px) {
ul.banner-social-buttons li {
display: block;
margin-bottom: 20px;
padding: 0;
}
ul.banner-social-buttons li:last-child {
margin-bottom: 0;
}
}
footer {
padding: 50px 0;
}
footer p {
margin: 0;
}
::-moz-selection {
text-shadow: none;
background: #879FBB;
background: rgba(255,255,255,.2);
}
::selection {
text-shadow: none;
background: #879FBB;
background: rgba(255,255,255,.2);
}
img::selection {
background: 0 0;
}
img::-moz-selection {
background: 0 0;
}
body {
webkit-tap-highlight-color: rgba(255,255,255,.2);
}

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 136 KiB

View File

Before

Width:  |  Height:  |  Size: 138 KiB

After

Width:  |  Height:  |  Size: 138 KiB

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

200
_archive/5/index.html Normal file
View File

@ -0,0 +1,200 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="author" content="enpaul@enpaul.net"/>
<meta name="description" content="ENPaul personal landing page and Network Services website"/>
<meta name="keywords" content="enpaul, network, operations, networking, plex, media, server, adds, active, directory, wpi, worcester, polytechnic, institute, boston, mechanical, engineering, solidworks, home, lab, homelab, solid, works, autocad, cad, domain, windows, server"/>
<meta name="robots" content="index,follow"/>
<meta property="og:title" content="ENPaul"/>
<meta property='og:locale' content="en_US"/>
<meta property='og:description' content="ENPaul personal landing page and Network Services website"/>
<meta property="og:type" content="Website"/>
<meta property='og:site_name' content="ENPaul Network"/>
<meta property="og:url" content="https://enpaul.net/"/>
<title>ENPaul</title>
<link rel="shortcut icon" href="img\e-b.png">
<link href="css/bootstrap.css" rel="stylesheet">
<link href="css/font-awesome.min.css" rel="stylesheet" type="text/css">
<link href="css/hexagons.min.css" rel="stylesheet" type="text/css">
<link href="css/style.css" rel="stylesheet">
<script src="js/jquery.js"></script>
<script src="js/hexagons.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/jquery.easing.min.js"></script>
<script src="js/common.js"></script>
</head>
<body id="page-top" data-spy="scroll" data-target=".navbar-fixed-top">
<nav class="navbar navbar-custom navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-main-collapse">
<span class="light">MENU</span><!--<i class="fa fa-bars"></i>-->
</button>
<a class="navbar-brand page-scroll" href="#page-top"><span class="light"><img src="img/e-w.png" width="32">&nbsp;&nbsp; Home</span></a>
</div>
<div class="collapse navbar-collapse navbar-right navbar-main-collapse">
<ul class="nav navbar-nav">
<li class="hidden"><a href="#page-top"></a></li>
<!--<li><a class="page-scroll" href="#projects">Projects</a></li>-->
<li><a class="page-scroll" href="#services">Services</a></li>
<!--<li><a class="page-scroll" href="#network">Network</a></li>-->
<li><a class="page-scroll" href="#about">About</a></li>
</ul>
</div>
</div>
</nav>
<header class="intro">
<div class="intro-body">
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h1 class="brand-heading">
<img class="heading_large" style="max-width: 512px;" src="img/logo.png"/>
<img class="heading_small" style="max-width: 128px;" src="img/e-w.png"/>
</h1>
<hr>
<p>Student - Tinkerer - Programmer - <i style="color: #808080;">(aspiring)</i> Engineer</p>
<hr>
<ul class="list-inline">
<li>
<a href="mailto:enpaul@enpaul.net"><span class="hb hb-sm"><i class="fa fa-envelope-o"></i></span></a>
</li>
<li>
<a href="https://download.enpaul.net/enpaul-resume.pdf" target="_blank"><span class="hb hb-sm"><i class="fa fa-file-text-o"></i></span></a>
</li>
<li>
<a target="_blank" href="https://twitter.com/theenpaul"><span class="hb hb-sm"><i class="fa fa-twitter"></i></span></a>
</li>
<li>
<a target="_blank" href="https://plus.google.com/+EthanPaul42"><span class="hb hb-sm"><i class="fa fa-google-plus"></i></span></a>
</li>
<li>
<a target="_blank" href="https://www.linkedin.com/in/enpaul"><span class="hb hb-sm"><i class="fa fa-linkedin"></i></span></a>
</li>
</ul>
</div>
</div>
</div>
</div>
</header>
<!--<hr class="section-divider">
<section id="projects" class="container content-section text-center">
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<h2>Personal Projects</h2>
<i class="fa fa-folder-open fa-5x" aria-hidden="true"></i>
<br><br>
<p>
The underlying infrastructure of the ENPaul Network (ENPN) helps to facilitate a number of pet-projects that are constantly cycled from under development, to abandoned, to broken, and back to under development. These projects are, at best, curiosities and should be seen as such.
<br>
Enter at your own risk.
<br>
</p>
<ul class="list-inline banner-social-buttons">
<li>
<a href="/network" class="btn btn-default btn-lg"><i class="fa fa-arrow-circle-o-right"></i> <span class="network-name"><b>Learn More</b></span></a>
</li>
</ul>
</div>
</div>
</section>-->
<hr class="section-divider">
<section id="services" class="container content-section text-center">
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<h2>Network Services</h2>
<i class="fa fa-cogs fa-5x" aria-hidden="true"></i>
<br><br>
<p>
Providing useful network services is the primary goal of the ENPaul Network (ENPN). These services provide means of entertainment, data management, and security for the network users.
<br><br>
The full list of services provided by the ENPN can be found at the link below. Alternatively, use one of the other links to directly access specific service web-interfaces.
<br>
</p>
<ul class="list-inline banner-social-buttons">
<li>
<a href="/services" class="btn btn-default btn-lg"><i class="fa fa-arrow-circle-o-right"></i> <span class="network-name"><b>Learn More</b></span></a>
</li>
<br><br><p><i>Direct service links</i></p>
<li>
<a href="https://plex.enpaul.net" class="btn btn-default btn-lg"><i class="fa fa-ticket"></i> <span class="network-name"><b>Plex Media Server</b></span></a>
</li>
<li>
<a href="https://enpaul.net/services/vpn" class="btn btn-default btn-lg"><i class="fa fa-lock"></i> <span class="network-name"><b>VPN</b></span></a>
</li>
<li>
<a href="https://storage.enpaul.net" class="btn btn-default btn-lg"><i class="fa fa-cloud"></i> <span class="network-name"><b>Storage</b></span></a>
</li>
<li>
<a href="https://gitlab.enpaul.net" class="btn btn-default btn-lg"><i class="fa fa-gitlab"></i> <span class="network-name"><b>GitLab</b></span></a>
</li>
</ul>
</div>
</div>
</section>
<!--<hr class="section-divider">
<section id="network" class="container content-section text-center">
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<h2>The ENPaul Network</h2>
<i class="fa fa-sitemap fa-5x" aria-hidden="true"></i>
<br><br>
<p>
The ENPaul Network (ENPN) is a <a href="https://www.reddit.com/r/homelab/">home-lab environment</a> maintained by ENPaul for the purposes of fun, curiosity, experimentation, and support for his <a href="#projects">personal projects</a>.
<br><br>
The ENPN hosts two VMWare ESXi hypervisors, a Microsoft Active Directory Domain, federated authentication services including LDAP and RADIUS, NAS systems, and a plethora of applications and utilities.
</p>
<ul class="list-inline banner-social-buttons">
<li>
<a href="/network" class="btn btn-default btn-lg"><i class="fa fa-arrow-circle-o-right"></i> <span class="network-name"><b>Learn More</b></span></a>
</li>
</ul>
</div>
</div>
</section>-->
<hr class="section-divider">
<section id="about" class="container content-section text-center">
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<h2>About E.N.Paul</h2>
<img id="logo_about" src="img\e-w.png" width="128">
<br><br>
<p>
EN Paul is a Mechanical Engineering student at <a target="_blank" href="https://wpi.edu">Worcester Polytechnic Institute</a> in Worcester Massachusets with way too much time on his hands. He works at <a target="_blank" href="http://www.wpi.edu/+netops">WPI Network Operations</a>, plays around with <a target="_blank" href="http://www.solidworks.com">3DS SolidWorks</a>, and runs this website when he's bored.
<br><br>
He doesn't want donations, but asks that if you have a joke or funny story to share that you send it to him.
<br>
</p>
</div>
</div>
</section>
<footer>
<div class="container text-center">
<p style="color: #606060;"><i>&copy;2017 E.N.Paul - 2017-11-29</i></p>
</div>
</footer>
</body>
</html>

7
_archive/5/js/bootstrap.min.js vendored Normal file

File diff suppressed because one or more lines are too long

44
_archive/5/js/jquery.easing.min.js vendored Normal file
View File

@ -0,0 +1,44 @@
/*
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
*
* Uses the built in easing capabilities added In jQuery 1.1
* to offer multiple easing options
*
* TERMS OF USE - EASING EQUATIONS
*
* Open source under the BSD License.
*
* Copyright é 2001 Robert Penner
* All rights reserved.
*
* TERMS OF USE - jQuery Easing
*
* Open source under the BSD License.
*
* Copyright é 2008 George McGinley Smith
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* Neither the name of the author nor the names of contributors may be used to endorse
* or promote products derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,f,a,h,g){return jQuery.easing[jQuery.easing.def](e,f,a,h,g)},easeInQuad:function(e,f,a,h,g){return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,f,a,h,g){return h*(f/=g)*f*f*f+a},easeOutQuart:function(e,f,a,h,g){return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,f,a,h,g){return h*(f/=g)*f*f*f*f+a},easeOutQuint:function(e,f,a,h,g){return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,f,a,h,g){return -h*Math.cos(f/g*(Math.PI/2))+h+a},easeOutSine:function(e,f,a,h,g){return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,f,a,h,g){return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,f,a,h,g){return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){if(f==0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,f,a,h,g){return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},easeOutCirc:function(e,f,a,h,g){return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,f,a,h,g){if((f/=g/2)<1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return -(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e},easeOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return g*Math.pow(2,-10*h)*Math.sin((h*k-i)*(2*Math.PI)/j)+l+e},easeInOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k/2)==2){return e+l}if(!j){j=k*(0.3*1.5)}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}if(h<1){return -0.5*(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e}return g*Math.pow(2,-10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j)*0.5+l+e},easeInBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*(f/=h)*f*((g+1)*f-g)+a},easeOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*((f=f/h-1)*f*((g+1)*f+g)+1)+a},easeInOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}if((f/=h/2)<1){return i/2*(f*f*(((g*=(1.525))+1)*f-g))+a}return i/2*((f-=2)*f*(((g*=(1.525))+1)*f+g)+2)+a},easeInBounce:function(e,f,a,h,g){return h-jQuery.easing.easeOutBounce(e,g-f,0,h,g)+a},easeOutBounce:function(e,f,a,h,g){if((f/=g)<(1/2.75)){return h*(7.5625*f*f)+a}else{if(f<(2/2.75)){return h*(7.5625*(f-=(1.5/2.75))*f+0.75)+a}else{if(f<(2.5/2.75)){return h*(7.5625*(f-=(2.25/2.75))*f+0.9375)+a}else{return h*(7.5625*(f-=(2.625/2.75))*f+0.984375)+a}}}},easeInOutBounce:function(e,f,a,h,g){if(f<g/2){return jQuery.easing.easeInBounce(e,f*2,0,h,g)*0.5+a}return jQuery.easing.easeOutBounce(e,f*2-g,0,h,g)*0.5+h*0.5+a}});

3340
css/animate.css vendored Normal file

File diff suppressed because it is too large Load Diff

6
css/bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,428 +1,360 @@
/*!
* Start Bootstrap - Grayscale Bootstrap Theme (http://startbootstrap.com)
* Code licensed under the Apache License v2.0.
* For details, see http://www.apache.org/licenses/LICENSE-2.0.
*/
/*
Theme Name: Laura
Theme URL: https://bootstrapmade.com/laura-free-creative-bootstrap-theme/
Author: BootstrapMade.com
Author URL: https://bootstrapmade.com
*/
body {
width: 100%;
height: 100%;
font-family: Lora,"Helvetica Neue",Helvetica,Arial,sans-serif;
color: #fff;
background-color: #000;
}
html {
width: 100%;
height: 100%;
}
h1,
h2,
h3,
h4,
h5,
h6 {
margin: 0 0 35px;
text-transform: uppercase;
font-family: Montserrat,"Verdana",Verdana,Arial,sans-serif;
font-weight: 700;
letter-spacing: 1px;
}
p {
margin: 0 0 25px;
line-height: 1.4;
font-family: 'Roboto', sans-serif;
font-size: 18px;
line-height: 1.5;
letter-spacing: 0.5px;
font-size: 15px;
font-weight: 400;
}
.data {
padding-bottom: 75px;
ol, ul {
list-style: none;
}
@media(min-width:768px) {
p {
margin: 0 0 35px;
font-size: 20px;
line-height: 1.6;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
a {
color: #2C9FFF;
-webkit-transition: all .2s ease-in-out;
-moz-transition: all .2s ease-in-out;
transition: all .2s ease-in-out;
outline: none;
}
#HeaderBlock {
background-color: rgba(0, 0, 0, 0.5);
a:hover, a:focus, a:active{
text-decoration: none;
outline: none;
}
a:hover,
a:focus {
text-decoration: none;
color: #8D9BB6;
}
.light {
font-weight: 400;
}
.documentation {
padding-top: 10px;
padding-bottom: 10px;
}
.documentation b {
color: #2C9FFF;
}
.navbar-custom {
margin-bottom: 0;
border-bottom: 1px solid rgba(255,255,255,.3);
text-transform: uppercase;
font-family: Montserrat,"Helvetica Neue",Helvetica,Arial,sans-serif;
background-color: #000;
}
.navbar-custom .navbar-brand {
font-weight: 700;
}
.navbar-custom .navbar-brand:focus {
outline: 0;
}
.navbar-custom .navbar-brand .navbar-toggle {
padding: 4px 6px;
font-size: 16px;
color: #fff;
}
.navbar-custom .navbar-brand .navbar-toggle:focus,
.navbar-custom .navbar-brand .navbar-toggle:active {
outline: 0;
}
.navbar-custom a {
color: #fff;
}
.navbar-custom .nav li a {
-webkit-transition: background .3s ease-in-out;
-moz-transition: background .3s ease-in-out;
transition: background .3s ease-in-out;
}
.navbar-custom .nav li a:hover {
outline: 0;
color: rgba(255,255,255,.8);
background-color: transparent;
}
.navbar-custom .nav li a:focus,
.navbar-custom .nav li a:active {
outline: 0;
background-color: transparent;
}
.navbar-custom .nav li.active {
outline: 0;
}
.navbar-custom .nav li.active a {
background-color: rgba(255,255,255,.3);
}
.navbar-custom .nav li.active a:hover {
color: #fff;
}
@media(min-width:768px) {
.navbar-custom {
padding: 20px 0;
border-bottom: 0;
letter-spacing: 1px;
background: 0 0;
-webkit-transition: background .5s ease-in-out,padding .5s ease-in-out;
-moz-transition: background .5s ease-in-out,padding .5s ease-in-out;
transition: background .5s ease-in-out,padding .5s ease-in-out;
}
.navbar-custom.top-nav-collapse {
padding: 0;
border-bottom: 1px solid rgba(255,255,255,.3);
background: #000;
}
}
.intro {
display: table;
width: 100%;
height: auto;
padding: 100px 0;
text-align: center;
color: #fff;
background: url(../img/background.jpg) no-repeat bottom center scroll;
background-color: #000;
-webkit-background-size: cover;
-moz-background-size: cover;
/***********************************
************************************
Responsive media queries
************************************
***********************************/
.header {
background: url('../img/bg-banner03.jpg') no-repeat fixed;
background-size: cover;
-o-background-size: cover;
min-height: 630px;
position: relative;
}
.intro-minecraft{
background: url(../img/background-minecraft.jpg) no-repeat bottom center scroll;
display: table-cell;
vertical-align: middle;
.navbar-default {
background-color: transparent;
border: 0px;
padding: 20px 0;
transition: all 0.3s;
}
.intro .intro-body .title-heading {
font-size: 30px;
.navbar-brand {
font-size: 36px;
font-family: 'Satisfy', cursive;
}
.intro .intro-body {
display: table-cell;
vertical-align: middle;
}
.intro .intro-body .brand-heading {
font-size: 40px;
}
.intro .intro-body .intro-text {
font-size: 18px;
}
@media(min-width:768px) {
.intro {
height: 100%;
padding: 0;
}
.intro .intro-body .brand-heading {
font-size: 100px;
}
.intro .intro-body .intro-text {
font-size: 26px;
}
}
.btn-circle {
width: 70px;
height: 70px;
margin-top: 15px;
padding: 7px 16px;
border: 2px solid #fff;
border-radius: 100%!important;
font-size: 40px;
.navbar-default .navbar-brand, .navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus {
color: #fff;
background: 0 0;
-webkit-transition: background .3s ease-in-out;
-moz-transition: background .3s ease-in-out;
transition: background .3s ease-in-out;
outline: none;
}
.btn-circle:hover,
.btn-circle:focus {
outline: 0;
color: #fff;
background: rgba(255,255,255,.1);
.navbar-default .navbar-nav > li > a{
font-size: 14px;
font-weight: 400;
color: #fff;
outline: none;
}
.btn-circle i.animated {
-webkit-transition-property: -webkit-transform;
-webkit-transition-duration: 1s;
-moz-transition-property: -moz-transform;
-moz-transition-duration: 1s;
.navbar-default .navbar-nav > li > a:focus, .navbar-default .navbar-nav > li > a:hover {
color: #fffde0;
background-color: transparent;
}
.btn-circle:hover i.animated {
-webkit-animation-name: pulse;
-moz-animation-name: pulse;
-webkit-animation-duration: 1.5s;
-moz-animation-duration: 1.5s;
-webkit-animation-iteration-count: infinite;
-moz-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
-moz-animation-timing-function: linear;
}
@-webkit-keyframes pulse {
0 {
-webkit-transform: scale(1);
transform: scale(1);
}
50% {
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
100% {
-webkit-transform: scale(1);
transform: scale(1);
}
}
@-moz-keyframes pulse {
0 {
-moz-transform: scale(1);
transform: scale(1);
}
50% {
-moz-transform: scale(1.2);
transform: scale(1.2);
}
100% {
-moz-transform: scale(1);
transform: scale(1);
}
}
.content-section {
padding-top: 5px;
text-align: center;
}
.download-section {
width: 100%;
padding: 50px 0;
color: #fff;
background: url(../img/network-banner.png) no-repeat center center scroll;
background-color: #000;
-webkit-background-size: cover;
-moz-background-size: cover;
background-size: cover;
-o-background-size: cover;
}
#map {
width: 100%;
height: 200px;
margin-top: 100px;
}
@media(min-width:767px) {
.content-section {
padding-top: 100px;
padding-bottom: 100px;
}
.download-section {
padding: 100px 0;
}
#map {
height: 400px;
margin-top: 250px;
}
}
.btn {
border-radius: 0;
text-transform: uppercase;
font-family: Montserrat,"Helvetica Neue",Helvetica,Arial,sans-serif;
font-weight: 400;
-webkit-transition: all .3s ease-in-out;
-moz-transition: all .3s ease-in-out;
transition: all .3s ease-in-out;
}
.btn-default {
border: 1px solid #2C9FFF;
color: #2C9FFF;
.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:focus, .navbar-default .navbar-nav > .active > a:hover {
color: #fffde0;
background-color: transparent;
}
.btn-default:hover,
.btn-default:focus {
border: 1px solid #fff;
outline: 0;
color: #000;
background-color: #fff;
.top-nav-collapse {
padding: 0;
background: rgba(50,60,70, 0.9);
}
ul.banner-social-buttons {
margin-top: 0;
.bg-color{
background-color: RGBA(0, 0, 0, 0.67);
min-height: 650px;
}
.section-divider {
display: none;
.navbar-border{
}
.banner-text{
border-left: 5px solid #BE2525;
padding: 15px 40px;
color: #fff;
margin-top: 170px;
}
.banner-text h2, .banner-text p{
font-size: 40px;
font-weight: 400;
font-family: 'Questrial', sans-serif;
}
.banner-text h2 span{
font-family: 'Satisfy', cursive;
}
.overlay-detail{
margin: 0 auto;
}
.overlay-detail a i {
text-align: center;
position: absolute;
bottom: -140px;
font-size: 24px;
color: #fff;
width: 40px;
height: 40px;
border: 1px solid #fff;
line-height: 40px;
border-radius: 50%;
}
.deco{
font-family: 'Satisfy', cursive;
@media screen and (max-width:767px) {
#logo_about {
display: none;
}
.section-divider {
}
#about{
background: url('../img/about-banner.jpg') no-repeat;
background-size: cover;
margin-bottom: -3px;
}
.section-padding{
padding: 60px 0px;
}
.title{
font-size: 24px;
margin-bottom: 50px;
}
.title-text{
padding: 0px 25px 0px 0px;
border-right: 5px solid #BE2525;
font-size: 24px;
}
.about-text p{
color: #444;
}
.abt-list li{
padding: 5px 0px;
font-size: 18px;
font-weight: 400;
}
#portfolio{
background-color: #f0f1e9;
}
.grid-padding{
padding: 0 8px;
}
.grid-padding img{
margin-bottom: 15px;
}
.padding-right-zero{
padding-right: 0px !important;
}
#myGrid{
margin-top: 50px;
}
.test-sec blockquote {
background: #eee;
display: block;
}
.heading_large {
display: none;
}
font-size: 14px;
line-height: 20px;
padding: 15px;
position: relative;
}
.test-sec blockquote::after {
content: '';
position: absolute;
bottom: -14px;
margin-left: 10px;
border-top: 14px solid #eee;
border-left: 14px solid transparent;
border-right: 14px solid transparent;
}
blockquote {
padding: 10px 20px;
margin: 0 0 20px;
font-size: 17.5px;
border-left: 5px solid RGBA(0, 0, 0, 0.18);
}
.test-sec .carousel-info span {
display: block;
}
.test-sec span.testimonials-name {
color: #62646f;
font-weight: 600;
margin: 16px 0 5px;
}
#contact {
width: 100%;
background-color: RGBA(8, 7, 7, 0.92);
}
@media screen and (min-width:768px) {
.heading_small {
display: none;
}
#heading_large {
width: 512px;
}
#contact .btn-primary {
background: #BE2525;
border: 1px solid #BE2525;
}
@media(max-width:1199px) {
ul.banner-social-buttons {
margin-top: 15px;
}
.validation {
color: red;
display:none;
margin: 0 0 20px;
font-weight:400;
font-size:13px;
}
@media(max-width:767px) {
ul.banner-social-buttons li {
display: block;
margin-bottom: 20px;
padding: 0;
}
#sendmessage {
color: green;
border:1px solid green;
background: #fff;
display:none;
text-align:center;
padding:15px;
font-weight:600;
margin-bottom:15px;
}
ul.banner-social-buttons li:last-child {
margin-bottom: 0;
}
#errormessage {
color: red;
display:none;
border:1px solid red;
text-align:center;
padding:15px;
font-weight:600;
margin-bottom:15px;
background: #fff;
}
#sendmessage.show, #errormessage.show, .show {
display:block;
}
footer {
padding: 50px 0;
padding: 40px 0;
background: #F2F3EB;
}
footer p {
margin: 0;
.footer a {
color: #BE2525;
}
::-moz-selection {
text-shadow: none;
background: #879FBB;
background: rgba(255,255,255,.2);
.footer__navigation li, .social-list li{
display: inline-block;
}
.contact-sec h2 {
font-size: 28px;
color: #fff;
font-weight: 600;
padding: 15px 0px;
}
.footer__navigation li a
{
display: inline-block;
color: #767676;
font-weight: 600;
font-variant-ligatures: common-ligatures;
font-size: 1.2em;
line-height: 1.625em;
margin-top: 0;
margin-bottom: 1.625em;
padding-right: 10px;
}
.contact-sec p {
color: #fff;
font-size: 18px;
padding: 16px 0px 24px;
}
.contact-sec i{
padding-right: 15px;
}
.contact-sec a {
color: #FFF;
background-color: RGBA(174, 142, 142, 0.7);
display: inline-block;
padding: 16px 34px;
font-size: 18px;
transition: all 0.5s ease-in 0s;
}
.carousel-info, blockquote {
float: left;
}
.social-list li{
transition: 0.2s linear;
-webkit-transition: 0.2s linear;
-moz-transition: 0.2s linear;
opacity: .5;
display: inline-block;
margin: 0;
}
.social-list li a{
font-size: 28px;
margin-right: 15px;
}
.type-underline, .type-underline:hover{
color: #767676;
}
.footer__lower {
margin-top: 3.25em;
}
.type--fine-print{
color: #767676;
}
.navbar-toggle {
position: relative;
background-color: #fff;
border-radius: 4px;
}
.navbar-nav > li > a {
padding-top: 24px;
padding-bottom: 24px;
}
.navbar-brand{
margin-top: 9px;
}
.grid-item { width: 200px; }
.grid-item--width2 { width: 400px; }
::selection {
text-shadow: none;
background: #879FBB;
background: rgba(255,255,255,.2);
}
img::selection {
background: 0 0;
}
img::-moz-selection {
background: 0 0;
}
body {
webkit-tap-highlight-color: rgba(255,255,255,.2);
/***********************************
************************************
Responsive media queries
************************************
***********************************/
@media (min-width: 551px) and (max-width: 980px){
.title-text{
margin-bottom: 15px;
}
}
@media (min-width: 100px) and (max-width: 550px) {
.navbar-nav > li > a {
padding-top: 15px;
padding-bottom: 15px;
}
.navbar-brand{
margin-top: 0px;
}
.carousel-info {
margin-bottom: 30px;
}
.type--fine-print{
text-align: center;
}
.text-center-xs{
text-align: center !important;
}
.social-list{
margin-bottom: 15px;
}
.banner-text h2, .banner-text p {
font-size: 30px;
}
.title-text{
margin-bottom: 15px;
}
}

BIN
img/about-banner.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
img/bg-banner03.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

BIN
img/port01.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

BIN
img/port02.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

BIN
img/port03.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 KiB

BIN
img/portfolio01.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

BIN
img/portfolio02.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -1,200 +1,247 @@
<!DOCTYPE html>
<html lang="en">
<head>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Laura Bootstrap Theme</title>
<meta name="description" content="Free Bootstrap Theme by BootstrapMade.com">
<meta name="keywords" content="free website templates, free bootstrap themes, free template, free bootstrap, free website template">
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="author" content="enpaul@enpaul.net"/>
<meta name="description" content="ENPaul personal landing page and Network Services website"/>
<meta name="keywords" content="enpaul, network, operations, networking, plex, media, server, adds, active, directory, wpi, worcester, polytechnic, institute, boston, mechanical, engineering, solidworks, home, lab, homelab, solid, works, autocad, cad, domain, windows, server"/>
<meta name="robots" content="index,follow"/>
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Fira+Sans|Roboto:300,400|Questrial|Satisfy">
<link rel="stylesheet" type="text/css" href="css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="css/animate.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<meta property="og:title" content="ENPaul"/>
<meta property='og:locale' content="en_US"/>
<meta property='og:description' content="ENPaul personal landing page and Network Services website"/>
<meta property="og:type" content="Website"/>
<meta property='og:site_name' content="ENPaul Network"/>
<meta property="og:url" content="https://enpaul.net/"/>
<!-- =======================================================
Theme Name: Laura
Theme URL: https://bootstrapmade.com/laura-free-creative-bootstrap-theme/
Author: BootstrapMade.com
Author URL: https://bootstrapmade.com
======================================================= -->
</head>
<title>ENPaul</title>
<link rel="shortcut icon" href="img\e-b.png">
<link href="css/bootstrap.css" rel="stylesheet">
<link href="css/font-awesome.min.css" rel="stylesheet" type="text/css">
<link href="css/hexagons.min.css" rel="stylesheet" type="text/css">
<link href="css/style.css" rel="stylesheet">
<script src="js/jquery.js"></script>
<script src="js/hexagons.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/jquery.easing.min.js"></script>
<script src="js/common.js"></script>
</head>
<body id="page-top" data-spy="scroll" data-target=".navbar-fixed-top">
<nav class="navbar navbar-custom navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-main-collapse">
<span class="light">MENU</span><!--<i class="fa fa-bars"></i>-->
</button>
<a class="navbar-brand page-scroll" href="#page-top"><span class="light"><img src="img/e-w.png" width="32">&nbsp;&nbsp; Home</span></a>
</div>
<div class="collapse navbar-collapse navbar-right navbar-main-collapse">
<ul class="nav navbar-nav">
<li class="hidden"><a href="#page-top"></a></li>
<!--<li><a class="page-scroll" href="#projects">Projects</a></li>-->
<li><a class="page-scroll" href="#services">Services</a></li>
<!--<li><a class="page-scroll" href="#network">Network</a></li>-->
<li><a class="page-scroll" href="#about">About</a></li>
</ul>
</div>
</div>
</nav>
<header class="intro">
<div class="intro-body">
<body id="myPage" data-spy="scroll" data-target=".navbar" data-offset="60" onload="myFunction()">
<div class="header">
<div class="bg-color">
<header id="main-header">
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#lauraMenu">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Laura</a>
</div>
<div class="collapse navbar-collapse" id="lauraMenu">
<ul class="nav navbar-nav navbar-right navbar-border">
<li class="active"><a href="#main-header">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#portfolio">Portfolio</a></li>
<li><a href="#testimonial">Testimonial</a></li>
<li><a href="#contact">Contact Us</a></li>
</ul>
</div>
</div>
</nav>
</header>
<div class="wrapper">
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h1 class="brand-heading">
<img class="heading_large" style="max-width: 512px;" src="img/logo.png"/>
<img class="heading_small" style="max-width: 128px;" src="img/e-w.png"/>
</h1>
<hr>
<p>Student - Tinkerer - Programmer - <i style="color: #808080;">(aspiring)</i> Engineer</p>
<hr>
<ul class="list-inline">
<li>
<a href="mailto:enpaul@enpaul.net"><span class="hb hb-sm"><i class="fa fa-envelope-o"></i></span></a>
</li>
<li>
<a href="https://download.enpaul.net/enpaul-resume.pdf" target="_blank"><span class="hb hb-sm"><i class="fa fa-file-text-o"></i></span></a>
</li>
<li>
<a target="_blank" href="https://twitter.com/theenpaul"><span class="hb hb-sm"><i class="fa fa-twitter"></i></span></a>
</li>
<li>
<a target="_blank" href="https://plus.google.com/+EthanPaul42"><span class="hb hb-sm"><i class="fa fa-google-plus"></i></span></a>
</li>
<li>
<a target="_blank" href="https://www.linkedin.com/in/enpaul"><span class="hb hb-sm"><i class="fa fa-linkedin"></i></span></a>
</li>
</ul>
<div class="col-md-12 wow fadeIn delay-05s">
<div class="banner-text">
<h2>Hi, I am <span>Laura</span> Thomson,</h2>
<p>A Creative Photographer <br>& Designer</p>
</div>
<div class="overlay-detail text-center">
<a href="#about"><i class="fa fa-angle-down"></i></a>
</div>
</div>
</div>
</div>
</div>
</header>
<!--<hr class="section-divider">
<section id="projects" class="container content-section text-center">
</div>
</div>
<section id="about" class="section-padding wow fadeIn delay-05s">
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<h2>Personal Projects</h2>
<i class="fa fa-folder-open fa-5x" aria-hidden="true"></i>
<br><br>
<p>
The underlying infrastructure of the ENPaul Network (ENPN) helps to facilitate a number of pet-projects that are constantly cycled from under development, to abandoned, to broken, and back to under development. These projects are, at best, curiosities and should be seen as such.
<br>
Enter at your own risk.
<br>
</p>
<ul class="list-inline banner-social-buttons">
<div class="col-md-6 text-right">
<h2 class="title-text">
Meet<br><span class="deco">Laura</span> Thomson
</h2>
</div>
<div class="col-md-6 text-left">
<div class="about-text">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<p>&nbsp;</p>
<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>&nbsp;</p>
<ul class="abt-list">
<li>- Excepteur sint occaecat cupidatat non proident.</li>
<li>- Duis aute irure dolor in reprehenderit.</li>
<li>- Ask the experts.</li>
</ul>
</div>
</div>
</div>
</div>
</section>
<section id="portfolio" class="section-padding wow fadeInUp delay-05s">
<div class="container">
<div class="row">
<div class="col-md-12">
<h2 class="title text-center">Let's <span class="deco">See</span> My Work</h2>
</div>
<div class="col-md-12">
<div id="myGrid" class="grid-padding">
<div class="col-md-4 col-sm-4 padding-right-zero">
<img src="img/portfolio01.jpg" class="img-responsive">
<img src="img/port01.jpg" class="img-responsive">
<img src="img/port02.jpg" class="img-responsive">
<img src="img/portfolio01.jpg" class="img-responsive">
</div>
<div class="col-md-4 col-sm-4 padding-right-zero">
<img src="img/portfolio02.jpg" class="img-responsive">
<img src="img/port01.jpg" class="img-responsive">
<img src="img/port02.jpg" class="img-responsive">
<img src="img/portfolio01.jpg" class="img-responsive">
<img src="img/port03.jpg" class="img-responsive">
</div>
<div class="col-md-4 col-sm-4 padding-right-zero">
<img src="img/port01.jpg" class="img-responsive">
<img src="img/portfolio01.jpg" class="img-responsive">
<img src="img/portfolio02.jpg" class="img-responsive">
<img src="img/port03.jpg" class="img-responsive">
<img src="img/portfolio02.jpg" class="img-responsive">
<img src="img/port02.jpg" class="img-responsive">
</div>
</div>
</div>
</div>
</div>
</section>
<section id="testimonial" class="section-padding wow fadeInUp">
<div class="container">
<div class="row">
<h2 class="title text-center">See What Our <span class="deco">Client</span> Are Saying ?</h2>
<div class="test-sec">
<div class="col-sm-4">
<blockquote>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sed dapibus leo nec ornare diamsed commodo nibh ante facilisis bibendum dolor feugiat at. </p>
</blockquote>
<div class="carousel-info">
<div class="pull-left"> <span class="testimonials-name">John Doe</span> <span class="testimonials-post">CEO, Company Inc.</span> </div>
</div>
</div>
<div class="col-sm-4">
<blockquote>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sed dapibus leo nec ornare diamsed commodo nibh ante facilisis bibendum dolor feugiat at. </p>
</blockquote>
<div class="carousel-info">
<div class="pull-left"> <span class="testimonials-name">John Doe</span> <span class="testimonials-post">CEO, Company Inc.</span> </div>
</div>
</div>
<div class="col-sm-4">
<blockquote>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sed dapibus leo nec ornare diamsed commodo nibh ante facilisis bibendum dolor feugiat at. </p>
</blockquote>
<div class="carousel-info">
<div class="pull-left"> <span class="testimonials-name">John Doe</span> <span class="testimonials-post">CEO, Company Inc.</span> </div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="contact" class="section-padding wow fadeIn delay-05s">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="contact-sec text-center">
<h2>Want To <span class="deco">Hire</span> Me?</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.</p>
</div>
</div>
<div class="col-md-8 col-md-push-2">
<div id="sendmessage">Your message has been sent. Thank you!</div>
<div id="errormessage"></div>
<form action="" method="post" role="form" class="contactForm">
<div class="form-group">
<input type="text" name="name" class="form-control" id="name" placeholder="Your Name" data-rule="minlen:4" data-msg="Please enter at least 4 chars" />
<div class="validation"></div>
</div>
<div class="form-group">
<input type="email" class="form-control" name="email" id="email" placeholder="Your Email" data-rule="email" data-msg="Please enter a valid email" />
<div class="validation"></div>
</div>
<div class="form-group">
<input type="text" class="form-control" name="subject" id="subject" placeholder="Subject" data-rule="minlen:4" data-msg="Please enter at least 8 chars of subject" />
<div class="validation"></div>
</div>
<div class="form-group">
<textarea class="form-control" name="message" rows="5" data-rule="required" data-msg="Please write something for us" placeholder="Message"></textarea>
<div class="validation"></div>
</div>
<div class="text-center"><button type="submit" class="btn btn-primary btn-lg">Send Message</button></div>
</form>
</div>
</div>
</div>
</section>
<footer class="footer-2 text-center-xs bg--white">
<div class="container">
<!--end row-->
<div class="row">
<div class="col-md-6">
<div class="footer">
© Copyright Laura Theme. All Rights Reserved
<div class="credits">
<!--
All the links in the footer should remain intact.
You can delete the links only if you purchased the pro version.
Licensing information: https://bootstrapmade.com/license/
Purchase the pro version with working PHP/AJAX contact form: https://bootstrapmade.com/buy/?theme=Laura
-->
Designed by <a href="https://bootstrapmade.com/">BootstrapMade.com</a>
</div>
</div>
</div>
<div class="col-md-6 text-right">
<ul class="social-list">
<li>
<a href="/network" class="btn btn-default btn-lg"><i class="fa fa-arrow-circle-o-right"></i> <span class="network-name"><b>Learn More</b></span></a>
<a href="#"><i class="fa fa-twitter"></i></a>
</li>
<li>
<a href="#"><i class="fa fa-dribbble"></i></a>
</li>
<li>
<a href="#"><i class="fa fa-vimeo"></i></a>
</li>
<li>
<a href="#"><i class="fa fa-instagram"></i></a>
</li>
</ul>
</div>
</div>
</section>-->
<!--end row-->
</div>
</footer>
<hr class="section-divider">
<script src="js/jquery.min.js"></script>
<script src="js/jquery.easing.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/jquery.bxslider.min.js"></script>
<script src="js/wow.js"></script>
<script src="js/custom.js"></script>
<script src="contactform/contactform.js"></script>
<section id="services" class="container content-section text-center">
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<h2>Network Services</h2>
<i class="fa fa-cogs fa-5x" aria-hidden="true"></i>
<br><br>
<p>
Providing useful network services is the primary goal of the ENPaul Network (ENPN). These services provide means of entertainment, data management, and security for the network users.
<br><br>
The full list of services provided by the ENPN can be found at the link below. Alternatively, use one of the other links to directly access specific service web-interfaces.
<br>
</p>
<ul class="list-inline banner-social-buttons">
<li>
<a href="/services" class="btn btn-default btn-lg"><i class="fa fa-arrow-circle-o-right"></i> <span class="network-name"><b>Learn More</b></span></a>
</li>
<br><br><p><i>Direct service links</i></p>
<li>
<a href="https://plex.enpaul.net" class="btn btn-default btn-lg"><i class="fa fa-ticket"></i> <span class="network-name"><b>Plex Media Server</b></span></a>
</li>
<li>
<a href="https://enpaul.net/services/vpn" class="btn btn-default btn-lg"><i class="fa fa-lock"></i> <span class="network-name"><b>VPN</b></span></a>
</li>
<li>
<a href="https://storage.enpaul.net" class="btn btn-default btn-lg"><i class="fa fa-cloud"></i> <span class="network-name"><b>Storage</b></span></a>
</li>
<li>
<a href="https://gitlab.enpaul.net" class="btn btn-default btn-lg"><i class="fa fa-gitlab"></i> <span class="network-name"><b>GitLab</b></span></a>
</li>
</ul>
</div>
</div>
</section>
</body>
<!--<hr class="section-divider">
<section id="network" class="container content-section text-center">
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<h2>The ENPaul Network</h2>
<i class="fa fa-sitemap fa-5x" aria-hidden="true"></i>
<br><br>
<p>
The ENPaul Network (ENPN) is a <a href="https://www.reddit.com/r/homelab/">home-lab environment</a> maintained by ENPaul for the purposes of fun, curiosity, experimentation, and support for his <a href="#projects">personal projects</a>.
<br><br>
The ENPN hosts two VMWare ESXi hypervisors, a Microsoft Active Directory Domain, federated authentication services including LDAP and RADIUS, NAS systems, and a plethora of applications and utilities.
</p>
<ul class="list-inline banner-social-buttons">
<li>
<a href="/network" class="btn btn-default btn-lg"><i class="fa fa-arrow-circle-o-right"></i> <span class="network-name"><b>Learn More</b></span></a>
</li>
</ul>
</div>
</div>
</section>-->
<hr class="section-divider">
<section id="about" class="container content-section text-center">
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<h2>About E.N.Paul</h2>
<img id="logo_about" src="img\e-w.png" width="128">
<br><br>
<p>
EN Paul is a Mechanical Engineering student at <a target="_blank" href="https://wpi.edu">Worcester Polytechnic Institute</a> in Worcester Massachusets with way too much time on his hands. He works at <a target="_blank" href="http://www.wpi.edu/+netops">WPI Network Operations</a>, plays around with <a target="_blank" href="http://www.solidworks.com">3DS SolidWorks</a>, and runs this website when he's bored.
<br><br>
He doesn't want donations, but asks that if you have a joke or funny story to share that you send it to him.
<br>
</p>
</div>
</div>
</section>
<footer>
<div class="container text-center">
<p style="color: #606060;"><i>&copy;2017 E.N.Paul - 2017-11-29</i></p>
</div>
</footer>
</body>
</html>

10
js/bootstrap.min.js vendored

File diff suppressed because one or more lines are too long

51
js/custom.js Normal file
View File

@ -0,0 +1,51 @@
(function ($) {
// Init Wow
wow = new WOW( {
animateClass: 'animated',
offset: 100
});
wow.init();
// Navigation scrolls
$('.navbar-nav li a').bind('click', function(event) {
$('.navbar-nav li').removeClass('active');
$(this).closest('li').addClass('active');
var $anchor = $(this);
var nav = $($anchor.attr('href'));
if (nav.length) {
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset().top
}, 1500, 'easeInOutExpo');
event.preventDefault();
}
});
// About section scroll
$(".overlay-detail a").on('click', function(event) {
event.preventDefault();
var hash = this.hash;
$('html, body').animate({
scrollTop: $(hash).offset().top
}, 900, function(){
window.location.hash = hash;
});
});
//jQuery to collapse the navbar on scroll
$(window).scroll(function() {
if ($(".navbar-default").offset().top > 50) {
$(".navbar-fixed-top").addClass("top-nav-collapse");
} else {
$(".navbar-fixed-top").removeClass("top-nav-collapse");
}
});
// Testimonials Slider
$('.bxslider').bxSlider({
adaptiveHeight: true,
mode: 'fade'
});
})(jQuery);

View File

@ -8,14 +8,14 @@
*
* Open source under the BSD License.
*
* Copyright é 2001 Robert Penner
* Copyright © 2001 Robert Penner
* All rights reserved.
*
* TERMS OF USE - jQuery Easing
*
* Open source under the BSD License.
*
* Copyright é 2008 George McGinley Smith
* Copyright © 2008 George McGinley Smith
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
@ -41,4 +41,4 @@
* OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,f,a,h,g){return jQuery.easing[jQuery.easing.def](e,f,a,h,g)},easeInQuad:function(e,f,a,h,g){return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,f,a,h,g){return h*(f/=g)*f*f*f+a},easeOutQuart:function(e,f,a,h,g){return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,f,a,h,g){return h*(f/=g)*f*f*f*f+a},easeOutQuint:function(e,f,a,h,g){return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,f,a,h,g){return -h*Math.cos(f/g*(Math.PI/2))+h+a},easeOutSine:function(e,f,a,h,g){return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,f,a,h,g){return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,f,a,h,g){return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){if(f==0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,f,a,h,g){return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},easeOutCirc:function(e,f,a,h,g){return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,f,a,h,g){if((f/=g/2)<1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return -(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e},easeOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return g*Math.pow(2,-10*h)*Math.sin((h*k-i)*(2*Math.PI)/j)+l+e},easeInOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k/2)==2){return e+l}if(!j){j=k*(0.3*1.5)}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}if(h<1){return -0.5*(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e}return g*Math.pow(2,-10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j)*0.5+l+e},easeInBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*(f/=h)*f*((g+1)*f-g)+a},easeOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*((f=f/h-1)*f*((g+1)*f+g)+1)+a},easeInOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}if((f/=h/2)<1){return i/2*(f*f*(((g*=(1.525))+1)*f-g))+a}return i/2*((f-=2)*f*(((g*=(1.525))+1)*f+g)+2)+a},easeInBounce:function(e,f,a,h,g){return h-jQuery.easing.easeOutBounce(e,g-f,0,h,g)+a},easeOutBounce:function(e,f,a,h,g){if((f/=g)<(1/2.75)){return h*(7.5625*f*f)+a}else{if(f<(2/2.75)){return h*(7.5625*(f-=(1.5/2.75))*f+0.75)+a}else{if(f<(2.5/2.75)){return h*(7.5625*(f-=(2.25/2.75))*f+0.9375)+a}else{return h*(7.5625*(f-=(2.625/2.75))*f+0.984375)+a}}}},easeInOutBounce:function(e,f,a,h,g){if(f<g/2){return jQuery.easing.easeInBounce(e,f*2,0,h,g)*0.5+a}return jQuery.easing.easeOutBounce(e,f*2-g,0,h,g)*0.5+h*0.5+a}});
jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,f,a,h,g){return jQuery.easing[jQuery.easing.def](e,f,a,h,g)},easeInQuad:function(e,f,a,h,g){return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,f,a,h,g){return h*(f/=g)*f*f*f+a},easeOutQuart:function(e,f,a,h,g){return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,f,a,h,g){return h*(f/=g)*f*f*f*f+a},easeOutQuint:function(e,f,a,h,g){return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,f,a,h,g){return -h*Math.cos(f/g*(Math.PI/2))+h+a},easeOutSine:function(e,f,a,h,g){return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,f,a,h,g){return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,f,a,h,g){return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){if(f==0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,f,a,h,g){return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},easeOutCirc:function(e,f,a,h,g){return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,f,a,h,g){if((f/=g/2)<1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return -(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e},easeOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return g*Math.pow(2,-10*h)*Math.sin((h*k-i)*(2*Math.PI)/j)+l+e},easeInOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k/2)==2){return e+l}if(!j){j=k*(0.3*1.5)}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}if(h<1){return -0.5*(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e}return g*Math.pow(2,-10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j)*0.5+l+e},easeInBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*(f/=h)*f*((g+1)*f-g)+a},easeOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*((f=f/h-1)*f*((g+1)*f+g)+1)+a},easeInOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}if((f/=h/2)<1){return i/2*(f*f*(((g*=(1.525))+1)*f-g))+a}return i/2*((f-=2)*f*(((g*=(1.525))+1)*f+g)+2)+a},easeInBounce:function(e,f,a,h,g){return h-jQuery.easing.easeOutBounce(e,g-f,0,h,g)+a},easeOutBounce:function(e,f,a,h,g){if((f/=g)<(1/2.75)){return h*(7.5625*f*f)+a}else{if(f<(2/2.75)){return h*(7.5625*(f-=(1.5/2.75))*f+0.75)+a}else{if(f<(2.5/2.75)){return h*(7.5625*(f-=(2.25/2.75))*f+0.9375)+a}else{return h*(7.5625*(f-=(2.625/2.75))*f+0.984375)+a}}}},easeInOutBounce:function(e,f,a,h,g){if(f<g/2){return jQuery.easing.easeInBounce(e,f*2,0,h,g)*0.5+a}return jQuery.easing.easeOutBounce(e,f*2-g,0,h,g)*0.5+h*0.5+a}});

5
js/jquery.min.js vendored Normal file

File diff suppressed because one or more lines are too long

402
js/wow.js Normal file
View File

@ -0,0 +1,402 @@
(function() {
var MutationObserver, Util, WeakMap,
__bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
__indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
Util = (function() {
function Util() {}
Util.prototype.extend = function(custom, defaults) {
var key, value;
for (key in defaults) {
value = defaults[key];
if (custom[key] == null) {
custom[key] = value;
}
}
return custom;
};
Util.prototype.isMobile = function(agent) {
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(agent);
};
return Util;
})();
WeakMap = this.WeakMap || this.MozWeakMap || (WeakMap = (function() {
function WeakMap() {
this.keys = [];
this.values = [];
}
WeakMap.prototype.get = function(key) {
var i, item, _i, _len, _ref;
_ref = this.keys;
for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {
item = _ref[i];
if (item === key) {
return this.values[i];
}
}
};
WeakMap.prototype.set = function(key, value) {
var i, item, _i, _len, _ref;
_ref = this.keys;
for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {
item = _ref[i];
if (item === key) {
this.values[i] = value;
return;
}
}
this.keys.push(key);
return this.values.push(value);
};
return WeakMap;
})());
MutationObserver = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (MutationObserver = (function() {
function MutationObserver() {
console.warn('MutationObserver is not supported by your browser.');
console.warn('WOW.js cannot detect dom mutations, please call .sync() after loading new content.');
}
MutationObserver.notSupported = true;
MutationObserver.prototype.observe = function() {};
return MutationObserver;
})());
this.WOW = (function() {
WOW.prototype.defaults = {
boxClass: 'wow',
animateClass: 'animated',
offset: 0,
mobile: true,
live: true
};
function WOW(options) {
if (options == null) {
options = {};
}
this.scrollCallback = __bind(this.scrollCallback, this);
this.scrollHandler = __bind(this.scrollHandler, this);
this.start = __bind(this.start, this);
this.scrolled = true;
this.config = this.util().extend(options, this.defaults);
this.animationNameCache = new WeakMap();
}
WOW.prototype.init = function() {
var _ref;
this.element = window.document.documentElement;
if ((_ref = document.readyState) === "interactive" || _ref === "complete") {
this.start();
} else {
document.addEventListener('DOMContentLoaded', this.start);
}
return this.finished = [];
};
WOW.prototype.start = function() {
var box, _i, _len, _ref;
this.stopped = false;
this.boxes = (function() {
var _i, _len, _ref, _results;
_ref = this.element.getElementsByClassName(this.config.boxClass);
_results = [];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
box = _ref[_i];
_results.push(box);
}
return _results;
}).call(this);
this.all = (function() {
var _i, _len, _ref, _results;
_ref = this.boxes;
_results = [];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
box = _ref[_i];
_results.push(box);
}
return _results;
}).call(this);
if (this.boxes.length) {
if (this.disabled()) {
this.resetStyle();
} else {
_ref = this.boxes;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
box = _ref[_i];
this.applyStyle(box, true);
}
window.addEventListener('scroll', this.scrollHandler, false);
window.addEventListener('resize', this.scrollHandler, false);
this.interval = setInterval(this.scrollCallback, 50);
}
}
if (this.config.live) {
return new MutationObserver((function(_this) {
return function(records) {
var node, record, _j, _len1, _results;
_results = [];
for (_j = 0, _len1 = records.length; _j < _len1; _j++) {
record = records[_j];
_results.push((function() {
var _k, _len2, _ref1, _results1;
_ref1 = record.addedNodes || [];
_results1 = [];
for (_k = 0, _len2 = _ref1.length; _k < _len2; _k++) {
node = _ref1[_k];
_results1.push(this.doSync(node));
}
return _results1;
}).call(_this));
}
return _results;
};
})(this)).observe(document.body, {
childList: true,
subtree: true
});
}
};
WOW.prototype.stop = function() {
this.stopped = true;
window.removeEventListener('scroll', this.scrollHandler, false);
window.removeEventListener('resize', this.scrollHandler, false);
if (this.interval != null) {
return clearInterval(this.interval);
}
};
WOW.prototype.sync = function(element) {
if (MutationObserver.notSupported) {
return this.doSync(this.element);
}
};
WOW.prototype.doSync = function(element) {
var box, _i, _len, _ref, _results;
if (!this.stopped) {
if (element == null) {
element = this.element;
}
if (element.nodeType !== 1) {
return;
}
element = element.parentNode || element;
_ref = element.getElementsByClassName(this.config.boxClass);
_results = [];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
box = _ref[_i];
if (__indexOf.call(this.all, box) < 0) {
this.applyStyle(box, true);
this.boxes.push(box);
this.all.push(box);
_results.push(this.scrolled = true);
} else {
_results.push(void 0);
}
}
return _results;
}
};
WOW.prototype.show = function(box) {
this.applyStyle(box);
return box.className = "" + box.className + " " + this.config.animateClass;
};
WOW.prototype.applyStyle = function(box, hidden) {
var delay, duration, iteration;
duration = box.getAttribute('data-wow-duration');
delay = box.getAttribute('data-wow-delay');
iteration = box.getAttribute('data-wow-iteration');
return this.animate((function(_this) {
return function() {
return _this.customStyle(box, hidden, duration, delay, iteration);
};
})(this));
};
WOW.prototype.animate = (function() {
if ('requestAnimationFrame' in window) {
return function(callback) {
return window.requestAnimationFrame(callback);
};
} else {
return function(callback) {
return callback();
};
}
})();
WOW.prototype.resetStyle = function() {
var box, _i, _len, _ref, _results;
_ref = this.boxes;
_results = [];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
box = _ref[_i];
_results.push(box.setAttribute('style', 'visibility: visible;'));
}
return _results;
};
WOW.prototype.customStyle = function(box, hidden, duration, delay, iteration) {
if (hidden) {
this.cacheAnimationName(box);
}
box.style.visibility = hidden ? 'hidden' : 'visible';
if (duration) {
this.vendorSet(box.style, {
animationDuration: duration
});
}
if (delay) {
this.vendorSet(box.style, {
animationDelay: delay
});
}
if (iteration) {
this.vendorSet(box.style, {
animationIterationCount: iteration
});
}
this.vendorSet(box.style, {
animationName: hidden ? 'none' : this.cachedAnimationName(box)
});
return box;
};
WOW.prototype.vendors = ["moz", "webkit"];
WOW.prototype.vendorSet = function(elem, properties) {
var name, value, vendor, _results;
_results = [];
for (name in properties) {
value = properties[name];
elem["" + name] = value;
_results.push((function() {
var _i, _len, _ref, _results1;
_ref = this.vendors;
_results1 = [];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
vendor = _ref[_i];
_results1.push(elem["" + vendor + (name.charAt(0).toUpperCase()) + (name.substr(1))] = value);
}
return _results1;
}).call(this));
}
return _results;
};
WOW.prototype.vendorCSS = function(elem, property) {
var result, style, vendor, _i, _len, _ref;
style = window.getComputedStyle(elem);
result = style.getPropertyCSSValue(property);
_ref = this.vendors;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
vendor = _ref[_i];
result = result || style.getPropertyCSSValue("-" + vendor + "-" + property);
}
return result;
};
WOW.prototype.animationName = function(box) {
var animationName;
try {
animationName = this.vendorCSS(box, 'animation-name').cssText;
} catch (_error) {
animationName = window.getComputedStyle(box).getPropertyValue('animation-name');
}
if (animationName === 'none') {
return '';
} else {
return animationName;
}
};
WOW.prototype.cacheAnimationName = function(box) {
return this.animationNameCache.set(box, this.animationName(box));
};
WOW.prototype.cachedAnimationName = function(box) {
return this.animationNameCache.get(box);
};
WOW.prototype.scrollHandler = function() {
return this.scrolled = true;
};
WOW.prototype.scrollCallback = function() {
var box;
if (this.scrolled) {
this.scrolled = false;
this.boxes = (function() {
var _i, _len, _ref, _results;
_ref = this.boxes;
_results = [];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
box = _ref[_i];
if (!(box)) {
continue;
}
if (this.isVisible(box)) {
this.show(box);
continue;
}
_results.push(box);
}
return _results;
}).call(this);
if (!(this.boxes.length || this.config.live)) {
return this.stop();
}
}
};
WOW.prototype.offsetTop = function(element) {
var top;
while (element.offsetTop === void 0) {
element = element.parentNode;
}
top = element.offsetTop;
while (element = element.offsetParent) {
top += element.offsetTop;
}
return top;
};
WOW.prototype.isVisible = function(box) {
var bottom, offset, top, viewBottom, viewTop;
offset = box.getAttribute('data-wow-offset') || this.config.offset;
viewTop = window.pageYOffset;
viewBottom = viewTop + Math.min(this.element.clientHeight, innerHeight) - offset;
top = this.offsetTop(box);
bottom = top + box.clientHeight;
return top <= viewBottom && bottom >= viewTop;
};
WOW.prototype.util = function() {
return this._util != null ? this._util : this._util = new Util();
};
WOW.prototype.disabled = function() {
return !this.config.mobile && this.util().isMobile(navigator.userAgent);
};
return WOW;
})();
}).call(this);