XML 30 R78.htm IDEA: XBRL DOCUMENT v2.4.1.9
Valuation and Qualifying Accounts (Detail) (USD $)
In Thousands, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Allowance for obsolete inventory      
Movement in Valuation Allowances and Reserves [Roll Forward]      
Balance at Beginning of Period $ 21,603us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_InventoryValuationReserveMember
$ 17,357us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_InventoryValuationReserveMember
$ 15,943us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_InventoryValuationReserveMember
Additions Charged to Costs and Expenses 12,868us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_InventoryValuationReserveMember
9,966us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_InventoryValuationReserveMember
6,258us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_InventoryValuationReserveMember
Additions Through Acquisition 600us-gaap_ValuationAllowancesAndReservesReservesOfBusinessesAcquired
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_InventoryValuationReserveMember
2,423us-gaap_ValuationAllowancesAndReservesReservesOfBusinessesAcquired
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_InventoryValuationReserveMember
15us-gaap_ValuationAllowancesAndReservesReservesOfBusinessesAcquired
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_InventoryValuationReserveMember
Other Changes Add (Deduct) (8,900)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_InventoryValuationReserveMember
(8,143)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_InventoryValuationReserveMember
(4,859)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_InventoryValuationReserveMember
Balance at End of Period 26,171us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_InventoryValuationReserveMember
21,603us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_InventoryValuationReserveMember
17,357us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_InventoryValuationReserveMember
Allowance for doubtful accounts receivable      
Movement in Valuation Allowances and Reserves [Roll Forward]      
Balance at Beginning of Period 5,895us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
4,268us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
4,473us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
Additions Charged to Costs and Expenses 2,347us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
75us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
375us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
Additions Through Acquisition 265us-gaap_ValuationAllowancesAndReservesReservesOfBusinessesAcquired
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
2,192us-gaap_ValuationAllowancesAndReservesReservesOfBusinessesAcquired
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
365us-gaap_ValuationAllowancesAndReservesReservesOfBusinessesAcquired
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
Other Changes Add (Deduct) (1,083)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
(640)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
(945)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
Balance at End of Period $ 7,424us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
$ 5,895us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
$ 4,268us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember