| 12. Stock Options (Details Narrative) - USD ($) | 3 Months Ended | |
|---|---|---|
| Mar. 31, 2019 | Mar. 31, 2018 | |
| Share-based compensation expense | $ 35,749 | $ 47,852 | 
| 2015 Plan [Member] | ||
| Shares authorized under plan | 2,167,667 | |
| Stock Options [Member] | ||
| Options granted | 81,000 | |
| Fair value of options granted | $ 117,797 | |
| Unvested share-based compensation | $ 315,102 | |
| X | ||||||||||
| 
- Definition Fair value of options granted No definition available. 
 | 
| X | ||||||||||
| 
- Definition Amount of cost not yet recognized for nonvested award under share-based payment arrangement. Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef 
 | 
| X | ||||||||||
| 
- Definition Amount of noncash expense for share-based payment arrangement. Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef 
 | 
| X | ||||||||||
| 
- Definition Number of shares authorized for issuance under share-based payment arrangement. Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef 
 | 
| X | ||||||||||
| 
- Definition Gross number of share options (or share units) granted during the period. No definition available. 
 | 
| X | ||||||||||
| 
- Details 
 | 
| X | ||||||||||
| 
- Details 
 |