Browse Source

Hiperion sito blu 0.1

sanesi 1 year ago
parent
commit
68647eefca

+ 760 - 0
css/style.min.css

@@ -0,0 +1,760 @@
+/*
+ * Roxy: Bootstrap template by GettTemplates.com
+ * https://gettemplates.co/roxy
+ */
+html, body {
+  width: 100%;
+  overflow-x: hidden; }
+
+body {
+  font-family: 'Lato', sans-serif;
+  font-weight: 300; }
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+.h1,
+.h2,
+.h3,
+.h4,
+.h5,
+.h6 {
+  font-family: 'Work Sans', sans-serif;
+  margin-top: 0; }
+
+a {
+  color: #B5D3E7;
+  transition: all .3s ease-in-out; }
+
+a:focus,
+button:focus {
+  outline: none; }
+
+.btn:hover,
+a:hover {
+  text-decoration: none;
+  color: #21465f; }
+
+img {
+  max-width: 100%; }
+
+.bg-fixed {
+  background-size: cover; }
+
+.bg-grey {
+  background-color: #f7f8f9; }
+
+.fs-40 {
+  font-size: 40px; }
+
+section {
+  position: relative; }
+
+.section-content {
+  padding-top: 80px;
+  padding-bottom: 80px; }
+
+.title-wrap,
+.section-title {
+  text-align: center; }
+
+.shadow {
+  box-shadow: 0 10px 30px 0 rgba(67, 80, 98, 0.24), 0 2px 4px 0 rgba(67, 80, 98, 0.1) !important; }
+
+#header-navbar {
+  position: absolute;
+  top: 0;
+  right: 0;
+  left: 0;
+  z-index: 11;
+  transition: all 0.3s cubic-bezier(0.785, 0.135, 0.15, 0.86); }
+
+.navbar-brand {
+  font-size: 40px;
+  color: #000; }
+
+.navbar-nav .nav-link {
+  color: #fff;
+  transition: .3s ease; }
+
+.navbar-nav:hover li a {
+  opacity: 0.5; }
+  .navbar-nav:hover li a:hover {
+    opacity: 1; }
+
+.navbar-toggler {
+  font-size: 2rem;
+  color: #fff; }
+
+.jumbotron {
+  color: #fff;
+  padding-top: 80px;
+  padding-bottom: 80px;
+  background-repeat: no-repeat;
+  background-size: cover;
+  background-position: 50% 50%;
+  position: relative;
+  border-radius: 0;
+  margin-bottom: 0;
+  overflow: hidden;
+  min-height: 100vh; }
+  @media (max-width: 767px) and (orientation: landscape) {
+    .jumbotron {
+      min-height: 500px; } }
+  .jumbotron .container {
+    position: relative;
+    z-index: 1; }
+  .jumbotron:before {
+    position: absolute;
+    display: block;
+    content: "";
+    opacity: 0.8;
+    top: 0;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    background: #B5D3E7;
+    /* fallback for old browsers */
+    background: -webkit-linear-gradient(to right, #21465f, #B5D3E7);
+    /* Chrome 10-25, Safari 5.1-6 */
+    background: linear-gradient(to right, #21465f, #B5D3E7);
+    /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ }
+  .jumbotron h1 {
+    line-height: .9;
+    font-weight: bold;
+    display: inline-block;
+    border: 15px solid #fff;
+    padding: 30px;
+    font-size: 9rem;
+    opacity: 0;
+    animation: 1s fadeInFromTop cubic-bezier(0.785, 0.135, 0.15, 0.86) 1s forwards;
+    animation-delay: .8s; }
+
+.jumbotron-single h1 {
+  font-size: 3rem !important; }
+
+.overlay {
+  color: #fff; }
+  .overlay:before {
+    position: absolute;
+    display: block;
+    content: "";
+    opacity: 0.9;
+    top: 0;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    background: #B5D3E7;
+    /* fallback for old browsers */
+    background: -webkit-linear-gradient(to right, #21465f, #B5D3E7);
+    /* Chrome 10-25, Safari 5.1-6 */
+    background: linear-gradient(to right, #21465f, #B5D3E7);
+    /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ }
+  .overlay.bg-white {
+    color: #000; }
+    .overlay.bg-white:before {
+      background: #fff;
+      opacity: .7; }
+
+.text-white {
+  color: #fff; }
+
+/*==============================
+=            BUTTON            =
+==============================*/
+.btn {
+  font-size: 14px;
+  font-weight: 600;
+  border-radius: 30px;
+  padding: 9px 25px;
+  text-transform: capitalize;
+  transition: all 0.3s ease 0s; }
+
+.btn-primary {
+  display: inline-block;
+  background-color: #B5D3E7;
+  border-color: #B5D3E7;
+  color: #fff; }
+  .btn-primary:hover {
+    background-color: #21465f;
+    border-color: #21465f;
+    color: #fff; }
+
+.btn-outline-primary {
+  color: #fff;
+  background-color: transparent;
+  background-image: none;
+  border-color: #fff; }
+  .btn-outline-primary:hover {
+    background-color: #21465f;
+    border-color: #21465f;
+    color: #fff; }
+
+.btn-shadow {
+  box-shadow: -5px 8px 20px 0px rgba(229, 16, 2, 0.15); }
+
+.btn-icon {
+  color: #000; }
+
+.btn-link {
+  color: #B5D3E7; }
+
+/*=====  End of BUTTON  ======*/
+/*==========================================
+=            FORM RECTANGLE ETC            =
+==========================================*/
+.rectangle-1 {
+  width: 2000px;
+  height: 400px;
+  background: #B5D3E8;
+  background: -webkit-linear-gradient(to right, #6588a0, #B5D3E8);
+  background: linear-gradient(to right, #6588a0, #6588a0);
+  transform-origin: 50% 150% 0;
+  position: absolute;
+  left: 0;
+  z-index: 0;
+  transform: scale(1) rotate(-10deg); }
+
+.rectangle-2 {
+  width: 2000px;
+  height: 400px;
+  background: #B5D3E8;
+  background: -webkit-linear-gradient(to right, #6588a0, #B5D3E8);
+  background: linear-gradient(to right, #6588a0, #B5D3E8);
+  transform-origin: 65% 100% 0;
+  position: absolute;
+  right: 0;
+  z-index: 0;
+  transform: scale(1) rotate(50deg); }
+
+@keyframes fade-in-right {
+  from {
+    opacity: 0;
+    transform: translateX(-100vw) rotate(-15deg); }
+  to {
+    opacity: 1;
+    transform: translateX(0) rotate(-15deg); } }
+
+@keyframes grow1 {
+  from {
+    opacity: 0;
+    transform: scale(2) rotate(-10deg); }
+  to {
+    opacity: 1;
+    transform: scale(1) rotate(-10deg); } }
+
+@keyframes grow2 {
+  from {
+    opacity: 0;
+    transform: scale(2) rotate(50deg); }
+  to {
+    opacity: 1;
+    transform: scale(1) rotate(50deg); } }
+
+@keyframes fadeInFromTop {
+  from {
+    opacity: 0;
+    transform: translateY(-20px); }
+  to {
+    opacity: 1;
+    transform: translateY(0); } }
+
+.rectangle-1 {
+  opacity: 0;
+  animation: grow1 ease 1s forwards;
+  box-shadow: 0px 20px 30px 0px rgba(9, 21, 54, 0.25) !important; }
+
+.rectangle-2 {
+  opacity: 0;
+  animation: grow2 ease 1s forwards;
+  box-shadow: 0px 20px 30px 0px rgba(9, 21, 54, 0.25) !important; }
+
+.rectangle-transparent-1 {
+  width: 500px;
+  height: 500px;
+  border: 15px solid rgba(255, 255, 255, 0.08);
+  position: absolute;
+  left: -5%;
+  bottom: -10%;
+  display: block;
+  animation: floating-slow ease-in-out 12s infinite; }
+
+.rectangle-transparent-2 {
+  width: 600px;
+  height: 600px;
+  border: 15px solid rgba(255, 255, 255, 0.08);
+  position: absolute;
+  right: -10%;
+  top: 5%;
+  display: block;
+  animation: floating-slow ease-in-out 12s infinite; }
+
+.circle-1 {
+  width: 50px;
+  height: 50px;
+  border: 2px solid #fff;
+  position: absolute;
+  display: block;
+  border-radius: 50%;
+  transform-origin: 50% 50%;
+  left: 5%;
+  top: 50%;
+  animation: fadeInFromTop .5s linear forwards, floating ease 4s infinite; }
+
+.circle-2 {
+  width: 70px;
+  height: 70px;
+  top: 20%;
+  left: 83%;
+  border: 2px solid #fff;
+  position: absolute;
+  display: block;
+  border-radius: 50%;
+  transform-origin: 50% 50%;
+  animation: fadeInFromTop .5s linear forwards, floating ease-in-out 4s infinite; }
+
+.circle-3 {
+  top: 80%;
+  right: 25%;
+  width: 40px;
+  height: 40px;
+  border: 2px solid #fff;
+  position: absolute;
+  display: block;
+  border-radius: 50%;
+  animation: fadeInFromTop .5s linear forwards, floating ease-in-out 4s infinite; }
+
+@keyframes floating {
+  0% {
+    transform: translate(0%, 0%) rotate(25deg); }
+  25% {
+    transform: translate(5%, 15%) rotate(25deg); }
+  50% {
+    transform: translate(10%, 5%) rotate(25deg); }
+  75% {
+    transform: translate(0%, 15%) rotate(25deg); }
+  100% {
+    transform: translate(0%, 0%) rotate(25deg); } }
+
+@keyframes floating-slow {
+  0% {
+    transform: translate(0%, 0%) rotate(25deg); }
+  25% {
+    transform: translate(1%, 3%) rotate(25deg); }
+  50% {
+    transform: translate(2%, 1%) rotate(25deg); }
+  75% {
+    transform: translate(0%, 3%) rotate(25deg); }
+  100% {
+    transform: translate(0%, 0%) rotate(25deg); } }
+
+.triangle {
+  position: absolute; }
+
+.triangle-1 {
+  right: 0;
+  animation: fadeInFromTop .5s linear forwards, floating ease-in-out 6s infinite; }
+  .triangle-1 img {
+    height: 50px;
+    width: 50px;
+    transform: rotate(30deg); }
+
+.triangle-2 {
+  top: 30%;
+  left: 20%;
+  animation: fadeInFromTop .5s linear forwards, floating ease-in-out 8s infinite; }
+  .triangle-2 img {
+    width: 75px;
+    height: 75px;
+    transform: rotate(15deg); }
+
+.triangle-3 {
+  top: 80%;
+  left: 15%;
+  animation: fadeInFromTop .5s linear forwards, floating ease-in-out 10s infinite; }
+  .triangle-3 img {
+    width: 45px;
+    height: 45px;
+    transform: rotate(40deg); }
+
+.triangle-4 {
+  top: 60%;
+  right: 15%;
+  animation: fadeInFromTop .5s linear forwards, floating ease-in-out 5s infinite; }
+  .triangle-4 img {
+    width: 45px;
+    height: 45px;
+    transform: rotate(-40deg); }
+
+/*=====  End of FORM RECTANGLE ETC  ======*/
+/*================================
+=            FEATURES            =
+================================*/
+.feature-item {
+  transition: all .2s ease-in-out 0s !important; }
+  .feature-item:hover {
+    transform: translateY(-13px); }
+
+.progress-bar {
+  background-color: #B5D3E8; }
+
+/*=====  End of FEATURES  ======*/
+/*=============================
+=            TESTI            =
+=============================*/
+.testi-img img {
+  height: 60px;
+  width: 60px !important;
+  border-radius: 50%;
+  display: inline-block !important; }
+
+.testi-details {
+  text-align: left; }
+
+.testi-text {
+  font-weight: 300;
+  padding-top: 50px;
+  padding-bottom: 50px; }
+
+.testi-icon {
+  color: #B5D3E8; }
+
+.testi-content {
+  margin-top: 80px;
+  padding-bottom: 80px; }
+
+.testi-item {
+  margin-left: 15px;
+  margin-right: 15px; }
+
+.owl-dot {
+  position: relative;
+  display: inline-block;
+  margin: 0 5px;
+  width: 12px;
+  height: 12px;
+  cursor: pointer; }
+  .owl-dot span {
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    outline: none;
+    border-radius: 50%;
+    background-color: rgba(26, 112, 161, 0.3);
+    text-indent: -999em;
+    cursor: pointer;
+    position: absolute;
+    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0);
+    -webkit-transition: box-shadow 0.3s ease, background-color 0.3s ease;
+    transition: box-shadow 0.3s ease, background-color 0.3s ease; }
+  .owl-dot.active > span {
+    background-color: transparent;
+    box-shadow: 0 0 0 2px #B5D3E8; }
+
+.owl-dots {
+  position: absolute;
+  bottom: 0;
+  display: block;
+  text-align: center;
+  left: 0;
+  right: 0;
+  clear: both;
+  padding: 0;
+  list-style: none;
+  cursor: default;
+  -webkit-touch-callout: none;
+  -webkit-user-select: none;
+  -khtml-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none; }
+
+.heading-section {
+  position: relative; }
+
+/*=====  End of TESTI  ======*/
+/*=================================
+=            PORTFOLIO            =
+=================================*/
+.filter-button-group {
+  margin-bottom: 15px; }
+  .filter-button-group a {
+    margin: 5px;
+    cursor: pointer; }
+
+.grid-link a {
+  margin: 5px;
+  font-size: 20px;
+  color: #000; }
+
+.grid-portfolio {
+  overflow: hidden; }
+
+.gutter-sizer {
+  width: 2%; }
+
+.grid-sizer,
+.grid-item {
+  width: 32%; }
+
+.grid-item {
+  margin-bottom: 20px;
+  border-radius: 5px;
+  overflow: hidden; }
+  .grid-item:hover .grid-info {
+    top: 50%;
+    opacity: 1; }
+
+.grid-item-wrapper:before {
+  content: '';
+  display: block;
+  background: rgba(255, 255, 255, 0.7);
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  transition: all .3s ease;
+  opacity: 0; }
+
+.grid-item-wrapper:hover:before {
+  opacity: 1; }
+
+.grid-info {
+  position: absolute;
+  top: 0;
+  left: 50%;
+  transform: translate(-50%, -50%);
+  opacity: 0;
+  transition: all .3s ease; }
+
+.lightcase-icon-close:before {
+  content: '\e870';
+  font-family: "Linearicons-Free"; }
+
+.grid-title {
+  text-align: center; }
+
+/*=====  End of PORTFOLIO  ======*/
+/*===============================
+=            SideNav            =
+===============================*/
+.sidenav {
+  height: 100%;
+  width: 0;
+  position: fixed;
+  z-index: 1002;
+  top: 0;
+  left: 0;
+  background-color: #000;
+  overflow-x: hidden;
+  transition: 0.5s;
+  padding-top: 60px;
+  color: #fff; }
+
+.sidenav-content {
+  padding: 8px 32px;
+  transform: translateY(20px);
+  opacity: 0;
+  transition: transform 0.5s cubic-bezier(0.785, 0.135, 0.15, 0.86), opacity 0.5s cubic-bezier(0.785, 0.135, 0.15, 0.86); }
+
+.in .sidenav-content {
+  transform: translateY(0);
+  opacity: 1;
+  transition: transform 0.5s cubic-bezier(0.785, 0.135, 0.15, 0.86) 0.5s, opacity 0.5s 0.5s; }
+
+.sidenav a {
+  text-decoration: none;
+  font-size: 25px;
+  color: #818181;
+  display: block;
+  transition: 0.3s; }
+
+.sidenav a:hover {
+  color: #f1f1f1; }
+
+.sidenav #side-nav-close,
+.sidenav #side-search-close {
+  position: absolute;
+  top: 0;
+  right: 25px;
+  font-size: 36px;
+  margin-left: 50px; }
+
+@media screen and (max-height: 450px) {
+  .sidenav {
+    padding-top: 15px; }
+  .sidenav a {
+    font-size: 18px; } }
+
+#side-search .form-control {
+  background-color: transparent; }
+
+#side-search .input-group-text {
+  background: transparent;
+  color: #fff; }
+
+/*==============================
+=            SKILLS            =
+==============================*/
+.skill-item {
+  width: 100%;
+  position: relative;
+  padding: 10px 0; }
+  .skill-item p {
+    font-size: 16px;
+    text-transform: uppercase;
+    display: inline-block;
+    font-weight: 500; }
+  .skill-item .text-muted {
+    color: #939393; }
+
+.progress-bar, .progress {
+  transition: all 4s; }
+
+/*=====  End of SKILLS  ======*/
+/*============================
+=            BLOG            =
+============================*/
+.blog-item {
+  transition: all 0.3s ease-in-out;
+  background-color: #f7f8f9;
+  border-radius: 3px;
+  overflow: hidden; }
+  .blog-item:hover {
+    box-shadow: 0 5px 15px -5px #333;
+    transform: translateY(-6px);
+    -webkit-transform: translateY(-6px);
+    -moz-transform: translateY(-6px);
+    transform: translateY(-6px);
+    box-shadow: 0 7px 10px rgba(0, 0, 0, 0.15);
+    -moz-box-shadow: 0 7px 10px rgba(0, 0, 0, 0.15);
+    -webkit-box-shadow: 0 7px 10px rgba(0, 0, 0, 0.15); }
+
+.bg-grey .blog-item {
+  background-color: #fff; }
+
+.blog-item-wrapper {
+  margin-bottom: 30px; }
+
+.blog-img img {
+  width: 100%;
+  height: 250px;
+  object-fit: cover; }
+
+.blog-title h4 {
+  color: #000; }
+
+.blog-text {
+  padding: 15px; }
+
+.blog-tag {
+  color: #000;
+  letter-spacing: 1.1px;
+  text-transform: uppercase; }
+
+.blog-meta {
+  color: #939393; }
+  .blog-meta p {
+    display: inline-block;
+    font-size: 14px; }
+  .blog-meta a {
+    color: #939393; }
+
+.blog-author {
+  display: inline-block;
+  color: #939393; }
+  .blog-author p {
+    font-size: 14px;
+    margin-bottom: 0; }
+
+.blog-share-wrapper {
+  float: right;
+  display: inline-block;
+  margin: 0 -5px; }
+  .blog-share-wrapper .blog-share {
+    padding: 0 5px;
+    cursor: pointer; }
+
+.blog-content img.float-left {
+  margin: 15px 15px 15px 0; }
+
+.blog-content .img.float-right {
+  margin: 15px 0 15px 15px; }
+
+/*=====  End of BLOG  ======*/
+/*====================================
+=            FORM CONTROL            =
+====================================*/
+.form-control:focus {
+  border-color: #B5D3E8;
+  box-shadow: 0 0 0 0.2rem rgba(253, 101, 90, 0.25); }
+
+.form-control::-webkit-input-placeholder {
+  opacity: .5; }
+
+.form-control::-moz-placeholder {
+  opacity: .5; }
+
+.form-control:-ms-input-placeholder {
+  opacity: .5; }
+
+.form-control::-ms-input-placeholder {
+  opacity: .5; }
+
+.form-control::placeholder {
+  opacity: .5; }
+
+/*=====  End of FORM CONTROL  ======*/
+/*==============================
+=            CLIENT            =
+==============================*/
+.client-slider .owl-nav {
+  display: none; }
+
+.client-slider .client-item {
+  padding: 0 40px; }
+
+/*=====  End of CLIENT  ======*/
+/*==================================
+=            RESPONSIVE            =
+==================================*/
+@media (max-width: 992px) {
+  .not-on-top #header-navbar {
+    position: fixed;
+    top: 0;
+    height: auto;
+    width: 100%;
+    background: #B5D3E7;
+    /* fallback for old browsers */
+    background: -webkit-linear-gradient(to right, #21465f, #B5D3E7);
+    /* Chrome 10-25, Safari 5.1-6 */
+    background: linear-gradient(to right, #21465f, #B5D3E7);
+    /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
+    z-index: 11; }
+  #header-navbar {
+    padding-top: 15px !important;
+    padding-bottom: 15px !important; }
+  .navbar-transparent .navbar-collapse {
+    background: #B5D3E7;
+    /* fallback for old browsers */
+    background: -webkit-linear-gradient(to right, #21465f, #B5D3E7);
+    /* Chrome 10-25, Safari 5.1-6 */
+    background: linear-gradient(to right, #21465f, #B5D3E7);
+    /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
+    padding: 10px; } }
+
+@media (max-width: 767px) {
+  .jumbotron h1 {
+    font-size: 6rem; }
+  .grid-item {
+    width: 100%; }
+  .progress {
+    height: 30px;
+    font-size: 16px; } }
+
+/*=====  End of RESPONSIVE  ======*/

+ 11 - 11
css/styles.min.css

@@ -24,11 +24,11 @@ h6 {
 }
 
 a {
-    color: #C41C22;
+    color: #0a4553;
 }
 
 a:hover {
-    color: #a2171c;
+    color: #0a4553;
 }
 
 .section {
@@ -187,7 +187,7 @@ a:hover {
 .nav-tabs .nav-link:focus,
 .nav-tabs .nav-link:active,
 .nav-tabs .nav-link.active {
-    border-bottom: 2px solid #C41C22;
+    border-bottom: 2px solid #0a4553;
     outline: none;
     color: black;
 }
@@ -195,7 +195,7 @@ a:hover {
 .loader {
     border: 10px solid #f3f3f3;
     border-radius: 50%;
-    border-top: 10px solid #C41C22;
+    border-top: 10px solid #0a4553;
     width: 120px;
     height: 120px;
     -webkit-animation: spin 2s linear infinite;
@@ -230,11 +230,11 @@ a:hover {
 .link {
     text-decoration: underline;
     cursor: pointer;
-    color: #C41C22;
+    color: #0a4553;
 }
 
 .link:hover {
-    color: #a2171c;
+    color: #0a4553;
 }
 
 .navbar-light {
@@ -249,7 +249,7 @@ a:hover {
     .navbar-nav .nav-item:hover:before {
         content: "";
         width: 100%;
-        border-top: 4px solid #C41C22;
+        border-top: 4px solid #0a4553;
         position: absolute;
         top: 3px;
     }
@@ -259,14 +259,14 @@ a:hover {
     .navbar-nav .nav-item.active:before {
         content: "";
         width: 100%;
-        border-top: 4px solid #C41C22;
+        border-top: 4px solid #0a4553;
         position: absolute;
         top: 3px;
     }
 }
 
 .navbar-nav .nav-item.active .nav-link {
-    color: #C41C22;
+    color: #0a4553;
 }
 
 .navbar-nav .nav-item .nav-link {
@@ -414,7 +414,7 @@ a.btn-icon {
 }
 
 .features-icons .index-btn:hover .title {
-    color: #C41C22;
+    color: #0a4553;
 }
 
 .testimonials .testimonial-item {
@@ -457,7 +457,7 @@ a.btn-icon {
 }
 
 footer.footer {
-    background-color: #a2171c;
+    background-color: #0a4553;
     color: white;
     padding-top: 3rem;
     padding-bottom: 3rem;

BIN
img/icons/animat-checkmark.gif


BIN
img/icons/animat-customize.gif


BIN
img/icons/animat-responsive.gif


BIN
img/raise.pg


+ 289 - 317
index.html

@@ -1,342 +1,314 @@
 <!DOCTYPE html>
-<html>
+<html lang="en">
 
 <head>
-  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-  <meta name="description" content="">
-  <meta name="author" content="">
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <title>IPERION_HS</title>
+    <meta name="description" content="REDS">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
 
-  <title>Restore - smaRt accESs TO digital heRitage and mEmory</title>
-  <link rel="icon" type="image/x-icon" href="img/icon.png">
+    <!-- External CSS -->
+    <link rel="stylesheet" href="vendor/bootstrap/bootstrap.min.css">
+    <link rel="stylesheet" href="vendor/select2/select2.min.css">
+    <link rel="stylesheet" href="vendor/owlcarousel/owl.carousel.min.css">
+    <link rel="stylesheet" href="vendor/lightcase/lightcase.css">
+     <link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css" />
 
-  <!-- Bootstrap core CSS -->
-  <link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
+    <!-- Fonts -->
+    <link href="https://fonts.googleapis.com/css?family=Lato:300,400|Work+Sans:300,400,700" rel="stylesheet">
 
-  <!-- Custom fonts for this template -->
-  <link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet">
-  <link href="vendor/simple-line-icons/css/simple-line-icons.css" rel="stylesheet" type="text/css">
-  <link href="https://fonts.googleapis.com/css?family=Lato:300,400,700,300italic,400italic,700italic" rel="stylesheet" type="text/css">
-  <script src="js/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
-	<script src="js/ajax/jQuery/jquery-3.2.1.min.js"></script>
-  <script src="js/screensaver.js"></script>
+    <!-- CSS -->
+    <link rel="stylesheet" href="css/style.min.css">
+    <link rel="stylesheet" href="https://cdn.linearicons.com/free/1.0.0/icon-font.min.css">
+    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
 
-  <!-- Custom styles for this template -->
-  <link href="css/landing-page.css" rel="stylesheet">
-  <link href="css/styles.min.css" rel="stylesheet">
-</head>
-
-<body>
+    <!-- Modernizr JS for IE8 support of HTML5 elements and media queries -->
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.js"></script>
 
-  <header class="sticky-top">
-    <nav class="navbar navbar-expand-lg navbar-light bg-white">
-      <div class="container-fluid">
-        <div class="navbar-brand">
-          <a href="index.html"><img src="img/Logo.png" width="100" alt="Restore" /></a>
-        </div>
-        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
-          <span class="navbar-toggler-icon"></span>
+</head>
+<body data-spy="scroll" data-target="#navbar" class="static-layout">
+	<nav id="header-navbar" class="navbar navbar-expand-lg py-4">
+    <div class="container">
+        <a class="navbar-brand d-flex align-items-center text-white" href="/">
+            <h3 class="font-weight-bolder mb-0">IPERION-HS</h3>
+        </a>
+        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar-nav-header" aria-controls="navbar-nav-header" aria-expanded="false" aria-label="Toggle navigation">
+            <span class="lnr lnr-menu"></span>
         </button>
-        <div class="collapse navbar-collapse justify-content-end" id="navbarNavDropdown">
-          <ul class="navbar-nav">
-            <li class="nav-item active">
-              <a class="nav-link" href="#">Home</a>
-            </li>
-            <li class="nav-item">
-              <a class="nav-link" href="progetto.html">Progetto</a>
-            </li>
-            <li class="nav-item">
-              <a class="nav-link" href="ricerca.html">Ricerca</a>
-            </li>
-            <!--<li class="nav-item">
-              <a class="nav-link" href="#">Indici</a>
-            </li>-->
-            <li class="nav-item dropdown">
-              <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Percorsi</a>
-              <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
-                <a class="dropdown-item" target="_blank" href="https://demo-restore.devworkbench.it/it/1/home">MOVIO</a>
-              </div>
-            </li>
-            <li class="nav-item">
-              <a class="nav-link" href="standard.html">Standard</a>
-            </li>
-            <li class="nav-item dropdown">
-              <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Open Data</a>
-              <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
-                <a class="dropdown-item" href="http://dev.restore.ovi.cnr.it:8890/sparql/">Endpoint Sparql</a>
-                <a class="dropdown-item" href="sparql.html">Query</a>
-              </div>
-            </li>
-            <!--<li class="nav-item">
-              <a class="nav-link" href="download.html">Download</a>
-            </li>-->
-            <li class="nav-item dropdown">
-              <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink1" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Collegamenti esterni</a>
-              <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink1">
-                <a class="dropdown-item" href="http://ckan.restore.ovi.cnr.it/" target="_blank">CKAN</a>
-                <a class="dropdown-item" href="http://dev.restore.ovi.cnr.it/lodlive/" target="_blank">LOD</a>
+
+        <header class="sticky-top">
+            <nav class="navbar navbar-expand-lg navbar-light float-right font-weight-bold">
+              <div class="container-fluid">
+ 
+                <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
+                  <span class="navbar-toggler-icon"></span>
+                </button>
+                <div class="collapse navbar-collapse justify-content-end" id="navbarNavDropdown">
+                  <ul class="navbar-nav">
+                    <li class="nav-item active">
+                      <a class="nav-link" href="#">Home</a>
+                    </li>
+                    <li class="nav-item">
+                      <a class="nav-link" href="progetto.html">Progetto</a>
+                    </li>
+                    <li class="nav-item">
+                      <a class="nav-link" href="ricerca.html">Ricerca</a>
+                    </li>
+                    <!--<li class="nav-item">
+                      <a class="nav-link" href="#">Indici</a>
+                    </li>-->
+                    <li class="nav-item dropdown">
+                      <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Percorsi</a>
+                      <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+                        <a class="dropdown-item" target="_blank" href="https://demo-restore.devworkbench.it/it/1/home">MOVIO</a>
+                      </div>
+                    </li>
+                    <li class="nav-item">
+                      <a class="nav-link" href="standard.html">Standard</a>
+                    </li>
+                    <li class="nav-item dropdown">
+                      <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Open Data</a>
+                      <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+                        <a class="dropdown-item" href="http://dev.restore.ovi.cnr.it:8890/sparql/">Endpoint Sparql</a>
+                        <a class="dropdown-item" href="sparql.html">Query</a>
+                      </div>
+                    </li>
+                    <!--<li class="nav-item">
+                      <a class="nav-link" href="download.html">Download</a>
+                    </li>-->
+                    <li class="nav-item dropdown">
+                      <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink1" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Collegamenti esterni</a>
+                      <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink1">
+                        <a class="dropdown-item" href="http://ckan.restore.ovi.cnr.it/" target="_blank">CKAN</a>
+                        <a class="dropdown-item" href="http://dev.restore.ovi.cnr.it/lodlive/" target="_blank">LOD</a>
+                      </div>
+                    </li>
+                  </ul>
+                </div>
               </div>
-            </li>
-          </ul>
-        </div>
-      </div>
-    </nav>
-  </header>
+            </nav>
+          </header>
+    </div>
+</nav>
 
-  <!--<div id="screensaver">
-    <p><b>Modalità risparmio energetico</b></p>
-    <p>Sei in modalità risparmio energetico. Per tornare sul sito clicca un punto qualsiasi dello schermo</p>
-  </div>-->
+<div id="side-nav" class="sidenav">
+	<a href="javascript:void(0)" id="side-nav-close">&times;</a>
+	
 
-    <div id="screensaver">
-      <img src="img/LogoBW.png" height="auto" width="200px"/>
-      <p><b>RESTORE per l'ambiente</b></p>
-      <p>Questa pagina è entrata in in modalità risparmio energetico. Per tornare alla navigazione muovi il mouse sullo schermo</p>
-    </div>
+</div><div id="side-search" class="sidenav">
+	<a href="javascript:void(0)" id="side-search-close">&times;</a>
+	<div class="sidenav-content">
+		<form action="">
 
-  <main>
-    <!-- Masthead -->
-    <section class="masthead text-white text-center">
-      <div class="overlay"></div>
-      <div id="particles-js" class="container">
-        <div class="row">
-          <div class="col-xl-9 mx-auto">
-            <h1 class="mb-3 mb-md-5">RESTORE</h1>
-            <h2>sma<span style="text-decoration: underline;">R</span>t acc<span style="text-decoration: underline;">ES</span>s <span style="text-decoration: underline;">TO</span> digital he<span style="text-decoration: underline;">R</span>itage and m<span style="text-decoration: underline;">E</span>mory</h2>
-          </div>
-          <div class="col-md-10 col-lg-8 col-xl-7 mx-auto">
-          </div>
-        </div>
-      </div>
-    </section>
+			<div class="input-group md-form form-sm form-2 pl-0">
+			  <input class="form-control my-0 py-1 red-border" type="text" placeholder="Search" aria-label="Search">
+			  <div class="input-group-append">
+			    <button class="input-group-text red lighten-3" id="basic-text1">
+			    	<span class="lnr lnr-magnifier"></span>
+			    </button>
+			  </div>
+			</div>
 
-    <!-- Icons Grid -->
-    <section class="section features-icons bg-white text-center">
-      <div class="container">
-        <div class="row mb-sm-5">
-          <div onclick="location.href='ricerca.html';" style="cursor: pointer;" class="col-sm-4 index-btn mb-3 sm:mb-0">
-            <div class="features-icons-item">
-              <div class="features-icons-icon d-flex">
-                <img class="ico-img" src="img/ricerca.png" />
-              </div>
-              <h3 class="title">Interfaccia di Ricerca</h3>
-            </div>
-          </div>
-          <div onclick="location.href='progetto.html';" style="cursor: pointer;" class="col-sm-4 index-btn mb-3 mb-sm-0">
-            <div class="features-icons-item">
-              <div class="features-icons-icon d-flex">
-                <img class="ico-img" src="img/progetto.png" />
-              </div>
-              <h3 class="title">Progetto</h3>
-            </div>
-          </div>
-          <div onclick="location.href='http://ckan.restore.ovi.cnr.it/';" style="cursor: pointer;" class="col-sm-4 index-btn mb-3 mb-sm-0">
-            <div class="features-icons-item">
-              <div class="features-icons-icon d-flex">
-                <img class="ico-img" src="img/ckan.png" />
-              </div>
-              <h3 class="title">Visualizza risorse</h3>
-            </div>
-          </div>
-          <!--<div onclick="location.href='http://dev.restore.ovi.cnr.it/lodlive/';" style="cursor: pointer;" class="col-sm-4 index-btn mb-3 mb-sm-0">
-            <div class="features-icons-item">
-              <div class="features-icons-icon d-flex">
-                <img class="ico-img" src="img/rdf.png" />
-              </div>
-              <h3 class="title">LOD</h3>
-            </div>
-          </div>
-          <div class="col-sm-4 index-btn mb-3 mb-sm-0">
-            <div class="features-icons-item">
-              <div class="features-icons-icon d-flex">
-                <img class="ico-img" src="img/indice.png" />
-              </div>
-              <h3 class="title">Indici</h3>
-            </div>
-          </div>
-          -->
-        </div>
-        <div class="row mb-sm-5">
-          
-          <div onclick="location.href='standard.html';" style="cursor: pointer;" class="col-sm-4 index-btn mb-3 mb-sm-0">
-            <div class="features-icons-item">
-              <div class="features-icons-icon d-flex">
-                <img class="ico-img" src="img/standard.png" />
-              </div>
-              <h3 class="title">Standard</h3>
-            </div>
-          </div>
-          <div onclick="location.href='sparql.html';" style="cursor: pointer;" class="col-sm-4 index-btn mb-3 mb-sm-0">
-            <div class="features-icons-item">
-              <div class="features-icons-icon d-flex">
-                <img class="ico-img" src="img/sparql.png" />
-              </div>
-              <h3 class="title">SPARQL</h3>
-            </div>
-          </div>
-          <div onclick="location.href='https://demo-restore.devworkbench.it/it/1/home';" style="cursor: pointer;" class="col-sm-4 index-btn mb-3 mb-sm-0">
-            <div class="features-icons-item">
-              <div class="features-icons-icon d-flex">
-                <img class="ico-img" src="img/percorsi.png" />
-              </div>
-              <h3 class="title">Percorsi</h3>
-            </div>
-          </div>
-        </div>
-        <div class="row">
-          <div onclick="location.href='Lab.html';" style="cursor: pointer; margin-left: auto; margin-right: auto;" class="col-sm-4 index-btn mb-3 mb-sm-0">
-            <div class="features-icons-item">
-              <div class="features-icons-icon d-flex">
-                <img class="ico-img" src="img/lab.png" />
-              </div>
-              <h3 class="title">Lab</h3>
+		</form>
+	</div>
+	
+</div>	<div class="jumbotron d-flex align-items-center">
+  <div class="container text-center">
+    <h1 class="display-1 mb-4"><img src="img/icon.png" alt="LOGO"><br>IPERION<br>HS </h1>
+  </div>
+  <div class="rectangle-1"></div>
+  <div class="rectangle-2"></div>
+  <div class="rectangle-transparent-1"></div>
+  <div class="rectangle-transparent-2"></div>
+  <div class="circle-1"></div>
+  <div class="circle-2"></div>
+  <div class="circle-3"></div>
+  <div class="triangle triangle-1">
+  	<img src="img/obj_triangle.png" alt="">
+  </div>
+  <div class="triangle triangle-2">
+  	<img src="img/obj_triangle.png" alt="">
+  </div>
+  <div class="triangle triangle-3">
+  	<img src="img/obj_triangle.png" alt="">
+  </div>
+  <div class="triangle triangle-4">
+  	<img src="img/obj_triangle.png" alt="">
+  </div>
+</div>	<!-- Features Section-->
+<section id="features" class="bg-white">
+    <div class="container">
+        <div class="section-content">
+            <!-- Section Title -->
+            <div class="title-wrap mb-5" data-aos="fade-up">
+                <h2 class="section-title">
+                    build by <a href="https://www.iperionhs.eu/" target="_blank">IPERION-HS</a>
+                </h2>
+                <p class="section-sub-title">Data management <br>modules suite</p>
             </div>
-          </div>
-        </div>
-          <!--<div onclick="location.href='download.html';" style="cursor: pointer;" class="col-sm-4 index-btn mb-3 mb-sm-0">
-            <div class="features-icons-item">
-              <div class="features-icons-icon d-flex">
-                <img class="ico-img" src="img/database.png" />
-              </div>
-              <h3 class="title">Database</h3>
+            <!-- End of Section Title -->
+            <div class="row">
+                <!-- Features Holder-->
+                <div class="col-md-10 offset-md-1 features-holder">
+                    <div class="row">
+
+                        <!-- Features Item -->
+                        <div class="col-md-4 col-sm-12 text-center mt-4">
+                            <div class="shadow rounded feature-item p-4 mb-4" data-aos="fade-up">
+                                <div class="my-4">
+                                    <i class="lnr lnr-thumbs-up fs-40"></i>
+                                </div>
+                                <h4>HDI Repository </h4>
+                                <p>Eterogeneous Data Integration Toolkit Development Repository</p>
+                            </div>
+
+                        </div>
+                        <!-- End of Feature Item -->
+
+                        <!-- Features Item -->
+                        <div class="col-md-4 col-sm-12 text-center">
+                            <div class="shadow rounded feature-item p-4 mb-4" data-aos="fade-up">
+                                <div class="my-4">
+                                    <i class="lnr lnr-cog fs-40"></i>
+                                </div>
+                                <h4>Data Management</h4>
+                                <p>Scripting, parsing, mapping and transforming</p>
+                            </div>
+                            
+                         
+                        </div>
+                        <!-- End of Feature Item -->
+
+                        <!-- Features Item -->
+                        <div class="col-md-4 col-sm-12 text-center mt-4">
+                            <div class="shadow rounded feature-item p-4 mb-4" data-aos="fade-up">
+                                <div class="my-4">
+                                    <i class="lnr lnr-rocket fs-40"></i>
+                                </div>
+                                <h4>Data use</h4>
+                                <p>Finding, accessing, using and reusing data </p>
+                            </div>
+                            
+
+                        </div>
+                        <!-- End of Feature Item -->
+                    </div>
+                </div>
+                <!-- End of Features Holder-->
             </div>
-          </div>
         </div>
-        <div onclick="location.href='http://ckan.restore.ovi.cnr.it/';" style="cursor: pointer;" class="col-sm-4 index-btn mb-3 mb-sm-0">
-            <div class="features-icons-item">
-              <div class="features-icons-icon d-flex">
-                <img class="ico-img" src="img/ckan.png" />
-              </div>
-              <h3 class="title">Visualizza risorse</h3>
-            </div>
-          </div>
-          <div onclick="location.href='http://dev.restore.ovi.cnr.it/lodlive/';" style="cursor: pointer;" class="col-sm-4 index-btn mb-3 mb-sm-0">
-            <div class="features-icons-item">
-              <div class="features-icons-icon d-flex">
-                <img class="ico-img" src="img/rdf.png" />
-              </div>
-              <h3 class="title">LOD</h3>
-            </div>
-          </div>
-        </div>-->
-      </div>
-    </section>
+    </div>
+</section>
+<!-- End of Features Section-->	<section id="section-featurettes" class="featurettes overlay bg-fixed" style="background-image: url(img/bg.jpg);">
 
-    <!-- Testimonials -->
-    <section class="section-small testimonials text-center bg-light">
-      <div class="container">
-        <div class="d-lg-flex align-items-center justify-content-between">
-          <div class="mb-5 pr-lg-5">
-            <h2 class="section-title">Partner del progetto</h2>
-          </div>
-          <div class="row flex-shrink-0 ml-auto">
-            <div class="col-sm-4 col-md col-lg-auto">
-              <div class="testimonial-item mx-auto mb-5 mb-lg-0">
-                <a href="http://www.ovi.cnr.it/">
-                  <img class="img-fluid rounded-circle mb-3" src="img/OVI.png" alt="">
-                  <h5 class="title">OVI</h5>
-                </a>
-              </div>
-            </div>
-            <div class="col-sm-4 col-md col-lg-auto">
-              <div class="testimonial-item mx-auto mb-5 mb-lg-0">
-                <a href="http://www.archiviodistato.prato.it/">
-                  <img class="img-fluid rounded-circle mb-3" src="img/ASPO.jpg" alt="">
-                  <h5 class="title">ASPO</h5>
-                </a>
-              </div>
-            </div>
-            <div class="col-sm-4 col-md col-lg-auto">
-              <div class="testimonial-item mx-auto mb-5 mb-lg-0">
-                <a href="https://www.palazzopretorio.prato.it/it/">
-                  <img class="img-fluid rounded-circle mb-3" src="img/MPP.png" alt="">
-                  <h5 class="title">MPP</h5>
-                </a>
-              </div>
-            </div>
-            <div class="col-sm-4 col-md col-lg-auto">
-              <div class="testimonial-item mx-auto mb-5 mb-lg-0">
-                <a href="http://sa-toscana.beniculturali.it/index.php?id=2">
-                  <img class="img-fluid rounded-circle mb-3" src="img/SABTOS.jpg" alt="">
-                  <h5 class="title">SABTOS</h5>
-                </a>
-              </div>
-            </div>
-            <div class="col-sm-4 col-md col-lg-auto">
-              <div class="testimonial-item mx-auto mb-5 mb-lg-0">
-                <a href="https://www.spacespa.it/">
-                  <img class="img-fluid rounded-circle mb-3" src="img/SPACE.jpg" alt="">
-                  <h5 class="title">SPACE</h5>
-                </a>
-              </div>
-            </div>
-          </div>
+    <div class="container">
+        <div class="section-content">
+            <div class="row">
+                <div class="col-md-12">
+                    <div class="row align-items-center text-white">
+
+                        <div class="col-md-4 offset-md-2 col-sm-6" data-aos="fade-right">
+                            <h4 class="mb-4">Documentation</h4>
+                            <p>Visit the documentation management platform</p>
+                            <button type="button" class="btn btn-outline-primary" onclick="location.href='http://dev.restore.ovi.cnr.it:3000/TEAMOVI';" target="_blank">Documentation</button>
+                        </div><!--/ .col-md-4.col-md-offset-2.col-sm-6 -->
+
+                        <div class="col-md-4 offset-md-right-2 col-sm-6" data-aos="flip-right">
+                            <img class="my-5" src="img/app-profile-mockup.png" alt="">
+                        </div><!--/ .col-md-4.col-md-offset-right-2.col-sm-6 -->
+                        
+                        <div class="col-md-4 offset-md-2 col-sm-6" data-aos="fade-right">
+                            <h4 class="mb-4">Data management</h4>
+                            <p>Experience firsthand the demo modules produced by IPERION-HS by testing them with real data.</p>
+                            <button type="button" class="btn btn-outline-primary" onclick="location.href='http://192.168.10.192/jupyter/';" target="_blank">JUPITER</button>
+                            <button type="button" class="btn btn-outline-primary" onclick="location.href='http://www.google.com';" target="_blank">FLASK</button>
+                        </div><!--/ .col-md-4.col-md-offset-2.col-sm-6 -->
+
+                        <div class="col-md-4 offset-md-right-2 col-sm-6" data-aos="flip-right">
+                            <img class="my-5" src="img/parser.png" alt="">
+                        </div><!--/ .col-md-4.col-md-offset-right-2.col-sm-6 -->
+
+                        <div class="col-md-4 offset-md-2 col-sm-6" data-aos="fade-right">
+                            <h4 class="mb-4">Data use</h4>
+                            <p>Visit our data use case.</p>
+                            <button type="button" class="btn btn-outline-primary" onclick="location.href='https://marketplace.sshopencloud.eu/tool-or-service/pIyy0d';" target="_blank" >RAISE</button>
+                        </div><!--/ .col-md-4.col-md-offset-2.col-sm-6 -->
+
+                        <div class="col-md-4 offset-md-right-2 col-sm-6" data-aos="flip-right">
+                            <img class="my-5" src="img/raise.pg" alt="">
+                        </div><!--/ .col-md-4.col-md-offset-right-2.col-sm-6 -->
+
+
+                    </div><!--/ .featurettes-item -->
+
+                </div><!--/ .col-md-12 -->
+
+            </div><!--/ .row -->
         </div>
-      </div>
-    </section>
-  </main>
+    </div><!--/ .container -->
 
-  <footer id="footer" class="footer">
+</section>	
+	
+<!-- Client Section -->
+<section id="client" class="overlay bg-white" >
     <div class="container">
-      <div class="row">
-        <div class="col-lg-7 h-100 text-center text-lg-left my-auto">
-          <ul class="list-inline mb-2">
-            <li class="list-inline-item">
-              <a href="about.html">About</a>
-            </li>
-            <li class="list-inline-item">&sdot;</li>
-            <li class="list-inline-item">
-              <a href="contatti.html">Contatti</a>
-            </li>
-            <li class="list-inline-item">&sdot;</li>
-            <li class="list-inline-item">
-              <a href="termini.html">Termini e Condizioni</a>
-            </li>
-          </ul>
-          <p class="small mb-4 mb-lg-0">&copy; RESTORE 2022. All Rights Reserved.</p>
+        <div class="section-content" data-aos="fade-up">
+            <div class="row ">
+                <div class="col-md-12">
+                    <!-- Section Title -->
+                    <div class="title-wrap mb-5">
+                        <h2>Who love to <span> work</span> with us</h2>
+                    </div>
+                    <!-- End of Section Title -->
+                </div>
+                <!-- Client Holder -->
+                <div class="col-md-12 client-holder">
+                    <div class="client-slider owl-carousel">
+                        <div class="client-item">
+                            <img class="img-responsive" src="img/logoCNR.png" alt=" ">
+                        </div>
+                        <div class="client-item">
+                            <img class="img-responsive" src="img/logoEuropean-Union.png" alt=" ">
+                        </div>
+                        <div class="client-item">
+                            <img class="img-responsive" src="img/logoRepubblicaItaliana.png" alt=" ">
+                        </div>
+                    </div>
+                    <!-- End of Client Holder -->
+                </div>
+            </div>
         </div>
-        <div class="col-lg-5 h-100 text-center my-auto">
-          <ul class="partner-list list-inline mb-0">
-            <li class="list-inline-item mr-3">
-              <a href="https://www.cnr.it/">
-                <img class="img-logo" src="img/CNR.png" />
-              </a>
-            </li>
-            <li class="list-inline-item mr-3">
-              <a href="https://www.regione.toscana.it/">
-                <img class="img-logo" src="img/RegioneToscana.jpg" />
-              </a>
-            </li>
-            <li class="list-inline-item mr-3">
-              <a href="https://europa.eu/">
-                <img class="img-logo" src="img/European-Union.png" />
-              </a>
-            </li>
-            <li class="list-inline-item mr-3">
-              <a href="http://www.governo.it/">
-                <img class="img-logo" src="img/RepubblicaItaliana.png" />
-              </a>
-            </li>
-            <li class="list-inline-item mr-3">
-              <a href="https://www.regione.toscana.it/por-fse-2014-2020">
-                <img class="img-logo" src="img/POR-FSE-Regione-Toscana.png" />
-              </a>
-            </li>
-            <li class="list-inline-item">
-              <a href="https://giovanisi.it/">
-                <img class="img-logo" src="img/GiovaniSi.png" />
-              </a>
-            </li>
-          </ul>
+</section>
+<!-- End of Client Section -->	
+</div>
+<footer class="mastfoot my-3">
+    <div class="inner container">
+         <div class="row">
+         	<div class="col-lg-4 col-md-12 d-flex align-items-center">
+         		
+         	</div>
+         	<div class="col-lg-4 col-md-12 d-flex align-items-center">
+         		<p class="mx-auto text-center mb-0">&copy; 2022. Design by <a class="text-primary" href="http://dariah.cnr.it/" target="_blank">DARIAH-IT</a>.</p>
+         	</div>
+           
+            
         </div>
-      </div>
     </div>
-  </footer>
-
-  <!-- Bootstrap core JavaScript -->
-  <script src="vendor/jquery/jquery.min.js"></script>
-  <script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
+</footer>	<!-- External JS -->
+	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
+	<script src="vendor/bootstrap/popper.min.js"></script>
+	<script src="vendor/bootstrap/bootstrap.min.js"></script>
+	<script src="vendor/select2/select2.min.js "></script>
+	<script src="vendor/owlcarousel/owl.carousel.min.js"></script>
+	<script src="vendor/stellar/jquery.stellar.js" type="text/javascript" charset="utf-8"></script>
+	<script src="vendor/isotope/isotope.min.js"></script>
+	<script src="vendor/lightcase/lightcase.js"></script>
+	<script src="vendor/waypoints/waypoint.min.js"></script>
+	 <script src="https://unpkg.com/aos@next/dist/aos.js"></script>
+	 
+	<!-- Main JS -->
+	<script src="js/app.min.js "></script>
+	<script src="//localhost:35729/livereload.js"></script>
 </body>
-
-</html>
+</html>

+ 277 - 0
indexOLD.html

@@ -0,0 +1,277 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+  <meta name="description" content="">
+  <meta name="author" content="">
+
+  <title>IPERION HS</title>
+  <link rel="icon" type="image/x-icon" href="img/Logo.png">
+
+  <!-- Bootstrap core CSS -->
+  <link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
+
+  <!-- Custom fonts for this template -->
+  <link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet">
+  <link href="vendor/simple-line-icons/css/simple-line-icons.css" rel="stylesheet" type="text/css">
+  <link href="https://fonts.googleapis.com/css?family=Lato:300,400,700,300italic,400italic,700italic" rel="stylesheet" type="text/css">
+  <script src="js/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
+	<script src="js/ajax/jQuery/jquery-3.2.1.min.js"></script>
+  <script src="js/screensaver.js"></script>
+
+  <!-- Custom styles for this template -->
+  <link href="css/landing-page.css" rel="stylesheet">
+  <link href="css/styles.min.css" rel="stylesheet">
+</head>
+
+<body>
+
+  <header class="sticky-top">
+    <nav class="navbar navbar-expand-lg navbar-light bg-white">
+      <div class="container-fluid">
+        <div class="navbar-brand">
+          <a href="index.html"><img src="img/Logo.png" width="200" alt="IPERION HS" /></a>
+        </div>
+        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
+          <span class="navbar-toggler-icon"></span>
+        </button>
+        <div class="collapse navbar-collapse justify-content-end" id="navbarNavDropdown">
+          <ul class="navbar-nav">
+            <li class="nav-item active">
+              <a class="nav-link" href="#">Home</a>
+            </li>
+            <li class="nav-item">
+              <a class="nav-link" href="progetto.html">Progetto</a>
+            </li>
+            <li class="nav-item">
+              <a class="nav-link" href="ricerca.html">Ricerca</a>
+            </li>
+            <!--<li class="nav-item">
+              <a class="nav-link" href="#">Indici</a>
+            </li>-->
+            <li class="nav-item dropdown">
+              <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Percorsi</a>
+              <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+                <a class="dropdown-item" target="_blank" href="https://demo-restore.devworkbench.it/it/1/home">MOVIO</a>
+              </div>
+            </li>
+            <li class="nav-item">
+              <a class="nav-link" href="standard.html">Standard</a>
+            </li>
+            <li class="nav-item dropdown">
+              <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Open Data</a>
+              <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+                <a class="dropdown-item" href="http://dev.restore.ovi.cnr.it:8890/sparql/">Endpoint Sparql</a>
+                <a class="dropdown-item" href="sparql.html">Query</a>
+              </div>
+            </li>
+            <!--<li class="nav-item">
+              <a class="nav-link" href="download.html">Download</a>
+            </li>-->
+            <li class="nav-item dropdown">
+              <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink1" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Collegamenti esterni</a>
+              <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink1">
+                <a class="dropdown-item" href="http://ckan.restore.ovi.cnr.it/" target="_blank">CKAN</a>
+                <a class="dropdown-item" href="http://dev.restore.ovi.cnr.it/lodlive/" target="_blank">LOD</a>
+              </div>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </nav>
+  </header>
+
+  <!--<div id="screensaver">
+    <p><b>Modalità risparmio energetico</b></p>
+    <p>Sei in modalità risparmio energetico. Per tornare sul sito clicca un punto qualsiasi dello schermo</p>
+  </div>-->
+
+    <div id="screensaver">
+      <img src="img/Logo.png" height="auto" width="200px"/>
+      <p><b>IPERION per l'ambiente</b></p>
+      <p>Questa pagina è entrata in in modalità risparmio energetico. Per tornare alla navigazione muovi il mouse sullo schermo</p>
+    </div>
+
+  <main>
+    <!-- Masthead -->
+    <section class="masthead text-white text-center">
+      <div class="overlay"></div>
+      <div id="particles-js" class="container">
+        <div class="row">
+          <div class="col-xl-9 mx-auto">
+            <h1 class="mb-3 mb-md-5">IPERION</h1>
+            <h2>Integrating Platforms for the European Research Infrastructure ON Heritage Science</h2>
+          </div>
+          <div class="col-md-10 col-lg-8 col-xl-7 mx-auto">
+          </div>
+        </div>
+      </div>
+    </section>
+
+    <!-- Icons Grid -->
+    <section class="section features-icons bg-white text-center">
+      <div class="container">
+        <div class="row mb-sm-5">
+          <div onclick="location.href='ricerca.html';" style="cursor: pointer;" class="col-sm-4 index-btn mb-3 sm:mb-0">
+            <div class="features-icons-item">
+              <div class="features-icons-icon d-flex">
+                <img class="ico-img" src="img/ricerca.png" />
+              </div>
+              <h3 class="title">Interfaccia di Ricerca</h3>
+            </div>
+          </div>
+          <div onclick="location.href='progetto.html';" style="cursor: pointer;" class="col-sm-4 index-btn mb-3 mb-sm-0">
+            <div class="features-icons-item">
+              <div class="features-icons-icon d-flex">
+                <img class="ico-img" src="img/progetto.png" />
+              </div>
+              <h3 class="title">Progetto</h3>
+            </div>
+          </div>
+          <div onclick="location.href='http://ckan.restore.ovi.cnr.it/';" style="cursor: pointer;" class="col-sm-4 index-btn mb-3 mb-sm-0">
+            <div class="features-icons-item">
+              <div class="features-icons-icon d-flex">
+                <img class="ico-img" src="img/ckan.png" />
+              </div>
+              <h3 class="title">Visualizza risorse</h3>
+            </div>
+          </div>
+          <!--<div onclick="location.href='http://dev.restore.ovi.cnr.it/lodlive/';" style="cursor: pointer;" class="col-sm-4 index-btn mb-3 mb-sm-0">
+            <div class="features-icons-item">
+              <div class="features-icons-icon d-flex">
+                <img class="ico-img" src="img/rdf.png" />
+              </div>
+              <h3 class="title">LOD</h3>
+            </div>
+          </div>
+          <div class="col-sm-4 index-btn mb-3 mb-sm-0">
+            <div class="features-icons-item">
+              <div class="features-icons-icon d-flex">
+                <img class="ico-img" src="img/indice.png" />
+              </div>
+              <h3 class="title">Indici</h3>
+            </div>
+          </div>
+          -->
+        </div>
+        <div class="row mb-sm-5">
+          
+          <div onclick="location.href='standard.html';" style="cursor: pointer;" class="col-sm-4 index-btn mb-3 mb-sm-0">
+            <div class="features-icons-item">
+              <div class="features-icons-icon d-flex">
+                <img class="ico-img" src="img/standard.png" />
+              </div>
+              <h3 class="title">Standard</h3>
+            </div>
+          </div>
+          <div onclick="location.href='sparql.html';" style="cursor: pointer;" class="col-sm-4 index-btn mb-3 mb-sm-0">
+            <div class="features-icons-item">
+              <div class="features-icons-icon d-flex">
+                <img class="ico-img" src="img/sparql.png" />
+              </div>
+              <h3 class="title">SPARQL</h3>
+            </div>
+          </div>
+          <div onclick="location.href='https://demo-restore.devworkbench.it/it/1/home';" style="cursor: pointer;" class="col-sm-4 index-btn mb-3 mb-sm-0">
+            <div class="features-icons-item">
+              <div class="features-icons-icon d-flex">
+                <img class="ico-img" src="img/percorsi.png" />
+              </div>
+              <h3 class="title">Percorsi</h3>
+            </div>
+          </div>
+        </div>
+        <div class="row">
+          <div onclick="location.href='Lab.html';" style="cursor: pointer; margin-left: auto; margin-right: auto;" class="col-sm-4 index-btn mb-3 mb-sm-0">
+            <div class="features-icons-item">
+              <div class="features-icons-icon d-flex">
+                <img class="ico-img" src="img/lab.png" />
+              </div>
+              <h3 class="title">Lab</h3>
+            </div>
+          </div>
+        </div>
+          <!--<div onclick="location.href='download.html';" style="cursor: pointer;" class="col-sm-4 index-btn mb-3 mb-sm-0">
+            <div class="features-icons-item">
+              <div class="features-icons-icon d-flex">
+                <img class="ico-img" src="img/database.png" />
+              </div>
+              <h3 class="title">Database</h3>
+            </div>
+          </div>
+        </div>
+        <div onclick="location.href='http://ckan.restore.ovi.cnr.it/';" style="cursor: pointer;" class="col-sm-4 index-btn mb-3 mb-sm-0">
+            <div class="features-icons-item">
+              <div class="features-icons-icon d-flex">
+                <img class="ico-img" src="img/ckan.png" />
+              </div>
+              <h3 class="title">Visualizza risorse</h3>
+            </div>
+          </div>
+          <div onclick="location.href='http://dev.restore.ovi.cnr.it/lodlive/';" style="cursor: pointer;" class="col-sm-4 index-btn mb-3 mb-sm-0">
+            <div class="features-icons-item">
+              <div class="features-icons-icon d-flex">
+                <img class="ico-img" src="img/rdf.png" />
+              </div>
+              <h3 class="title">LOD</h3>
+            </div>
+          </div>
+        </div>-->
+      </div>
+    </section>
+
+  </main>
+
+  <footer id="footer" class="footer">
+    <div class="container">
+      <div class="row">
+        <div class="col-lg-7 h-100 text-center text-lg-left my-auto">
+          <ul class="list-inline mb-2">
+            <li class="list-inline-item">
+              <a href="about.html">About</a>
+            </li>
+            <li class="list-inline-item">&sdot;</li>
+            <li class="list-inline-item">
+              <a href="contatti.html">Contatti</a>
+            </li>
+            <li class="list-inline-item">&sdot;</li>
+            <li class="list-inline-item">
+              <a href="termini.html">Termini e Condizioni</a>
+            </li>
+          </ul>
+          <p class="small mb-4 mb-lg-0">&copy; IPERION 2022. All Rights Reserved.</p>
+        </div>
+        <div class="col-lg-5 h-100 text-center my-auto">
+          <ul class="partner-list list-inline mb-0">
+            <li class="list-inline-item mr-3">
+              <a href="https://www.cnr.it/">
+                <img class="img-logo" src="img/CNR.png" />
+              </a>
+            </li>
+
+            <li class="list-inline-item mr-3">
+              <a href="https://europa.eu/">
+                <img class="img-logo" src="img/European-Union.png" />
+              </a>
+            </li>
+            <li class="list-inline-item mr-3">
+              <a href="http://www.governo.it/">
+                <img class="img-logo" src="img/RepubblicaItaliana.png" />
+              </a>
+            </li>
+
+          </ul>
+        </div>
+      </div>
+    </div>
+  </footer>
+
+  <!-- Bootstrap core JavaScript -->
+  <script src="vendor/jquery/jquery.min.js"></script>
+  <script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
+</body>
+
+</html>

+ 145 - 0
js/app.min.js

@@ -0,0 +1,145 @@
+! function (n, t, e) {
+    console.log("init");
+    var o = {
+        init: function (e) {
+            o.select2(), o.stellar(), o.carousel(), o.portfolio(), o.lightCase(), o.sideNav(), o.counter(), o.skills(), o.aos(), o.navbarChange()
+        },
+        select2: function () {
+            n(e).ready(function () {
+                n("select").select2()
+            })
+        },
+        stellar: function () {
+            var e = n(t).width();
+            767 <= e && (n(".bg-fixed").attr("data-stellar-background-ratio", "0.8"), n.stellar({
+                horizontalScrolling: !1,
+                responsive: !0,
+                parallaxBackgrounds: !0,
+                scrollProperty: "scroll"
+            }))
+        },
+        carousel: function () {
+            n(".testi-carousel").owlCarousel({
+                loop: !0,
+                margin: 10,
+                autoplay: !0,
+                nav: !1,
+                dots: !0,
+                dotSpeed: 1e3,
+                autoplay: !0,
+                autoplaySpeed: 1e3,
+                items: 1
+            }), n(".client-slider").owlCarousel({
+                loop: !0,
+                margin: 10,
+                nav: !0,
+                navSpeed: 1e3,
+                dots: !1,
+                autoplay: !0,
+                autoplaySpeed: 1e3,
+                navText: ['<span class="fa fa-angle-left"></span>', '<span class="fa fa-angle-right"></span>'],
+                responsive: {
+                    0: {
+                        items: 1
+                    },
+                    600: {
+                        items: 3
+                    },
+                    1e3: {
+                        items: 6
+                    }
+                }
+            })
+        },
+        portfolio: function () {
+            var t = n(".grid-portfolio").isotope({
+                itemSelector: ".grid-item",
+                masonry: {
+                    gutter: ".gutter-sizer",
+                    columnWidth: ".grid-sizer"
+                },
+                percentPosition: !0
+            });
+            return n(".filter-button-group").on("click", "a", function () {
+                var e = n(this).attr("data-filter");
+                t.isotope({
+                    filter: e
+                })
+            }), n(".btn-filter a.is-checked").addClass("active"), n(".btn-filter a").on("click", function () {
+                n(".btn-filter a").removeClass("active"), n(this).addClass("active")
+            }), !1
+        },
+        lightCase: function () {
+            jQuery(e).ready(function (e) {
+                e("a[data-rel^=lightcase]").lightcase()
+            })
+        },
+        sideNav: function () {
+            n("#side-nav-open").click(function () {
+                n("#side-nav").css("width", "300"), setTimeout(function () {
+                    n("body").addClass("sidenav-open")
+                }, 200), setTimeout(function () {
+                    n("body").addClass("in")
+                }, 400)
+            }), n("#side-nav-close, #canvas-overlay").click(function () {
+                setTimeout(function () {
+                    n("body").removeClass("in")
+                }, 200), setTimeout(function () {
+                    n("body").removeClass("sidenav-open"), n("#side-nav").css("width", "0")
+                }, 400)
+            }), n("#side-search-open").click(function () {
+                n("#side-search").css("width", "300"), setTimeout(function () {
+                    n("body").addClass("sidesearch-open")
+                }, 200), setTimeout(function () {
+                    n("body").addClass("in")
+                }, 300)
+            }), n("#side-search-close, #canvas-overlay").click(function () {
+                setTimeout(function () {
+                    n("body").removeClass("in")
+                }, 200), setTimeout(function () {
+                    n("body").removeClass("sidesearch-open"), n("#side-search").css("width", "0")
+                }, 300)
+            })
+        },
+        counter: function () {
+            n("#counter").each(function () {
+                n(this).waypoint({
+                    handler: function (e) {
+                        n(".number").countTo({
+                            speed: 1e3
+                        }), this.destroy()
+                    },
+                    offset: "80%"
+                })
+            })
+        },
+        skills: function () {
+            n("#skills").each(function () {
+                return n(this).waypoint({
+                    handler: function (e) {
+                        n(".progress").each(function () {
+                            console.log(n(this).attr("data-percent")), n(this).find(".progress-bar").delay(1e4).css({
+                                width: n(this).attr("data-percent")
+                            })
+                        })
+                    },
+                    offset: "80%"
+                }), !1
+            })
+        },
+        aos: function () {
+            AOS.init({
+                once: !0
+            })
+        },
+        navbarChange: function () {
+            n(t).scroll(function () {
+                var e = n(t).scrollTop();
+                return 150 < e ? (n("#header-navbar").removeClass("navbar-transparent"), n("body").addClass("not-on-top")) : (n("body").removeClass("not-on-top"), n("#header-navbar").addClass("navbar-transparent")), !1
+            })
+        }
+    };
+    n(e).ready(function () {
+        o.init(n)
+    })
+}(window.jQuery, window, document);

+ 6 - 346
progetto.html

@@ -33,7 +33,7 @@
 		<nav class="navbar navbar-expand-lg navbar-light bg-white">
 			<div class="container-fluid">
 				<div class="navbar-brand">
-					<a href="index.html"><img src="img/Logo.png" width="100" alt="Restore" /></a>
+					<a href="index.html"><img src="img/Logo.png" width="200" alt="Restore" /></a>
 				</div>
 				<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
 					<span class="navbar-toggler-icon"></span>
@@ -85,8 +85,8 @@
 	</header>
 
 	<div id="screensaver">
-		<img src="img/LogoBW.png" height="auto" width="200px"/>
-		<p><b>RESTORE per l'ambiente</b></p>
+		<img src="img/Logo.png" height="auto" width="200px"/>
+		<p><b>Iperion per l'ambiente</b></p>
 		<p>Questa pagina è entrata in in modalità risparmio energetico. Per tornare alla navigazione muovi il mouse sullo schermo</p>
 	</div>
 
@@ -95,356 +95,16 @@
         <section class="text-white text-center" style="height:400px;">
             <div class="all_images">
               <div id="slideset" class="background_wrap" style="height:100%;">
-                <div class="slide" style="background: url('img/veduta_simbolica.png') no-repeat center center; height:100%; background-size: cover;">
+                <div  style="background: url('img/veduta_simbolica.png') no-repeat center center; height:100%; background-size: cover;">
 					<div class="text-block">
-						<h4>Persone</h4>
-						<p>Francesco, padre mio dolce, venite tosto! vi prometto avarete cusì bel tempo, e spirituale e corporale, quale sia possibile ad aver fuor de casa sua. Or Iddio vi dia buona e longa vita, con salute de l’anima e del corpo.
-							<br />
-						<i>ASPO, Datini, b.1103, cod. 6100069</i></p>
+						<h4>WIP</h4>
+						<p>Work In Progress
 					  </div>
 				</div>
-				<div class="slide" style="background: url('img/cartina2.jpg') no-repeat center center; height:100%; background-size: cover;">
-					<div class="text-block">
-						<h4>Storie</h4>
-						<p>Era costume in vicinanza delle città e delle grosse terre costruire Spedali, in cui 
-							trovassero ricovero i pellegrini, i vecchi e gli infermi. La nostra città, così ricca 
-							di benefiche istituzioni, ebbe anch'essa molti di questi Spedali...<br />
-						<i>Gaetano Guasti, Degli spedali di Prato e della loro dipendenza dal Comune, Prato 1869</i></p>
-					  </div>
-				</div>
-				<div class="slide" style="background: url('img/veduta_Duomo.JPG') no-repeat center center; height:100%; background-size: cover;">
-					<div class="text-block">
-						<h4>Spazio Urbano</h4>
-						<p>PRATO nella Valle del Bisenzio. – Città nobile, industriosa e bella, già Terra cospicua, 
-							con insigne collegiata sotto il titolo de’SS. Stefano e Lorenzo, fatta cattedrale sotto 
-							il vescovo di Pistoja, capoluogo di Comunità e di Giurisdizione nel Compartimento di Firenze. <br />
-							<i>Dizionario storico geografico della Toscana, a c. di E. Repetti, Firenze, 1841, Vol. IV</i></p>
-					  </div>
-				</div>
-                 <!-- <h1 class="mb-3 mb-md-5">RESTORE</h1>
-                  <h2>sma<span style="text-decoration: underline;">R</span>t acc<span style="text-decoration: underline;">ES</span>s <span style="text-decoration: underline;">TO</span> digital he<span style="text-decoration: underline;">R</span>itage and m<span style="text-decoration: underline;">E</span>mory</h2>
-                -->
             </div>
 			</div>
           </section>
 
-		<section id="wb_Image1" class="bg-white">
-			<div class="container">
-				<div id="wb_intro" class="section-small">
-					
-                    <p><b>RESTORE</b> è un progetto finanziato dalla <a href="https://www.regione.toscana.it/-/assegni-di-ricerca-in-ambito-culturale" target="_blank">Regione Toscana (POR FESR 2014-2020)</a>, costituito da un partenariato che include <a href="https://www.cnr.it" target="_blank">CNR</a>, operatori della filiera culturale e creativa regionale attive in diversi campi della ricerca umanistica (<a href="http://www.archiviodistato.prato.it/" target="_blank">Archivio di Stato di Prato</a>, <a href="http://www.palazzopretorio.prato.it/it/" target="_blank">Museo di Palazzo Pretorio</a>, <a href="http://sa-toscana.beniculturali.it/" target="_blank">Sovrintendenza Archivistica e Bibliografica della Toscana)</a> e PMI (<a href="http://www.spacespa.it" target="_blank">Space S.p.a.</a>). </p>
-                        <p>RESTORE intende migliorare l’accesso al patrimonio culturale conservato dalle istituzioni cittadine, a partire dall'Archivio di Stato e dal Museo di Palazzo Pretorio, per includere seguito altri istituti tutelati dalla Soprintendenza Archivistica e Bibliografica, attraverso:
-                        <ul>
-                            <li>l'applicazione di tecnologie informatiche per la l’integrazione e la gestione dei beni culturali in ambiente digitale;</li>
-                            <li>l'elaborazione di modalità innovative per la loro fruizione, che ne favorisca la comprensione e ne incentivi il riuso.</li>
-                        </ul>
-                        </p>
-                        <p>Il contesto di riferimento per le attività scientifiche e di sviluppo infrastrutturale è costituito dalla collaborazione (attraverso il <a href="http://www.ovi.cnr.it" target="_blank">CNR-OVI</a> che coordina il progetto) con le infrastrutture <a href="http://it.dariah.eu" target="_blank">DARIAH-ERIC</a> (ESFRI Landmark per le discipline umanistiche e le scienze sociali) ed <a href="http://www.e-rihs.eu" target="_blank">E-RIHS</a> (progetto ESFRI per la scienza del patrimonio), oltre che dalla <a href="https://ec.europa.eu/research/openscience/index.cfm?pg=open-science-cloud" target="_blank">Cloud Europea della Ricerca</a> (EOSC).</p>
-                    
-				</div>
-			</div>
-		</section>
-
-		<video
-			id="presenta_restore"
-			class="video-js"
-			controls
-			preload="auto"
-			width="640"
-			height="300"
-			poster="img/poster.png"
-			data-setup="{}"
-		>
-			<source src="Video/launch_restore.mp4" type="video/mp4" />
-			<p class="vjs-no-js">
-			To view this video please enable JavaScript, and consider upgrading to a
-			web browser that
-			<a href="https://videojs.com/html5-video-support/" target="_blank"
-				>supports HTML5 video</a
-			>
-			</p>
- 		 </video>
-
-        <section class="section-small bg-light text-center">
-            <div class="container">
-                <h2 class="section-title">Chi siamo</h2>
-                <p style="font-weight:300;">RESTORE è un progetto collaborativo che coinvolge diverse soggetti: 
-                    Enti di ricerca (CNR, Opera del Vocabolario Italiano), operatori della 
-                    filiera culturale e creativa regionale (Archivio di Stato di Prato, 
-                    Museo di Palazzo Pretorio, Soprintendenza archivista e bibliografica della Toscana) 
-                    e PMI (SPACE s.p.a.)
-				</p>
-                <div class="" id="partners">
-                    <div class="row">
-                        <div class="col-12 col-md-6 col-lg mb-4">
-                          <div class="card waw">
-                            <img class="partnerImg" src="img/OVI.png" alt="ovi">
-                            <div class="container">
-                              <h4>OVI</h4>
-                              <p>L’OVI - Opera del Vocabolario Italiano è un Istituto del CNR con il compito di compilare un dizionario storico della lingua italiana.
-                                OVI si occuperà di offrire supporto agli assegnisti nelle varie fasi del progetto e in particolare nelle attività ad alto contenuto tecnologico. Presso l’OVI ha sede il nodo nazionale dell’infrastruttura DARIAH.</p>
-								<a class="partnerSite" href='http://www.ovi.cnr.it/'><button class="btn btn-theme-primary">Vai al sito</button></a>
-                            </div>
-                          </div>
-                        </div>
-                      
-                        <div class="col-12 col-md-6 col-lg mb-4">
-                          <div class="card waw">
-                            <img class="partnerImg" src="img/ASPO.jpg" alt="aspo">
-                            <div class="container">
-                              <h4>ASPO</h4>
-                              <p>L’Archivio di Stato di Prato conserva la memoria del territorio 
-								  e della popolazione pratese, (ospitando il patrimonio documentario 
-								  di istituzioni, famiglie, persone e altri organismi privati di 
-								  interesse storico particolarmente importante). L'Archivio metterà a 
-								  disposizione del progetto le risorse digitali disponbili così come 
-								  le competenze e capacità professionali del personale.
-                            	</p>
-								<a href="http://www.archiviodistato.prato.it/" class="partnerSite"><button class="btn btn-theme-primary">Vai al sito</button></a>
-                            </div>
-                          </div>
-                        </div>
-                      
-                        <div class="col-12 col-md-6 col-lg mb-4">
-                          <div class="card waw">
-                            <img class="partnerImg" src="img/MPP.png" alt="mpp">
-                            <div class="container">
-                              <h4>MPP</h4>
-                              <p>Il Museo di Palazzo Pretorio racconta la storia della città attraverso 
-								  le opere che conserva. Poiché l’arte costituisce l’espressione più 
-								  immediata del pensiero e delle vicende storiche di un periodo, 
-								  l’apporto del Museo di Palazzo Pretorio all’interno del progetto contribuirà 
-								  ad integrare lo studio dei documenti grazie a competenze scientifiche 
-								  e tecniche, patrimonio fotografico e librario.
-								</p>
-								<a class="partnerSite" href="https://www.palazzopretorio.prato.it/it/"><button class="btn btn-theme-primary">Vai al sito</button></a>
-                            </div>
-                          </div>
-                        </div>
-
-                        <div class="col-12 col-md-6 col-lg mb-4">
-                            <div class="card waw">
-                              <img class="partnerImg" src="img/SABTOS.jpg" alt="sabtos">
-                              <div class="container">
-                                <h4>SABTOS</h4>
-                                <p>Compito primario della Soprintendenza è la tutela e vigilanza, 
-									nell'ambito del territorio di competenza, su una grande varietà 
-									di complessi documentari di interesse storico non statali. 
-									Nell'ambito del progetto, favorirà la conoscenza e l'integrazione 
-									con le realtà del territorio e promuoverà l'interoperabilità con 
-									i sistemi archivistici nazionali.
-								</p>
-                                <a class="partnerSite" href="http://sa-toscana.beniculturali.it/home"><button class="btn btn-theme-primary">Vai al sito</button></a>
-                              </div>
-                            </div>
-                        </div>
-                    
-                        <div class="col-12 col-md-6 col-lg mb-4">
-                            <div class="card waw">
-                                <img class="partnerImg" src="img/SPACE.jpg" alt="space">
-                                <div class="container">
-                                <h4>SPACE</h4>
-                                <p>SPACE S.p.A. è un’impresa di innovazione tecnologica e 
-									progettuale dedicata alla valorizzazione e comunicazione 
-									del patrimonio culturale. Mette a disposizione la sua 
-									esperienza in progettazione culturale complessa per la 
-									realizzazione della soluzione comunicativa e tecnologica 
-									più idonea a rendere fruibile il patrimonio archivistico e 
-									bibliografico disponibile sul territorio.
-								</p>
-                                <a class="partnerSite" href="https://www.spacespa.it/"><button class="btn btn-theme-primary">Vai al sito</button></a>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </section>
-
-		<section class="#">
-			<div class="container">
-				<div class="section-small">
-					<h2 class="section-title">Notizie</h2>
-					
-                    <div id="notizie" class="row">
-						<div class="col">
-
-							<div class="row news">
-								<div class="col-3 newsDate">
-									<p>31/08/2022</p>
-								</div>
-								<div id="n10" class="col newsBody" onclick="toggleNews(this.id);">
-									<div class="newsTitle">Chiusura dei lavori<br /></div>
-									<div class="newsText">
-									In data 31 Agosto 2022 termina il lavoro del progetto RESTORE. Nei prossimi mesi il team parteciperà
-									a degli eventi per presentare il lavoro svolto.
-									</div>
-								</div>
-							</div>
-
-							<div class="row news">
-								<div class="col-3 newsDate">
-									<p>31/05/2022 - 03/06/2022</p>
-								</div>
-								<div id="n9" class="col newsBody" onclick="toggleNews(this.id);">
-									<div class="newsTitle">Partecipazione a DARIAH Annual Event 2022<br /></div>
-									<div class="newsText">
-										L'argomento dell'evento è stato lo Storytelling e la sua evoluzione in linea con la tecnologia che 
-										ha permesso di crearne nuove tecniche e declinazioni. Si analizza il modo in cui vengono raccontate le 
-										storie per capire meglio la nostra società. <br />
-										In DARIAH 2022 è stato messo in evidenza il potere della narrazione nelle arti e nelle discipline umanistiche. 
-										Osservando le nostre pratiche di ricerca e le nostre infrastrutture di ricerca attraverso la lente della 
-										narrazione, con l'obiettivo di costruire ponti concettuali tra le arti, la tecnologia, le discipline umanistiche e oltre.
-										Per l'evento è stato creato un poster che presentasse le funzionalità di un progetto come RESTORE per raccontare storie.
-										Il poster è stato caricato sulla piattaforma dell'evento ed è stato visualizzato dai partecipanti per la durata della sessione
-										dedicata. 
-									</div>
-								</div>
-							</div>
-
-							<div class="row news">
-								<div class="col-3 newsDate">
-									<p>24/02/2022 – 25/02/2022</p>
-								</div>
-								<div id="n8" class="col newsBody" onclick="toggleNews(this.id);">
-									<div class="newsTitle">Partecipazione al convegno IRCDL 2022 - 18th Italian Research Conference on Digital Libraries<br /></div>
-									<div class="newsText">
-									Il convegno IRCDL 2022 si è focalizzato su collegare l'ampio campo della ricerca 
-									e della scienza dell'informazione con il relativo campo delle biblioteche digitali. 
-									IRCDL si è avvicinato alle "Digital Libraries" abbracciando il campo in generale 
-									attraverso tre aree chiave di interesse che possono essere sintetizzate come: 
-									comunicazione accademica (ad esempio dati di ricerca, software di ricerca, 
-									esperimenti digitali, biblioteche digitali), e-scienza/informatica- ricerca intensa 
-									(ad es. flussi di lavoro scientifici, ambienti di ricerca virtuali, riproducibilità) 
-									e biblioteche, archivi e scienze dell'informazione (ad es. governance, politiche, 
-									accesso aperto, scienza aperta). 
-									Durante il convegno, tenutosi in forma ibrida (in presenza a Padova e online), è stato presentato
-									lo stato dell'arte del progetto RESTORE.
-									</div>
-								</div>
-							</div>
-
-							<div class="row news">
-								<div class="col-3 newsDate">
-									<p>14/06/2021</p>
-								</div>
-								<div id="n7" class="col newsBody" onclick="toggleNews(this.id);">
-									<div class="newsTitle">Partecipazione al convegno EVA 2021 Florence<br /></div>
-									<div class="newsText">
-										L'obiettivo principale di questo Evento è stato fornire un punto di incontro per scambiare 
-										esperienze, idee e progetti nell'ampia area della Cultura e della Tecnologia.
-										Durante il convegno, tenutosi online a causa della Pandemia Covid-19, è stato presentato
-										lo stato dell'arte del progetto RESTORE.
-									</div>
-								</div>
-							</div>
-
-							<div class="row news">
-								<div class="col-3 newsDate">
-									<p>18/02/2021 – 19/02/2021</p>
-								</div>
-								<div id="n6" class="col newsBody" onclick="toggleNews(this.id);">
-									<div class="newsTitle">Partecipazione al convegno IRCDL 2021 - 17th Italian Research Conference on Digital Libraries<br /></div>
-									<div class="newsText">L'obiettivo del convegno IRCDL 2021 è stato collegare l'ampio campo della ricerca e della scienza 
-										dell'informazione con il relativo campo delle biblioteche digitali. La conferenza attinge da un'ampia e 
-										multidisciplinare gamma di aree di ricerca tra cui informatica, scienze dell'informazione, biblioteconomia, 
-										scienza e pratica archivistica, studi e pratiche museali, tecnologia, scienze sociali, patrimonio culturale e umanistico e comunità scientifiche.
-										Durante il convegno, tenutosi online a causa della Pandemia Covid-19, è stato presentato
-										lo stato dell'arte del progetto RESTORE.
-									</div>
-								</div>
-							</div>
-
-							<div class="row news">
-								<div class="col-3 newsDate">
-									<p>19/01/2021 – 22/01/2021</p>
-								</div>
-								<div id="n5" class="col newsBody" onclick="toggleNews(this.id);">
-									<div class="newsTitle">Partecipazione al convegno AIUCD DH per la società: e-guaglianza, partecipazione, diritti e valori nell’era digitale.<br /></div>
-									<div class="newsText">AIUCD2021 vuole rappresentare un momento di approfondimento e di 
-										riflessione sulle Digital Humanities (DH) come luogo privilegiato di incontro tra diversi 
-										bisogni della società contemporanea nella ricerca, nella politica, nell’economia e nel 
-										quotidiano, restituendo all’umanista il ruolo di interprete e traghettatore del cambiamento. 
-										I temi principali trattati sono stati: Digital public humanities, Open culture, Reti sociali, 
-										Tech- economy, e-Participation, Tecnologie assistive per l’inclusione.
-										Durante il convegno, tenutosi online a causa della Pandemia Covid-19, è stato presentato
-										lo stato dell'arte del progetto RESTORE.
-									</div>
-								</div>
-							</div>
-
-							<div class="row news">
-								<div class="col-3 newsDate">
-									<p>16/12/2020</p>
-								</div>
-								<div id="n4" class="col newsBody" onclick="toggleNews(this.id);">
-									<div class="newsTitle">Prato curata, Prato che cura<br /></div>
-									<div class="newsText">Nell’ambito del ciclo di incontri Prato curata, 
-									Prato che cura, promosso dall’Archivio di Stato di Prato, mercoledì 16 
-									dicembre a partire dalle ore 17,00 si terrà una presentazione del progetto 
-									RESTORE, finanziato dalla Regione Toscana (POR FESR 2014-2020) e costituito 
-									da un partenariato che include CNR, operatori della filiera culturale e creativa 
-									regionale attive in diversi campi della ricerca umanistica (Archivio di Stato di 
-									Prato, Museo di Palazzo Pretorio, Sovrintendenza Archivistica e Bibliografica della 
-									Toscana) e PMI (Space S.p.a.)
-									</div>
-								</div>
-							</div>
-
-							<div class="row news">
-								<div class="col-3 newsDate">
-									<p>01/09/2020</p>
-								</div>
-								<div id="n3" class="col newsBody" onclick="toggleNews(this.id);">
-									<div class="newsTitle">Presa di servizio secondo assegnista<br /></div>
-									<div class="newsText">Federica Spinelli, la seconda assegnista di ricerca che 
-										lavorerà al progetto, ha preso servizio. Federica si occuperà della 
-										modellazione dei dati, della loro integrazione e interoperabilità.
-										Da questo momento entrambe le assegniste sono operative.
-									</div>
-								</div>
-							</div>
-
-							<div class="row news">
-								<div class="col-3 newsDate">
-									<p>21/07/2020</p>
-								</div>
-								<div id="n2" class="col newsBody" onclick="toggleNews(this.id);">
-									<div class="newsTitle">Pubblicato bando per secondo assegno di ricerca<br /></div>
-									<div class="newsText">Avviso di selezione n. AR OVI 03/2020 per il conferimento di 
-										n. 1 assegno di ricerca grant per lo svolgimento di attività di ricerca di 
-										cui al progetto congiunto di alta formazione, cofinanziato dalla Regione 
-										Toscana con le risorse del POR FSE 2014-2020 – Asse A Occupazione, nell’ambito 
-										di “Giovanisì”, il progetto della Regione Toscana per l’autonomia dei giovani.
-									</div>
-								</div>
-							</div>
-
-							<div class="row news">
-								<div class="col-3 newsDate">
-									<p>01/06/2020</p>
-								</div>
-								<div id="n1" class="col newsBody" onclick="toggleNews(this.id);">
-									<div class="newsTitle">Avvio attività del progetto RESTORE<br /></div>
-									<div class="newsText">Alessia Spadi il primo dei due giovani ricercatori 
-										che lavoreranno al progetto, ha preso servizio. Alessia si occuperà 
-										della progettazione della piattaforma di presentazione dei contenuti, 
-										delle interfacce di consultazione dei dati e della gestione dell'interazione 
-										con l'utente. <br/>
-										Un secondo ricercatore, che si occuperà della modellazione dei dati, 
-										della loro integrazione e interoperabilità, entrerà in servizio a settembre.
-									</div>
-								</div>
-							</div>
-						
-						</div>
-					</div>
-				</div>
-			</div>
-		</section>
-
-
-		
 	</main>
 
 	<!-- Modal -->

File diff suppressed because it is too large
+ 5 - 0
vendor/bootstrap/bootstrap.min.css


File diff suppressed because it is too large
+ 5 - 0
vendor/bootstrap/bootstrap.min.js


File diff suppressed because it is too large
+ 3 - 0
vendor/bootstrap/popper.min.js


File diff suppressed because it is too large
+ 10 - 0
vendor/isotope/isotope.min.js


+ 557 - 0
vendor/lightcase/lightcase.css

@@ -0,0 +1,557 @@
+/**
+ * Lightcase - jQuery Plugin
+ * The smart and flexible Lightbox Plugin.
+ *
+ * @author		Cornel Boppart <cornel@bopp-art.com>
+ * @copyright	Author
+ *
+ * @version		2.5.0 (11/03/2018)
+ */
+/**
+ * Lightcase settings
+ *
+ * Note: Override default settings for your project without touching this source code by simply
+ * defining those variables within a SASS map called '$lightcase-custom'.
+ *
+ * // Example usage
+ * $lightcase-custom: (
+ *   'breakpoint': 768px
+ * );
+ */
+@font-face {
+  font-family: 'lightcase';
+  src: url("../fonts/lightcase.eot?55356177");
+  src: url("../fonts/lightcase.eot?55356177#iefix") format("embedded-opentype"), url("../fonts/lightcase.woff?55356177") format("woff"), url("../fonts/lightcase.ttf?55356177") format("truetype"), url("../fonts/lightcase.svg?55356177#lightcase") format("svg");
+  font-weight: normal;
+  font-style: normal;
+}
+/* line 12, ../scss/components/fonts/_font-lightcase.scss */
+[class*='lightcase-icon-']:before {
+  font-family: 'lightcase', sans-serif;
+  font-style: normal;
+  font-weight: normal;
+  speak: none;
+  display: inline-block;
+  text-decoration: inherit;
+  width: 1em;
+  text-align: center;
+  /* For safety - reset parent styles, that can break glyph codes*/
+  font-variant: normal;
+  text-transform: none;
+  /* fix buttons height, for twitter bootstrap */
+  line-height: 1em;
+  /* Uncomment for 3D effect */
+  /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
+}
+
+/* Codes */
+/* line 35, ../scss/components/fonts/_font-lightcase.scss */
+.lightcase-icon-play:before {
+  content: '\e800';
+}
+
+/* line 36, ../scss/components/fonts/_font-lightcase.scss */
+.lightcase-icon-pause:before {
+  content: '\e801';
+}
+
+/* line 37, ../scss/components/fonts/_font-lightcase.scss */
+.lightcase-icon-close:before {
+  content: '\e802';
+}
+
+/* line 38, ../scss/components/fonts/_font-lightcase.scss */
+.lightcase-icon-prev:before {
+  content: '\e803';
+}
+
+/* line 39, ../scss/components/fonts/_font-lightcase.scss */
+.lightcase-icon-next:before {
+  content: '\e804';
+}
+
+/* line 40, ../scss/components/fonts/_font-lightcase.scss */
+.lightcase-icon-spin:before {
+  content: '\e805';
+}
+
+/**
+ * Mixin providing icon defaults to be used on top of font-lightcase.
+ *
+ * Example usage:
+ * @include icon(#e9e9e9)
+ */
+/**
+ * Mixin providing icon defaults including a hover status to be used
+ * on top of font-lightcase.
+ *
+ * Example usage:
+ * @include icon-hover(#e9e9e9, #fff)
+ */
+/**
+ * Provides natural content overflow behavior and scrolling support
+ * even so for touch devices.
+ *
+ * Example usage:
+ * @include overflow()
+ */
+/**
+ * Neutralizes/resets dimensions including width, height, position as well as margins,
+ * paddings and styles. Used to enforce a neutral and unstyled look and behavoir!
+ *
+ * Example usage:
+ * @include clear(true)
+ *
+ * @param boolean $important
+ */
+@-webkit-keyframes lightcase-spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(359deg);
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@-moz-keyframes lightcase-spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(359deg);
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@-o-keyframes lightcase-spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(359deg);
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@-ms-keyframes lightcase-spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(359deg);
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@keyframes lightcase-spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(359deg);
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+/* line 1, ../scss/components/modules/_case.scss */
+#lightcase-case {
+  display: none;
+  position: fixed;
+  z-index: 2002;
+  top: 50%;
+  left: 50%;
+  font-family: arial, sans-serif;
+  font-size: 13px;
+  line-height: 1.5;
+  text-align: left;
+  text-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
+}
+@media screen and (max-width: 640px) {
+  /* line 16, ../scss/components/modules/_case.scss */
+  html[data-lc-type=inline] #lightcase-case, html[data-lc-type=ajax] #lightcase-case {
+    position: fixed !important;
+    top: 0 !important;
+    left: 0 !important;
+    right: 0 !important;
+    bottom: 0 !important;
+    margin: 0 !important;
+    padding: 55px 0 70px 0;
+    width: 100% !important;
+    height: 100% !important;
+    overflow: auto !important;
+  }
+}
+
+@media screen and (min-width: 641px) {
+  /* line 4, ../scss/components/modules/_content.scss */
+  html:not([data-lc-type=error]) #lightcase-content {
+    position: relative;
+    z-index: 1;
+    text-shadow: none;
+    background-color: #fff;
+    -webkit-box-shadow: 0 0 30px rgba(0, 0, 0, 0.5);
+    -moz-box-shadow: 0 0 30px rgba(0, 0, 0, 0.5);
+    -o-box-shadow: 0 0 30px rgba(0, 0, 0, 0.5);
+    box-shadow: 0 0 30px rgba(0, 0, 0, 0.5);
+    -webkit-backface-visibility: hidden;
+  }
+}
+@media screen and (min-width: 641px) {
+  /* line 23, ../scss/components/modules/_content.scss */
+  html[data-lc-type=image] #lightcase-content, html[data-lc-type=video] #lightcase-content {
+    background-color: #333;
+  }
+}
+/* line 31, ../scss/components/modules/_content.scss */
+html[data-lc-type=inline] #lightcase-content, html[data-lc-type=ajax] #lightcase-content, html[data-lc-type=error] #lightcase-content {
+  -webkit-box-shadow: none;
+  -moz-box-shadow: none;
+  -o-box-shadow: none;
+  box-shadow: none;
+}
+@media screen and (max-width: 640px) {
+  /* line 31, ../scss/components/modules/_content.scss */
+  html[data-lc-type=inline] #lightcase-content, html[data-lc-type=ajax] #lightcase-content, html[data-lc-type=error] #lightcase-content {
+    position: relative !important;
+    top: auto !important;
+    left: auto !important;
+    width: auto !important;
+    height: auto !important;
+    margin: 0 !important;
+    padding: 0 !important;
+    border: none !important;
+    background: none !important;
+  }
+}
+/* line 43, ../scss/components/modules/_content.scss */
+html[data-lc-type=inline] #lightcase-content .lightcase-contentInner, html[data-lc-type=ajax] #lightcase-content .lightcase-contentInner, html[data-lc-type=error] #lightcase-content .lightcase-contentInner {
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  -o-box-sizing: border-box;
+  box-sizing: border-box;
+}
+@media screen and (max-width: 640px) {
+  /* line 43, ../scss/components/modules/_content.scss */
+  html[data-lc-type=inline] #lightcase-content .lightcase-contentInner, html[data-lc-type=ajax] #lightcase-content .lightcase-contentInner, html[data-lc-type=error] #lightcase-content .lightcase-contentInner {
+    padding: 15px;
+  }
+  /* line 52, ../scss/components/modules/_content.scss */
+  html[data-lc-type=inline] #lightcase-content .lightcase-contentInner, html[data-lc-type=inline] #lightcase-content .lightcase-contentInner > *, html[data-lc-type=ajax] #lightcase-content .lightcase-contentInner, html[data-lc-type=ajax] #lightcase-content .lightcase-contentInner > *, html[data-lc-type=error] #lightcase-content .lightcase-contentInner, html[data-lc-type=error] #lightcase-content .lightcase-contentInner > * {
+    width: 100% !important;
+    max-width: none !important;
+  }
+  /* line 59, ../scss/components/modules/_content.scss */
+  html[data-lc-type=inline] #lightcase-content .lightcase-contentInner > *:not(iframe), html[data-lc-type=ajax] #lightcase-content .lightcase-contentInner > *:not(iframe), html[data-lc-type=error] #lightcase-content .lightcase-contentInner > *:not(iframe) {
+    height: auto !important;
+    max-height: none !important;
+  }
+}
+@media screen and (max-width: 640px) {
+  /* line 70, ../scss/components/modules/_content.scss */
+  html.lightcase-isMobileDevice[data-lc-type=iframe] #lightcase-content .lightcase-contentInner iframe {
+    overflow: auto;
+    -webkit-overflow-scrolling: touch;
+  }
+}
+@media screen and (max-width: 640px) and (min-width: 641px) {
+  /* line 74, ../scss/components/modules/_content.scss */
+  html[data-lc-type=image] #lightcase-content .lightcase-contentInner, html[data-lc-type=video] #lightcase-content .lightcase-contentInner {
+    line-height: 0.75;
+  }
+}
+
+/* line 82, ../scss/components/modules/_content.scss */
+html[data-lc-type=image] #lightcase-content .lightcase-contentInner {
+  position: relative;
+  overflow: hidden !important;
+}
+@media screen and (max-width: 640px) {
+  /* line 91, ../scss/components/modules/_content.scss */
+  html[data-lc-type=inline] #lightcase-content .lightcase-contentInner .lightcase-inlineWrap, html[data-lc-type=ajax] #lightcase-content .lightcase-contentInner .lightcase-inlineWrap, html[data-lc-type=error] #lightcase-content .lightcase-contentInner .lightcase-inlineWrap {
+    position: relative !important;
+    top: auto !important;
+    left: auto !important;
+    width: auto !important;
+    height: auto !important;
+    margin: 0 !important;
+    padding: 0 !important;
+    border: none !important;
+    background: none !important;
+  }
+}
+@media screen and (min-width: 641px) {
+  /* line 100, ../scss/components/modules/_content.scss */
+  html:not([data-lc-type=error]) #lightcase-content .lightcase-contentInner .lightcase-inlineWrap {
+    padding: 30px;
+    overflow: auto;
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    -o-box-sizing: border-box;
+    box-sizing: border-box;
+  }
+}
+@media screen and (max-width: 640px) {
+  /* line 117, ../scss/components/modules/_content.scss */
+  #lightcase-content h1, #lightcase-content h2, #lightcase-content h3, #lightcase-content h4, #lightcase-content h5, #lightcase-content h6, #lightcase-content p {
+    color: #aaa;
+  }
+}
+@media screen and (min-width: 641px) {
+  /* line 117, ../scss/components/modules/_content.scss */
+  #lightcase-content h1, #lightcase-content h2, #lightcase-content h3, #lightcase-content h4, #lightcase-content h5, #lightcase-content h6, #lightcase-content p {
+    color: #333;
+  }
+}
+
+/* line 3, ../scss/components/modules/_error.scss */
+#lightcase-case p.lightcase-error {
+  margin: 0;
+  font-size: 17px;
+  text-align: center;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  color: #aaa;
+}
+@media screen and (max-width: 640px) {
+  /* line 3, ../scss/components/modules/_error.scss */
+  #lightcase-case p.lightcase-error {
+    padding: 30px 0;
+  }
+}
+@media screen and (min-width: 641px) {
+  /* line 3, ../scss/components/modules/_error.scss */
+  #lightcase-case p.lightcase-error {
+    padding: 0;
+  }
+}
+
+/* line 4, ../scss/components/modules/_global.scss */
+.lightcase-open body {
+  overflow: hidden;
+}
+/* line 8, ../scss/components/modules/_global.scss */
+.lightcase-isMobileDevice .lightcase-open body {
+  max-width: 100%;
+  max-height: 100%;
+}
+
+/* line 1, ../scss/components/modules/_info.scss */
+#lightcase-info {
+  position: absolute;
+  padding-top: 15px;
+}
+/* line 9, ../scss/components/modules/_info.scss */
+#lightcase-info #lightcase-title,
+#lightcase-info #lightcase-caption {
+  margin: 0;
+  padding: 0;
+  line-height: 1.5;
+  font-weight: normal;
+  text-overflow: ellipsis;
+}
+/* line 19, ../scss/components/modules/_info.scss */
+#lightcase-info #lightcase-title {
+  font-size: 17px;
+  color: #aaa;
+}
+@media screen and (max-width: 640px) {
+  /* line 19, ../scss/components/modules/_info.scss */
+  #lightcase-info #lightcase-title {
+    position: fixed;
+    top: 10px;
+    left: 0;
+    max-width: 87.5%;
+    padding: 5px 15px;
+    background: #333;
+  }
+}
+/* line 33, ../scss/components/modules/_info.scss */
+#lightcase-info #lightcase-caption {
+  clear: both;
+  font-size: 13px;
+  color: #aaa;
+}
+/* line 39, ../scss/components/modules/_info.scss */
+#lightcase-info #lightcase-sequenceInfo {
+  font-size: 11px;
+  color: #aaa;
+}
+@media screen and (max-width: 640px) {
+  /* line 45, ../scss/components/modules/_info.scss */
+  .lightcase-fullScreenMode #lightcase-info {
+    padding-left: 15px;
+    padding-right: 15px;
+  }
+  /* line 51, ../scss/components/modules/_info.scss */
+  html:not([data-lc-type=image]):not([data-lc-type=video]):not([data-lc-type=flash]):not([data-lc-type=error]) #lightcase-info {
+    position: static;
+  }
+}
+
+/* line 1, ../scss/components/modules/_loading.scss */
+#lightcase-loading {
+  position: fixed;
+  z-index: 9999;
+  width: 1.123em;
+  height: auto;
+  font-size: 38px;
+  line-height: 1;
+  text-align: center;
+  text-shadow: none;
+  position: fixed;
+  z-index: 2001;
+  top: 50%;
+  left: 50%;
+  margin-top: -0.5em;
+  margin-left: -0.5em;
+  opacity: 1;
+  font-size: 32px;
+  text-shadow: 0 0 15px #fff;
+  -moz-transform-origin: 50% 53%;
+  -webkit-animation: lightcase-spin 0.5s infinite linear;
+  -moz-animation: lightcase-spin 0.5s infinite linear;
+  -o-animation: lightcase-spin 0.5s infinite linear;
+  animation: lightcase-spin 0.5s infinite linear;
+}
+/* line 20, ../scss/components/mixins/_presets.scss */
+#lightcase-loading, #lightcase-loading:focus {
+  text-decoration: none;
+  color: #fff;
+  -webkit-tap-highlight-color: transparent;
+  -webkit-transition: color, opacity, ease-in-out 0.25s;
+  -moz-transition: color, opacity, ease-in-out 0.25s;
+  -o-transition: color, opacity, ease-in-out 0.25s;
+  transition: color, opacity, ease-in-out 0.25s;
+}
+/* line 32, ../scss/components/mixins/_presets.scss */
+#lightcase-loading > span {
+  display: inline-block;
+  text-indent: -9999px;
+}
+
+/* line 2, ../scss/components/modules/_navigation.scss */
+a[class*='lightcase-icon-'] {
+  position: fixed;
+  z-index: 9999;
+  width: 1.123em;
+  height: auto;
+  font-size: 38px;
+  line-height: 1;
+  text-align: center;
+  text-shadow: none;
+  outline: none;
+  cursor: pointer;
+}
+/* line 20, ../scss/components/mixins/_presets.scss */
+a[class*='lightcase-icon-'], a[class*='lightcase-icon-']:focus {
+  text-decoration: none;
+  color: rgba(255, 255, 255, 0.6);
+  -webkit-tap-highlight-color: transparent;
+  -webkit-transition: color, opacity, ease-in-out 0.25s;
+  -moz-transition: color, opacity, ease-in-out 0.25s;
+  -o-transition: color, opacity, ease-in-out 0.25s;
+  transition: color, opacity, ease-in-out 0.25s;
+}
+/* line 32, ../scss/components/mixins/_presets.scss */
+a[class*='lightcase-icon-'] > span {
+  display: inline-block;
+  text-indent: -9999px;
+}
+/* line 49, ../scss/components/mixins/_presets.scss */
+a[class*='lightcase-icon-']:hover {
+  color: white;
+  text-shadow: 0 0 15px white;
+}
+/* line 10, ../scss/components/modules/_navigation.scss */
+.lightcase-isMobileDevice a[class*='lightcase-icon-']:hover {
+  color: #aaa;
+  text-shadow: none;
+}
+/* line 17, ../scss/components/modules/_navigation.scss */
+a[class*='lightcase-icon-'].lightcase-icon-close {
+  position: fixed;
+  top: 15px;
+  right: 15px;
+  bottom: auto;
+  margin: 0;
+  opacity: 0;
+  outline: none;
+}
+/* line 28, ../scss/components/modules/_navigation.scss */
+a[class*='lightcase-icon-'].lightcase-icon-prev {
+  left: 15px;
+}
+/* line 33, ../scss/components/modules/_navigation.scss */
+a[class*='lightcase-icon-'].lightcase-icon-next {
+  right: 15px;
+}
+/* line 38, ../scss/components/modules/_navigation.scss */
+a[class*='lightcase-icon-'].lightcase-icon-pause, a[class*='lightcase-icon-'].lightcase-icon-play {
+  left: 50%;
+  margin-left: -0.5em;
+}
+@media screen and (min-width: 641px) {
+  /* line 38, ../scss/components/modules/_navigation.scss */
+  a[class*='lightcase-icon-'].lightcase-icon-pause, a[class*='lightcase-icon-'].lightcase-icon-play {
+    opacity: 0;
+  }
+}
+@media screen and (max-width: 640px) {
+  /* line 2, ../scss/components/modules/_navigation.scss */
+  a[class*='lightcase-icon-'] {
+    bottom: 15px;
+    font-size: 24px;
+  }
+}
+@media screen and (min-width: 641px) {
+  /* line 2, ../scss/components/modules/_navigation.scss */
+  a[class*='lightcase-icon-'] {
+    bottom: 50%;
+    margin-bottom: -0.5em;
+  }
+  /* line 57, ../scss/components/modules/_navigation.scss */
+  a[class*='lightcase-icon-']:hover, #lightcase-case:hover ~ a[class*='lightcase-icon-'] {
+    opacity: 1;
+  }
+}
+
+/* line 1, ../scss/components/modules/_overlay.scss */
+#lightcase-overlay {
+  display: none;
+  width: 100%;
+  min-height: 100%;
+  position: fixed;
+  z-index: 2000;
+  top: -9999px;
+  bottom: -9999px;
+  left: 0;
+  background: #333;
+}
+@media screen and (max-width: 640px) {
+  /* line 1, ../scss/components/modules/_overlay.scss */
+  #lightcase-overlay {
+    opacity: 1 !important;
+  }
+}

+ 1893 - 0
vendor/lightcase/lightcase.js

@@ -0,0 +1,1893 @@
+/*
+ * Lightcase - jQuery Plugin
+ * The smart and flexible Lightbox Plugin.
+ *
+ * @author		Cornel Boppart <cornel@bopp-art.com>
+ * @copyright	Author
+ *
+ * @version		2.5.0 (11/03/2018)
+ */
+
+;(function ($) {
+
+	'use strict';
+
+	var _self = {
+		cache: {},
+
+		support: {},
+
+		objects: {},
+
+		/**
+		 * Initializes the plugin
+		 *
+		 * @param	{object}	options
+		 * @return	{object}
+		 */
+		init: function (options) {
+			return this.each(function () {
+				$(this).unbind('click.lightcase').bind('click.lightcase', function (event) {
+					event.preventDefault();
+					$(this).lightcase('start', options);
+				});
+			});
+		},
+
+		/**
+		 * Starts the plugin
+		 *
+		 * @param	{object}	options
+		 * @return	{void}
+		 */
+		start: function (options) {
+			_self.origin = lightcase.origin = this;
+
+			_self.settings = lightcase.settings = $.extend(true, {
+				idPrefix: 'lightcase-',
+				classPrefix: 'lightcase-',
+				attrPrefix: 'lc-',
+				transition: 'elastic',
+				transitionOpen: null,
+				transitionClose: null,
+				transitionIn: null,
+				transitionOut: null,
+				cssTransitions: true,
+				speedIn: 250,
+				speedOut: 250,
+				width: null,
+				height: null,
+				maxWidth: 800,
+				maxHeight: 500,
+				forceWidth: false,
+				forceHeight: false,
+				liveResize: true,
+				fullScreenModeForMobile: true,
+				mobileMatchExpression: /(iphone|ipod|ipad|android|blackberry|symbian)/,
+				disableShrink: false,
+				fixedRatio: true,
+				shrinkFactor: .75,
+				overlayOpacity: .9,
+				slideshow: false,
+				slideshowAutoStart: true,
+				breakBeforeShow: false,
+				timeout: 5000,
+				swipe: true,
+				useKeys: true,
+				useCategories: true,
+				useAsCollection: false,
+				navigateEndless: true,
+				closeOnOverlayClick: true,
+				title: null,
+				caption: null,
+				showTitle: true,
+				showCaption: true,
+				showSequenceInfo: true,
+				inline: {
+					width: 'auto',
+					height: 'auto'
+				},
+				ajax: {
+					width: 'auto',
+					height: 'auto',
+					type: 'get',
+					dataType: 'html',
+					data: {}
+				},
+				iframe: {
+					width: 800,
+					height: 500,
+					frameborder: 0
+				},
+				flash: {
+					width: 400,
+					height: 205,
+					wmode: 'transparent'
+				},
+				video: {
+					width: 400,
+					height: 225,
+					poster: '',
+					preload: 'auto',
+					controls: true,
+					autobuffer: true,
+					autoplay: true,
+					loop: false
+				},
+				attr: 'data-rel',
+				href: null,
+				type: null,
+				typeMapping: {
+					'image': 'jpg,jpeg,gif,png,bmp',
+					'flash': 'swf',
+					'video': 'mp4,mov,ogv,ogg,webm',
+					'iframe': 'html,php',
+					'ajax': 'json,txt',
+					'inline': '#'
+				},
+				errorMessage: function () {
+					return '<p class="' + _self.settings.classPrefix + 'error">' + _self.settings.labels['errorMessage'] + '</p>';
+				},
+				labels: {
+					'errorMessage': 'Source could not be found...',
+					'sequenceInfo.of': ' of ',
+					'close': 'Close',
+					'navigator.prev': 'Prev',
+					'navigator.next': 'Next',
+ 					'navigator.play': 'Play',
+					'navigator.pause': 'Pause'
+				},
+				markup: function () {
+					_self.objects.body.append(
+						_self.objects.overlay = $('<div id="' + _self.settings.idPrefix + 'overlay"></div>'),
+						_self.objects.loading = $('<div id="' + _self.settings.idPrefix + 'loading" class="' + _self.settings.classPrefix + 'icon-spin"></div>'),
+						_self.objects.case = $('<div id="' + _self.settings.idPrefix + 'case" aria-hidden="true" role="dialog"></div>')
+					);
+					_self.objects.case.after(
+						_self.objects.close = $('<a href="#" class="' + _self.settings.classPrefix + 'icon-close"><span>' + _self.settings.labels['close'] + '</span></a>'),
+						_self.objects.nav = $('<div id="' + _self.settings.idPrefix + 'nav"></div>')
+					);
+					_self.objects.nav.append(
+						_self.objects.prev = $('<a href="#" class="' + _self.settings.classPrefix + 'icon-prev"><span>' + _self.settings.labels['navigator.prev'] + '</span></a>').hide(),
+						_self.objects.next = $('<a href="#" class="' + _self.settings.classPrefix + 'icon-next"><span>' + _self.settings.labels['navigator.next'] + '</span></a>').hide(),
+						_self.objects.play = $('<a href="#" class="' + _self.settings.classPrefix + 'icon-play"><span>' + _self.settings.labels['navigator.play'] + '</span></a>').hide(),
+						_self.objects.pause = $('<a href="#" class="' + _self.settings.classPrefix + 'icon-pause"><span>' + _self.settings.labels['navigator.pause'] + '</span></a>').hide()
+					);
+					_self.objects.case.append(
+						_self.objects.content = $('<div id="' + _self.settings.idPrefix + 'content"></div>'),
+						_self.objects.info = $('<div id="' + _self.settings.idPrefix + 'info"></div>')
+					);
+					_self.objects.content.append(
+						_self.objects.contentInner = $('<div class="' + _self.settings.classPrefix + 'contentInner"></div>')
+					);
+					_self.objects.info.append(
+						_self.objects.sequenceInfo = $('<div id="' + _self.settings.idPrefix + 'sequenceInfo"></div>'),
+						_self.objects.title = $('<h4 id="' + _self.settings.idPrefix + 'title"></h4>'),
+						_self.objects.caption = $('<p id="' + _self.settings.idPrefix + 'caption"></p>')
+					);
+				},
+				onInit: {},
+				onStart: {},
+				onBeforeCalculateDimensions: {},
+				onAfterCalculateDimensions: {},
+				onBeforeShow: {},
+				onFinish: {},
+				onResize: {},
+				onClose: {},
+				onCleanup: {}
+			},
+			options,
+			// Load options from data-lc-options attribute
+			_self.origin.data ? _self.origin.data('lc-options') : {});
+
+			_self.objects.document = $('html');
+			_self.objects.body = $('body');
+
+			// Call onInit hook functions
+			_self._callHooks(_self.settings.onInit);
+
+			_self.objectData = _self._setObjectData(this);
+
+			_self._addElements();
+			_self._open();
+
+			_self.dimensions = _self.getViewportDimensions();
+		},
+
+		/**
+		 * Getter method for objects
+		 *
+		 * @param	{string}	name
+		 * @return	{object}
+		 */
+		get: function (name) {
+			return _self.objects[name];
+		},
+
+		/**
+		 * Getter method for objectData
+		 *
+		 * @return	{object}
+		 */
+		getObjectData: function () {
+			return _self.objectData;
+		},
+
+		/**
+		 * Sets the object data
+		 *
+		 * @param	{object}	object
+		 * @return	{object}	objectData
+		 */
+		_setObjectData: function (object) {
+		 	var $object = $(object),
+				objectData = {
+				this: $(object),
+				title: _self.settings.title || $object.attr(_self._prefixAttributeName('title')) || $object.attr('title'),
+				caption: _self.settings.caption || $object.attr(_self._prefixAttributeName('caption')) || $object.children('img').attr('alt'),
+				url: _self._determineUrl(),
+				requestType: _self.settings.ajax.type,
+				requestData: _self.settings.ajax.data,
+				requestDataType: _self.settings.ajax.dataType,
+				rel: $object.attr(_self._determineAttributeSelector()),
+				type: _self.settings.type || _self._verifyDataType(_self._determineUrl()),
+				isPartOfSequence: _self.settings.useAsCollection || _self._isPartOfSequence($object.attr(_self.settings.attr), ':'),
+				isPartOfSequenceWithSlideshow: _self._isPartOfSequence($object.attr(_self.settings.attr), ':slideshow'),
+				currentIndex: $(_self._determineAttributeSelector()).index($object),
+				sequenceLength: $(_self._determineAttributeSelector()).length
+			};
+
+			// Add sequence info to objectData
+			objectData.sequenceInfo = (objectData.currentIndex + 1) + _self.settings.labels['sequenceInfo.of'] + objectData.sequenceLength;
+
+			// Add next/prev index
+			objectData.prevIndex = objectData.currentIndex - 1;
+			objectData.nextIndex = objectData.currentIndex + 1;
+
+			return objectData;
+		},
+
+		/**
+		 * Prefixes a data attribute name with defined name from 'settings.attrPrefix'
+		 * to ensure more uniqueness for all lightcase related/used attributes.
+		 *
+		 * @param	{string}	name
+		 * @return	{string}
+		 */
+		_prefixAttributeName: function (name) {
+			return 'data-' + _self.settings.attrPrefix + name;
+		},
+
+		/**
+		 * Determines the link target considering 'settings.href' and data attributes
+		 * but also with a fallback to the default 'href' value.
+		 *
+		 * @return	{string}
+		 */
+		_determineLinkTarget: function () {
+			return _self.settings.href || $(_self.origin).attr(_self._prefixAttributeName('href')) || $(_self.origin).attr('href');
+		},
+
+		/**
+		 * Determines the attribute selector to use, depending on
+		 * whether categorized collections are beeing used or not.
+		 *
+		 * @return	{string}	selector
+		 */
+		_determineAttributeSelector: function () {
+			var	$origin = $(_self.origin),
+				selector = '';
+
+			if (typeof _self.cache.selector !== 'undefined') {
+				selector = _self.cache.selector;
+			} else if (_self.settings.useCategories === true && $origin.attr(_self._prefixAttributeName('categories'))) {
+				var	categories = $origin.attr(_self._prefixAttributeName('categories')).split(' ');
+
+				$.each(categories, function (index, category) {
+					if (index > 0) {
+						selector += ',';
+					}
+					selector += '[' + _self._prefixAttributeName('categories') + '~="' + category + '"]';
+				});
+			} else {
+				selector = '[' + _self.settings.attr + '="' + $origin.attr(_self.settings.attr) + '"]';
+			}
+
+			_self.cache.selector = selector;
+
+			return selector;
+		},
+
+		/**
+		 * Determines the correct resource according to the
+		 * current viewport and density.
+		 *
+		 * @return	{string}	url
+		 */
+		_determineUrl: function () {
+			var	dataUrl = _self._verifyDataUrl(_self._determineLinkTarget()),
+				width = 0,
+				density = 0,
+				supportLevel = '',
+				url;
+
+			$.each(dataUrl, function (index, src) {
+				switch (_self._verifyDataType(src.url)) {
+					case 'video':
+						var	video = document.createElement('video'),
+							videoType = _self._verifyDataType(src.url) + '/' + _self._getFileUrlSuffix(src.url);
+
+						// Check if browser can play this type of video format
+						if (supportLevel !== 'probably' && supportLevel !== video.canPlayType(videoType) && video.canPlayType(videoType) !== '') {
+							supportLevel = video.canPlayType(videoType);
+							url = src.url;
+						}
+						break;
+					default:
+						if (
+							// Check density
+							_self._devicePixelRatio() >= src.density &&
+							src.density >= density &&
+							// Check viewport width
+							_self._matchMedia()('screen and (min-width:' + src.width + 'px)').matches &&
+							src.width >= width
+						) {
+							width = src.width;
+							density = src.density;
+							url = src.url;
+						}
+						break;
+				}
+			});
+
+			return url;
+		},
+
+		/**
+		 * Normalizes an url and returns information about the resource path,
+		 * the viewport width as well as density if defined.
+		 *
+		 * @param	{string}	url	Path to resource in format of an url or srcset
+		 * @return	{object}
+		 */
+		_normalizeUrl: function (url) {
+			var srcExp = /^\d+$/;
+
+			return url.split(',').map(function (str) {
+				var src = {
+					width: 0,
+					density: 0
+				};
+
+				str.trim().split(/\s+/).forEach(function (url, i) {
+					if (i === 0) {
+						return src.url = url;
+					}
+
+					var value = url.substring(0, url.length - 1),
+						lastChar = url[url.length - 1],
+						intVal = parseInt(value, 10),
+						floatVal = parseFloat(value);
+					if (lastChar === 'w' && srcExp.test(value)) {
+						src.width = intVal;
+					} else if (lastChar === 'h' && srcExp.test(value)) {
+						src.height = intVal;
+					} else if (lastChar === 'x' && !isNaN(floatVal)) {
+						src.density = floatVal;
+					}
+				});
+
+				return src;
+			});
+		},
+
+		/**
+		 * Verifies if the link is part of a sequence
+		 *
+		 * @param	{string}	rel
+		 * @param	{string}	expression
+		 * @return	{boolean}
+		 */
+		_isPartOfSequence: function (rel, expression) {
+			var getSimilarLinks = $('[' + _self.settings.attr + '="' + rel + '"]'),
+				regexp = new RegExp(expression);
+
+			return (regexp.test(rel) && getSimilarLinks.length > 1);
+		},
+
+		/**
+		 * Verifies if the slideshow should be enabled
+		 *
+		 * @return	{boolean}
+		 */
+		isSlideshowEnabled: function () {
+			return (_self.objectData.isPartOfSequence && (_self.settings.slideshow === true || _self.objectData.isPartOfSequenceWithSlideshow === true));
+		},
+
+		/**
+		 * Loads the new content to show
+		 *
+		 * @return	{void}
+		 */
+		_loadContent: function () {
+			if (_self.cache.originalObject) {
+				_self._restoreObject();
+			}
+
+			_self._createObject();
+		},
+
+		/**
+		 * Creates a new object
+		 *
+		 * @return	{void}
+		 */
+		_createObject: function () {
+			var $object;
+
+			// Create object
+			switch (_self.objectData.type) {
+				case 'image':
+					$object = $(new Image());
+					$object.attr({
+						// The time expression is required to prevent the binding of an image load
+						'src': _self.objectData.url,
+						'alt': _self.objectData.title
+					});
+					break;
+				case 'inline':
+					$object = $('<div class="' + _self.settings.classPrefix + 'inlineWrap"></div>');
+					$object.html(_self._cloneObject($(_self.objectData.url)));
+
+					// Add custom attributes from _self.settings
+					$.each(_self.settings.inline, function (name, value) {
+						$object.attr(_self._prefixAttributeName(name), value);
+					});
+					break;
+				case 'ajax':
+					$object = $('<div class="' + _self.settings.classPrefix + 'inlineWrap"></div>');
+
+					// Add custom attributes from _self.settings
+					$.each(_self.settings.ajax, function (name, value) {
+						if (name !== 'data') {
+							$object.attr(_self._prefixAttributeName(name), value);
+						}
+					});
+					break;
+				case 'flash':
+					$object = $('<embed src="' + _self.objectData.url + '" type="application/x-shockwave-flash"></embed>');
+
+					// Add custom attributes from _self.settings
+					$.each(_self.settings.flash, function (name, value) {
+						$object.attr(name, value);
+					});
+					break;
+				case 'video':
+					$object = $('<video></video>');
+					$object.attr('src', _self.objectData.url);
+
+					// Add custom attributes from _self.settings
+					$.each(_self.settings.video, function (name, value) {
+						$object.attr(name, value);
+					});
+					break;
+				default:
+					$object = $('<iframe></iframe>');
+					$object.attr({
+						'src': _self.objectData.url
+					});
+
+					// Add custom attributes from _self.settings
+					$.each(_self.settings.iframe, function (name, value) {
+						$object.attr(name, value);
+					});
+					break;
+			}
+
+			_self._addObject($object);
+			_self._loadObject($object);
+		},
+
+		/**
+		 * Adds the new object to the markup
+		 *
+		 * @param	{object}	$object
+		 * @return	{void}
+		 */
+		_addObject: function ($object) {
+			// Add object to content holder
+			_self.objects.contentInner.html($object);
+
+			// Start loading
+			_self._loading('start');
+
+			// Call onStart hook functions
+			_self._callHooks(_self.settings.onStart);
+
+			// Add sequenceInfo to the content holder or hide if its empty
+			if (_self.settings.showSequenceInfo === true && _self.objectData.isPartOfSequence) {
+				_self.objects.sequenceInfo.html(_self.objectData.sequenceInfo);
+				_self.objects.sequenceInfo.show();
+			} else {
+				_self.objects.sequenceInfo.empty();
+				_self.objects.sequenceInfo.hide();
+			}
+			// Add title to the content holder or hide if its empty
+			if (_self.settings.showTitle === true && _self.objectData.title !== undefined && _self.objectData.title !== '') {
+				_self.objects.title.html(_self.objectData.title);
+				_self.objects.title.show();
+			} else {
+				_self.objects.title.empty();
+				_self.objects.title.hide();
+			}
+			// Add caption to the content holder or hide if its empty
+			if (_self.settings.showCaption === true && _self.objectData.caption !== undefined && _self.objectData.caption !== '') {
+				_self.objects.caption.html(_self.objectData.caption);
+				_self.objects.caption.show();
+			} else {
+				_self.objects.caption.empty();
+				_self.objects.caption.hide();
+			}
+		},
+
+		/**
+		 * Loads the new object
+		 *
+		 * @param	{object}	$object
+		 * @return	{void}
+		 */
+		_loadObject: function ($object) {
+			// Load the object
+			switch (_self.objectData.type) {
+				case 'inline':
+					if ($(_self.objectData.url)) {
+						_self._showContent($object);
+					} else {
+						_self.error();
+					}
+					break;
+				case 'ajax':
+					$.ajax(
+						$.extend({}, _self.settings.ajax, {
+							url: _self.objectData.url,
+							type: _self.objectData.requestType,
+							dataType: _self.objectData.requestDataType,
+							data: _self.objectData.requestData,
+							success: function (data, textStatus, jqXHR) {
+								// Check for X-Ajax-Location
+								if (jqXHR.getResponseHeader('X-Ajax-Location')) {
+									_self.objectData.url = jqXHR.getResponseHeader('X-Ajax-Location');
+									_self._loadObject($object);
+								}
+								else {
+									// Unserialize if data is transferred as json
+									if (_self.objectData.requestDataType === 'json') {
+										_self.objectData.data = data;
+									} else {
+										$object.html(data);
+									}
+									_self._showContent($object);
+								}
+							},
+							error: function (jqXHR, textStatus, errorThrown) {
+								_self.error();
+							}
+						})
+					);
+					break;
+				case 'flash':
+					_self._showContent($object);
+					break;
+				case 'video':
+					if (typeof($object.get(0).canPlayType) === 'function' || _self.objects.case.find('video').length === 0) {
+						_self._showContent($object);
+					} else {
+						_self.error();
+					}
+					break;
+				default:
+					if (_self.objectData.url) {
+						$object.on('load', function () {
+							_self._showContent($object);
+						});
+						$object.on('error', function () {
+							_self.error();
+						});
+					} else {
+						_self.error();
+					}
+					break;
+			}
+		},
+
+		/**
+		 * Throws an error message if something went wrong
+		 *
+		 * @return	{void}
+		 */
+		error: function () {
+			_self.objectData.type = 'error';
+			var $object = $('<div class="' + _self.settings.classPrefix + 'inlineWrap"></div>');
+
+			$object.html(_self.settings.errorMessage);
+			_self.objects.contentInner.html($object);
+
+			_self._showContent(_self.objects.contentInner);
+		},
+
+		/**
+		 * Calculates the dimensions to fit content
+		 *
+		 * @param	{object}	$object
+		 * @return	{void}
+		 */
+		_calculateDimensions: function ($object) {
+			_self._cleanupDimensions();
+
+			if (!$object) return;
+
+			// Set default dimensions
+			var dimensions = {
+				ratio: 1,
+				objectWidth: $object.attr('width') ? $object.attr('width') : $object.attr(_self._prefixAttributeName('width')),
+				objectHeight: $object.attr('height') ? $object.attr('height') : $object.attr(_self._prefixAttributeName('height'))
+			};
+
+			if (!_self.settings.disableShrink) {
+				// Add calculated maximum width/height to dimensions
+				dimensions.maxWidth = parseInt(_self.dimensions.windowWidth * _self.settings.shrinkFactor);
+				dimensions.maxHeight = parseInt(_self.dimensions.windowHeight * _self.settings.shrinkFactor);
+
+				// If the auto calculated maxWidth/maxHeight greather than the user-defined one, use that.
+				if (dimensions.maxWidth > _self.settings.maxWidth) {
+					dimensions.maxWidth = _self.settings.maxWidth;
+				}
+				if (dimensions.maxHeight > _self.settings.maxHeight) {
+					dimensions.maxHeight = _self.settings.maxHeight;
+				}
+
+				// Calculate the difference between screen width/height and image width/height
+				dimensions.differenceWidthAsPercent = parseInt(100 / dimensions.maxWidth * dimensions.objectWidth);
+				dimensions.differenceHeightAsPercent = parseInt(100 / dimensions.maxHeight * dimensions.objectHeight);
+
+				switch (_self.objectData.type) {
+					case 'image':
+					case 'flash':
+					case 'video':
+					case 'iframe':
+					case 'ajax':
+					case 'inline':
+						if (_self.objectData.type === 'image' || _self.settings.fixedRatio === true) {
+							if (dimensions.differenceWidthAsPercent > 100 && dimensions.differenceWidthAsPercent > dimensions.differenceHeightAsPercent) {
+								dimensions.objectWidth = dimensions.maxWidth;
+								dimensions.objectHeight = parseInt(dimensions.objectHeight / dimensions.differenceWidthAsPercent * 100);
+							}
+							if (dimensions.differenceHeightAsPercent > 100 && dimensions.differenceHeightAsPercent > dimensions.differenceWidthAsPercent) {
+								dimensions.objectWidth = parseInt(dimensions.objectWidth / dimensions.differenceHeightAsPercent * 100);
+								dimensions.objectHeight = dimensions.maxHeight;
+							}
+							if (dimensions.differenceHeightAsPercent > 100 && dimensions.differenceWidthAsPercent < dimensions.differenceHeightAsPercent) {
+								dimensions.objectWidth = parseInt(dimensions.maxWidth / dimensions.differenceHeightAsPercent * dimensions.differenceWidthAsPercent);
+								dimensions.objectHeight = dimensions.maxHeight;
+							}
+							break;
+						}
+					case 'error':
+						if (!isNaN(dimensions.objectWidth) && dimensions.objectWidth > dimensions.maxWidth) {
+							dimensions.objectWidth = dimensions.maxWidth;
+						}
+						break;
+					default:
+						if ((isNaN(dimensions.objectWidth) || dimensions.objectWidth > dimensions.maxWidth) && !_self.settings.forceWidth) {
+							dimensions.objectWidth = dimensions.maxWidth;
+						}
+						if (((isNaN(dimensions.objectHeight) && dimensions.objectHeight !== 'auto') || dimensions.objectHeight > dimensions.maxHeight) && !_self.settings.forceHeight) {
+							dimensions.objectHeight = dimensions.maxHeight;
+						}
+						break;
+				}
+			}
+
+			if (_self.settings.forceWidth) {
+				try {
+					dimensions.objectWidth = _self.settings[_self.objectData.type].width;
+				} catch (e) {
+					dimensions.objectWidth = _self.settings.width || dimensions.objectWidth;
+				}
+
+				dimensions.maxWidth = null;
+			}
+			if ($object.attr(_self._prefixAttributeName('max-width'))) {
+				dimensions.maxWidth = $object.attr(_self._prefixAttributeName('max-width'));
+			}
+
+			if (_self.settings.forceHeight) {
+				try {
+					dimensions.objectHeight = _self.settings[_self.objectData.type].height;
+				} catch (e) {
+					dimensions.objectHeight = _self.settings.height || dimensions.objectHeight;
+				}
+
+				dimensions.maxHeight = null;
+			}
+			if ($object.attr(_self._prefixAttributeName('max-height'))) {
+				dimensions.maxHeight = $object.attr(_self._prefixAttributeName('max-height'));
+			}
+			_self._adjustDimensions($object, dimensions);
+		},
+
+		/**
+		 * Adjusts the dimensions
+		 *
+		 * @param	{object}	$object
+		 * @param	{object}	dimensions
+		 * @return	{void}
+		 */
+		_adjustDimensions: function ($object, dimensions) {
+			// Adjust width and height
+			$object.css({
+				'width': dimensions.objectWidth,
+				'height': dimensions.objectHeight,
+				'max-width': dimensions.maxWidth,
+				'max-height': dimensions.maxHeight
+			});
+
+			_self.objects.contentInner.css({
+				'width': $object.outerWidth(),
+				'height': $object.outerHeight(),
+				'max-width': '100%'
+			});
+
+			_self.objects.case.css({
+				'width': _self.objects.contentInner.outerWidth(),
+				'max-width': '100%'
+			});
+
+			// Adjust margin
+			_self.objects.case.css({
+				'margin-top': parseInt(-(_self.objects.case.outerHeight() / 2)),
+				'margin-left': parseInt(-(_self.objects.case.outerWidth() / 2))
+			});
+		},
+
+		/**
+		 * Handles the _loading
+		 *
+		 * @param	{string}	process
+		 * @return	{void}
+		 */
+		_loading: function (process) {
+			if (process === 'start') {
+				_self.objects.case.addClass(_self.settings.classPrefix + 'loading');
+				_self.objects.loading.show();
+			} else if (process === 'end') {
+				_self.objects.case.removeClass(_self.settings.classPrefix + 'loading');
+				_self.objects.loading.hide();
+			}
+		},
+
+
+		/**
+		 * Gets the client screen dimensions
+		 *
+		 * @return	{object}	dimensions
+		 */
+		getViewportDimensions: function () {
+			return {
+				windowWidth: $(window).innerWidth(),
+				windowHeight: $(window).innerHeight()
+			};
+		},
+
+		/**
+		 * Verifies the url
+		 *
+		 * @param	{string}	dataUrl
+		 * @return	{object}	dataUrl	Clean url for processing content
+		 */
+		_verifyDataUrl: function (dataUrl) {
+			if (!dataUrl || dataUrl === undefined || dataUrl === '') {
+				return false;
+			}
+
+			if (dataUrl.indexOf('#') > -1) {
+				dataUrl = dataUrl.split('#');
+				dataUrl = '#' + dataUrl[dataUrl.length - 1];
+			}
+
+			return _self._normalizeUrl(dataUrl.toString());
+		},
+
+			//
+		/**
+		 * Tries to get the (file) suffix of an url
+		 *
+		 * @param	{string}	url
+		 * @return	{string}
+		 */
+		_getFileUrlSuffix: function (url) {
+			var re = /(?:\.([^.]+))?$/;
+			return re.exec(url.toLowerCase())[1];
+		},
+
+		/**
+		 * Verifies the data type of the content to load
+		 *
+		 * @param	{string}			url
+		 * @return	{string|boolean}	Array key if expression matched, else false
+		 */
+		_verifyDataType: function (url) {
+			var typeMapping = _self.settings.typeMapping;
+
+			// Early abort if dataUrl couldn't be verified
+			if (!url) {
+				return false;
+			}
+
+			// Verify the dataType of url according to typeMapping which
+			// has been defined in settings.
+			for (var key in typeMapping) {
+				if (typeMapping.hasOwnProperty(key)) {
+					var suffixArr = typeMapping[key].split(',');
+
+					for (var i = 0; i < suffixArr.length; i++) {
+						var suffix = suffixArr[i].toLowerCase(),
+							regexp = new RegExp('\.(' + suffix + ')$', 'i'),
+							str = url.toLowerCase().split('?')[0].substr(-5);
+
+						if (regexp.test(str) === true || (key === 'inline' && (url.indexOf(suffix) > -1))) {
+							return key;
+						}
+					}
+				}
+			}
+
+			// If no expression matched, return 'iframe'.
+			return 'iframe';
+		},
+
+		/**
+		 * Extends html markup with the essential tags
+		 *
+		 * @return	{void}
+		 */
+		_addElements: function () {
+			if (typeof _self.objects.case !== 'undefined' && $('#' + _self.objects.case.attr('id')).length) {
+				return;
+			}
+
+			_self.settings.markup();
+		},
+
+		/**
+		 * Shows the loaded content
+		 *
+		 * @param	{object}	$object
+		 * @return	{void}
+		 */
+		_showContent: function ($object) {
+			// Add data attribute with the object type
+			_self.objects.document.attr(_self._prefixAttributeName('type'), _self.objectData.type);
+
+			_self.cache.object = $object;
+
+			// Call onBeforeShow hook functions
+			_self._callHooks(_self.settings.onBeforeShow);
+
+			if (_self.settings.breakBeforeShow) return;
+			_self.show();
+		},
+
+		/**
+		 * Starts the 'inTransition'
+		 * @return	{void}
+		 */
+		_startInTransition: function () {
+			switch (_self.transition.in()) {
+				case 'scrollTop':
+				case 'scrollRight':
+				case 'scrollBottom':
+				case 'scrollLeft':
+				case 'scrollHorizontal':
+				case 'scrollVertical':
+					_self.transition.scroll(_self.objects.case, 'in', _self.settings.speedIn);
+					_self.transition.fade(_self.objects.contentInner, 'in', _self.settings.speedIn);
+					break;
+				case 'elastic':
+					if (_self.objects.case.css('opacity') < 1) {
+						_self.transition.zoom(_self.objects.case, 'in', _self.settings.speedIn);
+						_self.transition.fade(_self.objects.contentInner, 'in', _self.settings.speedIn);
+				}
+				case 'fade':
+				case 'fadeInline':
+					_self.transition.fade(_self.objects.case, 'in', _self.settings.speedIn);
+					_self.transition.fade(_self.objects.contentInner, 'in', _self.settings.speedIn);
+					break;
+				default:
+					_self.transition.fade(_self.objects.case, 'in', 0);
+					break;
+			}
+
+			// End loading.
+			_self._loading('end');
+			_self.isBusy = false;
+
+			// Set index of the first item opened
+			if (!_self.cache.firstOpened) {
+				_self.cache.firstOpened = _self.objectData.this;
+			}
+
+			// Fade in the info with delay
+			_self.objects.info.hide();
+			setTimeout(function () {
+				 _self.transition.fade(_self.objects.info, 'in', _self.settings.speedIn);
+			}, _self.settings.speedIn);
+
+			// Call onFinish hook functions
+			_self._callHooks(_self.settings.onFinish);
+		},
+
+		/**
+		 * Processes the content to show
+		 *
+		 * @return	{void}
+		 */
+		_processContent: function () {
+			_self.isBusy = true;
+
+			// Fade out the info at first
+			_self.transition.fade(_self.objects.info, 'out', 0);
+
+			switch (_self.settings.transitionOut) {
+				case 'scrollTop':
+				case 'scrollRight':
+				case 'scrollBottom':
+				case 'scrollLeft':
+				case 'scrollVertical':
+				case 'scrollHorizontal':
+					if (_self.objects.case.is(':hidden')) {
+						_self.transition.fade(_self.objects.contentInner, 'out', 0);
+						_self.transition.fade(_self.objects.case, 'out', 0, 0, function () {
+							_self._loadContent();
+						});
+					} else {
+						_self.transition.scroll(_self.objects.case, 'out', _self.settings.speedOut, function () {
+							_self._loadContent();
+						});
+					}
+					break;
+				case 'fade':
+					if (_self.objects.case.is(':hidden')) {
+						_self.transition.fade(_self.objects.case, 'out', 0, 0, function () {
+							_self._loadContent();
+						});
+					} else {
+						_self.transition.fade(_self.objects.case, 'out', _self.settings.speedOut, 0, function () {
+							_self._loadContent();
+						});
+					}
+					break;
+				case 'fadeInline':
+				case 'elastic':
+					if (_self.objects.case.is(':hidden')) {
+						_self.transition.fade(_self.objects.case, 'out', 0, 0, function () {
+							_self._loadContent();
+						});
+					} else {
+						_self.transition.fade(_self.objects.contentInner, 'out', _self.settings.speedOut, 0, function () {
+							_self._loadContent();
+						});
+					}
+					break;
+				default:
+					_self.transition.fade(_self.objects.case, 'out', 0, 0, function () {
+						_self._loadContent();
+					});
+					break;
+			}
+		},
+
+		/**
+		 * Handles events for gallery buttons
+		 *
+		 * @return	{void}
+		 */
+		_handleEvents: function () {
+			_self._unbindEvents();
+
+			_self.objects.nav.children().not(_self.objects.close).hide();
+
+			// If slideshow is enabled, show play/pause and start timeout.
+			if (_self.isSlideshowEnabled()) {
+				// Only start the timeout if slideshow autostart is enabled and slideshow is not pausing
+				if (
+					(_self.settings.slideshowAutoStart === true || _self.isSlideshowStarted) &&
+					!_self.objects.nav.hasClass(_self.settings.classPrefix + 'paused')
+				) {
+					_self._startTimeout();
+				} else {
+					_self._stopTimeout();
+				}
+			}
+
+			if (_self.settings.liveResize) {
+				_self._watchResizeInteraction();
+			}
+
+			_self.objects.close.click(function (event) {
+				event.preventDefault();
+				_self.close();
+			});
+
+			if (_self.settings.closeOnOverlayClick === true) {
+				_self.objects.overlay.css('cursor', 'pointer').click(function (event) {
+					event.preventDefault();
+
+					_self.close();
+				});
+			}
+
+			if (_self.settings.useKeys === true) {
+				_self._addKeyEvents();
+			}
+
+			if (_self.objectData.isPartOfSequence) {
+				_self.objects.nav.attr(_self._prefixAttributeName('ispartofsequence'), true);
+				_self.objects.nav.data('items', _self._setNavigation());
+
+				_self.objects.prev.click(function (event) {
+					event.preventDefault();
+
+					if (_self.settings.navigateEndless === true || !_self.item.isFirst()) {
+						_self.objects.prev.unbind('click');
+						_self.cache.action = 'prev';
+						_self.objects.nav.data('items').prev.click();
+
+						if (_self.isSlideshowEnabled()) {
+							_self._stopTimeout();
+						}
+					}
+				});
+
+				_self.objects.next.click(function (event) {
+					event.preventDefault();
+
+					if (_self.settings.navigateEndless === true || !_self.item.isLast()) {
+						_self.objects.next.unbind('click');
+						_self.cache.action = 'next';
+						_self.objects.nav.data('items').next.click();
+
+						if (_self.isSlideshowEnabled()) {
+							_self._stopTimeout();
+						}
+					}
+				});
+
+				if (_self.isSlideshowEnabled()) {
+					_self.objects.play.click(function (event) {
+						event.preventDefault();
+						_self._startTimeout();
+					});
+					_self.objects.pause.click(function (event) {
+						event.preventDefault();
+						_self._stopTimeout();
+					});
+				}
+
+				// Enable swiping if activated
+				if (_self.settings.swipe === true) {
+					if ($.isPlainObject($.event.special.swipeleft)) {
+						_self.objects.case.on('swipeleft', function (event) {
+							event.preventDefault();
+							_self.objects.next.click();
+							if (_self.isSlideshowEnabled()) {
+								_self._stopTimeout();
+							}
+						});
+					}
+					if ($.isPlainObject($.event.special.swiperight)) {
+						_self.objects.case.on('swiperight', function (event) {
+							event.preventDefault();
+							_self.objects.prev.click();
+							if (_self.isSlideshowEnabled()) {
+								_self._stopTimeout();
+							}
+						});
+					}
+				}
+			}
+		},
+
+		/**
+		 * Adds the key events
+		 *
+		 * @return	{void}
+		 */
+		_addKeyEvents: function () {
+			$(document).bind('keyup.lightcase', function (event) {
+				// Do nothing if lightcase is in process
+				if (_self.isBusy) {
+					return;
+				}
+
+				switch (event.keyCode) {
+					// Escape key
+					case 27:
+						_self.objects.close.click();
+						break;
+					// Backward key
+					case 37:
+						if (_self.objectData.isPartOfSequence) {
+							_self.objects.prev.click();
+						}
+						break;
+					// Forward key
+					case 39:
+						if (_self.objectData.isPartOfSequence) {
+							_self.objects.next.click();
+						}
+						break;
+				}
+			});
+		},
+
+		/**
+		 * Starts the slideshow timeout
+		 *
+		 * @return	{void}
+		 */
+		_startTimeout: function () {
+			_self.isSlideshowStarted = true;
+
+			_self.objects.play.hide();
+			_self.objects.pause.show();
+
+			_self.cache.action = 'next';
+			_self.objects.nav.removeClass(_self.settings.classPrefix + 'paused');
+
+			_self.timeout = setTimeout(function () {
+				_self.objects.nav.data('items').next.click();
+			}, _self.settings.timeout);
+		},
+
+		/**
+		 * Stops the slideshow timeout
+		 *
+		 * @return	{void}
+		 */
+		_stopTimeout: function () {
+			_self.objects.play.show();
+			_self.objects.pause.hide();
+
+			_self.objects.nav.addClass(_self.settings.classPrefix + 'paused');
+
+			clearTimeout(_self.timeout);
+		},
+
+		/**
+		 * Sets the navigator buttons (prev/next)
+		 *
+		 * @return	{object}	items
+		 */
+		_setNavigation: function () {
+			var $links = $((_self.cache.selector || _self.settings.attr)),
+				sequenceLength = _self.objectData.sequenceLength - 1,
+				items = {
+					prev: $links.eq(_self.objectData.prevIndex),
+					next: $links.eq(_self.objectData.nextIndex)
+				};
+
+			if (_self.objectData.currentIndex > 0) {
+				_self.objects.prev.show();
+			} else {
+				items.prevItem = $links.eq(sequenceLength);
+			}
+			if (_self.objectData.nextIndex <= sequenceLength) {
+				_self.objects.next.show();
+			} else {
+				items.next = $links.eq(0);
+			}
+
+			if (_self.settings.navigateEndless === true) {
+				_self.objects.prev.show();
+				_self.objects.next.show();
+			}
+
+			return items;
+		},
+
+		/**
+		 * Item information/status
+		 *
+		 */
+		item: {
+			/**
+			 * Verifies if the current item is first item.
+			 *
+			 * @return	{boolean}
+			 */
+			isFirst: function () {
+				return (_self.objectData.currentIndex === 0);
+			},
+
+			/**
+			 * Verifies if the current item is first item opened.
+			 *
+			 * @return	{boolean}
+			 */
+			isFirstOpened: function () {
+				return _self.objectData.this.is(_self.cache.firstOpened);
+			},
+
+			/**
+			 * Verifies if the current item is last item.
+			 *
+			 * @return	{boolean}
+			 */
+			isLast: function () {
+				return (_self.objectData.currentIndex === (_self.objectData.sequenceLength - 1));
+			}
+		},
+
+		/**
+		 * Clones the object for inline elements
+		 *
+		 * @param	{object}	$object
+		 * @return	{object}	$clone
+		 */
+		_cloneObject: function ($object) {
+			var $clone = $object.clone(),
+				objectId = $object.attr('id');
+
+			// If element is hidden, cache the object and remove
+			if ($object.is(':hidden')) {
+				_self._cacheObjectData($object);
+				$object.attr('id', _self.settings.idPrefix + 'temp-' + objectId).empty();
+			} else {
+				// Prevent duplicated id's
+				$clone.removeAttr('id');
+			}
+
+			return $clone.show();
+		},
+
+		/**
+		 * Verifies if it is a mobile device
+		 *
+		 * @return	{boolean}
+		 */
+		isMobileDevice: function () {
+			var deviceAgent = navigator.userAgent.toLowerCase(),
+				agentId = deviceAgent.match(_self.settings.mobileMatchExpression);
+
+			return agentId ? true : false;
+		},
+
+		/**
+		 * Verifies if css transitions are supported
+		 *
+		 * @return	{string|boolean}	The transition prefix if supported, else false.
+		 */
+		isTransitionSupported: function () {
+			var body = _self.objects.body.get(0),
+				isTransitionSupported = false,
+				transitionMapping = {
+					'transition': '',
+					'WebkitTransition': '-webkit-',
+					'MozTransition': '-moz-',
+					'OTransition': '-o-',
+					'MsTransition': '-ms-'
+				};
+
+			for (var key in transitionMapping) {
+				if (transitionMapping.hasOwnProperty(key) && key in body.style) {
+					_self.support.transition = transitionMapping[key];
+					isTransitionSupported = true;
+				}
+			}
+
+			return isTransitionSupported;
+		},
+
+		/**
+		 * Transition types
+		 *
+		 */
+		transition: {
+			/**
+			 * Returns the correct transition type according to the status of interaction.
+			 *
+			 * @return	{string}	Transition type
+			 */
+			in: function () {
+				if (_self.settings.transitionOpen && !_self.cache.firstOpened) {
+					return _self.settings.transitionOpen;
+				}
+				return _self.settings.transitionIn;
+			},
+
+			/**
+			 * Fades in/out the object
+			 *
+			 * @param	{object}	$object
+			 * @param	{string}	type
+			 * @param	{number}	speed
+			 * @param	{number}	opacity
+			 * @param	{function}	callback
+			 * @return	{void}		Animates an object
+			 */
+			fade: function ($object, type, speed, opacity, callback) {
+				var isInTransition = type === 'in',
+					startTransition = {},
+					startOpacity = $object.css('opacity'),
+					endTransition = {},
+					endOpacity = opacity ? opacity: isInTransition ? 1 : 0;
+
+				if (!_self.isOpen && isInTransition) return;
+
+				startTransition['opacity'] = startOpacity;
+				endTransition['opacity'] = endOpacity;
+
+				$object.css(_self.support.transition + 'transition', 'none');
+				$object.css(startTransition).show();
+
+				// Css transition
+				if (_self.support.transitions) {
+					endTransition[_self.support.transition + 'transition'] = speed + 'ms ease';
+
+					setTimeout(function () {
+						$object.css(endTransition);
+
+						setTimeout(function () {
+							$object.css(_self.support.transition + 'transition', '');
+
+							if (callback && (_self.isOpen || !isInTransition)) {
+								callback();
+							}
+						}, speed);
+					}, 15);
+				} else {
+					// Fallback to js transition
+					$object.stop();
+					$object.animate(endTransition, speed, callback);
+				}
+			},
+
+			/**
+			 * Scrolls in/out the object
+			 *
+			 * @param	{object}	$object
+			 * @param	{string}	type
+			 * @param	{number}	speed
+			 * @param	{function}	callback
+			 * @return	{void}		Animates an object
+			 */
+			scroll: function ($object, type, speed, callback) {
+				var isInTransition = type === 'in',
+					transition = isInTransition ? _self.settings.transitionIn : _self.settings.transitionOut,
+					direction = 'left',
+					startTransition = {},
+					startOpacity = isInTransition ? 0 : 1,
+					startOffset = isInTransition ? '-50%' : '50%',
+					endTransition = {},
+					endOpacity = isInTransition ? 1 : 0,
+					endOffset = isInTransition ? '50%' : '-50%';
+
+				if (!_self.isOpen && isInTransition) return;
+
+				switch (transition) {
+					case 'scrollTop':
+						direction = 'top';
+						break;
+					case 'scrollRight':
+						startOffset = isInTransition ? '150%' : '50%';
+						endOffset = isInTransition ? '50%' : '150%';
+						break;
+					case 'scrollBottom':
+						direction = 'top';
+						startOffset = isInTransition ? '150%' : '50%';
+						endOffset = isInTransition ? '50%' : '150%';
+						break;
+					case 'scrollHorizontal':
+						startOffset = isInTransition ? '150%' : '50%';
+						endOffset = isInTransition ? '50%' : '-50%';
+						break;
+					case 'scrollVertical':
+						direction = 'top';
+						startOffset = isInTransition ? '-50%' : '50%';
+						endOffset = isInTransition ? '50%' : '150%';
+						break;
+				}
+
+				if (_self.cache.action === 'prev') {
+					switch (transition) {
+						case 'scrollHorizontal':
+							startOffset = isInTransition ? '-50%' : '50%';
+							endOffset = isInTransition ? '50%' : '150%';
+							break;
+						case 'scrollVertical':
+							startOffset = isInTransition ? '150%' : '50%';
+							endOffset = isInTransition ? '50%' : '-50%';
+							break;
+					}
+				}
+
+				startTransition['opacity'] = startOpacity;
+				startTransition[direction] = startOffset;
+
+				endTransition['opacity'] = endOpacity;
+				endTransition[direction] = endOffset;
+
+				$object.css(_self.support.transition + 'transition', 'none');
+				$object.css(startTransition).show();
+
+				// Css transition
+				if (_self.support.transitions) {
+					endTransition[_self.support.transition + 'transition'] = speed + 'ms ease';
+
+					setTimeout(function () {
+						$object.css(endTransition);
+
+						setTimeout(function () {
+							$object.css(_self.support.transition + 'transition', '');
+
+							if (callback && (_self.isOpen || !isInTransition)) {
+								callback();
+							}
+						}, speed);
+					}, 15);
+				} else {
+					// Fallback to js transition
+					$object.stop();
+					$object.animate(endTransition, speed, callback);
+				}
+			},
+
+			/**
+			 * Zooms in/out the object
+			 *
+			 * @param	{object}	$object
+			 * @param	{string}	type
+			 * @param	{number}	speed
+			 * @param	{function}	callback
+			 * @return	{void}		Animates an object
+			 */
+			zoom: function ($object, type, speed, callback) {
+				var isInTransition = type === 'in',
+					startTransition = {},
+					startOpacity = $object.css('opacity'),
+					startScale = isInTransition ? 'scale(0.75)' : 'scale(1)',
+					endTransition = {},
+					endOpacity = isInTransition ? 1 : 0,
+					endScale = isInTransition ? 'scale(1)' : 'scale(0.75)';
+
+				if (!_self.isOpen && isInTransition) return;
+
+				startTransition['opacity'] = startOpacity;
+				startTransition[_self.support.transition + 'transform'] = startScale;
+
+				endTransition['opacity'] = endOpacity;
+
+				$object.css(_self.support.transition + 'transition', 'none');
+				$object.css(startTransition).show();
+
+				// Css transition
+				if (_self.support.transitions) {
+					endTransition[_self.support.transition + 'transform'] = endScale;
+					endTransition[_self.support.transition + 'transition'] = speed + 'ms ease';
+
+					setTimeout(function () {
+						$object.css(endTransition);
+
+						setTimeout(function () {
+							$object.css(_self.support.transition + 'transform', '');
+							$object.css(_self.support.transition + 'transition', '');
+
+							if (callback && (_self.isOpen || !isInTransition)) {
+								callback();
+							}
+						}, speed);
+					}, 15);
+				} else {
+					// Fallback to js transition
+					$object.stop();
+					$object.animate(endTransition, speed, callback);
+				}
+			}
+		},
+
+		/**
+		 * Calls all the registered functions of a specific hook
+		 *
+		 * @param	{object}	hooks
+		 * @return	{void}
+		 */
+		_callHooks: function (hooks) {
+			if (typeof(hooks) === 'object') {
+				$.each(hooks, function(index, hook) {
+					if (typeof(hook) === 'function') {
+						hook.call(_self.origin);
+					}
+				});
+			}
+		},
+
+		/**
+		 * Caches the object data
+		 *
+		 * @param	{object}	$object
+		 * @return	{void}
+		 */
+		_cacheObjectData: function ($object) {
+			$.data($object, 'cache', {
+				id: $object.attr('id'),
+				content: $object.html()
+			});
+
+			_self.cache.originalObject = $object;
+		},
+
+		/**
+		 * Restores the object from cache
+		 *
+		 * @return	void
+		 */
+		_restoreObject: function () {
+			var $object = $('[id^="' + _self.settings.idPrefix + 'temp-"]');
+
+			$object.attr('id', $.data(_self.cache.originalObject, 'cache').id);
+			$object.html($.data(_self.cache.originalObject, 'cache').content);
+		},
+
+		/**
+		 * Executes functions for a window resize.
+		 * It stops an eventual timeout and recalculates dimensions.
+		 *
+		 * @param	{object}	dimensions
+		 * @return	{void}
+		 */
+		resize: function (event, dimensions) {
+			if (!_self.isOpen) return;
+
+			if (_self.isSlideshowEnabled()) {
+				_self._stopTimeout();
+			}
+
+			if (typeof dimensions === 'object' && dimensions !== null) {
+				if (dimensions.width) {
+					_self.cache.object.attr(
+						_self._prefixAttributeName('width'),
+						dimensions.width
+					);
+				}
+				if (dimensions.maxWidth) {
+					_self.cache.object.attr(
+						_self._prefixAttributeName('max-width'),
+						dimensions.maxWidth
+					);
+				}
+				if (dimensions.height) {
+					_self.cache.object.attr(
+						_self._prefixAttributeName('height'),
+						dimensions.height
+					);
+				}
+				if (dimensions.maxHeight) {
+					_self.cache.object.attr(
+						_self._prefixAttributeName('max-height'),
+						dimensions.maxHeight
+					);
+				}
+			}
+
+			_self.dimensions = _self.getViewportDimensions();
+			_self._calculateDimensions(_self.cache.object);
+
+			// Call onResize hook functions
+			_self._callHooks(_self.settings.onResize);
+		},
+
+		/**
+		 * Watches for any resize interaction and caches the new sizes.
+		 *
+		 * @return	{void}
+		 */
+		_watchResizeInteraction: function () {
+			$(window).resize(_self.resize);
+		},
+
+		/**
+		 * Stop watching any resize interaction related to _self.
+		 *
+		 * @return	{void}
+		 */
+		_unwatchResizeInteraction: function () {
+			$(window).off('resize', _self.resize);
+		},
+
+		/**
+		 * Switches to the fullscreen mode
+		 *
+		 * @return	{void}
+		 */
+		_switchToFullScreenMode: function () {
+			_self.settings.shrinkFactor = 1;
+			_self.settings.overlayOpacity = 1;
+
+			$('html').addClass(_self.settings.classPrefix + 'fullScreenMode');
+		},
+
+		/**
+		 * Enters into the lightcase view
+		 *
+		 * @return	{void}
+		 */
+		_open: function () {
+			_self.isOpen = true;
+
+			_self.support.transitions = _self.settings.cssTransitions ? _self.isTransitionSupported() : false;
+			_self.support.mobileDevice = _self.isMobileDevice();
+
+			if (_self.support.mobileDevice) {
+				$('html').addClass(_self.settings.classPrefix + 'isMobileDevice');
+
+				if (_self.settings.fullScreenModeForMobile) {
+					_self._switchToFullScreenMode();
+				}
+			}
+
+			if (!_self.settings.transitionIn) {
+				_self.settings.transitionIn = _self.settings.transition;
+			}
+			if (!_self.settings.transitionOut) {
+				_self.settings.transitionOut = _self.settings.transition;
+			}
+
+			switch (_self.transition.in()) {
+				case 'fade':
+				case 'fadeInline':
+				case 'elastic':
+				case 'scrollTop':
+				case 'scrollRight':
+				case 'scrollBottom':
+				case 'scrollLeft':
+				case 'scrollVertical':
+				case 'scrollHorizontal':
+					if (_self.objects.case.is(':hidden')) {
+						_self.objects.close.css('opacity', 0);
+						_self.objects.overlay.css('opacity', 0);
+						_self.objects.case.css('opacity', 0);
+						_self.objects.contentInner.css('opacity', 0);
+					}
+					_self.transition.fade(_self.objects.overlay, 'in', _self.settings.speedIn, _self.settings.overlayOpacity, function () {
+						_self.transition.fade(_self.objects.close, 'in', _self.settings.speedIn);
+						_self._handleEvents();
+						_self._processContent();
+					});
+					break;
+				default:
+					_self.transition.fade(_self.objects.overlay, 'in', 0, _self.settings.overlayOpacity, function () {
+						_self.transition.fade(_self.objects.close, 'in', 0);
+						_self._handleEvents();
+						_self._processContent();
+					});
+					break;
+			}
+
+			_self.objects.document.addClass(_self.settings.classPrefix + 'open');
+			_self.objects.case.attr('aria-hidden', 'false');
+		},
+
+		/**
+		 * Shows the lightcase by starting the transition
+		 */
+		show: function () {
+			// Call onCalculateDimensions hook functions
+			_self._callHooks(_self.settings.onBeforeCalculateDimensions);
+
+			_self._calculateDimensions(_self.cache.object);
+
+			// Call onAfterCalculateDimensions hook functions
+			_self._callHooks(_self.settings.onAfterCalculateDimensions);
+
+			_self._startInTransition();
+		},
+
+		/**
+		 * Escapes from the lightcase view
+		 *
+		 * @return	{void}
+		 */
+		close: function () {
+			_self.isOpen = false;
+
+			if (_self.isSlideshowEnabled()) {
+				_self._stopTimeout();
+				_self.isSlideshowStarted = false;
+				_self.objects.nav.removeClass(_self.settings.classPrefix + 'paused');
+			}
+
+			_self.objects.loading.hide();
+
+			_self._unbindEvents();
+
+			_self._unwatchResizeInteraction();
+
+			$('html').removeClass(_self.settings.classPrefix + 'open');
+			_self.objects.case.attr('aria-hidden', 'true');
+
+			_self.objects.nav.children().hide();
+			_self.objects.close.hide();
+
+			// Call onClose hook functions
+			_self._callHooks(_self.settings.onClose);
+
+			// Fade out the info at first
+			_self.transition.fade(_self.objects.info, 'out', 0);
+
+			switch (_self.settings.transitionClose || _self.settings.transitionOut) {
+				case 'fade':
+				case 'fadeInline':
+				case 'scrollTop':
+				case 'scrollRight':
+				case 'scrollBottom':
+				case 'scrollLeft':
+				case 'scrollHorizontal':
+				case 'scrollVertical':
+					_self.transition.fade(_self.objects.case, 'out', _self.settings.speedOut, 0, function () {
+						_self.transition.fade(_self.objects.overlay, 'out', _self.settings.speedOut, 0, function () {
+							_self.cleanup();
+						});
+					});
+					break;
+				case 'elastic':
+					_self.transition.zoom(_self.objects.case, 'out', _self.settings.speedOut, function () {
+						_self.transition.fade(_self.objects.overlay, 'out', _self.settings.speedOut, 0, function () {
+							_self.cleanup();
+						});
+					});
+					break;
+				default:
+					_self.cleanup();
+					break;
+			}
+		},
+
+		/**
+		 * Unbinds all given events
+		 *
+		 * @return	{void}
+		 */
+		_unbindEvents: function () {
+			// Unbind overlay event
+			_self.objects.overlay.unbind('click');
+
+			// Unbind key events
+			$(document).unbind('keyup.lightcase');
+
+			// Unbind swipe events
+			_self.objects.case.unbind('swipeleft').unbind('swiperight');
+
+			// Unbind navigator events
+			_self.objects.prev.unbind('click');
+			_self.objects.next.unbind('click');
+			_self.objects.play.unbind('click');
+			_self.objects.pause.unbind('click');
+
+			// Unbind close event
+			_self.objects.close.unbind('click');
+		},
+
+		/**
+		 * Cleans up the dimensions
+		 *
+		 * @return	{void}
+		 */
+		_cleanupDimensions: function () {
+			var opacity = _self.objects.contentInner.css('opacity');
+
+			_self.objects.case.css({
+				'width': '',
+				'height': '',
+				'top': '',
+				'left': '',
+				'margin-top': '',
+				'margin-left': ''
+			});
+
+			_self.objects.contentInner.removeAttr('style').css('opacity', opacity);
+			_self.objects.contentInner.children().removeAttr('style');
+		},
+
+		/**
+		 * Cleanup after aborting lightcase
+		 *
+		 * @return	{void}
+		 */
+		cleanup: function () {
+			_self._cleanupDimensions();
+
+			_self.objects.loading.hide();
+			_self.objects.overlay.hide();
+			_self.objects.case.hide();
+			_self.objects.prev.hide();
+			_self.objects.next.hide();
+			_self.objects.play.hide();
+			_self.objects.pause.hide();
+
+			_self.objects.document.removeAttr(_self._prefixAttributeName('type'));
+			_self.objects.nav.removeAttr(_self._prefixAttributeName('ispartofsequence'));
+
+			_self.objects.contentInner.empty().hide();
+			_self.objects.info.children().empty();
+
+			if (_self.cache.originalObject) {
+				_self._restoreObject();
+			}
+
+			// Call onCleanup hook functions
+			_self._callHooks(_self.settings.onCleanup);
+
+			// Restore cache
+			_self.cache = {};
+		},
+
+		/**
+		 * Returns the supported match media or undefined if the browser
+		 * doesn't support match media.
+		 *
+		 * @return	{mixed}
+		 */
+		_matchMedia: function () {
+			return window.matchMedia || window.msMatchMedia;
+		},
+
+		/**
+		 * Returns the devicePixelRatio if supported. Else, it simply returns
+		 * 1 as the default.
+		 *
+		 * @return	{number}
+		 */
+		_devicePixelRatio: function () {
+			return window.devicePixelRatio || 1;
+		},
+
+		/**
+		 * Checks if method is public
+		 *
+		 * @return	{boolean}
+		 */
+		_isPublicMethod: function (method) {
+			return (typeof _self[method] === 'function' && method.charAt(0) !== '_');
+		},
+
+		/**
+		 * Exports all public methods to be accessible, callable
+		 * from global scope.
+		 *
+		 * @return	{void}
+		 */
+		_export: function () {
+			window.lightcase = {};
+
+			$.each(_self, function (property) {
+				if (_self._isPublicMethod(property)) {
+					lightcase[property] = _self[property];
+				}
+			});
+		}
+	};
+
+	_self._export();
+
+	$.fn.lightcase = function (method) {
+		// Method calling logic (only public methods are applied)
+		if (_self._isPublicMethod(method)) {
+			return _self[method].apply(this, Array.prototype.slice.call(arguments, 1));
+		} else if (typeof method === 'object' || !method) {
+			return _self.init.apply(this, arguments);
+		} else {
+			$.error('Method ' + method + ' does not exist on jQuery.lightcase');
+		}
+	};
+})(jQuery);

File diff suppressed because it is too large
+ 5 - 0
vendor/owlcarousel/owl.carousel.min.css


File diff suppressed because it is too large
+ 5 - 0
vendor/owlcarousel/owl.carousel.min.js


File diff suppressed because it is too large
+ 0 - 0
vendor/select2/select2.min.css


File diff suppressed because it is too large
+ 0 - 0
vendor/select2/select2.min.js


+ 651 - 0
vendor/stellar/jquery.stellar.js

@@ -0,0 +1,651 @@
+;(function($, window, document, undefined) {
+	'use strict';
+	var pluginName = 'stellar',
+		defaults = {
+			scrollProperty: 'scroll',
+			positionProperty: 'position',
+			horizontalScrolling: true,
+			verticalScrolling: true,
+			horizontalOffset: 0,
+			verticalOffset: 0,
+			responsive: false,
+			parallaxBackgrounds: true,
+			parallaxElements: true,
+			hideDistantElements: true,
+			hideElement: function($elem) { $elem.hide(); },
+			showElement: function($elem) { $elem.show(); }
+		},
+
+		scrollProperty = {
+			scroll: {
+				getLeft: function($elem) { return $elem.scrollLeft(); },
+				setLeft: function($elem, val) { $elem.scrollLeft(val); },
+
+				getTop: function($elem) { return $elem.scrollTop();	},
+				setTop: function($elem, val) { $elem.scrollTop(val); }
+			},
+			position: {
+				getLeft: function($elem) { return parseInt($elem.css('left'), 10) * -1; },
+				getTop: function($elem) { return parseInt($elem.css('top'), 10) * -1; }
+			},
+			margin: {
+				getLeft: function($elem) { return parseInt($elem.css('margin-left'), 10) * -1; },
+				getTop: function($elem) { return parseInt($elem.css('margin-top'), 10) * -1; }
+			},
+			transform: {
+				getLeft: function($elem) {
+					var computedTransform = getComputedStyle($elem[0])[prefixedTransform];
+					return (computedTransform !== 'none' ? parseInt(computedTransform.match(/(-?[0-9]+)/g)[4], 10) * -1 : 0);
+				},
+				getTop: function($elem) {
+					var computedTransform = getComputedStyle($elem[0])[prefixedTransform];
+					return (computedTransform !== 'none' ? parseInt(computedTransform.match(/(-?[0-9]+)/g)[5], 10) * -1 : 0);
+				}
+			}
+		},
+
+		positionProperty = {
+			position: {
+				setLeft: function($elem, left) { $elem.css('left', left); },
+				setTop: function($elem, top) { $elem.css('top', top); }
+			},
+			transform: {
+				setPosition: function($elem, left, startingLeft, top, startingTop) {
+					$elem[0].style[prefixedTransform] = 'translate3d(' + (left - startingLeft) + 'px, ' + (top - startingTop) + 'px, 0)';
+				}
+			}
+		},
+
+		// Returns a function which adds a vendor prefix to any CSS property name
+		vendorPrefix = (function() {
+			var prefixes = /^(Moz|Webkit|Khtml|O|ms|Icab)(?=[A-Z])/,
+				style = $('script')[0].style,
+				prefix = '',
+				prop;
+
+			for (prop in style) {
+				if (prefixes.test(prop)) {
+					prefix = prop.match(prefixes)[0];
+					break;
+				}
+			}
+
+			if ('WebkitOpacity' in style) { prefix = 'Webkit'; }
+			if ('KhtmlOpacity' in style) { prefix = 'Khtml'; }
+
+			return function(property) {
+				return prefix + (prefix.length > 0 ? property.charAt(0).toUpperCase() + property.slice(1) : property);
+			};
+		}()),
+
+		prefixedTransform = vendorPrefix('transform'),
+
+		supportsBackgroundPositionXY = $('<div />', { style: 'background:#fff' }).css('background-position-x') !== undefined,
+
+		setBackgroundPosition = (supportsBackgroundPositionXY ?
+			function($elem, x, y) {
+				$elem.css({
+					'background-position-x': x,
+					'background-position-y': y
+				});
+			} :
+			function($elem, x, y) {
+				$elem.css('background-position', x + ' ' + y);
+			}
+		),
+
+		getBackgroundPosition = (supportsBackgroundPositionXY ?
+			function($elem) {
+				return [
+					$elem.css('background-position-x'),
+					$elem.css('background-position-y')
+				];
+			} :
+			function($elem) {
+				return $elem.css('background-position').split(' ');
+			}
+		),
+
+		requestAnimFrame = (
+			window.requestAnimationFrame       ||
+			window.webkitRequestAnimationFrame ||
+			window.mozRequestAnimationFrame    ||
+			window.oRequestAnimationFrame      ||
+			window.msRequestAnimationFrame     ||
+			function(callback) {
+				setTimeout(callback, 1000 / 60);
+			}
+		);
+
+	function Plugin(element, options) {
+		this.element = element;
+		this.options = $.extend({}, defaults, options);
+
+		this._defaults = defaults;
+		this._name = pluginName;
+
+		this.init();
+	}
+
+	Plugin.prototype = {
+		init: function() {
+			this.options.name = pluginName + '_' + Math.floor(Math.random() * 1e9);
+
+			this._defineElements();
+			this._defineGetters();
+			this._defineSetters();
+			this._handleWindowLoadAndResize();
+			this._detectViewport();
+
+			this.refresh({ firstLoad: true });
+
+			if (this.options.scrollProperty === 'scroll') {
+				this._handleScrollEvent();
+			} else {
+				this._startAnimationLoop();
+			}
+		},
+		_defineElements: function() {
+			if (this.element === document.body) this.element = window;
+			this.$scrollElement = $(this.element);
+			this.$element = (this.element === window ? $('body') : this.$scrollElement);
+			this.$viewportElement = (this.options.viewportElement !== undefined ? $(this.options.viewportElement) : (this.$scrollElement[0] === window || this.options.scrollProperty === 'scroll' ? this.$scrollElement : this.$scrollElement.parent()) );
+		},
+		_defineGetters: function() {
+			var self = this,
+				scrollPropertyAdapter = scrollProperty[self.options.scrollProperty];
+
+			this._getScrollLeft = function() {
+				return scrollPropertyAdapter.getLeft(self.$scrollElement);
+			};
+
+			this._getScrollTop = function() {
+				return scrollPropertyAdapter.getTop(self.$scrollElement);
+			};
+		},
+		_defineSetters: function() {
+			var self = this,
+				scrollPropertyAdapter = scrollProperty[self.options.scrollProperty],
+				positionPropertyAdapter = positionProperty[self.options.positionProperty],
+				setScrollLeft = scrollPropertyAdapter.setLeft,
+				setScrollTop = scrollPropertyAdapter.setTop;
+
+			this._setScrollLeft = (typeof setScrollLeft === 'function' ? function(val) {
+				setScrollLeft(self.$scrollElement, val);
+			} : $.noop);
+
+			this._setScrollTop = (typeof setScrollTop === 'function' ? function(val) {
+				setScrollTop(self.$scrollElement, val);
+			} : $.noop);
+
+			this._setPosition = positionPropertyAdapter.setPosition ||
+				function($elem, left, startingLeft, top, startingTop) {
+					if (self.options.horizontalScrolling) {
+						positionPropertyAdapter.setLeft($elem, left, startingLeft);
+					}
+
+					if (self.options.verticalScrolling) {
+						positionPropertyAdapter.setTop($elem, top, startingTop);
+					}
+				};
+		},
+		_handleWindowLoadAndResize: function() {
+			var self = this,
+				$window = $(window);
+
+			if (self.options.responsive) {
+				$window.bind('load.' + this.name, function() {
+					self.refresh();
+				});
+			}
+
+			$window.bind('resize.' + this.name, function() {
+				self._detectViewport();
+
+				if (self.options.responsive) {
+					self.refresh();
+				}
+			});
+		},
+		refresh: function(options) {
+			var self = this,
+				oldLeft = self._getScrollLeft(),
+				oldTop = self._getScrollTop();
+
+			if (!options || !options.firstLoad) {
+				this._reset();
+			}
+
+			this._setScrollLeft(0);
+			this._setScrollTop(0);
+
+			this._setOffsets();
+			this._findParticles();
+			this._findBackgrounds();
+
+			// Fix for WebKit background rendering bug
+			if (options && options.firstLoad && /WebKit/.test(navigator.userAgent)) {
+				$(window).load(function() {
+					var oldLeft = self._getScrollLeft(),
+						oldTop = self._getScrollTop();
+
+					self._setScrollLeft(oldLeft + 1);
+					self._setScrollTop(oldTop + 1);
+
+					self._setScrollLeft(oldLeft);
+					self._setScrollTop(oldTop);
+				});
+			}
+
+			this._setScrollLeft(oldLeft);
+			this._setScrollTop(oldTop);
+		},
+		_detectViewport: function() {
+			var viewportOffsets = this.$viewportElement.offset(),
+				hasOffsets = viewportOffsets !== null && viewportOffsets !== undefined;
+
+			this.viewportWidth = this.$viewportElement.width();
+			this.viewportHeight = this.$viewportElement.height();
+
+			this.viewportOffsetTop = (hasOffsets ? viewportOffsets.top : 0);
+			this.viewportOffsetLeft = (hasOffsets ? viewportOffsets.left : 0);
+		},
+		_findParticles: function() {
+			var self = this,
+				scrollLeft = this._getScrollLeft(),
+				scrollTop = this._getScrollTop();
+
+			if (this.particles !== undefined) {
+				for (var i = this.particles.length - 1; i >= 0; i--) {
+					this.particles[i].$element.data('stellar-elementIsActive', undefined);
+				}
+			}
+
+			this.particles = [];
+
+			if (!this.options.parallaxElements) return;
+
+			this.$element.find('[data-stellar-ratio]').each(function(i) {
+				var $this = $(this),
+					horizontalOffset,
+					verticalOffset,
+					positionLeft,
+					positionTop,
+					marginLeft,
+					marginTop,
+					$offsetParent,
+					offsetLeft,
+					offsetTop,
+					parentOffsetLeft = 0,
+					parentOffsetTop = 0,
+					tempParentOffsetLeft = 0,
+					tempParentOffsetTop = 0;
+
+				// Ensure this element isn't already part of another scrolling element
+				if (!$this.data('stellar-elementIsActive')) {
+					$this.data('stellar-elementIsActive', this);
+				} else if ($this.data('stellar-elementIsActive') !== this) {
+					return;
+				}
+
+				self.options.showElement($this);
+
+				// Save/restore the original top and left CSS values in case we refresh the particles or destroy the instance
+				if (!$this.data('stellar-startingLeft')) {
+					$this.data('stellar-startingLeft', $this.css('left'));
+					$this.data('stellar-startingTop', $this.css('top'));
+				} else {
+					$this.css('left', $this.data('stellar-startingLeft'));
+					$this.css('top', $this.data('stellar-startingTop'));
+				}
+
+				positionLeft = $this.position().left;
+				positionTop = $this.position().top;
+
+				// Catch-all for margin top/left properties (these evaluate to 'auto' in IE7 and IE8)
+				marginLeft = ($this.css('margin-left') === 'auto') ? 0 : parseInt($this.css('margin-left'), 10);
+				marginTop = ($this.css('margin-top') === 'auto') ? 0 : parseInt($this.css('margin-top'), 10);
+
+				offsetLeft = $this.offset().left - marginLeft;
+				offsetTop = $this.offset().top - marginTop;
+
+				// Calculate the offset parent
+				$this.parents().each(function() {
+					var $this = $(this);
+
+					if ($this.data('stellar-offset-parent') === true) {
+						parentOffsetLeft = tempParentOffsetLeft;
+						parentOffsetTop = tempParentOffsetTop;
+						$offsetParent = $this;
+
+						return false;
+					} else {
+						tempParentOffsetLeft += $this.position().left;
+						tempParentOffsetTop += $this.position().top;
+					}
+				});
+
+				// Detect the offsets
+				horizontalOffset = ($this.data('stellar-horizontal-offset') !== undefined ? $this.data('stellar-horizontal-offset') : ($offsetParent !== undefined && $offsetParent.data('stellar-horizontal-offset') !== undefined ? $offsetParent.data('stellar-horizontal-offset') : self.horizontalOffset));
+				verticalOffset = ($this.data('stellar-vertical-offset') !== undefined ? $this.data('stellar-vertical-offset') : ($offsetParent !== undefined && $offsetParent.data('stellar-vertical-offset') !== undefined ? $offsetParent.data('stellar-vertical-offset') : self.verticalOffset));
+
+				// Add our object to the particles collection
+				self.particles.push({
+					$element: $this,
+					$offsetParent: $offsetParent,
+					isFixed: $this.css('position') === 'fixed',
+					horizontalOffset: horizontalOffset,
+					verticalOffset: verticalOffset,
+					startingPositionLeft: positionLeft,
+					startingPositionTop: positionTop,
+					startingOffsetLeft: offsetLeft,
+					startingOffsetTop: offsetTop,
+					parentOffsetLeft: parentOffsetLeft,
+					parentOffsetTop: parentOffsetTop,
+					stellarRatio: ($this.data('stellar-ratio') !== undefined ? $this.data('stellar-ratio') : 1),
+					width: $this.outerWidth(true),
+					height: $this.outerHeight(true),
+					isHidden: false
+				});
+			});
+		},
+		_findBackgrounds: function() {
+			var self = this,
+				scrollLeft = this._getScrollLeft(),
+				scrollTop = this._getScrollTop(),
+				$backgroundElements;
+
+			this.backgrounds = [];
+
+			if (!this.options.parallaxBackgrounds) return;
+
+			$backgroundElements = this.$element.find('[data-stellar-background-ratio]');
+
+			if (this.$element.data('stellar-background-ratio')) {
+                $backgroundElements = $backgroundElements.add(this.$element);
+			}
+
+			$backgroundElements.each(function() {
+				var $this = $(this),
+					backgroundPosition = getBackgroundPosition($this),
+					horizontalOffset,
+					verticalOffset,
+					positionLeft,
+					positionTop,
+					marginLeft,
+					marginTop,
+					offsetLeft,
+					offsetTop,
+					$offsetParent,
+					parentOffsetLeft = 0,
+					parentOffsetTop = 0,
+					tempParentOffsetLeft = 0,
+					tempParentOffsetTop = 0;
+
+				// Ensure this element isn't already part of another scrolling element
+				if (!$this.data('stellar-backgroundIsActive')) {
+					$this.data('stellar-backgroundIsActive', this);
+				} else if ($this.data('stellar-backgroundIsActive') !== this) {
+					return;
+				}
+
+				// Save/restore the original top and left CSS values in case we destroy the instance
+				if (!$this.data('stellar-backgroundStartingLeft')) {
+					$this.data('stellar-backgroundStartingLeft', backgroundPosition[0]);
+					$this.data('stellar-backgroundStartingTop', backgroundPosition[1]);
+				} else {
+					setBackgroundPosition($this, $this.data('stellar-backgroundStartingLeft'), $this.data('stellar-backgroundStartingTop'));
+				}
+
+				// Catch-all for margin top/left properties (these evaluate to 'auto' in IE7 and IE8)
+				marginLeft = ($this.css('margin-left') === 'auto') ? 0 : parseInt($this.css('margin-left'), 10);
+				marginTop = ($this.css('margin-top') === 'auto') ? 0 : parseInt($this.css('margin-top'), 10);
+
+				offsetLeft = $this.offset().left - marginLeft - scrollLeft;
+				offsetTop = $this.offset().top - marginTop - scrollTop;
+				
+				// Calculate the offset parent
+				$this.parents().each(function() {
+					var $this = $(this);
+
+					if ($this.data('stellar-offset-parent') === true) {
+						parentOffsetLeft = tempParentOffsetLeft;
+						parentOffsetTop = tempParentOffsetTop;
+						$offsetParent = $this;
+
+						return false;
+					} else {
+						tempParentOffsetLeft += $this.position().left;
+						tempParentOffsetTop += $this.position().top;
+					}
+				});
+
+				// Detect the offsets
+				horizontalOffset = ($this.data('stellar-horizontal-offset') !== undefined ? $this.data('stellar-horizontal-offset') : ($offsetParent !== undefined && $offsetParent.data('stellar-horizontal-offset') !== undefined ? $offsetParent.data('stellar-horizontal-offset') : self.horizontalOffset));
+				verticalOffset = ($this.data('stellar-vertical-offset') !== undefined ? $this.data('stellar-vertical-offset') : ($offsetParent !== undefined && $offsetParent.data('stellar-vertical-offset') !== undefined ? $offsetParent.data('stellar-vertical-offset') : self.verticalOffset));
+
+				self.backgrounds.push({
+					$element: $this,
+					$offsetParent: $offsetParent,
+					isFixed: $this.css('background-attachment') === 'fixed',
+					horizontalOffset: horizontalOffset,
+					verticalOffset: verticalOffset,
+					startingValueLeft: backgroundPosition[0],
+					startingValueTop: backgroundPosition[1],
+					startingBackgroundPositionLeft: (isNaN(parseInt(backgroundPosition[0], 10)) ? 0 : parseInt(backgroundPosition[0], 10)),
+					startingBackgroundPositionTop: (isNaN(parseInt(backgroundPosition[1], 10)) ? 0 : parseInt(backgroundPosition[1], 10)),
+					startingPositionLeft: $this.position().left,
+					startingPositionTop: $this.position().top,
+					startingOffsetLeft: offsetLeft,
+					startingOffsetTop: offsetTop,
+					parentOffsetLeft: parentOffsetLeft,
+					parentOffsetTop: parentOffsetTop,
+					stellarRatio: ($this.data('stellar-background-ratio') === undefined ? 1 : $this.data('stellar-background-ratio'))
+				});
+			});
+		},
+		_reset: function() {
+			var particle,
+				startingPositionLeft,
+				startingPositionTop,
+				background,
+				i;
+
+			for (i = this.particles.length - 1; i >= 0; i--) {
+				particle = this.particles[i];
+				startingPositionLeft = particle.$element.data('stellar-startingLeft');
+				startingPositionTop = particle.$element.data('stellar-startingTop');
+
+				this._setPosition(particle.$element, startingPositionLeft, startingPositionLeft, startingPositionTop, startingPositionTop);
+
+				this.options.showElement(particle.$element);
+
+				particle.$element.data('stellar-startingLeft', null).data('stellar-elementIsActive', null).data('stellar-backgroundIsActive', null);
+			}
+
+			for (i = this.backgrounds.length - 1; i >= 0; i--) {
+				background = this.backgrounds[i];
+
+				background.$element.data('stellar-backgroundStartingLeft', null).data('stellar-backgroundStartingTop', null);
+
+				setBackgroundPosition(background.$element, background.startingValueLeft, background.startingValueTop);
+			}
+		},
+		destroy: function() {
+			this._reset();
+
+			this.$scrollElement.unbind('resize.' + this.name).unbind('scroll.' + this.name);
+			this._animationLoop = $.noop;
+
+			$(window).unbind('load.' + this.name).unbind('resize.' + this.name);
+		},
+		_setOffsets: function() {
+			var self = this,
+				$window = $(window);
+
+			$window.unbind('resize.horizontal-' + this.name).unbind('resize.vertical-' + this.name);
+
+			if (typeof this.options.horizontalOffset === 'function') {
+				this.horizontalOffset = this.options.horizontalOffset();
+				$window.bind('resize.horizontal-' + this.name, function() {
+					self.horizontalOffset = self.options.horizontalOffset();
+				});
+			} else {
+				this.horizontalOffset = this.options.horizontalOffset;
+			}
+
+			if (typeof this.options.verticalOffset === 'function') {
+				this.verticalOffset = this.options.verticalOffset();
+				$window.bind('resize.vertical-' + this.name, function() {
+					self.verticalOffset = self.options.verticalOffset();
+				});
+			} else {
+				this.verticalOffset = this.options.verticalOffset;
+			}
+		},
+		_repositionElements: function() {
+			var scrollLeft = this._getScrollLeft(),
+				scrollTop = this._getScrollTop(),
+				horizontalOffset,
+				verticalOffset,
+				particle,
+				fixedRatioOffset,
+				background,
+				bgLeft,
+				bgTop,
+				isVisibleVertical = true,
+				isVisibleHorizontal = true,
+				newPositionLeft,
+				newPositionTop,
+				newOffsetLeft,
+				newOffsetTop,
+				i;
+
+			// First check that the scroll position or container size has changed
+			if (this.currentScrollLeft === scrollLeft && this.currentScrollTop === scrollTop && this.currentWidth === this.viewportWidth && this.currentHeight === this.viewportHeight) {
+				return;
+			} else {
+				this.currentScrollLeft = scrollLeft;
+				this.currentScrollTop = scrollTop;
+				this.currentWidth = this.viewportWidth;
+				this.currentHeight = this.viewportHeight;
+			}
+
+			// Reposition elements
+			for (i = this.particles.length - 1; i >= 0; i--) {
+				particle = this.particles[i];
+
+				fixedRatioOffset = (particle.isFixed ? 1 : 0);
+
+				// Calculate position, then calculate what the particle's new offset will be (for visibility check)
+				if (this.options.horizontalScrolling) {
+					newPositionLeft = (scrollLeft + particle.horizontalOffset + this.viewportOffsetLeft + particle.startingPositionLeft - particle.startingOffsetLeft + particle.parentOffsetLeft) * -(particle.stellarRatio + fixedRatioOffset - 1) + particle.startingPositionLeft;
+					newOffsetLeft = newPositionLeft - particle.startingPositionLeft + particle.startingOffsetLeft;
+				} else {
+					newPositionLeft = particle.startingPositionLeft;
+					newOffsetLeft = particle.startingOffsetLeft;
+				}
+
+				if (this.options.verticalScrolling) {
+					newPositionTop = (scrollTop + particle.verticalOffset + this.viewportOffsetTop + particle.startingPositionTop - particle.startingOffsetTop + particle.parentOffsetTop) * -(particle.stellarRatio + fixedRatioOffset - 1) + particle.startingPositionTop;
+					newOffsetTop = newPositionTop - particle.startingPositionTop + particle.startingOffsetTop;
+				} else {
+					newPositionTop = particle.startingPositionTop;
+					newOffsetTop = particle.startingOffsetTop;
+				}
+
+				// Check visibility
+				if (this.options.hideDistantElements) {
+					isVisibleHorizontal = !this.options.horizontalScrolling || newOffsetLeft + particle.width > (particle.isFixed ? 0 : scrollLeft) && newOffsetLeft < (particle.isFixed ? 0 : scrollLeft) + this.viewportWidth + this.viewportOffsetLeft;
+					isVisibleVertical = !this.options.verticalScrolling || newOffsetTop + particle.height > (particle.isFixed ? 0 : scrollTop) && newOffsetTop < (particle.isFixed ? 0 : scrollTop) + this.viewportHeight + this.viewportOffsetTop;
+				}
+
+				if (isVisibleHorizontal && isVisibleVertical) {
+					if (particle.isHidden) {
+						this.options.showElement(particle.$element);
+						particle.isHidden = false;
+					}
+
+					this._setPosition(particle.$element, newPositionLeft, particle.startingPositionLeft, newPositionTop, particle.startingPositionTop);
+				} else {
+					if (!particle.isHidden) {
+						this.options.hideElement(particle.$element);
+						particle.isHidden = true;
+					}
+				}
+			}
+
+			// Reposition backgrounds
+			for (i = this.backgrounds.length - 1; i >= 0; i--) {
+				background = this.backgrounds[i];
+
+				fixedRatioOffset = (background.isFixed ? 0 : 1);
+				bgLeft = (this.options.horizontalScrolling ? (scrollLeft + background.horizontalOffset - this.viewportOffsetLeft - background.startingOffsetLeft + background.parentOffsetLeft - background.startingBackgroundPositionLeft) * (fixedRatioOffset - background.stellarRatio) + 'px' : background.startingValueLeft);
+				bgTop = (this.options.verticalScrolling ? (scrollTop + background.verticalOffset - this.viewportOffsetTop - background.startingOffsetTop + background.parentOffsetTop - background.startingBackgroundPositionTop) * (fixedRatioOffset - background.stellarRatio) + 'px' : background.startingValueTop);
+
+				setBackgroundPosition(background.$element, bgLeft, bgTop);
+			}
+		},
+		_handleScrollEvent: function() {
+			var self = this,
+				ticking = false;
+
+			var update = function() {
+				self._repositionElements();
+				ticking = false;
+			};
+
+			var requestTick = function() {
+				if (!ticking) {
+					requestAnimFrame(update);
+					ticking = true;
+				}
+			};
+			
+			this.$scrollElement.bind('scroll.' + this.name, requestTick);
+			requestTick();
+		},
+		_startAnimationLoop: function() {
+			var self = this;
+
+			this._animationLoop = function() {
+				requestAnimFrame(self._animationLoop);
+				self._repositionElements();
+			};
+			this._animationLoop();
+		}
+	};
+
+	$.fn[pluginName] = function (options) {
+		var args = arguments;
+		if (options === undefined || typeof options === 'object') {
+			return this.each(function () {
+				if (!$.data(this, 'plugin_' + pluginName)) {
+					$.data(this, 'plugin_' + pluginName, new Plugin(this, options));
+				}
+			});
+		} else if (typeof options === 'string' && options[0] !== '_' && options !== 'init') {
+			return this.each(function () {
+				var instance = $.data(this, 'plugin_' + pluginName);
+				if (instance instanceof Plugin && typeof instance[options] === 'function') {
+					instance[options].apply(instance, Array.prototype.slice.call(args, 1));
+				}
+				if (options === 'destroy') {
+					$.data(this, 'plugin_' + pluginName, null);
+				}
+			});
+		}
+	};
+
+	$[pluginName] = function(options) {
+		var $window = $(window);
+		return $window.stellar.apply($window, Array.prototype.slice.call(arguments, 0));
+	};
+
+	// Expose the scroll and position property function hashes so they can be extended
+	$[pluginName].scrollProperty = scrollProperty;
+	$[pluginName].positionProperty = positionProperty;
+
+	// Expose the plugin class so it can be modified
+	window.Stellar = Plugin;
+}(jQuery, this, document));

+ 306 - 0
vendor/waypoints/waypoint.min.js

@@ -0,0 +1,306 @@
+/*!
+Waypoints - 4.0.0
+Copyright © 2011-2015 Caleb Troughton
+Licensed under the MIT license.
+https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
+*/
+! function() {
+    "use strict";
+
+    function t(o) {
+        if (!o) throw new Error("No options passed to Waypoint constructor");
+        if (!o.element) throw new Error("No element option passed to Waypoint constructor");
+        if (!o.handler) throw new Error("No handler option passed to Waypoint constructor");
+        this.key = "waypoint-" + e, this.options = t.Adapter.extend({}, t.defaults, o), this.element = this.options.element, this.adapter = new t.Adapter(this.element), this.callback = o.handler, this.axis = this.options.horizontal ? "horizontal" : "vertical", this.enabled = this.options.enabled, this.triggerPoint = null, this.group = t.Group.findOrCreate({
+            name: this.options.group,
+            axis: this.axis
+        }), this.context = t.Context.findOrCreateByElement(this.options.context), t.offsetAliases[this.options.offset] && (this.options.offset = t.offsetAliases[this.options.offset]), this.group.add(this), this.context.add(this), i[this.key] = this, e += 1
+    }
+    var e = 0,
+        i = {};
+    t.prototype.queueTrigger = function(t) {
+        this.group.queueTrigger(this, t)
+    }, t.prototype.trigger = function(t) {
+        this.enabled && this.callback && this.callback.apply(this, t)
+    }, t.prototype.destroy = function() {
+        this.context.remove(this), this.group.remove(this), delete i[this.key]
+    }, t.prototype.disable = function() {
+        return this.enabled = !1, this
+    }, t.prototype.enable = function() {
+        return this.context.refresh(), this.enabled = !0, this
+    }, t.prototype.next = function() {
+        return this.group.next(this)
+    }, t.prototype.previous = function() {
+        return this.group.previous(this)
+    }, t.invokeAll = function(t) {
+        var e = [];
+        for (var o in i) e.push(i[o]);
+        for (var n = 0, r = e.length; r > n; n++) e[n][t]()
+    }, t.destroyAll = function() {
+        t.invokeAll("destroy")
+    }, t.disableAll = function() {
+        t.invokeAll("disable")
+    }, t.enableAll = function() {
+        t.invokeAll("enable")
+    }, t.refreshAll = function() {
+        t.Context.refreshAll()
+    }, t.viewportHeight = function() {
+        return window.innerHeight || document.documentElement.clientHeight
+    }, t.viewportWidth = function() {
+        return document.documentElement.clientWidth
+    }, t.adapters = [], t.defaults = {
+        context: window,
+        continuous: !0,
+        enabled: !0,
+        group: "default",
+        horizontal: !1,
+        offset: 0
+    }, t.offsetAliases = {
+        "bottom-in-view": function() {
+            return this.context.innerHeight() - this.adapter.outerHeight()
+        },
+        "right-in-view": function() {
+            return this.context.innerWidth() - this.adapter.outerWidth()
+        }
+    }, window.Waypoint = t
+}(),
+function() {
+    "use strict";
+
+    function t(t) {
+        window.setTimeout(t, 1e3 / 60)
+    }
+
+    function e(t) {
+        this.element = t, this.Adapter = n.Adapter, this.adapter = new this.Adapter(t), this.key = "waypoint-context-" + i, this.didScroll = !1, this.didResize = !1, this.oldScroll = {
+            x: this.adapter.scrollLeft(),
+            y: this.adapter.scrollTop()
+        }, this.waypoints = {
+            vertical: {},
+            horizontal: {}
+        }, t.waypointContextKey = this.key, o[t.waypointContextKey] = this, i += 1, this.createThrottledScrollHandler(), this.createThrottledResizeHandler()
+    }
+    var i = 0,
+        o = {},
+        n = window.Waypoint,
+        r = window.onload;
+    e.prototype.add = function(t) {
+        var e = t.options.horizontal ? "horizontal" : "vertical";
+        this.waypoints[e][t.key] = t, this.refresh()
+    }, e.prototype.checkEmpty = function() {
+        var t = this.Adapter.isEmptyObject(this.waypoints.horizontal),
+            e = this.Adapter.isEmptyObject(this.waypoints.vertical);
+        t && e && (this.adapter.off(".waypoints"), delete o[this.key])
+    }, e.prototype.createThrottledResizeHandler = function() {
+        function t() {
+            e.handleResize(), e.didResize = !1
+        }
+        var e = this;
+        this.adapter.on("resize.waypoints", function() {
+            e.didResize || (e.didResize = !0, n.requestAnimationFrame(t))
+        })
+    }, e.prototype.createThrottledScrollHandler = function() {
+        function t() {
+            e.handleScroll(), e.didScroll = !1
+        }
+        var e = this;
+        this.adapter.on("scroll.waypoints", function() {
+            (!e.didScroll || n.isTouch) && (e.didScroll = !0, n.requestAnimationFrame(t))
+        })
+    }, e.prototype.handleResize = function() {
+        n.Context.refreshAll()
+    }, e.prototype.handleScroll = function() {
+        var t = {},
+            e = {
+                horizontal: {
+                    newScroll: this.adapter.scrollLeft(),
+                    oldScroll: this.oldScroll.x,
+                    forward: "right",
+                    backward: "left"
+                },
+                vertical: {
+                    newScroll: this.adapter.scrollTop(),
+                    oldScroll: this.oldScroll.y,
+                    forward: "down",
+                    backward: "up"
+                }
+            };
+        for (var i in e) {
+            var o = e[i],
+                n = o.newScroll > o.oldScroll,
+                r = n ? o.forward : o.backward;
+            for (var s in this.waypoints[i]) {
+                var a = this.waypoints[i][s],
+                    l = o.oldScroll < a.triggerPoint,
+                    h = o.newScroll >= a.triggerPoint,
+                    p = l && h,
+                    u = !l && !h;
+                (p || u) && (a.queueTrigger(r), t[a.group.id] = a.group)
+            }
+        }
+        for (var c in t) t[c].flushTriggers();
+        this.oldScroll = {
+            x: e.horizontal.newScroll,
+            y: e.vertical.newScroll
+        }
+    }, e.prototype.innerHeight = function() {
+        return this.element == this.element.window ? n.viewportHeight() : this.adapter.innerHeight()
+    }, e.prototype.remove = function(t) {
+        delete this.waypoints[t.axis][t.key], this.checkEmpty()
+    }, e.prototype.innerWidth = function() {
+        return this.element == this.element.window ? n.viewportWidth() : this.adapter.innerWidth()
+    }, e.prototype.destroy = function() {
+        var t = [];
+        for (var e in this.waypoints)
+            for (var i in this.waypoints[e]) t.push(this.waypoints[e][i]);
+        for (var o = 0, n = t.length; n > o; o++) t[o].destroy()
+    }, e.prototype.refresh = function() {
+        var t, e = this.element == this.element.window,
+            i = e ? void 0 : this.adapter.offset(),
+            o = {};
+        this.handleScroll(), t = {
+            horizontal: {
+                contextOffset: e ? 0 : i.left,
+                contextScroll: e ? 0 : this.oldScroll.x,
+                contextDimension: this.innerWidth(),
+                oldScroll: this.oldScroll.x,
+                forward: "right",
+                backward: "left",
+                offsetProp: "left"
+            },
+            vertical: {
+                contextOffset: e ? 0 : i.top,
+                contextScroll: e ? 0 : this.oldScroll.y,
+                contextDimension: this.innerHeight(),
+                oldScroll: this.oldScroll.y,
+                forward: "down",
+                backward: "up",
+                offsetProp: "top"
+            }
+        };
+        for (var r in t) {
+            var s = t[r];
+            for (var a in this.waypoints[r]) {
+                var l, h, p, u, c, d = this.waypoints[r][a],
+                    f = d.options.offset,
+                    w = d.triggerPoint,
+                    y = 0,
+                    g = null == w;
+                d.element !== d.element.window && (y = d.adapter.offset()[s.offsetProp]), "function" == typeof f ? f = f.apply(d) : "string" == typeof f && (f = parseFloat(f), d.options.offset.indexOf("%") > -1 && (f = Math.ceil(s.contextDimension * f / 100))), l = s.contextScroll - s.contextOffset, d.triggerPoint = y + l - f, h = w < s.oldScroll, p = d.triggerPoint >= s.oldScroll, u = h && p, c = !h && !p, !g && u ? (d.queueTrigger(s.backward), o[d.group.id] = d.group) : !g && c ? (d.queueTrigger(s.forward), o[d.group.id] = d.group) : g && s.oldScroll >= d.triggerPoint && (d.queueTrigger(s.forward), o[d.group.id] = d.group)
+            }
+        }
+        return n.requestAnimationFrame(function() {
+            for (var t in o) o[t].flushTriggers()
+        }), this
+    }, e.findOrCreateByElement = function(t) {
+        return e.findByElement(t) || new e(t)
+    }, e.refreshAll = function() {
+        for (var t in o) o[t].refresh()
+    }, e.findByElement = function(t) {
+        return o[t.waypointContextKey]
+    }, window.onload = function() {
+        r && r(), e.refreshAll()
+    }, n.requestAnimationFrame = function(e) {
+        var i = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || t;
+        i.call(window, e)
+    }, n.Context = e
+}(),
+function() {
+    "use strict";
+
+    function t(t, e) {
+        return t.triggerPoint - e.triggerPoint
+    }
+
+    function e(t, e) {
+        return e.triggerPoint - t.triggerPoint
+    }
+
+    function i(t) {
+        this.name = t.name, this.axis = t.axis, this.id = this.name + "-" + this.axis, this.waypoints = [], this.clearTriggerQueues(), o[this.axis][this.name] = this
+    }
+    var o = {
+            vertical: {},
+            horizontal: {}
+        },
+        n = window.Waypoint;
+    i.prototype.add = function(t) {
+        this.waypoints.push(t)
+    }, i.prototype.clearTriggerQueues = function() {
+        this.triggerQueues = {
+            up: [],
+            down: [],
+            left: [],
+            right: []
+        }
+    }, i.prototype.flushTriggers = function() {
+        for (var i in this.triggerQueues) {
+            var o = this.triggerQueues[i],
+                n = "up" === i || "left" === i;
+            o.sort(n ? e : t);
+            for (var r = 0, s = o.length; s > r; r += 1) {
+                var a = o[r];
+                (a.options.continuous || r === o.length - 1) && a.trigger([i])
+            }
+        }
+        this.clearTriggerQueues()
+    }, i.prototype.next = function(e) {
+        this.waypoints.sort(t);
+        var i = n.Adapter.inArray(e, this.waypoints),
+            o = i === this.waypoints.length - 1;
+        return o ? null : this.waypoints[i + 1]
+    }, i.prototype.previous = function(e) {
+        this.waypoints.sort(t);
+        var i = n.Adapter.inArray(e, this.waypoints);
+        return i ? this.waypoints[i - 1] : null
+    }, i.prototype.queueTrigger = function(t, e) {
+        this.triggerQueues[e].push(t)
+    }, i.prototype.remove = function(t) {
+        var e = n.Adapter.inArray(t, this.waypoints);
+        e > -1 && this.waypoints.splice(e, 1)
+    }, i.prototype.first = function() {
+        return this.waypoints[0]
+    }, i.prototype.last = function() {
+        return this.waypoints[this.waypoints.length - 1]
+    }, i.findOrCreate = function(t) {
+        return o[t.axis][t.name] || new i(t)
+    }, n.Group = i
+}(),
+function() {
+    "use strict";
+
+    function t(t) {
+        this.$element = e(t)
+    }
+    var e = window.jQuery,
+        i = window.Waypoint;
+    e.each(["innerHeight", "innerWidth", "off", "offset", "on", "outerHeight", "outerWidth", "scrollLeft", "scrollTop"], function(e, i) {
+        t.prototype[i] = function() {
+            var t = Array.prototype.slice.call(arguments);
+            return this.$element[i].apply(this.$element, t)
+        }
+    }), e.each(["extend", "inArray", "isEmptyObject"], function(i, o) {
+        t[o] = e[o]
+    }), i.adapters.push({
+        name: "jquery",
+        Adapter: t
+    }), i.Adapter = t
+}(),
+function() {
+    "use strict";
+
+    function t(t) {
+        return function() {
+            var i = [],
+                o = arguments[0];
+            return t.isFunction(arguments[0]) && (o = t.extend({}, arguments[1]), o.handler = arguments[0]), this.each(function() {
+                var n = t.extend({}, o, {
+                    element: this
+                });
+                "string" == typeof n.context && (n.context = t(this).closest(n.context)[0]), i.push(new e(n))
+            }), i
+        }
+    }
+    var e = window.Waypoint;
+    window.jQuery && (window.jQuery.fn.waypoint = t(window.jQuery)), window.Zepto && (window.Zepto.fn.waypoint = t(window.Zepto))
+}();

Some files were not shown because too many files changed in this diff