Income Taxes (Tables)
   | 
12 Months Ended | 
Dec. 31, 2021  | 
| Income Taxes | 
 
 | 
| Schedule of components of provision for income tax expense (benefit) | 
  
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
 
  | 
  | 
Year ended December 31   | 
 
  | 
  | 
2021  | 
  | 
2020  | 
  | 
2019  | 
 
Current:  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
 
Federal  | 
  | 
$  | 
 4,246  | 
  | 
$  | 
 5,509  | 
  | 
$  | 
 12,492  | 
 
State  | 
  | 
  | 
 (1,967)  | 
  | 
  | 
 1,621  | 
  | 
  | 
 3,067  | 
 
  | 
  | 
  | 
 2,279  | 
  | 
  | 
 7,130  | 
  | 
  | 
 15,559  | 
 
Deferred:  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
 
Federal  | 
  | 
  | 
 1,874  | 
  | 
  | 
 (17,135)  | 
  | 
  | 
 (1,442)  | 
 
State  | 
  | 
  | 
 (256)  | 
  | 
  | 
 (2,271)  | 
  | 
  | 
 (666)  | 
 
  | 
  | 
  | 
1,618   | 
  | 
  | 
(19,406)  | 
  | 
  | 
(2,108)  | 
 
  | 
  | 
$  | 
3,897   | 
  | 
$  | 
(12,276)  | 
  | 
$  | 
13,451   | 
 
 
 | 
| Schedule of reconciliation of income tax expense computed at the federal statutory rate to the provision for income taxes | 
  
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
 
  | 
2021  | 
  | 
2020  | 
  | 
2019  | 
 
Federal income tax expense at statutory rate  | 
$  | 
 7,264  | 
  | 
$  | 
 (20,752)  | 
  | 
$  | 
 13,150  | 
 
State taxes, net of federal benefit  | 
  | 
 (1,329)  | 
  | 
  | 
 (2,820)  | 
  | 
  | 
 2,239  | 
 
Valuation allowance   | 
  | 
 (101)  | 
  | 
  | 
 1,762  | 
  | 
  | 
 139  | 
 
Change in uncertain tax positions, net  | 
  | 
 (705)  | 
  | 
  | 
 679  | 
  | 
  | 
 (601)  | 
 
Research and development credit  | 
  | 
 (859)  | 
  | 
  | 
 (536)  | 
  | 
  | 
 (404)  | 
 
State rate change  | 
  | 
 (652)  | 
  | 
  | 
 157  | 
  | 
  | 
 (426)  | 
 
Goodwill impairment  | 
  | 
 -  | 
  | 
  | 
 10,038  | 
  | 
  | 
 -  | 
 
Other  | 
  | 
 279  | 
  | 
  | 
 (804)  | 
  | 
  | 
 (646)  | 
 
  | 
$  | 
3,897   | 
  | 
$  | 
(12,276)  | 
  | 
$  | 
13,451   | 
 
 
 | 
| Schedule of significant components of deferred tax liabilities and assets | 
  
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
 
  | 
  | 
December 31,   | 
 
  | 
  | 
2021  | 
  | 
2020  | 
 
Deferred tax assets:  | 
  | 
  | 
  | 
  | 
  | 
  | 
 
Allowance for doubtful accounts  | 
  | 
$  | 
 756  | 
  | 
$  | 
 754  | 
 
Inventory reserves  | 
  | 
  | 
 1,505  | 
  | 
  | 
 1,529  | 
 
Warranty liability  | 
  | 
  | 
 1,551  | 
  | 
  | 
 1,465  | 
 
Deferred compensation  | 
  | 
  | 
 1,659  | 
  | 
  | 
 1,437  | 
 
Earnout liabilities  | 
  | 
  | 
 297  | 
  | 
  | 
 354  | 
 
Pension and retiree health benefit obligations  | 
  | 
  | 
 1,573  | 
  | 
  | 
 1,738  | 
 
Interest rate swap  | 
  | 
  | 
 1,615  | 
  | 
  | 
 3,373  | 
 
Accrued vacation  | 
  | 
  | 
 1,440  | 
  | 
  | 
 1,241  | 
 
Medical claims reserve  | 
  | 
  | 
 48  | 
  | 
  | 
 84  | 
 
Operating lease liabilities  | 
  | 
  | 
 5,011  | 
  | 
  | 
 5,583  | 
 
Net operating losses  | 
  | 
  | 
 3,182  | 
  | 
  | 
 3,744  | 
 
Other accrued liabilities  | 
  | 
  | 
 5,106  | 
  | 
  | 
 4,949  | 
 
Other  | 
  | 
  | 
 663  | 
  | 
  | 
 -  | 
 
Valuation allowance   | 
  | 
  | 
 (3,273)  | 
  | 
  | 
 (3,374)  | 
 
Total deferred tax assets  | 
  | 
  | 
21,133  | 
  | 
  | 
22,877  | 
 
Deferred tax liabilities:  | 
  | 
  | 
  | 
  | 
  | 
  | 
 
Tax deductible goodwill and other intangibles  | 
  | 
  | 
 (35,609)  | 
  | 
  | 
 (35,953)  | 
 
Accelerated depreciation  | 
  | 
  | 
 (9,918)  | 
  | 
  | 
 (8,105)  | 
 
Operating leases - right of use assets  | 
  | 
  | 
 (4,626)  | 
  | 
  | 
 (5,583)  | 
 
Other  | 
  | 
  | 
 (769)  | 
  | 
  | 
 83  | 
 
Total deferred tax liabilities  | 
  | 
  | 
 (50,922)  | 
  | 
  | 
 (49,558)  | 
 
Net deferred tax liabilities  | 
  | 
$  | 
 (29,789)  | 
  | 
$  | 
 (26,681)  | 
 
 
 | 
| Schedule of reconciliation of the beginning and ending liability for uncertain tax positions | 
  
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
  | 
 
  | 
  | 
2021  | 
  | 
2020  | 
  | 
2019  | 
 
Balance at beginning of year  | 
  | 
$  | 
1,954  | 
  | 
$  | 
1,219  | 
  | 
$  | 
1,795  | 
 
Increases for tax positions taken in the current year  | 
  | 
  | 
311  | 
  | 
  | 
238  | 
  | 
  | 
131  | 
 
Increases for tax positions taken in the prior years  | 
  | 
  | 
0  | 
  | 
  | 
846  | 
  | 
  | 
15  | 
 
Decreases due to settlements with taxing authorities  | 
  | 
  | 
 (991)  | 
  | 
  | 
 (83)  | 
  | 
  | 
 -  | 
 
Decreases due to lapses in the statute of limitations  | 
  | 
  | 
 (60)  | 
  | 
  | 
 (266)  | 
  | 
  | 
 (722)  | 
 
Balance at the end of year  | 
  | 
$  | 
 1,214  | 
  | 
$  | 
 1,954  | 
  | 
$  | 
 1,219  | 
 
 
 |