// Foundation by ZURB
// foundation.zurb.com
// Licensed under MIT Open Source

@import "global";

// @variables
//
$include-html-orbit-classes: $include-html-classes !default;

// We use these to control the caption styles
$orbit-container-bg: none !default;
$orbit-caption-bg: rgba(51,51,51, 0.8) !default;
$orbit-caption-font-color: #fff !default;
$orbit-caption-font-size: rem-calc(14) !default;
$orbit-caption-position: "bottom" !default; // Supported values: "bottom", "under"
$orbit-caption-padding: rem-calc(10 14) !default;
$orbit-caption-height: auto !default;

// We use these to control the left/right nav styles
$orbit-nav-bg: transparent !default;
$orbit-nav-bg-hover: rgba(0,0,0,0.3) !default;
$orbit-nav-arrow-color: #fff !default;
$orbit-nav-arrow-color-hover: #fff !default;

// We use these to control the timer styles
$orbit-timer-bg: rgba(255,255,255,0.3) !default;
$orbit-timer-show-progress-bar: true !default;

// We use these to control the bullet nav styles
$orbit-bullet-nav-color: #ccc !default;
$orbit-bullet-nav-color-active: #999 !default;
$orbit-bullet-radius: rem-calc(9) !default;

// We use these to controls the style of slide numbers
$orbit-slide-number-bg: rgba(0,0,0,0) !default;
$orbit-slide-number-font-color: #fff !default;
$orbit-slide-number-padding: rem-calc(5) !default;

// We use these to controls the css animation
$orbit-animation-speed: 500ms !default;
$orbit-animation-ease: ease-in-out !default;

// Graceful Loading Wrapper and preloader
$wrapper-class: "slideshow-wrapper" !default;
$preloader-class: "preloader" !default;

// Hide controls on small
$orbit-nav-hide-for-small: true !default;
$orbit-bullet-hide-for-small: true !default;
$orbit-timer-hide-for-small: true !default;

// CSS Transform
// This function is needed in order to put in all of the browser prefixes.
// The normal tranform attribute still does not work properly across all browsers.
// In order to receive the transitionEnd events then you will still need to use the vendor prefixes
@mixin translate3d($x,$y,$z) {
  -ms-transform:translate($x,$y);

  -webkit-transform: translate3d($x,$y,$z);
     -moz-transform: translate3d($x,$y,$z);
       -o-transform: translate3d($x,$y,$z);
          transform: translate3d($x,$y,$z);
}

@mixin rotate($d) {
  -webkit-transform: rotate($d);
     -moz-transform: rotate($d);
      -ms-transform: rotate($d);
       -o-transform: rotate($d);
          transform: rotate($d);
}

