$loader-bg-background-color: #000000;
$loader-bg-opacity: 0.3;

$loader-container-background-color: rgba(0, 0, 0, 0);
$loader-container-opacity: 1.0;

$loader-container-circle-o-size: 50px;
$loader-container-circle-o-shadow-size: 36px;

$loader-container-circle-i-size: $loader-container-circle-o-size - 20;
$loader-container-circle-i-shadow-size: 15px;

$loader-container-circle-border-size: 5px;
$loader-container-circle-border-color: rgba(82, 168, 236, 0.9);
$loader-container-circle-shadow-color: rgba(82, 168, 236, 1.0);

$loader-container-size: $loader-container-circle-o-size + $loader-container-circle-o-shadow-size;
$loader-container-circle-i-top: 0 - $loader-container-circle-o-shadow-size/3 - $loader-container-circle-o-size/2 - $loader-container-circle-i-size/2;

.loader-bg {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  margin: 0;
  /*background-color: $loader-bg-background-color;
  opacity: $loader-bg-opacity;*/
  z-index: 12000;
}

.loader-container {
  position: absolute;
  width: $loader-container-size;
  height: $loader-container-size;
  line-height: $loader-container-size;
  text-align: center;
  border-radius: 10px;
  top: 50%;
  left: 50%;
  margin: $loader-container-size/-2 0 0 $loader-container-size/-2;

  background-color: $loader-container-background-color;
  opacity: $loader-container-opacity;

  .circle-o {
    background-color: rgba(0, 0, 0, 0);
    border: $loader-container-circle-border-size solid $loader-container-circle-border-color;
    opacity: 0.9;
    border-right: $loader-container-circle-border-size solid rgba(0, 0, 0, 0);
    border-left: $loader-container-circle-border-size solid rgba(0, 0, 0, 0);
    border-radius: $loader-container-circle-o-size;
    box-shadow: 0 0 $loader-container-circle-o-shadow-size $loader-container-circle-shadow-color;
    width: $loader-container-circle-o-size;
    height: $loader-container-circle-o-size;
    margin: $loader-container-circle-o-shadow-size/3 auto;
    -moz-animation: spinPulse 1s infinite linear;
    -webkit-animation: spinPulse 1s infinite linear;
    -o-animation: spinPulse 1s infinite linear;
    animation: spinPulse 1s infinite linear;
  }
  .circle-i {
    background-color: rgba(0, 0, 0, 0);
    border: $loader-container-circle-border-size solid $loader-container-circle-border-color;
    opacity: 0.9;
    border-left: $loader-container-circle-border-size solid rgba(0, 0, 0, 0);
    border-right: $loader-container-circle-border-size solid rgba(0, 0, 0, 0);
    border-radius: $loader-container-circle-i-size;
    box-shadow: 0 0 $loader-container-circle-i-shadow-size $loader-container-circle-shadow-color;
    width: $loader-container-circle-i-size;
    height: $loader-container-circle-i-size;
    margin: 0 auto;
    position: relative;
    top: $loader-container-circle-i-top;
    -moz-animation: spinoffPulse 1s infinite linear;
    -webkit-animation: spinoffPulse 1s infinite linear;
    -o-animation: spinoffPulse 1s infinite linear;
    animation: spinoffPulse 1s infinite linear;
  }

  &.stop {
    .circle-o,
    .circle-i {
      -webkit-animation-play-state: paused;
      -moz-animation-play-state: paused;
      -o-animation-play-state: paused;
      animation-play-state: paused;
    }
  }

}

@keyframes spinPulse {
  0% {
    transform: rotate(160deg);
    opacity: 0;
    box-shadow: 0 0 1px $loader-container-circle-shadow-color;
  }
  50% {
    transform: rotate(145deg);
    opacity: 1;
  }
  100% {
    transform: rotate(-320deg);
    opacity: 0;
  }
}

@keyframes spinoffPulse {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@-moz-keyframes spinPulse {
  0% {
    -moz-transform: rotate(160deg);
    opacity: 0;
    box-shadow: 0 0 1px $loader-container-circle-shadow-color;
  }
  50% {
    -moz-transform: rotate(145deg);
    opacity: 1;
  }
  100% {
    -moz-transform: rotate(-320deg);
    opacity: 0;
  }
}

@-moz-keyframes spinoffPulse {
  0% {
    -moz-transform: rotate(0deg);
  }
  100% {
    -moz-transform: rotate(360deg);
  }
}

@-webkit-keyframes spinPulse {
  0% {
    -webkit-transform: rotate(160deg);
    opacity: 0;
    box-shadow: 0 0 1px $loader-container-circle-shadow-color;
  }
  50% {
    -webkit-transform: rotate(145deg);
    opacity: 1;
  }
  100% {
    -webkit-transform: rotate(-320deg);
    opacity: 0;
  }
}

@-webkit-keyframes spinoffPulse {
  0% {
    -webkit-transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
  }
}

@-o-keyframes spinPulse {
  0% {
    -o-transform: rotate(160deg);
    opacity: 0;
    box-shadow: 0 0 1px $loader-container-circle-shadow-color;
  }
  50% {
    -o-transform: rotate(145deg);
    opacity: 1;
  }
  100% {
    -o-transform: rotate(-320deg);
    opacity: 0;
  }
}

@-o-keyframes spinoffPulse {
  0% {
    -o-transform: rotate(0deg);
  }
  100% {
    -o-transform: rotate(360deg);
  }
}