SEC Info  
    Home      Search      My Interests      Help      Sign In      Please Sign In

TOMI Environmental Solutions, Inc. – ‘10-K’ for 12/31/21 – ‘JSON’

On:  Tuesday, 3/29/22, at 5:25pm ET   ·   For:  12/31/21   ·   Accession #:  1654954-22-4048   ·   File #:  1-39574

Previous ‘10-K’:  ‘10-K’ on 3/30/21 for 12/31/20   ·   Next:  ‘10-K’ on 3/16/23 for 12/31/22   ·   Latest:  ‘10-K’ on 4/1/24 for 12/31/23   ·   13 References:   

Find Words in Filings emoji
 
  in    Show  and   Hints

  As Of               Filer                 Filing    For·On·As Docs:Size             Issuer                      Filing Agent

 3/29/22  TOMI Environmental Solutions, Inc 10-K       12/31/21   91:7.1M                                   Blueprint/FA

Annual Report   —   Form 10-K

Filing Table of Contents

Document/Exhibit                   Description                      Pages   Size 

 1: 10-K        Annual Report                                       HTML   1.13M 
 2: EX-4.2      Description of Capital Stock                        HTML     33K 
 3: EX-21.1     Subsidiaries of the Registrant                      HTML     21K 
 4: EX-31.1     Certification of Chief Executive Officer            HTML     27K 
 5: EX-31.2     Certification of Chief Financial Officer            HTML     27K 
 6: EX-32.1     Certifications of Chief Executive Officer           HTML     24K 
12: R1          Cover                                               HTML     89K 
13: R2          Condensed Consolidated Balance Sheets               HTML    138K 
14: R3          Condensed Consolidated Balance Sheets               HTML     46K 
                (Parenthetical)                                                  
15: R4          Condensed Consolidated Statements of Operations     HTML    117K 
16: R5          Condensed Consolidated Statements of Stockholders'  HTML     65K 
                Equity                                                           
17: R6          Condensed Consolidated Statements of Cash Flows     HTML    126K 
18: R7          Description of Business                             HTML     28K 
19: R8          Summary of Significant Accounting Policies          HTML    107K 
20: R9          Inventories                                         HTML     29K 
21: R10         Vendor Deposits                                     HTML     24K 
22: R11         Property and Equipment                              HTML     38K 
23: R12         Intangible Assets                                   HTML     39K 
24: R13         Leases                                              HTML     54K 
25: R14         Capitalized Software Development Costs              HTML     31K 
26: R15         Cloud Computing Service Contract                    HTML     25K 
27: R16         Shareholders' Equity                                HTML    123K 
28: R17         Commitments and Contingencies                       HTML     28K 
29: R18         Contracts and Agreements                            HTML     36K 
30: R19         Accrued Expenses and Other Current Liabilities      HTML     35K 
31: R20         Accrued Warranty                                    HTML     31K 
32: R21         Loan Payable                                        HTML     25K 
33: R22         Income Taxes                                        HTML     85K 
34: R23         Customer Concentration                              HTML     26K 
35: R24         Subsequent Events                                   HTML     28K 
36: R25         Summary of Significant Accounting Policies          HTML    156K 
                (Policies)                                                       
37: R26         Summary of Significant Accounting Policies          HTML     71K 
                (Tables)                                                         
38: R27         Inventories (Tables)                                HTML     30K 
39: R28         Property and Equipment (Tables)                     HTML     37K 
40: R29         Intangible Assets (Tables)                          HTML     43K 
41: R30         Leases (Tables)                                     HTML     58K 
42: R31         Capitalized Software Development Costs (Tables)     HTML     28K 
43: R32         Hareholders' Equity (Tables)                        HTML    106K 
44: R33         Contracts and Agreements (Tables)                   HTML     29K 
45: R34         Accrued Expenses and Other Current Liabilities      HTML     34K 
                (Tables)                                                         
46: R35         Accrued Warranty (Tables)                           HTML     30K 
47: R36         Income Taxes (Tables)                               HTML     84K 
48: R37         Summary of Significant Accounting Policies          HTML     49K 
                (Details)                                                        
49: R38         Summary of Significant Accounting Policies          HTML     66K 
                (Details 1)                                                      
50: R39         Summary of Significant Accounting Policies          HTML     43K 
                (Details 2)                                                      
51: R40         Summary of Significant Accounting Policies          HTML     69K 
                (Details Narrative)                                              
52: R41         Inventories (Details)                               HTML     29K 
53: R42         Vendor Deposits (Details Narrative)                 HTML     25K 
54: R43         Property and Equipment (Details)                    HTML     45K 
55: R44         Property and Equipment (Details Narrative)          HTML     27K 
56: R45         Intangible Assets (Details)                         HTML     29K 
57: R46         Intangible Assets (Details 1)                       HTML     27K 
58: R47         Intangible Assets (Details 2)                       HTML     39K 
59: R48         Intangible Assets (Details Narrative)               HTML     25K 
60: R49         Leases (Details)                                    HTML     32K 
61: R50         Leases (Details 1)                                  HTML     24K 
62: R51         Leases (Details 2)                                  HTML     26K 
63: R52         Leases (Details 3)                                  HTML     25K 
64: R53         Leases (Details 4)                                  HTML     47K 
65: R54         Leases (Details Narrative)                          HTML     34K 
66: R55         Capitalized Software Development Costs (Details)    HTML     29K 
67: R56         Capitalized Software Development Costs (Details     HTML     25K 
                Narrative)                                                       
68: R57         Cloud Computing Service Contract (Details           HTML     30K 
                Narrative)                                                       
69: R58         Shareholders Equity (Details)                       HTML     41K 
70: R59         Shareholders Equity (Details 1)                     HTML     51K 
71: R60         Shareholders Equity (Details 2)                     HTML     45K 
72: R61         Shareholders Equity (Details 3)                     HTML     68K 
73: R62         Shareholders Equity (Details Narrative)             HTML    176K 
74: R63         Commitments and Contingencies (Details Narrative)   HTML     25K 
75: R64         Contracts and Agreements (Details)                  HTML     32K 
76: R65         Contracts and Agreements (Details Narrative)        HTML     60K 
77: R66         Accrued Expenses and Other Current Liabilities      HTML     41K 
                (Details)                                                        
78: R67         Accrued Warranty (Details)                          HTML     29K 
79: R68         Loan Payable (Details Narrative)                    HTML     30K 
80: R69         Income Taxes (Details)                              HTML     48K 
81: R70         Income Taxes (Details 1)                            HTML     31K 
82: R71         Income Taxes (Details 2)                            HTML     50K 
83: R72         Income Taxes (Details 3)                            HTML     48K 
84: R73         Income Taxes (Details Narrative)                    HTML     29K 
85: R74         Customer Concentration (Details Narrative)          HTML     29K 
86: R75         Subsequent Events (Details Narrative)               HTML     52K 
89: XML         IDEA XML File -- Filing Summary                      XML    164K 
87: XML         XBRL Instance -- tomz_10k_htm                        XML   1.52M 
88: EXCEL       IDEA Workbook of Financial Reports                  XLSX    103K 
 9: EX-101.CAL  XBRL Calculations -- tomz-20211231_cal               XML    230K 
11: EX-101.DEF  XBRL Definitions -- tomz-20211231_def                XML    446K 
 8: EX-101.LAB  XBRL Labels -- tomz-20211231_lab                     XML   1.05M 
10: EX-101.PRE  XBRL Presentations -- tomz-20211231_pre              XML    818K 
 7: EX-101.SCH  XBRL Schema -- tomz-20211231                         XSD    202K 
90: JSON        XBRL Instance as JSON Data -- MetaLinks              366±   479K 
91: ZIP         XBRL Zipped Folder -- 0001654954-22-004048-xbrl      Zip    313K 


‘JSON’   —   XBRL Instance as JSON Data — MetaLinks


This File is an XBRL Instance as JavaScript Object Notation (JSON) Data.



