Quarterly report pursuant to Section 13 or 15(d)

Fair Value of Financial Instruments (Details)

v2.4.1.9
Fair Value of Financial Instruments (Details) (USD $)
Mar. 28, 2015
Dec. 27, 2014
Assets    
Asset measured at, fair value $ 43,629,000us-gaap_AvailableForSaleSecurities  
Recurring [Member]    
Assets    
Assets measured at fair value, Adjusted cost 44,852,000us-gaap_AvailableForSaleSecuritiesAmortizedCost
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
44,713,000us-gaap_AvailableForSaleSecuritiesAmortizedCost
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets measured at fair value, Unrealized gains 26,000snhy_AvailableforsaleSecuritiesGrossUnrealizedGains1
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
73,000snhy_AvailableforsaleSecuritiesGrossUnrealizedGains1
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets measured at fair value, Unrealized losses (1,249,000)snhy_AvailableforsaleSecuritiesGrossUnrealizedLosses2
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(1,433,000)snhy_AvailableforsaleSecuritiesGrossUnrealizedLosses2
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Asset measured at, fair value 43,629,000us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
43,353,000us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Level 1 [Member] | Recurring [Member]    
Assets    
Assets measured at fair value, Adjusted cost 4,910,000us-gaap_AvailableForSaleSecuritiesAmortizedCost
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
5,251,000us-gaap_AvailableForSaleSecuritiesAmortizedCost
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets measured at fair value, Unrealized gains 18,000snhy_AvailableforsaleSecuritiesGrossUnrealizedGains1
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
67,000snhy_AvailableforsaleSecuritiesGrossUnrealizedGains1
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets measured at fair value, Unrealized losses (464,000)snhy_AvailableforsaleSecuritiesGrossUnrealizedLosses2
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(509,000)snhy_AvailableforsaleSecuritiesGrossUnrealizedLosses2
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Asset measured at, fair value 4,464,000us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
4,809,000us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Liabilities    
Liabilities measured at fair value, Adjusted cost   30,000snhy_LiabilitiesMeasuredAtFairValueAdjustedCost
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Liabilities measured at fair value, Unrealized gains 0snhy_LiabilitiesMeasuredAtFairValueUnrealizedGains
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0snhy_LiabilitiesMeasuredAtFairValueUnrealizedGains
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Liabilities measured at fair value, Unrealized losses 0snhy_LiabilitiesMeasuredAtFairValueUnrealizedLosses
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0snhy_LiabilitiesMeasuredAtFairValueUnrealizedLosses
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Liabilities measured at fair value 40,000us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
30,000us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Convertible Debt, Fair Value Disclosures 40,000us-gaap_ConvertibleDebtFairValueDisclosures
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Level 1 [Member] | Phantom stock units [Member] | Recurring [Member]    
Liabilities    
Liabilities measured at fair value, Adjusted cost 40,000snhy_LiabilitiesMeasuredAtFairValueAdjustedCost
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementBasisAxis
= snhy_PhantomStockUnitsMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
30,000snhy_LiabilitiesMeasuredAtFairValueAdjustedCost
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementBasisAxis
= snhy_PhantomStockUnitsMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Liabilities measured at fair value, Unrealized gains 0snhy_LiabilitiesMeasuredAtFairValueUnrealizedGains
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementBasisAxis
= snhy_PhantomStockUnitsMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0snhy_LiabilitiesMeasuredAtFairValueUnrealizedGains
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementBasisAxis
= snhy_PhantomStockUnitsMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Liabilities measured at fair value, Unrealized losses 0snhy_LiabilitiesMeasuredAtFairValueUnrealizedLosses
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementBasisAxis
= snhy_PhantomStockUnitsMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0snhy_LiabilitiesMeasuredAtFairValueUnrealizedLosses
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementBasisAxis
= snhy_PhantomStockUnitsMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Liabilities measured at fair value 40,000us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementBasisAxis
= snhy_PhantomStockUnitsMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
30,000us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementBasisAxis
= snhy_PhantomStockUnitsMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Level 1 [Member] | Equity securities [Member] | Recurring [Member]    
Assets    
Assets measured at fair value, Adjusted cost 1,523,000us-gaap_AvailableForSaleSecuritiesAmortizedCost
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
2,145,000us-gaap_AvailableForSaleSecuritiesAmortizedCost
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets measured at fair value, Unrealized gains 13,000snhy_AvailableforsaleSecuritiesGrossUnrealizedGains1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
65,000snhy_AvailableforsaleSecuritiesGrossUnrealizedGains1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets measured at fair value, Unrealized losses (221,000)snhy_AvailableforsaleSecuritiesGrossUnrealizedLosses2
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(282,000)snhy_AvailableforsaleSecuritiesGrossUnrealizedLosses2
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Asset measured at, fair value 1,315,000us-gaap_AvailableForSaleSecurities
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,928,000us-gaap_AvailableForSaleSecurities
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Level 1 [Member] | Mutual funds [Member] | Recurring [Member]    
Assets    
Assets measured at fair value, Adjusted cost 3,387,000us-gaap_AvailableForSaleSecuritiesAmortizedCost
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= snhy_MutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
3,106,000us-gaap_AvailableForSaleSecuritiesAmortizedCost
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= snhy_MutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets measured at fair value, Unrealized gains 5,000snhy_AvailableforsaleSecuritiesGrossUnrealizedGains1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= snhy_MutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
2,000snhy_AvailableforsaleSecuritiesGrossUnrealizedGains1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= snhy_MutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets measured at fair value, Unrealized losses (243,000)snhy_AvailableforsaleSecuritiesGrossUnrealizedLosses2
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= snhy_MutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(227,000)snhy_AvailableforsaleSecuritiesGrossUnrealizedLosses2
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= snhy_MutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Asset measured at, fair value 3,149,000us-gaap_AvailableForSaleSecurities
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= snhy_MutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
2,881,000us-gaap_AvailableForSaleSecurities
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= snhy_MutualFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Level 2 [Member] | Recurring [Member]    
Assets    
Assets measured at fair value, Adjusted cost 39,942,000us-gaap_AvailableForSaleSecuritiesAmortizedCost
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
39,462,000us-gaap_AvailableForSaleSecuritiesAmortizedCost
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets measured at fair value, Unrealized gains 8,000snhy_AvailableforsaleSecuritiesGrossUnrealizedGains1
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
6,000snhy_AvailableforsaleSecuritiesGrossUnrealizedGains1
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets measured at fair value, Unrealized losses (785,000)snhy_AvailableforsaleSecuritiesGrossUnrealizedLosses2
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(924,000)snhy_AvailableforsaleSecuritiesGrossUnrealizedLosses2
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Asset measured at, fair value 39,165,000us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
38,544,000us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Level 2 [Member] | Corporate fixed income [Member] | Recurring [Member]    
Assets    
Assets measured at fair value, Adjusted cost 34,553,000us-gaap_AvailableForSaleSecuritiesAmortizedCost
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
33,740,000us-gaap_AvailableForSaleSecuritiesAmortizedCost
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets measured at fair value, Unrealized gains 8,000snhy_AvailableforsaleSecuritiesGrossUnrealizedGains1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
6,000snhy_AvailableforsaleSecuritiesGrossUnrealizedGains1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets measured at fair value, Unrealized losses (728,000)snhy_AvailableforsaleSecuritiesGrossUnrealizedLosses2
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(868,000)snhy_AvailableforsaleSecuritiesGrossUnrealizedLosses2
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Asset measured at, fair value 33,833,000us-gaap_AvailableForSaleSecurities
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
32,878,000us-gaap_AvailableForSaleSecurities
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Level 2 [Member] | Municipal bonds [Member] | Recurring [Member]    
Assets    
Assets measured at fair value, Adjusted cost 2,423,000us-gaap_AvailableForSaleSecuritiesAmortizedCost
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
2,441,000us-gaap_AvailableForSaleSecuritiesAmortizedCost
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets measured at fair value, Unrealized gains 0snhy_AvailableforsaleSecuritiesGrossUnrealizedGains1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0snhy_AvailableforsaleSecuritiesGrossUnrealizedGains1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets measured at fair value, Unrealized losses (46,000)snhy_AvailableforsaleSecuritiesGrossUnrealizedLosses2
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(33,000)snhy_AvailableforsaleSecuritiesGrossUnrealizedLosses2
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Asset measured at, fair value 2,377,000us-gaap_AvailableForSaleSecurities
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
2,408,000us-gaap_AvailableForSaleSecurities
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Level 2 [Member] | Certificates of deposit [Member] | Recurring [Member]    
Assets    
Assets measured at fair value, Adjusted cost 2,175,000us-gaap_AvailableForSaleSecuritiesAmortizedCost
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_CertificatesOfDepositMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
2,439,000us-gaap_AvailableForSaleSecuritiesAmortizedCost
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_CertificatesOfDepositMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets measured at fair value, Unrealized gains 0snhy_AvailableforsaleSecuritiesGrossUnrealizedGains1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_CertificatesOfDepositMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0snhy_AvailableforsaleSecuritiesGrossUnrealizedGains1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_CertificatesOfDepositMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets measured at fair value, Unrealized losses 0snhy_AvailableforsaleSecuritiesGrossUnrealizedLosses2
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_CertificatesOfDepositMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0snhy_AvailableforsaleSecuritiesGrossUnrealizedLosses2
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_CertificatesOfDepositMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Asset measured at, fair value 2,175,000us-gaap_AvailableForSaleSecurities
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_CertificatesOfDepositMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
2,439,000us-gaap_AvailableForSaleSecurities
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_CertificatesOfDepositMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Level 2 [Member] | Asset backed securities [Member] | Recurring [Member]    
Assets    
Assets measured at fair value, Adjusted cost 791,000us-gaap_AvailableForSaleSecuritiesAmortizedCost
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
842,000us-gaap_AvailableForSaleSecuritiesAmortizedCost
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets measured at fair value, Unrealized gains 0snhy_AvailableforsaleSecuritiesGrossUnrealizedGains1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0snhy_AvailableforsaleSecuritiesGrossUnrealizedGains1
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets measured at fair value, Unrealized losses (11,000)snhy_AvailableforsaleSecuritiesGrossUnrealizedLosses2
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(23,000)snhy_AvailableforsaleSecuritiesGrossUnrealizedLosses2
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Asset measured at, fair value $ 780,000us-gaap_AvailableForSaleSecurities
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
$ 819,000us-gaap_AvailableForSaleSecurities
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember