XML 109 R49.htm IDEA: XBRL DOCUMENT v2.4.1.9
Restatement - Consolidated Income Statements (Details) (USD $)
In Thousands, except Per Share data, unless otherwise specified
3 Months Ended 6 Months Ended 9 Months Ended 12 Months Ended
Dec. 31, 2014
Sep. 27, 2014
Jun. 28, 2014
Mar. 29, 2014
Dec. 31, 2013
Sep. 28, 2013
Jun. 29, 2013
Mar. 30, 2013
Jun. 28, 2014
Jun. 29, 2013
Sep. 27, 2014
Sep. 28, 2013
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Dec. 31, 2011
Income Statement [Abstract]                                
Net Revenues $ 187,612us-gaap_SalesRevenueNet $ 188,164us-gaap_SalesRevenueNet $ 186,516us-gaap_SalesRevenueNet $ 179,753us-gaap_SalesRevenueNet $ 187,975us-gaap_SalesRevenueNet $ 181,288us-gaap_SalesRevenueNet $ 191,472us-gaap_SalesRevenueNet $ 175,915us-gaap_SalesRevenueNet $ 366,269us-gaap_SalesRevenueNet $ 367,387us-gaap_SalesRevenueNet $ 554,433us-gaap_SalesRevenueNet $ 548,675us-gaap_SalesRevenueNet $ 742,045us-gaap_SalesRevenueNet $ 736,650us-gaap_SalesRevenueNet $ 747,037us-gaap_SalesRevenueNet  
Cost of Sales                                
Cost of Sales   155,052us-gaap_CostOfGoodsSold 148,838us-gaap_CostOfGoodsSold 143,838us-gaap_CostOfGoodsSold   147,549us-gaap_CostOfGoodsSold 153,898us-gaap_CostOfGoodsSold 142,641us-gaap_CostOfGoodsSold 292,676us-gaap_CostOfGoodsSold 296,539us-gaap_CostOfGoodsSold 447,728us-gaap_CostOfGoodsSold 444,088us-gaap_CostOfGoodsSold 601,713us-gaap_CostOfGoodsSold 612,498us-gaap_CostOfGoodsSold 603,060us-gaap_CostOfGoodsSold  
Gross Profit 33,627us-gaap_GrossProfit 33,112us-gaap_GrossProfit 37,678us-gaap_GrossProfit 35,915us-gaap_GrossProfit 19,565us-gaap_GrossProfit 33,739us-gaap_GrossProfit 37,574us-gaap_GrossProfit 33,274us-gaap_GrossProfit 73,593us-gaap_GrossProfit 70,848us-gaap_GrossProfit 106,705us-gaap_GrossProfit 104,587us-gaap_GrossProfit 140,332us-gaap_GrossProfit 124,152us-gaap_GrossProfit 143,977us-gaap_GrossProfit  
Selling, General and Administrative Expenses   23,050us-gaap_SellingGeneralAndAdministrativeExpense 20,868us-gaap_SellingGeneralAndAdministrativeExpense 21,087us-gaap_SellingGeneralAndAdministrativeExpense   20,351us-gaap_SellingGeneralAndAdministrativeExpense 22,273us-gaap_SellingGeneralAndAdministrativeExpense 22,551us-gaap_SellingGeneralAndAdministrativeExpense 41,955us-gaap_SellingGeneralAndAdministrativeExpense 44,824us-gaap_SellingGeneralAndAdministrativeExpense 65,005us-gaap_SellingGeneralAndAdministrativeExpense 65,175us-gaap_SellingGeneralAndAdministrativeExpense 88,565us-gaap_SellingGeneralAndAdministrativeExpense 84,849us-gaap_SellingGeneralAndAdministrativeExpense 87,055us-gaap_SellingGeneralAndAdministrativeExpense  
Operating Income   10,062us-gaap_OperatingIncomeLoss 16,810us-gaap_OperatingIncomeLoss 14,828us-gaap_OperatingIncomeLoss   13,388us-gaap_OperatingIncomeLoss 15,301us-gaap_OperatingIncomeLoss 10,723us-gaap_OperatingIncomeLoss 31,638us-gaap_OperatingIncomeLoss 26,024us-gaap_OperatingIncomeLoss 41,700us-gaap_OperatingIncomeLoss 39,412us-gaap_OperatingIncomeLoss 51,767us-gaap_OperatingIncomeLoss 39,303us-gaap_OperatingIncomeLoss 56,922us-gaap_OperatingIncomeLoss  
Interest Expense   (6,975)us-gaap_InterestIncomeExpenseNet (6,994)us-gaap_InterestIncomeExpenseNet (7,125)us-gaap_InterestIncomeExpenseNet   (7,403)us-gaap_InterestIncomeExpenseNet (7,442)us-gaap_InterestIncomeExpenseNet (7,823)us-gaap_InterestIncomeExpenseNet (14,119)us-gaap_InterestIncomeExpenseNet (15,265)us-gaap_InterestIncomeExpenseNet (21,094)us-gaap_InterestIncomeExpenseNet (22,668)us-gaap_InterestIncomeExpenseNet (28,077)us-gaap_InterestIncomeExpenseNet (29,918)us-gaap_InterestIncomeExpenseNet (32,798)us-gaap_InterestIncomeExpenseNet  
Other Income   1,600us-gaap_OtherIncome       0us-gaap_OtherIncome         1,600us-gaap_OtherIncome 0us-gaap_OtherIncome 2,550us-gaap_OtherIncome 0us-gaap_OtherIncome 0us-gaap_OtherIncome  
Income Before Taxes 4,034us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments 4,687us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments 9,816us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments 7,703us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments (7,359)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments 5,985us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments 7,859us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments 2,900us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments 17,519us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments 10,759us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments 22,206us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments 16,744us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments 26,240us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments 9,385us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments 24,124us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments  
Income Tax Expense (Benefit) (1,122)us-gaap_IncomeTaxExpenseBenefit 1,754us-gaap_IncomeTaxExpenseBenefit 3,197us-gaap_IncomeTaxExpenseBenefit 2,544us-gaap_IncomeTaxExpenseBenefit (2,115)us-gaap_IncomeTaxExpenseBenefit (1,000)us-gaap_IncomeTaxExpenseBenefit 2,193us-gaap_IncomeTaxExpenseBenefit (1,071)us-gaap_IncomeTaxExpenseBenefit 5,741us-gaap_IncomeTaxExpenseBenefit 1,122us-gaap_IncomeTaxExpenseBenefit 7,495us-gaap_IncomeTaxExpenseBenefit 122us-gaap_IncomeTaxExpenseBenefit 6,373us-gaap_IncomeTaxExpenseBenefit (1,993)us-gaap_IncomeTaxExpenseBenefit 6,501us-gaap_IncomeTaxExpenseBenefit  
Net Income 5,156us-gaap_NetIncomeLoss 2,933us-gaap_NetIncomeLoss 6,619us-gaap_NetIncomeLoss 5,159us-gaap_NetIncomeLoss (5,244)us-gaap_NetIncomeLoss 6,985us-gaap_NetIncomeLoss 5,666us-gaap_NetIncomeLoss 3,971us-gaap_NetIncomeLoss 11,778us-gaap_NetIncomeLoss 9,637us-gaap_NetIncomeLoss 14,711us-gaap_NetIncomeLoss 16,622us-gaap_NetIncomeLoss 19,867us-gaap_NetIncomeLoss 11,378us-gaap_NetIncomeLoss 17,623us-gaap_NetIncomeLoss  
Earnings Per Share                                
Basic (in dollars per share) $ 0.47us-gaap_EarningsPerShareBasic $ 0.27us-gaap_EarningsPerShareBasic $ 0.61us-gaap_EarningsPerShareBasic $ 0.48us-gaap_EarningsPerShareBasic $ (0.49)us-gaap_EarningsPerShareBasic $ 0.65us-gaap_EarningsPerShareBasic $ 0.53us-gaap_EarningsPerShareBasic $ 0.37us-gaap_EarningsPerShareBasic $ 1.08us-gaap_EarningsPerShareBasic $ 0.91us-gaap_EarningsPerShareBasic $ 1.35us-gaap_EarningsPerShareBasic $ 1.56us-gaap_EarningsPerShareBasic $ 1.82us-gaap_EarningsPerShareBasic $ 1.06us-gaap_EarningsPerShareBasic $ 1.67us-gaap_EarningsPerShareBasic  
Diluted (in dollars per share) $ 0.46us-gaap_EarningsPerShareDiluted $ 0.26us-gaap_EarningsPerShareDiluted $ 0.60us-gaap_EarningsPerShareDiluted $ 0.46us-gaap_EarningsPerShareDiluted $ (0.49)us-gaap_EarningsPerShareDiluted $ 0.64us-gaap_EarningsPerShareDiluted $ 0.53us-gaap_EarningsPerShareDiluted $ 0.37us-gaap_EarningsPerShareDiluted $ 1.06us-gaap_EarningsPerShareDiluted $ 0.90us-gaap_EarningsPerShareDiluted $ 1.31us-gaap_EarningsPerShareDiluted $ 1.54us-gaap_EarningsPerShareDiluted $ 1.79us-gaap_EarningsPerShareDiluted $ 1.05us-gaap_EarningsPerShareDiluted $ 1.66us-gaap_EarningsPerShareDiluted  
Weighted-average number of common shares outstanding                                
Basic weighted-average common shares outstanding   10,921us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 10,871us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 10,844us-gaap_WeightedAverageNumberOfSharesOutstandingBasic   10,722us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 10,648us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 10,600us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 10,864us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 10,624us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 10,902us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 10,657us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 10,897us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 10,695us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 10,580us-gaap_WeightedAverageNumberOfSharesOutstandingBasic  
Diluted weighted-average common shares outstanding   11,150us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 11,045us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 11,107us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding   10,917us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 10,790us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 10,670us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 11,122us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 10,731us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 11,202us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 10,785us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 11,126us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 10,852us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 10,628us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding  
As Reported                                
Income Statement [Abstract]                                
Net Revenues   188,164us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
186,516us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
179,753us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  181,288us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
191,472us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
175,915us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
366,269us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
367,387us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
554,433us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
548,675us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  736,650us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
747,037us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
 
