XML 19 R37.htm IDEA: XBRL DOCUMENT v2.4.1.9
Fair Value of Financial Instruments (Details) (USD $)
In Thousands, unless otherwise specified
Apr. 04, 2015
Jan. 03, 2015
Financial assets and liabilities measured at fair value on a recurring basis    
Total cash equivalents $ 112,710us-gaap_CashAndCashEquivalentsFairValueDisclosure $ 141,706us-gaap_CashAndCashEquivalentsFairValueDisclosure
Total short-term investments 148,795us-gaap_ShortTermInvestments 193,489us-gaap_ShortTermInvestments
Total long-term investments 7,401us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent 7,419us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
Assets and liabilities measured at fair value on recurring basis | Quoted Prices in Active Markets for Identical Assets (Level 1)    
Financial assets and liabilities measured at fair value on a recurring basis    
Total cash equivalents 58,808us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
72,415us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total short-term investments   650us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total assets at fair value 58,808us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
73,065us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets and liabilities measured at fair value on recurring basis | Quoted Prices in Active Markets for Identical Assets (Level 1) | Money market funds    
Financial assets and liabilities measured at fair value on a recurring basis    
Total cash equivalents 58,808us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MoneyMarketFundsMember
71,415us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MoneyMarketFundsMember
Assets and liabilities measured at fair value on recurring basis | Quoted Prices in Active Markets for Identical Assets (Level 1) | U.S. government bonds    
Financial assets and liabilities measured at fair value on a recurring basis    
Total cash equivalents   1,000us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
Total short-term investments   650us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
Assets and liabilities measured at fair value on recurring basis | Significant Other Observable Inputs (Level 2)    
Financial assets and liabilities measured at fair value on a recurring basis    
Total cash equivalents 5,600us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
17,147us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total short-term investments 148,795us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
192,839us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Derivative instruments   331us-gaap_DerivativeAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other assets, net   331us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total assets at fair value 154,395us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
210,317us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total liabilities at fair value 165us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Assets and liabilities measured at fair value on recurring basis | Significant Other Observable Inputs (Level 2) | Other non-current liabilities:    
Financial assets and liabilities measured at fair value on a recurring basis    
Derivative instruments 165us-gaap_DerivativeLiabilities
/ us-gaap_BalanceSheetLocationAxis
= us-gaap_OtherNoncurrentLiabilitiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Total liabilities at fair value 165us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_BalanceSheetLocationAxis
= us-gaap_OtherNoncurrentLiabilitiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Assets and liabilities measured at fair value on recurring basis | Significant Other Observable Inputs (Level 2) | Certificates of deposit    
Financial assets and liabilities measured at fair value on a recurring basis    
Total cash equivalents 5,148us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
7,739us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
Total short-term investments   250us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
Assets and liabilities measured at fair value on recurring basis | Significant Other Observable Inputs (Level 2) | Commercial paper    
Financial assets and liabilities measured at fair value on a recurring basis    
Total cash equivalents   5,348us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialPaperMember
Total short-term investments 4,898us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialPaperMember
8,995us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialPaperMember
Assets and liabilities measured at fair value on recurring basis | Significant Other Observable Inputs (Level 2) | Municipal bonds    
Financial assets and liabilities measured at fair value on a recurring basis    
Total cash equivalents 452us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
1,757us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
Total short-term investments 122,917us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
129,152us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
Assets and liabilities measured at fair value on recurring basis | Significant Other Observable Inputs (Level 2) | Variable-rate demand notes    
Financial assets and liabilities measured at fair value on a recurring basis    
Total short-term investments 8,615us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_VariableRateDemandObligationMember
12,915us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_VariableRateDemandObligationMember
Assets and liabilities measured at fair value on recurring basis | Significant Other Observable Inputs (Level 2) | Asset-backed securities    
Financial assets and liabilities measured at fair value on a recurring basis    
Total short-term investments   5,377us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_AssetBackedSecuritiesMember
Assets and liabilities measured at fair value on recurring basis | Significant Other Observable Inputs (Level 2) | International government bonds    
Financial assets and liabilities measured at fair value on a recurring basis    
Total short-term investments 2,248us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
2,516us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
Assets and liabilities measured at fair value on recurring basis | Significant Other Observable Inputs (Level 2) | US government agency    
Financial assets and liabilities measured at fair value on a recurring basis    
Total cash equivalents   1,202us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
Total short-term investments   601us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
Assets and liabilities measured at fair value on recurring basis | Significant Other Observable Inputs (Level 2) | Corporate bonds    
Financial assets and liabilities measured at fair value on a recurring basis    
Total cash equivalents   1,101us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateDebtSecuritiesMember
Total short-term investments 10,117us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateDebtSecuritiesMember
33,033us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateDebtSecuritiesMember
Assets and liabilities measured at fair value on recurring basis | Significant Unobservable Inputs (Level 3)    
Financial assets and liabilities measured at fair value on a recurring basis    
Total long-term investments 7,401us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
7,419us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total assets at fair value 7,401us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
7,419us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total liabilities at fair value 14,804us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
18,438us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets and liabilities measured at fair value on recurring basis | Significant Unobservable Inputs (Level 3) | Accrued expenses:    
Financial assets and liabilities measured at fair value on a recurring basis    
Contingent consideration 3,225us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
/ us-gaap_BalanceSheetLocationAxis
= us-gaap_AccountsPayableAndAccruedLiabilitiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
4,288us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
/ us-gaap_BalanceSheetLocationAxis
= us-gaap_AccountsPayableAndAccruedLiabilitiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets and liabilities measured at fair value on recurring basis | Significant Unobservable Inputs (Level 3) | Other non-current liabilities:    
Financial assets and liabilities measured at fair value on a recurring basis    
Contingent consideration 11,579us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
/ us-gaap_BalanceSheetLocationAxis
= us-gaap_OtherNoncurrentLiabilitiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
14,150us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
/ us-gaap_BalanceSheetLocationAxis
= us-gaap_OtherNoncurrentLiabilitiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total liabilities at fair value 11,579us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_BalanceSheetLocationAxis
= us-gaap_OtherNoncurrentLiabilitiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Assets and liabilities measured at fair value on recurring basis | Significant Unobservable Inputs (Level 3) | Auction rate securities    
Financial assets and liabilities measured at fair value on a recurring basis    
Total long-term investments 7,401us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_AuctionRateSecuritiesMember
7,419us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_AuctionRateSecuritiesMember
Assets and liabilities measured at fair value on recurring basis | Fair Value    
Financial assets and liabilities measured at fair value on a recurring basis    
Total cash equivalents 64,408us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
89,562us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total short-term investments 148,795us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
193,489us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total long-term investments 7,401us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
7,419us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Derivative instruments   331us-gaap_DerivativeAssets
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other assets, net   331us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total assets at fair value 220,604us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
290,801us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total liabilities at fair value 14,969us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
18,438us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets and liabilities measured at fair value on recurring basis | Fair Value | Accrued expenses:    
Financial assets and liabilities measured at fair value on a recurring basis    
Contingent consideration 3,225us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
/ us-gaap_BalanceSheetLocationAxis
= us-gaap_AccountsPayableAndAccruedLiabilitiesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
4,288us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
/ us-gaap_BalanceSheetLocationAxis
= us-gaap_AccountsPayableAndAccruedLiabilitiesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets and liabilities measured at fair value on recurring basis | Fair Value | Other non-current liabilities:    
Financial assets and liabilities measured at fair value on a recurring basis    
Contingent consideration 11,579us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
/ us-gaap_BalanceSheetLocationAxis
= us-gaap_OtherNoncurrentLiabilitiesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
14,150us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
/ us-gaap_BalanceSheetLocationAxis
= us-gaap_OtherNoncurrentLiabilitiesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Derivative instruments 165us-gaap_DerivativeLiabilities
/ us-gaap_BalanceSheetLocationAxis
= us-gaap_OtherNoncurrentLiabilitiesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Total liabilities at fair value 11,744us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_BalanceSheetLocationAxis
= us-gaap_OtherNoncurrentLiabilitiesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
 
