XML 96 R60.htm IDEA: XBRL DOCUMENT v2.4.1.9
Fair Value Measurements - Financial Assets and Liabilities Measured at Fair Value Based on Three-Tier Fair Value Hierarchy (Detail) (USD $)
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value $ 57,915,000us-gaap_AssetsFairValueDisclosure $ 131,462,000us-gaap_AssetsFairValueDisclosure  
Total liabilities measured and recorded at fair value 7,000us-gaap_LiabilitiesFairValueDisclosure 195,000us-gaap_LiabilitiesFairValueDisclosure  
Assets, Fair Value Disclosure, Nonrecurring 0us-gaap_AssetsFairValueDisclosureNonrecurring 0us-gaap_AssetsFairValueDisclosureNonrecurring 0us-gaap_AssetsFairValueDisclosureNonrecurring
Liabilities, Fair Value Disclosure, Nonrecurring 0us-gaap_LiabilitiesFairValueDisclosureNonrecurring 0us-gaap_LiabilitiesFairValueDisclosureNonrecurring 0us-gaap_LiabilitiesFairValueDisclosureNonrecurring
Cash equivalents [Member] | Money market funds [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 23,121,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_CashEquivalentsMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_MoneyMarketFundsMember
51,014,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_CashEquivalentsMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_MoneyMarketFundsMember
 
Short-term investments [Member] | State, municipal and local government agencies bonds [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 13,961,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_MunicipalBondsMember
40,449,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_MunicipalBondsMember
 
Short-term investments [Member] | Corporate bonds [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 17,886,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_CorporateBondSecuritiesMember
33,496,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_CorporateBondSecuritiesMember
 
Short-term investments [Member] | Commercial paper [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value   2,299,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_CommercialPaperMember
 
Short-term investments [Member] | U.S. federal government bonds [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value   4,008,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_USTreasuryBondSecuritiesMember
 
Prepaid Expenses and Other Current Assets [Member] | Foreign exchange forward contracts [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 341,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ForeignExchangeForwardMember
196,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ForeignExchangeForwardMember
 
Accrued liabilities [Member] | Foreign exchange forward contracts [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total liabilities measured and recorded at fair value 7,000us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_AccruedLiabilitiesMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ForeignExchangeForwardMember
195,000us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_AccruedLiabilitiesMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ForeignExchangeForwardMember
 
Cost-method Investments [Member] | Equity Securities [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 2,606,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_CostmethodInvestmentsMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_EquitySecuritiesMember
   
Level 1 [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 25,727,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
55,022,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Total liabilities measured and recorded at fair value 0us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
 
Level 1 [Member] | Cash equivalents [Member] | Money market funds [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 23,121,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_CashEquivalentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_MoneyMarketFundsMember
51,014,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_CashEquivalentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_MoneyMarketFundsMember
 
Level 1 [Member] | Short-term investments [Member] | State, municipal and local government agencies bonds [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_MunicipalBondsMember
0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_MunicipalBondsMember
 
Level 1 [Member] | Short-term investments [Member] | Corporate bonds [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_CorporateBondSecuritiesMember
0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_CorporateBondSecuritiesMember
 
Level 1 [Member] | Short-term investments [Member] | Commercial paper [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value   0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_CommercialPaperMember
 
Level 1 [Member] | Short-term investments [Member] | U.S. federal government bonds [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value   4,008,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_USTreasuryBondSecuritiesMember
 
Level 1 [Member] | Prepaid Expenses and Other Current Assets [Member] | Foreign exchange forward contracts [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_ForeignExchangeForwardMember
0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_ForeignExchangeForwardMember
 
Level 1 [Member] | Accrued liabilities [Member] | Foreign exchange forward contracts [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total liabilities measured and recorded at fair value 0us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_AccruedLiabilitiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_ForeignExchangeForwardMember
0us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_AccruedLiabilitiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_ForeignExchangeForwardMember
 
Level 1 [Member] | Cost-method Investments [Member] | Equity Securities [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 2,606,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_CostmethodInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_EquitySecuritiesMember
   
Level 2 [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 32,188,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
76,440,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Total liabilities measured and recorded at fair value 7,000us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
195,000us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
 
Level 2 [Member] | Cash equivalents [Member] | Money market funds [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_CashEquivalentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_MoneyMarketFundsMember
0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_CashEquivalentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_MoneyMarketFundsMember
 
Level 2 [Member] | Short-term investments [Member] | State, municipal and local government agencies bonds [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 13,961,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_MunicipalBondsMember
40,449,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_MunicipalBondsMember
 
Level 2 [Member] | Short-term investments [Member] | Corporate bonds [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 17,886,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_CorporateBondSecuritiesMember
33,496,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_CorporateBondSecuritiesMember
 
Level 2 [Member] | Short-term investments [Member] | Commercial paper [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value   2,299,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_CommercialPaperMember
 
Level 2 [Member] | Short-term investments [Member] | U.S. federal government bonds [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value   0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_USTreasuryBondSecuritiesMember
 
Level 2 [Member] | Prepaid Expenses and Other Current Assets [Member] | Foreign exchange forward contracts [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 341,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_ForeignExchangeForwardMember
196,000us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_ForeignExchangeForwardMember
 
Level 2 [Member] | Accrued liabilities [Member] | Foreign exchange forward contracts [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total liabilities measured and recorded at fair value 7,000us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_AccruedLiabilitiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_ForeignExchangeForwardMember
195,000us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_AccruedLiabilitiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_ForeignExchangeForwardMember
 
Level 2 [Member] | Cost-method Investments [Member] | Equity Securities [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_CostmethodInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_EquitySecuritiesMember
   
Level 3 [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 0us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Total liabilities measured and recorded at fair value 0us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Level 3 [Member] | Cash equivalents [Member] | Money market funds [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_CashEquivalentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_MoneyMarketFundsMember
0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_CashEquivalentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_MoneyMarketFundsMember
 
Level 3 [Member] | Short-term investments [Member] | State, municipal and local government agencies bonds [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_MunicipalBondsMember
0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_MunicipalBondsMember
 
Level 3 [Member] | Short-term investments [Member] | Corporate bonds [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_CorporateBondSecuritiesMember
0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_CorporateBondSecuritiesMember
 
Level 3 [Member] | Short-term investments [Member] | Commercial paper [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value   0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_CommercialPaperMember
 
Level 3 [Member] | Short-term investments [Member] | U.S. federal government bonds [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value   0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_ShortTermInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_USTreasuryBondSecuritiesMember
 
Level 3 [Member] | Prepaid Expenses and Other Current Assets [Member] | Foreign exchange forward contracts [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value 0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_ForeignExchangeForwardMember
0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_ForeignExchangeForwardMember
 
Level 3 [Member] | Accrued liabilities [Member] | Foreign exchange forward contracts [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total liabilities measured and recorded at fair value 0us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_AccruedLiabilitiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_ForeignExchangeForwardMember
0us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_AccruedLiabilitiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_ForeignExchangeForwardMember
 
Level 3 [Member] | Cost-method Investments [Member] | Equity Securities [Member]      
Fair Value Of Assets And Liabilities Measured On Non Recurring Basis [Line Items]      
Total assets measured and recorded at fair value $ 0us-gaap_AssetsFairValueDisclosure
/ us-gaap_EligibleItemOrGroupForFairValueOptionAxis
= us-gaap_CostmethodInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_InvestmentTypeAxis
= us-gaap_EquitySecuritiesMember