Condensed Consolidated Statements of Shareholders' Equity (Unaudited) - USD ($) | Total | Common Stock | Additional Paid-In Capital | Accumulated Other Comprehensive Income (Loss) | Treasury Stock | Retained Earnings |
Balance, beginning of period (in shares) at Dec. 31, 2018 | | 47,932,305 | | | | |
Balance, beginning of period at Dec. 31, 2018 | $ 45,255,859 | $ 49,708 | $ 28,027,742 | $ (2,895,683) | $ (2,609,485) | $ 22,683,577 |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Stock based compensation | 66,714 | | 66,714 | | | |
Stock issued in exercise of stock options (in shares) | | 2,483 | | | | |
Stock issued in exercise of stock options | 0 | $ 2 | (2) | | | |
Stock issued in settlement of RSUs (in shares) | | 148,723 | | | | |
Stock issued in settlement of RSUs | 379,861 | $ 149 | 379,712 | | | |
Tax withholdings paid related to stock based compensation | (143,022) | | (143,022) | | | |
Treasury stock repurchased (in shares) | | (775,287) | | | | |
Treasury stock repurchased | (1,333,578) | | | | (1,333,578) | |
Foreign currency translation | 149,415 | | | 149,415 | | |
Unrealized gains (losses) on investments | 68,752 | | | 68,752 | | |
Net loss | 1,668,618 | | | | | 1,668,618 |
Balance, end of period (in shares) at Mar. 31, 2019 | | 47,308,224 | | | | |
Balance, end of period at Mar. 31, 2019 | 46,112,619 | $ 49,859 | 28,331,144 | (2,677,516) | (3,943,063) | 24,352,195 |
Balance, beginning of period (in shares) at Dec. 31, 2018 | | 47,932,305 | | | | |
Balance, beginning of period at Dec. 31, 2018 | 45,255,859 | $ 49,708 | 28,027,742 | (2,895,683) | (2,609,485) | 22,683,577 |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Stock Issued During Period, Value, Acquisitions | 1,020,000 | | | | | |
Net loss | 3,575,870 | | | | | |
Balance, end of period (in shares) at Sep. 30, 2019 | | 47,618,604 | | | | |
Balance, end of period at Sep. 30, 2019 | 48,430,295 | $ 50,762 | 29,608,685 | (2,629,369) | (4,859,230) | 26,259,447 |
Balance, beginning of period (in shares) at Mar. 31, 2019 | | 47,308,224 | | | | |
Balance, beginning of period at Mar. 31, 2019 | 46,112,619 | $ 49,859 | 28,331,144 | (2,677,516) | (3,943,063) | 24,352,195 |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Stock based compensation | 297,127 | | 297,127 | | | |
Stock issued in exercise of stock options (in shares) | | 9,174 | | | | |
Stock issued in exercise of stock options | 6,850 | $ 9 | 6,841 | | | |
Stock issued in settlement of RSUs (in shares) | | 148,794 | | | | |
Stock issued in settlement of RSUs | 0 | $ 149 | (149) | | | |
Tax withholdings paid related to stock based compensation | (41,411) | | (41,411) | | | |
Foreign currency translation | 102,435 | | | 102,435 | | |
Unrealized gains (losses) on investments | 49,495 | | | 49,495 | | |
Net loss | 985,504 | | | | | 985,504 |
Balance, end of period (in shares) at Jun. 30, 2019 | | 47,466,192 | | | | |
Balance, end of period at Jun. 30, 2019 | 47,512,619 | $ 50,017 | 28,593,552 | (2,525,586) | (3,943,063) | 25,337,699 |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Stock based compensation | (5,571) | | (5,571) | | | |
Stock issued in exercise of stock options (in shares) | | 4,836 | | | | |
Stock issued in exercise of stock options | 2,020 | $ 5 | 2,015 | | | |
Stock issued in settlement of RSUs (in shares) | | 546 | | | | |
Stock issued in settlement of RSUs | 0 | $ 1 | (1) | | | |
Stock issues during acquisition (in shares) | | 739,130 | | | | |
Stock Issued During Period, Value, Acquisitions | 1,020,000 | $ 739 | 1,019,261 | | | |
Tax withholdings paid related to stock based compensation | (571) | | (571) | | | |
Treasury stock repurchased (in shares) | | (592,100) | | | | |
Treasury stock repurchased | (916,167) | | | | (916,167) | |
Foreign currency translation | (91,397) | | | (91,397) | | |
Unrealized gains (losses) on investments | (12,386) | | | (12,386) | | |
Net loss | 921,748 | | | | | 921,748 |
Balance, end of period (in shares) at Sep. 30, 2019 | | 47,618,604 | | | | |
Balance, end of period at Sep. 30, 2019 | 48,430,295 | $ 50,762 | 29,608,685 | (2,629,369) | (4,859,230) | 26,259,447 |
Balance, beginning of period (in shares) at Dec. 31, 2019 | | 47,411,977 | | | | |
Balance, beginning of period at Dec. 31, 2019 | 46,571,586 | $ 50,824 | 29,584,172 | (2,415,460) | (5,353,019) | 24,705,069 |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Stock based compensation | 66,348 | | 66,348 | | | |
Stock issued in exercise of stock options (in shares) | | 2,000 | | | | |
Stock issued in exercise of stock options | 2,020 | $ 2 | 2,018 | | | |
Stock issued in settlement of RSUs (in shares) | | 271,684 | | | | |
Stock issued in settlement of RSUs | 419,373 | $ 272 | 419,101 | | | |
Tax withholdings paid related to stock based compensation | (148,879) | | (148,879) | | | |
Foreign currency translation | (945,423) | | | (945,423) | | |
Unrealized gains (losses) on investments | (157,354) | | | (157,354) | | |
Net loss | (365,264) | | | | | (365,264) |
Balance, end of period (in shares) at Mar. 31, 2020 | | 47,685,661 | | | | |
Balance, end of period at Mar. 31, 2020 | 45,442,407 | $ 51,098 | 29,922,760 | (3,518,237) | (5,353,019) | 24,339,805 |
Balance, beginning of period (in shares) at Dec. 31, 2019 | | 47,411,977 | | | | |
Balance, beginning of period at Dec. 31, 2019 | 46,571,586 | $ 50,824 | 29,584,172 | (2,415,460) | (5,353,019) | 24,705,069 |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Stock Issued During Period, Value, Acquisitions | 0 | | | | | |
Net loss | (2,231,515) | | | | | |
Balance, end of period (in shares) at Sep. 30, 2020 | | 47,959,582 | | | | |
Balance, end of period at Sep. 30, 2020 | 44,506,223 | $ 51,371 | 30,208,082 | (2,873,765) | (5,353,019) | 22,473,554 |
Balance, beginning of period (in shares) at Mar. 31, 2020 | | 47,685,661 | | | | |
Balance, beginning of period at Mar. 31, 2020 | 45,442,407 | $ 51,098 | 29,922,760 | (3,518,237) | (5,353,019) | 24,339,805 |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Stock based compensation | 183,850 | | 183,850 | | | |
Stock issued in settlement of RSUs (in shares) | | 227,454 | | | | |
Stock issued in settlement of RSUs | 0 | $ 227 | (227) | | | |
Foreign currency translation | 375,267 | | | 375,267 | | |
Unrealized gains (losses) on investments | 72,875 | | | 72,875 | | |
Net loss | (808,503) | | | | | (808,503) |
Balance, end of period (in shares) at Jun. 30, 2020 | | 47,913,115 | | | | |
Balance, end of period at Jun. 30, 2020 | 45,265,896 | $ 51,325 | 30,106,383 | (3,070,095) | (5,353,019) | 23,531,302 |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Stock based compensation | 101,745 | | 101,745 | | | |
Stock issued in settlement of RSUs (in shares) | | 46,467 | | | | |
Stock issued in settlement of RSUs | 0 | $ 46 | (46) | | | |
Foreign currency translation | 233,170 | | | 233,170 | | |
Unrealized gains (losses) on investments | (36,840) | | | (36,840) | | |
Net loss | (1,057,748) | | | | | (1,057,748) |
Balance, end of period (in shares) at Sep. 30, 2020 | | 47,959,582 | | | | |
Balance, end of period at Sep. 30, 2020 | $ 44,506,223 | $ 51,371 | $ 30,208,082 | $ (2,873,765) | $ (5,353,019) | $ 22,473,554 |