$('body').ready(function() {
$('.test-item.clickable').click(function(e) {
e.stopPropagation();
var index = $(this).index();
var details = $(this).parent().children('div:nth-child(' + (index+parseInt(1)+1) + ')').first();
if ($(this).hasClass('open')) {
$('.test-item.open').removeClass('open');
details.hide();
} else {
$('.test-item.open').removeClass('open');
$(this).addClass('open');
$('.test-details').hide();
details.show();
}
});
var dimensions = JSON.parse($('.model-sizes').attr('data-sizes'));
var inputWidth = $('[name="width"]');
var inputHeight = $('[name="height"]');
var inputDiameter = $('[name="diameter"]');
inputWidth.change(function() {
inputHeight.val('');
inputDiameter.val('');
inputHeight.empty();
inputDiameter.empty();
var keys = Object.keys(dimensions[$(this).val()]);
inputHeight.append('');
inputDiameter.append('');
for (var val in keys) {
inputHeight.append('')
}
showModels();
});
inputHeight.change(function() {
if (!$(this).val()) return;
inputDiameter.val('');
inputDiameter.empty();
var width = inputWidth.val();
var values = dimensions[width][$(this).val()];
inputDiameter.append('');
for (var val in values) {
inputDiameter.append('')
}
showModels();
});
inputDiameter.change(function() {
showModels();
});
function showModels() {
$('.model-inch').hide();
var width = inputWidth.val();
var height = inputHeight.val();
var diameter = inputDiameter.val();
var hash = "";
if (width) {
hash += "width=" + width;
}
if (height) {
hash +=";height=" + height;
}
if (diameter) {
hash += ";diameter=" + diameter;
}
location.hash = hash;
$('.result-item').each(function() {
var show = true;
if (width && width !== $(this).attr('data-width')) show = false;
if (height && height !== $(this).attr('data-height')) show = false;
if (diameter && diameter !== $(this).attr('data-diameter')) show = false;
if (!show) {
$(this).hide()
} else {
$(this).show();
$(this).parent().show();
}
});
}
if (location.hash) {
var hash = location.hash.replace(/#/g, '');
var parts = hash.split(';');
for(var key in parts) {
var part = parts[key];
var split = part.split("=");
if (split.length > 1) {
switch (split[0]) {
case "width":
inputWidth.val(split[1]);
inputWidth.trigger('change');
break;
case "height":
inputHeight.val(split[1]);
inputHeight.trigger('change');
break;
case "diameter":
inputDiameter.val(split[1]);
inputDiameter.trigger('change');
break;
}
}
}
}
});