Consolidated Statements of Shareholders' Equity (Unaudited) - USD ($) $ in Thousands | Common Class A [Member]Common Stock [Member] | Common Class A [Member]Retained Earnings [Member] | Common Class A [Member] | Common Class B [Member]Common Stock [Member] | Common Class B [Member]Retained Earnings [Member] | Common Class B [Member] | Common Stock [Member] | Additional Paid-in Capital [Member] | Treasury Stock [Member] | Retained Earnings [Member] | AOCI Attributable to Parent [Member] | Total |
Balance (in shares) at Dec. 31, 2018 | 28,710,000 | | | 8,290,000 | | | | | | | | |
Balance at Dec. 31, 2018 | | | | | | | $ 458 | $ 370,025 | $ (245,842) | $ 942,287 | $ 0 | $ 1,066,928 |
Stock options exercised and stock awards (in shares) | 59,000 | | | 0 | | | | | | | | |
Stock options exercised and stock awards | | | | | | | 1 | 1,230 | 0 | 0 | 0 | 1,231 |
Stock-based compensation related to stock options, restricted shares and employee stock purchase plan | | | | | | | 0 | 8,836 | 0 | 0 | 0 | 8,836 |
Vesting of restricted share awards (in shares) | 0 | | | 226,000 | | | | | | | | |
Vesting of restricted share awards | | | | | | | 2 | (2,317) | 0 | 0 | 0 | (2,315) |
Issuance of common stock under employee stock purchase plan (in shares) | 57,000 | | | 0 | | | | | | | | |
Issuance of common stock under employee stock purchase plan | | | | | | | 1 | 1,680 | 0 | 0 | 0 | 1,681 |
Common stock repurchases (in shares) | (639,000) | | | (53,000) | | | | | | | | |
Common stock repurchases | | | | | | | 0 | 0 | (26,048) | 0 | 0 | (26,048) |
Dividends | | $ (3,389) | $ (3,389) | | $ (991) | $ (991) | | | | | | |
Other comprehensive income | | | | | | | 0 | 0 | 0 | 0 | 384 | 384 |
Net income | | | | | | | 0 | 0 | 0 | 37,104 | 0 | 37,104 |
Balance (in shares) at Mar. 31, 2019 | 28,187,000 | | | 8,463,000 | | | | | | | | |
Balance at Mar. 31, 2019 | | | | | | | 462 | 379,454 | (271,890) | 975,011 | 384 | 1,083,421 |
Balance (in shares) at Dec. 31, 2018 | 28,710,000 | | | 8,290,000 | | | | | | | | |
Balance at Dec. 31, 2018 | | | | | | | 458 | 370,025 | (245,842) | 942,287 | 0 | 1,066,928 |
Net income | | | | | | | | | | | | 78,725 |
Balance (in shares) at Jun. 30, 2019 | 28,023,000 | | | 8,396,000 | | | | | | | | |
Balance at Jun. 30, 2019 | | | | | | | 462 | 384,940 | (283,952) | 1,012,195 | (121) | 1,113,524 |
Balance (in shares) at Mar. 31, 2019 | 28,187,000 | | | 8,463,000 | | | | | | | | |
Balance at Mar. 31, 2019 | | | | | | | 462 | 379,454 | (271,890) | 975,011 | 384 | 1,083,421 |
Stock options exercised and stock awards (in shares) | 87,000 | | | 0 | | | | | | | | |
Stock options exercised and stock awards | | | | | | | 0 | 1,745 | 0 | 0 | 0 | 1,745 |
Stock-based compensation related to stock options, restricted shares and employee stock purchase plan | | | | | | | 0 | 4,258 | 0 | 0 | 0 | 4,258 |
Vesting of restricted share awards | | | | | | | 0 | (517) | 0 | 0 | 0 | (517) |
Common stock repurchases (in shares) | (251) | | | (67) | | | | | | | | |
Common stock repurchases | | | | | | | 0 | 0 | (12,062) | 0 | 0 | (12,062) |
Dividends | | (3,387) | (3,387) | | (1,050) | (1,050) | | | | | | |
Other comprehensive income | | | | | | | 0 | 0 | 0 | 0 | (505) | (505) |
Net income | | | | | | | 0 | 0 | 0 | 41,621 | 0 | 41,621 |
Balance (in shares) at Jun. 30, 2019 | 28,023,000 | | | 8,396,000 | | | | | | | | |
Balance at Jun. 30, 2019 | | | | | | | 462 | 384,940 | (283,952) | 1,012,195 | (121) | 1,113,524 |
Balance (in shares) at Dec. 31, 2019 | 27,954,000 | | | 8,240,000 | | | | | | | | |
Balance at Dec. 31, 2019 | | | | | | | 465 | 397,267 | (304,129) | 1,065,553 | 337 | 1,159,493 |
Stock options exercised and stock awards (in shares) | 73,000 | | | 0 | | | | | | | | |
Stock options exercised and stock awards | | | | | | | 1 | 1,421 | 0 | 0 | 0 | 1,422 |
Stock-based compensation related to stock options, restricted shares and employee stock purchase plan | | | | | | | 0 | 8,553 | 0 | 0 | 0 | 8,553 |
Vesting of restricted share awards (in shares) | 0 | | | 224,000 | | | | | | | | |
Vesting of restricted share awards | | | | | | | 2 | (2,416) | 0 | 0 | 0 | (2,414) |
Issuance of common stock under employee stock purchase plan (in shares) | 61,000 | | | 0 | | | | | | | | |
Issuance of common stock under employee stock purchase plan | | | | | | | 1 | 1,900 | 0 | 0 | 0 | 1,901 |
Common stock repurchases (in shares) | (555,000) | | | (54,000) | | | | | | | | |
Common stock repurchases | | | | | | | 0 | 0 | (19,902) | 0 | 0 | (19,902) |
Dividends | | (3,646) | (3,646) | | (1,108) | (1,108) | | | | | | |
Other comprehensive income | | | | | | | 0 | 0 | 0 | 0 | (1,930) | (1,930) |
Net income | | | | | | | 0 | 0 | 0 | 23,107 | 0 | 23,107 |
Balance (in shares) at Mar. 31, 2020 | 27,533,000 | | | 8,410,000 | | | | | | | | |
Balance at Mar. 31, 2020 | | | | | | | 469 | 406,725 | (324,031) | 1,083,906 | (1,593) | 1,165,476 |
Balance (in shares) at Dec. 31, 2019 | 27,954,000 | | | 8,240,000 | | | | | | | | |
Balance at Dec. 31, 2019 | | | | | | | 465 | 397,267 | (304,129) | 1,065,553 | 337 | 1,159,493 |
Net income | | | | | | | | | | | | 39,923 |
Balance (in shares) at Jun. 30, 2020 | 27,728,000 | | | 8,410,000 | | | | | | | | |
Balance at Jun. 30, 2020 | | | | | | | 471 | 414,812 | (324,031) | 1,095,976 | (668) | 1,186,560 |
Balance (in shares) at Mar. 31, 2020 | 27,533,000 | | | 8,410,000 | | | | | | | | |
Balance at Mar. 31, 2020 | | | | | | | 469 | 406,725 | (324,031) | 1,083,906 | (1,593) | 1,165,476 |
Stock options exercised and stock awards (in shares) | 195,000 | | | 0 | | | | | | | | |
Stock options exercised and stock awards | | | | | | | 2 | 4,529 | 0 | 0 | 0 | 4,531 |
Stock-based compensation related to stock options, restricted shares and employee stock purchase plan | | | | | | | 0 | 3,586 | 0 | 0 | 0 | 3,586 |
Vesting of restricted share awards (in shares) | 0 | | | 0 | | | | | | | | |
Vesting of restricted share awards | | | | | | | 0 | (28) | 0 | 0 | 0 | (28) |
Dividends | | $ (3,581) | $ (3,581) | | $ (1,165) | $ (1,165) | | | | | | |
Other comprehensive income | | | | | | | 0 | 0 | 0 | 0 | 925 | 9,251,681 |
Net income | | | | | | | 0 | 0 | 0 | 16,816 | 0 | 16,816 |
Balance (in shares) at Jun. 30, 2020 | 27,728,000 | | | 8,410,000 | | | | | | | | |
Balance at Jun. 30, 2020 | | | | | | | $ 471 | $ 414,812 | $ (324,031) | $ 1,095,976 | $ (668) | $ 1,186,560 |