XML 27 R50.htm IDEA: XBRL DOCUMENT v2.4.1.9
Fair Value of Financial Instruments (Details) (USD $)
In Thousands, unless otherwise specified
Jan. 03, 2015
Dec. 28, 2013
Financial assets and liabilities measured at fair value on a recurring basis    
Total cash equivalents $ 141,706us-gaap_CashAndCashEquivalentsFairValueDisclosure $ 95,800us-gaap_CashAndCashEquivalentsFairValueDisclosure
Total short-term investments 193,489us-gaap_ShortTermInvestments 179,593us-gaap_ShortTermInvestments
Total long-term investments 7,419us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent 10,632us-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 72,415us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
39,538us-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 73,065us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
39,538us-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 71,415us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MoneyMarketFundsMember
39,538us-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 17,147us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
10,718us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total short-term investments 192,839us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
179,593us-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
513us-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
513us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total assets at fair value 210,317us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
190,824us-gaap_AssetsFairValueDisclosure
/ 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 7,739us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
7,768us-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
2,499us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialPaperMember
Total short-term investments 8,995us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialPaperMember
3,748us-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 1,757us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
451us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
Total short-term investments 129,152us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
119,460us-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) | 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 33,033us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateDebtSecuritiesMember
17,844us-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 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 12,915us-gaap_ShortTermInvestments
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_VariableRateDemandObligationMember
38,025us-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
516us-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,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 Unobservable Inputs (Level 3)    
Financial assets and liabilities measured at fair value on a recurring basis    
Total long-term investments 7,419us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
10,632us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total assets at fair value 7,419us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
10,632us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total liabilities at fair value 18,438us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
12,919us-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) | Other non-current liabilities:    
Financial assets and liabilities measured at fair value on a recurring basis    
Contingent consideration 14,150us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
/ us-gaap_BalanceSheetLocationAxis
= us-gaap_OtherNoncurrentLiabilitiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
12,919us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
/ 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,419us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_AuctionRateSecuritiesMember
10,632us-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 | Significant Unobservable Inputs (Level 3) | Auction rate securities | Accrued expenses:    
Financial assets and liabilities measured at fair value on a recurring basis    
Contingent consideration 4,288us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
/ us-gaap_BalanceSheetLocationAxis
= us-gaap_AccountsPayableAndAccruedLiabilitiesMember
/ 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 89,562us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
50,256us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total short-term investments 193,489us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
179,593us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total long-term investments 7,419us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
10,632us-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
513us-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
513us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total assets at fair value 290,801us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
240,994us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total liabilities at fair value 18,438us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
12,919us-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 | Other non-current liabilities:    
Financial assets and liabilities measured at fair value on a recurring basis    
Contingent consideration 14,150us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
/ us-gaap_BalanceSheetLocationAxis
= us-gaap_OtherNoncurrentLiabilitiesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
12,919us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
/ 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 71,415us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MoneyMarketFundsMember
39,538us-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 7,739us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
7,768us-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
2,499us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialPaperMember
Total short-term investments 8,995us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialPaperMember
3,748us-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 1,757us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
451us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
Total short-term investments 129,152us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
119,460us-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 | 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 33,033us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateDebtSecuritiesMember
17,844us-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 | Variable-rate demand notes    
Financial assets and liabilities measured at fair value on a recurring basis    
Total short-term investments 12,915us-gaap_ShortTermInvestments
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_VariableRateDemandObligationMember
38,025us-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
516us-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,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 | 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 | 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 | Auction rate securities    
Financial assets and liabilities measured at fair value on a recurring basis    
Total long-term investments 7,419us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_AuctionRateSecuritiesMember
10,632us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_AuctionRateSecuritiesMember
Assets and liabilities measured at fair value on recurring basis | Fair Value | Auction rate securities | Accrued expenses:    
Financial assets and liabilities measured at fair value on a recurring basis    
Contingent consideration $ 4,288us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
/ us-gaap_BalanceSheetLocationAxis
= us-gaap_AccountsPayableAndAccruedLiabilitiesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_AuctionRateSecuritiesMember