{
"instance":  {
    "tomz_10k.htm":  {
        "axisCustom":  0,
        "axisStandard":  15,
        "contextCount":  168,
        "dts":  {
            "calculationLink":  {
                "local":  [
                    "tomz-20211231_cal.xml"
                    ]
                },
            "definitionLink":  {
                "local":  [
                    "tomz-20211231_def.xml"
                    ]
                },
            "inline":  {
                "local":  [
                    "tomz_10k.htm"
                    ]
                },
            "labelLink":  {
                "local":  [
                    "tomz-20211231_lab.xml"
                    ]
                },
            "presentationLink":  {
                "local":  [
                    "tomz-20211231_pre.xml"
                    ]
                },
            "schema":  {
                "local":  [
                    "tomz-20211231.xsd"
                    ],
                "remote":  [
                    "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd",
                    "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd",
                    "http://www.xbrl.org/2003/xl-2003-12-31.xsd",
                    "http://www.xbrl.org/2003/xlink-2003-12-31.xsd",
                    "http://www.xbrl.org/2005/xbrldt-2005.xsd",
                    "http://www.xbrl.org/2006/ref-2006-02-27.xsd",
                    "http://www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd",
                    "http://www.xbrl.org/dtr/type/numeric-2009-12-16.xsd",
                    "http://www.xbrl.org/lrr/arcrole/factExplanatory-2009-12-16.xsd",
                    "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd",
                    "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd",
                    "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd",
                    "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd",
                    "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd",
                    "https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd",
                    "https://xbrl.fasb.org/srt/2021/elts/srt-roles-2021-01-31.xsd",
                    "https://xbrl.fasb.org/srt/2021/elts/srt-types-2021-01-31.xsd",
                    "https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd",
                    "https://xbrl.fasb.org/us-gaap/2021/elts/us-roles-2021-01-31.xsd",
                    "https://xbrl.fasb.org/us-gaap/2021/elts/us-types-2021-01-31.xsd",
                    "https://xbrl.sec.gov/country/2021/country-2021.xsd",
                    "https://xbrl.sec.gov/currency/2021/currency-2021.xsd",
                    "https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd",
                    "https://xbrl.sec.gov/exch/2021/exch-2021.xsd",
                    "https://xbrl.sec.gov/naics/2021/naics-2021.xsd",
                    "https://xbrl.sec.gov/sic/2021/sic-2021.xsd",
                    "https://xbrl.sec.gov/stpr/2021/stpr-2021.xsd"
                    ]
                }
            },
        "elementCount":  557,
        "entityCount":  1,
        "hidden":  {
            "http://fasb.org/us-gaap/2021-01-31":  35,
            "http://tomz.com/20211231":  4,
            "http://xbrl.sec.gov/dei/2021q4":  5,
            "total":  44
            },
        "keyCustom":  98,
        "keyStandard":  304,
        "memberCustom":  53,
        "memberStandard":  14,
        "nsprefix":  "tomz",
        "nsuri":  "http://tomz.com/20211231",
        "report":  {
            "R1":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "span",
                        "strong",
                        "p",
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "dei:EntityRegistrantName",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "document",
                "isDefault":  "true",
                "longName":  "000001 - Document - Cover",
                "role":  "http://tomz.com/role/Cover",
                "shortName":  "Cover",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "span",
                        "strong",
                        "p",
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "dei:EntityRegistrantName",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R10":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "tomz:VendorDepositsTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000010 - Disclosure - VENDOR DEPOSITS",
                "role":  "http://tomz.com/role/VendorDeposits",
                "shortName":  "VENDOR DEPOSITS",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "tomz:VendorDepositsTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R11":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000011 - Disclosure - PROPERTY AND EQUIPMENT",
                "role":  "http://tomz.com/role/PropertyAndEquipment",
                "shortName":  "PROPERTY AND EQUIPMENT",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R12":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:IntangibleAssetsDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000012 - Disclosure - INTANGIBLE ASSETS",
                "role":  "http://tomz.com/role/IntangibleAssets",
                "shortName":  "INTANGIBLE ASSETS",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:IntangibleAssetsDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R13":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:LeasesOfLesseeDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000013 - Disclosure - LEASES",
                "role":  "http://tomz.com/role/LEASES",
                "shortName":  "LEASES",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:LeasesOfLesseeDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R14":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000014 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS",
                "role":  "http://tomz.com/role/CapitalizedSoftwareDevelopmentCosts",
                "shortName":  "CAPITALIZED SOFTWARE DEVELOPMENT COSTS",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R15":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "tomz:CloudComputingServiceContractDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000015 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT",
                "role":  "http://tomz.com/role/CloudComputingServiceContract",
                "shortName":  "CLOUD COMPUTING SERVICE CONTRACT",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "tomz:CloudComputingServiceContractDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R16":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000016 - Disclosure - SHAREHOLDERS' EQUITY",
                "role":  "http://tomz.com/role/ShareholdersEquity",
                "shortName":  "SHAREHOLDERS' EQUITY",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R17":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000017 - Disclosure - COMMITMENTS AND CONTINGENCIES",
                "role":  "http://tomz.com/role/CommitmentsAndContingencies",
                "shortName":  "COMMITMENTS AND CONTINGENCIES",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R18":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "tomz:ContractsAndAgreementsTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000018 - Disclosure - CONTRACTS AND AGREEMENTS",
                "role":  "http://tomz.com/role/ContractsAndAgreements",
                "shortName":  "CONTRACTS AND AGREEMENTS",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "tomz:ContractsAndAgreementsTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R19":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000019 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES",
                "role":  "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities",
                "shortName":  "ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R2":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:CashEquivalentsAtCarryingValue",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "statement",
                "isDefault":  "false",
                "longName":  "000002 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS",
                "role":  "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
                "shortName":  "CONDENSED CONSOLIDATED BALANCE SHEETS",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:CashEquivalentsAtCarryingValue",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R20":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:GuaranteesTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000020 - Disclosure - ACCRUED WARRANTY",
                "role":  "http://tomz.com/role/AccruedWarranty",
                "shortName":  "ACCRUED WARRANTY",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:GuaranteesTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R21":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "tomz:LoansPayableDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000021 - Disclosure - LOAN PAYABLE",
                "role":  "http://tomz.com/role/LoanPayable",
                "shortName":  "LOAN PAYABLE",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "tomz:LoansPayableDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R22":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:IncomeTaxDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000022 - Disclosure - INCOME TAXES",
                "role":  "http://tomz.com/role/IncomeTaxes",
                "shortName":  "INCOME TAXES",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:IncomeTaxDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R23":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:ConcentrationRiskDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000023 - Disclosure - CUSTOMER CONCENTRATION",
                "role":  "http://tomz.com/role/CustomerConcentration",
                "shortName":  "CUSTOMER CONCENTRATION",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:ConcentrationRiskDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R24":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:SubsequentEventsTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000024 - Disclosure - SUBSEQUENT EVENTS",
                "role":  "http://tomz.com/role/SubsequentEvents",
                "shortName":  "SUBSEQUENT EVENTS",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:SubsequentEventsTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R25":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "us-gaap:SignificantAccountingPoliciesTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:ConsolidationPolicyTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000025 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)",
                "role":  "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies",
                "shortName":  "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)",
                "subGroupType":  "policies",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "us-gaap:SignificantAccountingPoliciesTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:ConsolidationPolicyTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R26":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "us-gaap:EarningsPerSharePolicyTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:ImpairmentEffectsOnEarningsPerShareTableTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000026 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)",
                "role":  "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables",
                "shortName":  "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)",
                "subGroupType":  "tables",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "us-gaap:EarningsPerSharePolicyTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:ImpairmentEffectsOnEarningsPerShareTableTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R27":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "us-gaap:InventoryDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000027 - Disclosure - INVENTORIES (Tables)",
                "role":  "http://tomz.com/role/InventoriesTables",
                "shortName":  "INVENTORIES (Tables)",
                "subGroupType":  "tables",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "us-gaap:InventoryDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R28":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:PropertyPlantAndEquipmentTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000028 - Disclosure - PROPERTY AND EQUIPMENT (Tables)",
                "role":  "http://tomz.com/role/PropertyAndEquipmentTables",
                "shortName":  "PROPERTY AND EQUIPMENT (Tables)",
                "subGroupType":  "tables",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:PropertyPlantAndEquipmentTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R29":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000029 - Disclosure - INTANGIBLE ASSETS (Tables)",
                "role":  "http://tomz.com/role/IntangibleAssetsTables",
                "shortName":  "INTANGIBLE ASSETS (Tables)",
                "subGroupType":  "tables",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R3":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "p",
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "INF",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:CommonStockParOrStatedValuePerShare",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USDPShares",
                    "xsiNil":  "false"
                    },
                "groupType":  "statement",
                "isDefault":  "false",
                "longName":  "000003 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)",
                "role":  "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
                "shortName":  "CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)",
                "subGroupType":  "parenthetical",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "p",
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "INF",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:CommonStockParOrStatedValuePerShare",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USDPShares",
                    "xsiNil":  "false"
                    }
                },
            "R30":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "us-gaap:LeasesOfLesseeDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:LeaseCostTableTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000030 - Disclosure - LEASES (Tables)",
                "role":  "http://tomz.com/role/LeasesTables",
                "shortName":  "LEASES (Tables)",
                "subGroupType":  "tables",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "us-gaap:LeasesOfLesseeDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:LeaseCostTableTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R31":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "tomz:CapitalizedSoftwareDevelopmentCostsTableTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000031 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Tables)",
                "role":  "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsTables",
                "shortName":  "CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Tables)",
                "subGroupType":  "tables",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "tomz:CapitalizedSoftwareDevelopmentCostsTableTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R32":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000032 - Disclosure - HAREHOLDERS' EQUITY (Tables)",
                "role":  "http://tomz.com/role/HareholdersEquityTables",
                "shortName":  "HAREHOLDERS' EQUITY (Tables)",
                "subGroupType":  "tables",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R33":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "tomz:ApproximateMinimumContractPaymentsTableTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000033 - Disclosure - CONTRACTS AND AGREEMENTS (Tables)",
                "role":  "http://tomz.com/role/ContractsAndAgreementsTables",
                "shortName":  "CONTRACTS AND AGREEMENTS (Tables)",
                "subGroupType":  "tables",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "tomz:ApproximateMinimumContractPaymentsTableTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R34":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000034 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)",
                "role":  "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables",
                "shortName":  "ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)",
                "subGroupType":  "tables",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R35":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "us-gaap:GuaranteesTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000035 - Disclosure - ACCRUED WARRANTY (Tables)",
                "role":  "http://tomz.com/role/AccruedWarrantyTables",
                "shortName":  "ACCRUED WARRANTY (Tables)",
                "subGroupType":  "tables",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "us-gaap:GuaranteesTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R36":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "us-gaap:IncomeTaxDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000036 - Disclosure - INCOME TAXES (Tables)",
                "role":  "http://tomz.com/role/IncomeTaxesTables",
                "shortName":  "INCOME TAXES (Tables)",
                "subGroupType":  "tables",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "us-gaap:IncomeTaxDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R37":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:NetIncomeLoss",
                    "reportCount":  1,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000037 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details)",
                "role":  "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails",
                "shortName":  "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ImpairmentEffectsOnEarningsPerShareTableTextBlock",
                        "us-gaap:EarningsPerSharePolicyTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "lang":  null,
                    "name":  "tomz:InterestOnConvertibleDebt",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R38":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:NetIncomeLoss",
                    "reportCount":  1,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000038 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)",
                "role":  "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1",
                "shortName":  "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "ix:continuation",
                        "ix:continuation",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember",
                    "decimals":  "0",
                    "lang":  null,
                    "name":  "us-gaap:NetIncomeLoss",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R39":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:Revenues",
                    "reportCount":  1,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000039 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)",
                "role":  "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2",
                "shortName":  "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "ix:continuation",
                        "ix:continuation",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31_us-gaap_DomesticCountryMember",
                    "decimals":  "0",
                    "lang":  null,
                    "name":  "us-gaap:Revenues",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R4":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:Revenues",
                    "reportCount":  1,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "statement",
                "isDefault":  "false",
                "longName":  "000004 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS",
                "role":  "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations",
                "shortName":  "CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "lang":  null,
                    "name":  "us-gaap:CostOfRevenue",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R40":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "p",
                        "us-gaap:ReceivablesPolicyTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:ProvisionForDoubtfulAccounts",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000040 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)",
                "role":  "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative",
                "shortName":  "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "p",
                        "us-gaap:ReceivablesPolicyTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:ProvisionForDoubtfulAccounts",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R41":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
                        "us-gaap:InventoryDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:InventoryFinishedGoods",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000041 - Disclosure - INVENTORIES (Details)",
                "role":  "http://tomz.com/role/InventoriesDetails",
                "shortName":  "INVENTORIES (Details)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
                        "us-gaap:InventoryDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:InventoryFinishedGoods",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R42":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:DepositsAssetsCurrent",
                    "reportCount":  1,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000042 - Disclosure - VENDOR DEPOSITS (Details Narrative)",
                "role":  "http://tomz.com/role/VendorDepositsDetailsNarrative",
                "shortName":  "VENDOR DEPOSITS (Details Narrative)",
                "subGroupType":  "details",
                "uniqueAnchor":  null
                },
            "R43":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:PropertyPlantAndEquipmentTextBlock",
                        "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:FurnitureAndFixturesGross",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000043 - Disclosure - PROPERTY AND EQUIPMENT (Details)",
                "role":  "http://tomz.com/role/PropertyAndEquipmentDetails",
                "shortName":  "PROPERTY AND EQUIPMENT (Details)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:PropertyPlantAndEquipmentTextBlock",
                        "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:FurnitureAndFixturesGross",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R44":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "p",
                        "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:Depreciation",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000044 - Disclosure - PROPERTY AND EQUIPMENT (Details Narrative)",
                "role":  "http://tomz.com/role/PropertyAndEquipmentDetailsNarrative",
                "shortName":  "PROPERTY AND EQUIPMENT (Details Narrative)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "p",
                        "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:Depreciation",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R45":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:FiniteLivedIntangibleAssetsGross",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000045 - Disclosure - INTANGIBLE ASSETS (Details)",
                "role":  "http://tomz.com/role/IntangibleAssetsDetails",
                "shortName":  "INTANGIBLE ASSETS (Details)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:FiniteLivedIntangibleAssetsGross",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R46":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:IndefiniteLivedTrademarks",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000046 - Disclosure - INTANGIBLE ASSETS (Details 1)",
                "role":  "http://tomz.com/role/IntangibleAssetsDetails1",
                "shortName":  "INTANGIBLE ASSETS (Details 1)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:IndefiniteLivedTrademarks",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R47":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000047 - Disclosure - INTANGIBLE ASSETS (Details 2)",
                "role":  "http://tomz.com/role/IntangibleAssetsDetails2",
                "shortName":  "INTANGIBLE ASSETS (Details 2)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R48":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "p",
                        "us-gaap:IntangibleAssetsDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:AmortizationOfIntangibleAssets",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000048 - Disclosure - INTANGIBLE ASSETS (Details Narrative)",
                "role":  "http://tomz.com/role/IntangibleAssetsDetailsNarrative",
                "shortName":  "INTANGIBLE ASSETS (Details Narrative)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "p",
                        "us-gaap:IntangibleAssetsDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:AmortizationOfIntangibleAssets",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R49":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:OperatingLeaseRightOfUseAsset",
                    "reportCount":  1,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000049 - Disclosure - LEASES (Details)",
                "role":  "http://tomz.com/role/LeasesDetails",
                "shortName":  "LEASES (Details)",
                "subGroupType":  "details",
                "uniqueAnchor":  null
                },
            "R5":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2019-12-31_us-gaap_CommonStockMember",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:SharesIssued",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "Shares",
                    "xsiNil":  "false"
                    },
                "groupType":  "statement",
                "isDefault":  "false",
                "longName":  "000005 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY",
                "role":  "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity",
                "shortName":  "CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2019-12-31_us-gaap_CommonStockMember",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:SharesIssued",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "Shares",
                    "xsiNil":  "false"
                    }
                },
            "R50":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "tomz:OperatingLeaseLiabilityTableTextBlock",
                        "us-gaap:LeasesOfLesseeDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:OperatingLeaseExpense",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000050 - Disclosure - LEASES (Details 1)",
                "role":  "http://tomz.com/role/LeasesDetails1",
                "shortName":  "LEASES (Details 1)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "tomz:OperatingLeaseLiabilityTableTextBlock",
                        "us-gaap:LeasesOfLesseeDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:OperatingLeaseExpense",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R51":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "p",
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "tomz:LeaseOtherInformationTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000051 - Disclosure - LEASES (Details 2)",
                "role":  "http://tomz.com/role/LeasesDetails2",
                "shortName":  "LEASES (Details 2)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "p",
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "tomz:LeaseOtherInformationTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R52":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "tomz:SupplementalCashFlowInformationRelatedToLeasesTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000052 - Disclosure - LEASES (Details 3)",
                "role":  "http://tomz.com/role/LeasesDetails3",
                "shortName":  "LEASES (Details 3)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "tomz:SupplementalCashFlowInformationRelatedToLeasesTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R53":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000053 - Disclosure - LEASES (Details 4)",
                "role":  "http://tomz.com/role/LeasesDetails4",
                "shortName":  "LEASES (Details 4)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R54":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "p",
                        "us-gaap:LeasesOfLesseeDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "tomz:TermLease",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000054 - Disclosure - LEASES (Details Narrative)",
                "role":  "http://tomz.com/role/LeasesDetailsNarrative",
                "shortName":  "LEASES (Details Narrative)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "p",
                        "us-gaap:LeasesOfLesseeDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "tomz:TermLease",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R55":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "tomz:CapitalizedSoftwareDevelopmentCostsTableTextBlock",
                        "us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:CapitalizedComputerSoftwareGross",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000055 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details)",
                "role":  "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails",
                "shortName":  "CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "tomz:CapitalizedSoftwareDevelopmentCostsTableTextBlock",
                        "us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:CapitalizedComputerSoftwareGross",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R56":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "p",
                        "us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:CapitalizedComputerSoftwareAmortization1",
                    "reportCount":  1,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000056 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details Narrative)",
                "role":  "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetailsNarrative",
                "shortName":  "CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details Narrative)",
                "subGroupType":  "details",
                "uniqueAnchor":  null
                },
            "R57":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "p",
                        "tomz:CloudComputingServiceContractDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-05-01to2021-05-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "tomz:ProceedsFromServiceContractOfReceivables",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000057 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)",
                "role":  "http://tomz.com/role/CloudComputingServiceContractDetailsNarrative",
                "shortName":  "CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "p",
                        "tomz:CloudComputingServiceContractDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-05-01to2021-05-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "tomz:ProceedsFromServiceContractOfReceivables",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R58":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31_tomz_StockWarrantMember",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "tomz:OutstandingBeginningOfPeriod",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "Shares",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000058 - Disclosure - SHAREHOLDERS EQUITY (Details)",
                "role":  "http://tomz.com/role/ShareholdersEquityDetails",
                "shortName":  "SHAREHOLDERS EQUITY (Details)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31_tomz_StockWarrantMember",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "tomz:OutstandingBeginningOfPeriod",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "Shares",
                    "xsiNil":  "false"
                    }
                },
            "R59":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
                    "reportCount":  1,
                    "unitRef":  "Shares",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000059 - Disclosure - SHAREHOLDERS EQUITY (Details 1)",
                "role":  "http://tomz.com/role/ShareholdersEquityDetails1",
                "shortName":  "SHAREHOLDERS EQUITY (Details 1)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31_tomz_RangeFourMember",
                    "decimals":  "0",
                    "lang":  null,
                    "name":  "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "Shares",
                    "xsiNil":  "false"
                    }
                },
            "R6":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:NetIncomeLoss",
                    "reportCount":  1,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "statement",
                "isDefault":  "false",
                "longName":  "000006 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS",
                "role":  "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows",
                "shortName":  "CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "lang":  null,
                    "name":  "us-gaap:OtherDepreciationAndAmortization",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R60":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
                    "reportCount":  1,
                    "unitRef":  "Shares",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000060 - Disclosure - SHAREHOLDERS EQUITY (Details 2)",
                "role":  "http://tomz.com/role/ShareholdersEquityDetails2",
                "shortName":  "SHAREHOLDERS EQUITY (Details 2)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2019-12-31_tomz_WarrantsMember",
                    "decimals":  "0",
                    "lang":  null,
                    "name":  "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "Shares",
                    "xsiNil":  "false"
                    }
                },
            "R61":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
                    "reportCount":  1,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000061 - Disclosure - SHAREHOLDERS EQUITY (Details 3)",
                "role":  "http://tomz.com/role/ShareholdersEquityDetails3",
                "shortName":  "SHAREHOLDERS EQUITY (Details 3)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "tomz:WarrantsOutstandingAndExercisableByPriceRange",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31_tomz_WarrantsOneMember",
                    "decimals":  "0",
                    "lang":  null,
                    "name":  "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "Shares",
                    "xsiNil":  "false"
                    }
                },
            "R62":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "p",
                        "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:StockholdersEquityReverseStockSplit",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000062 - Disclosure - SHAREHOLDERS EQUITY (Details Narrative)",
                "role":  "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
                "shortName":  "SHAREHOLDERS EQUITY (Details Narrative)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "p",
                        "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:StockholdersEquityReverseStockSplit",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R63":  {
                "firstAnchor":  null,
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000063 - Disclosure - COMMITMENTS AND CONTINGENCIES (Details Narrative)",
                "role":  "http://tomz.com/role/CommitmentsAndContingenciesDetailsNarrative",
                "shortName":  "COMMITMENTS AND CONTINGENCIES (Details Narrative)",
                "subGroupType":  "details",
                "uniqueAnchor":  null
                },
            "R64":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "tomz:ApproximateMinimumContractPaymentsTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-09-30",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:ContractualObligationDueInNextTwelveMonths",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000064 - Disclosure - CONTRACTS AND AGREEMENTS (Details)",
                "role":  "http://tomz.com/role/ContractsAndAgreementsDetails",
                "shortName":  "CONTRACTS AND AGREEMENTS (Details)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "tomz:ApproximateMinimumContractPaymentsTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-09-30",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:ContractualObligationDueInNextTwelveMonths",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R65":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:PropertyPlantAndEquipmentTextBlock",
                        "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles",
                    "reportCount":  1,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000065 - Disclosure - CONTRACTS AND AGREEMENTS (Details Narrative)",
                "role":  "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
                "shortName":  "CONTRACTS AND AGREEMENTS (Details Narrative)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "p",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2017-12-01to2017-12-31_tomz_BoardOfMembersMember",
                    "decimals":  "0",
                    "lang":  null,
                    "name":  "us-gaap:PaymentForManagementFee",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R66":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
                        "us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-09-30",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000066 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)",
                "role":  "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails",
                "shortName":  "ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
                        "us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-09-30",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R67":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
                        "us-gaap:GuaranteesTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2020-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:ExtendedProductWarrantyAccrual",
                    "reportCount":  1,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000067 - Disclosure - ACCRUED WARRANTY (Details)",
                "role":  "http://tomz.com/role/AccruedWarrantyDetails",
                "shortName":  "ACCRUED WARRANTY (Details)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
                        "us-gaap:GuaranteesTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2019-12-31",
                    "decimals":  "0",
                    "lang":  null,
                    "name":  "us-gaap:ExtendedProductWarrantyAccrual",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R68":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "p",
                        "tomz:LoansPayableDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2020-04-21",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "tomz:ProceedsFromLoanFundingPaycheckProtectionProgram",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000068 - Disclosure - LOAN PAYABLE (Details Narrative)",
                "role":  "http://tomz.com/role/LoanPayableDetailsNarrative",
                "shortName":  "LOAN PAYABLE (Details Narrative)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "p",
                        "tomz:LoansPayableDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2020-04-21",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "tomz:ProceedsFromLoanFundingPaycheckProtectionProgram",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R69":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
                        "us-gaap:IncomeTaxDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:CurrentFederalTaxExpenseBenefit",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000069 - Disclosure - INCOME TAXES (Details)",
                "role":  "http://tomz.com/role/IncomeTaxesDetails",
                "shortName":  "INCOME TAXES (Details)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
                        "us-gaap:IncomeTaxDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:CurrentFederalTaxExpenseBenefit",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R7":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:NatureOfOperations",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000007 - Disclosure - DESCRIPTION OF BUSINESS",
                "role":  "http://tomz.com/role/DescriptionOfBusiness",
                "shortName":  "DESCRIPTION OF BUSINESS",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:NatureOfOperations",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R70":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
                        "us-gaap:IncomeTaxDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2020-01-01to2020-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000070 - Disclosure - INCOME TAXES (Details 1)",
                "role":  "http://tomz.com/role/IncomeTaxesDetails1",
                "shortName":  "INCOME TAXES (Details 1)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
                        "us-gaap:IncomeTaxDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2020-01-01to2020-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R71":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "tomz:IncomeLossBeforeIncomeTax",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000071 - Disclosure - INCOME TAXES (Details 2)",
                "role":  "http://tomz.com/role/IncomeTaxesDetails2",
                "shortName":  "INCOME TAXES (Details 2)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "tomz:IncomeLossBeforeIncomeTax",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R72":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000072 - Disclosure - INCOME TAXES (Details 3)",
                "role":  "http://tomz.com/role/IncomeTaxesDetails3",
                "shortName":  "INCOME TAXES (Details 3)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "td",
                        "tr",
                        "tbody",
                        "table",
                        "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R73":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "p",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:OperatingLossCarryforwards",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000073 - Disclosure - INCOME TAXES (Details Narrative)",
                "role":  "http://tomz.com/role/IncomeTaxesDetailsNarrative",
                "shortName":  "INCOME TAXES (Details Narrative)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "p",
                        "ix:continuation",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2021-12-31",
                    "decimals":  "0",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:OperatingLossCarryforwards",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USD",
                    "xsiNil":  "false"
                    }
                },
            "R74":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "p",
                        "us-gaap:ConcentrationRiskDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  "INF",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:ConcentrationRiskPercentage1",
                    "reportCount":  1,
                    "unitRef":  "Pure",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000074 - Disclosure - CUSTOMER CONCENTRATION (Details Narrative)",
                "role":  "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
                "shortName":  "CUSTOMER CONCENTRATION (Details Narrative)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "p",
                        "us-gaap:ConcentrationRiskDisclosureTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31_tomz_OneCustomerMember",
                    "decimals":  "INF",
                    "lang":  null,
                    "name":  "us-gaap:ConcentrationRiskPercentage1",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "Pure",
                    "xsiNil":  "false"
                    }
                },
            "R75":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "p",
                        "us-gaap:SubsequentEventsTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember",
                    "decimals":  "INF",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USDPShares",
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000075 - Disclosure - SUBSEQUENT EVENTS (Details Narrative)",
                "role":  "http://tomz.com/role/SubsequentEventsDetailsNarrative",
                "shortName":  "SUBSEQUENT EVENTS (Details Narrative)",
                "subGroupType":  "details",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "p",
                        "us-gaap:SubsequentEventsTextBlock",
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember",
                    "decimals":  "INF",
                    "first":  true,
                    "lang":  null,
                    "name":  "us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  "USDPShares",
                    "xsiNil":  "false"
                    }
                },
            "R8":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:SignificantAccountingPoliciesTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000008 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES",
                "role":  "http://tomz.com/role/SummaryOfSignificantAccountingPolicies",
                "shortName":  "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:SignificantAccountingPoliciesTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                },
            "R9":  {
                "firstAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:InventoryDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    },
                "groupType":  "disclosure",
                "isDefault":  "false",
                "longName":  "000009 - Disclosure - INVENTORIES",
                "role":  "http://tomz.com/role/INVENTORIES",
                "shortName":  "INVENTORIES",
                "subGroupType":  "",
                "uniqueAnchor":  {
                    "ancestors":  [
                        "body",
                        "html"
                        ],
                    "baseRef":  "tomz_10k.htm",
                    "contextRef":  "From2021-01-01to2021-12-31",
                    "decimals":  null,
                    "first":  true,
                    "lang":  "en-US",
                    "name":  "us-gaap:InventoryDisclosureTextBlock",
                    "reportCount":  1,
                    "unique":  true,
                    "unitRef":  null,
                    "xsiNil":  "false"
                    }
                }
            },
        "segmentCount":  67,
        "tag":  {
            "dei_AmendmentFlag":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.",
                            "label":  "Amendment Flag"
                            }
                        }
                    },
                "localname":  "AmendmentFlag",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "booleanItemType"
                },
            "dei_AuditorFirmId":  {
                "auth_ref":  [
                    "r455",
                    "r456",
                    "r457"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "PCAOB issued Audit Firm Identifier",
                            "label":  "Auditor Firm Id"
                            }
                        }
                    },
                "localname":  "AuditorFirmId",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "nonemptySequenceNumberItemType"
                },
            "dei_AuditorLocation":  {
                "auth_ref":  [
                    "r455",
                    "r456",
                    "r457"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Auditor Location"
                            }
                        }
                    },
                "localname":  "AuditorLocation",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "internationalNameItemType"
                },
            "dei_AuditorName":  {
                "auth_ref":  [
                    "r455",
                    "r456",
                    "r457"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Auditor Name"
                            }
                        }
                    },
                "localname":  "AuditorName",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "internationalNameItemType"
                },
            "dei_CityAreaCode":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Area code of city",
                            "label":  "City Area Code"
                            }
                        }
                    },
                "localname":  "CityAreaCode",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "normalizedStringItemType"
                },
            "dei_CoverAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Cover page.",
                            "label":  "Cover [Abstract]"
                            }
                        }
                    },
                "localname":  "CoverAbstract",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "xbrltype":  "stringItemType"
                },
            "dei_CurrentFiscalYearEndDate":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "End date of current fiscal year in the format --MM-DD.",
                            "label":  "Current Fiscal Year End Date"
                            }
                        }
                    },
                "localname":  "CurrentFiscalYearEndDate",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "gMonthDayItemType"
                },
            "dei_DocumentAnnualReport":  {
                "auth_ref":  [
                    "r455",
                    "r456",
                    "r457"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Boolean flag that is true only for a form used as an annual report.",
                            "label":  "Document Annual Report"
                            }
                        }
                    },
                "localname":  "DocumentAnnualReport",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "booleanItemType"
                },
            "dei_DocumentFiscalPeriodFocus":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Fiscal period values are FY, Q1, Q2, and Q3.  1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.",
                            "label":  "Document Fiscal Period Focus"
                            }
                        }
                    },
                "localname":  "DocumentFiscalPeriodFocus",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "fiscalPeriodItemType"
                },
            "dei_DocumentFiscalYearFocus":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "This is focus fiscal year of the document report in YYYY format.  For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus.  Example: 2006.",
                            "label":  "Document Fiscal Year Focus"
                            }
                        }
                    },
                "localname":  "DocumentFiscalYearFocus",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "gYearItemType"
                },
            "dei_DocumentPeriodEndDate":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period.  The format of the date is YYYY-MM-DD.",
                            "label":  "Document Period End Date"
                            }
                        }
                    },
                "localname":  "DocumentPeriodEndDate",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "dateItemType"
                },
            "dei_DocumentTransitionReport":  {
                "auth_ref":  [
                    "r458"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Boolean flag that is true only for a form used as a transition report.",
                            "label":  "Document Transition Report"
                            }
                        }
                    },
                "localname":  "DocumentTransitionReport",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "booleanItemType"
                },
            "dei_DocumentType":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc).  The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.",
                            "label":  "Document Type"
                            }
                        }
                    },
                "localname":  "DocumentType",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "submissionTypeItemType"
                },
            "dei_EntityAddressAddressLine1":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Address Line 1 such as Attn, Building Name, Street Name",
                            "label":  "Entity Address Address Line 1"
                            }
                        }
                    },
                "localname":  "EntityAddressAddressLine1",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "normalizedStringItemType"
                },
            "dei_EntityAddressCityOrTown":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Name of the City or Town",
                            "label":  "Entity Address City Or Town"
                            }
                        }
                    },
                "localname":  "EntityAddressCityOrTown",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "normalizedStringItemType"
                },
            "dei_EntityAddressPostalZipCode":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Code for the postal or zip code",
                            "label":  "Entity Address Postal Zip Code"
                            }
                        }
                    },
                "localname":  "EntityAddressPostalZipCode",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "normalizedStringItemType"
                },
            "dei_EntityAddressStateOrProvince":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Name of the state or province.",
                            "label":  "Entity Address State Or Province"
                            }
                        }
                    },
                "localname":  "EntityAddressStateOrProvince",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "stateOrProvinceItemType"
                },
            "dei_EntityCentralIndexKey":  {
                "auth_ref":  [
                    "r453"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC.  It is commonly abbreviated as CIK.",
                            "label":  "Entity Central Index Key"
                            }
                        }
                    },
                "localname":  "EntityCentralIndexKey",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "centralIndexKeyItemType"
                },
            "dei_EntityCommonStockSharesOutstanding":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report.  Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.",
                            "label":  "Entity Common Stock Shares Outstanding"
                            }
                        }
                    },
                "localname":  "EntityCommonStockSharesOutstanding",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "dei_EntityCurrentReportingStatus":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days.  This information should be based on the registrant's current or most recent filing containing the related disclosure.",
                            "label":  "Entity Current Reporting Status"
                            }
                        }
                    },
                "localname":  "EntityCurrentReportingStatus",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "yesNoItemType"
                },
            "dei_EntityEmergingGrowthCompany":  {
                "auth_ref":  [
                    "r453"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Indicate if registrant meets the emerging growth company criteria.",
                            "label":  "Entity Emerging Growth Company"
                            }
                        }
                    },
                "localname":  "EntityEmergingGrowthCompany",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "booleanItemType"
                },
            "dei_EntityFileNumber":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Commission file number.  The field allows up to 17 characters.  The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.",
                            "label":  "Entity File Number"
                            }
                        }
                    },
                "localname":  "EntityFileNumber",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "fileNumberItemType"
                },
            "dei_EntityFilerCategory":  {
                "auth_ref":  [
                    "r453"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Indicate whether the registrant is one of the following:  Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer.  Definitions of these categories are stated in Rule 12b-2 of the Exchange Act.  This information should be based on the registrant's current or most recent filing containing the related disclosure.",
                            "label":  "Entity Filer Category"
                            }
                        }
                    },
                "localname":  "EntityFilerCategory",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "filerCategoryItemType"
                },
            "dei_EntityIncorporationStateCountryCode":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Two-character EDGAR code representing the state or country of incorporation.",
                            "label":  "Entity Incorporation State Country Code"
                            }
                        }
                    },
                "localname":  "EntityIncorporationStateCountryCode",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "edgarStateCountryItemType"
                },
            "dei_EntityInteractiveDataCurrent":  {
                "auth_ref":  [
                    "r460"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).",
                            "label":  "Entity Interactive Data Current"
                            }
                        }
                    },
                "localname":  "EntityInteractiveDataCurrent",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "yesNoItemType"
                },
            "dei_EntityPublicFloat":  {
                "auth_ref":  [
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.",
                            "label":  "Entity Public Float"
                            }
                        }
                    },
                "localname":  "EntityPublicFloat",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "dei_EntityRegistrantName":  {
                "auth_ref":  [
                    "r453"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.",
                            "label":  "Entity Registrant Name"
                            }
                        }
                    },
                "localname":  "EntityRegistrantName",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "normalizedStringItemType"
                },
            "dei_EntityShellCompany":  {
                "auth_ref":  [
                    "r453"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.",
                            "label":  "Entity Shell Company"
                            }
                        }
                    },
                "localname":  "EntityShellCompany",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "booleanItemType"
                },
            "dei_EntitySmallBusiness":  {
                "auth_ref":  [
                    "r453"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Indicates that the company is a Smaller Reporting Company (SRC).",
                            "label":  "Entity Small Business"
                            }
                        }
                    },
                "localname":  "EntitySmallBusiness",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "booleanItemType"
                },
            "dei_EntityTaxIdentificationNumber":  {
                "auth_ref":  [
                    "r453"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.",
                            "label":  "Entity Tax Identification Number"
                            }
                        }
                    },
                "localname":  "EntityTaxIdentificationNumber",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "employerIdItemType"
                },
            "dei_EntityVoluntaryFilers":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.",
                            "label":  "Entity Voluntary Filers"
                            }
                        }
                    },
                "localname":  "EntityVoluntaryFilers",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "yesNoItemType"
                },
            "dei_EntityWellKnownSeasonedIssuer":  {
                "auth_ref":  [
                    "r461"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act.  Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.",
                            "label":  "Entity Well Known Seasoned Issuer"
                            }
                        }
                    },
                "localname":  "EntityWellKnownSeasonedIssuer",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "yesNoItemType"
                },
            "dei_LocalPhoneNumber":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Local phone number for entity.",
                            "label":  "Local Phone Number"
                            }
                        }
                    },
                "localname":  "LocalPhoneNumber",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "normalizedStringItemType"
                },
            "dei_Security12bTitle":  {
                "auth_ref":  [
                    "r452"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Title of a 12(b) registered security.",
                            "label":  "Security 12b Title"
                            }
                        }
                    },
                "localname":  "Security12bTitle",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "securityTitleItemType"
                },
            "dei_SecurityExchangeName":  {
                "auth_ref":  [
                    "r454"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Name of the Exchange on which a security is registered.",
                            "label":  "Security Exchange Name"
                            }
                        }
                    },
                "localname":  "SecurityExchangeName",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "edgarExchangeCodeItemType"
                },
            "dei_TradingSymbol":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Trading symbol of an instrument as listed on an exchange.",
                            "label":  "Trading Symbol"
                            }
                        }
                    },
                "localname":  "TradingSymbol",
                "nsuri":  "http://xbrl.sec.gov/dei/2021q4",
                "presentation":  [
                    "http://tomz.com/role/Cover"
                    ],
                "xbrltype":  "tradingSymbolItemType"
                },
            "srt_BoardOfDirectorsChairmanMember":  {
                "auth_ref":  [
                    "r185"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Board of Directors Chairman"
                            }
                        }
                    },
                "localname":  "BoardOfDirectorsChairmanMember",
                "nsuri":  "http://fasb.org/srt/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "srt_ChiefExecutiveOfficerMember":  {
                "auth_ref":  [
                    "r185"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Chief Executive Officer [Member]"
                            }
                        }
                    },
                "localname":  "ChiefExecutiveOfficerMember",
                "nsuri":  "http://fasb.org/srt/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "srt_ChiefFinancialOfficerMember":  {
                "auth_ref":  [
                    "r185"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Chief Financial Officer"
                            }
                        }
                    },
                "localname":  "ChiefFinancialOfficerMember",
                "nsuri":  "http://fasb.org/srt/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "srt_ChiefOperatingOfficerMember":  {
                "auth_ref":  [
                    "r185",
                    "r380"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Chief Operating Officer [Member]"
                            }
                        }
                    },
                "localname":  "ChiefOperatingOfficerMember",
                "nsuri":  "http://fasb.org/srt/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "srt_DirectorMember":  {
                "auth_ref":  [
                    "r185"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Director [Member]"
                            }
                        }
                    },
                "localname":  "DirectorMember",
                "nsuri":  "http://fasb.org/srt/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "srt_MajorCustomersAxis":  {
                "auth_ref":  [
                    "r184",
                    "r278",
                    "r279",
                    "r435"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Major Customers Axis"
                            }
                        }
                    },
                "localname":  "MajorCustomersAxis",
                "nsuri":  "http://fasb.org/srt/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "stringItemType"
                },
            "srt_NameOfMajorCustomerDomain":  {
                "auth_ref":  [
                    "r184",
                    "r278",
                    "r279",
                    "r435"
                    ],
                "localname":  "NameOfMajorCustomerDomain",
                "nsuri":  "http://fasb.org/srt/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "srt_TitleOfIndividualAxis":  {
                "auth_ref":  [
                    "r185",
                    "r380"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Title Of Individual Axis"
                            }
                        }
                    },
                "localname":  "TitleOfIndividualAxis",
                "nsuri":  "http://fasb.org/srt/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "stringItemType"
                },
            "srt_TitleOfIndividualWithRelationshipToEntityDomain":  {
                "auth_ref":  [
                    ],
                "localname":  "TitleOfIndividualWithRelationshipToEntityDomain",
                "nsuri":  "http://fasb.org/srt/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_AccountsPayablePolicyTextBlock":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Custom Element.",
                            "label":  "[Accounts Payable]",
                            "verboseLabel":  "Accounts Payable"
                            }
                        }
                    },
                "localname":  "AccountsPayablePolicyTextBlock",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "tomz_AccruedEquityCompensation":  {
                "auth_ref":  [
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Accrued Equity Compensation"
                            }
                        }
                    },
                "localname":  "AccruedEquityCompensation",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_AggregateCashConsideration":  {
                "auth_ref":  [
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Aggregate cash consideration"
                            }
                        }
                    },
                "localname":  "AggregateCashConsideration",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_AmortizationOfTenantImprovementAllowance":  {
                "auth_ref":  [
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Amortization of Tenant Improvement Allowance"
                            }
                        }
                    },
                "localname":  "AmortizationOfTenantImprovementAllowance",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/PropertyAndEquipmentDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_AnnualPaymentsOnContractTerm":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Annual payments on contract term"
                            }
                        }
                    },
                "localname":  "AnnualPaymentsOnContractTerm",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CloudComputingServiceContractDetailsNarrative"
                    ],
                "xbrltype":  "durationItemType"
                },
            "tomz_ApproximateMinimumContractPaymentsTableTextBlock":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Tabular disclosure of contractual obligation by timing of payment due.  Includes, but is not limited to, long-term debt obligation, lease obligation, and purchase obligation.",
                            "label":  "Approximate Minimum Contract Payments"
                            }
                        }
                    },
                "localname":  "ApproximateMinimumContractPaymentsTableTextBlock",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "tomz_AprilTwentyTwentyMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "April 2020 [Member]"
                            }
                        }
                    },
                "localname":  "AprilTwentyTwentyMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_Basic":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "[Basic]",
                            "verboseLabel":  "Basic"
                            }
                        }
                    },
                "localname":  "Basic",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "tomz_BoardOfMembersMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Board of Members"
                            }
                        }
                    },
                "localname":  "BoardOfMembersMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_CapitalizedPatentAndTrademarkCosts":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  22.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInInvestingActivities",
                        "weight":  -1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Capitalized Patent and Trademark Costs"
                            }
                        }
                    },
                "localname":  "CapitalizedPatentAndTrademarkCosts",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_CapitalizedSoftwareDevelopmentCostsTableTextBlock":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "[Capitalized Software Development Costs]",
                            "verboseLabel":  "Capitalized Software Development Costs"
                            }
                        }
                    },
                "localname":  "CapitalizedSoftwareDevelopmentCostsTableTextBlock",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "tomz_ChangesInRevenue":  {
                "auth_ref":  [
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Changes in revenue"
                            }
                        }
                    },
                "localname":  "ChangesInRevenue",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_ChiefOperatingOfficersMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "CEO [Member]"
                            }
                        }
                    },
                "localname":  "ChiefOperatingOfficersMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_CloudComputingServiceContractDisclosureTextBlock":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "9.  CLOUD COMPUTING SERVICE CONTRACT"
                            }
                        }
                    },
                "localname":  "CloudComputingServiceContractDisclosureTextBlock",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CloudComputingServiceContract"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "tomz_CommitteeChairpersonMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Committee Chairperson"
                            }
                        }
                    },
                "localname":  "CommitteeChairpersonMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_CommonStockIssuableUponConversionOfOutstandingShares":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Common stock issuable upon conversion of outstanding shares"
                            }
                        }
                    },
                "localname":  "CommonStockIssuableUponConversionOfOutstandingShares",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "tomz_CommonStockIssuedForServicesProvidedAmount":  {
                "auth_ref":  [
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Common Stock Issued for Services Provided, amount"
                            }
                        }
                    },
                "localname":  "CommonStockIssuedForServicesProvidedAmount",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_CommonStockIssuedForServicesProvidedShares":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Common Stock Issued for Services Provided, shares"
                            }
                        }
                    },
                "localname":  "CommonStockIssuedForServicesProvidedShares",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "tomz_CommonStockShareSold":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury).  These shares represent capital invested by the firm's shareholders and owners, and",
                            "label":  "Common stock share sold"
                            }
                        }
                    },
                "localname":  "CommonStockShareSold",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "tomz_CommonStockSharesFullyVestedAmount":  {
                "auth_ref":  [
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Common stock shares fully vested, amount"
                            }
                        }
                    },
                "localname":  "CommonStockSharesFullyVestedAmount",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount":  {
                "auth_ref":  [
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Common stock shares issued upon conversion of convertible notes payable, amount"
                            }
                        }
                    },
                "localname":  "CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Common stock shares issued upon conversion of convertible notes payable, shares"
                            }
                        }
                    },
                "localname":  "CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "tomz_CommonStockSharesIssuedUponExerciseOfOptionAmount":  {
                "auth_ref":  [
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Common stock shares issued upon exercise of option, amount"
                            }
                        }
                    },
                "localname":  "CommonStockSharesIssuedUponExerciseOfOptionAmount",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_CommonStockSharesIssuedUponExerciseOfOptionShares":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Common stock shares issued upon exercise of option, shares"
                            }
                        }
                    },
                "localname":  "CommonStockSharesIssuedUponExerciseOfOptionShares",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "tomz_CommonStockSharesIssuedVested":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Common stock, shares issued"
                            }
                        }
                    },
                "localname":  "CommonStockSharesIssuedVested",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "tomz_ComputerSoftware":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/PropertyAndEquipmentDetails":  {
                        "order":  5.0,
                        "parentTag":  "us-gaap_PropertyPlantAndEquipmentGross",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Computer and Software"
                            }
                        }
                    },
                "localname":  "ComputerSoftware",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/PropertyAndEquipmentDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_ConsultingFees":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations":  {
                        "order":  8.0,
                        "parentTag":  "us-gaap_OperatingExpenses",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Consulting Expenses incurred during the period.",
                            "label":  "Consulting Fees"
                            }
                        }
                    },
                "localname":  "ConsultingFees",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_ContractsAndAgreementsTextBlock":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Contracts and agreements text block.",
                            "label":  "12.  CONTRACTS AND AGREEMENTS"
                            }
                        }
                    },
                "localname":  "ContractsAndAgreementsTextBlock",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreements"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "tomz_ConversionOfNotesPayableIntoCommonStockAmount":  {
                "auth_ref":  [
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Conversion of Notes Payable into Common Stock, amount"
                            }
                        }
                    },
                "localname":  "ConversionOfNotesPayableIntoCommonStockAmount",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_ConversionOfNotesPayableIntoCommonStockShares":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Conversion of Notes Payable into Common Stock, shares"
                            }
                        }
                    },
                "localname":  "ConversionOfNotesPayableIntoCommonStockShares",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "tomz_DebtInstrumentIncreasesAccruedInterest":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  19.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInOperatingActivities",
                        "weight":  -1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Increase for accrued, but unpaid interest on the debt instrument for the period.",
                            "label":  "Accrued Interest"
                            }
                        }
                    },
                "localname":  "DebtInstrumentIncreasesAccruedInterest",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_DeferredTaxAssetOperatingLeaseRightofuseLiabilities":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails3":  {
                        "order":  4.0,
                        "parentTag":  "us-gaap_DeferredTaxAssetsNet",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Operating Lease Right-of-use Liabilities"
                            }
                        }
                    },
                "localname":  "DeferredTaxAssetOperatingLeaseRightofuseLiabilities",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails3"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_DeferredTaxAssetsAccruedVacation":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails3":  {
                        "order":  7.0,
                        "parentTag":  "us-gaap_DeferredTaxAssetsNet",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Accrued Vacation"
                            }
                        }
                    },
                "localname":  "DeferredTaxAssetsAccruedVacation",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails3"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails3":  {
                        "order":  6.0,
                        "parentTag":  "us-gaap_DeferredTaxAssetsNet",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "[Warranty Reserve]",
                            "verboseLabel":  "Warranty Reserve"
                            }
                        }
                    },
                "localname":  "DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails3"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_DeferredTaxLiabilityOperatingLeaseRightofuseAssets":  {
                "auth_ref":  [
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "[Operating Lease Right-of-use Assets]",
                            "negatedLabel":  "Operating Lease Right-of-use Assets"
                            }
                        }
                    },
                "localname":  "DeferredTaxLiabilityOperatingLeaseRightofuseAssets",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails3"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_Diluted":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "[Diluted]",
                            "verboseLabel":  "Diluted"
                            }
                        }
                    },
                "localname":  "Diluted",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "tomz_DilutedNetIncomeorLossMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Diluted Net Income or Loss [Member]"
                            }
                        }
                    },
                "localname":  "DilutedNetIncomeorLossMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_DirectorFeesCurrentAndNoncurrent":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails":  {
                        "order":  6.0,
                        "parentTag":  "us-gaap_AccruedLiabilitiesAndOtherLiabilities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Director Fees"
                            }
                        }
                    },
                "localname":  "DirectorFeesCurrentAndNoncurrent",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_EquipmentNetTransferredToInventory":  {
                "auth_ref":  [
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Equipment, net Transferred to Inventory"
                            }
                        }
                    },
                "localname":  "EquipmentNetTransferredToInventory",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_Equipments":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/PropertyAndEquipmentDetails":  {
                        "order":  7.0,
                        "parentTag":  "us-gaap_PropertyPlantAndEquipmentGross",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Equipment"
                            }
                        }
                    },
                "localname":  "Equipments",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/PropertyAndEquipmentDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_EquityCompensation":  {
                "auth_ref":  [
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Equity Compensation"
                            }
                        }
                    },
                "localname":  "EquityCompensation",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_EquityCompensationExpense":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  6.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInOperatingActivities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Equity Compensation Expense"
                            }
                        }
                    },
                "localname":  "EquityCompensationExpense",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_EquityIncentivePlanOneMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "2016 Equity Incentive Plan"
                            }
                        }
                    },
                "localname":  "EquityIncentivePlanOneMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_ExecutiveAgreementsWithElissaJShaneMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Executive Agreements (Elissa J.  Shane)"
                            }
                        }
                    },
                "localname":  "ExecutiveAgreementsWithElissaJShaneMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_ExecutiveAgreementsWithHaldenSShaneMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Executive Agreements (Halden S.  Shane)"
                            }
                        }
                    },
                "localname":  "ExecutiveAgreementsWithHaldenSShaneMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_ExercisePrice":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "[Exercise price]",
                            "verboseLabel":  "Exercise price"
                            }
                        }
                    },
                "localname":  "ExercisePrice",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "tomz_ExercisePriceOfWarrant":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Exercise price of warrant"
                            }
                        }
                    },
                "localname":  "ExercisePriceOfWarrant",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "tomz_ExpectedDividendYield":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "[Expected dividend yield]",
                            "verboseLabel":  "Expected dividend yield"
                            }
                        }
                    },
                "localname":  "ExpectedDividendYield",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative"
                    ],
                "xbrltype":  "percentItemType"
                },
            "tomz_FairValueOfStockOption":  {
                "auth_ref":  [
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Fair value of stock option"
                            }
                        }
                    },
                "localname":  "FairValueOfStockOption",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_FairValueOfStockWarrant":  {
                "auth_ref":  [
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Fair value of stock warrant"
                            }
                        }
                    },
                "localname":  "FairValueOfStockWarrant",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_GainsLossOnExtinguishmentOfDebt":  {
                "auth_ref":  [
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Difference between the fair value of payments made and the carrying amount of debt which is extinguished prior to maturity.",
                            "label":  "Gain on extinguishment debt"
                            }
                        }
                    },
                "localname":  "GainsLossOnExtinguishmentOfDebt",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/LoanPayableDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_GrantDateFairValuePerShareOfCommonStock":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Grant date fair value per share of common stock"
                            }
                        }
                    },
                "localname":  "GrantDateFairValuePerShareOfCommonStock",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "tomz_GrantFairValueOfPerShare":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Grant fair value of per share"
                            }
                        }
                    },
                "localname":  "GrantFairValueOfPerShare",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "tomz_IncomeLossBeforeIncomeTax":  {
                "auth_ref":  [
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Income (Loss) before income tax"
                            }
                        }
                    },
                "localname":  "IncomeLossBeforeIncomeTax",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails2"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_IncreaseDecreaseInLeaseLiabilities":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  21.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInOperatingActivities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Lease Liability"
                            }
                        }
                    },
                "localname":  "IncreaseDecreaseInLeaseLiabilities",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_IntangibleAssetsNet":  {
                "auth_ref":  [
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Intangible Assets, Net"
                            }
                        }
                    },
                "localname":  "IntangibleAssetsNet",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/IntangibleAssetsDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_InterestOnConvertibleDebt":  {
                "auth_ref":  [
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Interest on convertible debt"
                            }
                        }
                    },
                "localname":  "InterestOnConvertibleDebt",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_InternationalMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "International"
                            }
                        }
                    },
                "localname":  "InternationalMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_IssuanceOfOptionToPurchaseSharesOfCommonStock":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Issuance of option to purchase shares of common stock"
                            }
                        }
                    },
                "localname":  "IssuanceOfOptionToPurchaseSharesOfCommonStock",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "tomz_IssuedWarrantsInConcurrentPlacementAgent":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Issued warrants in concurrent placement agent"
                            }
                        }
                    },
                "localname":  "IssuedWarrantsInConcurrentPlacementAgent",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "tomz_IssuedWarrantsInConcurrentPrivatePlacement":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Issued warrants in concurrent private placement"
                            }
                        }
                    },
                "localname":  "IssuedWarrantsInConcurrentPrivatePlacement",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "tomz_JanuaryTwentyTwentyOneMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "January 2021 [Member]"
                            }
                        }
                    },
                "localname":  "JanuaryTwentyTwentyOneMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_JulyTwentyTwentyMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "July 2020 [Member]"
                            }
                        }
                    },
                "localname":  "JulyTwentyTwentyMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_JuneTwentyTwentyMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "June 2020 [Member]"
                            }
                        }
                    },
                "localname":  "JuneTwentyTwentyMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_LeaseOtherInformationTableTextBlock":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Other Information Related to Leases"
                            }
                        }
                    },
                "localname":  "LeaseOtherInformationTableTextBlock",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/LeasesTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "tomz_LoansPayableDisclosureTextBlock":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "15.  LOAN PAYABLE"
                            }
                        }
                    },
                "localname":  "LoansPayableDisclosureTextBlock",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/LoanPayable"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "tomz_LonglivedAssetsIncludingAcquiredIntangibleAssets":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Long lived assets including acquired intangible assets.",
                            "label":  "Long-Lived Assets Including Acquired Intangible Assets"
                            }
                        }
                    },
                "localname":  "LonglivedAssetsIncludingAcquiredIntangibleAssets",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "tomz_MarchTwentyTwentyMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "March 2020 [Member]"
                            }
                        }
                    },
                "localname":  "MarchTwentyTwentyMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_MaximumIncreasesRentPercentage":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Increases rent percentage escalation clause"
                            }
                        }
                    },
                "localname":  "MaximumIncreasesRentPercentage",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/LeasesDetailsNarrative"
                    ],
                "xbrltype":  "percentItemType"
                },
            "tomz_MayTwentyTwentyMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "May 2020 [Member]"
                            }
                        }
                    },
                "localname":  "MayTwentyTwentyMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_NetDeferredTaxAssetsIncreasedValuationAllowance":  {
                "auth_ref":  [
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Net deferred tax assets increased valuation allowance"
                            }
                        }
                    },
                "localname":  "NetDeferredTaxAssetsIncreasedValuationAllowance",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_NetDeferredTaxAssetsValuationAllowance":  {
                "auth_ref":  [
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Net deferred tax assets valuation allowance"
                            }
                        }
                    },
                "localname":  "NetDeferredTaxAssetsValuationAllowance",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_NetLossAttributableToCommonShareholders":  {
                "auth_ref":  [
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Custom Element.",
                            "label":  "Net Income (Loss) Attributable to Common Shareholders"
                            }
                        }
                    },
                "localname":  "NetLossAttributableToCommonShareholders",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_OctoberTwoThousandTwentyMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "October 2020 [Member]"
                            }
                        }
                    },
                "localname":  "OctoberTwoThousandTwentyMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_OctoberwentyTwentyMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "[October 2020 [Member]]",
                            "verboseLabel":  "October 2020 [Member]"
                            }
                        }
                    },
                "localname":  "OctoberwentyTwentyMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_OneCustomerMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "One Customer"
                            }
                        }
                    },
                "localname":  "OneCustomerMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CustomerConcentrationDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_OperatingLeaseLiabilityTableTextBlock":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Operating Lease"
                            }
                        }
                    },
                "localname":  "OperatingLeaseLiabilityTableTextBlock",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/LeasesTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Weighted-Average Remaining Lease Term:  Operating Leases"
                            }
                        }
                    },
                "localname":  "OperatingLeaseWeightedAveragesRemainingLeaseTerm",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/LeasesDetails2"
                    ],
                "xbrltype":  "stringItemType"
                },
            "tomz_OutstandingBeginningOfPeriod":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Outstanding, beginning of period"
                            }
                        }
                    },
                "localname":  "OutstandingBeginningOfPeriod",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "tomz_OutstandingEndOfPeriod":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Outstanding, end of period"
                            }
                        }
                    },
                "localname":  "OutstandingEndOfPeriod",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "tomz_PatentAndTrademarkCostsReclassifiedFromOtherAssets":  {
                "auth_ref":  [
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Patent and trademark costs reclassified from Other Assets"
                            }
                        }
                    },
                "localname":  "PatentAndTrademarkCostsReclassifiedFromOtherAssets",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_PlacementAgentMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Placement Agent [Members]"
                            }
                        }
                    },
                "localname":  "PlacementAgentMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_Preferredstockparorstatedvaluepershare":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "[Cumulative Convertible Preferred Stock; Par Value]",
                            "verboseLabel":  "Cumulative Convertible Preferred Stock; Par Value"
                            }
                        }
                    },
                "localname":  "Preferredstockparorstatedvaluepershare",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "tomz_PrivatePlacementsMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Private Placement [Members]"
                            }
                        }
                    },
                "localname":  "PrivatePlacementsMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_ProceedsFromLoanFundingPaycheckProtectionProgram":  {
                "auth_ref":  [
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Loan funding from (Paycheck Protection Program)"
                            }
                        }
                    },
                "localname":  "ProceedsFromLoanFundingPaycheckProtectionProgram",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/LoanPayableDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_ProceedsFromServiceContractOfReceivables":  {
                "auth_ref":  [
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Annual payments on contract received"
                            }
                        }
                    },
                "localname":  "ProceedsFromServiceContractOfReceivables",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CloudComputingServiceContractDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_ProductAndServiceRevenueMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Product And Service Revenue"
                            }
                        }
                    },
                "localname":  "ProductAndServiceRevenueMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_ProvisionForIncomeTaxes":  {
                "auth_ref":  [
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Provision for Income Taxes"
                            }
                        }
                    },
                "localname":  "ProvisionForIncomeTaxes",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_PurchaseOfPropertyAndEquipment":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  23.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInInvestingActivities",
                        "weight":  -1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed a",
                            "label":  "Purchase of Property and Equipment"
                            }
                        }
                    },
                "localname":  "PurchaseOfPropertyAndEquipment",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_RangeFiveMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "$2.16"
                            }
                        }
                    },
                "localname":  "RangeFiveMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails1"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_RangeFourMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "$1.93"
                            }
                        }
                    },
                "localname":  "RangeFourMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails1"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_RangeOneMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "$0.80"
                            }
                        }
                    },
                "localname":  "RangeOneMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails1"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_RangeSevenMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "$7.06"
                            }
                        }
                    },
                "localname":  "RangeSevenMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails1"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_RangeSixMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "$4.40"
                            }
                        }
                    },
                "localname":  "RangeSixMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails1"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_RangeThreeMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "$0.96"
                            }
                        }
                    },
                "localname":  "RangeThreeMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails1"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_RangeTwoMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "$0.88"
                            }
                        }
                    },
                "localname":  "RangeTwoMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails1"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_ReimburseOfExpensesAssociatedWithUseOfAutomobile":  {
                "auth_ref":  [
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Cost associated with reimbursable income.  This occurs when a services entity incurs expenses on behalf of the client and passes through the cost of reimbursable expenses to a client.",
                            "label":  "Reimburse of expenses associated with use of automobile"
                            }
                        }
                    },
                "localname":  "ReimburseOfExpensesAssociatedWithUseOfAutomobile",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_RepaymentOfPrincipalBalanceOnConvertibleNote":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  27.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInFinancingActivities",
                        "weight":  -1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The cash outflow from the repayment of a long-term debt instrument which can be exchanged for a specified amount of another security, typically the entity's common stock, at the option of the issuer or the holder.",
                            "label":  "Repayment of Principal Balance on Convertible Note"
                            }
                        }
                    },
                "localname":  "RepaymentOfPrincipalBalanceOnConvertibleNote",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_ResearchAndDevelopmentsExpense":  {
                "auth_ref":  [
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a",
                            "label":  "[Research and Development Expenses]",
                            "verboseLabel":  "Research and Development Expenses"
                            }
                        }
                    },
                "localname":  "ResearchAndDevelopmentsExpense",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_RevenueByGeographicRegionMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Revenue By Geographic Region"
                            }
                        }
                    },
                "localname":  "RevenueByGeographicRegionMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_ReverseStockSplitAdjustmentAmount":  {
                "auth_ref":  [
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Reverse stock split adjustment, amount"
                            }
                        }
                    },
                "localname":  "ReverseStockSplitAdjustmentAmount",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_ReverseStockSplitAdjustmentShares":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Reverse stock split adjustment, shares"
                            }
                        }
                    },
                "localname":  "ReverseStockSplitAdjustmentShares",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "tomz_RiskFreeInterestRate":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "[Risk free interest rate]",
                            "verboseLabel":  "Risk free interest rate"
                            }
                        }
                    },
                "localname":  "RiskFreeInterestRate",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative"
                    ],
                "xbrltype":  "percentItemType"
                },
            "tomz_SalesTaxPayable":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails":  {
                        "order":  5.0,
                        "parentTag":  "us-gaap_AccruedLiabilitiesAndOtherLiabilities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Sales Tax Payable"
                            }
                        }
                    },
                "localname":  "SalesTaxPayable",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_SeriesAPreferredStocksMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Series A Preferred Stock"
                            }
                        }
                    },
                "localname":  "SeriesAPreferredStocksMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_ServiceAndTrainingMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Service and Training"
                            }
                        }
                    },
                "localname":  "ServiceAndTrainingMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_SettlementOfWarrantyClaims":  {
                "auth_ref":  [
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Settlement of warranty claims"
                            }
                        }
                    },
                "localname":  "SettlementOfWarrantyClaims",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/AccruedWarrantyDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "[Exercised]",
                            "negatedLabel":  "Exercised"
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails",
                    "http://tomz.com/role/ShareholdersEquityDetails2"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "tomz_StateNetOperatingLossCarryforwards":  {
                "auth_ref":  [
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "State Net Operating Loss Carryforwards"
                            }
                        }
                    },
                "localname":  "StateNetOperatingLossCarryforwards",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_SteraMistProductMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "SteraMist Product"
                            }
                        }
                    },
                "localname":  "SteraMistProductMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_StockOptionTerm":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Stock option term"
                            }
                        }
                    },
                "localname":  "StockOptionTerm",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative"
                    ],
                "xbrltype":  "durationItemType"
                },
            "tomz_StockOptionValued":  {
                "auth_ref":  [
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Stock option valued"
                            }
                        }
                    },
                "localname":  "StockOptionValued",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_StockOptionsMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Stock Options",
                            "verboseLabel":  "Stock Options"
                            }
                        }
                    },
                "localname":  "StockOptionsMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_StockWarrantMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Stock Warrant [Member]"
                            }
                        }
                    },
                "localname":  "StockWarrantMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails",
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_StockWarrantOneMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Stock Warrant 1 [Member]"
                            }
                        }
                    },
                "localname":  "StockWarrantOneMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_StockWarrantThreeMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Stock Warrant 3 [Member]"
                            }
                        }
                    },
                "localname":  "StockWarrantThreeMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_StockWarrantTwoMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Stock Warrant 2 [Member]"
                            }
                        }
                    },
                "localname":  "StockWarrantTwoMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Supplemental Cash Flow Information related to leases"
                            }
                        }
                    },
                "localname":  "SupplementalCashFlowInformationRelatedToLeasesTableTextBlock",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/LeasesTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "tomz_TermLease":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Term lease"
                            }
                        }
                    },
                "localname":  "TermLease",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/LeasesDetailsNarrative"
                    ],
                "xbrltype":  "durationItemType"
                },
            "tomz_TermOfAgreement":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Term of agreement"
                            }
                        }
                    },
                "localname":  "TermOfAgreement",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
                    ],
                "xbrltype":  "stringItemType"
                },
            "tomz_ThreeCustomersMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Three Customers"
                            }
                        }
                    },
                "localname":  "ThreeCustomersMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CustomerConcentrationDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_TwoCustomerMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Two Customer"
                            }
                        }
                    },
                "localname":  "TwoCustomerMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CustomerConcentrationDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_TwoThousandSixteenEquityPlanMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "2016 Equity Plan"
                            }
                        }
                    },
                "localname":  "TwoThousandSixteenEquityPlanMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_TwoVendorsMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Two Vendors"
                            }
                        }
                    },
                "localname":  "TwoVendorsMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_UnsecuredLoanPrincipalAmountOfCityNationalBank":  {
                "auth_ref":  [
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Unsecured loan principal amount of City National Bank"
                            }
                        }
                    },
                "localname":  "UnsecuredLoanPrincipalAmountOfCityNationalBank",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/LoanPayableDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_VendorDepositsTextBlock":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "4.  VENDOR DEPOSITS"
                            }
                        }
                    },
                "localname":  "VendorDepositsTextBlock",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/VendorDeposits"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "tomz_Volatility":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Volatility"
                            }
                        }
                    },
                "localname":  "Volatility",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative"
                    ],
                "xbrltype":  "percentItemType"
                },
            "tomz_WarrantAmendmentDescription":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Warrant amendment, description"
                            }
                        }
                    },
                "localname":  "WarrantAmendmentDescription",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "stringItemType"
                },
            "tomz_WarrantsAndOptionsExercisedAmount":  {
                "auth_ref":  [
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Warrants and Options Exercised, amount"
                            }
                        }
                    },
                "localname":  "WarrantsAndOptionsExercisedAmount",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "tomz_WarrantsAndOptionsExercisedShares":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Warrants and Options Exercised, shares"
                            }
                        }
                    },
                "localname":  "WarrantsAndOptionsExercisedShares",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "tomz_WarrantsCancelled":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Warrants cancelled"
                            }
                        }
                    },
                "localname":  "WarrantsCancelled",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "tomz_WarrantsEightMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "$ 2.18"
                            }
                        }
                    },
                "localname":  "WarrantsEightMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails3"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_WarrantsElevenMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "$ 6.95"
                            }
                        }
                    },
                "localname":  "WarrantsElevenMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails3"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_WarrantsFiveMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "$ 1.20"
                            }
                        }
                    },
                "localname":  "WarrantsFiveMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails3"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_WarrantsFourMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "$ 1.12"
                            }
                        }
                    },
                "localname":  "WarrantsFourMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails3"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_WarrantsIssuedUponPurchaseShareOfCommonStock":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Warrants issued upon purchase share of common stock"
                            }
                        }
                    },
                "localname":  "WarrantsIssuedUponPurchaseShareOfCommonStock",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "tomz_WarrantsMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "[Warrants]",
                            "verboseLabel":  "Warrants"
                            }
                        }
                    },
                "localname":  "WarrantsMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails2",
                    "http://tomz.com/role/ShareholdersEquityDetails3",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_WarrantsNineMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "$ 2.32"
                            }
                        }
                    },
                "localname":  "WarrantsNineMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails3"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_WarrantsOneMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "$ 0.64"
                            }
                        }
                    },
                "localname":  "WarrantsOneMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails3"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_WarrantsOutstandingAndExercisableByPriceRange":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Custom Element.",
                            "label":  "Warrants Outstanding and Exercisable by Price Range"
                            }
                        }
                    },
                "localname":  "WarrantsOutstandingAndExercisableByPriceRange",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/HareholdersEquityTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "tomz_WarrantsSevenMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "$ 1.68"
                            }
                        }
                    },
                "localname":  "WarrantsSevenMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails3"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_WarrantsSixMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "$ 1.36"
                            }
                        }
                    },
                "localname":  "WarrantsSixMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails3"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_WarrantsTenMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "$ 4.00"
                            }
                        }
                    },
                "localname":  "WarrantsTenMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails3"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_WarrantsThreeMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "$ 0.96"
                            }
                        }
                    },
                "localname":  "WarrantsThreeMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails3"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_WarrantsTwelveMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "$ 8.40"
                            }
                        }
                    },
                "localname":  "WarrantsTwelveMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails3"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_WarrantsTwoMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "$ 0.80"
                            }
                        }
                    },
                "localname":  "WarrantsTwoMember",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails3"
                    ],
                "xbrltype":  "domainItemType"
                },
            "tomz_WeightedAverageExercisePriceAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Weighted Average Exercise Price"
                            }
                        }
                    },
                "localname":  "WeightedAverageExercisePriceAbstract",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails"
                    ],
                "xbrltype":  "stringItemType"
                },
            "tomz_WeightedAverageExercisePriceExercised":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Weighted average exercise price, Exercised"
                            }
                        }
                    },
                "localname":  "WeightedAverageExercisePriceExercised",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "tomz_WeightedAverageExercisePriceExpired":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Weighted average exercise price, Expired"
                            }
                        }
                    },
                "localname":  "WeightedAverageExercisePriceExpired",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "tomz_WeightedAverageExercisePriceGranted":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Weighted average exercise price, Granted"
                            }
                        }
                    },
                "localname":  "WeightedAverageExercisePriceGranted",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "tomz_WeightedAverageExercisePriceOutstandingBeginningBalance":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Weighted average exercise price outstanding, Beginning balance"
                            }
                        }
                    },
                "localname":  "WeightedAverageExercisePriceOutstandingBeginningBalance",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "tomz_WeightedAverageExercisePriceOutstandingEndingBalance":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Weighted average exercise price outstanding, Ending balance"
                            }
                        }
                    },
                "localname":  "WeightedAverageExercisePriceOutstandingEndingBalance",
                "nsuri":  "http://tomz.com/20211231",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "us-gaap_AccountingPoliciesAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES"
                            }
                        }
                    },
                "localname":  "AccountingPoliciesAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The entire disclosure for accounts payable, accrued expenses, and other liabilities that are classified as current at the end of the reporting period.",
                            "label":  "13.  ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES"
                            }
                        }
                    },
                "localname":  "AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_AccountsPayableCurrent":  {
                "auth_ref":  [
                    "r43",
                    "r384"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  15.0,
                        "parentTag":  "us-gaap_LiabilitiesCurrent",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business.  Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
                            "label":  "[Accounts Payable, Current]",
                            "verboseLabel":  "Accounts Payable"
                            }
                        }
                    },
                "localname":  "AccountsPayableCurrent",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_AccountsPayableMember":  {
                "auth_ref":  [
                    "r13"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Obligations incurred and payable to vendors for goods and services received.",
                            "label":  "Accounts Payable [Member]",
                            "verboseLabel":  "Accounts Payable"
                            }
                        }
                    },
                "localname":  "AccountsPayableMember",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_AccountsReceivableNetCurrent":  {
                "auth_ref":  [
                    "r6",
                    "r28",
                    "r186",
                    "r187"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  3.0,
                        "parentTag":  "us-gaap_AssetsCurrent",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.",
                            "label":  "Accounts Receivable - net"
                            }
                        }
                    },
                "localname":  "AccountsReceivableNetCurrent",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_AccruedIncomeTaxes":  {
                "auth_ref":  [
                    "r21",
                    "r24",
                    "r314",
                    "r409",
                    "r423"
                    ],
                "calculation":  {
                    "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails":  {
                        "order":  4.0,
                        "parentTag":  "us-gaap_AccruedLiabilitiesAndOtherLiabilities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all domestic and foreign income tax obligations due.  This amount is the total of current and noncurrent accrued income taxes.",
                            "label":  "Income Taxes Payable (Note 16)"
                            }
                        }
                    },
                "localname":  "AccruedIncomeTaxes",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_AccruedLiabilitiesAndOtherLiabilities":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails":  {
                        "order":  null,
                        "parentTag":  null,
                        "root":  true,
                        "weight":  null
                        },
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  16.0,
                        "parentTag":  "us-gaap_LiabilitiesCurrent",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of expenses incurred but not yet paid nor invoiced, and liabilities classified as other.",
                            "label":  "Accrued Expenses and Other Current Liabilities (Note 13)",
                            "verboseLabel":  "Total"
                            }
                        }
                    },
                "localname":  "AccruedLiabilitiesAndOtherLiabilities",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails",
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES"
                            }
                        }
                    },
                "localname":  "AccruedLiabilitiesAndOtherLiabilitiesAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent":  {
                "auth_ref":  [
                    "r411",
                    "r427"
                    ],
                "calculation":  {
                    "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails":  {
                        "order":  7.0,
                        "parentTag":  "us-gaap_AccruedLiabilitiesAndOtherLiabilities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Carrying value as of the balance sheet date of obligations incurred and payable for statutory payroll taxes incurred through that date and withheld from employees pertaining to services received from them, including entity's matching share of the employees FICA taxes and contributions to the state and federal unemployment insurance programs.",
                            "label":  "Payroll and related costs"
                            }
                        }
                    },
                "localname":  "AccruedPayrollTaxesCurrentAndNoncurrent",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment":  {
                "auth_ref":  [
                    "r40",
                    "r224"
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.",
                            "label":  "Less:  Accumulated Depreciation"
                            }
                        }
                    },
                "localname":  "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/PropertyAndEquipmentDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_AdditionalPaidInCapital":  {
                "auth_ref":  [
                    "r29",
                    "r302",
                    "r384"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  24.0,
                        "parentTag":  "us-gaap_StockholdersEquity",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder.  Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock.",
                            "label":  "[Additional Paid in Capital]",
                            "verboseLabel":  "Additional Paid-In Capital"
                            }
                        }
                    },
                "localname":  "AdditionalPaidInCapital",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_AdditionalPaidInCapitalMember":  {
                "auth_ref":  [
                    "r110",
                    "r111",
                    "r112",
                    "r299",
                    "r300",
                    "r301",
                    "r351"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders.",
                            "label":  "Additional Paid-in Capital [Member]",
                            "verboseLabel":  "Additional Paid-In Capital"
                            }
                        }
                    },
                "localname":  "AdditionalPaidInCapitalMember",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Adjustments to Reconcile Net Income (Loss) to Net Cash Provided by (Used) In Operating Activities:"
                            }
                        }
                    },
                "localname":  "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_AdvertisingCostsPolicyTextBlock":  {
                "auth_ref":  [
                    "r304"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Disclosure of accounting policy for advertising cost.",
                            "label":  "Advertising and Promotional Expenses"
                            }
                        }
                    },
                "localname":  "AdvertisingCostsPolicyTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_AdvertisingExpense":  {
                "auth_ref":  [
                    "r305"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount charged to advertising expense for the period, which are expenses incurred with the objective of increasing revenue for a specified brand, product or product line.",
                            "label":  "[Advertising Expense]",
                            "verboseLabel":  "Advertising and Promotional Expenses"
                            }
                        }
                    },
                "localname":  "AdvertisingExpense",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_AllowanceForDoubtfulAccountsReceivable":  {
                "auth_ref":  [
                    "r189",
                    "r196",
                    "r197",
                    "r199"
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of allowance for credit loss on accounts receivable.",
                            "label":  "Allowance for Doubtful Accounts"
                            }
                        }
                    },
                "localname":  "AllowanceForDoubtfulAccountsReceivable",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease":  {
                "auth_ref":  [
                    "r200"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  8.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInOperatingActivities",
                        "weight":  1.0
                        }
                    },
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of increase (decrease) in allowance for credit loss on accounts receivable.",
                            "label":  "Reserve for Bad Debt"
                            }
                        }
                    },
                "localname":  "AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_AmortizationOfIntangibleAssets":  {
                "auth_ref":  [
                    "r88",
                    "r210",
                    "r216"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets.  As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.",
                            "label":  "Amortization Expense"
                            }
                        }
                    },
                "localname":  "AmortizationOfIntangibleAssets",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IntangibleAssetsDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount":  {
                "auth_ref":  [
                    "r138"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.",
                            "label":  "Potentially Dilutive Securities"
                            }
                        }
                    },
                "localname":  "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_AreaOfLand":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Area of land held.",
                            "label":  "Area of lease facility"
                            }
                        }
                    },
                "localname":  "AreaOfLand",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LeasesDetailsNarrative"
                    ],
                "xbrltype":  "areaItemType"
                },
            "us-gaap_Assets":  {
                "auth_ref":  [
                    "r104",
                    "r169",
                    "r174",
                    "r180",
                    "r194",
                    "r243",
                    "r244",
                    "r245",
                    "r246",
                    "r247",
                    "r248",
                    "r249",
                    "r250",
                    "r251",
                    "r252",
                    "r253",
                    "r343",
                    "r346",
                    "r356",
                    "r382",
                    "r384",
                    "r408",
                    "r422"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  null,
                        "parentTag":  null,
                        "root":  true,
                        "weight":  null
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized.  Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.",
                            "label":  "[Assets]",
                            "totalLabel":  "Total Assets"
                            }
                        }
                    },
                "localname":  "Assets",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_AssetsAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "ASSETS",
                            "verboseLabel":  "Assets"
                            }
                        }
                    },
                "localname":  "AssetsAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
                    "http://tomz.com/role/LeasesDetails"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_AssetsCurrent":  {
                "auth_ref":  [
                    "r8",
                    "r10",
                    "r58",
                    "r104",
                    "r194",
                    "r243",
                    "r244",
                    "r245",
                    "r246",
                    "r247",
                    "r248",
                    "r249",
                    "r250",
                    "r251",
                    "r252",
                    "r253",
                    "r343",
                    "r346",
                    "r356",
                    "r382",
                    "r384"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  12.0,
                        "parentTag":  "us-gaap_Assets",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer).  Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.",
                            "label":  "[Assets, Current]",
                            "totalLabel":  "Total Current Assets"
                            }
                        }
                    },
                "localname":  "AssetsCurrent",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_AssetsCurrentAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Current Assets:"
                            }
                        }
                    },
                "localname":  "AssetsCurrentAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_AwardDateAxis":  {
                "auth_ref":  [
                    "r282",
                    "r297"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Information by date or year award under share-based payment arrangement is granted.",
                            "label":  "Award Date Axis"
                            }
                        }
                    },
                "localname":  "AwardDateAxis",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_AwardDateDomain":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Date or year award under share-based payment arrangement is granted."
                            }
                        }
                    },
                "localname":  "AwardDateDomain",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_AwardTypeAxis":  {
                "auth_ref":  [
                    "r282",
                    "r297"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Information by type of award under share-based payment arrangement.",
                            "label":  "Award Type Axis"
                            }
                        }
                    },
                "localname":  "AwardTypeAxis",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails3"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_BusinessCombinationsPolicy":  {
                "auth_ref":  [
                    "r341"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control).  This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof.  An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy.",
                            "label":  "Business Segments"
                            }
                        }
                    },
                "localname":  "BusinessCombinationsPolicy",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_CapitalizedComputerSoftwareAccumulatedAmortization":  {
                "auth_ref":  [
                    "r449"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails":  {
                        "order":  2.0,
                        "parentTag":  "us-gaap_CapitalizedComputerSoftwareNet",
                        "weight":  -1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "For each balance sheet presented, the amount of accumulated amortization for capitalized computer software costs.",
                            "label":  "[Capitalized Computer Software, Accumulated Amortization]",
                            "negatedLabel":  "Less:  Accumulated Amortization"
                            }
                        }
                    },
                "localname":  "CapitalizedComputerSoftwareAccumulatedAmortization",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_CapitalizedComputerSoftwareAmortization1":  {
                "auth_ref":  [
                    "r448",
                    "r450"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  5.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInOperatingActivities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of expense for amortization of capitalized computer software costs.",
                            "label":  "Amortization of Software Costs",
                            "terseLabel":  "Amortization of Capitalized Software Development Costs",
                            "verboseLabel":  "Amortization of Capitalized Software Development Costs"
                            }
                        }
                    },
                "localname":  "CapitalizedComputerSoftwareAmortization1",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetailsNarrative",
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_CapitalizedComputerSoftwareGross":  {
                "auth_ref":  [
                    "r449"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails":  {
                        "order":  3.0,
                        "parentTag":  "us-gaap_CapitalizedComputerSoftwareNet",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount before accumulated amortization of capitalized costs for computer software, including but not limited to, acquired and internally developed computer software.",
                            "label":  "Capitalized Software Development Costs, Gross"
                            }
                        }
                    },
                "localname":  "CapitalizedComputerSoftwareGross",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_CapitalizedComputerSoftwareNet":  {
                "auth_ref":  [
                    "r447"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails":  {
                        "order":  null,
                        "parentTag":  null,
                        "root":  true,
                        "weight":  null
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The carrying amount of capitalized computer software costs net of accumulated amortization as of the balance sheet date.",
                            "label":  "Capitalized Software Development Costs, Net"
                            }
                        }
                    },
                "localname":  "CapitalizedComputerSoftwareNet",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_CapitalizedComputerSoftwareNetAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "CAPITALIZED SOFTWARE DEVELOPMENT COSTS"
                            }
                        }
                    },
                "localname":  "CapitalizedComputerSoftwareNetAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_CapitalizedCostsOilAndGasProducingActivitiesGross":  {
                "auth_ref":  [
                    "r393"
                    ],
                "calculation":  {
                    "http://tomz.com/role/PropertyAndEquipmentDetails":  {
                        "order":  2.0,
                        "parentTag":  "us-gaap_PropertyPlantAndEquipmentGross",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The sum of capitalized costs relating to oil and gas producing activities before accounting for accumulated depreciation.",
                            "label":  "Capitalized Costs in Progress - Tooling and Molds"
                            }
                        }
                    },
                "localname":  "CapitalizedCostsOilAndGasProducingActivitiesGross",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/PropertyAndEquipmentDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers":  {
                "auth_ref":  [
                    "r20",
                    "r407",
                    "r421",
                    "r447"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  10.0,
                        "parentTag":  "us-gaap_OtherAssets",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Unamortized costs incurred for development of computer software, which is to be sold, leased or otherwise marketed, after establishing technological feasibility through to the general release of the software products.  Excludes capitalized costs of developing software for internal use.",
                            "label":  "Capitalized Software Development Costs - net (Note 8)"
                            }
                        }
                    },
                "localname":  "CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_CashAndCashEquivalentsAtCarryingValue":  {
                "auth_ref":  [
                    "r4",
                    "r37",
                    "r90"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of currency on hand as well as demand deposits with banks or financial institutions.  Includes other kinds of accounts that have the general characteristics of demand deposits.  Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.  Excludes cash and cash equivalents within disposal group and discontinued operation.",
                            "label":  "[Cash and Cash Equivalents, at Carrying Value]",
                            "periodEndLabel":  "Cash and Cash Equivalents - Ending",
                            "periodStartLabel":  "Cash and Cash Equivalents - Beginning"
                            }
                        }
                    },
                "localname":  "CashAndCashEquivalentsAtCarryingValue",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_CashAndCashEquivalentsPolicyTextBlock":  {
                "auth_ref":  [
                    "r17",
                    "r92"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents.  Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.",
                            "label":  "Cash and Cash Equivalents, Policy [Policy Text Block]",
                            "verboseLabel":  "Cash and Cash Equivalents"
                            }
                        }
                    },
                "localname":  "CashAndCashEquivalentsPolicyTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect":  {
                "auth_ref":  [
                    "r84",
                    "r357"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  null,
                        "parentTag":  null,
                        "root":  true,
                        "weight":  null
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of increase (decrease) in cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; excluding effect from exchange rate change.  Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits.  Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.",
                            "label":  "[Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Excluding Exchange Rate Effect]",
                            "totalLabel":  "Increase In Cash and Cash Equivalents"
                            }
                        }
                    },
                "localname":  "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_CashEquivalentsAtCarryingValue":  {
                "auth_ref":  [
                    "r37"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  2.0,
                        "parentTag":  "us-gaap_AssetsCurrent",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.  Excludes cash and cash equivalents within disposal group and discontinued operation.",
                            "label":  "Cash and Cash Equivalents"
                            }
                        }
                    },
                "localname":  "CashEquivalentsAtCarryingValue",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_ClassOfStockDomain":  {
                "auth_ref":  [
                    "r102",
                    "r104",
                    "r125",
                    "r130",
                    "r133",
                    "r135",
                    "r137",
                    "r144",
                    "r145",
                    "r146",
                    "r194",
                    "r243",
                    "r247",
                    "r248",
                    "r249",
                    "r252",
                    "r253",
                    "r259",
                    "r260",
                    "r262",
                    "r266",
                    "r356",
                    "r459"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Share of stock differentiated by the voting rights the holder receives.  Examples include, but are not limited to, common stock, redeemable preferred stock, nonredeemable preferred stock, and convertible stock."
                            }
                        }
                    },
                "localname":  "ClassOfStockDomain",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
                    "http://tomz.com/role/ShareholdersEquityDetails",
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_ClassOfWarrantOrRightAxis":  {
                "auth_ref":  [
                    "r276",
                    "r281"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Information by type of warrant or right issued.",
                            "label":  "Class of Warrant or Right [Axis]"
                            }
                        }
                    },
                "localname":  "ClassOfWarrantOrRightAxis",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails2",
                    "http://tomz.com/role/ShareholdersEquityDetails3",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_ClassOfWarrantOrRightDomain":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Name of the class or type of warrant or right outstanding.  Warrants and rights represent derivative securities that give the holder the right to purchase securities (usually equity) from the issuer at a specific price within a certain time frame.  Warrants are often included in a new debt issue to entice investors by a higher return potential.  The main difference between warrants and call options is that warrants are issued and guaranteed by the company, whereas options are exchange instruments and are not issued by the company.  Also, the lifetime of a warrant is often measured in years, while the lifetime of a typical option is measured in months."
                            }
                        }
                    },
                "localname":  "ClassOfWarrantOrRightDomain",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails2",
                    "http://tomz.com/role/ShareholdersEquityDetails3",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1":  {
                "auth_ref":  [
                    "r273"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Exercise price per share or per unit of warrants or rights outstanding.",
                            "label":  "[Class of Warrant or Right, Exercise Price of Warrants or Rights]",
                            "verboseLabel":  "Exercise price"
                            }
                        }
                    },
                "localname":  "ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Number of securities into which each warrant or right may be converted.  For example, but not limited to, each warrant may be converted into two shares.",
                            "label":  "Warrant to purchase shares of common stock"
                            }
                        }
                    },
                "localname":  "ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights":  {
                "auth_ref":  [
                    "r273"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Number of securities into which the class of warrant or right may be converted.  For example, but not limited to, 500,000 warrants may be converted into 1,000,000 shares.",
                            "label":  "Options full consideration of the amount entitled"
                            }
                        }
                    },
                "localname":  "ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_ClassOfWarrantOrRightOutstanding":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Number of warrants or rights outstanding.",
                            "label":  "[Class of Warrant or Right, Outstanding]",
                            "verboseLabel":  "Warrants"
                            }
                        }
                    },
                "localname":  "ClassOfWarrantOrRightOutstanding",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_CommitmentsAndContingenciesDisclosureAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "COMMITMENTS AND CONTINGENCIES"
                            }
                        }
                    },
                "localname":  "CommitmentsAndContingenciesDisclosureAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock":  {
                "auth_ref":  [
                    "r232",
                    "r233",
                    "r234",
                    "r237",
                    "r443"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The entire disclosure for commitments and contingencies.",
                            "label":  "11.  COMMITMENTS AND CONTINGENCIES"
                            }
                        }
                    },
                "localname":  "CommitmentsAndContingenciesDisclosureTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CommitmentsAndContingencies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_CommonStockMember":  {
                "auth_ref":  [
                    "r110",
                    "r111",
                    "r351"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Stock that is subordinate to all other stock of the issuer.",
                            "label":  "Common Stock"
                            }
                        }
                    },
                "localname":  "CommonStockMember",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_CommonStockParOrStatedValuePerShare":  {
                "auth_ref":  [
                    "r27"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Face amount or stated value per share of common stock.",
                            "label":  "Common Stock; Par Value"
                            }
                        }
                    },
                "localname":  "CommonStockParOrStatedValuePerShare",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "us-gaap_CommonStockSharesAuthorized":  {
                "auth_ref":  [
                    "r27"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The maximum number of common shares permitted to be issued by an entity's charter and bylaws.",
                            "label":  "Common Stock; Shares Authorized",
                            "verboseLabel":  "Common stock, shares authorized"
                            }
                        }
                    },
                "localname":  "CommonStockSharesAuthorized",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_CommonStockSharesIssued":  {
                "auth_ref":  [
                    "r27"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury).  These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized.  Shares issued include shares outstanding and shares held in the treasury.",
                            "label":  "Common Stock; Shares Issued"
                            }
                        }
                    },
                "localname":  "CommonStockSharesIssued",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_CommonStockSharesOutstanding":  {
                "auth_ref":  [
                    "r27",
                    "r272"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Number of shares of common stock outstanding.  Common stock represent the ownership interest in a corporation.",
                            "label":  "Common Stock; Shares Outstanding"
                            }
                        }
                    },
                "localname":  "CommonStockSharesOutstanding",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_CommonStockValue":  {
                "auth_ref":  [
                    "r27",
                    "r384"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  23.0,
                        "parentTag":  "us-gaap_StockholdersEquity",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer).  This item includes treasury stock repurchased by the entity.  Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.",
                            "label":  "Common stock; par value $0.01 per share, 250,000,000 shares authorized; 19,680,955 and 16,761,513 shares issued and outstanding at September 30, 2021 and December 31, 2020, respectively.",
                            "verboseLabel":  "Common stock value"
                            }
                        }
                    },
                "localname":  "CommonStockValue",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_CompensationAndRetirementDisclosureAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)"
                            }
                        }
                    },
                "localname":  "CompensationAndRetirementDisclosureAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_ComponentsOfDeferredTaxAssetsAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Deferred tax assets:"
                            }
                        }
                    },
                "localname":  "ComponentsOfDeferredTaxAssetsAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails3"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Deferred tax liabilities:"
                            }
                        }
                    },
                "localname":  "ComponentsOfDeferredTaxLiabilitiesAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails3"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_ConcentrationRiskCreditRisk":  {
                "auth_ref":  [
                    "r150",
                    "r420"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Disclosure of accounting policy for credit risk.",
                            "label":  "Concentrations of Credit Risk"
                            }
                        }
                    },
                "localname":  "ConcentrationRiskCreditRisk",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ConcentrationRiskDisclosureTextBlock":  {
                "auth_ref":  [
                    "r158"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The entire disclosure for any concentrations existing at the date of the financial statements that make an entity vulnerable to a reasonably possible, near-term, severe impact.  This disclosure informs financial statement users about the general nature of the risk associated with the concentration, and may indicate the percentage of concentration risk as of the balance sheet date.",
                            "label":  "17.  CUSTOMER CONCENTRATION"
                            }
                        }
                    },
                "localname":  "ConcentrationRiskDisclosureTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CustomerConcentration"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ConcentrationRiskPercentage1":  {
                "auth_ref":  [
                    "r153",
                    "r154",
                    "r184",
                    "r354",
                    "r355"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.",
                            "label":  "Concentration Risk, Percentage",
                            "verboseLabel":  "Concentration Risk Percentage"
                            }
                        }
                    },
                "localname":  "ConcentrationRiskPercentage1",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "percentItemType"
                },
            "us-gaap_ConsolidationPolicyTextBlock":  {
                "auth_ref":  [
                    "r98",
                    "r345"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting.  The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary.",
                            "label":  "Principles of Consolidation"
                            }
                        }
                    },
                "localname":  "ConsolidationPolicyTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ConstructionInProgressGross":  {
                "auth_ref":  [
                    "r223"
                    ],
                "calculation":  {
                    "http://tomz.com/role/PropertyAndEquipmentDetails":  {
                        "order":  3.0,
                        "parentTag":  "us-gaap_PropertyPlantAndEquipmentGross",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of structure or a modification to a structure under construction.  Includes recently completed structures or modifications to structures that have not been placed into service.",
                            "label":  "Tenant Improvement Allowance"
                            }
                        }
                    },
                "localname":  "ConstructionInProgressGross",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/PropertyAndEquipmentDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_ContractualObligation":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/ContractsAndAgreementsDetails":  {
                        "order":  null,
                        "parentTag":  null,
                        "root":  true,
                        "weight":  null
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of contractual obligation, including but not limited to, long-term debt, capital lease obligations, operating lease obligations, purchase obligations, and other commitments.",
                            "label":  "Total Minimum Payments"
                            }
                        }
                    },
                "localname":  "ContractualObligation",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_ContractualObligationDueInFourthYear":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/ContractsAndAgreementsDetails":  {
                        "order":  2.0,
                        "parentTag":  "us-gaap_ContractualObligation",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of contractual obligation to be paid in fourth fiscal year following current fiscal year.  Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
                            "label":  "[Contractual Obligation, to be Paid, Year Four]",
                            "verboseLabel":  "December 31, 2025"
                            }
                        }
                    },
                "localname":  "ContractualObligationDueInFourthYear",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_ContractualObligationDueInNextTwelveMonths":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/ContractsAndAgreementsDetails":  {
                        "order":  5.0,
                        "parentTag":  "us-gaap_ContractualObligation",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of contractual obligation to be paid in next fiscal year following current fiscal year.  Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
                            "label":  "[Contractual Obligation, to be Paid, Year One]",
                            "verboseLabel":  "December 31, 2022"
                            }
                        }
                    },
                "localname":  "ContractualObligationDueInNextTwelveMonths",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_ContractualObligationDueInSecondYear":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/ContractsAndAgreementsDetails":  {
                        "order":  4.0,
                        "parentTag":  "us-gaap_ContractualObligation",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of contractual obligation to be paid in second fiscal year following current fiscal year.  Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
                            "label":  "[Contractual Obligation, to be Paid, Year Two]",
                            "verboseLabel":  "December 31, 2023"
                            }
                        }
                    },
                "localname":  "ContractualObligationDueInSecondYear",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_ContractualObligationDueInThirdYear":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/ContractsAndAgreementsDetails":  {
                        "order":  3.0,
                        "parentTag":  "us-gaap_ContractualObligation",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of contractual obligation to be paid in third fiscal year following current fiscal year.  Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
                            "label":  "[Contractual Obligation, to be Paid, Year Three]",
                            "verboseLabel":  "December 31, 2024"
                            }
                        }
                    },
                "localname":  "ContractualObligationDueInThirdYear",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_ConversionOfStockAmountConverted1":  {
                "auth_ref":  [
                    "r94",
                    "r95",
                    "r96"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The value of the stock converted in a noncash (or part noncash) transaction.  Noncash is defined as transactions during a period that do not result in cash receipts or cash payments in the period. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period.",
                            "label":  "Common stock shares issued upon exercise of warrants, amount"
                            }
                        }
                    },
                "localname":  "ConversionOfStockAmountConverted1",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_ConversionOfStockAmountIssued1":  {
                "auth_ref":  [
                    "r94",
                    "r95",
                    "r96"
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The value of the financial instrument issued [noncash or part noncash] in the conversion of stock.  Noncash is defined as transactions during a period that do not result in cash receipts or cash payments in the period. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period.",
                            "label":  "Common stock issued amount"
                            }
                        }
                    },
                "localname":  "ConversionOfStockAmountIssued1",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_ConversionOfStockSharesConverted1":  {
                "auth_ref":  [
                    "r94",
                    "r95",
                    "r96"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The number of shares converted in a noncash (or part noncash) transaction.  Noncash is defined as transactions during a period that do not result in cash receipts or cash payments in the period. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period.",
                            "label":  "Common stock shares issued upon exercise of warrants, shares"
                            }
                        }
                    },
                "localname":  "ConversionOfStockSharesConverted1",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_ConversionOfStockSharesIssued1":  {
                "auth_ref":  [
                    "r94",
                    "r95",
                    "r96"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The number of new shares issued in the conversion of stock in a noncash (or part noncash) transaction.  Noncash is defined as transactions during a period that do not result in cash receipts or cash payments in the period. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period.",
                            "label":  "Common stock issued"
                            }
                        }
                    },
                "localname":  "ConversionOfStockSharesIssued1",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_CostOfGoodsAndServicesSoldAmortization":  {
                "auth_ref":  [
                    "r72"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of expense for allocation of cost of intangible asset over its useful life directly used in production of good and rendering of service.",
                            "label":  "Amortization expense"
                            }
                        }
                    },
                "localname":  "CostOfGoodsAndServicesSoldAmortization",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CloudComputingServiceContractDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_CostOfRevenue":  {
                "auth_ref":  [
                    "r74",
                    "r104",
                    "r194",
                    "r243",
                    "r244",
                    "r245",
                    "r247",
                    "r248",
                    "r249",
                    "r250",
                    "r251",
                    "r252",
                    "r253",
                    "r356"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations":  {
                        "order":  3.0,
                        "parentTag":  "us-gaap_GrossProfit",
                        "weight":  -1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The aggregate cost of goods produced and sold and services rendered during the reporting period.",
                            "label":  "Cost of Sales"
                            }
                        }
                    },
                "localname":  "CostOfRevenue",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_CostOfSalesMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Primary financial statement caption encompassing cost of sales.",
                            "label":  "Cost of Sales [Member]"
                            }
                        }
                    },
                "localname":  "CostOfSalesMember",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_CostsAndExpensesAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Operating Expenses:"
                            }
                        }
                    },
                "localname":  "CostsAndExpensesAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_CurrentFederalTaxExpenseBenefit":  {
                "auth_ref":  [
                    "r105",
                    "r324",
                    "r331"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails":  {
                        "order":  2.0,
                        "parentTag":  "us-gaap_CurrentIncomeTaxExpenseBenefit",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of current federal tax expense (benefit) pertaining to income (loss) from continuing operations.",
                            "label":  "Federal"
                            }
                        }
                    },
                "localname":  "CurrentFederalTaxExpenseBenefit",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_CurrentForeignTaxExpenseBenefit":  {
                "auth_ref":  [
                    "r105",
                    "r324"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails":  {
                        "order":  4.0,
                        "parentTag":  "us-gaap_CurrentIncomeTaxExpenseBenefit",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.",
                            "label":  "Foreign"
                            }
                        }
                    },
                "localname":  "CurrentForeignTaxExpenseBenefit",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_CurrentIncomeTaxExpenseBenefit":  {
                "auth_ref":  [
                    "r105",
                    "r324",
                    "r331",
                    "r333"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails":  {
                        "order":  null,
                        "parentTag":  null,
                        "root":  true,
                        "weight":  null
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.",
                            "label":  "[Current Income Tax Expense (Benefit)]",
                            "verboseLabel":  "Total"
                            }
                        }
                    },
                "localname":  "CurrentIncomeTaxExpenseBenefit",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Current:"
                            }
                        }
                    },
                "localname":  "CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_CurrentStateAndLocalTaxExpenseBenefit":  {
                "auth_ref":  [
                    "r105",
                    "r324",
                    "r331"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails":  {
                        "order":  3.0,
                        "parentTag":  "us-gaap_CurrentIncomeTaxExpenseBenefit",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of current state and local tax expense (benefit) pertaining to income (loss) from continuing operations.",
                            "label":  "State"
                            }
                        }
                    },
                "localname":  "CurrentStateAndLocalTaxExpenseBenefit",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_CustomerDepositsCurrent":  {
                "auth_ref":  [
                    "r45"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  17.0,
                        "parentTag":  "us-gaap_LiabilitiesCurrent",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The current portion of money or property received from customers which is either to be returned upon satisfactory contract completion or applied to customer receivables in accordance with the terms of the contract or the understandings.",
                            "label":  "Customer Deposits"
                            }
                        }
                    },
                "localname":  "CustomerDepositsCurrent",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_DebtDisclosureAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "ACCRUED WARRANTY"
                            }
                        }
                    },
                "localname":  "DebtDisclosureAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_DebtInstrumentInterestRateStatedPercentage":  {
                "auth_ref":  [
                    "r47",
                    "r254"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Contractual interest rate for funds borrowed, under the debt agreement.",
                            "label":  "PPP Loan interest rate per annum on outstanding principal"
                            }
                        }
                    },
                "localname":  "DebtInstrumentInterestRateStatedPercentage",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LoanPayableDetailsNarrative"
                    ],
                "xbrltype":  "percentItemType"
                },
            "us-gaap_DeferredFederalIncomeTaxExpenseBenefit":  {
                "auth_ref":  [
                    "r105",
                    "r325",
                    "r331"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails":  {
                        "order":  5.0,
                        "parentTag":  "us-gaap_DeferredIncomeTaxExpenseBenefit",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of deferred federal income tax expense (benefit) pertaining to income (loss) from continuing operations.",
                            "label":  "[Deferred Federal Income Tax Expense (Benefit)]",
                            "verboseLabel":  "Federal"
                            }
                        }
                    },
                "localname":  "DeferredFederalIncomeTaxExpenseBenefit",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_DeferredForeignIncomeTaxExpenseBenefit":  {
                "auth_ref":  [
                    "r105",
                    "r325",
                    "r331"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails":  {
                        "order":  7.0,
                        "parentTag":  "us-gaap_DeferredIncomeTaxExpenseBenefit",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.",
                            "label":  "[Deferred Foreign Income Tax Expense (Benefit)]",
                            "verboseLabel":  "Foreign"
                            }
                        }
                    },
                "localname":  "DeferredForeignIncomeTaxExpenseBenefit",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_DeferredIncomeTaxExpenseBenefit":  {
                "auth_ref":  [
                    "r88",
                    "r105",
                    "r325",
                    "r331",
                    "r332",
                    "r333"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails":  {
                        "order":  null,
                        "parentTag":  null,
                        "root":  true,
                        "weight":  null
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.",
                            "label":  "[Deferred Income Tax Expense (Benefit)]",
                            "verboseLabel":  "Total"
                            }
                        }
                    },
                "localname":  "DeferredIncomeTaxExpenseBenefit",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Deferred:"
                            }
                        }
                    },
                "localname":  "DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit":  {
                "auth_ref":  [
                    "r105",
                    "r325",
                    "r331"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails":  {
                        "order":  6.0,
                        "parentTag":  "us-gaap_DeferredIncomeTaxExpenseBenefit",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of deferred state and local tax expense (benefit) pertaining to income (loss) from continuing operations.",
                            "label":  "[Deferred State and Local Income Tax Expense (Benefit)]",
                            "verboseLabel":  "State"
                            }
                        }
                    },
                "localname":  "DeferredStateAndLocalIncomeTaxExpenseBenefit",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails3":  {
                        "order":  5.0,
                        "parentTag":  "us-gaap_DeferredTaxAssetsNet",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from intangible assets including goodwill.",
                            "label":  "Intangible Assets"
                            }
                        }
                    },
                "localname":  "DeferredTaxAssetsGoodwillAndIntangibleAssets",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails3"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_DeferredTaxAssetsLiabilitiesNet":  {
                "auth_ref":  [
                    "r318"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails3":  {
                        "order":  null,
                        "parentTag":  null,
                        "root":  true,
                        "weight":  null
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting.",
                            "label":  "Net Deferred Tax Assets and Liabilities"
                            }
                        }
                    },
                "localname":  "DeferredTaxAssetsLiabilitiesNet",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails3"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_DeferredTaxAssetsNet":  {
                "auth_ref":  [
                    "r318"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails3":  {
                        "order":  9.0,
                        "parentTag":  "us-gaap_DeferredTaxAssetsLiabilitiesNet",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.",
                            "label":  "Deferred Tax Assets"
                            }
                        }
                    },
                "localname":  "DeferredTaxAssetsNet",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails3"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_DeferredTaxAssetsOperatingLossCarryforwards":  {
                "auth_ref":  [
                    "r322",
                    "r323"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails3":  {
                        "order":  3.0,
                        "parentTag":  "us-gaap_DeferredTaxAssetsNet",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards.",
                            "label":  "Net Operating Losses"
                            }
                        }
                    },
                "localname":  "DeferredTaxAssetsOperatingLossCarryforwards",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails3"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts":  {
                "auth_ref":  [
                    "r322",
                    "r323"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails3":  {
                        "order":  8.0,
                        "parentTag":  "us-gaap_DeferredTaxAssetsNet",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary difference from allowance for credit loss on accounts receivable.",
                            "label":  "[Deferred Tax Asset, Tax Deferred Expense, Reserve and Accrual, Accounts Receivable, Allowance for Credit Loss]",
                            "verboseLabel":  "Reserve for Bad Debt"
                            }
                        }
                    },
                "localname":  "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails3"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves":  {
                "auth_ref":  [
                    "r322",
                    "r323"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from warranty reserves.",
                            "label":  "Warranty Reserve"
                            }
                        }
                    },
                "localname":  "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_DeferredTaxAssetsValuationAllowance":  {
                "auth_ref":  [
                    "r317"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails3":  {
                        "order":  2.0,
                        "parentTag":  "us-gaap_DeferredTaxAssetsNet",
                        "weight":  -1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.",
                            "label":  "[Deferred Tax Assets, Valuation Allowance]",
                            "negatedLabel":  "Valuation Allowance"
                            }
                        }
                    },
                "localname":  "DeferredTaxAssetsValuationAllowance",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails3"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_DeferredTaxLiabilities":  {
                "auth_ref":  [
                    "r309",
                    "r318"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails3":  {
                        "order":  10.0,
                        "parentTag":  "us-gaap_DeferredTaxAssetsLiabilitiesNet",
                        "weight":  -1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting.",
                            "label":  "[Deferred Tax Liabilities, Net]",
                            "negatedLabel":  "Deferred Tax Liabilities"
                            }
                        }
                    },
                "localname":  "DeferredTaxLiabilities",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails3"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment":  {
                "auth_ref":  [
                    "r322",
                    "r323"
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment.",
                            "label":  "[Deferred Tax Liabilities, Property, Plant and Equipment]",
                            "negatedLabel":  "Property Plant and Equipment"
                            }
                        }
                    },
                "localname":  "DeferredTaxLiabilitiesPropertyPlantAndEquipment",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails3"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_DepositsAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "VENDOR DEPOSITS (Details Narrative)"
                            }
                        }
                    },
                "localname":  "DepositsAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_DepositsAssetsCurrent":  {
                "auth_ref":  [
                    "r42"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  6.0,
                        "parentTag":  "us-gaap_AssetsCurrent",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Carrying value of amounts transferred to third parties for security purposes that are expected to be returned or applied towards payment within one year or during the operating cycle, if shorter.",
                            "label":  "Vendor Deposits (Note 4)",
                            "verboseLabel":  "Vendor Deposits"
                            }
                        }
                    },
                "localname":  "DepositsAssetsCurrent",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
                    "http://tomz.com/role/VendorDepositsDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_Depreciation":  {
                "auth_ref":  [
                    "r88",
                    "r222"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives.  Includes production and non-production related depreciation.",
                            "label":  "Depreciation"
                            }
                        }
                    },
                "localname":  "Depreciation",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/PropertyAndEquipmentDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_DepreciationAndAmortization":  {
                "auth_ref":  [
                    "r88",
                    "r222"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations":  {
                        "order":  5.0,
                        "parentTag":  "us-gaap_OperatingExpenses",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.",
                            "label":  "Depreciation and Amortization"
                            }
                        }
                    },
                "localname":  "DepreciationAndAmortization",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "CONTRACTS AND AGREEMENTS (Details Narrative)"
                            }
                        }
                    },
                "localname":  "DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_DisaggregationOfRevenueTableTextBlock":  {
                "auth_ref":  [
                    "r278"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.",
                            "label":  "Disaggregation of Revenue"
                            }
                        }
                    },
                "localname":  "DisaggregationOfRevenueTableTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_DomesticCountryMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Designated tax department of the government that is entitled to levy and collect income taxes from the entity in its country of domicile.",
                            "label":  "United States"
                            }
                        }
                    },
                "localname":  "DomesticCountryMember",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_EarningsPerShareAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Net income (loss) Per Common Share"
                            }
                        }
                    },
                "localname":  "EarningsPerShareAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_EarningsPerShareBasic":  {
                "auth_ref":  [
                    "r69",
                    "r115",
                    "r116",
                    "r117",
                    "r118",
                    "r119",
                    "r123",
                    "r125",
                    "r135",
                    "r136",
                    "r137",
                    "r140",
                    "r141",
                    "r352",
                    "r353",
                    "r414",
                    "r429"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.",
                            "label":  "Basic",
                            "verboseLabel":  "Basic"
                            }
                        }
                    },
                "localname":  "EarningsPerShareBasic",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Weighted Average Number of Common Shares Outstanding:"
                            }
                        }
                    },
                "localname":  "EarningsPerShareBasicOtherDisclosuresAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_EarningsPerShareDiluted":  {
                "auth_ref":  [
                    "r69",
                    "r115",
                    "r116",
                    "r117",
                    "r118",
                    "r119",
                    "r125",
                    "r135",
                    "r136",
                    "r137",
                    "r140",
                    "r141",
                    "r352",
                    "r353",
                    "r414",
                    "r429"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.",
                            "label":  "Diluted",
                            "verboseLabel":  "Diluted"
                            }
                        }
                    },
                "localname":  "EarningsPerShareDiluted",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "us-gaap_EarningsPerSharePolicyTextBlock":  {
                "auth_ref":  [
                    "r138",
                    "r139"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security.  Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements.",
                            "label":  "Net Income (Loss) Per Share"
                            }
                        }
                    },
                "localname":  "EarningsPerSharePolicyTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate":  {
                "auth_ref":  [
                    "r107",
                    "r311",
                    "r335"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Percentage of domestic federal statutory tax rate applicable to pretax income (loss).",
                            "label":  "US statutory corporate income tax rate"
                            }
                        }
                    },
                "localname":  "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails2"
                    ],
                "xbrltype":  "percentItemType"
                },
            "us-gaap_EmployeeRelatedLiabilitiesCurrentAndNoncurrent":  {
                "auth_ref":  [
                    "r411",
                    "r427"
                    ],
                "calculation":  {
                    "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails":  {
                        "order":  8.0,
                        "parentTag":  "us-gaap_AccruedLiabilitiesAndOtherLiabilities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits.",
                            "label":  "Commissions"
                            }
                        }
                    },
                "localname":  "EmployeeRelatedLiabilitiesCurrentAndNoncurrent",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_EquityComponentDomain":  {
                "auth_ref":  [
                    "r0",
                    "r62",
                    "r63",
                    "r64",
                    "r110",
                    "r111",
                    "r112",
                    "r114",
                    "r120",
                    "r122",
                    "r143",
                    "r195",
                    "r272",
                    "r274",
                    "r299",
                    "r300",
                    "r301",
                    "r327",
                    "r328",
                    "r351",
                    "r358",
                    "r359",
                    "r360",
                    "r361",
                    "r362",
                    "r363",
                    "r436",
                    "r437",
                    "r438",
                    "r462"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc."
                            }
                        }
                    },
                "localname":  "EquityComponentDomain",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_ExtendedProductWarrantyAccrual":  {
                "auth_ref":  [
                    "r240"
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount as of the balance sheet date of the aggregate extended product warranty liability.  Does not include the ending balance for the standard product warranty liability.",
                            "label":  "[Extended Product Warranty Accrual]",
                            "periodEndLabel":  "Ending accrued warranty costs",
                            "periodStartLabel":  "Beginning accrued warranty costs"
                            }
                        }
                    },
                "localname":  "ExtendedProductWarrantyAccrual",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/AccruedWarrantyDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_ExtendedProductWarrantyAccrualCurrent":  {
                "auth_ref":  [
                    "r45"
                    ],
                "calculation":  {
                    "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails":  {
                        "order":  3.0,
                        "parentTag":  "us-gaap_AccruedLiabilitiesAndOtherLiabilities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount at end of the reporting period of the aggregate extended product warranty liability that is expected to be paid within one year of the balance sheet date or normal operating cycle, if longer.  Does not include the balance for the standard product warranty liability.",
                            "label":  "Accrued warranty (Note 14)"
                            }
                        }
                    },
                "localname":  "ExtendedProductWarrantyAccrualCurrent",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_ExtendedProductWarrantyPolicy":  {
                "auth_ref":  [
                    "r235",
                    "r238"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Disclosure of accounting policy for extended product warranties and other guarantee contracts including the methodology for measuring the liability.",
                            "label":  "Accrued Warranties"
                            }
                        }
                    },
                "localname":  "ExtendedProductWarrantyPolicy",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ExtinguishmentOfDebtAxis":  {
                "auth_ref":  [
                    "r257"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Information pertaining to the debt extinguished including the amount of gain (loss), the income tax effect on the gain (loss), and the amount of gain (loss), net or the related income tax, by debt instrument.",
                            "label":  "Extinguishment Of Debt Axis"
                            }
                        }
                    },
                "localname":  "ExtinguishmentOfDebtAxis",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_ExtinguishmentOfDebtTypeDomain":  {
                "auth_ref":  [
                    "r257"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Type of debt extinguished."
                            }
                        }
                    },
                "localname":  "ExtinguishmentOfDebtTypeDomain",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_ExtraordinaryAndUnusualItemsAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "VENDOR DEPOSITS"
                            }
                        }
                    },
                "localname":  "ExtraordinaryAndUnusualItemsAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_FairValueDisclosuresAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "CONTRACTS AND AGREEMENTS (Details)"
                            }
                        }
                    },
                "localname":  "FairValueDisclosuresAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_FairValueMeasurementPolicyPolicyTextBlock":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Disclosure of accounting policy for fair value measurements of financial and non-financial assets, liabilities and instruments classified in shareholders' equity.  Disclosures include, but are not limited to, how an entity that manages a group of financial assets and liabilities on the basis of its net exposure measures the fair value of those assets and liabilities.",
                            "label":  "Fair Value Measurements"
                            }
                        }
                    },
                "localname":  "FairValueMeasurementPolicyPolicyTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_FederalDepositInsuranceCorporationPremiumExpense":  {
                "auth_ref":  [
                    "r415"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of expense for Federal Deposit Insurance Corporation (FDIC) insurance.",
                            "label":  "Cash balances at financial institutions"
                            }
                        }
                    },
                "localname":  "FederalDepositInsuranceCorporationPremiumExpense",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization":  {
                "auth_ref":  [
                    "r215"
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
                            "label":  "Less:  Accumulated Amortization"
                            }
                        }
                    },
                "localname":  "FiniteLivedIntangibleAssetsAccumulatedAmortization",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IntangibleAssetsDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/IntangibleAssetsDetails2":  {
                        "order":  2.0,
                        "parentTag":  "us-gaap_FiniteLivedIntangibleAssetsNet",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fifth fiscal year following current fiscal year.  Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
                            "label":  "Thereafter"
                            }
                        }
                    },
                "localname":  "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IntangibleAssetsDetails2"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths":  {
                "auth_ref":  [
                    "r217"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IntangibleAssetsDetails2":  {
                        "order":  7.0,
                        "parentTag":  "us-gaap_FiniteLivedIntangibleAssetsNet",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year.  Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
                            "label":  "December 31, 2022"
                            }
                        }
                    },
                "localname":  "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IntangibleAssetsDetails2"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive":  {
                "auth_ref":  [
                    "r217"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IntangibleAssetsDetails2":  {
                        "order":  3.0,
                        "parentTag":  "us-gaap_FiniteLivedIntangibleAssetsNet",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fifth fiscal year following current fiscal year.  Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
                            "label":  "December 31, 2026"
                            }
                        }
                    },
                "localname":  "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IntangibleAssetsDetails2"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour":  {
                "auth_ref":  [
                    "r217"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IntangibleAssetsDetails2":  {
                        "order":  4.0,
                        "parentTag":  "us-gaap_FiniteLivedIntangibleAssetsNet",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year.  Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
                            "label":  "December 31, 2025"
                            }
                        }
                    },
                "localname":  "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IntangibleAssetsDetails2"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree":  {
                "auth_ref":  [
                    "r217"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IntangibleAssetsDetails2":  {
                        "order":  5.0,
                        "parentTag":  "us-gaap_FiniteLivedIntangibleAssetsNet",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year.  Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
                            "label":  "December 31, 2024"
                            }
                        }
                    },
                "localname":  "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IntangibleAssetsDetails2"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo":  {
                "auth_ref":  [
                    "r217"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IntangibleAssetsDetails2":  {
                        "order":  6.0,
                        "parentTag":  "us-gaap_FiniteLivedIntangibleAssetsNet",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year.  Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
                            "label":  "December 31, 2023"
                            }
                        }
                    },
                "localname":  "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IntangibleAssetsDetails2"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Amortization"
                            }
                        }
                    },
                "localname":  "FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IntangibleAssetsDetails2"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_FiniteLivedIntangibleAssetsGross":  {
                "auth_ref":  [
                    "r215",
                    "r392"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
                            "label":  "Intellectual Property and Patents"
                            }
                        }
                    },
                "localname":  "FiniteLivedIntangibleAssetsGross",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IntangibleAssetsDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_FiniteLivedIntangibleAssetsNet":  {
                "auth_ref":  [
                    "r215",
                    "r391"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IntangibleAssetsDetails2":  {
                        "order":  null,
                        "parentTag":  null,
                        "root":  true,
                        "weight":  null
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
                            "label":  "[Finite-Lived Intangible Assets, Net]",
                            "verboseLabel":  "Intangible Assets, Net"
                            }
                        }
                    },
                "localname":  "FiniteLivedIntangibleAssetsNet",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IntangibleAssetsDetails2"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_FurnitureAndFixturesGross":  {
                "auth_ref":  [
                    "r223"
                    ],
                "calculation":  {
                    "http://tomz.com/role/PropertyAndEquipmentDetails":  {
                        "order":  8.0,
                        "parentTag":  "us-gaap_PropertyPlantAndEquipmentGross",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount before accumulated depreciation of equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities.  Examples include, but are not limited to, desks, chairs, tables, and bookcases.",
                            "label":  "Furniture and Fixtures"
                            }
                        }
                    },
                "localname":  "FurnitureAndFixturesGross",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/PropertyAndEquipmentDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_GainsLossesOnExtinguishmentOfDebt":  {
                "auth_ref":  [
                    "r88",
                    "r255",
                    "r256"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  10.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInOperatingActivities",
                        "weight":  -1.0
                        },
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations":  {
                        "order":  12.0,
                        "parentTag":  "us-gaap_NonoperatingIncomeExpense",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Difference between the fair value of payments made and the carrying amount of debt which is extinguished prior to maturity.",
                            "label":  "Gain Upon Debt Extinguishment",
                            "verboseLabel":  "Gain Upon Debt Extinguishment"
                            }
                        }
                    },
                "localname":  "GainsLossesOnExtinguishmentOfDebt",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows",
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "INTANGIBLE ASSETS"
                            }
                        }
                    },
                "localname":  "GoodwillAndIntangibleAssetsDisclosureAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_GrossProfit":  {
                "auth_ref":  [
                    "r73",
                    "r104",
                    "r169",
                    "r173",
                    "r176",
                    "r179",
                    "r181",
                    "r194",
                    "r243",
                    "r244",
                    "r245",
                    "r247",
                    "r248",
                    "r249",
                    "r250",
                    "r251",
                    "r252",
                    "r253",
                    "r356"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations":  {
                        "order":  10.0,
                        "parentTag":  "us-gaap_OperatingIncomeLoss",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.",
                            "label":  "[Gross Profit]",
                            "totalLabel":  "Gross Profit"
                            }
                        }
                    },
                "localname":  "GrossProfit",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_GuaranteesTextBlock":  {
                "auth_ref":  [
                    "r242"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The entire disclosure for each guarantee obligation, or each group of similar guarantee obligations, including (a) the nature of the guarantee, including its term, how it arose, and the events or circumstances that would require the guarantor to perform under the guarantee; (b) the maximum potential amount of future payments (undiscounted) the guarantor could be required to make under the guarantee; (c) the current carrying amount of the liability, if any, for the guarantor's obligations under the guarantee; and (d) the nature of any recourse provisions under the guarantee, and any assets held either as collateral or by third parties, and any relevant related party disclosure.  Excludes disclosures about product warranties.",
                            "label":  "14.  ACCRUED WARRANTY"
                            }
                        }
                    },
                "localname":  "GuaranteesTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/AccruedWarranty"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ImpairmentEffectsOnEarningsPerShareTableTextBlock":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Tabular disclosure of the effects of asset impairment charge on per share or per unit basis.",
                            "label":  "Impairment Effects on Earnings Per Share [Table Text Block]",
                            "verboseLabel":  "Net Income (Loss) Per Share"
                            }
                        }
                    },
                "localname":  "ImpairmentEffectsOnEarningsPerShareTableTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic":  {
                "auth_ref":  [
                    "r106",
                    "r334"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails1":  {
                        "order":  2.0,
                        "parentTag":  "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The portion of earnings or loss from continuing operations before income taxes that is attributable to domestic operations.",
                            "label":  "[Income (Loss) from Continuing Operations before Income Taxes, Domestic]",
                            "verboseLabel":  "United States"
                            }
                        }
                    },
                "localname":  "IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails1"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest":  {
                "auth_ref":  [
                    "r67",
                    "r169",
                    "r173",
                    "r176",
                    "r179",
                    "r181",
                    "r406",
                    "r412",
                    "r418",
                    "r430"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations":  {
                        "order":  17.0,
                        "parentTag":  "us-gaap_NetIncomeLoss",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.",
                            "label":  "[Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest]",
                            "totalLabel":  "Income (loss) before income taxes"
                            }
                        }
                    },
                "localname":  "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign":  {
                "auth_ref":  [
                    "r106",
                    "r334"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails1":  {
                        "order":  3.0,
                        "parentTag":  "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The portion of earnings or loss from continuing operations before income taxes that is attributable to foreign operations, which is defined as Income or Loss generated from operations located outside the entity's country of domicile.",
                            "label":  "[Income (Loss) from Continuing Operations before Income Taxes, Foreign]",
                            "verboseLabel":  "Foreign"
                            }
                        }
                    },
                "localname":  "IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails1"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments":  {
                "auth_ref":  [
                    "r169",
                    "r173",
                    "r176",
                    "r179",
                    "r181"
                    ],
                "calculation":  {
                    "http://tomz.com/role/IncomeTaxesDetails1":  {
                        "order":  null,
                        "parentTag":  null,
                        "root":  true,
                        "weight":  null
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of income (loss) from continuing operations before deduction of income tax expense (benefit) and income (loss) attributable to noncontrolling interest, and addition of income (loss) from equity method investments.",
                            "label":  "[Income (Loss) from Continuing Operations before Equity Method Investments, Income Taxes, Noncontrolling Interest]",
                            "verboseLabel":  "Total"
                            }
                        }
                    },
                "localname":  "IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails1"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncomeStatementAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS"
                            }
                        }
                    },
                "localname":  "IncomeStatementAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_IncomeStatementLocationAxis":  {
                "auth_ref":  [
                    "r226",
                    "r229"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Information by location in the income statement.",
                            "label":  "Income Statement Location Axis"
                            }
                        }
                    },
                "localname":  "IncomeStatementLocationAxis",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_IncomeStatementLocationDomain":  {
                "auth_ref":  [
                    "r229"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Location in the income statement."
                            }
                        }
                    },
                "localname":  "IncomeStatementLocationDomain",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_IncomeTaxAuthorityAxis":  {
                "auth_ref":  [
                    "r313"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Information by tax jurisdiction.",
                            "label":  "Income Tax Authority [Axis]"
                            }
                        }
                    },
                "localname":  "IncomeTaxAuthorityAxis",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_IncomeTaxAuthorityDomain":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Agency, division or body classification that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes."
                            }
                        }
                    },
                "localname":  "IncomeTaxAuthorityDomain",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_IncomeTaxDisclosureAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "INCOME TAXES"
                            }
                        }
                    },
                "localname":  "IncomeTaxDisclosureAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_IncomeTaxDisclosureTextBlock":  {
                "auth_ref":  [
                    "r107",
                    "r312",
                    "r315",
                    "r320",
                    "r329",
                    "r336",
                    "r338",
                    "r339",
                    "r340"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The entire disclosure for income taxes.  Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.",
                            "label":  "16.  INCOME TAXES"
                            }
                        }
                    },
                "localname":  "IncomeTaxDisclosureTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxes"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_IncomeTaxExpenseBenefit":  {
                "auth_ref":  [
                    "r108",
                    "r121",
                    "r122",
                    "r167",
                    "r310",
                    "r330",
                    "r337",
                    "r431"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations":  {
                        "order":  18.0,
                        "parentTag":  "us-gaap_NetIncomeLoss",
                        "weight":  -1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.",
                            "label":  "Provision for Income Taxes (Note 16)",
                            "verboseLabel":  "Income tax expense (benefit)"
                            }
                        }
                    },
                "localname":  "IncomeTaxExpenseBenefit",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations",
                    "http://tomz.com/role/IncomeTaxesDetails2"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Reconciling items:"
                            }
                        }
                    },
                "localname":  "IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails2"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_IncomeTaxPolicyTextBlock":  {
                "auth_ref":  [
                    "r61",
                    "r307",
                    "r308",
                    "r315",
                    "r316",
                    "r319",
                    "r326"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.",
                            "label":  "Income Taxes"
                            }
                        }
                    },
                "localname":  "IncomeTaxPolicyTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance":  {
                "auth_ref":  [
                    "r311"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in the valuation allowance for deferred tax assets.",
                            "label":  "Change in valuation allowance on deferred tax assets"
                            }
                        }
                    },
                "localname":  "IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails2"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate":  {
                "auth_ref":  [
                    "r311"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations.",
                            "label":  "Income tax expense computed at US statutory corporate income tax rate"
                            }
                        }
                    },
                "localname":  "IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails2"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization":  {
                "auth_ref":  [
                    "r311"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to nondeductible amortization.",
                            "label":  "[Effective Income Tax Rate Reconciliation, Nondeductible Expense, Amortization, Amount]",
                            "verboseLabel":  "Gain Upon Debt Extinguishment"
                            }
                        }
                    },
                "localname":  "IncomeTaxReconciliationNondeductibleExpenseAmortization",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails2"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment":  {
                "auth_ref":  [
                    "r311"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to nondeductible meals and entertainment expense.",
                            "label":  "Meals and Entertainment"
                            }
                        }
                    },
                "localname":  "IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails2"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost":  {
                "auth_ref":  [
                    "r311"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of reported income tax expense (benefit) in excess of (less than) expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to nondeductible expense for award under share-based payment arrangement.  Includes, but is not limited to, expense determined to be nondeductible upon grant or after for award under share-based payment arrangement.",
                            "label":  "Incentive stock options and warrants"
                            }
                        }
                    },
                "localname":  "IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails2"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncomeTaxReconciliationOtherReconcilingItems":  {
                "auth_ref":  [
                    "r311"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to tax exempt income, equity in earnings (loss) of an unconsolidated subsidiary, minority noncontrolling interest income (loss), tax holiday, disposition of a business, disposition of an asset, repatriation of foreign earnings, repatriation of foreign earnings jobs creation act of 2004, increase (decrease) in enacted tax rate, prior year income taxes, increase (decrease) in deferred tax asset valuation allowance, and other adjustments.",
                            "label":  "Other"
                            }
                        }
                    },
                "localname":  "IncomeTaxReconciliationOtherReconcilingItems",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails2"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes":  {
                "auth_ref":  [
                    "r311"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to revisions of previously reported income tax expense (benefit).",
                            "label":  "Provision to prior year tax return"
                            }
                        }
                    },
                "localname":  "IncomeTaxReconciliationPriorYearIncomeTaxes",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetails2"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncomeTaxesPaidNet":  {
                "auth_ref":  [
                    "r93"
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.",
                            "label":  "Cash Paid for Income Taxes"
                            }
                        }
                    },
                "localname":  "IncomeTaxesPaidNet",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncreaseDecreaseInAccountsPayable":  {
                "auth_ref":  [
                    "r87"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  17.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInOperatingActivities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business.",
                            "label":  "[Increase (Decrease) in Accounts Payable]",
                            "verboseLabel":  "Accounts Payable"
                            }
                        }
                    },
                "localname":  "IncreaseDecreaseInAccountsPayable",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncreaseDecreaseInAccountsPayableAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Decrease (Increase) in:"
                            }
                        }
                    },
                "localname":  "IncreaseDecreaseInAccountsPayableAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_IncreaseDecreaseInAccountsReceivable":  {
                "auth_ref":  [
                    "r87"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  11.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInOperatingActivities",
                        "weight":  -1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.",
                            "label":  "Accounts Receivable"
                            }
                        }
                    },
                "localname":  "IncreaseDecreaseInAccountsReceivable",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncreaseDecreaseInAccruedLiabilities":  {
                "auth_ref":  [
                    "r87"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  18.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInOperatingActivities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid.",
                            "label":  "Accrued Expenses"
                            }
                        }
                    },
                "localname":  "IncreaseDecreaseInAccruedLiabilities",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncreaseDecreaseInAccruedTaxesPayableAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Increase (Decrease) in:"
                            }
                        }
                    },
                "localname":  "IncreaseDecreaseInAccruedTaxesPayableAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_IncreaseDecreaseInCustomerDeposits":  {
                "auth_ref":  [
                    "r87"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  20.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInOperatingActivities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The increase (decrease) during the period in the amount of customer money held in customer accounts, including security deposits, collateral for a current or future transactions, initial payment of the cost of acquisition or for the right to enter into a contract or agreement.",
                            "label":  "[Increase (Decrease) in Customer Deposits]",
                            "verboseLabel":  "Customer Deposits"
                            }
                        }
                    },
                "localname":  "IncreaseDecreaseInCustomerDeposits",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncreaseDecreaseInDeposits":  {
                "auth_ref":  [
                    "r91",
                    "r417"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  14.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInOperatingActivities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The net cash inflow or outflow for the increase (decrease) in the beginning and end of period deposits balances.",
                            "label":  "Vendor Deposits"
                            }
                        }
                    },
                "localname":  "IncreaseDecreaseInDeposits",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncreaseDecreaseInInventories":  {
                "auth_ref":  [
                    "r87"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  12.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInOperatingActivities",
                        "weight":  -1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.",
                            "label":  "Inventory"
                            }
                        }
                    },
                "localname":  "IncreaseDecreaseInInventories",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncreaseDecreaseInOtherOperatingAssets":  {
                "auth_ref":  [
                    "r87"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  16.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInOperatingActivities",
                        "weight":  -1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of increase (decrease) in operating assets classified as other.",
                            "label":  "[Increase (Decrease) in Other Operating Assets]",
                            "verboseLabel":  "Other Assets"
                            }
                        }
                    },
                "localname":  "IncreaseDecreaseInOtherOperatingAssets",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Changes in Operating Assets and Liabilities:"
                            }
                        }
                    },
                "localname":  "IncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_IncreaseDecreaseInOtherReceivables":  {
                "auth_ref":  [
                    "r87"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  15.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInOperatingActivities",
                        "weight":  -1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of increase (decrease) in receivables classified as other.",
                            "label":  "[Increase (Decrease) in Other Receivables]",
                            "verboseLabel":  "Other Receivables"
                            }
                        }
                    },
                "localname":  "IncreaseDecreaseInOtherReceivables",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncreaseDecreaseInPrepaidExpense":  {
                "auth_ref":  [
                    "r87"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  13.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInOperatingActivities",
                        "weight":  -1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The increase (decrease) during the reporting period in the amount of outstanding money paid in advance for goods or services that bring economic benefits for future periods.",
                            "label":  "[Increase (Decrease) in Prepaid Expense]",
                            "verboseLabel":  "Prepaid Expenses"
                            }
                        }
                    },
                "localname":  "IncreaseDecreaseInPrepaidExpense",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants":  {
                "auth_ref":  [
                    "r126",
                    "r127",
                    "r128",
                    "r137"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of call options and warrants using the treasury stock method.",
                            "label":  "[Incremental Common Shares Attributable to Dilutive Effect of Call Options and Warrants]",
                            "verboseLabel":  "Warrants"
                            }
                        }
                    },
                "localname":  "IncrementalCommonSharesAttributableToCallOptionsAndWarrants",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_IncrementalCommonSharesAttributableToConversionOfDebtSecurities":  {
                "auth_ref":  [
                    "r131",
                    "r132",
                    "r137"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of convertible debt securities using the if-converted method.",
                            "label":  "Convertible Debt"
                            }
                        }
                    },
                "localname":  "IncrementalCommonSharesAttributableToConversionOfDebtSecurities",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements":  {
                "auth_ref":  [
                    "r126",
                    "r127",
                    "r137"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of equity unit purchase agreements using the treasury stock method.",
                            "label":  "Preferred Stock"
                            }
                        }
                    },
                "localname":  "IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements":  {
                "auth_ref":  [
                    "r126",
                    "r127",
                    "r129",
                    "r137"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.",
                            "label":  "Options"
                            }
                        }
                    },
                "localname":  "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_IndefiniteLivedTrademarks":  {
                "auth_ref":  [
                    "r218"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Carrying amount (original costs adjusted for previously recognized amortization and impairment) as of the balance sheet date for the rights acquired through registration of a trademark to gain or protect exclusive use of a business name, symbol or other device or style for a projected indefinite period of benefit.",
                            "label":  "Trademarks"
                            }
                        }
                    },
                "localname":  "IndefiniteLivedTrademarks",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IntangibleAssetsDetails1"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IntangibleAssetsDisclosureTextBlock":  {
                "auth_ref":  [
                    "r221"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The entire disclosure for all or part of the information related to intangible assets.",
                            "label":  "6.  INTANGIBLE ASSETS"
                            }
                        }
                    },
                "localname":  "IntangibleAssetsDisclosureTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IntangibleAssets"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_IntangibleAssetsNetExcludingGoodwill":  {
                "auth_ref":  [
                    "r209",
                    "r213"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  8.0,
                        "parentTag":  "us-gaap_OtherAssets",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.",
                            "label":  "Intangible Assets - net (Note 6)",
                            "verboseLabel":  "Total Intangible Assets, Net"
                            }
                        }
                    },
                "localname":  "IntangibleAssetsNetExcludingGoodwill",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
                    "http://tomz.com/role/IntangibleAssetsDetails1"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_InterestExpense":  {
                "auth_ref":  [
                    "r65",
                    "r163",
                    "r365",
                    "r366",
                    "r416"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations":  {
                        "order":  14.0,
                        "parentTag":  "us-gaap_NonoperatingIncomeExpense",
                        "weight":  -1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of the cost of borrowed funds accounted for as interest expense.",
                            "label":  "[Interest Expense]",
                            "negatedLabel":  "Interest Expense"
                            }
                        }
                    },
                "localname":  "InterestExpense",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_InterestIncomeOther":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations":  {
                        "order":  13.0,
                        "parentTag":  "us-gaap_NonoperatingIncomeExpense",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of interest income earned from interest bearing assets classified as other.",
                            "label":  "Interest Income"
                            }
                        }
                    },
                "localname":  "InterestIncomeOther",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_InterestPaidNet":  {
                "auth_ref":  [
                    "r82",
                    "r85",
                    "r93"
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity.  Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.",
                            "label":  "Cash Paid For Interest"
                            }
                        }
                    },
                "localname":  "InterestPaidNet",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_InventoryDisclosureAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "INVENTORIES"
                            }
                        }
                    },
                "localname":  "InventoryDisclosureAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_InventoryDisclosureTextBlock":  {
                "auth_ref":  [
                    "r205"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The entire disclosure for inventory.  Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory.",
                            "label":  "3.  INVENTORIES"
                            }
                        }
                    },
                "localname":  "InventoryDisclosureTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/INVENTORIES"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_InventoryFinishedGoods":  {
                "auth_ref":  [
                    "r50"
                    ],
                "calculation":  {
                    "http://tomz.com/role/InventoriesDetails":  {
                        "order":  3.0,
                        "parentTag":  "us-gaap_InventoryNet",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount before valuation and LIFO reserves of completed merchandise or goods expected to be sold within one year or operating cycle, if longer.",
                            "label":  "Finished Goods"
                            }
                        }
                    },
                "localname":  "InventoryFinishedGoods",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/InventoriesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_InventoryLIFOReservePeriodCharge":  {
                "auth_ref":  [
                    "r54",
                    "r55",
                    "r56",
                    "r203"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  9.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInOperatingActivities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The change in the inventory reserve representing the cumulative difference in cost between the first in, first out and the last in, first out inventory valuation methods, which change has been reflected in the statement of income during the period.",
                            "label":  "Inventory Reserve"
                            }
                        }
                    },
                "localname":  "InventoryLIFOReservePeriodCharge",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_InventoryNet":  {
                "auth_ref":  [
                    "r5",
                    "r52",
                    "r384"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  5.0,
                        "parentTag":  "us-gaap_AssetsCurrent",
                        "weight":  1.0
                        },
                    "http://tomz.com/role/InventoriesDetails":  {
                        "order":  null,
                        "parentTag":  null,
                        "root":  true,
                        "weight":  null
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.",
                            "label":  "Inventories (Note 3)",
                            "verboseLabel":  "Inventory"
                            }
                        }
                    },
                "localname":  "InventoryNet",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
                    "http://tomz.com/role/InventoriesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_InventoryPolicyTextBlock":  {
                "auth_ref":  [
                    "r12",
                    "r53",
                    "r99",
                    "r142",
                    "r201",
                    "r202",
                    "r205",
                    "r388"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.",
                            "label":  "Inventories"
                            }
                        }
                    },
                "localname":  "InventoryPolicyTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_InventoryRawMaterials":  {
                "auth_ref":  [
                    "r51"
                    ],
                "calculation":  {
                    "http://tomz.com/role/InventoriesDetails":  {
                        "order":  2.0,
                        "parentTag":  "us-gaap_InventoryNet",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount before valuation and LIFO reserves of raw materials expected to be sold, or consumed within one year or operating cycle, if longer.",
                            "label":  "Raw Materials"
                            }
                        }
                    },
                "localname":  "InventoryRawMaterials",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/InventoriesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_InventoryValuationReserves":  {
                "auth_ref":  [
                    "r52",
                    "r204"
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of valuation reserve for inventory.",
                            "label":  "[Inventory Valuation Reserves]",
                            "verboseLabel":  "Inventory Reserve"
                            }
                        }
                    },
                "localname":  "InventoryValuationReserves",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims":  {
                "auth_ref":  [
                    "r88"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  7.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInOperatingActivities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Fair value of share-based compensation granted to nonemployees as payment for services rendered or acknowledged claims.",
                            "label":  "Value of Equity Issued for Services"
                            }
                        }
                    },
                "localname":  "IssuanceOfStockAndWarrantsForServicesOrClaims",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_LeaseCostTableTextBlock":  {
                "auth_ref":  [
                    "r374"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Tabular disclosure of lessee's lease cost.  Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income.",
                            "label":  "Lease Expense"
                            }
                        }
                    },
                "localname":  "LeaseCostTableTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LeasesTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_LeaseholdImprovementsGross":  {
                "auth_ref":  [
                    "r11",
                    "r223"
                    ],
                "calculation":  {
                    "http://tomz.com/role/PropertyAndEquipmentDetails":  {
                        "order":  4.0,
                        "parentTag":  "us-gaap_PropertyPlantAndEquipmentGross",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount before accumulated depreciation of additions or improvements to assets held under a lease arrangement.",
                            "label":  "Leasehold Improvements"
                            }
                        }
                    },
                "localname":  "LeaseholdImprovementsGross",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/PropertyAndEquipmentDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_LeasesAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "LEASES"
                            }
                        }
                    },
                "localname":  "LeasesAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_LeasesOfLesseeDisclosureTextBlock":  {
                "auth_ref":  [
                    "r368"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The entire disclosure for lessee entity's leasing arrangements including, but not limited to, all of the following: (a.) The basis on which contingent rental payments are determined, (b.) The existence and terms of renewal or purchase options and escalation clauses, (c.) Restrictions imposed by lease agreements, such as those concerning dividends, additional debt, and further leasing.",
                            "label":  "7.  LEASES"
                            }
                        }
                    },
                "localname":  "LeasesOfLesseeDisclosureTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LEASES"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_LesseeLeasesPolicyTextBlock":  {
                "auth_ref":  [
                    "r372"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Disclosure of accounting policy for leasing arrangement entered into by lessee.",
                            "label":  "Leases"
                            }
                        }
                    },
                "localname":  "LesseeLeasesPolicyTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_LesseeOperatingLeaseDiscountRate":  {
                "auth_ref":  [
                    "r373"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Discount rate used by lessee to determine present value of operating lease payments.",
                            "label":  "Discount Rate:  Operating Leases"
                            }
                        }
                    },
                "localname":  "LesseeOperatingLeaseDiscountRate",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LeasesDetails2"
                    ],
                "xbrltype":  "percentItemType"
                },
            "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue":  {
                "auth_ref":  [
                    "r375"
                    ],
                "calculation":  {
                    "http://tomz.com/role/LeasesDetails4":  {
                        "order":  null,
                        "parentTag":  null,
                        "root":  true,
                        "weight":  null
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of lessee's undiscounted obligation for lease payment for operating lease.",
                            "label":  "Total minimum lease payments"
                            }
                        }
                    },
                "localname":  "LesseeOperatingLeaseLiabilityPaymentsDue",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LeasesDetails4"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive":  {
                "auth_ref":  [
                    "r375"
                    ],
                "calculation":  {
                    "http://tomz.com/role/LeasesDetails4":  {
                        "order":  2.0,
                        "parentTag":  "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth fiscal year following current fiscal year.  Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
                            "label":  "[Lessee, Operating Lease, Liability, to be Paid, after Year Five]",
                            "verboseLabel":  "Thereafter"
                            }
                        }
                    },
                "localname":  "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LeasesDetails4"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths":  {
                "auth_ref":  [
                    "r375"
                    ],
                "calculation":  {
                    "http://tomz.com/role/LeasesDetails4":  {
                        "order":  7.0,
                        "parentTag":  "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year.  Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
                            "label":  "[Lessee, Operating Lease, Liability, to be Paid, Year One]",
                            "verboseLabel":  "December 31, 2022"
                            }
                        }
                    },
                "localname":  "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LeasesDetails4"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive":  {
                "auth_ref":  [
                    "r375"
                    ],
                "calculation":  {
                    "http://tomz.com/role/LeasesDetails4":  {
                        "order":  3.0,
                        "parentTag":  "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth fiscal year following current fiscal year.  Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
                            "label":  "[Lessee, Operating Lease, Liability, to be Paid, Year Five]",
                            "verboseLabel":  "December 31, 2026"
                            }
                        }
                    },
                "localname":  "LesseeOperatingLeaseLiabilityPaymentsDueYearFive",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LeasesDetails4"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour":  {
                "auth_ref":  [
                    "r375"
                    ],
                "calculation":  {
                    "http://tomz.com/role/LeasesDetails4":  {
                        "order":  4.0,
                        "parentTag":  "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year.  Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
                            "label":  "[Lessee, Operating Lease, Liability, to be Paid, Year Four]",
                            "verboseLabel":  "December 31, 2025"
                            }
                        }
                    },
                "localname":  "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LeasesDetails4"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree":  {
                "auth_ref":  [
                    "r375"
                    ],
                "calculation":  {
                    "http://tomz.com/role/LeasesDetails4":  {
                        "order":  5.0,
                        "parentTag":  "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year.  Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
                            "label":  "[Lessee, Operating Lease, Liability, to be Paid, Year Three]",
                            "verboseLabel":  "December 31, 2024"
                            }
                        }
                    },
                "localname":  "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LeasesDetails4"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo":  {
                "auth_ref":  [
                    "r375"
                    ],
                "calculation":  {
                    "http://tomz.com/role/LeasesDetails4":  {
                        "order":  6.0,
                        "parentTag":  "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year.  Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
                            "label":  "[Lessee, Operating Lease, Liability, to be Paid, Year Two]",
                            "verboseLabel":  "December 31, 2023"
                            }
                        }
                    },
                "localname":  "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LeasesDetails4"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount":  {
                "auth_ref":  [
                    "r375"
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.",
                            "label":  "Less: interest"
                            }
                        }
                    },
                "localname":  "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LeasesDetails4"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock":  {
                "auth_ref":  [
                    "r377"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Tabular disclosure of maturity of undiscounted cash flows to be received by lessor on annual basis for operating lease.",
                            "label":  "Maturities of Lease Payments"
                            }
                        }
                    },
                "localname":  "LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LeasesTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_Liabilities":  {
                "auth_ref":  [
                    "r44",
                    "r104",
                    "r175",
                    "r194",
                    "r243",
                    "r244",
                    "r245",
                    "r247",
                    "r248",
                    "r249",
                    "r250",
                    "r251",
                    "r252",
                    "r253",
                    "r344",
                    "r346",
                    "r347",
                    "r356",
                    "r382",
                    "r383"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  26.0,
                        "parentTag":  "us-gaap_LiabilitiesAndStockholdersEquity",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized.  Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.",
                            "label":  "[Liabilities]",
                            "totalLabel":  "Total Liabilities"
                            }
                        }
                    },
                "localname":  "Liabilities",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_LiabilitiesAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Liabilities"
                            }
                        }
                    },
                "localname":  "LiabilitiesAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LeasesDetails"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_LiabilitiesAndStockholdersEquity":  {
                "auth_ref":  [
                    "r33",
                    "r104",
                    "r194",
                    "r356",
                    "r384",
                    "r410",
                    "r425"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  null,
                        "parentTag":  null,
                        "root":  true,
                        "weight":  null
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.",
                            "label":  "[Liabilities and Equity]",
                            "totalLabel":  "Total Liabilities and Shareholders' Equity"
                            }
                        }
                    },
                "localname":  "LiabilitiesAndStockholdersEquity",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_LiabilitiesAndStockholdersEquityAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "LIABILITIES AND SHAREHOLDERS' EQUITY"
                            }
                        }
                    },
                "localname":  "LiabilitiesAndStockholdersEquityAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_LiabilitiesCurrent":  {
                "auth_ref":  [
                    "r46",
                    "r104",
                    "r194",
                    "r243",
                    "r244",
                    "r245",
                    "r247",
                    "r248",
                    "r249",
                    "r250",
                    "r251",
                    "r252",
                    "r253",
                    "r344",
                    "r346",
                    "r347",
                    "r356",
                    "r382",
                    "r383",
                    "r384"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  21.0,
                        "parentTag":  "us-gaap_Liabilities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.",
                            "label":  "[Liabilities, Current]",
                            "totalLabel":  "Total Current Liabilities"
                            }
                        }
                    },
                "localname":  "LiabilitiesCurrent",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_LiabilitiesCurrentAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Current Liabilities:"
                            }
                        }
                    },
                "localname":  "LiabilitiesCurrentAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_LiabilitiesNoncurrent":  {
                "auth_ref":  [
                    "r14",
                    "r15",
                    "r16",
                    "r22",
                    "r23",
                    "r104",
                    "r194",
                    "r243",
                    "r244",
                    "r245",
                    "r247",
                    "r248",
                    "r249",
                    "r250",
                    "r251",
                    "r252",
                    "r253",
                    "r344",
                    "r346",
                    "r347",
                    "r356",
                    "r382",
                    "r383"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  22.0,
                        "parentTag":  "us-gaap_Liabilities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of obligation due after one year or beyond the normal operating cycle, if longer.",
                            "label":  "[Liabilities, Noncurrent]",
                            "totalLabel":  "Total Long-Term Liabilities"
                            }
                        }
                    },
                "localname":  "LiabilitiesNoncurrent",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_LiabilitiesNoncurrentAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Long-Term Liabilities:"
                            }
                        }
                    },
                "localname":  "LiabilitiesNoncurrentAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_LoansPayableAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "LOAN PAYABLE"
                            }
                        }
                    },
                "localname":  "LoansPayableAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_LongTermLoansPayable":  {
                "auth_ref":  [
                    "r48"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  19.0,
                        "parentTag":  "us-gaap_LiabilitiesNoncurrent",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Carrying value as of the balance sheet date of loans payable (with maturities initially due after one year or beyond the operating cycle if longer), excluding current portion.",
                            "label":  "Loan Payable (Note 15)"
                            }
                        }
                    },
                "localname":  "LongTermLoansPayable",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_NatureOfOperations":  {
                "auth_ref":  [
                    "r147",
                    "r158"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings.  For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward.",
                            "label":  "1.  DESCRIPTION OF BUSINESS"
                            }
                        }
                    },
                "localname":  "NatureOfOperations",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/DescriptionOfBusiness"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_NetCashProvidedByUsedInFinancingActivities":  {
                "auth_ref":  [
                    "r84"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  30.0,
                        "parentTag":  "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of cash inflow (outflow) from financing activities, including discontinued operations.  Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.",
                            "label":  "[Net Cash Provided by (Used in) Financing Activities]",
                            "totalLabel":  "Net Cash From Financing Activities"
                            }
                        }
                    },
                "localname":  "NetCashProvidedByUsedInFinancingActivities",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Cash Flow From Financing Activities:"
                            }
                        }
                    },
                "localname":  "NetCashProvidedByUsedInFinancingActivitiesAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_NetCashProvidedByUsedInInvestingActivities":  {
                "auth_ref":  [
                    "r84"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  29.0,
                        "parentTag":  "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of cash inflow (outflow) from investing activities, including discontinued operations.  Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.",
                            "label":  "[Net Cash Provided by (Used in) Investing Activities]",
                            "totalLabel":  "Net Cash (Used) in Investing Activities"
                            }
                        }
                    },
                "localname":  "NetCashProvidedByUsedInInvestingActivities",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Cash Flow From Investing Activities:"
                            }
                        }
                    },
                "localname":  "NetCashProvidedByUsedInInvestingActivitiesAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_NetCashProvidedByUsedInOperatingActivities":  {
                "auth_ref":  [
                    "r84",
                    "r86",
                    "r89"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  28.0,
                        "parentTag":  "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
                        "weight":  1.0
                        }
                    },
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of cash inflow (outflow) from operating activities, including discontinued operations.  Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.",
                            "label":  "[Net Cash Provided by (Used in) Operating Activities]",
                            "totalLabel":  "Net Cash Provided (Used) in Operating Activities"
                            }
                        }
                    },
                "localname":  "NetCashProvidedByUsedInOperatingActivities",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Cash Flow From Operating Activities:"
                            }
                        }
                    },
                "localname":  "NetCashProvidedByUsedInOperatingActivitiesAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_NetIncomeLoss":  {
                "auth_ref":  [
                    "r3",
                    "r59",
                    "r60",
                    "r64",
                    "r68",
                    "r89",
                    "r104",
                    "r113",
                    "r115",
                    "r116",
                    "r117",
                    "r118",
                    "r121",
                    "r122",
                    "r134",
                    "r169",
                    "r173",
                    "r176",
                    "r179",
                    "r181",
                    "r194",
                    "r243",
                    "r244",
                    "r245",
                    "r247",
                    "r248",
                    "r249",
                    "r250",
                    "r251",
                    "r252",
                    "r253",
                    "r353",
                    "r356",
                    "r413",
                    "r428"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  2.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInOperatingActivities",
                        "weight":  -1.0
                        },
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations":  {
                        "order":  null,
                        "parentTag":  null,
                        "root":  true,
                        "weight":  null
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.",
                            "label":  "[Net Income (Loss) Attributable to Parent]",
                            "terseLabel":  "Net Income (Loss)",
                            "totalLabel":  "Net Income (loss)",
                            "verboseLabel":  "Net Income"
                            }
                        }
                    },
                "localname":  "NetIncomeLoss",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows",
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations",
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Net income (loss) attributable to common shareholders per share:"
                            }
                        }
                    },
                "localname":  "NetIncomeLossAvailableToCommonStockholdersBasicAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting.  Includes, but is not limited to, quantification of the expected or actual impact.",
                            "label":  "Recent Accounting Pronouncements"
                            }
                        }
                    },
                "localname":  "NewAccountingPronouncementsPolicyPolicyTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_NoncashInvestingAndFinancingItemsAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Non-Cash Investing and Financing Activities:"
                            }
                        }
                    },
                "localname":  "NoncashInvestingAndFinancingItemsAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_NonoperatingIncomeExpense":  {
                "auth_ref":  [
                    "r77"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations":  {
                        "order":  16.0,
                        "parentTag":  "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).",
                            "label":  "[Nonoperating Income (Expense)]",
                            "totalLabel":  "Total Other Income (Expense)"
                            }
                        }
                    },
                "localname":  "NonoperatingIncomeExpense",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_OperatingExpenses":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations":  {
                        "order":  11.0,
                        "parentTag":  "us-gaap_OperatingIncomeLoss",
                        "weight":  -1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services.  Includes selling, general and administrative expense.",
                            "label":  "[Operating Expenses]",
                            "totalLabel":  "Total Operating Expenses"
                            }
                        }
                    },
                "localname":  "OperatingExpenses",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_OperatingIncomeLoss":  {
                "auth_ref":  [
                    "r169",
                    "r173",
                    "r176",
                    "r179",
                    "r181"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations":  {
                        "order":  15.0,
                        "parentTag":  "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The net result for the period of deducting operating expenses from operating revenues.",
                            "label":  "[Operating Income (Loss)]",
                            "totalLabel":  "Income (loss) from Operations"
                            }
                        }
                    },
                "localname":  "OperatingIncomeLoss",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_OperatingLeaseExpense":  {
                "auth_ref":  [
                    "r371"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of operating lease expense.  Excludes sublease income.",
                            "label":  "Operating Lease Expense"
                            }
                        }
                    },
                "localname":  "OperatingLeaseExpense",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LeasesDetails1"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm":  {
                "auth_ref":  [
                    "r376"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of operating lease initial direct cost recognized as expense over lease term.",
                            "label":  "Cash paid for amounts included in the measurement of lease liabilities:"
                            }
                        }
                    },
                "localname":  "OperatingLeaseInitialDirectCostExpenseOverTerm",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LeasesDetails3"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_OperatingLeaseLiability":  {
                "auth_ref":  [
                    "r370"
                    ],
                "calculation":  {
                    "http://tomz.com/role/LeasesDetails":  {
                        "order":  null,
                        "parentTag":  null,
                        "root":  true,
                        "weight":  null
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Present value of lessee's discounted obligation for lease payments from operating lease.",
                            "label":  "Total",
                            "verboseLabel":  "Present value of lease obligations"
                            }
                        }
                    },
                "localname":  "OperatingLeaseLiability",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LeasesDetails",
                    "http://tomz.com/role/LeasesDetails4"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_OperatingLeaseLiabilityCurrent":  {
                "auth_ref":  [
                    "r370"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  18.0,
                        "parentTag":  "us-gaap_LiabilitiesCurrent",
                        "weight":  1.0
                        },
                    "http://tomz.com/role/LeasesDetails":  {
                        "order":  3.0,
                        "parentTag":  "us-gaap_OperatingLeaseLiability",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.",
                            "label":  "Current Portion of Long-Term Operating Lease (Note 7)",
                            "terseLabel":  "Less: current portion",
                            "verboseLabel":  "Current Portion of Long-Term Operating Lease"
                            }
                        }
                    },
                "localname":  "OperatingLeaseLiabilityCurrent",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
                    "http://tomz.com/role/LeasesDetails",
                    "http://tomz.com/role/LeasesDetails4"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_OperatingLeaseLiabilityNoncurrent":  {
                "auth_ref":  [
                    "r370"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  20.0,
                        "parentTag":  "us-gaap_LiabilitiesNoncurrent",
                        "weight":  1.0
                        },
                    "http://tomz.com/role/LeasesDetails":  {
                        "order":  2.0,
                        "parentTag":  "us-gaap_OperatingLeaseLiability",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.",
                            "label":  "Long-Term Operating Lease, Net of Current Portion (Note 7)",
                            "terseLabel":  "Long-term portion of lease obligations",
                            "verboseLabel":  "Long-Term Operating Lease, Net of Current Portion"
                            }
                        }
                    },
                "localname":  "OperatingLeaseLiabilityNoncurrent",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
                    "http://tomz.com/role/LeasesDetails",
                    "http://tomz.com/role/LeasesDetails4"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_OperatingLeaseRightOfUseAsset":  {
                "auth_ref":  [
                    "r369"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  9.0,
                        "parentTag":  "us-gaap_OtherAssets",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of lessee's right to use underlying asset under operating lease.",
                            "label":  "Operating Lease - Right of Use Asset (Note - 7)",
                            "verboseLabel":  "Operating Lease Right of Use Asset"
                            }
                        }
                    },
                "localname":  "OperatingLeaseRightOfUseAsset",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
                    "http://tomz.com/role/LeasesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense":  {
                "auth_ref":  [
                    "r88"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  4.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInOperatingActivities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of amortization expense for right-of-use asset from operating lease.",
                            "label":  "Amortization of Right of Use Asset"
                            }
                        }
                    },
                "localname":  "OperatingLeaseRightOfUseAssetAmortizationExpense",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_OperatingLeasesRentExpenseNet":  {
                "auth_ref":  [
                    "r367"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Rental expense for the reporting period incurred under operating leases, including minimum and any contingent rent expense, net of related sublease income.",
                            "label":  "Annual rent lease"
                            }
                        }
                    },
                "localname":  "OperatingLeasesRentExpenseNet",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LeasesDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_OperatingLossCarryforwards":  {
                "auth_ref":  [
                    "r321"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.",
                            "label":  "Net Operating Loss Carryforwards"
                            }
                        }
                    },
                "localname":  "OperatingLossCarryforwards",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_OptionIndexedToIssuersEquityEquityAxis":  {
                "auth_ref":  [
                    "r258",
                    "r348",
                    "r349",
                    "r350"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Information by type of options indexed to an issuer's equity.",
                            "label":  "Option Indexed to Issuer's Equity [Axis]"
                            }
                        }
                    },
                "localname":  "OptionIndexedToIssuersEquityEquityAxis",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails1"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_OptionIndexedToIssuersEquityTypeDomain":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Description of the type of freestanding contract issued by a Company that is indexed to, and potentially settled in, a Company's own stock.  Specifically, the pertinent rights and privileges of the securities outstanding."
                            }
                        }
                    },
                "localname":  "OptionIndexedToIssuersEquityTypeDomain",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails1"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "DESCRIPTION OF BUSINESS"
                            }
                        }
                    },
                "localname":  "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent":  {
                "auth_ref":  [
                    "r411",
                    "r427"
                    ],
                "calculation":  {
                    "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails":  {
                        "order":  2.0,
                        "parentTag":  "us-gaap_AccruedLiabilitiesAndOtherLiabilities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of expenses incurred but not yet paid classified as other.",
                            "label":  "Other accrued expenses"
                            }
                        }
                    },
                "localname":  "OtherAccruedLiabilitiesCurrentAndNoncurrent",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_OtherAssets":  {
                "auth_ref":  [
                    "r20",
                    "r407",
                    "r421"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  14.0,
                        "parentTag":  "us-gaap_Assets",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of assets classified as other.",
                            "label":  "[Other Assets]",
                            "totalLabel":  "Total Other Assets"
                            }
                        }
                    },
                "localname":  "OtherAssets",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_OtherAssetsAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Other Assets:"
                            }
                        }
                    },
                "localname":  "OtherAssetsAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_OtherAssetsCurrent":  {
                "auth_ref":  [
                    "r57",
                    "r384"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  11.0,
                        "parentTag":  "us-gaap_OtherAssets",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of current assets classified as other.",
                            "label":  "Other Assets"
                            }
                        }
                    },
                "localname":  "OtherAssetsCurrent",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_OtherDepreciationAndAmortization":  {
                "auth_ref":  [
                    "r75",
                    "r88",
                    "r222"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  3.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInOperatingActivities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of expense charged against earnings to allocate the cost of tangible and intangible assets over their remaining economic lives, classified as other.",
                            "label":  "[Other Depreciation and Amortization]",
                            "verboseLabel":  "Depreciation and Amortization"
                            }
                        }
                    },
                "localname":  "OtherDepreciationAndAmortization",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_OtherGeneralAndAdministrativeExpense":  {
                "auth_ref":  [
                    "r76"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations":  {
                        "order":  9.0,
                        "parentTag":  "us-gaap_OperatingExpenses",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of general and administrative expense classified as other.",
                            "label":  "General and Administrative"
                            }
                        }
                    },
                "localname":  "OtherGeneralAndAdministrativeExpense",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_OtherIncomeAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Other Income (Expense):"
                            }
                        }
                    },
                "localname":  "OtherIncomeAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_OtherReceivablesNetCurrent":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  4.0,
                        "parentTag":  "us-gaap_AssetsCurrent",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount, after allowance, of receivables classified as other, due within one year or the operating cycle, if longer.",
                            "label":  "Other Receivables"
                            }
                        }
                    },
                "localname":  "OtherReceivablesNetCurrent",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_PaymentForManagementFee":  {
                "auth_ref":  [
                    "r83",
                    "r378"
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount paid to managing member or general partner for management of the day-to-day business functions of the limited liability company (LLC) or limited partnership (LP).",
                            "label":  "Increased annual fee"
                            }
                        }
                    },
                "localname":  "PaymentForManagementFee",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_PaymentsForProceedsFromTenantAllowance":  {
                "auth_ref":  [
                    "r78",
                    "r79"
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Net cash outflow or inflow from monetary allowance granted by the landlord to a tenant to entice tenant to move into landlords building which will enable the tenant to prepare the leased premises for tenants occupancy.",
                            "label":  "Landlord tenant improvement allowance"
                            }
                        }
                    },
                "localname":  "PaymentsForProceedsFromTenantAllowance",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LeasesDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_PlanNameAxis":  {
                "auth_ref":  [
                    "r282",
                    "r297"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Information by plan name for share-based payment arrangement.",
                            "label":  "Plan Name Axis"
                            }
                        }
                    },
                "localname":  "PlanNameAxis",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_PlanNameDomain":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Plan name for share-based payment arrangement."
                            }
                        }
                    },
                "localname":  "PlanNameDomain",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_PreferredStockParOrStatedValuePerShare":  {
                "auth_ref":  [
                    "r26",
                    "r259"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.",
                            "label":  "Cumulative Convertible Preferred Stock; Par Value",
                            "verboseLabel":  "Cumulative Convertible Preferred Stock; Par Value"
                            }
                        }
                    },
                "localname":  "PreferredStockParOrStatedValuePerShare",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "us-gaap_PreferredStockSharesAuthorized":  {
                "auth_ref":  [
                    "r26"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.",
                            "label":  "Cumulative Convertible Preferred Stock; Shares Authorized",
                            "verboseLabel":  "Preferred stock shares"
                            }
                        }
                    },
                "localname":  "PreferredStockSharesAuthorized",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_PreferredStockSharesIssued":  {
                "auth_ref":  [
                    "r26",
                    "r259"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury).  May be all or portion of the number of preferred shares authorized.  Excludes preferred shares that are classified as debt.",
                            "label":  "Cumulative Convertible Preferred Stock; Shares Issued",
                            "verboseLabel":  "Cumulative Convertible Preferred Stock; Shares Issued"
                            }
                        }
                    },
                "localname":  "PreferredStockSharesIssued",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_PreferredStockSharesOutstanding":  {
                "auth_ref":  [
                    "r26"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders.  Does not include preferred shares that have been repurchased.",
                            "label":  "Cumulative Convertible Preferred Stock; Shares Outstanding",
                            "verboseLabel":  "Cumulative Convertible Preferred Stock; Shares Outstanding"
                            }
                        }
                    },
                "localname":  "PreferredStockSharesOutstanding",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_PreferredStockValue":  {
                "auth_ref":  [
                    "r26",
                    "r384"
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer).  This item includes treasury stock repurchased by the entity.  Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.",
                            "label":  "Cumulative Convertible Series A Preferred Stock; par value $0.01 per share, 1,000,000 shares authorized; 63,750 shares issued and outstanding at September 30, 2021 and December 31, 2020"
                            }
                        }
                    },
                "localname":  "PreferredStockValue",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_PrepaidExpenseAndOtherAssets":  {
                "auth_ref":  [
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets.",
                            "label":  "Prepaid expenses and other assets"
                            }
                        }
                    },
                "localname":  "PrepaidExpenseAndOtherAssets",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CloudComputingServiceContractDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_PrepaidExpenseCurrent":  {
                "auth_ref":  [
                    "r7",
                    "r9",
                    "r206",
                    "r207"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  7.0,
                        "parentTag":  "us-gaap_AssetsCurrent",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer.",
                            "label":  "Prepaid Expenses"
                            }
                        }
                    },
                "localname":  "PrepaidExpenseCurrent",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_PriorPeriodReclassificationAdjustmentDescription":  {
                "auth_ref":  [
                    "r1"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Disclosure of accounting policy for reclassification affecting comparability of financial statement.  Excludes amendment to accounting standards, other change in accounting principle, and correction of error.",
                            "label":  "Reclassification of Accounts"
                            }
                        }
                    },
                "localname":  "PriorPeriodReclassificationAdjustmentDescription",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ProceedsFromIssuanceOfWarrants":  {
                "auth_ref":  [
                    "r80"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  24.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInFinancingActivities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The cash inflow from issuance of rights to purchase common shares at predetermined price (usually issued together with corporate debt).",
                            "label":  "Proceeds from Issuance of Stock and Warrants",
                            "verboseLabel":  "Proceeds from issuance of warrants"
                            }
                        }
                    },
                "localname":  "ProceedsFromIssuanceOfWarrants",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows",
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_ProceedsFromOtherDebt":  {
                "auth_ref":  [
                    "r81"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  26.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInFinancingActivities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of cash inflow from debt classified as other.",
                            "label":  "Proceeds from Loan Payable"
                            }
                        }
                    },
                "localname":  "ProceedsFromOtherDebt",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_ProceedsFromStockOptionsExercised":  {
                "auth_ref":  [
                    "r80",
                    "r298"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows":  {
                        "order":  25.0,
                        "parentTag":  "us-gaap_NetCashProvidedByUsedInFinancingActivities",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of cash inflow from exercise of option under share-based payment arrangement.",
                            "label":  "Proceeds from Exercise of Warrants and Options"
                            }
                        }
                    },
                "localname":  "ProceedsFromStockOptionsExercised",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_ProductLiabilityContingencyAccrualPresentValue":  {
                "auth_ref":  [
                    "r236"
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Present value of the accrual for product liability loss contingencies as of the balance sheet date (if the accrual qualifies for discounting).",
                            "label":  "Claims against product liability"
                            }
                        }
                    },
                "localname":  "ProductLiabilityContingencyAccrualPresentValue",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CommitmentsAndContingenciesDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_ProductWarrantyAccrualPeriodIncreaseDecrease":  {
                "auth_ref":  [
                    "r239"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of increase (decrease) in the standard and extended product warranty liability.",
                            "label":  "Provision for warranty expense"
                            }
                        }
                    },
                "localname":  "ProductWarrantyAccrualPeriodIncreaseDecrease",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/AccruedWarrantyDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_ProfessionalFees":  {
                "auth_ref":  [
                    "r441",
                    "r442"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations":  {
                        "order":  4.0,
                        "parentTag":  "us-gaap_OperatingExpenses",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "A fee charged for services from professionals such as doctors, lawyers and accountants.  The term is often expanded to include other professions, for example, pharmacists charging to maintain a medicinal profile of a client or customer.",
                            "label":  "Professional Fees"
                            }
                        }
                    },
                "localname":  "ProfessionalFees",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_PropertyPlantAndEquipmentAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "PROPERTY AND EQUIPMENT"
                            }
                        }
                    },
                "localname":  "PropertyPlantAndEquipmentAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock":  {
                "auth_ref":  [
                    "r228",
                    "r444",
                    "r445",
                    "r446"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale.  Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.",
                            "label":  "5.  PROPERTY AND EQUIPMENT"
                            }
                        }
                    },
                "localname":  "PropertyPlantAndEquipmentDisclosureTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/PropertyAndEquipment"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_PropertyPlantAndEquipmentGross":  {
                "auth_ref":  [
                    "r39",
                    "r223"
                    ],
                "calculation":  {
                    "http://tomz.com/role/PropertyAndEquipmentDetails":  {
                        "order":  null,
                        "parentTag":  null,
                        "root":  true,
                        "weight":  null
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale.  Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.",
                            "label":  "Property and Equipment, Gross"
                            }
                        }
                    },
                "localname":  "PropertyPlantAndEquipmentGross",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/PropertyAndEquipmentDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_PropertyPlantAndEquipmentNet":  {
                "auth_ref":  [
                    "r18",
                    "r19",
                    "r225",
                    "r384",
                    "r419",
                    "r426"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  13.0,
                        "parentTag":  "us-gaap_Assets",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale.  Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.",
                            "label":  "Property and Equipment - net (Note 5)",
                            "verboseLabel":  "Property and Equipment, Net"
                            }
                        }
                    },
                "localname":  "PropertyPlantAndEquipmentNet",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
                    "http://tomz.com/role/PropertyAndEquipmentDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock":  {
                "auth_ref":  [
                    "r38",
                    "r225",
                    "r444",
                    "r445"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale.  Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.",
                            "label":  "Property and Equipment"
                            }
                        }
                    },
                "localname":  "PropertyPlantAndEquipmentPolicyTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_PropertyPlantAndEquipmentTextBlock":  {
                "auth_ref":  [
                    "r18",
                    "r225"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale.  Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.",
                            "label":  "Property, Plant and Equipment [Table Text Block]",
                            "verboseLabel":  "Property and Equipment"
                            }
                        }
                    },
                "localname":  "PropertyPlantAndEquipmentTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/PropertyAndEquipmentTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ProvisionForDoubtfulAccounts":  {
                "auth_ref":  [
                    "r71",
                    "r198"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of expense (reversal of expense) for expected credit loss on accounts receivable.",
                            "label":  "Bad Debt Expense"
                            }
                        }
                    },
                "localname":  "ProvisionForDoubtfulAccounts",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles":  {
                "auth_ref":  [
                    ],
                "calculation":  {
                    "http://tomz.com/role/PropertyAndEquipmentDetails":  {
                        "order":  6.0,
                        "parentTag":  "us-gaap_PropertyPlantAndEquipmentGross",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Period end book value of vehicles owned by the public utility.",
                            "label":  "Vehicles",
                            "verboseLabel":  "Vehicle allowance"
                            }
                        }
                    },
                "localname":  "PublicUtilitiesPropertyPlantAndEquipmentVehicles",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
                    "http://tomz.com/role/PropertyAndEquipmentDetails"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_ReceivablesPolicyTextBlock":  {
                "auth_ref":  [
                    "r188",
                    "r191",
                    "r192",
                    "r193"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Disclosure of accounting policy for receivable.  Includes, but is not limited to, accounts receivable and financing receivable.",
                            "label":  "Receivable [Policy Text Block]",
                            "verboseLabel":  "Accounts Receivable"
                            }
                        }
                    },
                "localname":  "ReceivablesPolicyTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_RelatedPartyDomain":  {
                "auth_ref":  [
                    "r280",
                    "r378",
                    "r379"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Related parties include affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families.  It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests."
                            }
                        }
                    },
                "localname":  "RelatedPartyDomain",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis":  {
                "auth_ref":  [
                    "r280",
                    "r378",
                    "r381",
                    "r394",
                    "r395",
                    "r396",
                    "r397",
                    "r398",
                    "r399",
                    "r400",
                    "r401",
                    "r402",
                    "r403",
                    "r404",
                    "r405"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Information by type of related party.  Related parties include, but not limited to, affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families.  It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests.",
                            "label":  "Related Party Transactions By Related Party Axis"
                            }
                        }
                    },
                "localname":  "RelatedPartyTransactionsByRelatedPartyAxis",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_ResearchAndDevelopmentExpense":  {
                "auth_ref":  [
                    "r306",
                    "r389",
                    "r449"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations":  {
                        "order":  7.0,
                        "parentTag":  "us-gaap_OperatingExpenses",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use.",
                            "label":  "Research and Development"
                            }
                        }
                    },
                "localname":  "ResearchAndDevelopmentExpense",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_ResearchAndDevelopmentExpensePolicy":  {
                "auth_ref":  [
                    "r306"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Disclosure of accounting policy for costs it has incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process.",
                            "label":  "Research and Development Expenses"
                            }
                        }
                    },
                "localname":  "ResearchAndDevelopmentExpensePolicy",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock":  {
                "auth_ref":  [
                    "r451"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The entire disclosure for research, development, and computer software activities, including contracts and arrangements to be performed for others and with federal government.  Includes costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility and in-process research and development acquired in a business combination consummated during the period.",
                            "label":  "8.  CAPITALIZED SOFTWARE DEVELOPMENT COSTS"
                            }
                        }
                    },
                "localname":  "ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CapitalizedSoftwareDevelopmentCosts"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock":  {
                "auth_ref":  [
                    "r41",
                    "r219",
                    "r220",
                    "r449"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Disclosure of accounting policy for its research and development and computer software activities including the accounting treatment for costs incurred for (1) research and development activities, (2) development of computer software for internal use, (3) computer software to be sold, leased or otherwise marketed as a separate product or as part of a product or process and (4) in-process research and development acquired in a purchase business combination.",
                            "label":  "Capitalized Software Development Costs"
                            }
                        }
                    },
                "localname":  "ResearchDevelopmentAndComputerSoftwarePolicyTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_RestructuringAndRelatedActivitiesAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "CONTRACTS AND AGREEMENTS (Tables)"
                            }
                        }
                    },
                "localname":  "RestructuringAndRelatedActivitiesAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_RetainedEarningsAccumulatedDeficit":  {
                "auth_ref":  [
                    "r30",
                    "r274",
                    "r302",
                    "r384",
                    "r424",
                    "r439",
                    "r440"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  25.0,
                        "parentTag":  "us-gaap_StockholdersEquity",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The cumulative amount of the reporting entity's undistributed earnings or deficit.",
                            "label":  "Accumulated Deficit"
                            }
                        }
                    },
                "localname":  "RetainedEarningsAccumulatedDeficit",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_RetainedEarningsMember":  {
                "auth_ref":  [
                    "r0",
                    "r110",
                    "r111",
                    "r112",
                    "r114",
                    "r120",
                    "r122",
                    "r195",
                    "r299",
                    "r300",
                    "r301",
                    "r327",
                    "r328",
                    "r351",
                    "r436",
                    "r438"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The cumulative amount of the reporting entity's undistributed earnings or deficit.",
                            "label":  "Retained Earnings (Accumulated Deficit)"
                            }
                        }
                    },
                "localname":  "RetainedEarningsMember",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_RevenueRecognitionPolicyTextBlock":  {
                "auth_ref":  [
                    "r100",
                    "r101"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Disclosure of accounting policy for revenue.  Includes revenue from contract with customer and from other sources.",
                            "label":  "Revenue Recognition"
                            }
                        }
                    },
                "localname":  "RevenueRecognitionPolicyTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_Revenues":  {
                "auth_ref":  [
                    "r66",
                    "r104",
                    "r160",
                    "r161",
                    "r172",
                    "r177",
                    "r178",
                    "r182",
                    "r183",
                    "r184",
                    "r194",
                    "r243",
                    "r244",
                    "r245",
                    "r247",
                    "r248",
                    "r249",
                    "r250",
                    "r251",
                    "r252",
                    "r253",
                    "r356",
                    "r418"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations":  {
                        "order":  2.0,
                        "parentTag":  "us-gaap_GrossProfit",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process.  Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).",
                            "label":  "Sales, net",
                            "verboseLabel":  "Net Revenue"
                            }
                        }
                    },
                "localname":  "Revenues",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_RisksAndUncertaintiesAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "CLOUD COMPUTING SERVICE CONTRACT"
                            }
                        }
                    },
                "localname":  "RisksAndUncertaintiesAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_SalariesAndWages":  {
                "auth_ref":  [
                    "r70"
                    ],
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Amount of expense for salary and wage arising from service rendered by nonofficer employee.  Excludes allocated cost, labor-related nonsalary expense, and direct and overhead labor cost included in cost of good and service sold.",
                            "label":  "Base annual salary"
                            }
                        }
                    },
                "localname":  "SalariesAndWages",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_SaleOfStockPricePerShare":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Per share amount received by subsidiary or equity investee for each share of common stock issued or sold in the stock transaction.",
                            "label":  "Closing price per share"
                            }
                        }
                    },
                "localname":  "SaleOfStockPricePerShare",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Tabular disclosure of the (a) carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business (accounts payable); (b) other payables; and (c) accrued liabilities.  Examples include taxes, interest, rent and utilities.  Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).  An alternative caption includes accrued expenses.",
                            "label":  "Accrued Expenses and Other Current Liabilities"
                            }
                        }
                    },
                "localname":  "ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock":  {
                "auth_ref":  [
                    "r326"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.",
                            "label":  "Income Tax Expense"
                            }
                        }
                    },
                "localname":  "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock":  {
                "auth_ref":  [
                    "r318"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.",
                            "label":  "Deferred Income Tax Assets (Liabilities)"
                            }
                        }
                    },
                "localname":  "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock":  {
                "auth_ref":  [
                    "r311"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.",
                            "label":  "Effective Income Tax Rate Reconciliation"
                            }
                        }
                    },
                "localname":  "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock":  {
                "auth_ref":  [
                    "r211",
                    "r214"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.",
                            "label":  "Definite Life Intangible Assets"
                            }
                        }
                    },
                "localname":  "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IntangibleAssetsTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock":  {
                "auth_ref":  [
                    "r105"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Tabular disclosure of income before income tax between domestic and foreign jurisdictions.",
                            "label":  "Net Income (Loss) Before Income Tax"
                            }
                        }
                    },
                "localname":  "ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IncomeTaxesTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock":  {
                "auth_ref":  [
                    "r212",
                    "r342"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Tabular disclosure of characteristics and cost, by total and major class, of indefinite-lived intangible assets acquired as part of a business combination.  Indefinite-lived intangible assets are assets that have no physical form, but have expected future economic benefit.  The future benefit is not expected to diminish over a stated period of time.  Acquired indefinite-lived intangible assets are disclosed by major class (assets that can be grouped together because they are similar, either by their nature or by their use in operations of the entity) and in total.",
                            "label":  "Indefinite Life Intangible Assets"
                            }
                        }
                    },
                "localname":  "ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IntangibleAssetsTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ScheduleOfInventoryCurrentTableTextBlock":  {
                "auth_ref":  [
                    "r12",
                    "r34",
                    "r35",
                    "r36"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process.",
                            "label":  "Schedule of Inventory, Current [Table Text Block]",
                            "verboseLabel":  "Inventories"
                            }
                        }
                    },
                "localname":  "ScheduleOfInventoryCurrentTableTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/InventoriesTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock":  {
                "auth_ref":  [
                    "r241"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Tabular disclosure of the changes in the guarantor's aggregate product warranty liability, including the beginning balance of the aggregate product warranty liability, the aggregate reductions in that liability for payments made (in cash or in kind) under the warranty, the aggregate changes in the liability for accruals related to product warranties issued during the reporting period, the aggregate changes in the liability for accruals related to preexisting warranties (including adjustments related to changes in estimates), and the ending balance of the aggregate product warranty liability.",
                            "label":  "Warranty Reserve Activity"
                            }
                        }
                    },
                "localname":  "ScheduleOfProductWarrantyLiabilityTableTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/AccruedWarrantyTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Tabular disclosure of the change in stock options.",
                            "label":  "Stock Options Outstanding"
                            }
                        }
                    },
                "localname":  "ScheduleOfStockOptionsRollForwardTableTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/HareholdersEquityTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock":  {
                "auth_ref":  [
                    "r276",
                    "r281"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Tabular disclosure of warrants or rights issued.  Warrants and rights outstanding are derivative securities that give the holder the right to purchase securities (usually equity) from the issuer at a specific price within a certain time frame.  Warrants are often included in a new debt issue to entice investors by a higher return potential.  The main difference between warrants and call options is that warrants are issued and guaranteed by the company, whereas options are exchange instruments and are not issued by the company.  Also, the lifetime of a warrant is often measured in years, while the lifetime of a typical option is measured in months.  Disclose the title of issue of securities called for by warrants and rights outstanding, the aggregate amount of securities called for by warrants and rights outstanding, the date from which the warrants or rights are exercisable, and the price at which the warrant or right is exercisable.",
                            "label":  "Stock Warrants Outstanding"
                            }
                        }
                    },
                "localname":  "ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/HareholdersEquityTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock":  {
                "auth_ref":  [
                    "r214"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets.",
                            "label":  "Approximate Future Amortization"
                            }
                        }
                    },
                "localname":  "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/IntangibleAssetsTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_SegmentDomain":  {
                "auth_ref":  [
                    "r159",
                    "r160",
                    "r161",
                    "r162",
                    "r163",
                    "r164",
                    "r165",
                    "r166",
                    "r167",
                    "r168",
                    "r169",
                    "r170",
                    "r171",
                    "r172",
                    "r173",
                    "r174",
                    "r175",
                    "r176",
                    "r177",
                    "r178",
                    "r179",
                    "r180",
                    "r181",
                    "r184",
                    "r230",
                    "r231",
                    "r433"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity."
                            }
                        }
                    },
                "localname":  "SegmentDomain",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_SellingExpense":  {
                "auth_ref":  [
                    "r76"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations":  {
                        "order":  6.0,
                        "parentTag":  "us-gaap_OperatingExpenses",
                        "weight":  1.0
                        }
                    },
                "crdr":  "debit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Expenses recognized in the period that are directly related to the selling and distribution of products or services.",
                            "label":  "Selling Expenses"
                            }
                        }
                    },
                "localname":  "SellingExpense",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_SeriesAPreferredStockMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Outstanding nonredeemable series A preferred stock or outstanding series A preferred stock.  Classified within stockholders' equity if nonredeemable or redeemable solely at the option of the issuer.  Classified within temporary equity if redemption is outside the control of the issuer.",
                            "label":  "Cumulative Convertible Series A Preferred Stock",
                            "verboseLabel":  "Cumulative Convertible Series A Preferred Stock"
                            }
                        }
                    },
                "localname":  "SeriesAPreferredStockMember",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_SeriesBPreferredStockMember":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Outstanding nonredeemable series B preferred stock or outstanding series B preferred stock.  Classified within stockholders' equity if nonredeemable or redeemable solely at the option of the issuer.  Classified within temporary equity if redemption is outside the control of the issuer.",
                            "label":  "Cumulative Convertible Series B Preferred Stock"
                            }
                        }
                    },
                "localname":  "SeriesBPreferredStockMember",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Number of Options"
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails2"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod":  {
                "auth_ref":  [
                    "r290"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.",
                            "label":  "Common stock shares fully vested, shares"
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Agreed-upon price for the exchange of the underlying asset relating to the share-based payment award.",
                            "label":  "Exercise price"
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate":  {
                "auth_ref":  [
                    "r295"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.",
                            "label":  "Expected dividend yield"
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "percentItemType"
                },
            "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate":  {
                "auth_ref":  [
                    "r294"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The estimated measure of the percentage by which a share price is expected to fluctuate during a period.  Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean.  The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period.  That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period.",
                            "label":  "Volatility rate"
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "percentItemType"
                },
            "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate":  {
                "auth_ref":  [
                    "r296"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The risk-free interest rate assumption that is used in valuing an option on its own shares.",
                            "label":  "Risk free interest rate"
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "percentItemType"
                },
            "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber":  {
                "auth_ref":  [
                    "r285",
                    "r287"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Number of equity instruments other than options outstanding, including both vested and non-vested instruments.",
                            "label":  "[Share-based Compensation Arrangement by Share-based Payment Award, Non-Option Equity Instruments, Outstanding, Number]",
                            "verboseLabel":  "Outstanding, Beginning Balance"
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails3"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber":  {
                "auth_ref":  [
                    "r288"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.",
                            "label":  "Number of Exercisable Options",
                            "verboseLabel":  "Exercisable Warrants"
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails1",
                    "http://tomz.com/role/ShareholdersEquityDetails3"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice":  {
                "auth_ref":  [
                    "r288"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan.",
                            "label":  "Weighted Average Exercise Price, Exercisable Options",
                            "verboseLabel":  "Weighted Average Exercise Price, Exercisable"
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails1",
                    "http://tomz.com/role/ShareholdersEquityDetails3"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod":  {
                "auth_ref":  [
                    "r289"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "For presentations that combine terminations, the number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan or that expired.",
                            "label":  "[Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures and Expirations in Period]",
                            "negatedLabel":  "Expired"
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails",
                    "http://tomz.com/role/ShareholdersEquityDetails2"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures and Expirations in Period, Weighted Average Exercise Price [Abstract]",
                            "verboseLabel":  "Weighted Average Exercise Price"
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails2"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Gross number of share options (or share units) granted during the period.",
                            "label":  "Granted",
                            "verboseLabel":  "Granted"
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails",
                    "http://tomz.com/role/ShareholdersEquityDetails2"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber":  {
                "auth_ref":  [
                    "r286",
                    "r297"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Number of options outstanding, including both vested and non-vested options.",
                            "label":  "Outstanding, Beginning Balance",
                            "periodEndLabel":  "Outstanding, end of period",
                            "periodStartLabel":  "Outstanding, beginning of period"
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails1",
                    "http://tomz.com/role/ShareholdersEquityDetails2"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice":  {
                "auth_ref":  [
                    "r285"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.",
                            "label":  "[Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price]",
                            "periodEndLabel":  "Weighted average exercise price, end of period",
                            "periodStartLabel":  "Weighted average exercise price, beginning of period"
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails2"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock":  {
                "auth_ref":  [
                    "r291"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Tabular disclosure of number, weighted-average exercise price or conversion ratio, aggregate intrinsic value, and weighted-average remaining contractual term for outstanding and exercisable options that are fully vested and expected to vest.  Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.",
                            "label":  "Options Outstanding and Exercisable by Price Range"
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/HareholdersEquityTables"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain":  {
                "auth_ref":  [
                    "r281",
                    "r283"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Award under share-based payment arrangement."
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails3"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Weighted average price at which option holders acquired shares when converting their stock options into shares.",
                            "label":  "[Share-based Compensation Arrangements by Share-based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price]",
                            "verboseLabel":  "Weighted average exercise price, Exercised"
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails2"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options of the plan that expired.",
                            "label":  "[Share-based Compensation Arrangements by Share-based Payment Award, Options, Expirations in Period, Weighted Average Exercise Price]",
                            "verboseLabel":  "Weighted average exercise price, Expired"
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails2"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.",
                            "label":  "[Share-based Compensation Arrangements by Share-based Payment Award, Options, Grants in Period, Weighted Average Exercise Price]",
                            "verboseLabel":  "Weighted average exercise price, Granted"
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails2"
                    ],
                "xbrltype":  "perShareItemType"
                },
            "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy":  {
                "auth_ref":  [
                    "r282",
                    "r284"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Disclosure of accounting policy for award under share-based payment arrangement.  Includes, but is not limited to, methodology and assumption used in measuring cost.",
                            "label":  "Share-based Payment Arrangement [Policy Text Block]",
                            "verboseLabel":  "Equity Compensation Expense"
                            }
                        }
                    },
                "localname":  "ShareBasedCompensationOptionAndIncentivePlansPolicy",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1":  {
                "auth_ref":  [
                    "r293",
                    "r303"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
                            "label":  "Expected life term"
                            }
                        }
                    },
                "localname":  "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "durationItemType"
                },
            "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2":  {
                "auth_ref":  [
                    "r292"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
                            "label":  "Average Weighted Remaining Contractual Life in Years, Outstanding",
                            "verboseLabel":  "Average Weighted Remaining Contractual Life in Years"
                            }
                        }
                    },
                "localname":  "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetails1",
                    "http://tomz.com/role/ShareholdersEquityDetails3"
                    ],
                "xbrltype":  "durationItemType"
                },
            "us-gaap_SharesIssued":  {
                "auth_ref":  [
                    "r272"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Number of shares of stock issued as of the balance sheet date, including shares that had been issued and were previously outstanding but which are now held in the treasury.",
                            "label":  "[Shares, Issued]",
                            "periodEndLabel":  "Balance, shares",
                            "periodStartLabel":  "Balance, shares"
                            }
                        }
                    },
                "localname":  "SharesIssued",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_SignificantAccountingPoliciesTextBlock":  {
                "auth_ref":  [
                    "r97",
                    "r109"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The entire disclosure for all significant accounting policies of the reporting entity.",
                            "label":  "2.  SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES"
                            }
                        }
                    },
                "localname":  "SignificantAccountingPoliciesTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_StatementBusinessSegmentsAxis":  {
                "auth_ref":  [
                    "r2",
                    "r159",
                    "r160",
                    "r161",
                    "r162",
                    "r163",
                    "r164",
                    "r165",
                    "r166",
                    "r167",
                    "r168",
                    "r169",
                    "r170",
                    "r171",
                    "r172",
                    "r173",
                    "r174",
                    "r175",
                    "r176",
                    "r177",
                    "r178",
                    "r179",
                    "r180",
                    "r181",
                    "r184",
                    "r208",
                    "r227",
                    "r230",
                    "r231",
                    "r433"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Information by business segments.",
                            "label":  "Segments [Axis]"
                            }
                        }
                    },
                "localname":  "StatementBusinessSegmentsAxis",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_StatementClassOfStockAxis":  {
                "auth_ref":  [
                    "r25",
                    "r26",
                    "r27",
                    "r102",
                    "r104",
                    "r125",
                    "r130",
                    "r133",
                    "r135",
                    "r137",
                    "r144",
                    "r145",
                    "r146",
                    "r194",
                    "r243",
                    "r247",
                    "r248",
                    "r249",
                    "r252",
                    "r253",
                    "r259",
                    "r260",
                    "r262",
                    "r266",
                    "r272",
                    "r356",
                    "r459"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Information by the different classes of stock of the entity.",
                            "label":  "Statement Class Of Stock Axis"
                            }
                        }
                    },
                "localname":  "StatementClassOfStockAxis",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
                    "http://tomz.com/role/ShareholdersEquityDetails",
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_StatementEquityComponentsAxis":  {
                "auth_ref":  [
                    "r0",
                    "r49",
                    "r62",
                    "r63",
                    "r64",
                    "r110",
                    "r111",
                    "r112",
                    "r114",
                    "r120",
                    "r122",
                    "r143",
                    "r195",
                    "r272",
                    "r274",
                    "r299",
                    "r300",
                    "r301",
                    "r327",
                    "r328",
                    "r351",
                    "r358",
                    "r359",
                    "r360",
                    "r361",
                    "r362",
                    "r363",
                    "r436",
                    "r437",
                    "r438",
                    "r462"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Information by component of equity.",
                            "label":  "Statement Equity Components [Axis]"
                            }
                        }
                    },
                "localname":  "StatementEquityComponentsAxis",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_StatementLineItems":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Line items represent financial concepts included in a table.  These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
                            "label":  "Statement [Line Items]"
                            }
                        }
                    },
                "localname":  "StatementLineItems",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity",
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
                    "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
                    "http://tomz.com/role/ShareholdersEquityDetails",
                    "http://tomz.com/role/ShareholdersEquityDetails1",
                    "http://tomz.com/role/ShareholdersEquityDetails2",
                    "http://tomz.com/role/ShareholdersEquityDetails3",
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_StatementOfCashFlowsAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS"
                            }
                        }
                    },
                "localname":  "StatementOfCashFlowsAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_StatementOfFinancialPositionAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "CONDENSED CONSOLIDATED BALANCE SHEETS"
                            }
                        }
                    },
                "localname":  "StatementOfFinancialPositionAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_StatementOfStockholdersEquityAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY"
                            }
                        }
                    },
                "localname":  "StatementOfStockholdersEquityAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_StatementTable":  {
                "auth_ref":  [
                    "r110",
                    "r111",
                    "r112",
                    "r143",
                    "r390"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed.",
                            "label":  "Statement [Table]"
                            }
                        }
                    },
                "localname":  "StatementTable",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity",
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
                    "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
                    "http://tomz.com/role/ShareholdersEquityDetails",
                    "http://tomz.com/role/ShareholdersEquityDetails1",
                    "http://tomz.com/role/ShareholdersEquityDetails2",
                    "http://tomz.com/role/ShareholdersEquityDetails3",
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans":  {
                "auth_ref":  [
                    "r26",
                    "r27",
                    "r272",
                    "r274"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Number of shares issued during the period as a result of an employee stock purchase plan.",
                            "label":  "Aggregate shares purchase of stock option"
                            }
                        }
                    },
                "localname":  "StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_StockIssuedDuringPeriodSharesNewIssues":  {
                "auth_ref":  [
                    "r26",
                    "r27",
                    "r272",
                    "r274"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Number of new stock issued during the period.",
                            "label":  "Common Stock Issued in Private Placement, shares",
                            "terseLabel":  "Issued shares of common stock during period",
                            "verboseLabel":  "Common stock share issued"
                            }
                        }
                    },
                "localname":  "StockIssuedDuringPeriodSharesNewIssues",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity",
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_StockIssuedDuringPeriodSharesOther":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Number of shares of stock issued attributable to transactions classified as other.",
                            "label":  "[Stock Issued During Period, Shares, Other]",
                            "verboseLabel":  "Issuance of option to purchase shares of common stock"
                            }
                        }
                    },
                "localname":  "StockIssuedDuringPeriodSharesOther",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_StockIssuedDuringPeriodValueConversionOfConvertibleSecurities":  {
                "auth_ref":  [
                    "r49",
                    "r272",
                    "r274"
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The gross value of stock issued during the period upon the conversion of convertible securities.",
                            "label":  "Conversion of Note Payable into Common Stock"
                            }
                        }
                    },
                "localname":  "StockIssuedDuringPeriodValueConversionOfConvertibleSecurities",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_StockIssuedDuringPeriodValueIssuedForServices":  {
                "auth_ref":  [
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Value of stock issued in lieu of cash for services contributed to the entity.  Value of the stock issued includes, but is not limited to, services contributed by vendors and founders.",
                            "label":  "Issued shares of common stock during period, value"
                            }
                        }
                    },
                "localname":  "StockIssuedDuringPeriodValueIssuedForServices",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_StockIssuedDuringPeriodValueNewIssues":  {
                "auth_ref":  [
                    "r26",
                    "r27",
                    "r272",
                    "r274"
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Equity impact of the value of new stock issued during the period.  Includes shares issued in an initial public offering or a secondary public offering.",
                            "label":  "Common Stock Issued in Private Placement, amount"
                            }
                        }
                    },
                "localname":  "StockIssuedDuringPeriodValueNewIssues",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_StockRepurchasedDuringPeriodShares":  {
                "auth_ref":  [
                    "r26",
                    "r27",
                    "r272",
                    "r274"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Number of shares that have been repurchased during the period and have not been retired and are not held in treasury.  Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore.  This element is used when state law does not recognize treasury stock.",
                            "label":  "Option to purchase"
                            }
                        }
                    },
                "localname":  "StockRepurchasedDuringPeriodShares",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_StockholdersEquity":  {
                "auth_ref":  [
                    "r27",
                    "r31",
                    "r32",
                    "r104",
                    "r190",
                    "r194",
                    "r356",
                    "r384"
                    ],
                "calculation":  {
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets":  {
                        "order":  27.0,
                        "parentTag":  "us-gaap_LiabilitiesAndStockholdersEquity",
                        "weight":  1.0
                        }
                    },
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent.  The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest).  This excludes temporary equity and is sometimes called permanent equity.",
                            "label":  "[Stockholders' Equity Attributable to Parent]",
                            "periodEndLabel":  "Balance, amount",
                            "periodStartLabel":  "Balance, amount",
                            "totalLabel":  "Total Shareholders' Equity"
                            }
                        }
                    },
                "localname":  "StockholdersEquity",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_StockholdersEquityAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Shareholders' Equity:",
                            "verboseLabel":  "Stockholders' Equity:"
                            }
                        }
                    },
                "localname":  "StockholdersEquityAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
                    "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_StockholdersEquityNoteDisclosureTextBlock":  {
                "auth_ref":  [
                    "r103",
                    "r260",
                    "r261",
                    "r262",
                    "r263",
                    "r264",
                    "r265",
                    "r266",
                    "r267",
                    "r268",
                    "r269",
                    "r270",
                    "r271",
                    "r274",
                    "r277"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The entire disclosure for shareholders' equity comprised of portions attributable to the parent entity and noncontrolling interest, including other comprehensive income.  Includes, but is not limited to, balances of common stock, preferred stock, additional paid-in capital, other capital and retained earnings, accumulated balance for each classification of other comprehensive income and amount of comprehensive income.",
                            "label":  "10.  SHAREHOLDERS' EQUITY"
                            }
                        }
                    },
                "localname":  "StockholdersEquityNoteDisclosureTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquity"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_StockholdersEquityReverseStockSplit":  {
                "auth_ref":  [
                    "r275"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Description of the reverse stock split arrangement.  Also provide the retroactive effect given by the reverse split that occurs after the balance sheet date but before the release of financial statements.",
                            "label":  "Reverse stock split"
                            }
                        }
                    },
                "localname":  "StockholdersEquityReverseStockSplit",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_SubsequentEventMember":  {
                "auth_ref":  [
                    "r364",
                    "r386"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued.",
                            "label":  "Subsequent Event"
                            }
                        }
                    },
                "localname":  "SubsequentEventMember",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_SubsequentEventTypeAxis":  {
                "auth_ref":  [
                    "r364",
                    "r386"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued.",
                            "label":  "Subsequent Event Type [Axis]"
                            }
                        }
                    },
                "localname":  "SubsequentEventTypeAxis",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_SubsequentEventTypeDomain":  {
                "auth_ref":  [
                    "r364",
                    "r386"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
                            }
                        }
                    },
                "localname":  "SubsequentEventTypeDomain",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SubsequentEventsDetailsNarrative"
                    ],
                "xbrltype":  "domainItemType"
                },
            "us-gaap_SubsequentEventsAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "SUBSEQUENT EVENTS"
                            }
                        }
                    },
                "localname":  "SubsequentEventsAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "xbrltype":  "stringItemType"
                },
            "us-gaap_SubsequentEventsTextBlock":  {
                "auth_ref":  [
                    "r385",
                    "r387"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued.  Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business.",
                            "label":  "18.  SUBSEQUENT EVENTS"
                            }
                        }
                    },
                "localname":  "SubsequentEventsTextBlock",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SubsequentEvents"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_SupplementalCashFlowInformationAbstract":  {
                "auth_ref":  [
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "label":  "Supplemental Cash Flow Information:"
                            }
                        }
                    },
                "localname":  "SupplementalCashFlowInformationAbstract",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
                    ],
                "xbrltype":  "stringItemType"
                },
            "us-gaap_UseOfEstimates":  {
                "auth_ref":  [
                    "r148",
                    "r149",
                    "r151",
                    "r152",
                    "r155",
                    "r156",
                    "r157"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.",
                            "label":  "Use of Estimates"
                            }
                        }
                    },
                "localname":  "UseOfEstimates",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
                    ],
                "xbrltype":  "textBlockItemType"
                },
            "us-gaap_WarrantsAndRightsOutstanding":  {
                "auth_ref":  [
                    ],
                "crdr":  "credit",
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Value of outstanding derivative securities that permit the holder the right to purchase securities (usually equity) from the issuer at a specified price.",
                            "label":  "Warrant issued"
                            }
                        }
                    },
                "localname":  "WarrantsAndRightsOutstanding",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
                    ],
                "xbrltype":  "monetaryItemType"
                },
            "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding":  {
                "auth_ref":  [
                    "r124",
                    "r137"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.",
                            "label":  "Diluted Weighted Average Common Shares Outstanding",
                            "terseLabel":  "Diluted Weighted Average Shares",
                            "verboseLabel":  "Diluted"
                            }
                        }
                    },
                "localname":  "WeightedAverageNumberOfDilutedSharesOutstanding",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic":  {
                "auth_ref":  [
                    "r123",
                    "r137"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.",
                            "label":  "Basic Weighted Average Common Shares Outstanding",
                            "terseLabel":  "Basic Weighted-Average Shares",
                            "verboseLabel":  "Basic"
                            }
                        }
                    },
                "localname":  "WeightedAverageNumberOfSharesOutstandingBasic",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails",
                    "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
                    ],
                "xbrltype":  "sharesItemType"
                },
            "us-gaap_WorkersCompensationDiscountPercent":  {
                "auth_ref":  [
                    "r432",
                    "r434"
                    ],
                "lang":  {
                    "en-us":  {
                        "role":  {
                            "documentation":  "Percent discount applied to worker's compensation reserve liability to reduce the reserve to present value.",
                            "label":  "Discount rate"
                            }
                        }
                    },
                "localname":  "WorkersCompensationDiscountPercent",
                "nsuri":  "http://fasb.org/us-gaap/2021-01-31",
                "presentation":  [
                    "http://tomz.com/role/LeasesDetailsNarrative"
                    ],
                "xbrltype":  "percentItemType"
                }
            },
        "unitCount":  5
        }
    },