Assets and liabilities measured at fair value on recurring basis | Fair Value | Money market funds    
Financial assets and liabilities measured at fair value on a recurring basis    
Total cash equivalents 58,808us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MoneyMarketFundsMember
71,415us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MoneyMarketFundsMember
Assets and liabilities measured at fair value on recurring basis | Fair Value | Certificates of deposit    
Financial assets and liabilities measured at fair value on a recurring basis    
Total cash equivalents 5,148us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
7,739us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
Total short-term investments   250us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
Assets and liabilities measured at fair value on recurring basis | Fair Value | Commercial paper    
Financial assets and liabilities measured at fair value on a recurring basis    
Total cash equivalents   5,348us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialPaperMember
Total short-term investments 4,898us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialPaperMember
8,995us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialPaperMember
Assets and liabilities measured at fair value on recurring basis | Fair Value | Municipal bonds    
Financial assets and liabilities measured at fair value on a recurring basis    
Total cash equivalents 452us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
1,757us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
Total short-term investments 122,917us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
129,152us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
Assets and liabilities measured at fair value on recurring basis | Fair Value | Variable-rate demand notes    
Financial assets and liabilities measured at fair value on a recurring basis    
Total short-term investments 8,615us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_VariableRateDemandObligationMember
12,915us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_VariableRateDemandObligationMember
Assets and liabilities measured at fair value on recurring basis | Fair Value | Asset-backed securities    
Financial assets and liabilities measured at fair value on a recurring basis    
Total short-term investments   5,377us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_AssetBackedSecuritiesMember
Assets and liabilities measured at fair value on recurring basis | Fair Value | International government bonds    
Financial assets and liabilities measured at fair value on a recurring basis    
Total short-term investments 2,248us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
2,516us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
Assets and liabilities measured at fair value on recurring basis | Fair Value | US government agency    
Financial assets and liabilities measured at fair value on a recurring basis    
Total cash equivalents   1,202us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
Total short-term investments   601us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
Assets and liabilities measured at fair value on recurring basis | Fair Value | Corporate bonds    
Financial assets and liabilities measured at fair value on a recurring basis    
Total cash equivalents   1,101us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateDebtSecuritiesMember
Total short-term investments 10,117us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateDebtSecuritiesMember
33,033us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateDebtSecuritiesMember
Assets and liabilities measured at fair value on recurring basis | Fair Value | U.S. government bonds    
Financial assets and liabilities measured at fair value on a recurring basis    
Total cash equivalents   1,000us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
Total short-term investments   650us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasuryAndGovernmentMember
Assets and liabilities measured at fair value on recurring basis | Fair Value | Auction rate securities    
Financial assets and liabilities measured at fair value on a recurring basis    
Total long-term investments $ 7,401us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_AuctionRateSecuritiesMember
$ 7,419us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_AuctionRateSecuritiesMember