| Schedule of Revenue from External Customers Attributed to Foreign Countries by Geographic Area [Table Text Block] |
| | | Three months ended September 30: | | | Nine months ended September 30: | | | | | | | | | | | | | | | | | | | $ | 68,462 | | | $ | 106,300 | | | $ | 181,677 | | | $ | 264,034 | | | | | | 844 | | | | 754 | | | | 2,143 | | | | 1,705 | | | | | $ | 69,306 | | | $ | 107,054 | | | $ | 183,820 | | | $ | 265,739 | |
|
| Schedule of Segment Reporting Information, by Segment [Table Text Block] |
| | | Three months ended September 30: | | | Nine months ended September 30: | | | | | | | | | | | | | | | | | Revenue | | | | | | | | | | | | | | | | | | | | $ | 20,455 | | | $ | 26,665 | | | $ | 60,148 | | | $ | 84,621 | | | | | | 3,844 | | | | 4,942 | | | | 13,782 | | | | 13,880 | | | | | | 24,299 | | | | 31,607 | | | | 73,930 | | | | 98,501 | | | | | | 45,007 | | | | 75,447 | | | | 109,890 | | | | 167,238 | | | Total Revenue | | $ | 69,306 | | | $ | 107,054 | | | $ | 183,820 | | | $ | 265,739 | | | | | | | | | | | | | | | | | | | | | Segment gross profit | | | | | | | | | | | | | | | | | | | | $ | 7,853 | | | $ | 7,294 | | | $ | 22,722 | | | $ | 28,159 | | | | | | 2,466 | | | | 1,381 | | | | 6,622 | | | | (626 | ) | | Total gross profit | | | 10,319 | | | | 8,675 | | | | 29,344 | | | | 27,533 | | | Corporate expenses | | | (2,478 | ) | | | (2,742 | ) | | | (7,598 | ) | | | (7,646 | ) | | Income before interest and taxes | | | 7,841 | | | | 5,933 | | | | 21,746 | | | | 19,887 | | | Interest and other income | | | 1,637 | | | | 1,336 | | | | 4,446 | | | | 5,210 | | | Interest and other expense | | | (478 | ) | | | (359 | ) | | | (1,188 | ) | | | (261 | ) | | Benefit/(provision) for income taxes | | | 3,868 | | | | (2,060 | ) | | | 12,657 | | | | (8,062 | ) | | Net income | | $ | 12,868 | | | $ | 4,850 | | | $ | 37,661 | | | $ | 16,774 | |
|