Mustang-SN-Config

HTML

<div class="md_panel_outer" ng-controller="mustangDecodeCtrl">
    <div class="md_panel">
        <div class="md_panel-body">
            <div class="md_panel_sn">
                <div class="md_panel_sn_h">BODY</div>
                <div class="md_panel_sn_h">COLOR</div>
                <div class="md_panel_sn_h">TRIM</div>
                <div class="md_panel_sn_h">DATE</div>
                <div class="md_panel_sn_h">DSO</div>
                <div class="md_panel_sn_h">AXLE</div>
                <div class="md_panel_sn_h">TRANS</div>
            </div>
            <div class="md_panel_sn_c">
                <div class="md_panel_sn_h">
                    <input type="text" data-ng-model="queryIn.body" maxlength="3" />
                </div>
                <div class="md_panel_sn_h">
                    <input type="text" data-ng-model="queryIn.color" maxlength="1" />
                </div>
                <div class="md_panel_sn_h">
                    <input type="text" data-ng-model="queryIn.trim" maxlength="5" />
                </div>
                <div class="md_panel_sn_h">
                    <input type="text" data-ng-model="queryIn.date" maxlength="3" />
                </div>
                <div class="md_panel_sn_h">
                    <input type="text" data-ng-model="queryIn.dso" maxlength="2" />
                </div>
                <div class="md_panel_sn_h">
                    <input type="text" data-ng-model="queryIn.axle" maxlength="1" />
                </div>
                <div class="md_panel_sn_h">
                    <input type="text" data-ng-model="queryIn.trans" maxlength="1" />
                </div>
            </div>
        </div>
        <div class="md_panel-body">
            <div class="md_panel_sn2">
                <div class="md_panel_sn_h">VEHICLE WARRANTY NUMBER</div>
            </div>
            <div class="md_panel_sn2_c">
                <div class="md_panel_sn_h">
                    <input type="text"...

CSS

body {
    font-family: Arial, Helvetica, sans-serif;
}
.md_table {
    width: 500px;
    font-size: 12px;
}
.md_table th {
    text-align: left;
    color: #999;
    font-weight: normal;
}
.md_panel_outer {
    border: 1px solid #000;
    width: 500px;
}
.md_panel {
    border: 3px solid #fff;
    background-color: #000;
    color: #999;
}
.md_panel .md_panel-body {
    padding: 10px;
}
.md_panel_sn {
    font-size: 10px;
    padding: 2px 4px;
    margin-left: 24px;
    font-family:"Courier New", Courier, monospace;
}
.md_panel_sn2_c input, .md_panel_sn_c input {
    font-size: 10px;
    font-family:"Courier New", Courier, monospace;
    background-color: transparent;
    border: transparent;
    border-bottom: 1px dotted #000;
    padding: 4px;
    width: 100%;
    text-align: center;
    text-transform: uppercase;
}
.md_panel_sn_h {
    text-align: center;
    display: inline-block;
    font-size: 12px;
    padding: 2px 4px;
    /*background-color: pink;*/
    margin-right: 4px;
}
.md_panel_sn_h:nth-child(1) {
    width: 40px;
}
.md_panel_sn_h:nth-child(2) {
    width: 40px;
}
.md_panel_sn_h:nth-child(3) {
    width: 40px;
}
.md_panel_sn_h:nth-child(4) {
    width: 40px;
    margin-right: 30px;
}
.md_panel_sn_h:nth-child(5) {
    width: 40px;
}
.md_panel_sn_h:nth-child(6) {
    width: 40px;
}
.md_panel_sn_h:nth-child(7) {
    width: 40px;
}
.md_panel_sn_c .md_panel_sn_h {
    width: 40px;
    margin-right: 6px;
}
.md_panel_sn_c .md_panel_sn_h:nth-child(4) {
    width: 40px;
    margin-right: 32px;
}
.md_panel_sn_c {
    display: inline-block;
    font-size: 12px;
    padding: 2px 6px;
    background-color: #fff;
    margin-left: 25px;
}
.md_panel_sn2 .md_panel_sn_h:nth-child(1) {
    width: 100%;
}
.md_panel_sn2_c {
    margin: 2px 140px;
    display: inline-block;
    font-size: 12px;
    padding: 2px 6px;
    background-color: #fff;
}
.md_panel_sn2_c .md_panel_sn_h {
    width: 40%;
    display: inline-block;
}
.md_panel_sn2_c .md_panel_sn_h input {
   ...

JavaScript

var app = angular.module('mustangDecode', [])
    .controller('mustangDecodeCtrl', function ($scope) {

    $scope.generateData = function () {
        $scope.queryOut.constructionYear = '6' + $scope.queryIn.wn1.substr(0, 1);

        $scope.queryOut.bodyStyleCode = $scope.queryIn.body.substr(0, 2);
        $scope.queryOut.interiorSeatsCode = $scope.queryIn.body.substr(2, 1);
        $scope.queryOut.bodySerialCode = $scope.queryIn.wn1.substr(2, 2);
        $scope.queryOut.exteriorPaintCode = $scope.queryIn.color;
        $scope.queryOut.interiorTrimCode = $scope.queryIn.trim;
        $scope.queryOut.dateCode = $scope.queryIn.date;
        $scope.queryOut.dsoCode = $scope.queryIn.dso;
        $scope.queryOut.axleCode = $scope.queryIn.axle;
        $scope.queryOut.transmissionCode = $scope.queryIn.trans;
        $scope.queryOut.assemblyPlantCode = $scope.queryIn.wn1.substr(1, 1);
        $scope.queryOut.engineCode = $scope.data.engineCodes[$scope.queryOut.constructionYear][$scope.queryIn.wn1.substr(4, 1)];

        $scope.queryOut.bodyStyle = $scope.data.bodyStyles[$scope.queryOut.constructionYear][$scope.queryIn.body.substr(0, 2)];
        $scope.queryOut.interiorSeats = $scope.data.interiorSeats[$scope.queryOut.constructionYear][$scope.queryIn.body.substr(2, 1)];
        $scope.queryOut.bodySerial = $scope.data.bodySerial[$scope.queryOut.constructionYear][$scope.queryIn.wn1.substr(2, 2)];
        $scope.queryOut.exteriorPaint = $scope.data.exteriorPaint[$scope.queryOut.constructionYear][$scope.queryIn.color];
        $scope.queryOut.interiorTrim = $scope.data.interiorTrim[$scope.queryOut.constructionYear][$scope.queryIn.trim];
        $scope.queryOut.date = $scope.data.dateCodes[$scope.queryIn.date];
        $scope.queryOut.dso = $scope.data.dsoCodes[$scope.queryIn.dso];
        $scope.queryOut.axle = $scope.data.axleCodes[$scope.queryOut.constructionYear][$scope.queryIn.axle];
        $scope.queryOut.transmission =...