// Mixins
// --------------------------------------------------

// Main Mixins
// --------------------------------------------------

// Opacity
.opacity(@opacity) {
  opacity: @opacity;

  // IE8 filter
  .lt-ie9 & {
    @opacity-ie: (@opacity * 100);
    filter: ~"alpha(opacity=@{opacity-ie})";
  }
}


// Background-rgba
.background(@rgba,@opacity) {
  // background: @rgba;
  background: rgba(red(@rgba), green(@rgba), blue(@rgba), @opacity);
  .lt-ie9 & {
    background: none;
    -ms-filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d')", argb(@rgba), argb(@rgba)));
    filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d')", argb(@rgba), argb(@rgba)));
    zoom: 1;
  }
}

// Transform rotate
.rotate(@val) {
  -moz-transform: rotate(@val);
  -o-transform: rotate(@val);
  -webkit-transform: rotate(@val);
  -ms-transform: rotate(@val);
  transform: rotate(@val);

  @radians: ~`parseInt("@{val}") * Math.PI * 2 / 360`;
  @costheta: ~`Math.cos("@{radians}")`;
  @sintheta: ~`Math.sin("@{radians}")`;
  @negsintheta: ~`"@{sintheta}" * -1`;
  filter: ~"progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand', M11=@{costheta}, M12=@{negsintheta}, M21=@{sintheta}, M22=@{costheta})";
  zoom: 1;
}

// Transition
.transition(@transition) {
  -moz-transition: @transition;
  -o-transition: @transition;
  -webkit-transition: @transition;
  transition: @transition;
}

// Transition Delay
.transition-delay(@delay) {
  -moz-transition-delay: @delay;
  -o-transition-delay: @delay;
  -webkit-transition-delay: @delay;
  transition-delay: @delay;
}

// Transform Origin
.transform-origin(@transform-origin) {
  -moz-transform-origin: @transform-origin;
  -ms-transform-origin: @transform-origin;
  -o-transform-origin: @transform-origin;
  -webkit-transform-origin: @transform-origin;
  transform-origin: @transform-origin;
}

// Transform
.transform(@transform) {
  -moz-transform: @transform;
  -ms-transform: @transform;
  -o-transform: @transform;
  -webkit-transform: @transform;
  transform: @transform;
}

// Box Sizing
.box-sizing(@box-sizing) {
  -moz-box-sizing: @box-sizing;
  -webkit-box-sizing: @box-sizing;
  box-sizing: @box-sizing;
}

// Border Radius
.border-radius(@border-radius){
  -webkit-border-radius: @border-radius;
  -moz-border-radius: @border-radius;
  border-radius: @border-radius;
}

// Box Shadow
.box-shadow(@box-shadow){
  -webkit-box-shadow: @box-shadow;
  -moz-box-shadow: @box-shadow;
  box-shadow: @box-shadow;
}

// Reset Input
.reset-input(){
  outline: none;
  background-color: transparent;
  border: none;
  -webkit-appearance: none;
  border-radius: 0;
  vertical-align: baseline;
  box-shadow: none;
}

// Reset Button
.reset-button(){
  background: none;
  border: none;
  display: inline-block;
  padding: 0;
  outline: none;
  outline-offset: 0;
  cursor: pointer;
  -webkit-appearance: none;

  &::-moz-focus-inner {
    border: none;
    padding: 0;
  }
}