"std_ref":  {
    "r0":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "6",
        "Publisher":  "FASB",
        "Section":  "65",
        "SubTopic":  "10",
        "Subparagraph":  "(c)",
        "Topic":  "105",
        "URI":  "http://asc.fasb.org/extlink&oid=124434974&loc=SL124442142-165695"
        },
    "r1":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "205",
        "URI":  "http://asc.fasb.org/extlink&oid=124429488&loc=d3e326-107755"
        },
    "r10":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "3",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6801-107765"
        },
    "r100":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(e)",
        "Topic":  "235",
        "URI":  "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790"
        },
    "r101":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(f)",
        "Topic":  "235",
        "URI":  "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790"
        },
    "r102":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.4-08(d))",
        "Topic":  "235",
        "URI":  "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
        },
    "r103":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.4-08(e)(1))",
        "Topic":  "235",
        "URI":  "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
        },
    "r104":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.4-08(g)(1)(ii))",
        "Topic":  "235",
        "URI":  "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
        },
    "r105":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.4-08(h)(1)(Note 1))",
        "Topic":  "235",
        "URI":  "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
        },
    "r106":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.4-08(h)(1))",
        "Topic":  "235",
        "URI":  "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
        },
    "r107":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.4-08(h)(2))",
        "Topic":  "235",
        "URI":  "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
        },
    "r108":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.4-08(h))",
        "Topic":  "235",
        "URI":  "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
        },
    "r109":  {
        "Name":  "Accounting Standards Codification",
        "Publisher":  "FASB",
        "Topic":  "235",
        "URI":  "http://asc.fasb.org/topic&trid=2122369"
        },
    "r11":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(f)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6812-107765"
        },
    "r110":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "23",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "250",
        "URI":  "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793"
        },
    "r111":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "24",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "250",
        "URI":  "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793"
        },
    "r112":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "5",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "250",
        "URI":  "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793"
        },
    "r113":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(b)(2)",
        "Topic":  "250",
        "URI":  "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794"
        },
    "r114":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(b)(3)",
        "Topic":  "250",
        "URI":  "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794"
        },
    "r115":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "11",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "250",
        "URI":  "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794"
        },
    "r116":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "11",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "250",
        "URI":  "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794"
        },
    "r117":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "3",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "250",
        "URI":  "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22583-107794"
        },
    "r118":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "250",
        "URI":  "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22595-107794"
        },
    "r119":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "7",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "250",
        "URI":  "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794"
        },
    "r12":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=6361739&loc=d3e7789-107766"
        },
    "r120":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "7",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "250",
        "URI":  "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794"
        },
    "r121":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "8",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "250",
        "URI":  "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22658-107794"
        },
    "r122":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "9",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "250",
        "URI":  "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22663-107794"
        },
    "r123":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "10",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "260",
        "URI":  "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1448-109256"
        },
    "r124":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "16",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "260",
        "URI":  "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1505-109256"
        },
    "r125":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "260",
        "URI":  "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1252-109256"
        },
    "r126":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "22",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "260",
        "URI":  "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1707-109256"
        },
    "r127":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "23",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(c)",
        "Topic":  "260",
        "URI":  "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1757-109256"
        },
    "r128":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "26",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "260",
        "URI":  "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1828-109256"
        },
    "r129":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "28A",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "260",
        "URI":  "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1500-109256"
        },
    "r13":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(19)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r130":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "3",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "260",
        "URI":  "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1278-109256"
        },
    "r131":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "40",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(c)",
        "Topic":  "260",
        "URI":  "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1930-109256"
        },
    "r132":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "42",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "260",
        "URI":  "http://asc.fasb.org/extlink&oid=125511455&loc=d3e2029-109256"
        },
    "r133":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "55",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "260",
        "URI":  "http://asc.fasb.org/extlink&oid=125511455&loc=d3e2626-109256"
        },
    "r134":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "60B",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "260",
        "URI":  "http://asc.fasb.org/extlink&oid=125511455&loc=SL5780133-109256"
        },
    "r135":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "60B",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(d)",
        "Topic":  "260",
        "URI":  "http://asc.fasb.org/extlink&oid=125511455&loc=SL5780133-109256"
        },
    "r136":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "7",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "260",
        "URI":  "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1337-109256"
        },
    "r137":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "260",
        "URI":  "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257"
        },
    "r138":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)",
        "Topic":  "260",
        "URI":  "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257"
        },
    "r139":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "260",
        "URI":  "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3630-109257"
        },
    "r14":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 201.5-02(24))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r140":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "15",
        "Publisher":  "FASB",
        "Section":  "55",
        "SubTopic":  "10",
        "Topic":  "260",
        "URI":  "http://asc.fasb.org/extlink&oid=125512782&loc=d3e3842-109258"
        },
    "r141":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "52",
        "Publisher":  "FASB",
        "Section":  "55",
        "SubTopic":  "10",
        "Topic":  "260",
        "URI":  "http://asc.fasb.org/extlink&oid=125512782&loc=d3e4984-109258"
        },
    "r142":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "6",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "270",
        "URI":  "http://asc.fasb.org/extlink&oid=124437754&loc=d3e543-108305"
        },
    "r143":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "272",
        "URI":  "http://asc.fasb.org/extlink&oid=125520817&loc=d3e70191-108054"
        },
    "r144":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "3",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "272",
        "URI":  "http://asc.fasb.org/extlink&oid=125520817&loc=d3e70229-108054"
        },
    "r145":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "272",
        "URI":  "http://asc.fasb.org/extlink&oid=6373374&loc=d3e70434-108055"
        },
    "r146":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "3",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "272",
        "URI":  "http://asc.fasb.org/extlink&oid=6373374&loc=d3e70478-108055"
        },
    "r147":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "275",
        "URI":  "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592"
        },
    "r148":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "275",
        "URI":  "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592"
        },
    "r149":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)",
        "Topic":  "275",
        "URI":  "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592"
        },
    "r15":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 201.5-02(25))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r150":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(d)",
        "Topic":  "275",
        "URI":  "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592"
        },
    "r151":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "11",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "275",
        "URI":  "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6161-108592"
        },
    "r152":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "12",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "275",
        "URI":  "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6191-108592"
        },
    "r153":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "18",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "275",
        "URI":  "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592"
        },
    "r154":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "20",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "275",
        "URI":  "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6404-108592"
        },
    "r155":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "275",
        "URI":  "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6061-108592"
        },
    "r156":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "8",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "275",
        "URI":  "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6132-108592"
        },
    "r157":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "9",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "275",
        "URI":  "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6143-108592"
        },
    "r158":  {
        "Name":  "Accounting Standards Codification",
        "Publisher":  "FASB",
        "Topic":  "275",
        "URI":  "http://asc.fasb.org/topic&trid=2134479"
        },
    "r159":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "15",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8657-108599"
        },
    "r16":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 201.5-02(26))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r160":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "22",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
        },
    "r161":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "22",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
        },
    "r162":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "22",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
        },
    "r163":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "22",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(d)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
        },
    "r164":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "22",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(e)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
        },
    "r165":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "22",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(f)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
        },
    "r166":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "22",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(g)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
        },
    "r167":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "22",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(h)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
        },
    "r168":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "22",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(j)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
        },
    "r169":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "22",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
        },
    "r17":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02(1))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r170":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "25",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8813-108599"
        },
    "r171":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "25",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8813-108599"
        },
    "r172":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "30",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599"
        },
    "r173":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "30",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599"
        },
    "r174":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "30",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599"
        },
    "r175":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "30",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(d)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599"
        },
    "r176":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "31",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8924-108599"
        },
    "r177":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "32",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
        },
    "r178":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "32",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
        },
    "r179":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "32",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
        },
    "r18":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02(13))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r180":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "32",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(d)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
        },
    "r181":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "32",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(f)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
        },
    "r182":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "40",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9031-108599"
        },
    "r183":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "41",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599"
        },
    "r184":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "42",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "280",
        "URI":  "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9054-108599"
        },
    "r185":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "13",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "310",
        "URI":  "http://asc.fasb.org/extlink&oid=124259787&loc=d3e4647-111522"
        },
    "r186":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "310",
        "URI":  "http://asc.fasb.org/extlink&oid=124259787&loc=d3e4428-111522"
        },
    "r187":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "9",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "310",
        "URI":  "http://asc.fasb.org/extlink&oid=124259787&loc=d3e4531-111522"
        },
    "r188":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "310",
        "URI":  "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5033-111524"
        },
    "r189":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "310",
        "URI":  "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5074-111524"
        },
    "r19":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02(14))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r190":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SAB Topic 4.E)",
        "Topic":  "310",
        "URI":  "http://asc.fasb.org/extlink&oid=122038336&loc=d3e74512-122707"
        },
    "r191":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Topic":  "310",
        "URI":  "http://asc.fasb.org/extlink&oid=84159169&loc=d3e10133-111534"
        },
    "r192":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Topic":  "310",
        "URI":  "http://asc.fasb.org/extlink&oid=84159169&loc=d3e10149-111534"
        },
    "r193":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Topic":  "310",
        "URI":  "http://asc.fasb.org/extlink&oid=84159169&loc=d3e10178-111534"
        },
    "r194":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "3",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)",
        "Topic":  "323",
        "URI":  "http://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571"
        },
    "r195":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "65",
        "SubTopic":  "10",
        "Subparagraph":  "(d)",
        "Topic":  "326",
        "URI":  "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437"
        },
    "r196":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "20",
        "Topic":  "326",
        "URI":  "http://asc.fasb.org/extlink&oid=124255206&loc=SL82895884-210446"
        },
    "r197":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "13",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Subparagraph":  "(a)",
        "Topic":  "326",
        "URI":  "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447"
        },
    "r198":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "13",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Subparagraph":  "(b)",
        "Topic":  "326",
        "URI":  "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447"
        },
    "r199":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "13",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Subparagraph":  "(f)",
        "Topic":  "326",
        "URI":  "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447"
        },
    "r2":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Subparagraph":  "(d)",
        "Topic":  "205",
        "URI":  "http://asc.fasb.org/extlink&oid=109222650&loc=d3e1361-107760"
        },
    "r20":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02(17))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r200":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "13",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Topic":  "326",
        "URI":  "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447"
        },
    "r201":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "330",
        "URI":  "http://asc.fasb.org/extlink&oid=116847112&loc=d3e4492-108314"
        },
    "r202":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "330",
        "URI":  "http://asc.fasb.org/extlink&oid=116847112&loc=d3e4556-108314"
        },
    "r203":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SAB Topic 5.L)",
        "Topic":  "330",
        "URI":  "http://asc.fasb.org/extlink&oid=27011343&loc=d3e99989-122729"
        },
    "r204":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SAB TOPIC 5.BB)",
        "Topic":  "330",
        "URI":  "http://asc.fasb.org/extlink&oid=27011343&loc=d3e100047-122729"
        },
    "r205":  {
        "Name":  "Accounting Standards Codification",
        "Publisher":  "FASB",
        "Topic":  "330",
        "URI":  "http://asc.fasb.org/topic&trid=2126998"
        },
    "r206":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "5",
        "Publisher":  "FASB",
        "Section":  "05",
        "SubTopic":  "10",
        "Topic":  "340",
        "URI":  "http://asc.fasb.org/extlink&oid=123349782&loc=d3e5879-108316"
        },
    "r207":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "340",
        "URI":  "http://asc.fasb.org/extlink&oid=6387103&loc=d3e6435-108320"
        },
    "r208":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Topic":  "350",
        "URI":  "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
        },
    "r209":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "30",
        "Topic":  "350",
        "URI":  "http://asc.fasb.org/extlink&oid=6388964&loc=d3e16212-109274"
        },
    "r21":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02(20))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r210":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "30",
        "Topic":  "350",
        "URI":  "http://asc.fasb.org/extlink&oid=6388964&loc=d3e16225-109274"
        },
    "r211":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "30",
        "Subparagraph":  "(a)",
        "Topic":  "350",
        "URI":  "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
        },
    "r212":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "30",
        "Subparagraph":  "(b)",
        "Topic":  "350",
        "URI":  "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
        },
    "r213":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "30",
        "Subparagraph":  "((a)(1),(b))",
        "Topic":  "350",
        "URI":  "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
        },
    "r214":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "30",
        "Subparagraph":  "(a)",
        "Topic":  "350",
        "URI":  "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
        },
    "r215":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "30",
        "Subparagraph":  "(a)(1)",
        "Topic":  "350",
        "URI":  "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
        },
    "r216":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "30",
        "Subparagraph":  "(a)(2)",
        "Topic":  "350",
        "URI":  "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
        },
    "r217":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "30",
        "Subparagraph":  "(a)(3)",
        "Topic":  "350",
        "URI":  "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
        },
    "r218":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "30",
        "Subparagraph":  "(b)",
        "Topic":  "350",
        "URI":  "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
        },
    "r219":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "30",
        "SubTopic":  "40",
        "Topic":  "350",
        "URI":  "http://asc.fasb.org/extlink&oid=118172244&loc=d3e17916-109280"
        },
    "r22":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02(22))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r220":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "25",
        "SubTopic":  "50",
        "Topic":  "350",
        "URI":  "http://asc.fasb.org/extlink&oid=16397303&loc=d3e19347-109286"
        },
    "r221":  {
        "Name":  "Accounting Standards Codification",
        "Publisher":  "FASB",
        "Topic":  "350",
        "URI":  "http://asc.fasb.org/topic&trid=2144416"
        },
    "r222":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "360",
        "URI":  "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
        },
    "r223":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "360",
        "URI":  "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
        },
    "r224":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)",
        "Topic":  "360",
        "URI":  "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
        },
    "r225":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "360",
        "URI":  "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
        },
    "r226":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "3",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(d)",
        "Topic":  "360",
        "URI":  "http://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230"
        },
    "r227":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "3",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(f)",
        "Topic":  "360",
        "URI":  "http://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230"
        },
    "r228":  {
        "Name":  "Accounting Standards Codification",
        "Publisher":  "FASB",
        "Topic":  "360",
        "URI":  "http://asc.fasb.org/topic&trid=2155823"
        },
    "r229":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)",
        "Topic":  "420",
        "URI":  "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869"
        },
    "r23":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02(23))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r230":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(d)",
        "Topic":  "420",
        "URI":  "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869"
        },
    "r231":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SAB Topic 5.P.4(d))",
        "Topic":  "420",
        "URI":  "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747"
        },
    "r232":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "440",
        "URI":  "http://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308"
        },
    "r233":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)",
        "Topic":  "440",
        "URI":  "http://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308"
        },
    "r234":  {
        "Name":  "Accounting Standards Codification",
        "Publisher":  "FASB",
        "Topic":  "440",
        "URI":  "http://asc.fasb.org/topic&trid=2144648"
        },
    "r235":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Topic":  "450",
        "URI":  "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14326-108349"
        },
    "r236":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "20",
        "Subparagraph":  "(SAB Topic 5.Y.Q1)",
        "Topic":  "450",
        "URI":  "http://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751"
        },
    "r237":  {
        "Name":  "Accounting Standards Codification",
        "Publisher":  "FASB",
        "Topic":  "450",
        "URI":  "http://asc.fasb.org/topic&trid=2127136"
        },
    "r238":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "8",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "460",
        "URI":  "http://asc.fasb.org/extlink&oid=123368208&loc=d3e12565-110249"
        },
    "r239":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "8",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)",
        "Topic":  "460",
        "URI":  "http://asc.fasb.org/extlink&oid=123368208&loc=d3e12565-110249"
        },
    "r24":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02(24))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r240":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "8",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)(1),(c)(5)",
        "Topic":  "460",
        "URI":  "http://asc.fasb.org/extlink&oid=123368208&loc=d3e12565-110249"
        },
    "r241":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "8",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "460",
        "URI":  "http://asc.fasb.org/extlink&oid=123368208&loc=d3e12565-110249"
        },
    "r242":  {
        "Name":  "Accounting Standards Codification",
        "Publisher":  "FASB",
        "Topic":  "460",
        "URI":  "http://asc.fasb.org/topic&trid=2155896"
        },
    "r243":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1A",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.13-01(a)(4)(i))",
        "Topic":  "470",
        "URI":  "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
        },
    "r244":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1A",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.13-01(a)(4)(ii))",
        "Topic":  "470",
        "URI":  "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
        },
    "r245":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1A",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.13-01(a)(4)(iii)(A))",
        "Topic":  "470",
        "URI":  "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
        },
    "r246":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1A",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.13-01(a)(4)(iii))",
        "Topic":  "470",
        "URI":  "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
        },
    "r247":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1A",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.13-01(a)(4)(iv))",
        "Topic":  "470",
        "URI":  "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
        },
    "r248":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1A",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.13-01(a)(5))",
        "Topic":  "470",
        "URI":  "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
        },
    "r249":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1B",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.13-02(a)(4)(i))",
        "Topic":  "470",
        "URI":  "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
        },
    "r25":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02(27))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r250":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1B",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.13-02(a)(4)(iii)(A))",
        "Topic":  "470",
        "URI":  "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
        },
    "r251":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1B",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.13-02(a)(4)(iii)(B))",
        "Topic":  "470",
        "URI":  "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
        },
    "r252":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1B",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.13-02(a)(4)(iv))",
        "Topic":  "470",
        "URI":  "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
        },
    "r253":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1B",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.13-02(a)(5))",
        "Topic":  "470",
        "URI":  "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
        },
    "r254":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1B",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Subparagraph":  "(b)",
        "Topic":  "470",
        "URI":  "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
        },
    "r255":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "40",
        "SubTopic":  "50",
        "Topic":  "470",
        "URI":  "http://asc.fasb.org/extlink&oid=123467658&loc=d3e12317-112629"
        },
    "r256":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "40",
        "SubTopic":  "50",
        "Topic":  "470",
        "URI":  "http://asc.fasb.org/extlink&oid=123467658&loc=d3e12355-112629"
        },
    "r257":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "50",
        "Topic":  "470",
        "URI":  "http://asc.fasb.org/extlink&oid=7516071&loc=d3e13374-112631"
        },
    "r258":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "63",
        "Publisher":  "FASB",
        "Section":  "55",
        "SubTopic":  "10",
        "Topic":  "480",
        "URI":  "http://asc.fasb.org/extlink&oid=117411753&loc=d3e23176-110880"
        },
    "r259":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "13",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "505",
        "URI":  "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
        },
    "r26":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02(28))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r260":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "13",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "505",
        "URI":  "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
        },
    "r261":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "13",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(g)",
        "Topic":  "505",
        "URI":  "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
        },
    "r262":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "13",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(h)",
        "Topic":  "505",
        "URI":  "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
        },
    "r263":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "13",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(i)",
        "Topic":  "505",
        "URI":  "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
        },
    "r264":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "13",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "505",
        "URI":  "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
        },
    "r265":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "14",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "505",
        "URI":  "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496171-112644"
        },
    "r266":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "14",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "505",
        "URI":  "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496171-112644"
        },
    "r267":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "14",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)",
        "Topic":  "505",
        "URI":  "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496171-112644"
        },
    "r268":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "16",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "505",
        "URI":  "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496180-112644"
        },
    "r269":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "18",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "505",
        "URI":  "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644"
        },
    "r27":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02(29))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r270":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "18",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "505",
        "URI":  "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644"
        },
    "r271":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "18",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(d)",
        "Topic":  "505",
        "URI":  "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644"
        },
    "r272":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "505",
        "URI":  "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21463-112644"
        },
    "r273":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "3",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "505",
        "URI":  "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21475-112644"
        },
    "r274":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.3-04)",
        "Topic":  "505",
        "URI":  "http://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770"
        },
    "r275":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SAB Topic 4.C)",
        "Topic":  "505",
        "URI":  "http://asc.fasb.org/extlink&oid=120397183&loc=d3e187143-122770"
        },
    "r276":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "50",
        "Topic":  "505",
        "URI":  "http://asc.fasb.org/extlink&oid=6784392&loc=d3e188667-122775"
        },
    "r277":  {
        "Name":  "Accounting Standards Codification",
        "Publisher":  "FASB",
        "Topic":  "505",
        "URI":  "http://asc.fasb.org/topic&trid=2208762"
        },
    "r278":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "5",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "606",
        "URI":  "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130545-203045"
        },
    "r279":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "91",
        "Publisher":  "FASB",
        "Section":  "55",
        "SubTopic":  "10",
        "Subparagraph":  "(c)",
        "Topic":  "606",
        "URI":  "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046"
        },
    "r28":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02(3))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r280":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Subparagraph":  "(n)",
        "Topic":  "715",
        "URI":  "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
        },
    "r281":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901"
        },
    "r282":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901"
        },
    "r283":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a),(g)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
        },
    "r284":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(b),(f)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
        },
    "r285":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)(1)(i)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
        },
    "r286":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)(1)(i)-(ii)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
        },
    "r287":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)(1)(ii)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
        },
    "r288":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)(1)(iii)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
        },
    "r289":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)(1)(iv)(3)-(4)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
        },
    "r29":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02(30)(a)(1))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r290":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)(2)(iii)(2)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
        },
    "r291":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(e)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
        },
    "r292":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(e)(1)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
        },
    "r293":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(f)(2)(i)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
        },
    "r294":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(f)(2)(ii)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
        },
    "r295":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(f)(2)(iii)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
        },
    "r296":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(f)(2)(iv)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
        },
    "r297":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
        },
    "r298":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2A",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=120381028&loc=SL79508275-113901"
        },
    "r299":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "15",
        "Publisher":  "FASB",
        "Section":  "65",
        "SubTopic":  "10",
        "Subparagraph":  "(e)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
        },
    "r3":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "7",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Topic":  "205",
        "URI":  "http://asc.fasb.org/extlink&oid=109222650&loc=SL51721683-107760"
        },
    "r30":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02(30)(a)(3))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r300":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "15",
        "Publisher":  "FASB",
        "Section":  "65",
        "SubTopic":  "10",
        "Subparagraph":  "(f)(1)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
        },
    "r301":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "15",
        "Publisher":  "FASB",
        "Section":  "65",
        "SubTopic":  "10",
        "Subparagraph":  "(f)(2)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
        },
    "r302":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "15",
        "Publisher":  "FASB",
        "Section":  "65",
        "SubTopic":  "10",
        "Subparagraph":  "(g)(2)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
        },
    "r303":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SAB Topic 14.D.2)",
        "Topic":  "718",
        "URI":  "http://asc.fasb.org/extlink&oid=122041274&loc=d3e301413-122809"
        },
    "r304":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "35",
        "Subparagraph":  "(a)",
        "Topic":  "720",
        "URI":  "http://asc.fasb.org/extlink&oid=6420018&loc=d3e36677-107848"
        },
    "r305":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "35",
        "Subparagraph":  "(b)",
        "Topic":  "720",
        "URI":  "http://asc.fasb.org/extlink&oid=6420018&loc=d3e36677-107848"
        },
    "r306":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "730",
        "URI":  "http://asc.fasb.org/extlink&oid=6420194&loc=d3e21568-108373"
        },
    "r307":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "25",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=123427490&loc=d3e32247-109318"
        },
    "r308":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "28",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=123427490&loc=d3e32280-109318"
        },
    "r309":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "6",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=123427490&loc=d3e31931-109318"
        },
    "r31":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02(30))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r310":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "10",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32672-109319"
        },
    "r311":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "12",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319"
        },
    "r312":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "14",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32705-109319"
        },
    "r313":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "15",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(e)",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319"
        },
    "r314":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "15",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319"
        },
    "r315":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "17",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32809-109319"
        },
    "r316":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "19",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32840-109319"
        },
    "r317":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319"
        },
    "r318":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319"
        },
    "r319":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "20",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32847-109319"
        },
    "r32":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02(31))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r320":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "21",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32857-109319"
        },
    "r321":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "3",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32559-109319"
        },
    "r322":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "6",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32621-109319"
        },
    "r323":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "8",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32632-109319"
        },
    "r324":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "9",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319"
        },
    "r325":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "9",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319"
        },
    "r326":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "9",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319"
        },
    "r327":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "8",
        "Publisher":  "FASB",
        "Section":  "65",
        "SubTopic":  "10",
        "Subparagraph":  "(d)(2)",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277"
        },
    "r328":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "8",
        "Publisher":  "FASB",
        "Section":  "65",
        "SubTopic":  "10",
        "Subparagraph":  "(d)(3)",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277"
        },
    "r329":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SAB TOPIC 6.I.5.Q1)",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
        },
    "r33":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02(32))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r330":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SAB TOPIC 6.I.7)",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
        },
    "r331":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SAB Topic 6.I.7)",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
        },
    "r332":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SAB Topic 6.I.Fact.1)",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
        },
    "r333":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SAB Topic 6.I.Fact.2)",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
        },
    "r334":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SAB Topic 6.I.Fact.3)",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
        },
    "r335":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SAB Topic 6.I.Fact.4)",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
        },
    "r336":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SAB Topic 11.C)",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330215-122817"
        },
    "r337":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "20",
        "Subparagraph":  "(a)",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=123586238&loc=d3e38679-109324"
        },
    "r338":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "270",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=6424409&loc=d3e44925-109338"
        },
    "r339":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "30",
        "Subparagraph":  "(a)",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/extlink&oid=6424122&loc=d3e41874-109331"
        },
    "r34":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02(6)(a))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r340":  {
        "Name":  "Accounting Standards Codification",
        "Publisher":  "FASB",
        "Topic":  "740",
        "URI":  "http://asc.fasb.org/topic&trid=2144680"
        },
    "r341":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "05",
        "SubTopic":  "10",
        "Subparagraph":  "(a)-(d)",
        "Topic":  "805",
        "URI":  "http://asc.fasb.org/extlink&oid=6909625&loc=d3e227-128457"
        },
    "r342":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Topic":  "805",
        "URI":  "http://asc.fasb.org/extlink&oid=123413009&loc=d3e4922-128472"
        },
    "r343":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "25",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "810",
        "URI":  "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988"
        },
    "r344":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "25",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "810",
        "URI":  "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988"
        },
    "r345":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "810",
        "URI":  "http://asc.fasb.org/extlink&oid=109239629&loc=d3e5614-111684"
        },
    "r346":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "3",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(bb)",
        "Topic":  "810",
        "URI":  "http://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685"
        },
    "r347":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "3",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)",
        "Topic":  "810",
        "URI":  "http://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685"
        },
    "r348":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "3",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "40",
        "Topic":  "815",
        "URI":  "http://asc.fasb.org/extlink&oid=123477628&loc=d3e90193-114008"
        },
    "r349":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "40",
        "Topic":  "815",
        "URI":  "http://asc.fasb.org/extlink&oid=123477628&loc=d3e90198-114008"
        },
    "r35":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02(6)(b))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r350":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "5",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "40",
        "Topic":  "815",
        "URI":  "http://asc.fasb.org/extlink&oid=123477628&loc=d3e90205-114008"
        },
    "r351":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "65",
        "SubTopic":  "40",
        "Subparagraph":  "(e)(3)",
        "Topic":  "815",
        "URI":  "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
        },
    "r352":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "65",
        "SubTopic":  "40",
        "Subparagraph":  "(e)(4)",
        "Topic":  "815",
        "URI":  "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
        },
    "r353":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "65",
        "SubTopic":  "40",
        "Subparagraph":  "(f)",
        "Topic":  "815",
        "URI":  "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
        },
    "r354":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "20",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "825",
        "URI":  "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13531-108611"
        },
    "r355":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "21",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "825",
        "URI":  "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13537-108611"
        },
    "r356":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "28",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(f)",
        "Topic":  "825",
        "URI":  "http://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612"
        },
    "r357":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "230",
        "Topic":  "830",
        "URI":  "http://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906"
        },
    "r358":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "17",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "30",
        "Topic":  "830",
        "URI":  "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32136-110900"
        },
    "r359":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "20",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "30",
        "Subparagraph":  "(a)",
        "Topic":  "830",
        "URI":  "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
        },
    "r36":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02(6)(c))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r360":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "20",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "30",
        "Subparagraph":  "(b)",
        "Topic":  "830",
        "URI":  "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
        },
    "r361":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "20",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "30",
        "Subparagraph":  "(c)",
        "Topic":  "830",
        "URI":  "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
        },
    "r362":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "20",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "30",
        "Subparagraph":  "(d)",
        "Topic":  "830",
        "URI":  "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
        },
    "r363":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "30",
        "Topic":  "830",
        "URI":  "http://asc.fasb.org/extlink&oid=6450520&loc=d3e32583-110901"
        },
    "r364":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "30",
        "Topic":  "830",
        "URI":  "http://asc.fasb.org/extlink&oid=6450520&loc=d3e32618-110901"
        },
    "r365":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Subparagraph":  "(a)",
        "Topic":  "835",
        "URI":  "http://asc.fasb.org/extlink&oid=6450988&loc=d3e26243-108391"
        },
    "r366":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "3",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "30",
        "Topic":  "835",
        "URI":  "http://asc.fasb.org/extlink&oid=124435984&loc=d3e28555-108399"
        },
    "r367":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Topic":  "840",
        "URI":  "http://asc.fasb.org/extlink&oid=123406913&loc=d3e41499-112717"
        },
    "r368":  {
        "Name":  "Accounting Standards Codification",
        "Publisher":  "FASB",
        "Topic":  "840",
        "URI":  "http://asc.fasb.org/topic&trid=2208923"
        },
    "r369":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "20",
        "Subparagraph":  "(a)",
        "Topic":  "842",
        "URI":  "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977"
        },
    "r37":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.1)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r370":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "20",
        "Subparagraph":  "(b)",
        "Topic":  "842",
        "URI":  "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977"
        },
    "r371":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "20",
        "Subparagraph":  "(b)",
        "Topic":  "842",
        "URI":  "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918638-209977"
        },
    "r372":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Subparagraph":  "(b)",
        "Topic":  "842",
        "URI":  "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918666-209980"
        },
    "r373":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "3",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Subparagraph":  "(c)(3)",
        "Topic":  "842",
        "URI":  "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918673-209980"
        },
    "r374":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Topic":  "842",
        "URI":  "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980"
        },
    "r375":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "6",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Topic":  "842",
        "URI":  "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918701-209980"
        },
    "r376":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "11",
        "Publisher":  "FASB",
        "Section":  "25",
        "SubTopic":  "30",
        "Subparagraph":  "(c)",
        "Topic":  "842",
        "URI":  "http://asc.fasb.org/extlink&oid=123408481&loc=SL77919140-209958"
        },
    "r377":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "12",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "30",
        "Topic":  "842",
        "URI":  "http://asc.fasb.org/extlink&oid=124258985&loc=SL77919396-209981"
        },
    "r378":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(c)",
        "Topic":  "850",
        "URI":  "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864"
        },
    "r379":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(d)",
        "Topic":  "850",
        "URI":  "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864"
        },
    "r38":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.13(a))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r380":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "850",
        "URI":  "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39599-107864"
        },
    "r381":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "3",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "850",
        "URI":  "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39603-107864"
        },
    "r382":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "7",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "852",
        "URI":  "http://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765"
        },
    "r383":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "7",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "852",
        "URI":  "http://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765"
        },
    "r384":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "10",
        "Publisher":  "FASB",
        "Section":  "55",
        "SubTopic":  "10",
        "Topic":  "852",
        "URI":  "http://asc.fasb.org/extlink&oid=84165509&loc=d3e56426-112766"
        },
    "r385":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "855",
        "URI":  "http://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662"
        },
    "r386":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "855",
        "URI":  "http://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662"
        },
    "r387":  {
        "Name":  "Accounting Standards Codification",
        "Publisher":  "FASB",
        "Topic":  "855",
        "URI":  "http://asc.fasb.org/topic&trid=2122774"
        },
    "r388":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "330",
        "Topic":  "912",
        "URI":  "http://asc.fasb.org/extlink&oid=6471895&loc=d3e55923-109411"
        },
    "r389":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "25",
        "SubTopic":  "730",
        "Topic":  "912",
        "URI":  "http://asc.fasb.org/extlink&oid=6472174&loc=d3e58812-109433"
        },
    "r39":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.13)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r390":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SAB Topic 11.L)",
        "Topic":  "924",
        "URI":  "http://asc.fasb.org/extlink&oid=6472922&loc=d3e499488-122856"
        },
    "r391":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "5",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Topic":  "926",
        "URI":  "http://asc.fasb.org/extlink&oid=120154696&loc=d3e54445-107959"
        },
    "r392":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "340",
        "Topic":  "928",
        "URI":  "http://asc.fasb.org/extlink&oid=6473545&loc=d3e61844-108004"
        },
    "r393":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "13",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "235",
        "Topic":  "932",
        "URI":  "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61901-109447"
        },
    "r394":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "15",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "235",
        "Subparagraph":  "(a)",
        "Topic":  "932",
        "URI":  "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61929-109447"
        },
    "r395":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "15",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "235",
        "Subparagraph":  "(b)",
        "Topic":  "932",
        "URI":  "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61929-109447"
        },
    "r396":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "20",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "235",
        "Subparagraph":  "(a)",
        "Topic":  "932",
        "URI":  "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62059-109447"
        },
    "r397":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "20",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "235",
        "Subparagraph":  "(b)",
        "Topic":  "932",
        "URI":  "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62059-109447"
        },
    "r398":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "28",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "235",
        "Subparagraph":  "(a)",
        "Topic":  "932",
        "URI":  "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62395-109447"
        },
    "r399":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "28",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "235",
        "Subparagraph":  "(b)",
        "Topic":  "932",
        "URI":  "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62395-109447"
        },
    "r4":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
        },
    "r40":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.14)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r400":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "33",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "235",
        "Subparagraph":  "(a)",
        "Topic":  "932",
        "URI":  "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62479-109447"
        },
    "r401":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "33",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "235",
        "Subparagraph":  "(b)",
        "Topic":  "932",
        "URI":  "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62479-109447"
        },
    "r402":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "35A",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "235",
        "Subparagraph":  "(a)",
        "Topic":  "932",
        "URI":  "http://asc.fasb.org/extlink&oid=123377692&loc=SL6807758-109447"
        },
    "r403":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "35A",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "235",
        "Subparagraph":  "(b)",
        "Topic":  "932",
        "URI":  "http://asc.fasb.org/extlink&oid=123377692&loc=SL6807758-109447"
        },
    "r404":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "8",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "235",
        "Subparagraph":  "(c)(1)",
        "Topic":  "932",
        "URI":  "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61872-109447"
        },
    "r405":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "8",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "235",
        "Subparagraph":  "(c)(2)",
        "Topic":  "932",
        "URI":  "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61872-109447"
        },
    "r406":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "25",
        "SubTopic":  "20",
        "Topic":  "940",
        "URI":  "http://asc.fasb.org/extlink&oid=123384075&loc=d3e41242-110953"
        },
    "r407":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "210",
        "Subparagraph":  "(SX 210.9-03(10))",
        "Topic":  "942",
        "URI":  "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
        },
    "r408":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "210",
        "Subparagraph":  "(SX 210.9-03(11))",
        "Topic":  "942",
        "URI":  "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
        },
    "r409":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "210",
        "Subparagraph":  "(SX 210.9-03(15)(1))",
        "Topic":  "942",
        "URI":  "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
        },
    "r41":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.15)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r410":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "210",
        "Subparagraph":  "(SX 210.9-03(23))",
        "Topic":  "942",
        "URI":  "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
        },
    "r411":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "210",
        "Subparagraph":  "(SX 210.9-03.15(5))",
        "Topic":  "942",
        "URI":  "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
        },
    "r412":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "220",
        "Subparagraph":  "(SX 210.9-04(15))",
        "Topic":  "942",
        "URI":  "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
        },
    "r413":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "220",
        "Subparagraph":  "(SX 210.9-04(22))",
        "Topic":  "942",
        "URI":  "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
        },
    "r414":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "220",
        "Subparagraph":  "(SX 210.9-04(27))",
        "Topic":  "942",
        "URI":  "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
        },
    "r415":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "220",
        "Subparagraph":  "(SX 210.9-04.14)",
        "Topic":  "942",
        "URI":  "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
        },
    "r416":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "220",
        "Subparagraph":  "(SX 210.9-04.9)",
        "Topic":  "942",
        "URI":  "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
        },
    "r417":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "230",
        "Subparagraph":  "(b)",
        "Topic":  "942",
        "URI":  "http://asc.fasb.org/extlink&oid=123398031&loc=d3e60009-112784"
        },
    "r418":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "235",
        "Subparagraph":  "(SX 210.9-05(b)(2))",
        "Topic":  "942",
        "URI":  "http://asc.fasb.org/extlink&oid=120399901&loc=d3e537907-122884"
        },
    "r419":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "360",
        "Topic":  "942",
        "URI":  "http://asc.fasb.org/extlink&oid=124429447&loc=SL124453093-239630"
        },
    "r42":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.17)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r420":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "825",
        "Topic":  "942",
        "URI":  "http://asc.fasb.org/extlink&oid=123345438&loc=d3e61044-112788"
        },
    "r421":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "210",
        "Subparagraph":  "(SX 210.7-03(a)(10))",
        "Topic":  "944",
        "URI":  "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
        },
    "r422":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "210",
        "Subparagraph":  "(SX 210.7-03(a)(12))",
        "Topic":  "944",
        "URI":  "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
        },
    "r423":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "210",
        "Subparagraph":  "(SX 210.7-03(a)(15)(a))",
        "Topic":  "944",
        "URI":  "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
        },
    "r424":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "210",
        "Subparagraph":  "(SX 210.7-03(a)(23)(a)(4))",
        "Topic":  "944",
        "URI":  "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
        },
    "r425":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "210",
        "Subparagraph":  "(SX 210.7-03(a)(25))",
        "Topic":  "944",
        "URI":  "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
        },
    "r426":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "210",
        "Subparagraph":  "(SX 210.7-03(a)(8))",
        "Topic":  "944",
        "URI":  "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
        },
    "r427":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "210",
        "Subparagraph":  "(SX 210.7-03.15(a))",
        "Topic":  "944",
        "URI":  "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
        },
    "r428":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "220",
        "Subparagraph":  "(SX 210.7-04(18))",
        "Topic":  "944",
        "URI":  "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
        },
    "r429":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "220",
        "Subparagraph":  "(SX 210.7-04(23))",
        "Topic":  "944",
        "URI":  "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
        },
    "r43":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.19(a))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r430":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "220",
        "Subparagraph":  "(SX 210.7-04(8))",
        "Topic":  "944",
        "URI":  "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
        },
    "r431":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "220",
        "Subparagraph":  "(SX 210.7-04(9))",
        "Topic":  "944",
        "URI":  "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
        },
    "r432":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "40",
        "Topic":  "944",
        "URI":  "http://asc.fasb.org/extlink&oid=116884095&loc=d3e14754-158437"
        },
    "r433":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4H",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "40",
        "Topic":  "944",
        "URI":  "http://asc.fasb.org/extlink&oid=116884468&loc=SL65671331-158438"
        },
    "r434":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "6",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "40",
        "Topic":  "944",
        "URI":  "http://asc.fasb.org/extlink&oid=124506351&loc=d3e14931-158439"
        },
    "r435":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "13H",
        "Publisher":  "FASB",
        "Section":  "55",
        "SubTopic":  "40",
        "Subparagraph":  "(c)",
        "Topic":  "944",
        "URI":  "http://asc.fasb.org/extlink&oid=124504033&loc=SL117783719-158441"
        },
    "r436":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "65",
        "SubTopic":  "40",
        "Subparagraph":  "(e)",
        "Topic":  "944",
        "URI":  "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
        },
    "r437":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "65",
        "SubTopic":  "40",
        "Subparagraph":  "(f)(1)",
        "Topic":  "944",
        "URI":  "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
        },
    "r438":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "65",
        "SubTopic":  "40",
        "Subparagraph":  "(f)(2)",
        "Topic":  "944",
        "URI":  "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
        },
    "r439":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "65",
        "SubTopic":  "40",
        "Subparagraph":  "(g)(2)(i)",
        "Topic":  "944",
        "URI":  "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
        },
    "r44":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.19-26)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r440":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "65",
        "SubTopic":  "40",
        "Subparagraph":  "(h)(2)",
        "Topic":  "944",
        "URI":  "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
        },
    "r441":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "3",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "220",
        "Subparagraph":  "(k)",
        "Topic":  "946",
        "URI":  "http://asc.fasb.org/extlink&oid=124433917&loc=SL114874205-224268"
        },
    "r442":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "220",
        "Subparagraph":  "(SX 210.6-07.2(a),(b),(c),(d))",
        "Topic":  "946",
        "URI":  "http://asc.fasb.org/extlink&oid=120401555&loc=SL114874292-224272"
        },
    "r443":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "440",
        "Subparagraph":  "(a)",
        "Topic":  "954",
        "URI":  "http://asc.fasb.org/extlink&oid=6491277&loc=d3e6429-115629"
        },
    "r444":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "360",
        "Subparagraph":  "(d)",
        "Topic":  "958",
        "URI":  "http://asc.fasb.org/extlink&oid=120429125&loc=d3e99779-112916"
        },
    "r445":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "6",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "360",
        "Topic":  "958",
        "URI":  "http://asc.fasb.org/extlink&oid=120429125&loc=d3e99893-112916"
        },
    "r446":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "7",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "360",
        "Topic":  "958",
        "URI":  "http://asc.fasb.org/extlink&oid=120429125&loc=SL120174063-112916"
        },
    "r447":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Subparagraph":  "(a)",
        "Topic":  "985",
        "URI":  "http://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756"
        },
    "r448":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Subparagraph":  "(b)(1)",
        "Topic":  "985",
        "URI":  "http://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756"
        },
    "r449":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Topic":  "985",
        "URI":  "http://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756"
        },
    "r45":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.20)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r450":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "20",
        "Topic":  "985",
        "URI":  "http://asc.fasb.org/extlink&oid=6501960&loc=d3e128487-111756"
        },
    "r451":  {
        "Name":  "Accounting Standards Codification",
        "Publisher":  "FASB",
        "SubTopic":  "730",
        "Topic":  "985",
        "URI":  "http://asc.fasb.org/subtopic&trid=2197926"
        },
    "r452":  {
        "Name":  "Exchange Act",
        "Number":  "240",
        "Publisher":  "SEC",
        "Section":  "12",
        "Subsection":  "b"
        },
    "r453":  {
        "Name":  "Exchange Act",
        "Number":  "240",
        "Publisher":  "SEC",
        "Section":  "12",
        "Subsection":  "b-2"
        },
    "r454":  {
        "Name":  "Exchange Act",
        "Number":  "240",
        "Publisher":  "SEC",
        "Section":  "12",
        "Subsection":  "d1-1"
        },
    "r455":  {
        "Name":  "Form 10-K",
        "Number":  "249",
        "Publisher":  "SEC",
        "Section":  "310"
        },
    "r456":  {
        "Name":  "Form 20-F",
        "Number":  "249",
        "Publisher":  "SEC",
        "Section":  "220",
        "Subsection":  "f"
        },
    "r457":  {
        "Name":  "Form 40-F",
        "Number":  "249",
        "Publisher":  "SEC",
        "Section":  "240",
        "Subsection":  "f"
        },
    "r458":  {
        "Name":  "Forms 10-K, 10-Q, 20-F",
        "Number":  "240",
        "Publisher":  "SEC",
        "Section":  "13",
        "Subsection":  "a-1"
        },
    "r459":  {
        "Name":  "Regulation S-K (SK)",
        "Number":  "229",
        "Paragraph":  "(a)",
        "Publisher":  "SEC",
        "Section":  "1402"
        },
    "r46":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.21)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r460":  {
        "Name":  "Regulation S-T",
        "Number":  "232",
        "Publisher":  "SEC",
        "Section":  "405"
        },
    "r461":  {
        "Name":  "Securities Act",
        "Number":  "230",
        "Publisher":  "SEC",
        "Section":  "405"
        },
    "r462":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "65",
        "SubTopic":  "10",
        "Subparagraph":  "(a)(3)(iii)(03)",
        "Topic":  "848"
        },
    "r47":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.22(a)(1))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r48":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.22)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r49":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.29-31)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r5":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
        },
    "r50":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.6(a)(1))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r51":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.6(a)(4))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r52":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.6(a))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r53":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.6(b))",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r54":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.6a)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r55":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.6b)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r56":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.6c)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r57":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.8)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r58":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-02.9)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
        },
    "r59":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1A",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "220",
        "URI":  "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669619-108580"
        },
    "r6":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(c)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
        },
    "r60":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1B",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "220",
        "URI":  "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669625-108580"
        },
    "r61":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "220",
        "URI":  "http://asc.fasb.org/extlink&oid=124431353&loc=SL116659661-227067"
        },
    "r62":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "220",
        "URI":  "http://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067"
        },
    "r63":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "5",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "220",
        "URI":  "http://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067"
        },
    "r64":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "6",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "220",
        "URI":  "http://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067"
        },
    "r65":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(210.5-03(11))",
        "Topic":  "220",
        "URI":  "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
        },
    "r66":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-03(1))",
        "Topic":  "220",
        "URI":  "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
        },
    "r67":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-03(10))",
        "Topic":  "220",
        "URI":  "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
        },
    "r68":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-03(20))",
        "Topic":  "220",
        "URI":  "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
        },
    "r69":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-03(25))",
        "Topic":  "220",
        "URI":  "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
        },
    "r7":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(g)",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
        },
    "r70":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-03(4))",
        "Topic":  "220",
        "URI":  "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
        },
    "r71":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-03(5))",
        "Topic":  "220",
        "URI":  "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
        },
    "r72":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-03(b)(2))",
        "Topic":  "220",
        "URI":  "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
        },
    "r73":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-03.1,2)",
        "Topic":  "220",
        "URI":  "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
        },
    "r74":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-03.2)",
        "Topic":  "220",
        "URI":  "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
        },
    "r75":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-03.3)",
        "Topic":  "220",
        "URI":  "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
        },
    "r76":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-03.4)",
        "Topic":  "220",
        "URI":  "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
        },
    "r77":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "S99",
        "SubTopic":  "10",
        "Subparagraph":  "(SX 210.5-03.7)",
        "Topic":  "220",
        "URI":  "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
        },
    "r78":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "12",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "230",
        "URI":  "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3179-108585"
        },
    "r79":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "13",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "230",
        "URI":  "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3213-108585"
        },
    "r8":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
        },
    "r80":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "14",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "230",
        "URI":  "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3255-108585"
        },
    "r81":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "14",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "230",
        "URI":  "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3255-108585"
        },
    "r82":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "17",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(d)",
        "Topic":  "230",
        "URI":  "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3367-108585"
        },
    "r83":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "17",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(f)",
        "Topic":  "230",
        "URI":  "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3367-108585"
        },
    "r84":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "24",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "230",
        "URI":  "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3521-108585"
        },
    "r85":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "25",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(e)",
        "Topic":  "230",
        "URI":  "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3536-108585"
        },
    "r86":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "25",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "230",
        "URI":  "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3536-108585"
        },
    "r87":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "28",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "230",
        "URI":  "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585"
        },
    "r88":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "28",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Subparagraph":  "(b)",
        "Topic":  "230",
        "URI":  "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585"
        },
    "r89":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "28",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "230",
        "URI":  "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585"
        },
    "r9":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "210",
        "URI":  "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6787-107765"
        },
    "r90":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "230",
        "URI":  "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3044-108585"
        },
    "r91":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "8",
        "Publisher":  "FASB",
        "Section":  "45",
        "SubTopic":  "10",
        "Topic":  "230",
        "URI":  "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3095-108585"
        },
    "r92":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "230",
        "URI":  "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4273-108586"
        },
    "r93":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "2",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "230",
        "URI":  "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4297-108586"
        },
    "r94":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "3",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "230",
        "URI":  "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4304-108586"
        },
    "r95":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "230",
        "URI":  "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4313-108586"
        },
    "r96":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "5",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "230",
        "URI":  "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4332-108586"
        },
    "r97":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "1",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Topic":  "235",
        "URI":  "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18726-107790"
        },
    "r98":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(a)",
        "Topic":  "235",
        "URI":  "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790"
        },
    "r99":  {
        "Name":  "Accounting Standards Codification",
        "Paragraph":  "4",
        "Publisher":  "FASB",
        "Section":  "50",
        "SubTopic":  "10",
        "Subparagraph":  "(d)",
        "Topic":  "235",
        "URI":  "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790"
        }
    },