Cost of Sales                                
Cost of Sales   154,770us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
149,073us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
144,683us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  148,984us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
154,156us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
143,062us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
293,756us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
297,218us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
448,526us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
446,202us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  614,233us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
605,585us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
 
Gross Profit   33,394us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
37,443us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
35,070us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  32,304us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
37,316us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
32,853us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
72,513us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
70,169us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
105,907us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
102,473us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  122,417us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
141,452us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
 
Selling, General and Administrative Expenses   23,050us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
20,868us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
21,087us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  20,351us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
22,273us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
22,551us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
41,955us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
44,824us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
65,005us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
65,175us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  84,849us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
86,639us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
 
Operating Income   10,344us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
16,575us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
13,983us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  11,953us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
15,043us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
10,302us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
30,558us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
25,345us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
40,902us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
37,298us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  37,568us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
54,813us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
 
Interest Expense   (6,975)us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(6,994)us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(7,125)us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  (7,403)us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(7,442)us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(7,823)us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(14,119)us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(15,265)us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(21,094)us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(22,668)us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  (29,918)us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(32,798)us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
 
Other Income   1,600us-gaap_OtherIncome
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
      0us-gaap_OtherIncome
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
        1,600us-gaap_OtherIncome
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
0us-gaap_OtherIncome
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
       
