<!DOCTYPE html>
<html>
<head>
<link data-require="datatables@1.9.4" data-semver="1.9.4" rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/datatables/1.9.4/css/jquery.dataTables.css" />
<link data-require="bootstrap-css@3.1.1" data-semver="3.1.1" rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" />
<link rel="stylesheet" href="//cdn.datatables.net/plug-ins/be7019ee387/integration/bootstrap/3/dataTables.bootstrap.css" />
<link rel="stylesheet" href="//cdn.datatables.net/scroller/1.2.1/css/dataTables.scroller.css" />
<link rel="stylesheet" href="//cdn.datatables.net/colvis/1.1.0/css/dataTables.colVis.css" />
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div class="container">
<div class="page-header">
<h1>data tables example</h1>
<div id="demo"></div>
<hr />
<div class="alert alert-info invisible" id="result"></div>
</div>
</div>
<script data-require="jquery@1.11.0" data-semver="2.1.1" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script data-require="lodash-underscore@2.4.1" data-semver="2.4.1" src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.min.js"></script>
<script data-require="backbone.js@1.1.2" data-semver="1.1.2" src="http://backbonejs.org/backbone-min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<script src="//cdn.datatables.net/1.10.0/js/jquery.dataTables.js"></script>
<script src="//cdn.datatables.net/plug-ins/be7019ee387/integration/bootstrap/3/dataTables.bootstrap.js"></script>
<script src="//cdn.datatables.net/scroller/1.2.1/js/dataTables.scroller.min.js"></script>
<script src="//cdn.datatables.net/colvis/1.1.0/js/dataTables.colVis.min.js"></script>
<script src="growl.js"></script>
<script src="chance.js"></script>
<!-- with backbone -->
<script src="view.js"></script>
<!-- with jquery
<script src="view.js"></script> -->
</body>
</html>
if (!"console" in window || typeof console == "undefined") {
var methods = [
"log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"
];
var emptyFn = function () {};
window.console = {};
for (var i = 0; i < methods.length; ++i) {
window.console[methods[i]] = emptyFn;
}
}
$(document).ready(function () {
$.getJSON( "data.json", function(dataSet) {
renderTable(dataSet);
});
function renderTable(dataSet) {
console.time("datatablesrender");
var start,
table,
end,
time,
result,
timeEnd,
scrollY,
$container,
showMessage;
showMessage = function (message) {
$.bootstrapGrowl(message, {
delay: 1000
});
};
timeEnd = function () {
end = new Date();
end = end.getTime();
return (end - start) / 1000;
};
$container = $('#demo');
$container.html('<table class="table" id="example"></table>');
$table = $('#example');
scrollY = $(window).height() - $container.offset().top - 220 + "px";
start = new Date();
start = start.getTime();
/**
* Define headers and columns
*/
function getColumns() {
var columns;
columns = [{
"class" : "chkbox-td",
"data" : null,
"render" : function (data, type, row, meta) {
if (type === "display" || type === "filter") {
return checkBox(meta.row, "partsChk", row.selected);
}
return "";
},
"orderable" : false
}, {
"title" : ImpactApp.translate("RES.common.status"),
"data" : "caStatusDesc",
"class" : "td-70",
"defaultContent" : ""
}, {
"title" : ImpactApp.translate("RES.common.partNo"),
"data" : "partId",
"class" : "td-70",
"defaultContent" : ""
}, {
"title" : ImpactApp.translate("RES.parts.vendor"),
"data" : "vendorNo",
"visible" : false,
"defaultContent" : ""
}, {
"title" : ImpactApp.translate("RES.parts.vmrs"),
"data" : "vmrsCode",
"visible" : false,
"defaultContent" : ""
}, {
"title" : ImpactApp.translate("RES.parts.shortQuantity"),
"data" : "quantity",
"class" : "td-50 text-center",
"defaultContent" : ""
}, {
"title" : ImpactApp.translate("RES.common.description"),
"data" : "description",
"defaultContent" : ""
}, {
"title" : ImpactApp.translate("RES.common.functionGroup"),
"data" : "fgrp",
"defaultContent" : ""
}, {
"title" : ImpactApp.translate("RES.common.notes"),
"data" : "note",
"defaultContent" : ""
}];
return columns;
}
table = $table.DataTable({
"data" : dataSet,
"columns" : getColumns(),
"order" : [
1, 'asc'
],
"scrollY" : scrollY,
"scrollCollapse": true,
"dom" : "CrtiS",
"stateSave" : true,
"deferRender": true
});
$('tbody', $table).on('click', 'td.clickable', function () {
showMessage(JSON.stringify(table.cell(this).data()));
});
$('#example tbody').on('click', '.checkbox', function (e) {
e.stopPropagation();
var $row = $(e.target).closest("tr");
showMessage("Checkbox checked: " + this.checked + "<br> Data: " + JSON.stringify(table.row($row).data()));
});
console.timeEnd("datatablesrender");
result = document.getElementById("result");
result.style.visibility = "visible";
result.innerHTML = "Rendered in: " + timeEnd() + " s";
}
});
/* Styles go here */
.checkbox {
width:25px;
height:25px;
display: inline-block;
cursor: pointer;
}
.checkbox-td {
width:30px;
text-align: center;
padding: 0 !important;
}
tr {
cursor: pointer;
}
(function() {
var $;
$ = jQuery;
$.bootstrapGrowl = function(message, options) {
var $alert, css, offsetAmount;
options = $.extend({}, $.bootstrapGrowl.default_options, options);
$alert = $("<div>");
$alert.attr("class", "bootstrap-growl alert");
if (options.type) {
$alert.addClass("alert-" + options.type);
}
if (options.allow_dismiss) {
$alert.append("<span class=\"close\" data-dismiss=\"alert\">×</span>");
}
$alert.append(message);
if (options.top_offset) {
options.offset = {
from: "top",
amount: options.top_offset
};
}
offsetAmount = options.offset.amount;
$(".bootstrap-growl").each(function() {
return offsetAmount = Math.max(offsetAmount, parseInt($(this).css(options.offset.from)) + $(this).outerHeight() + options.stackup_spacing);
});
css = {
"position": (options.ele === "body" ? "fixed" : "absolute"),
"margin": 0,
"z-index": "9999",
"display": "none"
};
css[options.offset.from] = offsetAmount + "px";
$alert.css(css);
if (options.width !== "auto") {
$alert.css("width", options.width + "px");
}
$(options.ele).append($alert);
switch (options.align) {
case "center":
$alert.css({
"left": "50%",
"margin-left": "-" + ($alert.outerWidth() / 2) + "px"
});
break;
case "left":
$alert.css("left", "20px");
break;
default:
$alert.css("right", "20px");
}
$alert.fadeIn();
if (options.delay > 0) {
$alert.delay(options.delay).fadeOut(function() {
return $(this).alert("close");
});
}
return $alert;
};
$.bootstrapGrowl.default_options = {
ele: "body",
type: "info",
offset: {
from: "top",
amount: 20
},
align: "right",
width: 250,
delay: 4000,
allow_dismiss: true,
stackup_spacing: 10
};
}).call(this);
// Chance.js 0.5.5
// http://chancejs.com
// (c) 2013 Victor Quinn
// Chance may be freely distributed or modified under the MIT license.
(function () {
// Constants
var MAX_INT = 9007199254740992;
var MIN_INT = -MAX_INT;
var NUMBERS = '0123456789';
var CHARS_LOWER = 'abcdefghijklmnopqrstuvwxyz';
var CHARS_UPPER = CHARS_LOWER.toUpperCase();
var HEX_POOL = NUMBERS + "abcdef";
// Constructor
var Chance = function (seed) {
if (!(this instanceof Chance)) {
return new Chance(seed);
}
if (seed !== undefined) {
// If we were passed a generator rather than a seed, use it.
if (typeof seed === 'function') {
this.random = seed;
} else {
this.seed = seed;
}
}
// If no generator function was provided, use our MT
if (typeof this.random === 'undefined') {
this.mt = this.mersenne_twister(seed);
this.random = function () {
return this.mt.random(this.seed);
};
}
};
// Random helper functions
function initOptions(options, defaults) {
options || (options = {});
if (!defaults) {
return options;
}
for (var i in defaults) {
if (typeof options[i] === 'undefined') {
options[i] = defaults[i];
}
}
return options;
}
function testRange(test, errorMessage) {
if (test) {
throw new RangeError(errorMessage);
}
}
// -- Basics --
Chance.prototype.bool = function (options) {
// likelihood of success (true)
options = initOptions(options, {likelihood : 50});
testRange(
options.likelihood < 0 || options.likelihood > 100,
"Chance: Likelihood accepts values from 0 to 100."
);
return this.random() * 100 < options.likelihood;
};
Chance.prototype.character = function (options) {
options = initOptions(options);
var symbols = "!@#$%^&*()[]",
letters, pool;
testRange(
options.alpha && options.symbols,
"Chance: Cannot specify both alpha and symbols."
);
if (options.casing === 'lower') {
letters = CHARS_LOWER;
} else if (options.casing === 'upper') {
letters = CHARS_UPPER;
} else {
letters = CHARS_LOWER + CHARS_UPPER;
}
if (options.pool) {
pool = options.pool;
} else if (options.alpha) {
pool = letters;
} else if (options.symbols) {
pool = symbols;
} else {
pool = letters + NUMBERS + symbols;
}
return pool.charAt(this.natural({max: (pool.length - 1)}));
};
// Note, wanted to use "float" or "double" but those are both JS reserved words.
// Note, fixed means N OR LESS digits after the decimal. This because
// It could be 14.9000 but in JavaScript, when this is cast as a number,
// the trailing zeroes are dropped. Left to the consumer if trailing zeroes are
// needed
Chance.prototype.floating = function (options) {
var num, range;
options = initOptions(options, {fixed : 4});
var fixed = Math.pow(10, options.fixed);
testRange(
options.fixed && options.precision,
"Chance: Cannot specify both fixed and precision."
);
var max = MAX_INT / fixed;
var min = -max;
testRange(
options.min && options.fixed && options.min < min,
"Chance: Min specified is out of range with fixed. Min should be, at least, " + min
);
testRange(
options.max && options.fixed && options.max > max,
"Chance: Max specified is out of range with fixed. Max should be, at most, " + max
);
options = initOptions(options, {min : min, max : max});
// Todo - Make this work!
// options.precision = (typeof options.precision !== "undefined") ? options.precision : false;
num = this.integer({min: options.min * fixed, max: options.max * fixed});
var num_fixed = (num / fixed).toFixed(options.fixed);
return parseFloat(num_fixed);
};
// NOTE the max and min are INCLUDED in the range. So:
//
// chance.natural({min: 1, max: 3});
//
// would return either 1, 2, or 3.
Chance.prototype.integer = function (options) {
// 9007199254740992 (2^53) is the max integer number in JavaScript
// See: http://vq.io/132sa2j
options = initOptions(options, {min: MIN_INT, max: MAX_INT});
testRange(options.min > options.max, "Chance: Min cannot be greater than Max.");
return Math.floor(this.random() * (options.max - options.min + 1) + options.min);
};
Chance.prototype.natural = function (options) {
options = initOptions(options, {min: 0, max: MAX_INT});
return this.integer(options);
};
Chance.prototype.normal = function (options) {
options = initOptions(options, {mean : 0, dev : 1});
// The Marsaglia Polar method
var s, u, v, norm,
mean = options.mean,
dev = options.dev;
do {
// U and V are from the uniform distribution on (-1, 1)
u = this.random() * 2 - 1;
v = this.random() * 2 - 1;
s = u * u + v * v;
} while (s >= 1);
// Compute the standard normal variate
norm = u * Math.sqrt(-2 * Math.log(s) / s);
// Shape and scale
return dev * norm + mean;
};
Chance.prototype.string = function (options) {
options = initOptions(options);
var length = options.length || this.natural({min: 5, max: 20}),
text = '',
pool = options.pool;
for (var i = 0; i < length; i++) {
text += this.character({pool: pool});
}
return text;
};
// -- End Basics --
// -- Helpers --
Chance.prototype.capitalize = function (word) {
return word.charAt(0).toUpperCase() + word.substr(1);
};
Chance.prototype.mixin = function (obj) {
var chance = this;
for (var func_name in obj) {
Chance.prototype[func_name] = obj[func_name];
}
return this;
};
// H/T to SO for this one: http://vq.io/OtUrZ5
Chance.prototype.pad = function (number, width, pad) {
// Default pad to 0 if none provided
pad = pad || '0';
// Convert number to a string
number = number + '';
return number.length >= width ? number : new Array(width - number.length + 1).join(pad) + number;
};
Chance.prototype.pick = function (arr, count) {
if (!count || count === 1) {
return arr[this.natural({max: arr.length - 1})];
} else {
return this.shuffle(arr).slice(0, count);
}
};
Chance.prototype.shuffle = function (arr) {
var old_array = arr.slice(0),
new_array = [],
j = 0,
length = Number(old_array.length);
for (var i = 0; i < length; i++) {
// Pick a random index from the array
j = this.natural({max: old_array.length - 1});
// Add it to the new array
new_array[i] = old_array[j];
// Remove that element from the original array
old_array.splice(j, 1);
}
return new_array;
};
// -- End Helpers --
// -- Text --
Chance.prototype.paragraph = function (options) {
options = initOptions(options);
var sentences = options.sentences || this.natural({min: 3, max: 7}),
sentence_array = [];
for (var i = 0; i < sentences; i++) {
sentence_array.push(this.sentence());
}
return sentence_array.join(' ');
};
// Could get smarter about this than generating random words and
// chaining them together. Such as: http://vq.io/1a5ceOh
Chance.prototype.sentence = function (options) {
options = initOptions(options);
var words = options.words || this.natural({min: 12, max: 18}),
text, word_array = [];
for (var i = 0; i < words; i++) {
word_array.push(this.word());
}
text = word_array.join(' ');
// Capitalize first letter of sentence, add period at end
text = this.capitalize(text) + '.';
return text;
};
Chance.prototype.syllable = function (options) {
options = initOptions(options);
var length = options.length || this.natural({min: 2, max: 3}),
consonants = 'bcdfghjklmnprstvwz', // consonants except hard to speak ones
vowels = 'aeiou', // vowels
all = consonants + vowels, // all
text = '',
chr;
// I'm sure there's a more elegant way to do this, but this works
// decently well.
for (var i = 0; i < length; i++) {
if (i === 0) {
// First character can be anything
chr = this.character({pool: all});
} else if (consonants.indexOf(chr) === -1) {
// Last character was a vowel, now we want a consonant
chr = this.character({pool: consonants});
} else {
// Last character was a consonant, now we want a vowel
chr = this.character({pool: vowels});
}
text += chr;
}
return text;
};
Chance.prototype.word = function (options) {
options = initOptions(options);
testRange(
options.syllables && options.length,
"Chance: Cannot specify both syllables AND length."
);
var syllables = options.syllables || this.natural({min: 1, max: 3}),
text = '';
if (options.length) {
// Either bound word by length
do {
text += this.syllable();
} while (text.length < options.length);
text = text.substring(0, options.length);
} else {
// Or by number of syllables
for (var i = 0; i < syllables; i++) {
text += this.syllable();
}
}
return text;
};
// -- End Text --
// -- Person --
Chance.prototype.age = function (options) {
options = initOptions(options);
var age;
switch (options.type) {
case 'child':
age = this.natural({min: 1, max: 12});
break;
case 'teen':
age = this.natural({min: 13, max: 19});
break;
case 'adult':
age = this.natural({min: 18, max: 120});
break;
case 'senior':
age = this.natural({min: 65, max: 120});
break;
default:
age = this.natural({min: 1, max: 120});
break;
}
return age;
};
Chance.prototype.birthday = function (options) {
options = initOptions(options, {
year: (new Date().getFullYear() - this.age(options))
});
return this.date(options);
};
var firstNames = {
"male": ["James", "John", "Robert", "Michael", "William", "David", "Richard", "Joseph", "Charles", "Thomas", "Christopher", "Daniel", "Matthew", "George", "Donald", "Anthony", "Paul", "Mark", "Edward", "Steven", "Kenneth", "Andrew", "Brian", "Joshua", "Kevin", "Ronald", "Timothy", "Jason", "Jeffrey", "Frank", "Gary", "Ryan", "Nicholas", "Eric", "Stephen", "Jacob", "Larry", "Jonathan", "Scott", "Raymond", "Justin", "Brandon", "Gregory", "Samuel", "Benjamin", "Patrick", "Jack", "Henry", "Walter", "Dennis", "Jerry", "Alexander", "Peter", "Tyler", "Douglas", "Harold", "Aaron", "Jose", "Adam", "Arthur", "Zachary", "Carl", "Nathan", "Albert", "Kyle", "Lawrence", "Joe", "Willie", "Gerald", "Roger", "Keith", "Jeremy", "Terry", "Harry", "Ralph", "Sean", "Jesse", "Roy", "Louis", "Billy", "Austin", "Bruce", "Eugene", "Christian", "Bryan", "Wayne", "Russell", "Howard", "Fred", "Ethan", "Jordan", "Philip", "Alan", "Juan", "Randy", "Vincent", "Bobby", "Dylan", "Johnny", "Phillip", "Victor", "Clarence", "Ernest", "Martin", "Craig", "Stanley", "Shawn", "Travis", "Bradley", "Leonard", "Earl", "Gabriel", "Jimmy", "Francis", "Todd", "Noah", "Danny", "Dale", "Cody", "Carlos", "Allen", "Frederick", "Logan", "Curtis", "Alex", "Joel", "Luis", "Norman", "Marvin", "Glenn", "Tony", "Nathaniel", "Rodney", "Melvin", "Alfred", "Steve", "Cameron", "Chad", "Edwin", "Caleb", "Evan", "Antonio", "Lee", "Herbert", "Jeffery", "Isaac", "Derek", "Ricky", "Marcus", "Theodore", "Elijah", "Luke", "Jesus", "Eddie", "Troy", "Mike", "Dustin", "Ray", "Adrian", "Bernard", "Leroy", "Angel", "Randall", "Wesley", "Ian", "Jared", "Mason", "Hunter", "Calvin", "Oscar", "Clifford", "Jay", "Shane", "Ronnie", "Barry", "Lucas", "Corey", "Manuel", "Leo", "Tommy", "Warren", "Jackson", "Isaiah", "Connor", "Don", "Dean", "Jon", "Julian", "Miguel", "Bill", "Lloyd", "Charlie", "Mitchell", "Leon", "Jerome", "Darrell", "Jeremiah", "Alvin", "Brett", "Seth", "Floyd", "Jim", "Blake", "Micheal", "Gordon", "Trevor", "Lewis", "Erik", "Edgar", "Vernon", "Devin", "Gavin", "Jayden", "Chris", "Clyde", "Tom", "Derrick", "Mario", "Brent", "Marc", "Herman", "Chase", "Dominic", "Ricardo", "Franklin", "Maurice", "Max", "Aiden", "Owen", "Lester", "Gilbert", "Elmer", "Gene", "Francisco", "Glen", "Cory", "Garrett", "Clayton", "Sam", "Jorge", "Chester", "Alejandro", "Jeff", "Harvey", "Milton", "Cole", "Ivan", "Andre", "Duane", "Landon"],
"female": ["Mary", "Emma", "Elizabeth", "Minnie", "Margaret", "Ida", "Alice", "Bertha", "Sarah", "Annie", "Clara", "Ella", "Florence", "Cora", "Martha", "Laura", "Nellie", "Grace", "Carrie", "Maude", "Mabel", "Bessie", "Jennie", "Gertrude", "Julia", "Hattie", "Edith", "Mattie", "Rose", "Catherine", "Lillian", "Ada", "Lillie", "Helen", "Jessie", "Louise", "Ethel", "Lula", "Myrtle", "Eva", "Frances", "Lena", "Lucy", "Edna", "Maggie", "Pearl", "Daisy", "Fannie", "Josephine", "Dora", "Rosa", "Katherine", "Agnes", "Marie", "Nora", "May", "Mamie", "Blanche", "Stella", "Ellen", "Nancy", "Effie", "Sallie", "Nettie", "Della", "Lizzie", "Flora", "Susie", "Maud", "Mae", "Etta", "Harriet", "Sadie", "Caroline", "Katie", "Lydia", "Elsie", "Kate", "Susan", "Mollie", "Alma", "Addie", "Georgia", "Eliza", "Lulu", "Nannie", "Lottie", "Amanda", "Belle", "Charlotte", "Rebecca", "Ruth", "Viola", "Olive", "Amelia", "Hannah", "Jane", "Virginia", "Emily", "Matilda", "Irene", "Kathryn", "Esther", "Willie", "Henrietta", "Ollie", "Amy", "Rachel", "Sara", "Estella", "Theresa", "Augusta", "Ora", "Pauline", "Josie", "Lola", "Sophia", "Leona", "Anne", "Mildred", "Ann", "Beulah", "Callie", "Lou", "Delia", "Eleanor", "Barbara", "Iva", "Louisa", "Maria", "Mayme", "Evelyn", "Estelle", "Nina", "Betty", "Marion", "Bettie", "Dorothy", "Luella", "Inez", "Lela", "Rosie", "Allie", "Millie", "Janie", "Cornelia", "Victoria", "Ruby", "Winifred", "Alta", "Celia", "Christine", "Beatrice", "Birdie", "Harriett", "Mable", "Myra", "Sophie", "Tillie", "Isabel", "Sylvia", "Carolyn", "Isabelle", "Leila", "Sally", "Ina", "Essie", "Bertie", "Nell", "Alberta", "Katharine", "Lora", "Rena", "Mina", "Rhoda", "Mathilda", "Abbie", "Eula", "Dollie", "Hettie", "Eunice", "Fanny", "Ola", "Lenora", "Adelaide", "Christina", "Lelia", "Nelle", "Sue", "Johanna", "Lilly", "Lucinda", "Minerva", "Lettie", "Roxie", "Cynthia", "Helena", "Hilda", "Hulda", "Bernice", "Genevieve", "Jean", "Cordelia", "Marian", "Francis", "Jeanette", "Adeline", "Gussie", "Leah", "Lois", "Lura", "Mittie", "Hallie", "Isabella", "Olga", "Phoebe", "Teresa", "Hester", "Lida", "Lina", "Winnie", "Claudia", "Marguerite", "Vera", "Cecelia", "Bess", "Emilie", "John", "Rosetta", "Verna", "Myrtie", "Cecilia", "Elva", "Olivia", "Ophelia", "Georgie", "Elnora", "Violet", "Adele", "Lily", "Linnie", "Loretta", "Madge", "Polly", "Virgie", "Eugenia", "Lucile", "Lucille", "Mabelle", "Rosalie"]
};
Chance.prototype.first = function (options) {
options = initOptions(options, {gender: this.gender()});
return this.pick(firstNames[options.gender.toLowerCase()]);
};
Chance.prototype.gender = function () {
return this.pick(['Male', 'Female']);
};
var lastNames = ['Smith', 'Johnson', 'Williams', 'Jones', 'Brown', 'Davis', 'Miller', 'Wilson', 'Moore', 'Taylor', 'Anderson', 'Thomas', 'Jackson', 'White', 'Harris', 'Martin', 'Thompson', 'Garcia', 'Martinez', 'Robinson', 'Clark', 'Rodriguez', 'Lewis', 'Lee', 'Walker', 'Hall', 'Allen', 'Young', 'Hernandez', 'King', 'Wright', 'Lopez', 'Hill', 'Scott', 'Green', 'Adams', 'Baker', 'Gonzalez', 'Nelson', 'Carter', 'Mitchell', 'Perez', 'Roberts', 'Turner', 'Phillips', 'Campbell', 'Parker', 'Evans', 'Edwards', 'Collins', 'Stewart', 'Sanchez', 'Morris', 'Rogers', 'Reed', 'Cook', 'Morgan', 'Bell', 'Murphy', 'Bailey', 'Rivera', 'Cooper', 'Richardson', 'Cox', 'Howard', 'Ward', 'Torres', 'Peterson', 'Gray', 'Ramirez', 'James', 'Watson', 'Brooks', 'Kelly', 'Sanders', 'Price', 'Bennett', 'Wood', 'Barnes', 'Ross', 'Henderson', 'Coleman', 'Jenkins', 'Perry', 'Powell', 'Long', 'Patterson', 'Hughes', 'Flores', 'Washington', 'Butler', 'Simmons', 'Foster', 'Gonzales', 'Bryant', 'Alexander', 'Russell', 'Griffin', 'Diaz', 'Hayes', 'Myers', 'Ford', 'Hamilton', 'Graham', 'Sullivan', 'Wallace', 'Woods', 'Cole', 'West', 'Jordan', 'Owens', 'Reynolds', 'Fisher', 'Ellis', 'Harrison', 'Gibson', 'McDonald', 'Cruz', 'Marshall', 'Ortiz', 'Gomez', 'Murray', 'Freeman', 'Wells', 'Webb', 'Simpson', 'Stevens', 'Tucker', 'Porter', 'Hunter', 'Hicks', 'Crawford', 'Henry', 'Boyd', 'Mason', 'Morales', 'Kennedy', 'Warren', 'Dixon', 'Ramos', 'Reyes', 'Burns', 'Gordon', 'Shaw', 'Holmes', 'Rice', 'Robertson', 'Hunt', 'Black', 'Daniels', 'Palmer', 'Mills', 'Nichols', 'Grant', 'Knight', 'Ferguson', 'Rose', 'Stone', 'Hawkins', 'Dunn', 'Perkins', 'Hudson', 'Spencer', 'Gardner', 'Stephens', 'Payne', 'Pierce', 'Berry', 'Matthews', 'Arnold', 'Wagner', 'Willis', 'Ray', 'Watkins', 'Olson', 'Carroll', 'Duncan', 'Snyder', 'Hart', 'Cunningham', 'Bradley', 'Lane', 'Andrews', 'Ruiz', 'Harper', 'Fox', 'Riley', 'Armstrong', 'Carpenter', 'Weaver', 'Greene', 'Lawrence', 'Elliott', 'Chavez', 'Sims', 'Austin', 'Peters', 'Kelley', 'Franklin', 'Lawson', 'Fields', 'Gutierrez', 'Ryan', 'Schmidt', 'Carr', 'Vasquez', 'Castillo', 'Wheeler', 'Chapman', 'Oliver', 'Montgomery', 'Richards', 'Williamson', 'Johnston', 'Banks', 'Meyer', 'Bishop', 'McCoy', 'Howell', 'Alvarez', 'Morrison', 'Hansen', 'Fernandez', 'Garza', 'Harvey', 'Little', 'Burton', 'Stanley', 'Nguyen', 'George', 'Jacobs', 'Reid', 'Kim', 'Fuller', 'Lynch', 'Dean', 'Gilbert', 'Garrett', 'Romero', 'Welch', 'Larson', 'Frazier', 'Burke', 'Hanson', 'Day', 'Mendoza', 'Moreno', 'Bowman', 'Medina', 'Fowler', 'Brewer', 'Hoffman', 'Carlson', 'Silva', 'Pearson', 'Holland', 'Douglas', 'Fleming', 'Jensen', 'Vargas', 'Byrd', 'Davidson', 'Hopkins', 'May', 'Terry', 'Herrera', 'Wade', 'Soto', 'Walters', 'Curtis', 'Neal', 'Caldwell', 'Lowe', 'Jennings', 'Barnett', 'Graves', 'Jimenez', 'Horton', 'Shelton', 'Barrett', 'Obrien', 'Castro', 'Sutton', 'Gregory', 'McKinney', 'Lucas', 'Miles', 'Craig', 'Rodriquez', 'Chambers', 'Holt', 'Lambert', 'Fletcher', 'Watts', 'Bates', 'Hale', 'Rhodes', 'Pena', 'Beck', 'Newman', 'Haynes', 'McDaniel', 'Mendez', 'Bush', 'Vaughn', 'Parks', 'Dawson', 'Santiago', 'Norris', 'Hardy', 'Love', 'Steele', 'Curry', 'Powers', 'Schultz', 'Barker', 'Guzman', 'Page', 'Munoz', 'Ball', 'Keller', 'Chandler', 'Weber', 'Leonard', 'Walsh', 'Lyons', 'Ramsey', 'Wolfe', 'Schneider', 'Mullins', 'Benson', 'Sharp', 'Bowen', 'Daniel', 'Barber', 'Cummings', 'Hines', 'Baldwin', 'Griffith', 'Valdez', 'Hubbard', 'Salazar', 'Reeves', 'Warner', 'Stevenson', 'Burgess', 'Santos', 'Tate', 'Cross', 'Garner', 'Mann', 'Mack', 'Moss', 'Thornton', 'Dennis', 'McGee', 'Farmer', 'Delgado', 'Aguilar', 'Vega', 'Glover', 'Manning', 'Cohen', 'Harmon', 'Rodgers', 'Robbins', 'Newton', 'Todd', 'Blair', 'Higgins', 'Ingram', 'Reese', 'Cannon', 'Strickland', 'Townsend', 'Potter', 'Goodwin', 'Walton', 'Rowe', 'Hampton', 'Ortega', 'Patton', 'Swanson', 'Joseph', 'Francis', 'Goodman', 'Maldonado', 'Yates', 'Becker', 'Erickson', 'Hodges', 'Rios', 'Conner', 'Adkins', 'Webster', 'Norman', 'Malone', 'Hammond', 'Flowers', 'Cobb', 'Moody', 'Quinn', 'Blake', 'Maxwell', 'Pope', 'Floyd', 'Osborne', 'Paul', 'McCarthy', 'Guerrero', 'Lindsey', 'Estrada', 'Sandoval', 'Gibbs', 'Tyler', 'Gross', 'Fitzgerald', 'Stokes', 'Doyle', 'Sherman', 'Saunders', 'Wise', 'Colon', 'Gill', 'Alvarado', 'Greer', 'Padilla', 'Simon', 'Waters', 'Nunez', 'Ballard', 'Schwartz', 'McBride', 'Houston', 'Christensen', 'Klein', 'Pratt', 'Briggs', 'Parsons', 'McLaughlin', 'Zimmerman', 'French', 'Buchanan', 'Moran', 'Copeland', 'Roy', 'Pittman', 'Brady', 'McCormick', 'Holloway', 'Brock', 'Poole', 'Frank', 'Logan', 'Owen', 'Bass', 'Marsh', 'Drake', 'Wong', 'Jefferson', 'Park', 'Morton', 'Abbott', 'Sparks', 'Patrick', 'Norton', 'Huff', 'Clayton', 'Massey', 'Lloyd', 'Figueroa', 'Carson', 'Bowers', 'Roberson', 'Barton', 'Tran', 'Lamb', 'Harrington', 'Casey', 'Boone', 'Cortez', 'Clarke', 'Mathis', 'Singleton', 'Wilkins', 'Cain', 'Bryan', 'Underwood', 'Hogan', 'McKenzie', 'Collier', 'Luna', 'Phelps', 'McGuire', 'Allison', 'Bridges', 'Wilkerson', 'Nash', 'Summers', 'Atkins'];
Chance.prototype.last = function () {
return this.pick(lastNames);
};
Chance.prototype.name = function (options) {
options = initOptions(options);
var first = this.first(options),
last = this.last(),
name;
if (options.middle) {
name = first + ' ' + this.first(options) + ' ' + last;
} else if (options.middle_initial) {
name = first + ' ' + this.character({alpha: true, casing: 'upper'}) + '. ' + last;
} else {
name = first + ' ' + last;
}
if (options.prefix) {
name = this.prefix() + ' ' + name;
}
return name;
};
Chance.prototype.name_prefixes = function () {
return [
{name: 'Doctor', abbreviation: 'Dr.'},
{name: 'Miss', abbreviation: 'Miss'},
{name: 'Misses', abbreviation: 'Mrs.'},
{name: 'Mister', abbreviation: 'Mr.'}
];
};
// Alias for name_prefix
Chance.prototype.prefix = function (options) {
return this.name_prefix(options);
};
Chance.prototype.name_prefix = function (options) {
options = initOptions(options);
return options.full ?
this.pick(this.name_prefixes()).name :
this.pick(this.name_prefixes()).abbreviation;
};
// -- End Person --
// -- Web --
Chance.prototype.color = function (options) {
function gray(value, delimiter) {
return [value, value, value].join(delimiter || '');
}
options = initOptions(options, {format: this.pick(['hex', 'shorthex', 'rgb']), grayscale: false});
var isGrayscale = options.grayscale;
if (options.format === 'hex') {
return '#' + (isGrayscale ? gray(this.hash({length: 2})) : this.hash({length: 6}));
}
if (options.format === 'shorthex') {
return '#' + (isGrayscale ? gray(this.hash({length: 1})) : this.hash({length: 3}));
}
if (options.format === 'rgb') {
if (isGrayscale) {
return 'rgb(' + gray(this.natural({max: 255}), ',') + ')';
} else {
return 'rgb(' + this.natural({max: 255}) + ',' + this.natural({max: 255}) + ',' + this.natural({max: 255}) + ')';
}
}
throw new Error('Invalid format provided. Please provide one of "hex", "shorthex", or "rgb"');
};
Chance.prototype.domain = function (options) {
options = initOptions(options);
return this.word() + '.' + (options.tld || this.tld());
};
Chance.prototype.email = function (options) {
options = initOptions(options);
return this.word() + '@' + (options.domain || this.domain());
};
Chance.prototype.fbid = function () {
return parseInt('10000' + this.natural({max: 100000000000}), 10);
};
Chance.prototype.google_analytics = function () {
var account = this.pad(this.natural({max: 999999}), 6);
var property = this.pad(this.natural({max: 99}), 2);
return 'UA-' + account + '-' + property;
};
Chance.prototype.hashtag = function () {
return '#' + this.word();
};
Chance.prototype.ip = function () {
// Todo: This could return some reserved IPs. See http://vq.io/137dgYy
// this should probably be updated to account for that rare as it may be
return this.natural({max: 255}) + '.' +
this.natural({max: 255}) + '.' +
this.natural({max: 255}) + '.' +
this.natural({max: 255});
};
Chance.prototype.ipv6 = function () {
var ip_addr = "";
for (var i = 0; i < 8; i++) {
ip_addr += this.hash({length: 4}) + ':';
}
return ip_addr.substr(0, ip_addr.length - 1);
};
Chance.prototype.klout = function () {
return this.natural({min: 1, max: 99});
};
Chance.prototype.tlds = function () {
return ['com', 'org', 'edu', 'gov', 'co.uk', 'net', 'io'];
};
Chance.prototype.tld = function () {
return this.pick(this.tlds());
};
Chance.prototype.twitter = function () {
return '@' + this.word();
};
// -- End Web --
// -- Address --
Chance.prototype.address = function (options) {
options = initOptions(options);
return this.natural({min: 5, max: 2000}) + ' ' + this.street(options);
};
Chance.prototype.areacode = function (options) {
options = initOptions(options, {parens : true});
// Don't want area codes to start with 1, or have a 9 as the second digit
var areacode = this.natural({min: 2, max: 9}).toString() + this.natural({min: 0, max: 8}).toString() + this.natural({min: 0, max: 9}).toString();
return options.parens ? '(' + areacode + ')' : areacode;
};
Chance.prototype.city = function () {
return this.capitalize(this.word({syllables: 3}));
};
Chance.prototype.coordinates = function (options) {
options = initOptions(options);
return this.latitude(options) + ', ' + this.longitude(options);
};
Chance.prototype.geoJson = function (options) {
options = initOptions(options);
return this.latitude(options) + ', ' + this.longitude(options) + ', ' + this.altitude(options);
};
Chance.prototype.altitude = function (options) {
options = initOptions(options, {fixed : 5});
return this.floating({min: 0, max: 32736000, fixed: options.fixed});
};
Chance.prototype.depth = function (options) {
options = initOptions(options, {fixed: 5});
return this.floating({min: -35994, max: 0, fixed: options.fixed});
};
Chance.prototype.latitude = function (options) {
options = initOptions(options, {fixed: 5, min: -90, max: 90});
return this.floating({min: options.min, max: options.max, fixed: options.fixed});
};
Chance.prototype.longitude = function (options) {
options = initOptions(options, {fixed: 5, min: -180, max: 180});
return this.floating({min: options.min, max: options.max, fixed: options.fixed});
};
Chance.prototype.phone = function (options) {
options = initOptions(options, {formatted : true});
if (!options.formatted) {
options.parens = false;
}
var areacode = this.areacode(options).toString();
var exchange = this.natural({min: 2, max: 9}).toString() + this.natural({min: 0, max: 9}).toString() + this.natural({min: 0, max: 9}).toString();
var subscriber = this.natural({min: 1000, max: 9999}).toString(); // this could be random [0-9]{4}
return options.formatted ? areacode + ' ' + exchange + '-' + subscriber : areacode + exchange + subscriber;
};
Chance.prototype.postal = function () {
// Postal District
var pd = this.character({pool: "XVTSRPNKLMHJGECBA"});
// Forward Sortation Area (FSA)
var fsa = pd + this.natural({max: 9}) + this.character({alpha: true, casing: "upper"});
// Local Delivery Unut (LDU)
var ldu = this.natural({max: 9}) + this.character({alpha: true, casing: "upper"}) + this.natural({max: 9});
return fsa + " " + ldu;
};
Chance.prototype.provinces = function () {
return [
{name: 'Alberta', abbreviation: 'AB'},
{name: 'British Columbia', abbreviation: 'BC'},
{name: 'Manitoba', abbreviation: 'MB'},
{name: 'New Brunswick', abbreviation: 'NB'},
{name: 'Newfoundland and Labrador', abbreviation: 'NL'},
{name: 'Nova Scotia', abbreviation: 'NS'},
{name: 'Ontario', abbreviation: 'ON'},
{name: 'Prince Edward Island', abbreviation: 'PE'},
{name: 'Quebec', abbreviation: 'QC'},
{name: 'Saskatchewan', abbreviation: 'SK'},
// The case could be made that the following are not actually provinces
// since they are technically considered "territories" however they all
// look the same on an envelope!
{name: 'Northwest Territories', abbreviation: 'NT'},
{name: 'Nunavut', abbreviation: 'NU'},
{name: 'Yukon', abbreviation: 'YT'}
];
};
Chance.prototype.province = function (options) {
return (options && options.full) ?
this.pick(this.provinces()).name :
this.pick(this.provinces()).abbreviation;
};
Chance.prototype.radio = function (options) {
// Initial Letter (Typically Designated by Side of Mississippi River)
options = initOptions(options, {side : "?"});
var fl = "";
switch (options.side.toLowerCase()) {
case "east":
case "e":
fl = "W";
break;
case "west":
case "w":
fl = "K";
break;
default:
fl = this.character({pool: "KW"});
break;
}
return fl + this.character({alpha: true, casing: "upper"}) + this.character({alpha: true, casing: "upper"}) + this.character({alpha: true, casing: "upper"});
};
Chance.prototype.state = function (options) {
return (options && options.full) ?
this.pick(this.states()).name :
this.pick(this.states()).abbreviation;
};
Chance.prototype.states = function () {
return [
{name: 'Alabama', abbreviation: 'AL'},
{name: 'Alaska', abbreviation: 'AK'},
{name: 'American Samoa', abbreviation: 'AS'},
{name: 'Arizona', abbreviation: 'AZ'},
{name: 'Arkansas', abbreviation: 'AR'},
{name: 'Armed Forces Europe', abbreviation: 'AE'},
{name: 'Armed Forces Pacific', abbreviation: 'AP'},
{name: 'Armed Forces the Americas', abbreviation: 'AA'},
{name: 'California', abbreviation: 'CA'},
{name: 'Colorado', abbreviation: 'CO'},
{name: 'Connecticut', abbreviation: 'CT'},
{name: 'Delaware', abbreviation: 'DE'},
{name: 'District of Columbia', abbreviation: 'DC'},
{name: 'Federated States of Micronesia', abbreviation: 'FM'},
{name: 'Florida', abbreviation: 'FL'},
{name: 'Georgia', abbreviation: 'GA'},
{name: 'Guam', abbreviation: 'GU'},
{name: 'Hawaii', abbreviation: 'HI'},
{name: 'Idaho', abbreviation: 'ID'},
{name: 'Illinois', abbreviation: 'IL'},
{name: 'Indiana', abbreviation: 'IN'},
{name: 'Iowa', abbreviation: 'IA'},
{name: 'Kansas', abbreviation: 'KS'},
{name: 'Kentucky', abbreviation: 'KY'},
{name: 'Louisiana', abbreviation: 'LA'},
{name: 'Maine', abbreviation: 'ME'},
{name: 'Marshall Islands', abbreviation: 'MH'},
{name: 'Maryland', abbreviation: 'MD'},
{name: 'Massachusetts', abbreviation: 'MA'},
{name: 'Michigan', abbreviation: 'MI'},
{name: 'Minnesota', abbreviation: 'MN'},
{name: 'Mississippi', abbreviation: 'MS'},
{name: 'Missouri', abbreviation: 'MO'},
{name: 'Montana', abbreviation: 'MT'},
{name: 'Nebraska', abbreviation: 'NE'},
{name: 'Nevada', abbreviation: 'NV'},
{name: 'New Hampshire', abbreviation: 'NH'},
{name: 'New Jersey', abbreviation: 'NJ'},
{name: 'New Mexico', abbreviation: 'NM'},
{name: 'New York', abbreviation: 'NY'},
{name: 'North Carolina', abbreviation: 'NC'},
{name: 'North Dakota', abbreviation: 'ND'},
{name: 'Northern Mariana Islands', abbreviation: 'MP'},
{name: 'Ohio', abbreviation: 'OH'},
{name: 'Oklahoma', abbreviation: 'OK'},
{name: 'Oregon', abbreviation: 'OR'},
{name: 'Pennsylvania', abbreviation: 'PA'},
{name: 'Puerto Rico', abbreviation: 'PR'},
{name: 'Rhode Island', abbreviation: 'RI'},
{name: 'South Carolina', abbreviation: 'SC'},
{name: 'South Dakota', abbreviation: 'SD'},
{name: 'Tennessee', abbreviation: 'TN'},
{name: 'Texas', abbreviation: 'TX'},
{name: 'Utah', abbreviation: 'UT'},
{name: 'Vermont', abbreviation: 'VT'},
{name: 'Virgin Islands, U.S.', abbreviation: 'VI'},
{name: 'Virginia', abbreviation: 'VA'},
{name: 'Washington', abbreviation: 'WA'},
{name: 'West Virginia', abbreviation: 'WV'},
{name: 'Wisconsin', abbreviation: 'WI'},
{name: 'Wyoming', abbreviation: 'WY'}
];
};
Chance.prototype.street = function (options) {
options = initOptions(options);
var street = this.word({syllables: 2});
street = this.capitalize(street);
street += ' ';
street += options.short_suffix ?
this.street_suffix().abbreviation :
this.street_suffix().name;
return street;
};
Chance.prototype.street_suffix = function () {
return this.pick(this.street_suffixes());
};
Chance.prototype.street_suffixes = function () {
// These are the most common suffixes.
return [
{name: 'Avenue', abbreviation: 'Ave'},
{name: 'Boulevard', abbreviation: 'Blvd'},
{name: 'Center', abbreviation: 'Ctr'},
{name: 'Circle', abbreviation: 'Cir'},
{name: 'Court', abbreviation: 'Ct'},
{name: 'Drive', abbreviation: 'Dr'},
{name: 'Extension', abbreviation: 'Ext'},
{name: 'Glen', abbreviation: 'Gln'},
{name: 'Grove', abbreviation: 'Grv'},
{name: 'Heights', abbreviation: 'Hts'},
{name: 'Highway', abbreviation: 'Hwy'},
{name: 'Junction', abbreviation: 'Jct'},
{name: 'Key', abbreviation: 'Key'},
{name: 'Lane', abbreviation: 'Ln'},
{name: 'Loop', abbreviation: 'Loop'},
{name: 'Manor', abbreviation: 'Mnr'},
{name: 'Mill', abbreviation: 'Mill'},
{name: 'Park', abbreviation: 'Park'},
{name: 'Parkway', abbreviation: 'Pkwy'},
{name: 'Pass', abbreviation: 'Pass'},
{name: 'Path', abbreviation: 'Path'},
{name: 'Pike', abbreviation: 'Pike'},
{name: 'Place', abbreviation: 'Pl'},
{name: 'Plaza', abbreviation: 'Plz'},
{name: 'Point', abbreviation: 'Pt'},
{name: 'Ridge', abbreviation: 'Rdg'},
{name: 'River', abbreviation: 'Riv'},
{name: 'Road', abbreviation: 'Rd'},
{name: 'Square', abbreviation: 'Sq'},
{name: 'Street', abbreviation: 'St'},
{name: 'Terrace', abbreviation: 'Ter'},
{name: 'Trail', abbreviation: 'Trl'},
{name: 'Turnpike', abbreviation: 'Tpke'},
{name: 'View', abbreviation: 'Vw'},
{name: 'Way', abbreviation: 'Way'}
];
};
Chance.prototype.tv = function (options) {
return this.radio(options);
};
// Note: only returning US zip codes, internationalization will be a whole
// other beast to tackle at some point.
Chance.prototype.zip = function (options) {
var zip = "";
for (var i = 0; i < 5; i++) {
zip += this.natural({max: 9}).toString();
}
if (options && options.plusfour === true) {
zip += '-';
for (i = 0; i < 4; i++) {
zip += this.natural({max: 9}).toString();
}
}
return zip;
};
// -- End Address --
// -- Time
Chance.prototype.ampm = function () {
return this.bool() ? 'am' : 'pm';
};
Chance.prototype.date = function (options) {
var m = this.month({raw: true}),
date_string;
options = initOptions(options, {
year: parseInt(this.year(), 10),
// Necessary to subtract 1 because Date() 0-indexes month but not day or year
// for some reason.
month: m.numeric - 1,
day: this.natural({min: 1, max: m.days}),
hour: this.hour(),
minute: this.minute(),
second: this.second(),
millisecond: this.millisecond(),
american: true,
string: false
});
var date = new Date(options.year, options.month, options.day, options.hour, options.minute, options.second, options.millisecond);
if (options.american) {
// Adding 1 to the month is necessary because Date() 0-indexes
// months but not day for some odd reason.
date_string = (date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getFullYear();
} else {
date_string = date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear();
}
return options.string ? date_string : date;
};
Chance.prototype.hammertime = function (options) {
return this.date(options).getTime();
};
Chance.prototype.hour = function (options) {
options = initOptions(options);
var max = options.twentyfour ? 24 : 12;
return this.natural({min: 1, max: max});
};
Chance.prototype.millisecond = function () {
return this.natural({max: 999});
};
Chance.prototype.minute = Chance.prototype.second = function () {
return this.natural({max: 59});
};
Chance.prototype.month = function (options) {
options = initOptions(options);
var month = this.pick(this.months());
return options.raw ? month : month.name;
};
Chance.prototype.months = function () {
return [
{name: 'January', short_name: 'Jan', numeric: '01', days: 31},
// Not messing with leap years...
{name: 'February', short_name: 'Feb', numeric: '02', days: 28},
{name: 'March', short_name: 'Mar', numeric: '03', days: 31},
{name: 'April', short_name: 'Apr', numeric: '04', days: 30},
{name: 'May', short_name: 'May', numeric: '05', days: 31},
{name: 'June', short_name: 'Jun', numeric: '06', days: 30},
{name: 'July', short_name: 'Jul', numeric: '07', days: 31},
{name: 'August', short_name: 'Aug', numeric: '08', days: 31},
{name: 'September', short_name: 'Sep', numeric: '09', days: 30},
{name: 'October', short_name: 'Oct', numeric: '10', days: 31},
{name: 'November', short_name: 'Nov', numeric: '11', days: 30},
{name: 'December', short_name: 'Dec', numeric: '12', days: 31}
];
};
Chance.prototype.second = function () {
return this.natural({max: 59});
};
Chance.prototype.timestamp = function () {
return this.natural({min: 1, max: parseInt(new Date().getTime() / 1000, 10)});
};
Chance.prototype.year = function (options) {
// Default to current year as min if none specified
options = initOptions(options, {min: new Date().getFullYear()});
// Default to one century after current year as max if none specified
options.max = (typeof options.max !== "undefined") ? options.max : options.min + 100;
return this.natural(options).toString();
};
// -- End Time
// -- Finance --
Chance.prototype.cc = function (options) {
options = initOptions(options);
var type, number, to_generate, type_name;
type = (options.type) ?
this.cc_type({ name: options.type, raw: true }) :
this.cc_type({ raw: true });
number = type.prefix.split("");
to_generate = type.length - type.prefix.length - 1;
// Generates n - 1 digits
for (var i = 0; i < to_generate; i++) {
number.push(this.integer({min: 0, max: 9}));
}
// Generates the last digit according to Luhn algorithm
number.push(this.luhn_calculate(number.join("")));
return number.join("");
};
Chance.prototype.cc_types = function () {
// http://en.wikipedia.org/wiki/Bank_card_number#Issuer_identification_number_.28IIN.29
return [
{name: "American Express", short_name: 'amex', prefix: '34', length: 15},
{name: "Bankcard", short_name: 'bankcard', prefix: '5610', length: 16},
{name: "China UnionPay", short_name: 'chinaunion', prefix: '62', length: 16},
{name: "Diners Club Carte Blanche", short_name: 'dccarte', prefix: '300', length: 14},
{name: "Diners Club enRoute", short_name: 'dcenroute', prefix: '2014', length: 15},
{name: "Diners Club International", short_name: 'dcintl', prefix: '36', length: 14},
{name: "Diners Club United States & Canada", short_name: 'dcusc', prefix: '54', length: 16},
{name: "Discover Card", short_name: 'discover', prefix: '6011', length: 16},
{name: "InstaPayment", short_name: 'instapay', prefix: '637', length: 16},
{name: "JCB", short_name: 'jcb', prefix: '3528', length: 16},
{name: "Laser", short_name: 'laser', prefix: '6304', length: 16},
{name: "Maestro", short_name: 'maestro', prefix: '5018', length: 16},
{name: "Mastercard", short_name: 'mc', prefix: '51', length: 16},
{name: "Solo", short_name: 'solo', prefix: '6334', length: 16},
{name: "Switch", short_name: 'switch', prefix: '4903', length: 16},
{name: "Visa", short_name: 'visa', prefix: '4', length: 16},
{name: "Visa Electron", short_name: 'electron', prefix: '4026', length: 16}
];
};
Chance.prototype.cc_type = function (options) {
options = initOptions(options);
var types = this.cc_types(),
type = null;
if (options.name) {
for (var i = 0; i < types.length; i++) {
// Accept either name or short_name to specify card type
if (types[i].name === options.name || types[i].short_name === options.name) {
type = types[i];
break;
}
}
if (type === null) {
throw new Error("Credit card type '" + options.name + "'' is not supported");
}
} else {
type = this.pick(types);
}
return options.raw ? type : type.name;
};
Chance.prototype.dollar = function (options) {
// By default, a somewhat more sane max for dollar than all available numbers
options = initOptions(options, {max : 10000, min : 0});
var dollar = this.floating({min: options.min, max: options.max, fixed: 2}).toString(),
cents = dollar.split('.')[1];
if (cents === undefined) {
dollar += '.00';
} else if (cents.length < 2) {
dollar = dollar + '0';
}
if (dollar < 0) {
return '-$' + dollar.replace('-', '');
} else {
return '$' + dollar;
}
};
Chance.prototype.exp = function (options) {
options = initOptions(options);
var exp = {};
exp.year = this.exp_year();
// If the year is this year, need to ensure month is greater than the
// current month or this expiration will not be valid
if (exp.year === (new Date().getFullYear())) {
exp.month = this.exp_month({future: true});
} else {
exp.month = this.exp_month();
}
return options.raw ? exp : exp.month + '/' + exp.year;
};
Chance.prototype.exp_month = function (options) {
options = initOptions(options);
var month, month_int;
if (options.future) {
do {
month = this.month({raw: true}).numeric;
month_int = parseInt(month, 10);
} while (month_int < new Date().getMonth());
} else {
month = this.month({raw: true}).numeric;
}
return month;
};
Chance.prototype.exp_year = function () {
return this.year({max: new Date().getFullYear() + 10});
};
//return all world currency by ISO 4217
Chance.prototype.cur_types = function () {
return [
{'code' : 'AED', 'name' : 'United Arab Emirates Dirham'},
{'code' : 'AFN', 'name' : 'Afghanistan Afghani'},
{'code' : 'ALL', 'name' : 'Albania Lek'},
{'code' : 'AMD', 'name' : 'Armenia Dram'},
{'code' : 'ANG', 'name' : 'Netherlands Antilles Guilder'},
{'code' : 'AOA', 'name' : 'Angola Kwanza'},
{'code' : 'ARS', 'name' : 'Argentina Peso'},
{'code' : 'AUD', 'name' : 'Australia Dollar'},
{'code' : 'AWG', 'name' : 'Aruba Guilder'},
{'code' : 'AZN', 'name' : 'Azerbaijan New Manat'},
{'code' : 'BAM', 'name' : 'Bosnia and Herzegovina Convertible Marka'},
{'code' : 'BBD', 'name' : 'Barbados Dollar'},
{'code' : 'BDT', 'name' : 'Bangladesh Taka'},
{'code' : 'BGN', 'name' : 'Bulgaria Lev'},
{'code' : 'BHD', 'name' : 'Bahrain Dinar'},
{'code' : 'BIF', 'name' : 'Burundi Franc'},
{'code' : 'BMD', 'name' : 'Bermuda Dollar'},
{'code' : 'BND', 'name' : 'Brunei Darussalam Dollar'},
{'code' : 'BOB', 'name' : 'Bolivia Boliviano'},
{'code' : 'BRL', 'name' : 'Brazil Real'},
{'code' : 'BSD', 'name' : 'Bahamas Dollar'},
{'code' : 'BTN', 'name' : 'Bhutan Ngultrum'},
{'code' : 'BWP', 'name' : 'Botswana Pula'},
{'code' : 'BYR', 'name' : 'Belarus Ruble'},
{'code' : 'BZD', 'name' : 'Belize Dollar'},
{'code' : 'CAD', 'name' : 'Canada Dollar'},
{'code' : 'CDF', 'name' : 'Congo/Kinshasa Franc'},
{'code' : 'CHF', 'name' : 'Switzerland Franc'},
{'code' : 'CLP', 'name' : 'Chile Peso'},
{'code' : 'CNY', 'name' : 'China Yuan Renminbi'},
{'code' : 'COP', 'name' : 'Colombia Peso'},
{'code' : 'CRC', 'name' : 'Costa Rica Colon'},
{'code' : 'CUC', 'name' : 'Cuba Convertible Peso'},
{'code' : 'CUP', 'name' : 'Cuba Peso'},
{'code' : 'CVE', 'name' : 'Cape Verde Escudo'},
{'code' : 'CZK', 'name' : 'Czech Republic Koruna'},
{'code' : 'DJF', 'name' : 'Djibouti Franc'},
{'code' : 'DKK', 'name' : 'Denmark Krone'},
{'code' : 'DOP', 'name' : 'Dominican Republic Peso'},
{'code' : 'DZD', 'name' : 'Algeria Dinar'},
{'code' : 'EGP', 'name' : 'Egypt Pound'},
{'code' : 'ERN', 'name' : 'Eritrea Nakfa'},
{'code' : 'ETB', 'name' : 'Ethiopia Birr'},
{'code' : 'EUR', 'name' : 'Euro Member Countries'},
{'code' : 'FJD', 'name' : 'Fiji Dollar'},
{'code' : 'FKP', 'name' : 'Falkland Islands (Malvinas) Pound'},
{'code' : 'GBP', 'name' : 'United Kingdom Pound'},
{'code' : 'GEL', 'name' : 'Georgia Lari'},
{'code' : 'GGP', 'name' : 'Guernsey Pound'},
{'code' : 'GHS', 'name' : 'Ghana Cedi'},
{'code' : 'GIP', 'name' : 'Gibraltar Pound'},
{'code' : 'GMD', 'name' : 'Gambia Dalasi'},
{'code' : 'GNF', 'name' : 'Guinea Franc'},
{'code' : 'GTQ', 'name' : 'Guatemala Quetzal'},
{'code' : 'GYD', 'name' : 'Guyana Dollar'},
{'code' : 'HKD', 'name' : 'Hong Kong Dollar'},
{'code' : 'HNL', 'name' : 'Honduras Lempira'},
{'code' : 'HRK', 'name' : 'Croatia Kuna'},
{'code' : 'HTG', 'name' : 'Haiti Gourde'},
{'code' : 'HUF', 'name' : 'Hungary Forint'},
{'code' : 'IDR', 'name' : 'Indonesia Rupiah'},
{'code' : 'ILS', 'name' : 'Israel Shekel'},
{'code' : 'IMP', 'name' : 'Isle of Man Pound'},
{'code' : 'INR', 'name' : 'India Rupee'},
{'code' : 'IQD', 'name' : 'Iraq Dinar'},
{'code' : 'IRR', 'name' : 'Iran Rial'},
{'code' : 'ISK', 'name' : 'Iceland Krona'},
{'code' : 'JEP', 'name' : 'Jersey Pound'},
{'code' : 'JMD', 'name' : 'Jamaica Dollar'},
{'code' : 'JOD', 'name' : 'Jordan Dinar'},
{'code' : 'JPY', 'name' : 'Japan Yen'},
{'code' : 'KES', 'name' : 'Kenya Shilling'},
{'code' : 'KGS', 'name' : 'Kyrgyzstan Som'},
{'code' : 'KHR', 'name' : 'Cambodia Riel'},
{'code' : 'KMF', 'name' : 'Comoros Franc'},
{'code' : 'KPW', 'name' : 'Korea (North) Won'},
{'code' : 'KRW', 'name' : 'Korea (South) Won'},
{'code' : 'KWD', 'name' : 'Kuwait Dinar'},
{'code' : 'KYD', 'name' : 'Cayman Islands Dollar'},
{'code' : 'KZT', 'name' : 'Kazakhstan Tenge'},
{'code' : 'LAK', 'name' : 'Laos Kip'},
{'code' : 'LBP', 'name' : 'Lebanon Pound'},
{'code' : 'LKR', 'name' : 'Sri Lanka Rupee'},
{'code' : 'LRD', 'name' : 'Liberia Dollar'},
{'code' : 'LSL', 'name' : 'Lesotho Loti'},
{'code' : 'LTL', 'name' : 'Lithuania Litas'},
{'code' : 'LYD', 'name' : 'Libya Dinar'},
{'code' : 'MAD', 'name' : 'Morocco Dirham'},
{'code' : 'MDL', 'name' : 'Moldova Leu'},
{'code' : 'MGA', 'name' : 'Madagascar Ariary'},
{'code' : 'MKD', 'name' : 'Macedonia Denar'},
{'code' : 'MMK', 'name' : 'Myanmar (Burma) Kyat'},
{'code' : 'MNT', 'name' : 'Mongolia Tughrik'},
{'code' : 'MOP', 'name' : 'Macau Pataca'},
{'code' : 'MRO', 'name' : 'Mauritania Ouguiya'},
{'code' : 'MUR', 'name' : 'Mauritius Rupee'},
{'code' : 'MVR', 'name' : 'Maldives (Maldive Islands) Rufiyaa'},
{'code' : 'MWK', 'name' : 'Malawi Kwacha'},
{'code' : 'MXN', 'name' : 'Mexico Peso'},
{'code' : 'MYR', 'name' : 'Malaysia Ringgit'},
{'code' : 'MZN', 'name' : 'Mozambique Metical'},
{'code' : 'NAD', 'name' : 'Namibia Dollar'},
{'code' : 'NGN', 'name' : 'Nigeria Naira'},
{'code' : 'NIO', 'name' : 'Nicaragua Cordoba'},
{'code' : 'NOK', 'name' : 'Norway Krone'},
{'code' : 'NPR', 'name' : 'Nepal Rupee'},
{'code' : 'NZD', 'name' : 'New Zealand Dollar'},
{'code' : 'OMR', 'name' : 'Oman Rial'},
{'code' : 'PAB', 'name' : 'Panama Balboa'},
{'code' : 'PEN', 'name' : 'Peru Nuevo Sol'},
{'code' : 'PGK', 'name' : 'Papua New Guinea Kina'},
{'code' : 'PHP', 'name' : 'Philippines Peso'},
{'code' : 'PKR', 'name' : 'Pakistan Rupee'},
{'code' : 'PLN', 'name' : 'Poland Zloty'},
{'code' : 'PYG', 'name' : 'Paraguay Guarani'},
{'code' : 'QAR', 'name' : 'Qatar Riyal'},
{'code' : 'RON', 'name' : 'Romania New Leu'},
{'code' : 'RSD', 'name' : 'Serbia Dinar'},
{'code' : 'RUB', 'name' : 'Russia Ruble'},
{'code' : 'RWF', 'name' : 'Rwanda Franc'},
{'code' : 'SAR', 'name' : 'Saudi Arabia Riyal'},
{'code' : 'SBD', 'name' : 'Solomon Islands Dollar'},
{'code' : 'SCR', 'name' : 'Seychelles Rupee'},
{'code' : 'SDG', 'name' : 'Sudan Pound'},
{'code' : 'SEK', 'name' : 'Sweden Krona'},
{'code' : 'SGD', 'name' : 'Singapore Dollar'},
{'code' : 'SHP', 'name' : 'Saint Helena Pound'},
{'code' : 'SLL', 'name' : 'Sierra Leone Leone'},
{'code' : 'SOS', 'name' : 'Somalia Shilling'},
{'code' : 'SPL', 'name' : 'Seborga Luigino'},
{'code' : 'SRD', 'name' : 'Suriname Dollar'},
{'code' : 'STD', 'name' : 'São Tomé and PrÃncipe Dobra'},
{'code' : 'SVC', 'name' : 'El Salvador Colon'},
{'code' : 'SYP', 'name' : 'Syria Pound'},
{'code' : 'SZL', 'name' : 'Swaziland Lilangeni'},
{'code' : 'THB', 'name' : 'Thailand Baht'},
{'code' : 'TJS', 'name' : 'Tajikistan Somoni'},
{'code' : 'TMT', 'name' : 'Turkmenistan Manat'},
{'code' : 'TND', 'name' : 'Tunisia Dinar'},
{'code' : 'TOP', 'name' : 'Tonga Pa\'anga'},
{'code' : 'TRY', 'name' : 'Turkey Lira'},
{'code' : 'TTD', 'name' : 'Trinidad and Tobago Dollar'},
{'code' : 'TVD', 'name' : 'Tuvalu Dollar'},
{'code' : 'TWD', 'name' : 'Taiwan New Dollar'},
{'code' : 'TZS', 'name' : 'Tanzania Shilling'},
{'code' : 'UAH', 'name' : 'Ukraine Hryvnia'},
{'code' : 'UGX', 'name' : 'Uganda Shilling'},
{'code' : 'USD', 'name' : 'United States Dollar'},
{'code' : 'UYU', 'name' : 'Uruguay Peso'},
{'code' : 'UZS', 'name' : 'Uzbekistan Som'},
{'code' : 'VEF', 'name' : 'Venezuela Bolivar'},
{'code' : 'VND', 'name' : 'Viet Nam Dong'},
{'code' : 'VUV', 'name' : 'Vanuatu Vatu'},
{'code' : 'WST', 'name' : 'Samoa Tala'},
{'code' : 'XAF', 'name' : 'Communauté Financière Africaine (BEAC) CFA Franc BEAC'},
{'code' : 'XCD', 'name' : 'East Caribbean Dollar'},
{'code' : 'XDR', 'name' : 'International Monetary Fund (IMF) Special Drawing Rights'},
{'code' : 'XOF', 'name' : 'Communauté Financière Africaine (BCEAO) Franc'},
{'code' : 'XPF', 'name' : 'Comptoirs Français du Pacifique (CFP) Franc'},
{'code' : 'YER', 'name' : 'Yemen Rial'},
{'code' : 'ZAR', 'name' : 'South Africa Rand'},
{'code' : 'ZMW', 'name' : 'Zambia Kwacha'},
{'code' : 'ZWD', 'name' : 'Zimbabwe Dollar'}
];
};
//return random world currency by ISO 4217
Chance.prototype.cur = function () {
var _curs = this.cur_types();
return _curs[ this.integer({min: 0, max: (_curs.length-1)})];
};
//Return random correct currency exchange pair (e.g. EUR/USD) or array of currency code
Chance.prototype.cur_pairs = function (returnAsString) {
var _cur1 = this.cur(); //first currency
var _cur2 = null;
while(_cur2 == null)
{
_cur2 = this.cur();
if (_cur2 == _cur1)
_cur2 = null; //try to next cur
}
if (returnAsString)
return _cur1 + '/' + _cur2;
else
return [_cur1, _cur2];
};
// -- End Finance
// -- Miscellaneous --
// Dice - For all the board game geeks out there, myself included ;)
Chance.prototype.d4 = function () { return this.natural({min: 1, max: 4}); };
Chance.prototype.d6 = function () { return this.natural({min: 1, max: 6}); };
Chance.prototype.d8 = function () { return this.natural({min: 1, max: 8}); };
Chance.prototype.d10 = function () { return this.natural({min: 1, max: 10}); };
Chance.prototype.d12 = function () { return this.natural({min: 1, max: 12}); };
Chance.prototype.d20 = function () { return this.natural({min: 1, max: 20}); };
Chance.prototype.d30 = function () { return this.natural({min: 1, max: 30}); };
Chance.prototype.d100 = function () { return this.natural({min: 1, max: 100}); };
Chance.prototype.rpg = function (thrown, options) {
options = initOptions(options);
if (thrown === null) {
throw new Error("A type of die roll must be included");
} else {
var bits = thrown.toLowerCase().split("d"),
rolls = [];
if (bits.length !== 2 || !parseInt(bits[0], 10) || !parseInt(bits[1], 10)) {
throw new Error("Invalid format provided. Please provide #d# where the first # is the number of dice to roll, the second # is the max of each die");
}
for (var i = bits[0]; i > 0; i--) {
rolls[i - 1] = this.natural({min: 1, max: bits[1]});
}
return (typeof options.sum !== 'undefined' && options.sum) ? rolls.reduce(function (p, c) { return p + c; }) : rolls;
}
};
// Guid
Chance.prototype.guid = function (options) {
options = options || {version: 5};
var guid_pool = "ABCDEF1234567890",
variant_pool = "AB89",
guid = this.string({pool: guid_pool, length: 8}) + '-' +
this.string({pool: guid_pool, length: 4}) + '-' +
// The Version
options.version +
this.string({pool: guid_pool, length: 3}) + '-' +
// The Variant
this.string({pool: variant_pool, length: 1}) +
this.string({pool: guid_pool, length: 3}) + '-' +
this.string({pool: guid_pool, length: 12});
return guid;
};
// Hash
Chance.prototype.hash = function (options) {
options = initOptions(options, {length : 40, casing: 'lower'});
var pool = options.casing === 'upper' ? HEX_POOL.toUpperCase() : HEX_POOL;
return this.string({pool: pool, length: options.length});
};
Chance.prototype.luhn_check = function (num) {
var str = num.toString();
var checkDigit = +str.substring(str.length - 1);
return checkDigit === this.luhn_calculate(+str.substring(0, str.length - 1));
};
Chance.prototype.luhn_calculate = function (num) {
var digits = num.toString().split("").reverse();
var sum = 0;
for (var i = 0, l = digits.length; l > i; ++i) {
var digit = +digits[i];
if (i % 2 === 0) {
digit *= 2;
if (digit > 9) {
digit -= 9;
}
}
sum += digit;
}
return (sum * 9) % 10;
};
Chance.prototype.mersenne_twister = function (seed) {
return new MersenneTwister(seed);
};
// -- End Miscellaneous --
Chance.prototype.VERSION = "0.5.5";
// Mersenne Twister from https://gist.github.com/banksean/300494
var MersenneTwister = function (seed) {
if (seed === undefined) {
seed = new Date().getTime();
}
/* Period parameters */
this.N = 624;
this.M = 397;
this.MATRIX_A = 0x9908b0df; /* constant vector a */
this.UPPER_MASK = 0x80000000; /* most significant w-r bits */
this.LOWER_MASK = 0x7fffffff; /* least significant r bits */
this.mt = new Array(this.N); /* the array for the state vector */
this.mti = this.N + 1; /* mti==N + 1 means mt[N] is not initialized */
this.init_genrand(seed);
};
/* initializes mt[N] with a seed */
MersenneTwister.prototype.init_genrand = function (s) {
this.mt[0] = s >>> 0;
for (this.mti = 1; this.mti < this.N; this.mti++) {
s = this.mt[this.mti - 1] ^ (this.mt[this.mti - 1] >>> 30);
this.mt[this.mti] = (((((s & 0xffff0000) >>> 16) * 1812433253) << 16) + (s & 0x0000ffff) * 1812433253) + this.mti;
/* See Knuth TAOCP Vol2. 3rd Ed. P.106 for multiplier. */
/* In the previous versions, MSBs of the seed affect */
/* only MSBs of the array mt[]. */
/* 2002/01/09 modified by Makoto Matsumoto */
this.mt[this.mti] >>>= 0;
/* for >32 bit machines */
}
};
/* initialize by an array with array-length */
/* init_key is the array for initializing keys */
/* key_length is its length */
/* slight change for C++, 2004/2/26 */
MersenneTwister.prototype.init_by_array = function (init_key, key_length) {
var i = 1, j = 0, k, s;
this.init_genrand(19650218);
k = (this.N > key_length ? this.N : key_length);
for (; k; k--) {
s = this.mt[i - 1] ^ (this.mt[i - 1] >>> 30);
this.mt[i] = (this.mt[i] ^ (((((s & 0xffff0000) >>> 16) * 1664525) << 16) + ((s & 0x0000ffff) * 1664525))) + init_key[j] + j; /* non linear */
this.mt[i] >>>= 0; /* for WORDSIZE > 32 machines */
i++;
j++;
if (i >= this.N) { this.mt[0] = this.mt[this.N - 1]; i = 1; }
if (j >= key_length) { j = 0; }
}
for (k = this.N - 1; k; k--) {
s = this.mt[i - 1] ^ (this.mt[i - 1] >>> 30);
this.mt[i] = (this.mt[i] ^ (((((s & 0xffff0000) >>> 16) * 1566083941) << 16) + (s & 0x0000ffff) * 1566083941)) - i; /* non linear */
this.mt[i] >>>= 0; /* for WORDSIZE > 32 machines */
i++;
if (i >= this.N) { this.mt[0] = this.mt[this.N - 1]; i = 1; }
}
this.mt[0] = 0x80000000; /* MSB is 1; assuring non-zero initial array */
};
/* generates a random number on [0,0xffffffff]-interval */
MersenneTwister.prototype.genrand_int32 = function () {
var y;
var mag01 = new Array(0x0, this.MATRIX_A);
/* mag01[x] = x * MATRIX_A for x=0,1 */
if (this.mti >= this.N) { /* generate N words at one time */
var kk;
if (this.mti === this.N + 1) { /* if init_genrand() has not been called, */
this.init_genrand(5489); /* a default initial seed is used */
}
for (kk = 0; kk < this.N - this.M; kk++) {
y = (this.mt[kk]&this.UPPER_MASK)|(this.mt[kk + 1]&this.LOWER_MASK);
this.mt[kk] = this.mt[kk + this.M] ^ (y >>> 1) ^ mag01[y & 0x1];
}
for (;kk < this.N - 1; kk++) {
y = (this.mt[kk]&this.UPPER_MASK)|(this.mt[kk + 1]&this.LOWER_MASK);
this.mt[kk] = this.mt[kk + (this.M - this.N)] ^ (y >>> 1) ^ mag01[y & 0x1];
}
y = (this.mt[this.N - 1]&this.UPPER_MASK)|(this.mt[0]&this.LOWER_MASK);
this.mt[this.N - 1] = this.mt[this.M - 1] ^ (y >>> 1) ^ mag01[y & 0x1];
this.mti = 0;
}
y = this.mt[this.mti++];
/* Tempering */
y ^= (y >>> 11);
y ^= (y << 7) & 0x9d2c5680;
y ^= (y << 15) & 0xefc60000;
y ^= (y >>> 18);
return y >>> 0;
};
/* generates a random number on [0,0x7fffffff]-interval */
MersenneTwister.prototype.genrand_int31 = function () {
return (this.genrand_int32() >>> 1);
};
/* generates a random number on [0,1]-real-interval */
MersenneTwister.prototype.genrand_real1 = function () {
return this.genrand_int32() * (1.0 / 4294967295.0);
/* divided by 2^32-1 */
};
/* generates a random number on [0,1)-real-interval */
MersenneTwister.prototype.random = function () {
return this.genrand_int32() * (1.0 / 4294967296.0);
/* divided by 2^32 */
};
/* generates a random number on (0,1)-real-interval */
MersenneTwister.prototype.genrand_real3 = function () {
return (this.genrand_int32() + 0.5) * (1.0 / 4294967296.0);
/* divided by 2^32 */
};
/* generates a random number on [0,1) with 53-bit resolution*/
MersenneTwister.prototype.genrand_res53 = function () {
var a = this.genrand_int32()>>>5, b = this.genrand_int32()>>>6;
return (a * 67108864.0 + b) * (1.0 / 9007199254740992.0);
};
// CommonJS module
if (typeof exports !== 'undefined') {
if (typeof module !== 'undefined' && module.exports) {
exports = module.exports = Chance;
}
exports.Chance = Chance;
}
// Register as an anonymous AMD module
if (typeof define === 'function' && define.amd) {
define([], function () {
return Chance;
});
}
// If there is a window object, that at least has a document property,
// instantiate and define chance on the window
if (typeof window === "object" && typeof window.document === "object") {
window.Chance = Chance;
window.chance = new Chance();
}
})();
String.prototype.capitalize = function () {
return this.charAt(0).toUpperCase() + this.slice(1);
};
var View = Backbone.View.extend({
id : "demo",
initialize: function () {
this.subViews = [];
this.render();
},
events : {},
render : function () {
// must attach to dom before DT init
$("body").append(this.$el);
this.listView = new TableView({
$dom: this.$el
});
this.$el.html(this.listView.el);
this.listView.render();
this.subViews.push(this.listView);
return this;
},
close : function () {
_.each(this.subViews, function (subView) {
subView.close();
});
this.remove();
}
});
var TableView = Backbone.View.extend({
id : 'example',
tagName : 'table',
className : 'table',
initialize : function (options) {
this.$dom = options.$dom;
},
events : {
"click tbody td.clickable": "alertThis",
"click tbody td .checkbox": "checkThis"
},
render : function () {
this.getData();
return this.el;
},
getData : function () {
var self = this;
$.getJSON("data.json", function (dataSet) {
self.appendTable(dataSet);
});
},
showMessage: function (message) {
$.bootstrapGrowl(message, {
delay: 1000
});
},
alertThis : function (e) {
this.showMessage(JSON.stringify(this.DataTable.cell(e.target).data()));
},
checkThis : function (e) {
e.stopPropagation();
var $row = $(e.target).closest("tr");
this.showMessage("Checkbox checked: " + e.target.checked + "<br> Data: " + JSON.stringify(this.DataTable.row($row).data()));
},
/**
* Define headers and columns
*/
getColumns : function () {
var columns;
columns = [
{
"class" : "chkbox-td",
"data" : null,
"render" : function (data, type, row, meta) {
if (type === "display") {
return "<input type='checkbox'>";
}
return "";
},
"orderable": false
}, {
"title" : "RES.common.status",
"data" : "caStatusDesc",
"class" : "td-70",
"defaultContent": ""
}, {
"title" : "RES.common.partNo",
"data" : "partId",
"class" : "td-70",
"defaultContent": ""
}, {
"title" : "RES.parts.vendor",
"data" : "vendorNo",
"visible" : false,
"defaultContent": ""
}, {
"title" : "RES.parts.vmrs",
"data" : "vmrsCode",
"visible" : false,
"defaultContent": ""
}, {
"title" : "RES.parts.shortQuantity",
"data" : "quantity",
"class" : "td-50 text-center",
"defaultContent": ""
}, {
"title" : "RES.common.description",
"data" : "description",
"defaultContent": ""
}, {
"title" : "functionGroup",
"data" : "fgrp",
"defaultContent": ""
}, {
"title" : "notes",
"data" : "note",
"defaultContent": ""
}
];
return columns;
},
appendTable: function (dataSet) {
var scrollY,
$container,
object,
rowLength,
self;
self = this;
$container = this.$dom;
scrollY = $(window).height() - $container.offset().top - 150 + "px";
this.DataTable = this.$el.DataTable({
"data" : dataSet,
"columns" : this.getColumns(),
"scrollY" : scrollY,
"scrollCollapse": true,
"dom" : "CrftiS",
"stateSave" : true,
"deferRender" : true
});
},
close : function () {
if (this.DataTable) {
this.DataTable.destroy();
}
this.remove();
}
});
$(function () {
var appView = new View();
});
[
{
"rowNo" : 1,
"partCompany" : "VO",
"partId" : "20398660",
"description" : "side marking lamp",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/1/VO/20398660",
"vendorNo" : "VLE198 600; ",
"anyNotes" : false,
"note" : "355, Side lighting",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "355"
}, {
"rowNo" : 2,
"partCompany" : "VO",
"partId" : "20455208",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/2/VO/20455208",
"anyNotes" : false,
"note" : "355, Side lighting",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "355"
}, {
"rowNo" : 3,
"partCompany" : "VO",
"partId" : "20455209",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/3/VO/20455209",
"anyNotes" : false,
"note" : "355, Side lighting",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "355"
}, {
"rowNo" : 4,
"partCompany" : "VO",
"partId" : "20424066",
"description" : "Pressure switch; switch",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/4/VO/20424066",
"anyNotes" : false,
"note" : "364, Electrical items, direction indicator stalk, switch, flasher device, relay",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "364"
}, {
"rowNo" : 5,
"partCompany" : "VO",
"partId" : "20367942",
"description" : "wires",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/5/VO/20367942",
"anyNotes" : false,
"note" : "375, Cab cable system",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "375"
}, {
"rowNo" : 6,
"partCompany" : "VO",
"partId" : "20374662",
"description" : "relay",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/6/VO/20374662",
"anyNotes" : false,
"note" : "375, Cab cable system",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "375"
}, {
"rowNo" : 7,
"partCompany" : "VO",
"partId" : "20496285",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/7/VO/20496285",
"anyNotes" : false,
"note" : "375, Cab cable system",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "375"
}, {
"rowNo" : 8,
"partCompany" : "VO",
"partId" : "20545481",
"description" : "wires",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/8/VO/20545481",
"anyNotes" : false,
"note" : "375, Cab cable system",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "375"
}, {
"rowNo" : 9,
"partCompany" : "VO",
"partId" : "20368761",
"description" : "wires",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/9/VO/20368761",
"anyNotes" : false,
"note" : "376, Rear cable system",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "376"
}, {
"rowNo" : 10,
"partCompany" : "VO",
"partId" : "20466350",
"description" : "wires",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/10/VO/20466350",
"anyNotes" : false,
"note" : "37, Cables and fuses",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "377"
}, {
"rowNo" : 11,
"partCompany" : "VO",
"partId" : "20522823",
"description" : "wires",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/11/VO/20522823",
"anyNotes" : false,
"note" : "37, Cables and fuses",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "377"
}, {
"rowNo" : 12,
"partCompany" : "VO",
"partId" : "20456244",
"description" : "wires",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/12/VO/20456244",
"anyNotes" : false,
"note" : "37, Cables and fuses",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "377"
}, {
"rowNo" : 13,
"partCompany" : "VO",
"partId" : "20552754",
"description" : "wires",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/13/VO/20552754",
"anyNotes" : false,
"note" : "37, Cables and fuses",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "377"
}, {
"rowNo" : 14,
"partCompany" : "VO",
"partId" : "20508564",
"description" : "wires",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/14/VO/20508564",
"anyNotes" : false,
"note" : "37, Cables and fuses",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "377"
}, {
"rowNo" : 15,
"partCompany" : "VO",
"partId" : "20374498",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/15/VO/20374498",
"anyNotes" : false,
"note" : "37, Cables and fuses",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "377"
}, {
"rowNo" : 16,
"partCompany" : "VO",
"partId" : "20374498",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/16/VO/20374498",
"anyNotes" : false,
"note" : "37, Cables and fuses",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "377"
}, {
"rowNo" : 17,
"partCompany" : "VO",
"partId" : "20428158",
"description" : "cable tie",
"quantities" : [
{
"label" : "A",
"quantity": "5"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/17/VO/20428158",
"vendorNo" : "HLM14.1278; ",
"anyNotes" : false,
"note" : "37, Cables and fuses",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "377"
}, {
"rowNo" : 18,
"partCompany" : "VO",
"partId" : "3198280",
"description" : "retainer",
"quantities" : [
{
"label" : "A",
"quantity": "6"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/18/VO/3198280",
"anyNotes" : false,
"note" : "37, Cables and fuses",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "377"
}, {
"rowNo" : 19,
"partCompany" : "VO",
"partId" : "3198280",
"description" : "retainer",
"quantities" : [
{
"label" : "A",
"quantity": "6"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/19/VO/3198280",
"anyNotes" : false,
"note" : "37, Cables and fuses",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "377"
}, {
"rowNo" : 20,
"partCompany" : "VO",
"partId" : "3987609",
"description" : "retainer",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/20/VO/3987609",
"anyNotes" : false,
"note" : "37, Cables and fuses",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "377"
}, {
"rowNo" : 21,
"partCompany" : "VO",
"partId" : "20514065",
"description" : "sensor; high pressure",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/21/VO/20514065",
"anyNotes" : false,
"note" : "386, Sensor for indicator and warning systems",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "386"
}, {
"rowNo" : 22,
"partCompany" : "VO",
"partId" : "20514065",
"description" : "sensor",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/22/VO/20514065",
"anyNotes" : false,
"note" : "386, Sensor for indicator and warning systems",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "386"
}, {
"rowNo" : 23,
"partCompany" : "VO",
"partId" : "20466076",
"description" : "spring brake cylinder",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/23/VO/20466076",
"anyNotes" : false,
"note" : "511, Front wheel brakes",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "511"
}, {
"rowNo" : 24,
"partCompany" : "VO",
"partId" : "20466077",
"description" : "spring brake cylinder",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/24/VO/20466077",
"anyNotes" : false,
"note" : "511, Front wheel brakes",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "511"
}, {
"rowNo" : 25,
"partCompany" : "VO",
"partId" : "1076400",
"description" : "brake chamber",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/25/VO/1076400",
"anyNotes" : false,
"note" : "513, Trailing wheel brakes",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "513"
}, {
"rowNo" : 26,
"partCompany" : "VO",
"partId" : "1079435",
"description" : "flange screw",
"quantities" : [
{
"label" : "A",
"quantity": "12"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/26/VO/1079435",
"anyNotes" : false,
"note" : "513, Trailing wheel brakes",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "513"
}, {
"rowNo" : 27,
"partCompany" : "VO",
"partId" : "20383325",
"description" : "shield",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/27/VO/20383325",
"anyNotes" : false,
"note" : "513, Trailing wheel brakes",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "513"
}, {
"rowNo" : 28,
"partCompany" : "VO",
"partId" : "20383326",
"description" : "shield",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/28/VO/20383326",
"anyNotes" : false,
"note" : "513, Trailing wheel brakes",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "513"
}, {
"rowNo" : 29,
"partCompany" : "VO",
"partId" : "20442330",
"description" : "disc brake",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/29/VO/20442330",
"vendorNo" : "TDA68033233; ",
"anyNotes" : false,
"note" : "513, Trailing wheel brakes",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "513"
}, {
"rowNo" : 30,
"partCompany" : "VO",
"partId" : "20442331",
"description" : "disc brake",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/30/VO/20442331",
"vendorNo" : "TDA68033234; ",
"anyNotes" : false,
"note" : "513, Trailing wheel brakes",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "513"
}, {
"rowNo" : 31,
"partCompany" : "VO",
"partId" : "3171585",
"description" : "Plate",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/31/VO/3171585",
"anyNotes" : false,
"note" : "513, Trailing wheel brakes",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "513"
}, {
"rowNo" : 32,
"partCompany" : "VO",
"partId" : "20428938",
"description" : "modulator",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/32/VO/20428938",
"anyNotes" : false,
"note" : "563, Brake and other valves",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "563"
}, {
"rowNo" : 33,
"partCompany" : "VO",
"partId" : "20531279",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/33/VO/20531279",
"anyNotes" : false,
"note" : "563, Brake and other valves",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "563"
}, {
"rowNo" : 34,
"partCompany" : "VO",
"partId" : "20537056",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/34/VO/20537056",
"anyNotes" : false,
"note" : "563, Brake and other valves",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "563"
}, {
"rowNo" : 35,
"partCompany" : "VO",
"partId" : "20537058",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/35/VO/20537058",
"anyNotes" : false,
"note" : "563, Brake and other valves",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "563"
}, {
"rowNo" : 36,
"partCompany" : "VO",
"partId" : "1196335",
"description" : "air silencer",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/36/VO/1196335",
"vendorNo" : "BSH0 484 210 002; ",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 37,
"partCompany" : "VO",
"partId" : "1592924",
"description" : "test nipple",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/37/VO/1592924",
"vendorNo" : "WAB463 703 120 0; WAB890 158 305 0; ",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 38,
"partCompany" : "VO",
"partId" : "20428234",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/38/VO/20428234",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 39,
"partCompany" : "VO",
"partId" : "20555269",
"description" : "nipple",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/39/VO/20555269",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 40,
"partCompany" : "VO",
"partId" : "24424360",
"description" : "tube",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/40/VO/24424360",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 41,
"partCompany" : "VO",
"partId" : "3943357",
"description" : "fitting nut",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/41/VO/3943357",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 42,
"partCompany" : "VO",
"partId" : "8157866",
"description" : "nipple",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/42/VO/8157866",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 43,
"partCompany" : "VO",
"partId" : "3198280",
"description" : "retainer",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/43/VO/3198280",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 44,
"partCompany" : "VO",
"partId" : "3198280",
"description" : "retainer",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/44/VO/3198280",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 45,
"partCompany" : "VO",
"partId" : "3985511",
"description" : "retainer",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/45/VO/3985511",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 46,
"partCompany" : "VO",
"partId" : "3987609",
"description" : "retainer",
"quantities" : [
{
"label" : "A",
"quantity": "3"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/46/VO/3987609",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 47,
"partCompany" : "VO",
"partId" : "1196335",
"description" : "air silencer",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/47/VO/1196335",
"vendorNo" : "BSH0 484 210 002; ",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 48,
"partCompany" : "VO",
"partId" : "20374490",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/48/VO/20374490",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 49,
"partCompany" : "VO",
"partId" : "20374497",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/49/VO/20374497",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 50,
"partCompany" : "VO",
"partId" : "20374497",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/50/VO/20374497",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 51,
"partCompany" : "VO",
"partId" : "20374498",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/51/VO/20374498",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 52,
"partCompany" : "VO",
"partId" : "20374498",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/52/VO/20374498",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 53,
"partCompany" : "VO",
"partId" : "20456416",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/53/VO/20456416",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 54,
"partCompany" : "VO",
"partId" : "20505614",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/54/VO/20505614",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 55,
"partCompany" : "VO",
"partId" : "20512204",
"description" : "pipe retainer",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/55/VO/20512204",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 56,
"partCompany" : "VO",
"partId" : "3171844",
"description" : "connecting pipe",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/56/VO/3171844",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 57,
"partCompany" : "VO",
"partId" : "3198280",
"description" : "retainer",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/57/VO/3198280",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 58,
"partCompany" : "VO",
"partId" : "3198280",
"description" : "retainer",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/58/VO/3198280",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 59,
"partCompany" : "VO",
"partId" : "3987609",
"description" : "retainer",
"quantities" : [
{
"label" : "A",
"quantity": "8"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/59/VO/3987609",
"anyNotes" : false,
"note" : "565, Compressed-air line and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "565"
}, {
"rowNo" : 60,
"partCompany" : "VO",
"partId" : "20526768",
"description" : "sensor",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/60/VO/20526768",
"vendorNo" : "TDAA68325181; ",
"anyNotes" : false,
"note" : "593, Anti-lock brakes (ABS) (ABZ)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "593"
}, {
"rowNo" : 61,
"partCompany" : "VO",
"partId" : "20528660",
"description" : "sensor",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/61/VO/20528660",
"anyNotes" : false,
"note" : "593, Anti-lock brakes (ABS) (ABZ)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "593"
}, {
"rowNo" : 62,
"partCompany" : "VO",
"partId" : "20528661",
"description" : "sensor",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/62/VO/20528661",
"anyNotes" : false,
"note" : "593, Anti-lock brakes (ABS) (ABZ)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "593"
}, {
"rowNo" : 63,
"partCompany" : "VO",
"partId" : "20534389",
"description" : "sensor",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/63/VO/20534389",
"vendorNo" : "TDAA68325182; ",
"anyNotes" : false,
"note" : "593, Anti-lock brakes (ABS) (ABZ)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "593"
}, {
"rowNo" : 64,
"partCompany" : "VO",
"partId" : "20555374",
"description" : "Control unit",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/64/VO/20555374",
"anyNotes" : false,
"note" : "593, Anti-lock brakes (ABS) (ABZ)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "593"
}, {
"rowNo" : 65,
"partCompany" : "VO",
"partId" : "20399736",
"description" : "hydraulic cylinder",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/65/VO/20399736",
"anyNotes" : false,
"note" : "642, Steering gear",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "642"
}, {
"rowNo" : 66,
"partCompany" : "VO",
"partId" : "3985117",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/66/VO/3985117",
"anyNotes" : false,
"note" : "642, Steering gear",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "642"
}, {
"rowNo" : 67,
"partCompany" : "VO",
"partId" : "3987646",
"description" : "hydraulic cylinder",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/67/VO/3987646",
"vendorNo" : "ZFL8346 955 162; ",
"anyNotes" : false,
"note" : "642, Steering gear",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "642"
}, {
"rowNo" : 68,
"partCompany" : "VO",
"partId" : "3987648",
"description" : "ball joint",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/68/VO/3987648",
"vendorNo" : "LFM040 160 042 616; ",
"anyNotes" : false,
"note" : "642, Steering gear",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "642"
}, {
"rowNo" : 69,
"partCompany" : "VO",
"partId" : "20453022",
"description" : "pitman arm",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/69/VO/20453022",
"anyNotes" : false,
"note" : "643, Steering arm, tie rod and connections",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "643"
}, {
"rowNo" : 70,
"partCompany" : "VO",
"partId" : "1076493",
"description" : "mounting strap",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/70/VO/1076493",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 71,
"partCompany" : "VO",
"partId" : "20392612",
"description" : "hex. socket screw",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/71/VO/20392612",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 72,
"partCompany" : "VO",
"partId" : "20392612",
"description" : "hex. socket screw",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/72/VO/20392612",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 73,
"partCompany" : "VO",
"partId" : "20399734",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/73/VO/20399734",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 74,
"partCompany" : "VO",
"partId" : "20442742",
"description" : "decal",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/74/VO/20442742",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 75,
"partCompany" : "VO",
"partId" : "20482482",
"description" : "tandem pump",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/75/VO/20482482",
"vendorNo" : "ZFL8695 974 505; ",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 76,
"partCompany" : "VO",
"partId" : "20495075",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/76/VO/20495075",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 77,
"partCompany" : "VO",
"partId" : "3172778",
"description" : "oil reservoir",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/77/VO/3172778",
"vendorNo" : "ZFL7632 472 420; ",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 78,
"partCompany" : "VO",
"partId" : "3987649",
"description" : "pressure accumulator",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/78/VO/3987649",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 79,
"partCompany" : "VO",
"partId" : "8150740",
"description" : "stub",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/79/VO/8150740",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 80,
"partCompany" : "VO",
"partId" : "8150742",
"description" : "stub",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/80/VO/8150742",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 81,
"partCompany" : "VO",
"partId" : "8150742",
"description" : "stub",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/81/VO/8150742",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 82,
"partCompany" : "VO",
"partId" : "20392714",
"description" : "flow indicator",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/82/VO/20392714",
"vendorNo" : "ZFL7780 900 248; ",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 83,
"partCompany" : "VO",
"partId" : "3199156",
"description" : "solenoid valve",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/83/VO/3199156",
"vendorNo" : "ZFL0501 211 755; ",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 84,
"partCompany" : "VO",
"partId" : "1075025",
"description" : "attaching clamp",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/84/VO/1075025",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 85,
"partCompany" : "VO",
"partId" : "1544730",
"description" : "hose clamp",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/85/VO/1544730",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 86,
"partCompany" : "VO",
"partId" : "20382313",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "5"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/86/VO/20382313",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 87,
"partCompany" : "VO",
"partId" : "20382780",
"description" : "servo pipe",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/87/VO/20382780",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 88,
"partCompany" : "VO",
"partId" : "20382782",
"description" : "servo pipe",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/88/VO/20382782",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 89,
"partCompany" : "VO",
"partId" : "20382784",
"description" : "servo pipe",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/89/VO/20382784",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 90,
"partCompany" : "VO",
"partId" : "20390378",
"description" : "manifold",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/90/VO/20390378",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 91,
"partCompany" : "VO",
"partId" : "20424958",
"description" : "nipple",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/91/VO/20424958",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 92,
"partCompany" : "VO",
"partId" : "20424974",
"description" : "nipple",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/92/VO/20424974",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 93,
"partCompany" : "VO",
"partId" : "20427662",
"description" : "pipe",
"quantities" : [
{
"label" : "A",
"quantity": "3"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/93/VO/20427662",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 94,
"partCompany" : "VO",
"partId" : "20428952",
"description" : "servo pipe",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/94/VO/20428952",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 95,
"partCompany" : "VO",
"partId" : "20428954",
"description" : "servo pipe",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/95/VO/20428954",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 96,
"partCompany" : "VO",
"partId" : "20452316",
"description" : "servo pipe",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/96/VO/20452316",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 97,
"partCompany" : "VO",
"partId" : "20499286",
"description" : "hose",
"quantities" : [
{
"label" : "A",
"quantity": "3"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/97/VO/20499286",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 98,
"partCompany" : "VO",
"partId" : "20499287",
"description" : "hose",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/98/VO/20499287",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 99,
"partCompany" : "VO",
"partId" : "20499289",
"description" : "hose",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/99/VO/20499289",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 100,
"partCompany" : "VO",
"partId" : "20499290",
"description" : "hose",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/100/VO/20499290",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 101,
"partCompany" : "VO",
"partId" : "20499762",
"description" : "servo pipe",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/101/VO/20499762",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 102,
"partCompany" : "VO",
"partId" : "20518132",
"description" : "servo pipe",
"quantities" : [
{
"label" : "A",
"quantity": "3"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/102/VO/20518132",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 103,
"partCompany" : "VO",
"partId" : "20524376",
"description" : "servo pipe",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/103/VO/20524376",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 104,
"partCompany" : "VO",
"partId" : "20528924",
"description" : "servo pipe",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/104/VO/20528924",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 105,
"partCompany" : "VO",
"partId" : "20528926",
"description" : "servo pipe",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/105/VO/20528926",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 106,
"partCompany" : "VO",
"partId" : "3126671",
"description" : "reduction nipple",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/106/VO/3126671",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 107,
"partCompany" : "VO",
"partId" : "3172129",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/107/VO/3172129",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 108,
"partCompany" : "VO",
"partId" : "3173810",
"description" : "T-nipple",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/108/VO/3173810",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 109,
"partCompany" : "VO",
"partId" : "3985132",
"description" : "pipe",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/109/VO/3985132",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 110,
"partCompany" : "VO",
"partId" : "3985134",
"description" : "attaching clamp",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/110/VO/3985134",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 111,
"partCompany" : "VO",
"partId" : "8153879",
"description" : "attaching clamp",
"quantities" : [
{
"label" : "A",
"quantity": "10"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/111/VO/8153879",
"anyNotes" : false,
"note" : "645, Hydralic equipment incl. pump",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "645"
}, {
"rowNo" : 112,
"partCompany" : "VO",
"partId" : "1075914",
"description" : "nut retainer",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/112/VO/1075914",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 113,
"partCompany" : "VO",
"partId" : "1075914",
"description" : "nut retainer",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/113/VO/1075914",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 114,
"partCompany" : "VO",
"partId" : "1077922",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/114/VO/1077922",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 115,
"partCompany" : "VO",
"partId" : "1078240",
"description" : "sealing ring",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/115/VO/1078240",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 116,
"partCompany" : "VO",
"partId" : "1078240",
"description" : "sealing ring",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/116/VO/1078240",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 117,
"partCompany" : "VO",
"partId" : "1078564",
"description" : "cover",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/117/VO/1078564",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 118,
"partCompany" : "VO",
"partId" : "1078564",
"description" : "cover",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/118/VO/1078564",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 119,
"partCompany" : "VO",
"partId" : "1079491",
"description" : "flange screw",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/119/VO/1079491",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 120,
"partCompany" : "VO",
"partId" : "1079491",
"description" : "flange screw",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/120/VO/1079491",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 121,
"partCompany" : "VO",
"partId" : "1577510",
"description" : "flange nut",
"quantities" : [
{
"label" : "A",
"quantity": "4"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/121/VO/1577510",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 122,
"partCompany" : "VO",
"partId" : "20374498",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/122/VO/20374498",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 123,
"partCompany" : "VO",
"partId" : "20374498",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/123/VO/20374498",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 124,
"partCompany" : "VO",
"partId" : "20374947",
"description" : "bump stop",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/124/VO/20374947",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 125,
"partCompany" : "VO",
"partId" : "20390762",
"description" : "steering arm",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/125/VO/20390762",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 126,
"partCompany" : "VO",
"partId" : "20390834",
"description" : "king pin",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/126/VO/20390834",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 127,
"partCompany" : "VO",
"partId" : "20392191",
"description" : "Steering arm",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/127/VO/20392191",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 128,
"partCompany" : "VO",
"partId" : "20393739",
"description" : "anchorage",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/128/VO/20393739",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 129,
"partCompany" : "VO",
"partId" : "20399022",
"description" : "U-bolt",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/129/VO/20399022",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 130,
"partCompany" : "VO",
"partId" : "20399023",
"description" : "U-bolt",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/130/VO/20399023",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 131,
"partCompany" : "VO",
"partId" : "20399428",
"description" : "cover",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/131/VO/20399428",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 132,
"partCompany" : "VO",
"partId" : "20399428",
"description" : "cover",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/132/VO/20399428",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 133,
"partCompany" : "VO",
"partId" : "20399543",
"description" : "track rod",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/133/VO/20399543",
"vendorNo" : "LFM040 360 397 616; ",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 134,
"partCompany" : "VO",
"partId" : "20410530",
"description" : "reaction rod",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/134/VO/20410530",
"vendorNo" : "LFM062 360 028 616; ",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 135,
"partCompany" : "VO",
"partId" : "20424455",
"description" : "flange screw",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/135/VO/20424455",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 136,
"partCompany" : "VO",
"partId" : "20427685",
"description" : "stud",
"quantities" : [
{
"label" : "A",
"quantity": "4"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/136/VO/20427685",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 137,
"partCompany" : "VO",
"partId" : "20428752",
"description" : "air spring member",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/137/VO/20428752",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 138,
"partCompany" : "VO",
"partId" : "20428753",
"description" : "air spring member",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/138/VO/20428753",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 139,
"partCompany" : "VO",
"partId" : "20455920",
"description" : "steering knuckle",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/139/VO/20455920",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 140,
"partCompany" : "VO",
"partId" : "20466214",
"description" : "trailing wheel axle",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/140/VO/20466214",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 141,
"partCompany" : "VO",
"partId" : "20556608",
"description" : "V-stay",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/141/VO/20556608",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 142,
"partCompany" : "VO",
"partId" : "20560738",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/142/VO/20560738",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 143,
"partCompany" : "VO",
"partId" : "3173772",
"description" : "bearing",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/143/VO/3173772",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 144,
"partCompany" : "VO",
"partId" : "3173772",
"description" : "bearing",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/144/VO/3173772",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 145,
"partCompany" : "VO",
"partId" : "3173774",
"description" : "sealing ring",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/145/VO/3173774",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 146,
"partCompany" : "VO",
"partId" : "3173774",
"description" : "sealing ring",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/146/VO/3173774",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 147,
"partCompany" : "VO",
"partId" : "3173775",
"description" : "bushing",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/147/VO/3173775",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 148,
"partCompany" : "VO",
"partId" : "3173775",
"description" : "bushing",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/148/VO/3173775",
"anyNotes" : false,
"note" : "655, Bogie suspension",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "655"
}, {
"rowNo" : 149,
"partCompany" : "VO",
"partId" : "20367017",
"description" : "lifting strap",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/149/VO/20367017",
"anyNotes" : false,
"note" : "657, Bogie lift",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "657"
}, {
"rowNo" : 150,
"partCompany" : "VO",
"partId" : "20367018",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/150/VO/20367018",
"anyNotes" : false,
"note" : "657, Bogie lift",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "657"
}, {
"rowNo" : 151,
"partCompany" : "VO",
"partId" : "20453250",
"description" : "bellows plate",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/151/VO/20453250",
"anyNotes" : false,
"note" : "657, Bogie lift",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "657"
}, {
"rowNo" : 152,
"partCompany" : "VO",
"partId" : "20456152",
"description" : "air spring",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/152/VO/20456152",
"anyNotes" : false,
"note" : "657, Bogie lift",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "657"
}, {
"rowNo" : 153,
"partCompany" : "VO",
"partId" : "1625099",
"description" : "frame reinforcement",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/153/VO/1625099",
"anyNotes" : false,
"note" : "711, Complete frame",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "711"
}, {
"rowNo" : 154,
"partCompany" : "VO",
"partId" : "1625699",
"description" : "side member",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/154/VO/1625699",
"anyNotes" : false,
"note" : "711, Complete frame",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "711"
}, {
"rowNo" : 155,
"partCompany" : "VO",
"partId" : "20446515",
"description" : "cross member",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/155/VO/20446515",
"anyNotes" : false,
"note" : "711, Complete frame",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "711"
}, {
"rowNo" : 156,
"partCompany" : "VO",
"partId" : "20466872",
"description" : "cross member",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/156/VO/20466872",
"anyNotes" : false,
"note" : "711, Complete frame",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "711"
}, {
"rowNo" : 157,
"partCompany" : "VO",
"partId" : "20495358",
"description" : "cross member",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/157/VO/20495358",
"anyNotes" : false,
"note" : "711, Complete frame",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "711"
}, {
"rowNo" : 158,
"partCompany" : "VO",
"partId" : "20375331",
"description" : "saddle",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/158/VO/20375331",
"anyNotes" : false,
"note" : "721, Front spring leaf",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "721"
}, {
"rowNo" : 159,
"partCompany" : "VO",
"partId" : "20410186",
"description" : "saddle",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/159/VO/20410186",
"anyNotes" : false,
"note" : "721, Front spring leaf",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "721"
}, {
"rowNo" : 160,
"partCompany" : "VO",
"partId" : "20442558",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/160/VO/20442558",
"anyNotes" : false,
"note" : "721, Front spring leaf",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "721"
}, {
"rowNo" : 161,
"partCompany" : "VO",
"partId" : "3986294",
"description" : "spacer",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/161/VO/3986294",
"anyNotes" : false,
"note" : "721, Front spring leaf",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "721"
}, {
"rowNo" : 162,
"partCompany" : "VO",
"partId" : "3987325",
"description" : "U-bolt",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/162/VO/3987325",
"anyNotes" : false,
"note" : "721, Front spring leaf",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "721"
}, {
"rowNo" : 163,
"partCompany" : "VO",
"partId" : "3987326",
"description" : "U-bolt",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/163/VO/3987326",
"anyNotes" : false,
"note" : "721, Front spring leaf",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "721"
}, {
"rowNo" : 164,
"partCompany" : "VO",
"partId" : "20374498",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/164/VO/20374498",
"anyNotes" : false,
"note" : "726, Rear spring, hydraulic, gas, air suspension and bellows",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "726"
}, {
"rowNo" : 165,
"partCompany" : "VO",
"partId" : "20374498",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/165/VO/20374498",
"anyNotes" : false,
"note" : "726, Rear spring, hydraulic, gas, air suspension and bellows",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "726"
}, {
"rowNo" : 166,
"partCompany" : "VO",
"partId" : "20456150",
"description" : "air spring",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/166/VO/20456150",
"anyNotes" : false,
"note" : "726, Rear spring, hydraulic, gas, air suspension and bellows",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "726"
}, {
"rowNo" : 167,
"partCompany" : "VO",
"partId" : "20456152",
"description" : "air spring",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/167/VO/20456152",
"anyNotes" : false,
"note" : "726, Rear spring, hydraulic, gas, air suspension and bellows",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "726"
}, {
"rowNo" : 168,
"partCompany" : "VO",
"partId" : "20493585",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/168/VO/20493585",
"anyNotes" : false,
"note" : "728, Spring control equipment, front and rear valves",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "728"
}, {
"rowNo" : 169,
"partCompany" : "VO",
"partId" : "9955466",
"description" : "solenoid valve",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/169/VO/9955466",
"vendorNo" : "BSH0 501 100 037; ",
"anyNotes" : false,
"note" : "728, Spring control equipment, front and rear valves",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "728"
}, {
"rowNo" : 170,
"partCompany" : "VO",
"partId" : "20374546",
"description" : "shock absorber",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/170/VO/20374546",
"anyNotes" : false,
"note" : "761, Shock absorbers",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "761"
}, {
"rowNo" : 171,
"partCompany" : "VO",
"partId" : "3197808",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/171/VO/3197808",
"anyNotes" : false,
"note" : "761, Shock absorbers",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "761"
}, {
"rowNo" : 172,
"partCompany" : "VO",
"partId" : "20374543",
"description" : "shock absorber",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/172/VO/20374543",
"anyNotes" : false,
"note" : "761, Shock absorbers",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "761"
}, {
"rowNo" : 173,
"partCompany" : "VO",
"partId" : "20492534",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/173/VO/20492534",
"anyNotes" : false,
"note" : "761, Shock absorbers",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "761"
}, {
"rowNo" : 174,
"partCompany" : "VO",
"partId" : "1079482",
"description" : "support",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/174/VO/1079482",
"anyNotes" : false,
"note" : "762, Anti-roll bars",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "762"
}, {
"rowNo" : 175,
"partCompany" : "VO",
"partId" : "20443065",
"description" : "stay",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/175/VO/20443065",
"anyNotes" : false,
"note" : "762, Anti-roll bars",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "762"
}, {
"rowNo" : 176,
"partCompany" : "VO",
"partId" : "20452123",
"description" : "support",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/176/VO/20452123",
"anyNotes" : false,
"note" : "762, Anti-roll bars",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "762"
}, {
"rowNo" : 177,
"partCompany" : "VO",
"partId" : "20452330",
"description" : "bushing",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/177/VO/20452330",
"anyNotes" : false,
"note" : "762, Anti-roll bars",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "762"
}, {
"rowNo" : 178,
"partCompany" : "VO",
"partId" : "20452332",
"description" : "anti-roll bar",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/178/VO/20452332",
"anyNotes" : false,
"note" : "762, Anti-roll bars",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "762"
}, {
"rowNo" : 179,
"partCompany" : "VO",
"partId" : "20512965",
"description" : "stay",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/179/VO/20512965",
"anyNotes" : false,
"note" : "762, Anti-roll bars",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "762"
}, {
"rowNo" : 180,
"partCompany" : "VO",
"partId" : "20512966",
"description" : "stay",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/180/VO/20512966",
"anyNotes" : false,
"note" : "762, Anti-roll bars",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "762"
}, {
"rowNo" : 181,
"partCompany" : "VO",
"partId" : "1076336",
"description" : "hex. socket screw",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/181/VO/1076336",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 182,
"partCompany" : "VO",
"partId" : "1076336",
"description" : "hex. socket screw",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/182/VO/1076336",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 183,
"partCompany" : "VO",
"partId" : "1611576",
"description" : "symbol lens",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/183/VO/1611576",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 184,
"partCompany" : "VO",
"partId" : "1629367",
"description" : "mounting strap",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/184/VO/1629367",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 185,
"partCompany" : "VO",
"partId" : "20374910",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/185/VO/20374910",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 186,
"partCompany" : "VO",
"partId" : "20485246",
"description" : "air tank",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/186/VO/20485246",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 187,
"partCompany" : "VO",
"partId" : "20485247",
"description" : "air tank",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/187/VO/20485247",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 188,
"partCompany" : "VO",
"partId" : "24424792",
"description" : "lock brace",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/188/VO/24424792",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 189,
"partCompany" : "VO",
"partId" : "24426556",
"description" : "arm",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/189/VO/24426556",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 190,
"partCompany" : "VO",
"partId" : "24426557",
"description" : "arm",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/190/VO/24426557",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 191,
"partCompany" : "VO",
"partId" : "8150740",
"description" : "stub",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/191/VO/8150740",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 192,
"partCompany" : "VO",
"partId" : "8150742",
"description" : "stub",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/192/VO/8150742",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 193,
"partCompany" : "VO",
"partId" : "8150742",
"description" : "stub",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/193/VO/8150742",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 194,
"partCompany" : "VO",
"partId" : "8157754",
"description" : "Switch",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/194/VO/8157754",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 195,
"partCompany" : "VO",
"partId" : "1081328",
"description" : "drain valve",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/195/VO/1081328",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 196,
"partCompany" : "VO",
"partId" : "1082480",
"description" : "test nipple",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/196/VO/1082480",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 197,
"partCompany" : "VO",
"partId" : "1592924",
"description" : "test nipple",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/197/VO/1592924",
"vendorNo" : "WAB463 703 120 0; WAB890 158 305 0; ",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 198,
"partCompany" : "VO",
"partId" : "20374497",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/198/VO/20374497",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 199,
"partCompany" : "VO",
"partId" : "20374497",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/199/VO/20374497",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 200,
"partCompany" : "VO",
"partId" : "20499796",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/200/VO/20499796",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 201,
"partCompany" : "VO",
"partId" : "3198280",
"description" : "retainer",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/201/VO/3198280",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 202,
"partCompany" : "VO",
"partId" : "3198280",
"description" : "retainer",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/202/VO/3198280",
"anyNotes" : false,
"note" : "764, Level control (separate systems)",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "764"
}, {
"rowNo" : 203,
"partCompany" : "VO",
"partId" : "20520766",
"description" : "disc wheel",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/203/VO/20520766",
"anyNotes" : false,
"note" : "771, Wheel and wheel trim",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "771"
}, {
"rowNo" : 204,
"partCompany" : "VO",
"partId" : "3960615",
"description" : "tyre",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/204/VO/3960615",
"anyNotes" : false,
"note" : "772, Tyre, inner tube",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "772"
}, {
"rowNo" : 205,
"partCompany" : "VO",
"partId" : "1076701",
"description" : "safety washer",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/205/VO/1076701",
"anyNotes" : false,
"note" : "773, Hub and bearing",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "773"
}, {
"rowNo" : 206,
"partCompany" : "VO",
"partId" : "1076701",
"description" : "safety washer",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/206/VO/1076701",
"anyNotes" : false,
"note" : "773, Hub and bearing",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "773"
}, {
"rowNo" : 207,
"partCompany" : "VO",
"partId" : "20424598",
"description" : "lock nut",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/207/VO/20424598",
"anyNotes" : false,
"note" : "773, Hub and bearing",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "773"
}, {
"rowNo" : 208,
"partCompany" : "VO",
"partId" : "20516401",
"description" : "hub",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/208/VO/20516401",
"anyNotes" : false,
"note" : "773, Hub and bearing",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "773"
}, {
"rowNo" : 209,
"partCompany" : "VO",
"partId" : "3987821",
"description" : "Sealing ring",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/209/VO/3987821",
"anyNotes" : false,
"note" : "773, Hub and bearing",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "773"
}, {
"rowNo" : 210,
"partCompany" : "VO",
"partId" : "3988672",
"description" : "hub cover",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/210/VO/3988672",
"anyNotes" : false,
"note" : "773, Hub and bearing",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "773"
}, {
"rowNo" : 211,
"partCompany" : "VO",
"partId" : "3988672",
"description" : "hub cover",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/211/VO/3988672",
"anyNotes" : false,
"note" : "773, Hub and bearing",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "773"
}, {
"rowNo" : 212,
"partCompany" : "VO",
"partId" : "3943983",
"description" : "cap plug",
"quantities" : [
{
"label" : "A",
"quantity": "20"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/212/VO/3943983",
"anyNotes" : false,
"note" : "774, Spacer and fastener",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "774"
}, {
"rowNo" : 213,
"partCompany" : "VO",
"partId" : "3988730",
"description" : "protecting ring",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/213/VO/3988730",
"anyNotes" : false,
"note" : "774, Spacer and fastener",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "774"
}, {
"rowNo" : 214,
"partCompany" : "VO",
"partId" : "20467268",
"description" : "moulding",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/214/VO/20467268",
"anyNotes" : false,
"note" : "841, Exterior trim moulding, emblem, reflector, rear view mirror",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "841"
}, {
"rowNo" : 215,
"partCompany" : "VO",
"partId" : "20467269",
"description" : "moulding",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/215/VO/20467269",
"anyNotes" : false,
"note" : "841, Exterior trim moulding, emblem, reflector, rear view mirror",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "841"
}, {
"rowNo" : 216,
"partCompany" : "VO",
"partId" : "20392770",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/216/VO/20392770",
"anyNotes" : false,
"note" : "865, Engine encapsulation, noise supression",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "865"
}, {
"rowNo" : 217,
"partCompany" : "VO",
"partId" : "20392774",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/217/VO/20392774",
"anyNotes" : false,
"note" : "865, Engine encapsulation, noise supression",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "865"
}, {
"rowNo" : 218,
"partCompany" : "VO",
"partId" : "20399440",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/218/VO/20399440",
"anyNotes" : false,
"note" : "865, Engine encapsulation, noise supression",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "865"
}, {
"rowNo" : 219,
"partCompany" : "VO",
"partId" : "20428058",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/219/VO/20428058",
"anyNotes" : false,
"note" : "865, Engine encapsulation, noise supression",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "865"
}, {
"rowNo" : 220,
"partCompany" : "VO",
"partId" : "20476614",
"description" : "noise shield",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/220/VO/20476614",
"anyNotes" : false,
"note" : "865, Engine encapsulation, noise supression",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "865"
}, {
"rowNo" : 221,
"partCompany" : "VO",
"partId" : "20410091",
"description" : "decal",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/221/VO/20410091",
"anyNotes" : false,
"note" : "897, Instruction and information plates",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "897"
}, {
"rowNo" : 222,
"partCompany" : "VO",
"partId" : "20506980",
"quantities" : [
{
"label" : "A",
"quantity": "1"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/222/VO/20506980",
"anyNotes" : false,
"note" : "897, Instruction and information plates",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "897"
}, {
"rowNo" : 223,
"partCompany" : "VO",
"partId" : "1079980",
"description" : "closure",
"quantities" : [
{
"label" : "A",
"quantity": "4"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/223/VO/1079980",
"anyNotes" : false,
"note" : "922, Fifth wheel, towing hitch with connectous",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "922"
}, {
"rowNo" : 224,
"partCompany" : "VO",
"partId" : "1079992",
"description" : "wedge",
"quantities" : [
{
"label" : "A",
"quantity": "8"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/224/VO/1079992",
"anyNotes" : false,
"note" : "922, Fifth wheel, towing hitch with connectous",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "922"
}, {
"rowNo" : 225,
"partCompany" : "VO",
"partId" : "1079997",
"description" : "wheel arch liner",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/225/VO/1079997",
"anyNotes" : false,
"note" : "922, Fifth wheel, towing hitch with connectous",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "922"
}, {
"rowNo" : 226,
"partCompany" : "VO",
"partId" : "20379626",
"description" : "spacer sleeve",
"quantities" : [
{
"label" : "A",
"quantity": "8"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/226/VO/20379626",
"anyNotes" : false,
"note" : "922, Fifth wheel, towing hitch with connectous",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "922"
}, {
"rowNo" : 227,
"partCompany" : "VO",
"partId" : "20382890",
"description" : "bracket",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/227/VO/20382890",
"anyNotes" : false,
"note" : "922, Fifth wheel, towing hitch with connectous",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "922"
}, {
"rowNo" : 228,
"partCompany" : "VO",
"partId" : "20383038",
"description" : "wedge",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/228/VO/20383038",
"anyNotes" : false,
"note" : "922, Fifth wheel, towing hitch with connectous",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "922"
}, {
"rowNo" : 229,
"partCompany" : "VO",
"partId" : "20466894",
"description" : "stay",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/229/VO/20466894",
"anyNotes" : false,
"note" : "922, Fifth wheel, towing hitch with connectous",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "922"
}, {
"rowNo" : 230,
"partCompany" : "VO",
"partId" : "20466895",
"description" : "stay",
"quantities" : [
{
"label" : "A",
"quantity": "6"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/230/VO/20466895",
"anyNotes" : false,
"note" : "922, Fifth wheel, towing hitch with connectous",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "922"
}, {
"rowNo" : 231,
"partCompany" : "VO",
"partId" : "20513544",
"description" : "mudflap",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/231/VO/20513544",
"anyNotes" : false,
"note" : "922, Fifth wheel, towing hitch with connectous",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "922"
}, {
"rowNo" : 232,
"partCompany" : "VO",
"partId" : "20514259",
"description" : "mudguard",
"quantities" : [
{
"label" : "A",
"quantity": "4"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/232/VO/20514259",
"anyNotes" : false,
"note" : "922, Fifth wheel, towing hitch with connectous",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "922"
}, {
"rowNo" : 233,
"partCompany" : "VO",
"partId" : "20514389",
"description" : "mudguard",
"quantities" : [
{
"label" : "A",
"quantity": "2"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/233/VO/20514389",
"anyNotes" : false,
"note" : "922, Fifth wheel, towing hitch with connectous",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "922"
}, {
"rowNo" : 234,
"partCompany" : "VO",
"partId" : "3987253",
"description" : "clamp",
"quantities" : [
{
"label" : "A",
"quantity": "8"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/234/VO/3987253",
"anyNotes" : false,
"note" : "922, Fifth wheel, towing hitch with connectous",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "922"
}, {
"rowNo" : 235,
"partCompany" : "VO",
"partId" : "3988630",
"description" : "retainer",
"quantities" : [
{
"label" : "A",
"quantity": "16"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/235/VO/3988630",
"anyNotes" : false,
"note" : "922, Fifth wheel, towing hitch with connectous",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "922"
}, {
"rowNo" : 236,
"partCompany" : "VO",
"partId" : "3988631",
"description" : "retainer",
"quantities" : [
{
"label" : "A",
"quantity": "6"
}
],
"partNotesLink": "services/notes.json/parts/partnotes/VTB/null/236/VO/3988631",
"anyNotes" : false,
"note" : "922, Fifth wheel, towing hitch with connectous",
"caStatus" : 0,
"caStatusDesc" : "",
"fgrp" : "922"
}
]