| 13. Stock Options (Details Narrative) - USD ($) | 6 Months Ended | |
|---|---|---|
| Jun. 30, 2019 | Jun. 30, 2018 | |
| Share-based compensation expense | $ 93,156 | $ 68,722 | 
| 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 | $ 257,695 | |
| 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 
 |