Income Before Taxes   4,969us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
9,581us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
6,858us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  4,550us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
7,601us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
2,479us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
16,439us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
10,080us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
21,408us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
14,630us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  7,650us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
22,015us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
 
Income Tax Expense (Benefit)   2,347us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
3,109us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
2,229us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  (86)us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
2,097us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(1,228)us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
5,338us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
869us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
7,685us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
783us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  (1,693)us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
5,578us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
 
Net Income   2,622us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
6,472us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
4,629us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  4,636us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
5,504us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
3,707us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
11,101us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
9,211us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
13,723us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
13,847us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  9,343us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
16,437us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
 
Earnings Per Share                                
Basic (in dollars per share)   $ 0.24us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 0.60us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 0.43us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  $ 0.43us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 0.52us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 0.35us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 1.02us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 0.87us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 1.26us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 1.30us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  $ 0.87us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 1.55us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
 
Diluted (in dollars per share)   $ 0.24us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 0.59us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 0.42us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  $ 0.42us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 0.51us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 0.35us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 1.00us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 0.86us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 1.23us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 1.28us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  $ 0.86us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 1.55us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
 
Weighted-average number of common shares outstanding                                
Basic weighted-average common shares outstanding   10,921us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
10,871us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
10,844us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  10,722us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
10,648us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
10,600us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
10,864us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
10,624us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
10,902us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
10,657us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  10,695us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
10,580us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
 