@include exports("orbit") {
  @if $include-html-orbit-classes {

    @keyframes rotate {
      from { @include rotate(0deg); }
      to { @include rotate(360deg); }
    }

    /* Orbit Graceful Loading */
    .#{$wrapper-class} {
      position: relative;

      ul {
        // Prevent bullets showing before .orbit-container is loaded
        list-style-type: none;
        margin: 0;

        // Hide all list items
        li,
        li .orbit-caption { display: none; }

        // ...except for the first one
        li:first-child { display: block; }
      }

      .orbit-container { background-color: transparent;

        // Show images when .orbit-container is loaded
        li { display: block;

          .orbit-caption { display: block; }
        }
      }

      // Orbit preloader
      .#{$preloader-class} {
        display: block;
        width: 40px;
        height: 40px;
        position: absolute;
        top: 50%;
        left: 50%;
        margin-top: -20px;
        margin-left: -20px;
        border: solid 3px;
        border-color: #555 #fff;
        @include radius(1000px);
        animation-name: rotate;
        animation-duration: 1.5s;
        animation-iteration-count: infinite;
        animation-timing-function: linear;
      }
    }

    .orbit-container {
      overflow: hidden;
      width: 100%;
      position: relative;
      background: $orbit-container-bg;

      .orbit-slides-container {
        list-style: none;
        margin: 0;
        padding: 0;
        position: relative;

        // Prevents images (and captions) from disappearing after first rotation on Chrome for Android
        -webkit-transform: translateZ(0);

        img { display: block; max-width: 100%; }

        &.fade > li {
          opacity: 0;
          transition: opacity $orbit-animation-speed $orbit-animation-ease;
          @include translate3d(0,0,0);
          &.animate-in {
            opacity: 1;
            z-index: 20;
            transition: opacity $orbit-animation-speed $orbit-animation-ease;
          }
          &.animate-out {
            z-index: 10;
            transition: opacity $orbit-animation-speed $orbit-animation-ease;
          }
        }

        &.swipe-next > li {
          @include translate3d(100%,0,0);
          &.animate-in {
            @include translate3d(0,0,0);
            transition-duration:$orbit-animation-speed;
          }
          &.animate-out {
            @include translate3d(-100%,0,0);
            transition-duration:$orbit-animation-speed;
          }
        }

        &.swipe-prev > li {
          @include translate3d(-100%,0,0);
          &.animate-in {
            @include translate3d(0,0,0);
            transition-duration:$orbit-animation-speed;
          }
          &.animate-out {
            @include translate3d(100%,0,0);
            transition-duration:$orbit-animation-speed;
          }
        }

        > li {
          position: absolute;
          top: 0;
          left: 0;
          width: 100%;
          @include translate3d(100%,0,0);

          > a { display: block; }

          &.active {
            opacity: 1;
            // "relative" positioning is required for variable height of children.
            position:relative;
            top: 0;
            left: 0;
            @include translate3d(0,0,0);
          }

          .orbit-caption {
            @if $orbit-caption-position == "bottom" {
              position: absolute;
              bottom: 0;
            } @else if $orbit-caption-position == "under" {
              position: relative;
            }

            background-color: $orbit-caption-bg;
            color: $orbit-caption-font-color;
            width: 100%;
            padding: $orbit-caption-padding;
            font-size: $orbit-caption-font-size;
          }
        }
      }

      .orbit-slide-number {
        position: absolute;
        top: 10px;
        #{$default-float}: 10px;
        font-size: 12px;
        span { font-weight: $font-weight-bold; padding: $orbit-slide-number-padding;}
        color: $orbit-slide-number-font-color;
        background: $orbit-slide-number-bg;
        z-index: 10;
      }

      .orbit-timer {
        position: absolute;
        top: 12px;
        #{$opposite-direction}: 10px;
        height: 6px;
        width: 100px;
        z-index: 10;
        .orbit-progress {
          @if $orbit-timer-show-progress-bar {
            height: 3px;
            background-color: $orbit-timer-bg;
            display: block;
            width: 0%;
            position: relative;
            right: 20px;
            top: 5px;
          } @else {
              display:none; // This is used by the Javascript to not create a handler.
          }
        }

        // Play button
        & > span {
          display: none;
          position: absolute;
          top: 0px;
          #{$opposite-direction}: 0;
          width: 11px;
          height: 14px;
          border: solid 4px #fff;
          border-top: none;
          border-bottom: none;
        }

        // Pause button
        &.paused {
          & > span {
            #{$opposite-direction}: -4px;
            top: 0px;
            width: 11px;
            height: 14px;
            border: inset 8px;
            border-left-style: solid;
            @include rotate(180deg);
            border-color: transparent #fff transparent transparent;
            &.dark {
              border-color: transparent #333 transparent transparent;
            }
          }
        }
      }



      &:hover .orbit-timer > span { display: block; }

      // Let's get those controls to be right in the center on each side
      .orbit-prev,
      .orbit-next {
        position: absolute;
        top: 45%;
        margin-top: -25px;
        width: 36px;
        height: 60px;
        line-height: 50px;
        color: white;
        background-color: $orbit-nav-bg;
        text-indent: -9999px !important;
        z-index: 10;

        &:hover {
          background-color: $orbit-nav-bg-hover;
        }

        & > span {
          position: absolute;
          top: 50%;
          margin-top: -10px;
          display: block;
          width: 0;
          height: 0;
          border: inset 10px;
        }
      }
      .orbit-prev { #{$default-float}: 0;
        & > span {
          border-#{$opposite-direction}-style: solid;
          border-color: transparent;
          border-#{$opposite-direction}-color: $orbit-nav-arrow-color;
        }
        &:hover > span {
          border-#{$opposite-direction}-color: $orbit-nav-arrow-color-hover;
        }
      }
      .orbit-next { #{$opposite-direction}: 0;
        & > span {
          border-color: transparent;
          border-#{$default-float}-style: solid;
          border-#{$default-float}-color: $orbit-nav-arrow-color;
          #{$default-float}: 50%;
          margin-#{$default-float}: -4px;
        }
        &:hover > span {
          border-#{$default-float}-color: $orbit-nav-arrow-color-hover;
        }
      }

      .orbit-bullets-container { text-align: center; }
      .orbit-bullets {
        margin: 0 auto 30px auto;
        overflow: hidden;
        position: relative;
        top: 10px;
        float: none;
        text-align: center;
        display: block;

        li {
          display: inline-block;
          width: $orbit-bullet-radius;
          height: $orbit-bullet-radius;
          background: $orbit-bullet-nav-color;
          // float: $default-float;
          float: none;
          margin-#{$opposite-direction}: 6px;
          @include radius(1000px);

          &.active {
            background: $orbit-bullet-nav-color-active;
          }

          &:last-child { margin-#{$opposite-direction}: 0; }
        }
      }
    }


    .touch {
      .orbit-container {
        .orbit-prev,
        .orbit-next { display: none; }
      }

      .orbit-bullets { display: none; }
    }


    @media #{$medium-up} {

      .touch {
        .orbit-container {
          .orbit-prev,
          .orbit-next { display: inherit; }
        }

        .orbit-bullets { display: block; }
      }

    }

    @media #{$small-only} {
        .orbit-stack-on-small {

            .orbit-slides-container {height: auto !important;}
            .orbit-slides-container > * {
                position: relative !important;
                margin-left: 0% !important;
                opacity: 1 !important;
                -webkit-transform: none !important;
                   -moz-transform: none !important;
                    -ms-transform: none !important;
                     -o-transform: none !important;
                        transform: none !important;
                transition: none !important;
            }

            @if $orbit-timer-hide-for-small {
                .orbit-timer{display: none;}
            }
            @if $orbit-nav-hide-for-small {
                .orbit-next,.orbit-prev{display: none;}
            }
            @if $orbit-bullet-hide-for-small {
                .orbit-bullets{display: none;}
            }

            .orbit-slide-number {
              display: none;
            }
        }
    }

  }
}
