// Generated by CoffeeScript 1.9.1
var React, cx, objectAssign;

React = require('react');

cx = require('classnames');

objectAssign = require('react/lib/Object.assign');

module.exports = React.createClass({
  displayName: "SpinKit",
  propTypes: {
    spinnerName: React.PropTypes.string.isRequired,
    noFadeIn: React.PropTypes.bool,
    overrideSpinnerClassName: React.PropTypes.string
  },
  getDefaultProps: function() {
    return {
      spinnerName: 'three-bounce',
      noFadeIn: false,
      overrideSpinnerClassName: ""
    };
  },
  render: function() {
    var classTests, classes;
    classTests = {
      "fade-in": !this.props.noFadeIn,
      spinner: this.props.overrideSpinnerClassName === ""
    };
    classTests[this.props.overrideSpinnerClassName] = this.props.overrideSpinnerClassName;
    classes = cx(classTests);
    if (this.props.className) {
      classes = classes + " " + this.props.className;
    }
    if (!this.props.noFadeIn) {
      require('../css/fade-in.css');
    }
    switch (this.props.spinnerName) {
      case "three-bounce":
        require('../css/three-bounce.css');
        return React.createElement("div", React.__spread({}, this.props, {
          "className": "three-bounce " + classes
        }), React.createElement("div", {
          "className": "bounce1"
        }), React.createElement("div", {
          "className": "bounce2"
        }), React.createElement("div", {
          "className": "bounce3"
        }));
      case "double-bounce":
        require('../css/double-bounce.css');
        return React.createElement("div", React.__spread({}, this.props, {
          "className": "double-bounce " + classes
        }), React.createElement("div", {
          "className": "double-bounce1"
        }), React.createElement("div", {
          "className": "double-bounce2"
        }));
      case "rotating-plane":
        require('../css/rotating-plane.css');
        return React.createElement("div", React.__spread({}, this.props, {
          "className": classes
        }), React.createElement("div", {
          "className": "rotating-plane"
        }));
      case "wave":
        require('../css/wave.css');
        return React.createElement("div", React.__spread({}, this.props, {
          "className": "wave " + classes
        }), React.createElement("div", {
          "className": "rect1"
        }), React.createElement("div", {
          "className": "rect2"
        }), React.createElement("div", {
          "className": "rect3"
        }), React.createElement("div", {
          "className": "rect4"
        }), React.createElement("div", {
          "className": "rect5"
        }));
      case "wandering-cubes":
        require('../css/wandering-cubes.css');
        return React.createElement("div", React.__spread({}, this.props, {
          "className": "wandering-cubes " + classes
        }), React.createElement("div", {
          "className": "cube1"
        }), React.createElement("div", {
          "className": "cube2"
        }));
      case "pulse":
        require('../css/pulse.css');
        return React.createElement("div", React.__spread({}, this.props, {
          "className": classes
        }), React.createElement("div", {
          "className": "pulse"
        }));
      case "chasing-dots":
        require('../css/chasing-dots.css');
        return React.createElement("div", React.__spread({}, this.props, {
          "className": classes
        }), React.createElement("div", {
          "className": "chasing-dots"
        }, React.createElement("div", {
          "className": "dot1"
        }), React.createElement("div", {
          "className": "dot2"
        })));
      case "circle":
        require('../css/circle.css');
        return React.createElement("div", React.__spread({}, this.props, {
          "className": "circle-wrapper " + classes
        }), React.createElement("div", {
          "className": "circle1 circle"
        }), React.createElement("div", {
          "className": "circle2 circle"
        }), React.createElement("div", {
          "className": "circle3 circle"
        }), React.createElement("div", {
          "className": "circle4 circle"
        }), React.createElement("div", {
          "className": "circle5 circle"
        }), React.createElement("div", {
          "className": "circle6 circle"
        }), React.createElement("div", {
          "className": "circle7 circle"
        }), React.createElement("div", {
          "className": "circle8 circle"
        }), React.createElement("div", {
          "className": "circle9 circle"
        }), React.createElement("div", {
          "className": "circle10 circle"
        }), React.createElement("div", {
          "className": "circle11 circle"
        }), React.createElement("div", {
          "className": "circle12 circle"
        }));
      case "cube-grid":
        require('../css/cube-grid.css');
        return React.createElement("div", React.__spread({}, this.props, {
          "className": "cube-grid " + classes
        }), React.createElement("div", {
          "className": "cube"
        }), React.createElement("div", {
          "className": "cube"
        }), React.createElement("div", {
          "className": "cube"
        }), React.createElement("div", {
          "className": "cube"
        }), React.createElement("div", {
          "className": "cube"
        }), React.createElement("div", {
          "className": "cube"
        }), React.createElement("div", {
          "className": "cube"
        }), React.createElement("div", {
          "className": "cube"
        }), React.createElement("div", {
          "className": "cube"
        }));
      case "wordpress":
        require('../css/wordpress.css');
        return React.createElement("div", React.__spread({}, this.props, {
          "className": classes
        }), React.createElement("div", {
          "className": "wordpress"
        }, React.createElement("span", {
          "className": "inner-circle"
        })));
    }
  }
});