Diluted weighted-average common shares outstanding   11,150us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
11,045us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
11,107us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  10,917us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
10,790us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
10,670us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
11,122us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
10,731us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
11,202us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
10,785us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  10,852us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
10,628us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
 
Restatement Adjustment                                
Income Statement [Abstract]                                
Net Revenues   0us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_SalesRevenueNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
 
Cost of Sales                                
Cost of Sales   282us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(235)us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(845)us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  (1,435)us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(258)us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(421)us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(1,080)us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(679)us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(798)us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(2,114)us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  (1,735)us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(2,525)us-gaap_CostOfGoodsSold
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
 
Gross Profit   (282)us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
235us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
845us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  1,435us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
258us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
421us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
1,080us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
679us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
798us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
2,114us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  1,735us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
2,525us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
 
Selling, General and Administrative Expenses   0us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
416us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
 
Operating Income   (282)us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
235us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
845us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  1,435us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
258us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
421us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
1,080us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
679us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
798us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
2,114us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  1,735us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
2,109us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
 
Interest Expense   0us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_InterestIncomeExpenseNet
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
 
Other Income   0us-gaap_OtherIncome
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
      0us-gaap_OtherIncome
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
        0us-gaap_OtherIncome
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_OtherIncome
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
       
Income Before Taxes   (282)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
235us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
845us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  1,435us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
258us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
421us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
1,080us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
679us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
798us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
2,114us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  1,735us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
2,109us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
 
Income Tax Expense (Benefit)   (593)us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
88us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
315us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  (914)us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
96us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
157us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
403us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
253us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(190)us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(661)us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  (300)us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
923us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
2,700us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Net Income   $ 311us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 147us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 530us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  $ 2,349us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 162us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 264us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 677us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 426us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 988us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 2,775us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  $ 2,035us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 1,186us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
 
Earnings Per Share                                
Basic (in dollars per share)   $ 0.03us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 0.01us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 0.05us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  $ 0.22us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 0.02us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 0.02us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 0.06us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 0.04us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 0.09us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 0.26us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  $ 0.19us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 0.11us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
 
Diluted (in dollars per share)   $ 0.03us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 0.01us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 0.05us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  $ 0.22us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 0.02us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 0.02us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 0.06us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 0.04us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 0.09us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 0.26us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  $ 0.19us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 0.11us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
 
Weighted-average number of common shares outstanding                                
Basic weighted-average common shares outstanding   0us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
 
Diluted weighted-average common shares outstanding   0us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  0us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
0us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember