Changes to Statements of Stockholders' Equity (Unaudited) - USD ($) | Common Stock [Member] | Additional Paid-in Capital [Member] | Retained Earnings [Member] | AOCI Attributable to Parent [Member] | Treasury Stock [Member] | Total |
BALANCES (in shares) at Dec. 31, 2018 | 35,556,595 | | | | 14,169 | |
BALANCES at Dec. 31, 2018 | $ 35,556 | $ 323,079,437 | $ (201,352,682) | $ (31,610) | $ (256,226) | $ 121,474,475 |
Exercise of options to purchase common stock (in shares) | 248,195 | | | | 0 | |
Exercise of options to purchase common stock | $ 248 | 1,791,420 | 0 | 0 | $ 0 | 1,791,668 |
Issuance of restricted stock units (in shares) | 61,532 | | | | 0 | |
Issuance of restricted stock units | $ 62 | (673,836) | 0 | 0 | $ 0 | (673,774) |
Share-based compensation expense | 0 | 1,260,126 | 0 | 0 | 0 | 1,260,126 |
Foreign Currency Translation | 0 | 0 | 0 | 91,047 | 0 | 91,047 |
Net income (loss) | $ 0 | 0 | (3,422,000) | 0 | $ 0 | (3,422,000) |
BALANCES (in shares) at Mar. 31, 2019 | 35,866,322 | | | | 14,169 | |
BALANCES at Mar. 31, 2019 | $ 35,866 | 325,457,147 | (204,774,682) | 59,437 | $ (256,226) | 120,521,542 |
BALANCES (in shares) at Dec. 31, 2018 | 35,556,595 | | | | 14,169 | |
BALANCES at Dec. 31, 2018 | $ 35,556 | 323,079,437 | (201,352,682) | (31,610) | $ (256,226) | 121,474,475 |
Foreign Currency Translation | | | | | | (143,941) |
Net income (loss) | | | | | | (6,016,187) |
BALANCES (in shares) at Sep. 30, 2019 | 36,100,662 | | | | 14,169 | |
BALANCES at Sep. 30, 2019 | $ 36,100 | 331,538,514 | (207,368,869) | (175,551) | $ (256,226) | 123,773,968 |
BALANCES (in shares) at Mar. 31, 2019 | 35,866,322 | | | | 14,169 | |
BALANCES at Mar. 31, 2019 | $ 35,866 | 325,457,147 | (204,774,682) | 59,437 | $ (256,226) | 120,521,542 |
Exercise of options to purchase common stock (in shares) | 194,497 | | | | 0 | |
Exercise of options to purchase common stock | $ 194 | 1,983,685 | 0 | 0 | $ 0 | 1,983,879 |
Issuance of restricted stock units (in shares) | 29,126 | | | | 0 | |
Issuance of restricted stock units | $ 29 | (579,207) | 0 | 0 | $ 0 | (579,178) |
Share-based compensation expense | 0 | 1,480,882 | 0 | 0 | 0 | 1,480,882 |
Foreign Currency Translation | 0 | 0 | 0 | (153,321) | 0 | (153,321) |
Net income (loss) | $ 0 | 0 | (5,661,350) | 0 | $ 0 | (5,661,350) |
BALANCES (in shares) at Jun. 30, 2019 | 36,089,945 | | | | 14,169 | |
BALANCES at Jun. 30, 2019 | $ 36,089 | 328,342,507 | (210,436,032) | (93,884) | $ (256,226) | 117,592,454 |
Exercise of options to purchase common stock (in shares) | 10,717 | | | | 0 | |
Exercise of options to purchase common stock | $ 11 | 66,359 | 0 | 0 | $ 0 | 66,370 |
Share-based compensation expense | 0 | 3,129,648 | 0 | 0 | 0 | 3,129,648 |
Foreign Currency Translation | 0 | 0 | 0 | (81,667) | 0 | (81,667) |
Net income (loss) | $ 0 | 0 | 3,067,163 | 0 | $ 0 | 3,067,163 |
BALANCES (in shares) at Sep. 30, 2019 | 36,100,662 | | | | 14,169 | |
BALANCES at Sep. 30, 2019 | $ 36,100 | 331,538,514 | (207,368,869) | (175,551) | $ (256,226) | 123,773,968 |
BALANCES (in shares) at Dec. 31, 2019 | 36,162,433 | | | | 14,169 | |
BALANCES at Dec. 31, 2019 | $ 36,162 | 334,299,172 | (202,735,417) | (79,170) | $ (256,226) | 131,264,521 |
Exercise of options to purchase common stock (in shares) | 44,156 | | | | 0 | |
Exercise of options to purchase common stock | $ 44 | 402,512 | 0 | 0 | $ 0 | 402,556 |
Issuance of restricted stock units (in shares) | 64,823 | | | | 0 | |
Issuance of restricted stock units | $ 65 | (644,664) | 0 | 0 | $ 0 | (644,599) |
Share-based compensation expense | $ 0 | 2,241,847 | 0 | 0 | $ 0 | 2,241,847 |
Shares issued in primary offering (in shares) | 3,999,999 | | | | 0 | |
Shares issued in primary offering | $ 4,000 | 252,058,254 | 0 | 0 | $ 0 | 252,062,254 |
Foreign Currency Translation | 0 | 0 | 0 | 58,955 | 0 | 58,955 |
Net income (loss) | $ 0 | 0 | (3,590,233) | 0 | $ 0 | (3,590,233) |
BALANCES (in shares) at Mar. 31, 2020 | 40,271,411 | | | | 14,169 | |
BALANCES at Mar. 31, 2020 | $ 40,271 | 588,357,121 | (206,325,650) | (20,215) | $ (256,226) | 381,795,301 |
BALANCES (in shares) at Dec. 31, 2019 | 36,162,433 | | | | 14,169 | |
BALANCES at Dec. 31, 2019 | $ 36,162 | 334,299,172 | (202,735,417) | (79,170) | $ (256,226) | 131,264,521 |
Foreign Currency Translation | | | | | | 40,881 |
Net income (loss) | | | | | | 109,894 |
BALANCES (in shares) at Sep. 30, 2020 | 40,645,047 | | | | 14,169 | |
BALANCES at Sep. 30, 2020 | $ 40,645 | 597,368,593 | (202,625,523) | (38,289) | $ (256,226) | 394,489,200 |
BALANCES (in shares) at Mar. 31, 2020 | 40,271,411 | | | | 14,169 | |
BALANCES at Mar. 31, 2020 | $ 40,271 | 588,357,121 | (206,325,650) | (20,215) | $ (256,226) | 381,795,301 |
Exercise of options to purchase common stock (in shares) | 199,796 | | | | 0 | |
Exercise of options to purchase common stock | $ 200 | 1,687,780 | 0 | 0 | $ 0 | 1,687,980 |
Issuance of restricted stock units (in shares) | 9,018 | | | | 0 | |
Issuance of restricted stock units | $ 9 | (991,706) | 0 | 0 | $ 0 | (991,697) |
Share-based compensation expense | 0 | 2,332,915 | 0 | 0 | 0 | 2,332,915 |
Foreign Currency Translation | 0 | 0 | 0 | (386,566) | 0 | (386,566) |
Net income (loss) | $ 0 | 0 | 153,094 | 0 | $ 0 | 153,094 |
BALANCES (in shares) at Jun. 30, 2020 | 40,480,225 | | | | 14,169 | |
BALANCES at Jun. 30, 2020 | $ 40,480 | 591,386,109 | (206,172,556) | (406,781) | $ (256,226) | 384,591,026 |
Exercise of options to purchase common stock (in shares) | 164,089 | | | | 0 | |
Exercise of options to purchase common stock | $ 164 | 2,572,756 | 0 | 0 | $ 0 | 2,572,920 |
Issuance of restricted stock units (in shares) | 733 | | | | 0 | |
Issuance of restricted stock units | $ 1 | 0 | 0 | 0 | $ 0 | 1 |
Share-based compensation expense | 0 | 3,409,728 | 0 | 0 | 0 | 3,409,728 |
Foreign Currency Translation | 0 | 0 | 0 | 368,492 | 0 | 368,492 |
Net income (loss) | $ 0 | 0 | 3,547,033 | 0 | $ 0 | 3,547,033 |
BALANCES (in shares) at Sep. 30, 2020 | 40,645,047 | | | | 14,169 | |
BALANCES at Sep. 30, 2020 | $ 40,645 | $ 597,368,593 | $ (202,625,523) | $ (38,289) | $ (256,226) | $ 394,489,200 |