"version":  "2.1"
}


1 Subsequent Filing that References this Filing

  As Of               Filer                 Filing    For·On·As Docs:Size             Issuer                      Filing Agent

 4/01/24  TOMI Environmental Solutions, Inc 10-K       12/31/23   89:6.6M                                   Blueprint/FA


12 Previous Filings that this Filing References

  As Of               Filer                 Filing    For·On·As Docs:Size             Issuer                      Filing Agent

 9/28/21  TOMI Environmental Solutions, Inc 8-K:1,3,8,9 9/26/21   17:662K                                   Blueprint/FA
 5/17/21  TOMI Environmental Solutions, Inc 10-Q        3/31/21   82:5.1M                                   Blueprint/FA
12/02/20  TOMI Environmental Solutions, Inc DEF 14A    12/30/20    1:1M                                     Blueprint/FA
11/04/20  TOMI Environmental Solutions, Inc S-3                    4:425K                                   Blueprint/FA
 9/14/20  TOMI Environmental Solutions, Inc 8-K:5,8,9   9/10/20    3:68K                                    Blueprint/FA
 1/08/18  TOMI Environmental Solutions, Inc 8-K:1,5,9   1/05/18    2:99K                                    Harold W Paul LLC/FA
11/14/16  TOMI Environmental Solutions, Inc 10-Q        9/30/16   68:7.9M                                   Blueprint/FA
 5/16/16  TOMI Environmental Solutions, Inc 10-Q        3/31/16   74:4.1M                                   Issuer Direct/FA
 2/01/16  TOMI Environmental Solutions, Inc 8-K:5,9     1/29/16    3:48K                                    Harold W Paul LLC/FA
11/07/11  TOMI Environmental Solutions, Inc 8-K:5,9    10/24/11    3:241K                                   Harold W Paul LLC/FA
10/06/09  TOMI Environmental Solutions, Inc S-1                    3:77K                                    Harold W Paul LLC/FA
 3/31/09  TOMI Environmental Solutions, Inc 10-K       12/31/08    6:170K                                   Harold W Paul LLC/FA
Top
Filing Submission 0001654954-22-004048   –   Alternative Formats (Word / Rich Text, HTML, Plain Text, et al.)

Copyright © 2024 Fran Finnegan & Company LLC – All Rights Reserved.
AboutPrivacyRedactionsHelp — Wed., May 8, 10:51:47.5pm ET