// Triangle
.triangle(@direction, @width, @height: @width, @color) {
  width: 0;
  height: 0;
  border-style: solid;

  & when (@direction = top) {
    border-width: 0 @width/2 @height @width/2;
    border-color: transparent transparent @color transparent;
  }

  & when (@direction = bottom) {
    border-width: @height @width/2 0 @width/2;
    border-color: @color transparent transparent transparent;
  }

  & when (@direction = left) {
    border-width: @height/2 @width @height/2 0;
    border-color: transparent @color transparent transparent;
  }

  & when (@direction = right) {
    border-width: @height/2  0 @height/2 @width;
    border-color: transparent transparent transparent @color;
  }

  & when (@direction = top_left) {
    border-width: @width @width 0 0;
    border-color: @color transparent transparent transparent;
  }

  & when (@direction = top_right) {
    border-width: 0 @width @width 0;
    border-color: transparent @color transparent transparent;
  }

  & when (@direction = bottom_right) {
    border-width: 0 0 @width @width;
    border-color: transparent transparent @color transparent;
  }

  & when (@direction = bottom_left) {
    border-width: @width 0 0 @width;
    border-color: transparent transparent transparent @color;
  }
}

// Clearfix
.clearfix() {
  &:before,
  &:after {
    content: " ";
    display: table;
  }

  &:after {
    clear: both;
  }
}

// Variables
@fa: 'FontAwesome';
@roboto: 'Roboto', sans-serif;
@opensans: 'Open Sans', sans-serif;
@robotoc: 'Roboto Condensed', sans-serif;

// FA Icons
// Angle
@fa-angle-left: '\f104';
@fa-angle-right: '\f105';
@fa-angle-down: '\f107';
@fa-angle-up: '\f106';

// Arrow Circle
@fa-arrow-circle-down: '\f0ab';
@fa-arrow-circle-top: '\f0aa';
@fa-arrow-circle-left: '\f0a8';
@fa-arrow-circle-right: '\f0a9';

// Caret
@fa-caret-down: '\f0d7';
@fa-caret-right: '\f0da';
@fa-caret-left: '\f0d9';
@fa-caret-up: '\f0d8';

// Chevron
@fa-chevron-left: '\f053';
@fa-chevron-right: '\f054';
@fa-chevron-up: '\f077';
@fa-chevron-down: '\f078';

// Other
@fa-search: '\f002';
@fa-close: '\f00d';
@fa-expand: '\f065';
@fa-play-circle: '\f144';
@fa-play-circle-o: '\f01d';
@fa-play: '\f04b';
@fa-youtube-play: '\f16a';
@fa-link: '\f0c1';
@fa-envelope: '\f0e0';
@fa-mobile: '\f10b';
@fa-map-marker: '\f041';
@fa-comments: '\f086';
@fa-comments-o: '\f0e6';
@fa-cogs: '\f085';
@fa-cog: '\f013';
@fa-eye: '\f06e';
@fa-external-link: '\f08e';
@fa-photo: '\f03e';
@fa-volume-off: '\f026';
@fa-volume-up: '\f028';
@fa-volume-down: '\f027';
@fa-users: '\f0c0';
@fa-times: '\f00d';
@fa-star: '\f005';
@fa-stop: '\f04d';
@fa-pause: '\f04c';

 @fa-plus: '\f067';

// Bootstrap Mixins
// --------------------------------------------------

// Utilities
@import "mixins/hide-text.less";
@import "mixins/opacity.less";
@import "mixins/image.less";
@import "mixins/labels.less";
@import "mixins/reset-filter.less";
@import "mixins/resize.less";
@import "mixins/responsive-visibility.less";
@import "mixins/size.less";
@import "mixins/tab-focus.less";
@import "mixins/text-emphasis.less";
@import "mixins/text-overflow.less";
@import "mixins/vendor-prefixes.less";

// Components
@import "mixins/alerts.less";
@import "mixins/buttons.less";
@import "mixins/panels.less";
@import "mixins/pagination.less";
@import "mixins/list-group.less";
@import "mixins/nav-divider.less";
@import "mixins/forms.less";
@import "mixins/progress-bar.less";
@import "mixins/table-row.less";

// Skins
@import "mixins/background-variant.less";
@import "mixins/border-radius.less";
@import "mixins/gradients.less";

// Layout
@import "mixins/clearfix.less";
@import "mixins/center-block.less";
@import "mixins/nav-vertical-align.less";
@import "mixins/grid-framework.less";
@import "mixins/grid.less";
