<!DOCTYPE html>
<html lang="en" ng-app="form-example1">

  <head>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-animate.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-sanitize.js"></script>
    <script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-2.5.0.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
    <link href="//netdna.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
  </head>

  <body ng-controller="DemoCtrl">
    <form name="form" class="css-form container" novalidate="">
      <div>
        <h1>Form with array named input:</h1>
        <label>
    Size (integer 0 - 10):
              <input type="number" ng-model="size[0]" name="size[0]" min="0" max="10" integer="" />
{{size[0]}}</label>
        <br />
        <span ng-show="form['size[0]'].$error.integer">The value is not a valid integer!</span>
        <span ng-show="form['size[0]'].$error.min || form['size[0]'].$error.max">
      The value must be in range 0 to 10!</span>
      </div>
      <br />
      <div>
        <h1>ng-repeat dynamic:</h1>
        <div ng-repeat="v in arr">
          <label>Item {{$index + 1}}</label>
          <input type="number" id="item{{$index}}" name="item[{{$index}}]" placeholder="Item {{$index + 1}}" required="required" ng-model="item[$index]" min="0" max="10" />
          <a ng-click="remove($index)" style="text-decoration: none; font-size: 12px;cursor: pointer;">x</a>
          <span ng-show="form['item[' + $index + ']'].$error.required">
            This item is required
          </span>
          <span ng-show="form['item[' + $index + ']'].$error.max || form['item[' + $index + ']'].$error.min">
            The value must be in range 0 to 10!
          </span>
          <br />
          
        </div>
        <button ng-click="addNewItem()">Add Item</button>
      </div>
    </form>
  </body>

</html>
angular.module('form-example1', ['ngAnimate', 'ngSanitize', 'ui.bootstrap']);
angular.module('form-example1').controller('DemoCtrl', function ($scope) {
  $scope.today = function() {
    $scope.dt = new Date();
  };
  $scope.today();

  $scope.arr = [];

  for(var i = 0; i < 5; i++) {
      $scope.arr.push(i);
  }

  $scope.addNewItem = function(){
    $scope.arr.push({num: 0});
  }

  $scope.remove = function (index) {
    $scope.arr.splice(index, 1);
  };

  $scope.clear = function() {
    $scope.dt = null;
  };

  $scope.inlineOptions = {
    customClass: getDayClass,
    minDate: new Date(),
    showWeeks: true
  };

  $scope.dateOptions = {
    dateDisabled: disabled,
    formatYear: 'yy',
    maxDate: new Date(2020, 5, 22),
    minDate: new Date(),
    startingDay: 1
  };

  // Disable weekend selection
  function disabled(data) {
    var date = data.date,
      mode = data.mode;
    return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);
  }

  $scope.toggleMin = function() {
    $scope.inlineOptions.minDate = $scope.inlineOptions.minDate ? null : new Date();
    $scope.dateOptions.minDate = $scope.inlineOptions.minDate;
  };

  $scope.toggleMin();

  $scope.open1 = function() {
    $scope.popup1.opened = true;
  };

  $scope.open2 = function() {
    $scope.popup2.opened = true;
  };

  $scope.setDate = function(year, month, day) {
    $scope.dt = new Date(year, month, day);
  };

  $scope.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];
  $scope.format = $scope.formats[0];
  $scope.altInputFormats = ['M!/d!/yyyy'];

  $scope.popup1 = {
    opened: false
  };

  $scope.popup2 = {
    opened: false
  };

  var tomorrow = new Date();
  tomorrow.setDate(tomorrow.getDate() + 1);
  var afterTomorrow = new Date();
  afterTomorrow.setDate(tomorrow.getDate() + 1);
  $scope.events = [
    {
      date: tomorrow,
      status: 'full'
    },
    {
      date: afterTomorrow,
      status: 'partially'
    }
  ];

  function getDayClass(data) {
    var date = data.date,
      mode = data.mode;
    if (mode === 'day') {
      var dayToCheck = new Date(date).setHours(0,0,0,0);

      for (var i = 0; i < $scope.events.length; i++) {
        var currentDay = new Date($scope.events[i].date).setHours(0,0,0,0);

        if (dayToCheck === currentDay) {
          return $scope.events[i].status;
        }
      }
    }

    return '';
  }
});