<!DOCTYPE html>
<html>

  <head>
    <script data-require="angular.js@*" data-semver="1.3.0-beta.5" src="https://code.angularjs.org/1.3.0-beta.5/angular.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
    <script src="CalculationService.js"></script>
  </head>

  <body ng-app="CalculationApp" ng-controller="CalculationController">
    <div>
      <h2>Calculation Service</h2>
    
      <input type="text" name="Value1" ng-model="val1" style="width:50px">
      <select ng-model="operation">
        <option value="A" selected>+</option>
        <option value="S">-</option>
        <option value="D">/</option>
        <option value="M">*</option>
      </select>
      <input type="text" name="Value2" ng-model="val2" style="width:50px">
      <input type="button" name="calculate" value="=" ng-click="calculate()"/>
      <input type="text" name="result" ng-model="result" style="width:50px"/>
    </div>
  </body>

</html>
(function() {

  var app = angular.module("CalculationApp", []);

  var calculationController = function($scope, calculationService) {

    $scope.calculate = function() {
      switch ($scope.operation) {
        case "A":
          $scope.result = calculationService.add($scope.val1, $scope.val2);
          break;
        case "S":
          $scope.result = calculationService.subtract($scope.val1, $scope.val2);
          break;
        case "D":
          $scope.result = calculationService.divide($scope.val1, $scope.val2);
          break;
        case "M":
          $scope.result = calculationService.multiply($scope.val1, $scope.val2);
          break;
      }

    };
  };

  app.controller("CalculationController", calculationController);

}());
/* Styles go here */

  (function(){
    
    //calculation service implementation
    var calculationService = function()
    {
      var add = function(value1,value2){
          return parseInt(value1) + parseInt(value2);
      };
      var subtract = function(value1,value2){
          return parseInt(value1) - parseInt(value2);
      };
      var divide = function(value1,value2){
          return parseInt(value1) / parseInt(value2);
      };
      var multiply = function(value1,value2){
          return parseInt(value1) * parseInt(value2);
      };
      
      return {
        add : add,
        subtract : subtract,
        divide : divide,
        multiply : multiply
      };
    };
    
    //Get reference to the CalculationApp module
      var module = angular.module("CalculationApp");
    
    //Add service to the module
    module.factory("calculationService",calculationService);
    
    
  }());