Condensed Consolidated Statements of Stockholders' Equity - USD ($) $ in Thousands | Total | Revision of Prior Period, Reclassification, Adjustment [Member] | Common Stock [Member] | Treasury Stock [Member] | Additional Paid-in Capital [Member] | Additional Paid-in Capital [Member] Revision of Prior Period, Reclassification, Adjustment [Member] | Accumulated Other Comprehensive Income (Loss) [Member] | Retained Earnings [Member] | Retained Earnings [Member] Revision of Prior Period, Reclassification, Adjustment [Member] |
Beginning balance at Dec. 31, 2020 | | $ 202,506 | | $ 56 | $ (199,796) | $ 363,055 | | $ 1,611 | $ 37,580 | |
Beginning balance (ASU 2020-06) at Dec. 31, 2020 | | | $ (30,267) | | | | $ (30,500) | | | $ 233 |
Beginning balance, shares at Dec. 31, 2020 | | | | 55,633,155 | 27,510,552 | | | | | |
Issuance of common stock from restricted stock awards, shares | | | | 24,815 | | | | | | |
Impact of net settlements | | (370) | | | | (370) | | | | |
Impact of net settlements, shares | | | | 290 | 290 | | | | | |
Stock-based compensation expense | [1] | 7,425 | | | | 7,425 | | | | |
Comprehensive income: | | | | | | | | | | |
Unrealized gain (loss) on foreign currency exchange | | 1,034 | | | | | | 1,034 | | |
Net income | | 1,810 | | | | | | | 1,810 | |
Ending balance at Mar. 31, 2021 | | 182,138 | | $ 56 | $ (199,796) | 339,610 | | 2,645 | 39,623 | |
Ending balance, shares at Mar. 31, 2021 | | | | 55,658,260 | 27,510,842 | | | | | |
Beginning balance at Dec. 31, 2020 | | 202,506 | | $ 56 | $ (199,796) | 363,055 | | 1,611 | 37,580 | |
Beginning balance (ASU 2020-06) at Dec. 31, 2020 | | | $ (30,267) | | | | $ (30,500) | | | $ 233 |
Beginning balance, shares at Dec. 31, 2020 | | | | 55,633,155 | 27,510,552 | | | | | |
Comprehensive income: | | | | | | | | | | |
Net income | | 16,914 | | | | | | | | |
Ending balance at Sep. 30, 2021 | | 208,521 | | $ 56 | $ (199,796) | 353,644 | | (110) | 54,727 | |
Ending balance, shares at Sep. 30, 2021 | | | | 56,330,528 | 27,510,842 | | | | | |
Beginning balance at Mar. 31, 2021 | | 182,138 | | $ 56 | $ (199,796) | 339,610 | | 2,645 | 39,623 | |
Beginning balance, shares at Mar. 31, 2021 | | | | 55,658,260 | 27,510,842 | | | | | |
Issuance of common stock from exercise of options, shares | | | | 2,500 | | | | | | |
Issuance of common stock from exercise of options | | 16 | | | | 16 | | | | |
Issuance of common stock from restricted stock awards, shares | | | | 9,125 | | | | | | |
Registration fees | | (29) | | | | (29) | | | | |
Stock-based compensation expense | | 6,012 | | | | 6,012 | | | | |
Comprehensive income: | | | | | | | | | | |
Unrealized gain (loss) on foreign currency exchange | | 575 | | | | | | 575 | | |
Net income | | 5,120 | | | | | | | 5,120 | |
Ending balance at Jun. 30, 2021 | | 193,832 | | $ 56 | $ (199,796) | 345,609 | | 3,220 | 44,743 | |
Ending balance, shares at Jun. 30, 2021 | | | | 55,669,885 | 27,510,842 | | | | | |
Issuance of common stock from restricted stock awards, shares | | | | 660,643 | | | | | | |
Stock-based compensation expense | [2] | 8,035 | | | | 8,035 | | | | |
Comprehensive income: | | | | | | | | | | |
Unrealized gain (loss) on foreign currency exchange | | (3,330) | | | | | | (3,330) | | |
Net income | | 9,984 | | | | | | | 9,984 | |
Ending balance at Sep. 30, 2021 | | 208,521 | | $ 56 | $ (199,796) | 353,644 | | (110) | 54,727 | |
Ending balance, shares at Sep. 30, 2021 | | | | 56,330,528 | 27,510,842 | | | | | |
Beginning balance at Dec. 31, 2021 | | 222,757 | | $ 57 | $ (199,796) | 383,436 | | 298 | 38,762 | |
Beginning balance, shares at Dec. 31, 2021 | | | | 57,144,740 | 27,510,842 | | | | | |
Issuance of common stock from restricted stock awards, shares | | | | 122,571 | | | | | | |
Purchase of common stock through stock buyback | | (323) | | | $ 323 | | | | | |
Purchase of common stock through stock buyback, shares | | | | | 4,614 | | | | | |
Impact of net settlements | | (4,382) | | | | (4,382) | | | | |
Impact of net settlements, shares | | | | 1,340 | 1,340 | | | | | |
Stock-based compensation expense | [1] | 18,744 | | | | 18,744 | | | | |
Comprehensive income: | | | | | | | | | | |
Unrealized gain (loss) on investments | | (69) | | | | | | (69) | | |
Unrealized gain (loss) on foreign currency exchange | | (2,695) | | | | | | (2,695) | | |
Net income | | 7,164 | | | | | | | 7,164 | |
Ending balance at Mar. 31, 2022 | | 241,196 | | $ 57 | $ (200,119) | 397,798 | | (2,466) | 45,926 | |
Ending balance, shares at Mar. 31, 2022 | | | | 57,268,651 | 27,516,796 | | | | | |
Beginning balance at Dec. 31, 2021 | | $ 222,757 | | $ 57 | $ (199,796) | 383,436 | | 298 | 38,762 | |
Beginning balance, shares at Dec. 31, 2021 | | | | 57,144,740 | 27,510,842 | | | | | |
Issuance of common stock from exercise of options, shares | | 12,500 | | | | | | | | |
Comprehensive income: | | | | | | | | | | |
Unrealized gain (loss) on investments | | $ (231) | | | | | | | | |
Net income | | 34,420 | | | | | | | | |
Ending balance at Sep. 30, 2022 | | 229,838 | | $ 57 | $ (245,025) | 417,745 | | (16,121) | 73,182 | |
Ending balance, shares at Sep. 30, 2022 | | | | 57,740,251 | 28,219,662 | | | | | |
Beginning balance at Mar. 31, 2022 | | 241,196 | | $ 57 | $ (200,119) | 397,798 | | (2,466) | 45,926 | |
Beginning balance, shares at Mar. 31, 2022 | | | | 57,268,651 | 27,516,796 | | | | | |
Issuance of common stock from restricted stock awards, shares | | | | 8,000 | | | | | | |
Purchase of common stock through stock buyback | | (17,169) | | | $ 17,169 | | | | | |
Purchase of common stock through stock buyback, shares | | | | | 252,493 | | | | | |
Stock-based compensation expense | | 9,135 | | | | 9,135 | | | | |
Comprehensive income: | | | | | | | | | | |
Unrealized gain (loss) on investments | | (138) | | | | | | (138) | | |
Unrealized gain (loss) on foreign currency exchange | | (7,037) | | | | | | (7,037) | | |
Net income | | 12,415 | | | | | | | 12,415 | |
Ending balance at Jun. 30, 2022 | | 238,402 | | $ 57 | $ (217,288) | 406,933 | | (9,641) | 58,341 | |
Ending balance, shares at Jun. 30, 2022 | | | | 57,276,651 | 27,769,289 | | | | | |
Issuance of common stock from exercise of options, shares | | | | 12,500 | | | | | | |
Issuance of common stock from exercise of options | | 98 | | | | 98 | | | | |
Issuance of common stock from restricted stock awards, shares | | | | 451,100 | | | | | | |
Purchase of common stock through stock buyback | | (27,737) | | | $ 27,737 | | | | | |
Purchase of common stock through stock buyback, shares | | | | | 450,373 | | | | | |
Stock-based compensation expense | [2] | 10,714 | | | | 10,714 | | | | |
Comprehensive income: | | | | | | | | | | |
Unrealized gain (loss) on investments | | (24) | | | | | | (24) | | |
Unrealized gain (loss) on foreign currency exchange | | (6,456) | | | | | | (6,456) | | |
Net income | | 14,841 | | | | | | | 14,841 | |
Ending balance at Sep. 30, 2022 | | $ 229,838 | | $ 57 | $ (245,025) | $ 417,745 | | $ (16,121) | $ 73,182 | |
Ending balance, shares at Sep. 30, 2022 | | | | 57,740,251 | 28,219,662 | | | | | |
| |
[1] Includes $ 9.1 and $ 0.8 million of accrued compensation expense expensed in previous year for the three months ended March 31, 2022 and 2021 , respectively. Excludes $ 0 and $ 6.3 million of accrued compensation expense that has not been issued for the three months ended September 30, 2022 and 2021 , respectively. | |