|
The Company and Summary of Significant Accounting Policies (Revisions and Reclassifications) (Details) (USD $) In Thousands, except Per Share data, unless otherwise specified
|
3 Months Ended |
12 Months Ended |
|
|
Dec. 31, 2014
|
Sep. 30, 2014
|
Jun. 30, 2014
|
Mar. 31, 2014
|
Dec. 31, 2013
|
Sep. 30, 2013
|
Jun. 30, 2013
|
Mar. 31, 2013
|
Dec. 31, 2014
|
Dec. 31, 2013
|
Dec. 31, 2012
|
Dec. 31, 2011
|
| Other income (expense), net |
|
|
|
|
|
|
|
|
$ (1,077)us-gaap_OtherNonoperatingIncomeExpense |
$ (600)us-gaap_OtherNonoperatingIncomeExpense |
$ (247)us-gaap_OtherNonoperatingIncomeExpense |
|
| Other income (expense), net |
(568)us-gaap_NonoperatingIncomeExpense |
(119)us-gaap_NonoperatingIncomeExpense |
41us-gaap_NonoperatingIncomeExpense |
12us-gaap_NonoperatingIncomeExpense |
(61)us-gaap_NonoperatingIncomeExpense |
12us-gaap_NonoperatingIncomeExpense |
51us-gaap_NonoperatingIncomeExpense |
(270)us-gaap_NonoperatingIncomeExpense |
(634)us-gaap_NonoperatingIncomeExpense |
(268)us-gaap_NonoperatingIncomeExpense |
(425)us-gaap_NonoperatingIncomeExpense |
|
| Net income |
25,913us-gaap_NetIncomeLoss |
3,105us-gaap_NetIncomeLoss |
1,657us-gaap_NetIncomeLoss |
(431)us-gaap_NetIncomeLoss |
35us-gaap_NetIncomeLoss |
1,297us-gaap_NetIncomeLoss |
822us-gaap_NetIncomeLoss |
(613)us-gaap_NetIncomeLoss |
30,244us-gaap_NetIncomeLoss |
1,541us-gaap_NetIncomeLoss |
2,221us-gaap_NetIncomeLoss |
|
| Basic (in usd per share) |
$ 0.77us-gaap_EarningsPerShareBasic |
$ 0.09us-gaap_EarningsPerShareBasic |
$ 0.05us-gaap_EarningsPerShareBasic |
$ (0.01)us-gaap_EarningsPerShareBasic |
$ 0.00us-gaap_EarningsPerShareBasic |
$ 0.04us-gaap_EarningsPerShareBasic |
$ 0.03us-gaap_EarningsPerShareBasic |
$ (0.02)us-gaap_EarningsPerShareBasic |
$ 0.92us-gaap_EarningsPerShareBasic |
$ 0.05us-gaap_EarningsPerShareBasic |
$ 0.09us-gaap_EarningsPerShareBasic |
|
| Diluted (in usd per share) |
$ 0.69us-gaap_EarningsPerShareDiluted |
$ 0.08us-gaap_EarningsPerShareDiluted |
$ 0.04us-gaap_EarningsPerShareDiluted |
$ (0.01)us-gaap_EarningsPerShareDiluted |
$ 0.00us-gaap_EarningsPerShareDiluted |
$ 0.04us-gaap_EarningsPerShareDiluted |
$ 0.02us-gaap_EarningsPerShareDiluted |
$ (0.02)us-gaap_EarningsPerShareDiluted |
$ 0.81us-gaap_EarningsPerShareDiluted |
$ 0.04us-gaap_EarningsPerShareDiluted |
$ 0.08us-gaap_EarningsPerShareDiluted |
|
| Change in foreign currency translation gain (loss), net of zero tax |
|
|
|
|
|
|
|
|
|
0us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax |
0us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax |
|
| Comprehensive income |
|
|
|
|
|
|
|
|
30,216us-gaap_ComprehensiveIncomeNetOfTax |
1,571us-gaap_ComprehensiveIncomeNetOfTax |
2,229us-gaap_ComprehensiveIncomeNetOfTax |
|
| Net cash provided by operating activities |
|
|
|
|
|
|
|
|
41,423us-gaap_NetCashProvidedByUsedInOperatingActivities |
25,081us-gaap_NetCashProvidedByUsedInOperatingActivities |
21,924us-gaap_NetCashProvidedByUsedInOperatingActivities |
|
| Net cash used in investing activities |
|
|
|
|
|
|
|
|
(14,333)us-gaap_NetCashProvidedByUsedInInvestingActivities |
(20,675)us-gaap_NetCashProvidedByUsedInInvestingActivities |
(94,796)us-gaap_NetCashProvidedByUsedInInvestingActivities |
|
| Effect of exchange rate changes on cash and cash equivalents |
|
|
|
|
|
|
|
|
(48)us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents |
1us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents |
7us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents |
|
| Net increase in cash and cash equivalents |
|
|
|
|
|
|
|
|
34,135us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease |
7,484us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease |
10,337us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease |
|
| Accumulated other comprehensive income |
10us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax |
|
|
|
38us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax |
|
|
|
10us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax |
38us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax |
8us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax |
0us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax |
| Accumulated deficit |
(43,350)us-gaap_RetainedEarningsAccumulatedDeficit |
|
|
|
(73,594)us-gaap_RetainedEarningsAccumulatedDeficit |
|
|
|
(43,350)us-gaap_RetainedEarningsAccumulatedDeficit |
(73,594)us-gaap_RetainedEarningsAccumulatedDeficit |
(75,135)us-gaap_RetainedEarningsAccumulatedDeficit |
(77,356)us-gaap_RetainedEarningsAccumulatedDeficit |
| Total stockholders’ equity |
151,827us-gaap_StockholdersEquity |
|
|
|
103,117us-gaap_StockholdersEquity |
|
|
|
151,827us-gaap_StockholdersEquity |
103,117us-gaap_StockholdersEquity |
91,555us-gaap_StockholdersEquity |
(64,424)us-gaap_StockholdersEquity |
| Scenario, Previously Reported [Member] |
|
|
|
|
|
|
|
|
|
|
|
|
| Other income (expense), net |
|
|
|
|
|
|
|
|
|
(517)us-gaap_OtherNonoperatingIncomeExpense / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
(188)us-gaap_OtherNonoperatingIncomeExpense / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
|
| Other income (expense), net |
|
|
|
|
|
|
|
|
|
(185)us-gaap_NonoperatingIncomeExpense / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
(366)us-gaap_NonoperatingIncomeExpense / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
|
| Net income |
|
|
|
|
|
|
|
|
|
1,624us-gaap_NetIncomeLoss / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
2,280us-gaap_NetIncomeLoss / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
|
| Basic (in usd per share) |
|
|
|
|
|
|
|
|
|
$ 0.05us-gaap_EarningsPerShareBasic / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
$ 0.09us-gaap_EarningsPerShareBasic / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
|
| Diluted (in usd per share) |
|
|
|
|
|
|
|
|
|
$ 0.05us-gaap_EarningsPerShareDiluted / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
$ 0.08us-gaap_EarningsPerShareDiluted / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
|
| Change in foreign currency translation gain (loss), net of zero tax |
|
|
|
|
|
|
|
|
|
(83)us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
(59)us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
|
| Comprehensive income |
|
|
|
|
|
|
|
|
|
1,571us-gaap_ComprehensiveIncomeNetOfTax / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
2,229us-gaap_ComprehensiveIncomeNetOfTax / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
|
| Net cash provided by operating activities |
|
|
|
|
|
|
|
|
|
25,146us-gaap_NetCashProvidedByUsedInOperatingActivities / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
21,952us-gaap_NetCashProvidedByUsedInOperatingActivities / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
|
| Net cash used in investing activities |
|
|
|
|
|
|
|
|
|
(20,688)us-gaap_NetCashProvidedByUsedInInvestingActivities / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
(94,784)us-gaap_NetCashProvidedByUsedInInvestingActivities / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
|
| Effect of exchange rate changes on cash and cash equivalents |
|
|
|
|
|
|
|
|
|
(51)us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
(33)us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
|
| Net increase in cash and cash equivalents |
|
|
|
|
|
|
|
|
|
7,484us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
10,337us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
|
| Accumulated other comprehensive income |
|
|
|
|
(1,088)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
|
|
|
|
(1,088)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
(1,035)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
(984)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
| Accumulated deficit |
|
|
|
|
(72,468)us-gaap_RetainedEarningsAccumulatedDeficit / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
|
|
|
|
(72,468)us-gaap_RetainedEarningsAccumulatedDeficit / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
(74,092)us-gaap_RetainedEarningsAccumulatedDeficit / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
(76,372)us-gaap_RetainedEarningsAccumulatedDeficit / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
| Total stockholders’ equity |
|
|
|
|
$ 103,117us-gaap_StockholdersEquity / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
|
|
|
|
$ 103,117us-gaap_StockholdersEquity / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
$ 91,555us-gaap_StockholdersEquity / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |
$ (64,424)us-gaap_StockholdersEquity / us-gaap_StatementScenarioAxis = us-gaap_ScenarioPreviouslyReportedMember |