<!DOCTYPE html>
<html>

<head>
  <link data-require="jquery-ui@1.8.16" data-semver="1.8.16" rel="stylesheet" href="http://code.jquery.com/ui/1.8.16/themes/smoothness/jquery-ui.css" />
  <script data-require="jquery@1.4.2" data-semver="1.9.1" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  <script data-require="jquery-ui@1.8.16" data-semver="1.8.16" src="http://code.jquery.com/ui/1.8.16/jquery-ui.js"></script>
  <script data-require="angular.js@1.4.2" data-semver="1.4.2" src="https://code.angularjs.org/1.4.2/angular.js"></script>
  <link rel="stylesheet" href="style.css" />
  <script src="script.js"></script>
  <style>
    td {
      width: 100px;
    }
    input {
      width: 100px;
    }
  </style>
</head>

<body>
  <script type="text/javascript">
    jQuery(document).ready(function() {
      $('.code1').autocomplete({
        source: [{
          "value": "01-A",
          "prod_desc1": "Extra Large Elephant",
          "price1": "20.00",
          "prod_code1": "01-A",
          "image1": ""
        }, {
          "value": "01-A-BE",
          "prod_desc1": "Extra Large Elephant Bookends (pair)",
          "price1": "20.00",
          "prod_code1": "01-A-BE",
          "image1": ""
        }],
        minLength: 2,
        select: function(evt, ui) {
          // when a product code is selected, populate related fields in this form
          this.form.prod_desc1.value = ui.item.prod_desc1;
          $("#image1").html(ui.item.image1);
          var angularElement = angular.element(this.form.price1);
          var scope = angularElement.scope();
          var parser = angularElement.injector().get('$parse');
          var getter = parser(angularElement.attr('ng-model'));
          var setter = getter.assign;
          setter(scope, parseFloat(ui.item.price1))
          scope.$apply();



        }
      });
    });
    jQuery(document).ready(function() {
      $('.code2').autocomplete({
        source: [{
          "value": "01-A",
          "prod_desc2": "Extra Large Elephant",
          "price2": "20.00",
          "prod_code2": "01-A",
          "image2": ""
        }, {
          "value": "01-A-BE",
          "prod_desc2": "Extra Large Elephant Bookends (pair)",
          "price2": "20.00",
          "prod_code2": "01-A-BE",
          "image2": ""
        }],
        minLength: 2,
        select: function(evt, ui) {
          // when a product code is selected, populate related fields in this form
          this.form.prod_desc2.value = ui.item.prod_desc2;
          $("#image2").html(ui.item.image1);
          var angularElement = angular.element(this.form.price2);
          var scope = angularElement.scope();
          var parser = angularElement.injector().get('$parse');
          var getter = parser(angularElement.attr('ng-model'));
          var setter = getter.assign;
          setter(scope, parseFloat(ui.item.price2))
          scope.$apply();



        }
      });
    });
  </script>
  <style type="text/css">
    /* style the auto-complete response */
    
    li.ui-menu-item {
      font-size: 12px !important;
    }
  </style>
  <div ng-app="myApp" ng-controller="OrderController" class="row">
    <div class="page-header">
      <h1>Order Form</h1>
      <form onsubmit="return false;">
        <table>
          <thead>
            <tr>
              <th>Image</th>
              <th>Code</th>
              <th>Desc</th>
              <th>Price</th>
              <th>Qty</th>
              <th>Total</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>
                <div class="order-image">
                  <span id="image1"></span>
                </div>
              </td>
              <td>
                <input id="code1" type="text" class="code1 order-code" />
              </td>
              <td>
                <input class="order-prod_desc" id="prod_desc1" type="text" />
              </td>
              <td>
                <input ng-model="price1" ng-change="change()" class="order-price" id="price1" name="price1" type="number" />
              </td>
              <td>
                <input ng-model="quantity1" class="order-price" id="quantity1" type="number" value="" />
              </td>
              <td>
                <input class="order-price" id="total1" type="number" value="{{price1 * quantity1}}" step="0.01" />
              </td>
            </tr>
            <tr>
              <td>
                <div class="order-image">
                  <span id="image2"></span>
                </div>
              </td>
              <td>
                <input id="code2" type="text" class="code2 order-code" />
              </td>
              <td>
                <input class="order-prod_desc" id="prod_desc2" type="text" />
              </td>
              <td>
                <input ng-model="price2" ng-change="change()" class="order-price" id="price2" name="price2" type="number" />
              </td>
              <td>
                <input ng-model="quantity2" class="order-price" id="quantity2" type="number" value="" />
              </td>
              <td>
                <input class="order-price" id="total2" type="number" value="{{price2 * quantity2}}" step="0.01" />
              </td>
            </tr>
          </tbody>
        </table>
      </form>
    </div>
  </div>
  <h2>{{total()}}</h2>
  <script>
    var myApp = angular.module('myApp', []);



    myApp.controller('OrderController', function($scope) {

      $scope.total = function() {
        var total = parseFloat($scope.total1 || 0) + parseFloat($scope.total2 || 0);
        return total || 0;
      };

    });
  </script>
  <script data-require="bootstrap@*" data-semver="3.3.5" src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
  <script data-require="bootstrap@*" data-semver="3.3.5" src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.js"></script>
</body>

</html>
// Code goes here

/* Styles go here */